Version Description
- August 23 2016 =
- Compatibility with WP 4.6
- Added image slider widget
- Allowed use of html in Media Box title
- Added option to disable image fullwidth in blog and person widgets
- Enabled use of shortcodes in editor field
- Updated link to Documentation
Download this release
Release Info
Developer | iamadi |
Plugin | Widgets for SiteOrigin |
Version | 1.2.4 |
Comparing to | |
See all releases |
Code changes from version 1.2.3 to 1.2.4
- css/defaults.scss +0 -102
- css/slick.css +128 -0
- fonts/slick/slick.eot +0 -0
- fonts/slick/slick.svg +14 -0
- fonts/slick/slick.ttf +0 -0
- fonts/slick/slick.woff +0 -0
- freemius/assets/css/admin/account.css +1 -1
- freemius/assets/css/admin/deactivation-feedback.css +1 -1
- freemius/assets/css/admin/dialog-boxes.css +3 -0
- freemius/assets/css/admin/license-activation.css +1 -1
- freemius/assets/scss/admin/_deactivation-feedback.scss +42 -0
- freemius/assets/scss/admin/_license-activation.scss +7 -0
- freemius/assets/scss/admin/_license-key-resend.scss +35 -0
- freemius/assets/scss/admin/{license-activation.scss → _modal-common.scss} +15 -10
- freemius/assets/scss/admin/account.scss +14 -1
- freemius/assets/scss/admin/deactivation-feedback.scss +0 -120
- freemius/assets/scss/admin/dialog-boxes.scss +4 -0
- freemius/includes/class-freemius.php +448 -62
- freemius/includes/entities/class-fs-payment.php +94 -0
- freemius/includes/entities/class-fs-plugin-license.php +22 -0
- freemius/includes/entities/class-fs-plugin-plan.php +16 -0
- freemius/includes/i18n.php +19 -0
- freemius/includes/managers/class-fs-key-value-storage.php +31 -0
- freemius/require.php +43 -0
- freemius/start.php +3 -35
- freemius/templates/account.php +610 -547
- freemius/templates/add-ons.php +9 -1
- freemius/templates/billing.php +106 -0
- freemius/templates/checkout.php +10 -8
- freemius/templates/connect.php +20 -7
- freemius/templates/contact.php +9 -1
- freemius/templates/debug.php +46 -1
- freemius/templates/forms/deactivation/contact.php +20 -0
- freemius/templates/{deactivation-feedback-modal.php → forms/deactivation/form.php} +35 -6
- freemius/templates/forms/deactivation/retry-skip.php +21 -0
- freemius/templates/{license-activation-modal.php → forms/license-activation.php} +54 -20
- freemius/templates/forms/resend-key.php +203 -0
- freemius/templates/powered-by.php +2 -4
- freemius/templates/pricing.php +10 -2
- inc/activate.php +28 -0
- inc/enqueue.php +2 -0
- js/easypie.min.js +1 -1
- js/match-height.min.js +1 -1
- js/mixitup.min.js +1 -1
- js/slick.js +2892 -0
- js/slick.min.js +2 -0
- js/waypoints.min.js +1 -1
- mixins/sass/bourbon/_bourbon-deprecated-upcoming.scss +0 -411
- mixins/sass/bourbon/_bourbon.scss +0 -87
- mixins/sass/bourbon/addons/_border-color.scss +0 -26
- mixins/sass/bourbon/addons/_border-radius.scss +0 -48
- mixins/sass/bourbon/addons/_border-style.scss +0 -25
- mixins/sass/bourbon/addons/_border-width.scss +0 -25
- mixins/sass/bourbon/addons/_buttons.scss +0 -64
- mixins/sass/bourbon/addons/_clearfix.scss +0 -25
- mixins/sass/bourbon/addons/_ellipsis.scss +0 -30
- mixins/sass/bourbon/addons/_font-stacks.scss +0 -31
- mixins/sass/bourbon/addons/_hide-text.scss +0 -27
- mixins/sass/bourbon/addons/_margin.scss +0 -26
- mixins/sass/bourbon/addons/_padding.scss +0 -26
- mixins/sass/bourbon/addons/_position.scss +0 -48
- mixins/sass/bourbon/addons/_prefixer.scss +0 -66
- mixins/sass/bourbon/addons/_retina-image.scss +0 -25
- mixins/sass/bourbon/addons/_size.scss +0 -51
- mixins/sass/bourbon/addons/_text-inputs.scss +0 -113
- mixins/sass/bourbon/addons/_timing-functions.scss +0 -34
- mixins/sass/bourbon/addons/_triangle.scss +0 -63
- mixins/sass/bourbon/addons/_word-wrap.scss +0 -29
- mixins/sass/bourbon/css3/_animation.scss +0 -43
- mixins/sass/bourbon/css3/_appearance.scss +0 -3
- mixins/sass/bourbon/css3/_backface-visibility.scss +0 -3
- mixins/sass/bourbon/css3/_background-image.scss +0 -42
- mixins/sass/bourbon/css3/_background.scss +0 -55
- mixins/sass/bourbon/css3/_border-image.scss +0 -59
- mixins/sass/bourbon/css3/_calc.scss +0 -4
- mixins/sass/bourbon/css3/_columns.scss +0 -47
- mixins/sass/bourbon/css3/_filter.scss +0 -4
- mixins/sass/bourbon/css3/_flex-box.scss +0 -287
- mixins/sass/bourbon/css3/_font-face.scss +0 -24
- mixins/sass/bourbon/css3/_font-feature-settings.scss +0 -4
- mixins/sass/bourbon/css3/_hidpi-media-query.scss +0 -10
- mixins/sass/bourbon/css3/_hyphens.scss +0 -4
- mixins/sass/bourbon/css3/_image-rendering.scss +0 -14
- mixins/sass/bourbon/css3/_keyframes.scss +0 -36
- mixins/sass/bourbon/css3/_linear-gradient.scss +0 -38
- mixins/sass/bourbon/css3/_perspective.scss +0 -8
- mixins/sass/bourbon/css3/_placeholder.scss +0 -8
- mixins/sass/bourbon/css3/_radial-gradient.scss +0 -39
- mixins/sass/bourbon/css3/_selection.scss +0 -42
- mixins/sass/bourbon/css3/_text-decoration.scss +0 -19
- mixins/sass/bourbon/css3/_transform.scss +0 -15
- mixins/sass/bourbon/css3/_transition.scss +0 -71
- mixins/sass/bourbon/css3/_user-select.scss +0 -3
- mixins/sass/bourbon/functions/_assign-inputs.scss +0 -11
- mixins/sass/bourbon/functions/_contains-falsy.scss +0 -20
- mixins/sass/bourbon/functions/_contains.scss +0 -26
- mixins/sass/bourbon/functions/_is-length.scss +0 -11
- mixins/sass/bourbon/functions/_is-light.scss +0 -21
- mixins/sass/bourbon/functions/_is-number.scss +0 -11
- mixins/sass/bourbon/functions/_is-size.scss +0 -13
- mixins/sass/bourbon/functions/_modular-scale.scss +0 -69
- mixins/sass/bourbon/functions/_px-to-em.scss +0 -13
- mixins/sass/bourbon/functions/_px-to-rem.scss +0 -15
- mixins/sass/bourbon/functions/_shade.scss +0 -24
- mixins/sass/bourbon/functions/_strip-units.scss +0 -17
- mixins/sass/bourbon/functions/_tint.scss +0 -24
- mixins/sass/bourbon/functions/_transition-property-name.scss +0 -22
- mixins/sass/bourbon/functions/_unpack.scss +0 -27
- mixins/sass/bourbon/helpers/_convert-units.scss +0 -21
- mixins/sass/bourbon/helpers/_directional-values.scss +0 -96
- mixins/sass/bourbon/helpers/_font-source-declaration.scss +0 -43
- mixins/sass/bourbon/helpers/_gradient-positions-parser.scss +0 -13
- mixins/sass/bourbon/helpers/_linear-angle-parser.scss +0 -25
- mixins/sass/bourbon/helpers/_linear-gradient-parser.scss +0 -41
- mixins/sass/bourbon/helpers/_linear-positions-parser.scss +0 -61
- mixins/sass/bourbon/helpers/_linear-side-corner-parser.scss +0 -31
- mixins/sass/bourbon/helpers/_radial-arg-parser.scss +0 -69
- mixins/sass/bourbon/helpers/_radial-gradient-parser.scss +0 -50
- mixins/sass/bourbon/helpers/_radial-positions-parser.scss +0 -18
- mixins/sass/bourbon/helpers/_render-gradients.scss +0 -26
- mixins/sass/bourbon/helpers/_shape-size-stripper.scss +0 -10
- mixins/sass/bourbon/helpers/_str-to-num.scss +0 -50
- mixins/sass/bourbon/settings/_asset-pipeline.scss +0 -7
- mixins/sass/bourbon/settings/_prefixer.scss +0 -9
- mixins/sass/bourbon/settings/_px-to-em.scss +0 -1
- mixins/sass/mixins.scss +0 -2
- mixins/sass/neat/_neat-helpers.scss +0 -8
- mixins/sass/neat/_neat.scss +0 -23
- mixins/sass/neat/functions/_new-breakpoint.scss +0 -49
- mixins/sass/neat/functions/_private.scss +0 -114
- mixins/sass/neat/grid/_box-sizing.scss +0 -15
- mixins/sass/neat/grid/_direction-context.scss +0 -33
- mixins/sass/neat/grid/_display-context.scss +0 -28
- mixins/sass/neat/grid/_fill-parent.scss +0 -22
- mixins/sass/neat/grid/_media.scss +0 -92
- mixins/sass/neat/grid/_omega.scss +0 -87
- mixins/sass/neat/grid/_outer-container.scss +0 -38
- mixins/sass/neat/grid/_pad.scss +0 -25
- mixins/sass/neat/grid/_private.scss +0 -35
- mixins/sass/neat/grid/_row.scss +0 -52
- mixins/sass/neat/grid/_shift.scss +0 -50
- mixins/sass/neat/grid/_span-columns.scss +0 -94
- mixins/sass/neat/grid/_to-deprecate.scss +0 -97
- mixins/sass/neat/grid/_visual-grid.scss +0 -42
- mixins/sass/neat/settings/_disable-warnings.scss +0 -13
- mixins/sass/neat/settings/_grid.scss +0 -51
- mixins/sass/neat/settings/_visual-grid.scss +0 -27
- readme.txt +11 -2
- widgets-for-siteorigin.php +25 -18
- widgets/ink-alrt-widget/ink-alrt-widget.php +2 -2
- widgets/ink-ardn-widget/ink-ardn-widget.php +2 -2
- widgets/ink-ardn-widget/js/accordion.js +2 -2
- widgets/ink-ardn-widget/js/accordion.min.js +1 -1
- widgets/ink-ardn-widget/tpl/accordion.php +6 -4
- widgets/ink-auds-widget/ink-auds-widget.php +2 -2
- widgets/ink-barc-widget/ink-barc-widget.php +2 -2
- widgets/ink-barc-widget/js/bar-counter.js +3 -2
- widgets/ink-barc-widget/js/bar-counter.min.js +1 -1
- widgets/ink-blgs-widget/css/blog.css +6 -0
- widgets/ink-blgs-widget/ink-blgs-widget.php +18 -3
- widgets/ink-blgs-widget/styles/thumb-above.less +15 -2
- widgets/ink-blgs-widget/styles/thumb-left.less +15 -1
- widgets/ink-blgs-widget/styles/thumb-right.less +15 -1
- widgets/ink-blgs-widget/tpl/thumb-above.php +14 -10
- widgets/ink-blgs-widget/tpl/thumb-left.php +14 -10
- widgets/ink-blgs-widget/tpl/thumb-right.php +14 -10
- widgets/ink-btns-widget/ink-btns-widget.php +2 -2
- widgets/ink-crlc-widget/ink-crlc-widget.php +7 -7
- widgets/ink-crlc-widget/js/circle-counter.js +3 -2
- widgets/ink-crlc-widget/js/circle-counter.min.js +1 -1
- widgets/ink-dvdr-widget/ink-dvdr-widget.php +2 -2
- widgets/ink-fard-widget/ink-fard-widget.php +2 -2
- widgets/ink-fard-widget/tpl/filter-accordion.php +4 -2
- widgets/ink-mbox-widget/ink-mbox-widget.php +2 -2
- widgets/ink-mbox-widget/tpl/media-box.php +6 -6
- widgets/ink-numc-widget/ink-numc-widget.php +2 -2
- widgets/ink-numc-widget/js/number-counter.js +3 -1
- widgets/ink-numc-widget/js/number-counter.min.js +1 -1
- widgets/ink-prit-widget/ink-prit-widget.php +2 -2
- widgets/ink-prsn-widget/css/person.css +7 -0
- widgets/ink-prsn-widget/ink-prsn-widget.php +8 -2
- widgets/ink-prsn-widget/tpl/person.php +1 -1
- widgets/ink-ptfl-widget/ink-ptfl-widget.php +2 -2
- widgets/ink-ptfl-widget/tpl/folio-default.php +2 -1
- widgets/ink-ptfl-widget/tpl/folio-gallery.php +2 -1
- widgets/ink-sldr-widget/css/slider.css +115 -0
- widgets/ink-sldr-widget/ink-sldr-widget.php +253 -0
- widgets/ink-sldr-widget/js/slider.js +6 -0
- widgets/ink-sldr-widget/js/slider.min.js +1 -0
- widgets/ink-sldr-widget/styles/slider.less +52 -0
- widgets/ink-sldr-widget/tpl/slider.php +40 -0
- widgets/ink-tabb-widget/ink-tabb-widget.php +2 -2
- widgets/ink-tabb-widget/tpl/tabs.php +4 -2
- widgets/ink-tsml-widget/ink-tsml-widget.php +2 -2
- widgets/ink-tsml-widget/tpl/testimonial.php +1 -1
- widgets/ink-vids-widget/ink-vids-widget.php +2 -2
css/defaults.scss
DELETED
@@ -1,102 +0,0 @@
|
|
1 |
-
/* text alignments */
|
2 |
-
.iw-text-left {
|
3 |
-
text-align: left !important;
|
4 |
-
}
|
5 |
-
|
6 |
-
.iw-text-right {
|
7 |
-
text-align: right !important;
|
8 |
-
}
|
9 |
-
|
10 |
-
.iw-text-center {
|
11 |
-
text-align: center !important;
|
12 |
-
}
|
13 |
-
|
14 |
-
.iw-text-justify {
|
15 |
-
text-align: justify !important;
|
16 |
-
}
|
17 |
-
|
18 |
-
/* small displays */
|
19 |
-
@media only screen {
|
20 |
-
|
21 |
-
.iw-small,
|
22 |
-
.iw-med-dw {
|
23 |
-
display: inherit !important;
|
24 |
-
}
|
25 |
-
|
26 |
-
.iw-med-up,
|
27 |
-
.iw-medium,
|
28 |
-
.iw-large {
|
29 |
-
display: none !important;
|
30 |
-
}
|
31 |
-
|
32 |
-
}
|
33 |
-
|
34 |
-
/* medium displays */
|
35 |
-
@media only screen and ( min-width: 640px ) {
|
36 |
-
|
37 |
-
.iw-med-dw,
|
38 |
-
.iw-med-up,
|
39 |
-
.iw-medium {
|
40 |
-
display: inherit !important;
|
41 |
-
}
|
42 |
-
|
43 |
-
.iw-small,
|
44 |
-
.iw-large {
|
45 |
-
display: none !important;
|
46 |
-
}
|
47 |
-
|
48 |
-
}
|
49 |
-
|
50 |
-
/* large displays */
|
51 |
-
@media only screen and ( min-width: 1024px ) {
|
52 |
-
|
53 |
-
.iw-med-up,
|
54 |
-
.iw-large {
|
55 |
-
display: inherit !important;
|
56 |
-
}
|
57 |
-
|
58 |
-
.iw-small,
|
59 |
-
.iw-med-dw,
|
60 |
-
.iw-medium {
|
61 |
-
display: none !important;
|
62 |
-
}
|
63 |
-
|
64 |
-
}
|
65 |
-
|
66 |
-
/* Orientation targeting */
|
67 |
-
.iw-show-l,
|
68 |
-
.iw-hide-p {
|
69 |
-
display: inherit !important;
|
70 |
-
}
|
71 |
-
|
72 |
-
.iw-hide-l,
|
73 |
-
.iw-show-p {
|
74 |
-
display: none !important;
|
75 |
-
}
|
76 |
-
|
77 |
-
@media only screen and ( orientation: landscape ) {
|
78 |
-
|
79 |
-
.iw-show-l,
|
80 |
-
.iw-hide-p {
|
81 |
-
display: inherit !important;
|
82 |
-
}
|
83 |
-
|
84 |
-
.iw-hide-l,
|
85 |
-
.iw-show-p {
|
86 |
-
display: none !important;
|
87 |
-
}
|
88 |
-
|
89 |
-
}
|
90 |
-
@media only screen and ( orientation: portrait ) {
|
91 |
-
|
92 |
-
.iw-show-p,
|
93 |
-
.iw-hide-l {
|
94 |
-
display: inherit !important;
|
95 |
-
}
|
96 |
-
|
97 |
-
.iw-hide-p,
|
98 |
-
.iw-show-l {
|
99 |
-
display: none !important;
|
100 |
-
}
|
101 |
-
|
102 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/slick.css
ADDED
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Slider */
|
2 |
+
.slick-slider
|
3 |
+
{
|
4 |
+
position: relative;
|
5 |
+
|
6 |
+
display: block;
|
7 |
+
box-sizing: border-box;
|
8 |
+
|
9 |
+
-webkit-user-select: none;
|
10 |
+
-moz-user-select: none;
|
11 |
+
-ms-user-select: none;
|
12 |
+
user-select: none;
|
13 |
+
|
14 |
+
-webkit-touch-callout: none;
|
15 |
+
-khtml-user-select: none;
|
16 |
+
-ms-touch-action: pan-y;
|
17 |
+
touch-action: pan-y;
|
18 |
+
-webkit-tap-highlight-color: transparent;
|
19 |
+
}
|
20 |
+
|
21 |
+
.slick-list
|
22 |
+
{
|
23 |
+
position: relative;
|
24 |
+
|
25 |
+
display: block;
|
26 |
+
overflow: hidden;
|
27 |
+
|
28 |
+
margin: 0;
|
29 |
+
padding: 0;
|
30 |
+
}
|
31 |
+
.slick-list:focus
|
32 |
+
{
|
33 |
+
outline: none;
|
34 |
+
}
|
35 |
+
.slick-list.dragging
|
36 |
+
{
|
37 |
+
cursor: pointer;
|
38 |
+
cursor: hand;
|
39 |
+
}
|
40 |
+
|
41 |
+
.slick-slider .slick-track,
|
42 |
+
.slick-slider .slick-list
|
43 |
+
{
|
44 |
+
-webkit-transform: translate3d(0, 0, 0);
|
45 |
+
-moz-transform: translate3d(0, 0, 0);
|
46 |
+
-ms-transform: translate3d(0, 0, 0);
|
47 |
+
-o-transform: translate3d(0, 0, 0);
|
48 |
+
transform: translate3d(0, 0, 0);
|
49 |
+
}
|
50 |
+
|
51 |
+
.slick-track
|
52 |
+
{
|
53 |
+
position: relative;
|
54 |
+
top: 0;
|
55 |
+
left: 0;
|
56 |
+
|
57 |
+
display: block;
|
58 |
+
}
|
59 |
+
.slick-track:before,
|
60 |
+
.slick-track:after
|
61 |
+
{
|
62 |
+
display: table;
|
63 |
+
|
64 |
+
content: '';
|
65 |
+
}
|
66 |
+
.slick-track:after
|
67 |
+
{
|
68 |
+
clear: both;
|
69 |
+
}
|
70 |
+
.slick-loading .slick-track
|
71 |
+
{
|
72 |
+
visibility: hidden;
|
73 |
+
}
|
74 |
+
|
75 |
+
.slick-slide
|
76 |
+
{
|
77 |
+
display: none;
|
78 |
+
float: left;
|
79 |
+
|
80 |
+
height: 100%;
|
81 |
+
min-height: 1px;
|
82 |
+
}
|
83 |
+
[dir='rtl'] .slick-slide
|
84 |
+
{
|
85 |
+
float: right;
|
86 |
+
}
|
87 |
+
.slick-slide img
|
88 |
+
{
|
89 |
+
display: block;
|
90 |
+
}
|
91 |
+
.slick-slide.slick-loading img
|
92 |
+
{
|
93 |
+
display: none;
|
94 |
+
}
|
95 |
+
.slick-slide.dragging img
|
96 |
+
{
|
97 |
+
pointer-events: none;
|
98 |
+
}
|
99 |
+
.slick-initialized .slick-slide
|
100 |
+
{
|
101 |
+
display: block;
|
102 |
+
}
|
103 |
+
.slick-loading .slick-slide
|
104 |
+
{
|
105 |
+
visibility: hidden;
|
106 |
+
}
|
107 |
+
.slick-vertical .slick-slide
|
108 |
+
{
|
109 |
+
display: block;
|
110 |
+
|
111 |
+
height: auto;
|
112 |
+
|
113 |
+
border: 1px solid transparent;
|
114 |
+
}
|
115 |
+
.slick-arrow.slick-hidden {
|
116 |
+
display: none;
|
117 |
+
}
|
118 |
+
|
119 |
+
@font-face {
|
120 |
+
font-family: "slick";
|
121 |
+
src: slick-font-url("../fonts/slick/slick.eot");
|
122 |
+
src: slick-font-url("../fonts/slick/slick.eot?#iefix") format("embedded-opentype"),
|
123 |
+
slick-font-url("../fonts/slick/slick.woff") format("woff"),
|
124 |
+
slick-font-url("../fonts/slick/slick.ttf") format("truetype"),
|
125 |
+
slick-font-url("../fonts/slick/slick.svg#slick") format("svg");
|
126 |
+
font-weight: normal;
|
127 |
+
font-style: normal;
|
128 |
+
}
|
fonts/slick/slick.eot
ADDED
Binary file
|
fonts/slick/slick.svg
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata>Generated by Fontastic.me</metadata>
|
5 |
+
<defs>
|
6 |
+
<font id="slick" horiz-adv-x="512">
|
7 |
+
<font-face font-family="slick" units-per-em="512" ascent="480" descent="-32"/>
|
8 |
+
<missing-glyph horiz-adv-x="512" />
|
9 |
+
|
10 |
+
<glyph unicode="→" d="M241 113l130 130c4 4 6 8 6 13 0 5-2 9-6 13l-130 130c-3 3-7 5-12 5-5 0-10-2-13-5l-29-30c-4-3-6-7-6-12 0-5 2-10 6-13l87-88-87-88c-4-3-6-8-6-13 0-5 2-9 6-12l29-30c3-3 8-5 13-5 5 0 9 2 12 5z m234 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
|
11 |
+
<glyph unicode="←" d="M296 113l29 30c4 3 6 7 6 12 0 5-2 10-6 13l-87 88 87 88c4 3 6 8 6 13 0 5-2 9-6 12l-29 30c-3 3-8 5-13 5-5 0-9-2-12-5l-130-130c-4-4-6-8-6-13 0-5 2-9 6-13l130-130c3-3 7-5 12-5 5 0 10 2 13 5z m179 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
|
12 |
+
<glyph unicode="•" d="M475 256c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
|
13 |
+
<glyph unicode="a" d="M475 439l0-128c0-5-1-9-5-13-4-4-8-5-13-5l-128 0c-8 0-13 3-17 11-3 7-2 14 4 20l40 39c-28 26-62 39-100 39-20 0-39-4-57-11-18-8-33-18-46-32-14-13-24-28-32-46-7-18-11-37-11-57 0-20 4-39 11-57 8-18 18-33 32-46 13-14 28-24 46-32 18-7 37-11 57-11 23 0 44 5 64 15 20 9 38 23 51 42 2 1 4 3 7 3 3 0 5-1 7-3l39-39c2-2 3-3 3-6 0-2-1-4-2-6-21-25-46-45-76-59-29-14-60-20-93-20-30 0-58 5-85 17-27 12-51 27-70 47-20 19-35 43-47 70-12 27-17 55-17 85 0 30 5 58 17 85 12 27 27 51 47 70 19 20 43 35 70 47 27 12 55 17 85 17 28 0 55-5 81-15 26-11 50-26 70-45l37 37c6 6 12 7 20 4 8-4 11-9 11-17z"/>
|
14 |
+
</font></defs></svg>
|
fonts/slick/slick.ttf
ADDED
Binary file
|
fonts/slick/slick.woff
ADDED
Binary file
|
freemius/assets/css/admin/account.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .button i.dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table var,.fs-key-value-table code{color:#0073AA;font-size:16px;background:none}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}
|
1 |
+
#fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .button i.dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}
|
freemius/assets/css/admin/deactivation-feedback.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}.fs-modal .fs-modal-dialog li.reason{margin-bottom:10px}.fs-modal .fs-modal-dialog li.reason .reason-input{margin-left:29px}.fs-modal .fs-modal-dialog li.reason label{display:table}.fs-modal .fs-modal-dialog li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}.fs-modal .reason-input{margin:3px 0 3px 22px}.fs-modal .reason-input input,.fs-modal .reason-input textarea{width:100%}body.has-fs-modal{overflow:hidden}#the-list .deactivate>.fs-slug{display:none}
|
1 |
+
.fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}.fs-modal .fs-modal-dialog li.reason{margin-bottom:10px}.fs-modal .fs-modal-dialog li.reason .reason-input,.fs-modal .fs-modal-dialog li.reason .internal-message{margin-left:29px}.fs-modal .fs-modal-dialog li.reason label{display:table}.fs-modal .fs-modal-dialog li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}.fs-modal .reason-input,.fs-modal .internal-message{margin:3px 0 3px 22px}.fs-modal .reason-input input,.fs-modal .reason-input textarea,.fs-modal .internal-message input,.fs-modal .internal-message textarea{width:100%}.fs-modal li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}body.has-fs-modal{overflow:hidden}#the-list .deactivate>.fs-slug{display:none}
|
freemius/assets/css/admin/dialog-boxes.css
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
.fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}
|
2 |
+
#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-license-activation .fs-modal-body input.license_key{width:100%}.fs-modal.fs-modal-license-key-resend .button-close{float:right;margin:5px}.fs-modal.fs-modal-license-key-resend .button-close:hover{cursor:pointer}.fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend .fs-modal-body input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{margin-top:2px}}
|
3 |
+
a.show-license-resend-modal{margin-top:4px;display:inline-block}
|
freemius/assets/css/admin/license-activation.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body input.license_key{width:100%}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}body.has-fs-modal{overflow:hidden}
|
1 |
+
.fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body .license-activation-message{margin:0;display:none}.fs-modal .fs-modal-body input.license_key{width:100%}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}body.has-fs-modal{overflow:hidden}
|
freemius/assets/scss/admin/_deactivation-feedback.scss
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import "../colors";
|
2 |
+
|
3 |
+
.fs-modal.fs-modal-deactivation-feedback {
|
4 |
+
.reason-input, .internal-message {
|
5 |
+
margin: 3px 0 3px 22px;
|
6 |
+
|
7 |
+
input, textarea {
|
8 |
+
width: 100%;
|
9 |
+
}
|
10 |
+
}
|
11 |
+
|
12 |
+
li.reason {
|
13 |
+
&.has-internal-message .internal-message {
|
14 |
+
border: 1px solid lighten($darkest-color, 80%);
|
15 |
+
padding: 7px;
|
16 |
+
display: none;
|
17 |
+
}
|
18 |
+
|
19 |
+
@media (max-width: 650px) {
|
20 |
+
li.reason {
|
21 |
+
margin-bottom: 10px;
|
22 |
+
|
23 |
+
.reason-input, .internal-message {
|
24 |
+
margin-left: 29px;
|
25 |
+
}
|
26 |
+
|
27 |
+
label {
|
28 |
+
display: table;
|
29 |
+
|
30 |
+
> span {
|
31 |
+
display: table-cell;
|
32 |
+
font-size: 1.3em;
|
33 |
+
}
|
34 |
+
}
|
35 |
+
}
|
36 |
+
}
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
#the-list .deactivate > .fs-slug {
|
41 |
+
display: none;
|
42 |
+
}
|
freemius/assets/scss/admin/_license-activation.scss
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.fs-modal.fs-modal-license-activation {
|
2 |
+
.fs-modal-body {
|
3 |
+
input.license_key {
|
4 |
+
width: 100%;
|
5 |
+
}
|
6 |
+
}
|
7 |
+
}
|
freemius/assets/scss/admin/_license-key-resend.scss
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.fs-modal.fs-modal-license-key-resend {
|
2 |
+
.button-close {
|
3 |
+
float: right;
|
4 |
+
margin: 5px;
|
5 |
+
|
6 |
+
&:hover {
|
7 |
+
cursor: pointer;
|
8 |
+
}
|
9 |
+
}
|
10 |
+
|
11 |
+
.fs-modal-body {
|
12 |
+
.input-container > .email-address-container {
|
13 |
+
overflow: hidden;
|
14 |
+
padding-right: 2px;
|
15 |
+
}
|
16 |
+
|
17 |
+
input.email-address {
|
18 |
+
width: 100%;
|
19 |
+
}
|
20 |
+
|
21 |
+
.button-container {
|
22 |
+
float: right;
|
23 |
+
margin-left: 7px;
|
24 |
+
|
25 |
+
@media (max-width: 650px) {
|
26 |
+
margin-top: 2px;
|
27 |
+
}
|
28 |
+
}
|
29 |
+
}
|
30 |
+
}
|
31 |
+
|
32 |
+
a.show-license-resend-modal {
|
33 |
+
margin-top: 4px;
|
34 |
+
display: inline-block;
|
35 |
+
}
|
freemius/assets/scss/admin/{license-activation.scss → _modal-common.scss}
RENAMED
@@ -1,3 +1,5 @@
|
|
|
|
|
|
1 |
.fs-modal {
|
2 |
position: fixed;
|
3 |
overflow: auto;
|
@@ -17,14 +19,14 @@
|
|
17 |
top: -100%;
|
18 |
z-index: 100001;
|
19 |
width: 596px;
|
20 |
-
|
21 |
@media (max-width: 650px) {
|
22 |
margin-left: -50%;
|
23 |
box-sizing: border-box;
|
24 |
padding-left: 10px;
|
25 |
padding-right: 10px;
|
26 |
width: 100%;
|
27 |
-
|
28 |
.fs-modal-panel > h3 > strong {
|
29 |
font-size: 1.3em;
|
30 |
}
|
@@ -53,10 +55,6 @@
|
|
53 |
.fs-modal-body {
|
54 |
border-bottom: 0;
|
55 |
|
56 |
-
input.license_key {
|
57 |
-
width: 100%;
|
58 |
-
}
|
59 |
-
|
60 |
p {
|
61 |
font-size: 14px;
|
62 |
}
|
@@ -64,7 +62,7 @@
|
|
64 |
h2 {
|
65 |
font-size: 20px;
|
66 |
}
|
67 |
-
|
68 |
> div {
|
69 |
margin-top: 10px;
|
70 |
|
@@ -79,7 +77,7 @@
|
|
79 |
.fs-modal-footer {
|
80 |
border-top: #eeeeee solid 1px;
|
81 |
text-align: right;
|
82 |
-
|
83 |
> .button {
|
84 |
margin: 0 7px;
|
85 |
|
@@ -89,8 +87,15 @@
|
|
89 |
}
|
90 |
}
|
91 |
|
92 |
-
.fs-modal-panel
|
93 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
}
|
95 |
}
|
96 |
|
1 |
+
@import "../colors";
|
2 |
+
|
3 |
.fs-modal {
|
4 |
position: fixed;
|
5 |
overflow: auto;
|
19 |
top: -100%;
|
20 |
z-index: 100001;
|
21 |
width: 596px;
|
22 |
+
|
23 |
@media (max-width: 650px) {
|
24 |
margin-left: -50%;
|
25 |
box-sizing: border-box;
|
26 |
padding-left: 10px;
|
27 |
padding-right: 10px;
|
28 |
width: 100%;
|
29 |
+
|
30 |
.fs-modal-panel > h3 > strong {
|
31 |
font-size: 1.3em;
|
32 |
}
|
55 |
.fs-modal-body {
|
56 |
border-bottom: 0;
|
57 |
|
|
|
|
|
|
|
|
|
58 |
p {
|
59 |
font-size: 14px;
|
60 |
}
|
62 |
h2 {
|
63 |
font-size: 20px;
|
64 |
}
|
65 |
+
|
66 |
> div {
|
67 |
margin-top: 10px;
|
68 |
|
77 |
.fs-modal-footer {
|
78 |
border-top: #eeeeee solid 1px;
|
79 |
text-align: right;
|
80 |
+
|
81 |
> .button {
|
82 |
margin: 0 7px;
|
83 |
|
87 |
}
|
88 |
}
|
89 |
|
90 |
+
.fs-modal-panel {
|
91 |
+
> .notice.inline {
|
92 |
+
margin: 0;
|
93 |
+
display: none;
|
94 |
+
}
|
95 |
+
|
96 |
+
&:not(.active) {
|
97 |
+
display: none;
|
98 |
+
}
|
99 |
}
|
100 |
}
|
101 |
|
freemius/assets/scss/admin/account.scss
CHANGED
@@ -58,6 +58,10 @@
|
|
58 |
}
|
59 |
}
|
60 |
|
|
|
|
|
|
|
|
|
61 |
.rtl #fs_account .fs-header-actions
|
62 |
{
|
63 |
left: 15px;
|
@@ -106,12 +110,21 @@
|
|
106 |
padding: 10px;
|
107 |
}
|
108 |
|
109 |
-
|
|
|
|
|
|
|
|
|
110 |
{
|
111 |
color: #0073AA;
|
112 |
font-size: 16px;
|
113 |
background: none;
|
114 |
}
|
|
|
|
|
|
|
|
|
|
|
115 |
}
|
116 |
|
117 |
label.fs-tag
|
58 |
}
|
59 |
}
|
60 |
|
61 |
+
#fs_account_details .button-group {
|
62 |
+
float: right;
|
63 |
+
}
|
64 |
+
|
65 |
.rtl #fs_account .fs-header-actions
|
66 |
{
|
67 |
left: 15px;
|
110 |
padding: 10px;
|
111 |
}
|
112 |
|
113 |
+
code {
|
114 |
+
line-height: 28px;
|
115 |
+
}
|
116 |
+
|
117 |
+
var, code, input[type="text"]
|
118 |
{
|
119 |
color: #0073AA;
|
120 |
font-size: 16px;
|
121 |
background: none;
|
122 |
}
|
123 |
+
|
124 |
+
input[type="text"] {
|
125 |
+
width: 100%;
|
126 |
+
font-weight: bold;
|
127 |
+
}
|
128 |
}
|
129 |
|
130 |
label.fs-tag
|
freemius/assets/scss/admin/deactivation-feedback.scss
DELETED
@@ -1,120 +0,0 @@
|
|
1 |
-
.fs-modal {
|
2 |
-
position: fixed;
|
3 |
-
overflow: auto;
|
4 |
-
height: 100%;
|
5 |
-
width: 100%;
|
6 |
-
top: 0;
|
7 |
-
z-index: 100000;
|
8 |
-
display: none;
|
9 |
-
background: rgba(0, 0, 0, 0.6);
|
10 |
-
|
11 |
-
.fs-modal-dialog {
|
12 |
-
background: transparent;
|
13 |
-
position: absolute;
|
14 |
-
left: 50%;
|
15 |
-
margin-left: -298px;
|
16 |
-
padding-bottom: 30px;
|
17 |
-
top: -100%;
|
18 |
-
z-index: 100001;
|
19 |
-
width: 596px;
|
20 |
-
|
21 |
-
@media (max-width: 650px) {
|
22 |
-
margin-left: -50%;
|
23 |
-
box-sizing: border-box;
|
24 |
-
padding-left: 10px;
|
25 |
-
padding-right: 10px;
|
26 |
-
width: 100%;
|
27 |
-
|
28 |
-
.fs-modal-panel > h3 > strong {
|
29 |
-
font-size: 1.3em;
|
30 |
-
}
|
31 |
-
|
32 |
-
li.reason {
|
33 |
-
margin-bottom: 10px;
|
34 |
-
|
35 |
-
.reason-input {
|
36 |
-
margin-left: 29px;
|
37 |
-
}
|
38 |
-
|
39 |
-
label {
|
40 |
-
display: table;
|
41 |
-
|
42 |
-
> span {
|
43 |
-
display: table-cell;
|
44 |
-
font-size: 1.3em;
|
45 |
-
}
|
46 |
-
}
|
47 |
-
}
|
48 |
-
}
|
49 |
-
}
|
50 |
-
|
51 |
-
&.active {
|
52 |
-
display: block;
|
53 |
-
|
54 |
-
&:before {
|
55 |
-
display: block;
|
56 |
-
}
|
57 |
-
|
58 |
-
.fs-modal-dialog {
|
59 |
-
top: 10%;
|
60 |
-
}
|
61 |
-
}
|
62 |
-
|
63 |
-
.fs-modal-body,
|
64 |
-
.fs-modal-footer {
|
65 |
-
border: 0;
|
66 |
-
background: #fefefe;
|
67 |
-
padding: 20px;
|
68 |
-
}
|
69 |
-
|
70 |
-
.fs-modal-body {
|
71 |
-
border-bottom: 0;
|
72 |
-
|
73 |
-
h2 {
|
74 |
-
font-size: 20px;
|
75 |
-
}
|
76 |
-
|
77 |
-
> div {
|
78 |
-
margin-top: 10px;
|
79 |
-
|
80 |
-
h2 {
|
81 |
-
font-weight: bold;
|
82 |
-
font-size: 20px;
|
83 |
-
margin-top: 0;
|
84 |
-
}
|
85 |
-
}
|
86 |
-
}
|
87 |
-
|
88 |
-
.fs-modal-footer {
|
89 |
-
border-top: #eeeeee solid 1px;
|
90 |
-
text-align: right;
|
91 |
-
|
92 |
-
> .button {
|
93 |
-
margin: 0 7px;
|
94 |
-
|
95 |
-
&:first-child {
|
96 |
-
margin: 0;
|
97 |
-
}
|
98 |
-
}
|
99 |
-
}
|
100 |
-
|
101 |
-
.fs-modal-panel:not(.active) {
|
102 |
-
display: none;
|
103 |
-
}
|
104 |
-
|
105 |
-
.reason-input {
|
106 |
-
margin: 3px 0 3px 22px;
|
107 |
-
|
108 |
-
input, textarea {
|
109 |
-
width: 100%;
|
110 |
-
}
|
111 |
-
}
|
112 |
-
}
|
113 |
-
|
114 |
-
body.has-fs-modal {
|
115 |
-
overflow: hidden;
|
116 |
-
}
|
117 |
-
|
118 |
-
#the-list .deactivate > .fs-slug {
|
119 |
-
display: none;
|
120 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
freemius/assets/scss/admin/dialog-boxes.scss
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
@import "modal-common";
|
2 |
+
@import "deactivation-feedback";
|
3 |
+
@import "license-activation";
|
4 |
+
@import "license-key-resend";
|
freemius/includes/class-freemius.php
CHANGED
@@ -444,9 +444,6 @@
|
|
444 |
}
|
445 |
}
|
446 |
|
447 |
-
// Hook to plugin uninstall.
|
448 |
-
register_uninstall_hook( $this->_plugin_main_file_path, array( 'Freemius', '_uninstall_plugin_hook' ) );
|
449 |
-
|
450 |
if ( ! $this->is_ajax() ) {
|
451 |
if ( ! $this->is_addon() ) {
|
452 |
add_action( 'init', array( &$this, '_add_default_submenu_items' ), WP_FS__LOWEST_PRIORITY );
|
@@ -464,6 +461,31 @@
|
|
464 |
$this->add_action( 'sdk_version_update', array( &$this, '_data_migration' ), WP_FS__DEFAULT_PRIORITY, 2 );
|
465 |
}
|
466 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
467 |
/**
|
468 |
* @author Vova Feldman (@svovaf)
|
469 |
* @since 1.0.9
|
@@ -495,6 +517,12 @@
|
|
495 |
add_action( 'admin_footer', array( &$this, '_add_deactivation_feedback_dialog_box' ) );
|
496 |
}
|
497 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
498 |
}
|
499 |
}
|
500 |
|
@@ -537,8 +565,6 @@
|
|
537 |
* @since 1.1.2
|
538 |
*/
|
539 |
function _add_deactivation_feedback_dialog_box() {
|
540 |
-
fs_enqueue_local_style( 'fs_deactivation_feedback', '/admin/deactivation-feedback.css' );
|
541 |
-
|
542 |
/* Check the type of user:
|
543 |
* 1. Long-term (long-term)
|
544 |
* 2. Non-registered and non-anonymous short-term (non-registered-and-non-anonymous-short-term).
|
@@ -582,7 +608,7 @@
|
|
582 |
/**
|
583 |
* @todo Deactivation form core functions should be loaded only once! Otherwise, when there are multiple Freemius powered plugins the same code is loaded multiple times. The only thing that should be loaded differently is the various deactivation reasons object based on the state of the plugin.
|
584 |
*/
|
585 |
-
fs_require_template( 'deactivation
|
586 |
}
|
587 |
|
588 |
/**
|
@@ -594,6 +620,16 @@
|
|
594 |
* @return array The uninstall reasons for the specified user type.
|
595 |
*/
|
596 |
function _get_uninstall_reasons( $user_type = 'long-term' ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
597 |
$reason_found_better_plugin = array(
|
598 |
'id' => 2,
|
599 |
'text' => __fs( 'reason-found-a-better-plugin', $this->_slug ),
|
@@ -633,13 +669,15 @@
|
|
633 |
'id' => 4,
|
634 |
'text' => __fs( 'reason-broke-my-site', $this->_slug ),
|
635 |
'input_type' => '',
|
636 |
-
'input_placeholder' => ''
|
|
|
637 |
),
|
638 |
array(
|
639 |
'id' => 5,
|
640 |
'text' => __fs( 'reason-suddenly-stopped-working', $this->_slug ),
|
641 |
'input_type' => '',
|
642 |
-
'input_placeholder' => ''
|
|
|
643 |
)
|
644 |
);
|
645 |
|
@@ -652,6 +690,24 @@
|
|
652 |
);
|
653 |
}
|
654 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
655 |
$long_term_user_reasons[] = $reason_temporary_deactivation;
|
656 |
$long_term_user_reasons[] = $reason_other;
|
657 |
|
@@ -664,12 +720,7 @@
|
|
664 |
'input_type' => '',
|
665 |
'input_placeholder' => ''
|
666 |
),
|
667 |
-
|
668 |
-
'id' => 9,
|
669 |
-
'text' => __fs( 'reason-dont-like-to-share-my-information', $this->_slug ),
|
670 |
-
'input_type' => '',
|
671 |
-
'input_placeholder' => ''
|
672 |
-
),
|
673 |
$reason_found_better_plugin,
|
674 |
$reason_temporary_deactivation,
|
675 |
$reason_other
|
@@ -679,7 +730,8 @@
|
|
679 |
'id' => 10,
|
680 |
'text' => __fs( 'reason-couldnt-make-it-work', $this->_slug ),
|
681 |
'input_type' => '',
|
682 |
-
'input_placeholder' => ''
|
|
|
683 |
),
|
684 |
$reason_found_better_plugin,
|
685 |
array(
|
@@ -1108,6 +1160,7 @@
|
|
1108 |
$users = self::get_all_users();
|
1109 |
$addons = self::get_all_addons();
|
1110 |
$account_addons = self::get_all_account_addons();
|
|
|
1111 |
|
1112 |
// $plans = self::get_all_plans();
|
1113 |
// $licenses = self::get_all_licenses();
|
@@ -1117,6 +1170,7 @@
|
|
1117 |
'users' => $users,
|
1118 |
'addons' => $addons,
|
1119 |
'account_addons' => $account_addons,
|
|
|
1120 |
);
|
1121 |
|
1122 |
fs_enqueue_local_style( 'fs_account', '/admin/debug.css' );
|
@@ -2077,23 +2131,25 @@
|
|
2077 |
|
2078 |
$this->do_action( 'initiated' );
|
2079 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2080 |
if ( ! $this->is_addon() ) {
|
2081 |
if ( $this->is_registered() ) {
|
2082 |
// Fix for upgrade from versions < 1.0.9.
|
2083 |
if ( ! isset( $this->_storage->activation_timestamp ) ) {
|
2084 |
$this->_storage->activation_timestamp = WP_FS__SCRIPT_START_TIME;
|
2085 |
}
|
2086 |
-
if ( $this->_storage->prev_is_premium !== $this->_plugin->is_premium ) {
|
2087 |
-
if ( isset( $this->_storage->prev_is_premium ) ) {
|
2088 |
-
add_action( is_admin() ? 'admin_init' : 'init', array(
|
2089 |
-
&$this,
|
2090 |
-
'_plugin_code_type_changed'
|
2091 |
-
) );
|
2092 |
-
} else {
|
2093 |
-
// Set for code type for the first time.
|
2094 |
-
$this->_storage->prev_is_premium = $this->_plugin->is_premium;
|
2095 |
-
}
|
2096 |
-
}
|
2097 |
|
2098 |
$this->do_action( 'after_init_plugin_registered' );
|
2099 |
} else if ( $this->is_anonymous() ) {
|
@@ -2113,14 +2169,23 @@
|
|
2113 |
|
2114 |
// Add license activation link and AJAX request handler.
|
2115 |
if ( $this->has_paid_plan() ) {
|
2116 |
-
$this->_add_license_action_link();
|
2117 |
-
|
2118 |
global $pagenow;
|
2119 |
if ( 'plugins.php' === $pagenow ) {
|
2120 |
-
|
|
|
|
|
|
|
|
|
2121 |
}
|
2122 |
|
2123 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2124 |
}
|
2125 |
}
|
2126 |
|
@@ -2311,6 +2376,21 @@
|
|
2311 |
return false;
|
2312 |
}
|
2313 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2314 |
/**
|
2315 |
* Handles plugin's code type change (free <--> premium).
|
2316 |
*
|
@@ -2318,6 +2398,8 @@
|
|
2318 |
* @since 1.0.9
|
2319 |
*/
|
2320 |
function _plugin_code_type_changed() {
|
|
|
|
|
2321 |
// Schedule code type changes event.
|
2322 |
// $this->sync_install();
|
2323 |
$this->schedule_install_sync();
|
@@ -2357,6 +2439,19 @@
|
|
2357 |
}
|
2358 |
}
|
2359 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2360 |
// Update is_premium of latest version.
|
2361 |
$this->_storage->prev_is_premium = $this->_plugin->is_premium;
|
2362 |
}
|
@@ -2740,6 +2835,8 @@
|
|
2740 |
// Sync add-ons collection.
|
2741 |
$this->_sync_addons( true );
|
2742 |
}
|
|
|
|
|
2743 |
}
|
2744 |
|
2745 |
/**
|
@@ -3302,6 +3399,8 @@
|
|
3302 |
return;
|
3303 |
}
|
3304 |
|
|
|
|
|
3305 |
// Clear API cache on activation.
|
3306 |
FS_Api::clear_cache();
|
3307 |
|
@@ -3445,6 +3544,10 @@
|
|
3445 |
$this->_storage->is_plugin_new_install = false;
|
3446 |
}
|
3447 |
|
|
|
|
|
|
|
|
|
3448 |
$this->clear_sync_cron();
|
3449 |
$this->clear_install_sync_cron();
|
3450 |
|
@@ -4087,7 +4190,17 @@
|
|
4087 |
if ( ! isset( $this->_plugin_data ) ) {
|
4088 |
self::require_plugin_essentials();
|
4089 |
|
4090 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4091 |
}
|
4092 |
|
4093 |
return $this->_plugin_data;
|
@@ -4825,10 +4938,12 @@
|
|
4825 |
* @author Vova Feldman (@svovaf)
|
4826 |
* @since 1.0.6
|
4827 |
*
|
|
|
|
|
4828 |
* @return FS_Plugin_License[]|object
|
4829 |
*/
|
4830 |
-
function _sync_licenses() {
|
4831 |
-
$licenses = $this->_fetch_licenses();
|
4832 |
if ( ! $this->is_api_error( $licenses ) ) {
|
4833 |
$this->_licenses = $licenses;
|
4834 |
$this->_store_licenses();
|
@@ -4857,7 +4972,7 @@
|
|
4857 |
return false;
|
4858 |
}
|
4859 |
|
4860 |
-
if ( !
|
4861 |
$this->_sync_licenses();
|
4862 |
}
|
4863 |
|
@@ -5101,13 +5216,46 @@
|
|
5101 |
* @since 1.1.9
|
5102 |
*/
|
5103 |
function _add_license_activation_dialog_box() {
|
5104 |
-
|
|
|
|
|
|
|
|
|
5105 |
|
5106 |
$vars = array(
|
5107 |
-
'slug'
|
|
|
|
|
5108 |
);
|
5109 |
|
5110 |
-
fs_require_template( 'license-activation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5111 |
}
|
5112 |
|
5113 |
/**
|
@@ -5115,28 +5263,90 @@
|
|
5115 |
* @since 1.1.9
|
5116 |
*/
|
5117 |
function _activate_license_ajax_action() {
|
5118 |
-
|
5119 |
-
exit;
|
5120 |
-
}
|
5121 |
|
5122 |
-
$license_key = trim( $_POST['license-key'] );
|
5123 |
if ( empty( $license_key ) ) {
|
5124 |
exit;
|
5125 |
}
|
5126 |
|
|
|
|
|
|
|
|
|
5127 |
if ( $this->is_registered() ) {
|
5128 |
-
$api
|
5129 |
-
$api->call( '/', 'put',
|
5130 |
array(
|
5131 |
'license_key' => $license_key
|
5132 |
)
|
5133 |
);
|
|
|
|
|
|
|
|
|
5134 |
} else {
|
5135 |
$this->opt_in( false, false, false, $license_key );
|
5136 |
}
|
5137 |
|
5138 |
-
|
5139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5140 |
exit;
|
5141 |
}
|
5142 |
|
@@ -5354,6 +5564,45 @@
|
|
5354 |
return ( defined( 'DOING_AJAX' ) && DOING_AJAX );
|
5355 |
}
|
5356 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5357 |
/**
|
5358 |
* @author Vova Feldman (@svovaf)
|
5359 |
* @since 1.1.7
|
@@ -5430,6 +5679,30 @@
|
|
5430 |
}
|
5431 |
}
|
5432 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5433 |
|
5434 |
/**
|
5435 |
* Plugin's account URL.
|
@@ -5456,6 +5729,25 @@
|
|
5456 |
$this->_get_admin_page_url( 'account', $params );
|
5457 |
}
|
5458 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5459 |
/**
|
5460 |
* Plugin's account URL.
|
5461 |
*
|
@@ -5821,7 +6113,7 @@
|
|
5821 |
* @param string|bool $email
|
5822 |
* @param string|bool $first
|
5823 |
* @param string|bool $last
|
5824 |
-
* @param string|bool $
|
5825 |
*
|
5826 |
* @return bool Is successful opt-in (or set to pending).
|
5827 |
*/
|
@@ -6000,13 +6292,7 @@
|
|
6000 |
if ( is_numeric( $plugin_id ) ) {
|
6001 |
if ( $plugin_id != $this->_plugin->id ) {
|
6002 |
// Add-on was installed - sync license right after install.
|
6003 |
-
if ( $redirect && fs_redirect(
|
6004 |
-
'account',
|
6005 |
-
array(
|
6006 |
-
'fs_action' => $this->_slug . '_sync_license',
|
6007 |
-
'plugin_id' => $plugin_id
|
6008 |
-
)
|
6009 |
-
), $this->_slug . '_sync_license' ) )
|
6010 |
) {
|
6011 |
exit();
|
6012 |
}
|
@@ -6291,6 +6577,8 @@
|
|
6291 |
if ( ! $this->has_api_connectivity() && ! $this->is_enable_anonymous() ) {
|
6292 |
$this->_menu->remove_menu_item();
|
6293 |
} else {
|
|
|
|
|
6294 |
$this->add_menu_action();
|
6295 |
$this->add_submenu_items();
|
6296 |
}
|
@@ -6445,8 +6733,6 @@
|
|
6445 |
private function add_submenu_items() {
|
6446 |
$this->_logger->entrance();
|
6447 |
|
6448 |
-
$this->do_action( 'before_admin_menu_init' );
|
6449 |
-
|
6450 |
if ( ! $this->is_addon() ) {
|
6451 |
if ( ! $this->is_activation_mode() ) {
|
6452 |
if ( $this->is_registered() ) {
|
@@ -7292,10 +7578,11 @@
|
|
7292 |
* @uses FS_Api
|
7293 |
*
|
7294 |
* @param number|bool $plugin_id
|
|
|
7295 |
*
|
7296 |
* @return FS_Plugin_License[]|object
|
7297 |
*/
|
7298 |
-
private function _fetch_licenses( $plugin_id = false ) {
|
7299 |
$this->_logger->entrance();
|
7300 |
|
7301 |
$api = $this->get_api_user_scope();
|
@@ -7306,14 +7593,75 @@
|
|
7306 |
|
7307 |
$result = $api->get( "/plugins/{$plugin_id}/licenses.json", true );
|
7308 |
|
|
|
|
|
7309 |
if ( ! isset( $result->error ) ) {
|
7310 |
for ( $i = 0, $len = count( $result->licenses ); $i < $len; $i ++ ) {
|
7311 |
$result->licenses[ $i ] = new FS_Plugin_License( $result->licenses[ $i ] );
|
|
|
|
|
|
|
|
|
7312 |
}
|
7313 |
|
7314 |
$result = $result->licenses;
|
7315 |
}
|
7316 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7317 |
return $result;
|
7318 |
}
|
7319 |
|
@@ -7623,8 +7971,11 @@
|
|
7623 |
$this->_enrich_site_plan( true );
|
7624 |
$this->_store_site();
|
7625 |
} else {
|
7626 |
-
|
7627 |
-
|
|
|
|
|
|
|
7628 |
|
7629 |
// Check if plan / license changed.
|
7630 |
if ( ! FS_Entity::equals( $site->plan, $this->_site->plan ) ||
|
@@ -7670,7 +8021,7 @@
|
|
7670 |
null :
|
7671 |
$this->_get_license_by_id( $site->license_id );
|
7672 |
|
7673 |
-
if ( $is_free && is_null( $new_license ) && $this->
|
7674 |
// License cancelled.
|
7675 |
$this->_site = $site;
|
7676 |
$this->_update_site_license( $new_license );
|
@@ -7882,8 +8233,14 @@
|
|
7882 |
return;
|
7883 |
}
|
7884 |
|
|
|
|
|
|
|
|
|
|
|
|
|
7885 |
$api = $this->get_api_site_scope();
|
7886 |
-
$license = $api->call( "/licenses/{$premium_license->id}.json", 'put' );
|
7887 |
|
7888 |
if ( $this->is_api_error( $license ) ) {
|
7889 |
if ( ! $background ) {
|
@@ -8385,6 +8742,24 @@
|
|
8385 |
);
|
8386 |
}
|
8387 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8388 |
/**
|
8389 |
* Get latest plugin download link.
|
8390 |
*
|
@@ -8984,7 +9359,11 @@
|
|
8984 |
$this->_logger->entrance();
|
8985 |
|
8986 |
$vars = array( 'slug' => $this->_slug );
|
8987 |
-
|
|
|
|
|
|
|
|
|
8988 |
}
|
8989 |
|
8990 |
/**
|
@@ -9431,7 +9810,14 @@
|
|
9431 |
function _add_license_action_link() {
|
9432 |
$this->_logger->entrance();
|
9433 |
|
9434 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9435 |
|
9436 |
$this->add_plugin_action_link(
|
9437 |
$link_text,
|
444 |
}
|
445 |
}
|
446 |
|
|
|
|
|
|
|
447 |
if ( ! $this->is_ajax() ) {
|
448 |
if ( ! $this->is_addon() ) {
|
449 |
add_action( 'init', array( &$this, '_add_default_submenu_items' ), WP_FS__LOWEST_PRIORITY );
|
461 |
$this->add_action( 'sdk_version_update', array( &$this, '_data_migration' ), WP_FS__DEFAULT_PRIORITY, 2 );
|
462 |
}
|
463 |
|
464 |
+
/**
|
465 |
+
* Keeping the uninstall hook registered for free or premium plugin version may result to a fatal error that
|
466 |
+
* could happen when a user tries to uninstall either version while one of them is still active. Uninstalling a
|
467 |
+
* plugin will trigger inclusion of the free or premium version and if one of them is active during the
|
468 |
+
* uninstallation, a fatal error may occur in case the plugin's class or functions are already defined.
|
469 |
+
*
|
470 |
+
* @author Leo Fajardo (leorw)
|
471 |
+
*
|
472 |
+
* @since 1.2.0
|
473 |
+
*/
|
474 |
+
private function unregister_uninstall_hook() {
|
475 |
+
$uninstallable_plugins = (array) get_option( 'uninstall_plugins' );
|
476 |
+
unset( $uninstallable_plugins[ $this->_free_plugin_basename ] );
|
477 |
+
unset( $uninstallable_plugins[ $this->premium_plugin_basename() ] );
|
478 |
+
|
479 |
+
update_option( 'uninstall_plugins', $uninstallable_plugins );
|
480 |
+
}
|
481 |
+
|
482 |
+
/**
|
483 |
+
* @since 1.2.0 Invalidate module's main file cache, otherwise, FS_Plugin_Updater will not fetch updates.
|
484 |
+
*/
|
485 |
+
private function clear_module_main_file_cache() {
|
486 |
+
unset( $this->_storage->plugin_main_file );
|
487 |
+
}
|
488 |
+
|
489 |
/**
|
490 |
* @author Vova Feldman (@svovaf)
|
491 |
* @since 1.0.9
|
517 |
add_action( 'admin_footer', array( &$this, '_add_deactivation_feedback_dialog_box' ) );
|
518 |
}
|
519 |
}
|
520 |
+
|
521 |
+
if ( ! $this->is_addon() ) {
|
522 |
+
if ( $this->is_registered() ) {
|
523 |
+
$this->add_filter( 'after_code_type_change', array( &$this, '_after_code_type_change' ) );
|
524 |
+
}
|
525 |
+
}
|
526 |
}
|
527 |
}
|
528 |
|
565 |
* @since 1.1.2
|
566 |
*/
|
567 |
function _add_deactivation_feedback_dialog_box() {
|
|
|
|
|
568 |
/* Check the type of user:
|
569 |
* 1. Long-term (long-term)
|
570 |
* 2. Non-registered and non-anonymous short-term (non-registered-and-non-anonymous-short-term).
|
608 |
/**
|
609 |
* @todo Deactivation form core functions should be loaded only once! Otherwise, when there are multiple Freemius powered plugins the same code is loaded multiple times. The only thing that should be loaded differently is the various deactivation reasons object based on the state of the plugin.
|
610 |
*/
|
611 |
+
fs_require_template( 'forms/deactivation/form.php', $vars );
|
612 |
}
|
613 |
|
614 |
/**
|
620 |
* @return array The uninstall reasons for the specified user type.
|
621 |
*/
|
622 |
function _get_uninstall_reasons( $user_type = 'long-term' ) {
|
623 |
+
$internal_message_template_var = array(
|
624 |
+
'slug' => $this->_slug
|
625 |
+
);
|
626 |
+
|
627 |
+
if ( $this->is_registered() && false !== $this->get_plan() && $this->get_plan()->has_technical_support() ) {
|
628 |
+
$contact_support_template = fs_get_template( 'forms/deactivation/contact.php', $internal_message_template_var );
|
629 |
+
} else {
|
630 |
+
$contact_support_template = '';
|
631 |
+
}
|
632 |
+
|
633 |
$reason_found_better_plugin = array(
|
634 |
'id' => 2,
|
635 |
'text' => __fs( 'reason-found-a-better-plugin', $this->_slug ),
|
669 |
'id' => 4,
|
670 |
'text' => __fs( 'reason-broke-my-site', $this->_slug ),
|
671 |
'input_type' => '',
|
672 |
+
'input_placeholder' => '',
|
673 |
+
'internal_message' => $contact_support_template
|
674 |
),
|
675 |
array(
|
676 |
'id' => 5,
|
677 |
'text' => __fs( 'reason-suddenly-stopped-working', $this->_slug ),
|
678 |
'input_type' => '',
|
679 |
+
'input_placeholder' => '',
|
680 |
+
'internal_message' => $contact_support_template
|
681 |
)
|
682 |
);
|
683 |
|
690 |
);
|
691 |
}
|
692 |
|
693 |
+
$reason_dont_share_info = array(
|
694 |
+
'id' => 9,
|
695 |
+
'text' => __fs( 'reason-dont-like-to-share-my-information', $this->_slug ),
|
696 |
+
'input_type' => '',
|
697 |
+
'input_placeholder' => ''
|
698 |
+
);
|
699 |
+
|
700 |
+
/**
|
701 |
+
* If the current user has selected the "don't share data" reason in the deactivation feedback modal, inform the
|
702 |
+
* user by showing additional message that he doesn't have to share data and can just choose to skip the opt-in
|
703 |
+
* (the Skip button is included in the message to show). This message will only be shown if anonymous mode is
|
704 |
+
* enabled and the user's account is currently not in pending activation state (similar to the way the Skip
|
705 |
+
* button in the opt-in form is shown/hidden).
|
706 |
+
*/
|
707 |
+
if ( $this->is_enable_anonymous() && ! $this->is_pending_activation() ) {
|
708 |
+
$reason_dont_share_info['internal_message'] = fs_get_template( 'forms/deactivation/retry-skip.php', $internal_message_template_var );
|
709 |
+
}
|
710 |
+
|
711 |
$long_term_user_reasons[] = $reason_temporary_deactivation;
|
712 |
$long_term_user_reasons[] = $reason_other;
|
713 |
|
720 |
'input_type' => '',
|
721 |
'input_placeholder' => ''
|
722 |
),
|
723 |
+
$reason_dont_share_info,
|
|
|
|
|
|
|
|
|
|
|
724 |
$reason_found_better_plugin,
|
725 |
$reason_temporary_deactivation,
|
726 |
$reason_other
|
730 |
'id' => 10,
|
731 |
'text' => __fs( 'reason-couldnt-make-it-work', $this->_slug ),
|
732 |
'input_type' => '',
|
733 |
+
'input_placeholder' => '',
|
734 |
+
'internal_message' => $contact_support_template
|
735 |
),
|
736 |
$reason_found_better_plugin,
|
737 |
array(
|
1160 |
$users = self::get_all_users();
|
1161 |
$addons = self::get_all_addons();
|
1162 |
$account_addons = self::get_all_account_addons();
|
1163 |
+
$licenses = self::get_all_licenses();
|
1164 |
|
1165 |
// $plans = self::get_all_plans();
|
1166 |
// $licenses = self::get_all_licenses();
|
1170 |
'users' => $users,
|
1171 |
'addons' => $addons,
|
1172 |
'account_addons' => $account_addons,
|
1173 |
+
'licenses' => $licenses,
|
1174 |
);
|
1175 |
|
1176 |
fs_enqueue_local_style( 'fs_account', '/admin/debug.css' );
|
2131 |
|
2132 |
$this->do_action( 'initiated' );
|
2133 |
|
2134 |
+
if ( $this->_storage->prev_is_premium !== $this->_plugin->is_premium ) {
|
2135 |
+
if ( isset( $this->_storage->prev_is_premium ) ) {
|
2136 |
+
$this->apply_filters(
|
2137 |
+
'after_code_type_change',
|
2138 |
+
// New code type.
|
2139 |
+
$this->_plugin->is_premium
|
2140 |
+
);
|
2141 |
+
} else {
|
2142 |
+
// Set for code type for the first time.
|
2143 |
+
$this->_storage->prev_is_premium = $this->_plugin->is_premium;
|
2144 |
+
}
|
2145 |
+
}
|
2146 |
+
|
2147 |
if ( ! $this->is_addon() ) {
|
2148 |
if ( $this->is_registered() ) {
|
2149 |
// Fix for upgrade from versions < 1.0.9.
|
2150 |
if ( ! isset( $this->_storage->activation_timestamp ) ) {
|
2151 |
$this->_storage->activation_timestamp = WP_FS__SCRIPT_START_TIME;
|
2152 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2153 |
|
2154 |
$this->do_action( 'after_init_plugin_registered' );
|
2155 |
} else if ( $this->is_anonymous() ) {
|
2169 |
|
2170 |
// Add license activation link and AJAX request handler.
|
2171 |
if ( $this->has_paid_plan() ) {
|
|
|
|
|
2172 |
global $pagenow;
|
2173 |
if ( 'plugins.php' === $pagenow ) {
|
2174 |
+
/**
|
2175 |
+
* @since 1.2.0 Add license action link only on plugins page.
|
2176 |
+
*/
|
2177 |
+
$this->_add_license_action_link();
|
2178 |
+
$this->_require_license_activation_dialog();
|
2179 |
}
|
2180 |
|
2181 |
+
if ( $this->is_ajax_action( array(
|
2182 |
+
'activate_license',
|
2183 |
+
'resend_license_key'
|
2184 |
+
) )
|
2185 |
+
) {
|
2186 |
+
// Hook license activation and resend AJAX callbacks.
|
2187 |
+
$this->_require_license_activation_dialog();
|
2188 |
+
}
|
2189 |
}
|
2190 |
}
|
2191 |
|
2376 |
return false;
|
2377 |
}
|
2378 |
|
2379 |
+
/**
|
2380 |
+
* Triggered after code type has changed.
|
2381 |
+
*
|
2382 |
+
* @author Vova Feldman (@svovaf)
|
2383 |
+
* @since 1.1.9.1
|
2384 |
+
*/
|
2385 |
+
function _after_code_type_change() {
|
2386 |
+
$this->_logger->entrance();
|
2387 |
+
|
2388 |
+
add_action( is_admin() ? 'admin_init' : 'init', array(
|
2389 |
+
&$this,
|
2390 |
+
'_plugin_code_type_changed'
|
2391 |
+
) );
|
2392 |
+
}
|
2393 |
+
|
2394 |
/**
|
2395 |
* Handles plugin's code type change (free <--> premium).
|
2396 |
*
|
2398 |
* @since 1.0.9
|
2399 |
*/
|
2400 |
function _plugin_code_type_changed() {
|
2401 |
+
$this->_logger->entrance();
|
2402 |
+
|
2403 |
// Schedule code type changes event.
|
2404 |
// $this->sync_install();
|
2405 |
$this->schedule_install_sync();
|
2439 |
}
|
2440 |
}
|
2441 |
|
2442 |
+
/**
|
2443 |
+
* Unregister the uninstall hook for the other version of the plugin (with different code type) to avoid
|
2444 |
+
* triggering a fatal error when uninstalling that plugin. For example, after deactivating the "free" version
|
2445 |
+
* of a specific plugin, its uninstall hook should be unregistered after the "premium" version has been
|
2446 |
+
* activated. If we don't do that, a fatal error will occur when we try to uninstall the "free" version since
|
2447 |
+
* the main file of the "free" version will be loaded first before calling the hooked callback. Since the
|
2448 |
+
* free and premium versions are almost identical (same class or have same functions), a fatal error like
|
2449 |
+
* "Cannot redeclare class MyClass" or "Cannot redeclare my_function()" will occur.
|
2450 |
+
*/
|
2451 |
+
$this->unregister_uninstall_hook();
|
2452 |
+
|
2453 |
+
$this->clear_module_main_file_cache();
|
2454 |
+
|
2455 |
// Update is_premium of latest version.
|
2456 |
$this->_storage->prev_is_premium = $this->_plugin->is_premium;
|
2457 |
}
|
2835 |
// Sync add-ons collection.
|
2836 |
$this->_sync_addons( true );
|
2837 |
}
|
2838 |
+
|
2839 |
+
$this->do_action( 'after_sync_cron' );
|
2840 |
}
|
2841 |
|
2842 |
/**
|
3399 |
return;
|
3400 |
}
|
3401 |
|
3402 |
+
$this->unregister_uninstall_hook();
|
3403 |
+
|
3404 |
// Clear API cache on activation.
|
3405 |
FS_Api::clear_cache();
|
3406 |
|
3544 |
$this->_storage->is_plugin_new_install = false;
|
3545 |
}
|
3546 |
|
3547 |
+
// Hook to plugin uninstall.
|
3548 |
+
register_uninstall_hook( $this->_plugin_main_file_path, array( 'Freemius', '_uninstall_plugin_hook' ) );
|
3549 |
+
|
3550 |
+
$this->clear_module_main_file_cache();
|
3551 |
$this->clear_sync_cron();
|
3552 |
$this->clear_install_sync_cron();
|
3553 |
|
4190 |
if ( ! isset( $this->_plugin_data ) ) {
|
4191 |
self::require_plugin_essentials();
|
4192 |
|
4193 |
+
/**
|
4194 |
+
* @author Vova Feldman (@svovaf)
|
4195 |
+
* @since 1.2.0 When using get_plugin_data() do NOT translate plugin data.
|
4196 |
+
*
|
4197 |
+
* @link https://github.com/Freemius/wordpress-sdk/issues/77
|
4198 |
+
*/
|
4199 |
+
$this->_plugin_data = get_plugin_data(
|
4200 |
+
$this->_plugin_main_file_path,
|
4201 |
+
false,
|
4202 |
+
false
|
4203 |
+
);
|
4204 |
}
|
4205 |
|
4206 |
return $this->_plugin_data;
|
4938 |
* @author Vova Feldman (@svovaf)
|
4939 |
* @since 1.0.6
|
4940 |
*
|
4941 |
+
* @param number|bool $site_license_id
|
4942 |
+
*
|
4943 |
* @return FS_Plugin_License[]|object
|
4944 |
*/
|
4945 |
+
function _sync_licenses( $site_license_id = false ) {
|
4946 |
+
$licenses = $this->_fetch_licenses( false, $site_license_id );
|
4947 |
if ( ! $this->is_api_error( $licenses ) ) {
|
4948 |
$this->_licenses = $licenses;
|
4949 |
$this->_store_licenses();
|
4972 |
return false;
|
4973 |
}
|
4974 |
|
4975 |
+
if ( ! $this->has_any_license() ) {
|
4976 |
$this->_sync_licenses();
|
4977 |
}
|
4978 |
|
5216 |
* @since 1.1.9
|
5217 |
*/
|
5218 |
function _add_license_activation_dialog_box() {
|
5219 |
+
if ( $this->is_addon() ) {
|
5220 |
+
$sync_license_url = $this->get_parent_instance()->_get_sync_license_url( $this->_plugin->id, true );
|
5221 |
+
} else {
|
5222 |
+
$sync_license_url = $this->_get_sync_license_url( $this->_plugin->id, true );
|
5223 |
+
}
|
5224 |
|
5225 |
$vars = array(
|
5226 |
+
'slug' => $this->_slug,
|
5227 |
+
// Avoid having HTML entity like "&" in the URL which breaks the redirection to the "Account" page.
|
5228 |
+
'sync-license-url' => html_entity_decode( $sync_license_url )
|
5229 |
);
|
5230 |
|
5231 |
+
fs_require_template( 'forms/license-activation.php', $vars );
|
5232 |
+
fs_require_template( 'forms/resend-key.php', $vars );
|
5233 |
+
}
|
5234 |
+
|
5235 |
+
/**
|
5236 |
+
* Prepare page to include all required UI and logic for the license activation dialog.
|
5237 |
+
*
|
5238 |
+
* @author Vova Feldman (@svovaf)
|
5239 |
+
* @since 1.2.0
|
5240 |
+
*/
|
5241 |
+
function _require_license_activation_dialog() {
|
5242 |
+
if ( $this->is_ajax() ) {
|
5243 |
+
if ( fs_request_is_action( 'activate_license' ) ) {
|
5244 |
+
// Add license activation AJAX callback.
|
5245 |
+
add_action( 'wp_ajax_activate_license', array( &$this, '_activate_license_ajax_action' ) );
|
5246 |
+
}
|
5247 |
+
|
5248 |
+
if ( fs_request_is_action( 'resend_license_key' ) ) {
|
5249 |
+
// Add resend license AJAX callback.
|
5250 |
+
add_action( 'wp_ajax_resend_license_key', array(
|
5251 |
+
&$this,
|
5252 |
+
'_resend_license_key_ajax_action'
|
5253 |
+
) );
|
5254 |
+
}
|
5255 |
+
} else {
|
5256 |
+
// Inject license activation dialog UI and client side code.
|
5257 |
+
add_action( 'admin_footer', array( &$this, '_add_license_activation_dialog_box' ) );
|
5258 |
+
}
|
5259 |
}
|
5260 |
|
5261 |
/**
|
5263 |
* @since 1.1.9
|
5264 |
*/
|
5265 |
function _activate_license_ajax_action() {
|
5266 |
+
$license_key = trim( fs_request_get('license_key') );
|
|
|
|
|
5267 |
|
|
|
5268 |
if ( empty( $license_key ) ) {
|
5269 |
exit;
|
5270 |
}
|
5271 |
|
5272 |
+
$slug = $_POST['slug'];
|
5273 |
+
$fs = ( ( $slug === $this->_slug ) ? $this : self::instance( $slug ) );
|
5274 |
+
$error = false;
|
5275 |
+
|
5276 |
if ( $this->is_registered() ) {
|
5277 |
+
$api = $fs->get_api_site_scope();
|
5278 |
+
$install = $api->call( '/', 'put',
|
5279 |
array(
|
5280 |
'license_key' => $license_key
|
5281 |
)
|
5282 |
);
|
5283 |
+
|
5284 |
+
if ( isset( $install->error ) ) {
|
5285 |
+
$error = $install->error->message;
|
5286 |
+
}
|
5287 |
} else {
|
5288 |
$this->opt_in( false, false, false, $license_key );
|
5289 |
}
|
5290 |
|
5291 |
+
$result = array(
|
5292 |
+
'success' => ( false === $error )
|
5293 |
+
);
|
5294 |
+
|
5295 |
+
if ( false !== $error ) {
|
5296 |
+
$result['error'] = $error;
|
5297 |
+
}
|
5298 |
+
|
5299 |
+
echo json_encode( $result );
|
5300 |
+
|
5301 |
+
exit;
|
5302 |
+
}
|
5303 |
+
|
5304 |
+
/**
|
5305 |
+
* @author Leo Fajardo (@leorw)
|
5306 |
+
* @since 1.2.0
|
5307 |
+
*/
|
5308 |
+
function _resend_license_key_ajax_action() {
|
5309 |
+
if ( ! isset( $_POST['email'] ) ) {
|
5310 |
+
exit;
|
5311 |
+
}
|
5312 |
+
|
5313 |
+
$email_address = trim( $_POST['email'] );
|
5314 |
+
if ( empty( $email_address ) ) {
|
5315 |
+
exit;
|
5316 |
+
}
|
5317 |
+
|
5318 |
+
$error = false;
|
5319 |
+
|
5320 |
+
$api = $this->get_api_plugin_scope();
|
5321 |
+
$result = $api->call( '/licenses/resend.json', 'post',
|
5322 |
+
array(
|
5323 |
+
'email' => $email_address,
|
5324 |
+
'is_localhost' => WP_FS__IS_LOCALHOST
|
5325 |
+
)
|
5326 |
+
);
|
5327 |
+
|
5328 |
+
if ( is_object( $result ) && isset( $result->error ) ) {
|
5329 |
+
$error = $result->error;
|
5330 |
+
|
5331 |
+
if ( in_array( $error->code, array( 'invalid_email', 'no_user' ) ) ) {
|
5332 |
+
$error = __fs( 'email-not-found' );
|
5333 |
+
} else if ( 'no_license' === $error->code ) {
|
5334 |
+
$error = __fs( 'no-active-licenses' );
|
5335 |
+
} else {
|
5336 |
+
$error = $error->message;
|
5337 |
+
}
|
5338 |
+
}
|
5339 |
+
|
5340 |
+
$licenses = array(
|
5341 |
+
'success' => ( false === $error )
|
5342 |
+
);
|
5343 |
+
|
5344 |
+
if ( false !== $error ) {
|
5345 |
+
$licenses['error'] = sprintf( '%s... %s', __fs( 'oops', $this->_slug ), strtolower( $error ) );
|
5346 |
+
}
|
5347 |
+
|
5348 |
+
echo json_encode( $licenses );
|
5349 |
+
|
5350 |
exit;
|
5351 |
}
|
5352 |
|
5564 |
return ( defined( 'DOING_AJAX' ) && DOING_AJAX );
|
5565 |
}
|
5566 |
|
5567 |
+
/**
|
5568 |
+
* Check if it's an AJAX call targeted for the current module.
|
5569 |
+
*
|
5570 |
+
* @author Vova Feldman (@svovaf)
|
5571 |
+
* @since 1.2.0
|
5572 |
+
*
|
5573 |
+
* @param array|string $actions Collection of AJAX actions.
|
5574 |
+
*
|
5575 |
+
* @return bool
|
5576 |
+
*/
|
5577 |
+
function is_ajax_action( $actions ) {
|
5578 |
+
// Verify it's an ajax call.
|
5579 |
+
if ( ! $this->is_ajax() ) {
|
5580 |
+
return false;
|
5581 |
+
}
|
5582 |
+
|
5583 |
+
// Verify the call is relevant for the plugin.
|
5584 |
+
if ( $this->_slug !== fs_request_get( 'slug' ) ) {
|
5585 |
+
return false;
|
5586 |
+
}
|
5587 |
+
|
5588 |
+
// Verify it's one of the specified actions.
|
5589 |
+
if ( is_string( $actions ) ) {
|
5590 |
+
$actions = explode( ',', $actions );
|
5591 |
+
}
|
5592 |
+
|
5593 |
+
if ( is_array( $actions ) && 0 < count( $actions ) ) {
|
5594 |
+
$ajax_action = fs_request_get( 'action' );
|
5595 |
+
|
5596 |
+
foreach ( $actions as $action ) {
|
5597 |
+
if ( $ajax_action === $action ) {
|
5598 |
+
return true;
|
5599 |
+
}
|
5600 |
+
}
|
5601 |
+
}
|
5602 |
+
|
5603 |
+
return false;
|
5604 |
+
}
|
5605 |
+
|
5606 |
/**
|
5607 |
* @author Vova Feldman (@svovaf)
|
5608 |
* @since 1.1.7
|
5679 |
}
|
5680 |
}
|
5681 |
|
5682 |
+
/**
|
5683 |
+
* Plugin's account page + sync license URL.
|
5684 |
+
*
|
5685 |
+
* @author Vova Feldman (@svovaf)
|
5686 |
+
* @since 1.1.9.1
|
5687 |
+
*
|
5688 |
+
* @param bool|number $plugin_id
|
5689 |
+
* @param bool $add_action_nonce
|
5690 |
+
*
|
5691 |
+
* @return string
|
5692 |
+
*/
|
5693 |
+
function _get_sync_license_url( $plugin_id = false, $add_action_nonce = true ) {
|
5694 |
+
$params = array();
|
5695 |
+
|
5696 |
+
if ( is_numeric( $plugin_id ) ) {
|
5697 |
+
$params['plugin_id'] = $plugin_id;
|
5698 |
+
}
|
5699 |
+
|
5700 |
+
return $this->get_account_url(
|
5701 |
+
$this->_slug . '_sync_license',
|
5702 |
+
$params,
|
5703 |
+
$add_action_nonce
|
5704 |
+
);
|
5705 |
+
}
|
5706 |
|
5707 |
/**
|
5708 |
* Plugin's account URL.
|
5729 |
$this->_get_admin_page_url( 'account', $params );
|
5730 |
}
|
5731 |
|
5732 |
+
/**
|
5733 |
+
* @author Vova Feldman (@svovaf)
|
5734 |
+
* @since 1.2.0
|
5735 |
+
*
|
5736 |
+
* @param string $tab
|
5737 |
+
* @param bool $action
|
5738 |
+
* @param array $params
|
5739 |
+
* @param bool $add_action_nonce
|
5740 |
+
*
|
5741 |
+
* @return string
|
5742 |
+
*
|
5743 |
+
* @uses get_account_url()
|
5744 |
+
*/
|
5745 |
+
function get_account_tab_url( $tab, $action = false, $params = array(), $add_action_nonce = true ) {
|
5746 |
+
$params['tab'] = $tab;
|
5747 |
+
|
5748 |
+
return $this->get_account_url( $action, $params, $add_action_nonce );
|
5749 |
+
}
|
5750 |
+
|
5751 |
/**
|
5752 |
* Plugin's account URL.
|
5753 |
*
|
6113 |
* @param string|bool $email
|
6114 |
* @param string|bool $first
|
6115 |
* @param string|bool $last
|
6116 |
+
* @param string|bool $license_secret_key
|
6117 |
*
|
6118 |
* @return bool Is successful opt-in (or set to pending).
|
6119 |
*/
|
6292 |
if ( is_numeric( $plugin_id ) ) {
|
6293 |
if ( $plugin_id != $this->_plugin->id ) {
|
6294 |
// Add-on was installed - sync license right after install.
|
6295 |
+
if ( $redirect && fs_redirect( $this->_get_sync_license_url( $plugin_id ) )
|
|
|
|
|
|
|
|
|
|
|
|
|
6296 |
) {
|
6297 |
exit();
|
6298 |
}
|
6577 |
if ( ! $this->has_api_connectivity() && ! $this->is_enable_anonymous() ) {
|
6578 |
$this->_menu->remove_menu_item();
|
6579 |
} else {
|
6580 |
+
$this->do_action( 'before_admin_menu_init' );
|
6581 |
+
|
6582 |
$this->add_menu_action();
|
6583 |
$this->add_submenu_items();
|
6584 |
}
|
6733 |
private function add_submenu_items() {
|
6734 |
$this->_logger->entrance();
|
6735 |
|
|
|
|
|
6736 |
if ( ! $this->is_addon() ) {
|
6737 |
if ( ! $this->is_activation_mode() ) {
|
6738 |
if ( $this->is_registered() ) {
|
7578 |
* @uses FS_Api
|
7579 |
*
|
7580 |
* @param number|bool $plugin_id
|
7581 |
+
* @param number|bool $site_license_id
|
7582 |
*
|
7583 |
* @return FS_Plugin_License[]|object
|
7584 |
*/
|
7585 |
+
private function _fetch_licenses( $plugin_id = false, $site_license_id = false ) {
|
7586 |
$this->_logger->entrance();
|
7587 |
|
7588 |
$api = $this->get_api_user_scope();
|
7593 |
|
7594 |
$result = $api->get( "/plugins/{$plugin_id}/licenses.json", true );
|
7595 |
|
7596 |
+
$is_site_license_synced = false;
|
7597 |
+
|
7598 |
if ( ! isset( $result->error ) ) {
|
7599 |
for ( $i = 0, $len = count( $result->licenses ); $i < $len; $i ++ ) {
|
7600 |
$result->licenses[ $i ] = new FS_Plugin_License( $result->licenses[ $i ] );
|
7601 |
+
|
7602 |
+
if ( ( ! $is_site_license_synced ) && is_numeric( $site_license_id ) ) {
|
7603 |
+
$is_site_license_synced = ( $site_license_id == $result->licenses[ $i ]->id );
|
7604 |
+
}
|
7605 |
}
|
7606 |
|
7607 |
$result = $result->licenses;
|
7608 |
}
|
7609 |
|
7610 |
+
if ( ! $is_site_license_synced ) {
|
7611 |
+
$api = $this->get_api_site_scope();
|
7612 |
+
|
7613 |
+
if ( is_numeric( $site_license_id ) ) {
|
7614 |
+
// Try to retrieve a foreign license that is linked to the install.
|
7615 |
+
$api_result = $api->call( '/licenses.json' );
|
7616 |
+
|
7617 |
+
if ( ! isset( $api_result->error ) ) {
|
7618 |
+
$licenses = $api_result->licenses;
|
7619 |
+
|
7620 |
+
if ( ! empty( $licenses ) ) {
|
7621 |
+
$result[] = new FS_Plugin_License( $licenses[0] );
|
7622 |
+
}
|
7623 |
+
}
|
7624 |
+
} else if ( is_object( $this->_license ) ) {
|
7625 |
+
// Fetch foreign license by ID and license key.
|
7626 |
+
$license = $api->get( "/licenses/{$this->_license->id}.json?license_key=" .
|
7627 |
+
urlencode( $this->_license->secret_key ) );
|
7628 |
+
|
7629 |
+
if ( ! isset( $license->error ) ) {
|
7630 |
+
$result[] = new FS_Plugin_License( $license );
|
7631 |
+
}
|
7632 |
+
}
|
7633 |
+
}
|
7634 |
+
|
7635 |
+
return $result;
|
7636 |
+
}
|
7637 |
+
|
7638 |
+
/**
|
7639 |
+
* @author Vova Feldman (@svovaf)
|
7640 |
+
* @since 1.2.0
|
7641 |
+
* @uses FS_Api
|
7642 |
+
*
|
7643 |
+
* @param number|bool $plugin_id
|
7644 |
+
*
|
7645 |
+
* @return FS_Payment[]|object
|
7646 |
+
*/
|
7647 |
+
function _fetch_payments( $plugin_id = false ) {
|
7648 |
+
$this->_logger->entrance();
|
7649 |
+
|
7650 |
+
$api = $this->get_api_user_scope();
|
7651 |
+
|
7652 |
+
if ( ! is_numeric( $plugin_id ) ) {
|
7653 |
+
$plugin_id = $this->_plugin->id;
|
7654 |
+
}
|
7655 |
+
|
7656 |
+
$result = $api->get( "/plugins/{$plugin_id}/payments.json", true );
|
7657 |
+
|
7658 |
+
if ( ! isset( $result->error ) ) {
|
7659 |
+
for ( $i = 0, $len = count( $result->payments ); $i < $len; $i ++ ) {
|
7660 |
+
$result->payments[ $i ] = new FS_Payment( $result->payments[ $i ] );
|
7661 |
+
}
|
7662 |
+
$result = $result->payments;
|
7663 |
+
}
|
7664 |
+
|
7665 |
return $result;
|
7666 |
}
|
7667 |
|
7971 |
$this->_enrich_site_plan( true );
|
7972 |
$this->_store_site();
|
7973 |
} else {
|
7974 |
+
/**
|
7975 |
+
* Sync licenses. Pass the site's license ID so that the foreign licenses will be fetched if the license
|
7976 |
+
* associated with that ID is not included in the user's licenses collection.
|
7977 |
+
*/
|
7978 |
+
$this->_sync_licenses( $site->license_id );
|
7979 |
|
7980 |
// Check if plan / license changed.
|
7981 |
if ( ! FS_Entity::equals( $site->plan, $this->_site->plan ) ||
|
8021 |
null :
|
8022 |
$this->_get_license_by_id( $site->license_id );
|
8023 |
|
8024 |
+
if ( $is_free && is_null( $new_license ) && $this->has_any_license() && $this->_license->is_cancelled ) {
|
8025 |
// License cancelled.
|
8026 |
$this->_site = $site;
|
8027 |
$this->_update_site_license( $new_license );
|
8233 |
return;
|
8234 |
}
|
8235 |
|
8236 |
+
if ( $this->_site->user_id != $premium_license->user_id ) {
|
8237 |
+
$api_request_params = array( 'license_key' => $premium_license->secret_key );
|
8238 |
+
} else {
|
8239 |
+
$api_request_params = array();
|
8240 |
+
}
|
8241 |
+
|
8242 |
$api = $this->get_api_site_scope();
|
8243 |
+
$license = $api->call( "/licenses/{$premium_license->id}.json", 'put', $api_request_params );
|
8244 |
|
8245 |
if ( $this->is_api_error( $license ) ) {
|
8246 |
if ( ! $background ) {
|
8742 |
);
|
8743 |
}
|
8744 |
|
8745 |
+
/**
|
8746 |
+
* Get payment invoice URL.
|
8747 |
+
*
|
8748 |
+
* @author Vova Feldman (@svovaf)
|
8749 |
+
* @since 1.2.0
|
8750 |
+
*
|
8751 |
+
* @param bool|number $payment_id
|
8752 |
+
*
|
8753 |
+
* @return string
|
8754 |
+
*/
|
8755 |
+
function _get_invoice_api_url( $payment_id = false ) {
|
8756 |
+
$this->_logger->entrance();
|
8757 |
+
|
8758 |
+
return $this->get_api_user_scope()->get_signed_url(
|
8759 |
+
"/payments/{$payment_id}/invoice.pdf"
|
8760 |
+
);
|
8761 |
+
}
|
8762 |
+
|
8763 |
/**
|
8764 |
* Get latest plugin download link.
|
8765 |
*
|
9359 |
$this->_logger->entrance();
|
9360 |
|
9361 |
$vars = array( 'slug' => $this->_slug );
|
9362 |
+
if ( 'billing' === fs_request_get( 'tab' ) ) {
|
9363 |
+
fs_require_once_template( 'billing.php', $vars );
|
9364 |
+
} else {
|
9365 |
+
fs_require_once_template( 'account.php', $vars );
|
9366 |
+
}
|
9367 |
}
|
9368 |
|
9369 |
/**
|
9810 |
function _add_license_action_link() {
|
9811 |
$this->_logger->entrance();
|
9812 |
|
9813 |
+
if ( $this->is_free_plan() && $this->is_addon() ) {
|
9814 |
+
return;
|
9815 |
+
}
|
9816 |
+
|
9817 |
+
$link_text = __fs(
|
9818 |
+
$this->is_free_plan() ? 'activate-license' : 'change-license',
|
9819 |
+
$this->_slug
|
9820 |
+
);
|
9821 |
|
9822 |
$this->add_plugin_action_link(
|
9823 |
$link_text,
|
freemius/includes/entities/class-fs-payment.php
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2016, Freemius, Inc.
|
5 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
6 |
+
* @since 1.0.0
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
class FS_Payment extends FS_Entity {
|
14 |
+
|
15 |
+
#region Properties
|
16 |
+
|
17 |
+
/**
|
18 |
+
* @var number
|
19 |
+
*/
|
20 |
+
public $plugin_id;
|
21 |
+
/**
|
22 |
+
* @var number
|
23 |
+
*/
|
24 |
+
public $user_id;
|
25 |
+
/**
|
26 |
+
* @var number
|
27 |
+
*/
|
28 |
+
public $install_id;
|
29 |
+
/**
|
30 |
+
* @var number
|
31 |
+
*/
|
32 |
+
public $subscription_id;
|
33 |
+
/**
|
34 |
+
* @var number
|
35 |
+
*/
|
36 |
+
public $plan_id;
|
37 |
+
/**
|
38 |
+
* @var number
|
39 |
+
*/
|
40 |
+
public $license_id;
|
41 |
+
/**
|
42 |
+
* @var float
|
43 |
+
*/
|
44 |
+
public $gross;
|
45 |
+
/**
|
46 |
+
* @var number
|
47 |
+
*/
|
48 |
+
public $bound_payment_id;
|
49 |
+
/**
|
50 |
+
* @var string
|
51 |
+
*/
|
52 |
+
public $external_id;
|
53 |
+
/**
|
54 |
+
* @var string
|
55 |
+
*/
|
56 |
+
public $gateway;
|
57 |
+
/**
|
58 |
+
* @var string ISO 3166-1 alpha-2 - two-letter country code.
|
59 |
+
*
|
60 |
+
* @link http://www.wikiwand.com/en/ISO_3166-1_alpha-2
|
61 |
+
*/
|
62 |
+
public $country_code;
|
63 |
+
/**
|
64 |
+
* @var string
|
65 |
+
*/
|
66 |
+
public $vat_id;
|
67 |
+
/**
|
68 |
+
* @var float Actual Tax / VAT in $$$
|
69 |
+
*/
|
70 |
+
public $vat;
|
71 |
+
|
72 |
+
#endregion Properties
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @param object|bool $payment
|
76 |
+
*/
|
77 |
+
function __construct( $payment = false ) {
|
78 |
+
parent::__construct( $payment );
|
79 |
+
}
|
80 |
+
|
81 |
+
static function get_type() {
|
82 |
+
return 'payment';
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* @author Vova Feldman (@svovaf)
|
87 |
+
* @since 1.0.0
|
88 |
+
*
|
89 |
+
* @return bool
|
90 |
+
*/
|
91 |
+
function is_refund() {
|
92 |
+
return ( parent::is_valid_id( $this->bound_payment_id ) && 0 > $this->gross );
|
93 |
+
}
|
94 |
+
}
|
freemius/includes/entities/class-fs-plugin-license.php
CHANGED
@@ -46,6 +46,10 @@
|
|
46 |
* @var string
|
47 |
*/
|
48 |
public $expiration;
|
|
|
|
|
|
|
|
|
49 |
/**
|
50 |
* @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
|
51 |
* license.
|
@@ -87,6 +91,10 @@
|
|
87 |
return 0;
|
88 |
}
|
89 |
|
|
|
|
|
|
|
|
|
90 |
return ( $this->quota - $this->activated - ( $this->is_free_localhost ? 0 : $this->activated_local ) );
|
91 |
}
|
92 |
|
@@ -122,6 +130,16 @@
|
|
122 |
return is_null( $this->expiration );
|
123 |
}
|
124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
/**
|
126 |
* Check if license is fully utilized.
|
127 |
*
|
@@ -137,6 +155,10 @@
|
|
137 |
$is_localhost = WP_FS__IS_LOCALHOST_FOR_SERVER;
|
138 |
}
|
139 |
|
|
|
|
|
|
|
|
|
140 |
return ! ( $this->is_free_localhost && $is_localhost ) &&
|
141 |
( $this->quota <= $this->activated + ( $this->is_free_localhost ? 0 : $this->activated_local ) );
|
142 |
}
|
46 |
* @var string
|
47 |
*/
|
48 |
public $expiration;
|
49 |
+
/**
|
50 |
+
* @var string
|
51 |
+
*/
|
52 |
+
public $secret_key;
|
53 |
/**
|
54 |
* @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
|
55 |
* license.
|
91 |
return 0;
|
92 |
}
|
93 |
|
94 |
+
if ( $this->is_unlimited() ) {
|
95 |
+
return 999;
|
96 |
+
}
|
97 |
+
|
98 |
return ( $this->quota - $this->activated - ( $this->is_free_localhost ? 0 : $this->activated_local ) );
|
99 |
}
|
100 |
|
130 |
return is_null( $this->expiration );
|
131 |
}
|
132 |
|
133 |
+
/**
|
134 |
+
* @author Vova Feldman (@svovaf)
|
135 |
+
* @since 1.2.0
|
136 |
+
*
|
137 |
+
* @return bool
|
138 |
+
*/
|
139 |
+
function is_unlimited() {
|
140 |
+
return is_null( $this->quota );
|
141 |
+
}
|
142 |
+
|
143 |
/**
|
144 |
* Check if license is fully utilized.
|
145 |
*
|
155 |
$is_localhost = WP_FS__IS_LOCALHOST_FOR_SERVER;
|
156 |
}
|
157 |
|
158 |
+
if ( $this->is_unlimited() ) {
|
159 |
+
return false;
|
160 |
+
}
|
161 |
+
|
162 |
return ! ( $this->is_free_localhost && $is_localhost ) &&
|
163 |
( $this->quota <= $this->activated + ( $this->is_free_localhost ? 0 : $this->activated_local ) );
|
164 |
}
|
freemius/includes/entities/class-fs-plugin-plan.php
CHANGED
@@ -111,6 +111,22 @@
|
|
111 |
return ( 'free' === $this->name );
|
112 |
}
|
113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
/**
|
115 |
* @author Vova Feldman (@svovaf)
|
116 |
* @since 1.0.9
|
111 |
return ( 'free' === $this->name );
|
112 |
}
|
113 |
|
114 |
+
/**
|
115 |
+
* Checks if this plan supports "Technical Support".
|
116 |
+
*
|
117 |
+
* @author Leo Fajardo (leorw)
|
118 |
+
* @since 1.2.0
|
119 |
+
*
|
120 |
+
* @return bool
|
121 |
+
*/
|
122 |
+
function has_technical_support() {
|
123 |
+
return ( ! empty( $this->support_email ) ||
|
124 |
+
! empty( $this->support_skype ) ||
|
125 |
+
! empty( $this->support_phone ) ||
|
126 |
+
! empty( $this->is_success_manager )
|
127 |
+
);
|
128 |
+
}
|
129 |
+
|
130 |
/**
|
131 |
* @author Vova Feldman (@svovaf)
|
132 |
* @since 1.0.9
|
freemius/includes/i18n.php
CHANGED
@@ -35,6 +35,7 @@
|
|
35 |
'account' => __( 'Account', 'freemius' ),
|
36 |
'addon' => __( 'Add On', 'freemius' ),
|
37 |
'contact-us' => __( 'Contact Us', 'freemius' ),
|
|
|
38 |
'change-ownership' => __( 'Change Ownership', 'freemius' ),
|
39 |
'support' => __( 'Support', 'freemius' ),
|
40 |
'support-forum' => __( 'Support Forum', 'freemius' ),
|
@@ -53,6 +54,14 @@
|
|
53 |
'details' => __( 'Details', 'freemius' ),
|
54 |
'account-details' => __( 'Account Details', 'freemius' ),
|
55 |
'delete' => _x( 'Delete', 'verb', 'freemius' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
'delete-account' => __( 'Delete Account', 'freemius' ),
|
57 |
'dismiss' => _x( 'Dismiss', 'as close a window', 'freemius' ),
|
58 |
'plan' => _x( 'Plan', 'as product pricing plan', 'freemius' ),
|
@@ -72,6 +81,7 @@
|
|
72 |
'license-unlimited' => __( 'Unlimited Licenses', 'freemius' ),
|
73 |
'license-x-sites' => __( 'Up to %s Sites', 'freemius' ),
|
74 |
'renew-license-now' => __( '%sRenew your license now%s to access version %s features and support.', 'freemius' ),
|
|
|
75 |
'x-plan' => _x( '%s Plan', 'e.g. Professional Plan', 'freemius' ),
|
76 |
'you-are-step-away' => __( 'You are just one step away - %s', 'freemius' ),
|
77 |
'activate-x-now' => _x( 'Complete "%s" Activation Now', '%s - plugin name. As complete "Jetpack" activation now', 'freemius' ),
|
@@ -95,6 +105,7 @@
|
|
95 |
'version' => _x( 'Version', 'as plugin version', 'freemius' ),
|
96 |
'name' => __( 'Name', 'freemius' ),
|
97 |
'email' => __( 'Email', 'freemius' ),
|
|
|
98 |
'verified' => __( 'Verified', 'freemius' ),
|
99 |
'plugin' => __( 'Plugin', 'freemius' ),
|
100 |
'plugins' => __( 'Plugins', 'freemius' ),
|
@@ -178,6 +189,7 @@
|
|
178 |
'placeholder-what-did-you-expect' => __( "What did you expect?", 'freemius' ),
|
179 |
'reason-didnt-work' => __( "The plugin didn't work", 'freemius' ),
|
180 |
'reason-dont-like-to-share-my-information' => __( "I don't like to share my information with you", 'freemius' ),
|
|
|
181 |
#endregion Plugin Deactivation
|
182 |
|
183 |
#region Connect
|
@@ -206,10 +218,16 @@
|
|
206 |
'opt-in-connect' => _x( 'Allow & Continue', 'button label', 'freemius' ),
|
207 |
'agree-activate-license' => _x( 'Agree & Activate License', 'button label', 'freemius' ),
|
208 |
'skip' => _x( 'Skip', 'verb', 'freemius' ),
|
|
|
209 |
'resend-activation-email' => __( 'Re-send activation email', 'freemius' ),
|
210 |
'license-key' => __( 'License key', 'freemius' ),
|
|
|
|
|
211 |
'have-license-key' => __( 'Have a license key?', 'freemius' ),
|
212 |
'dont-have-license-key' => __( 'Don\'t have a license key?', 'freemius' ),
|
|
|
|
|
|
|
213 |
#endregion Connect
|
214 |
|
215 |
#region Screenshots
|
@@ -324,6 +342,7 @@
|
|
324 |
'curl-missing-no-clue-desc' => __( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.', 'freemius' ),
|
325 |
'curl-missing-sysadmin-desc' => __( 'Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use \'phpinfo()\'. Once activated, deactivate the plugin and reactivate it back again.', 'freemius' ),
|
326 |
'happy-to-resolve-issue-asap' => __( 'We are sure it\'s an issue on our side and more than happy to resolve it for you ASAP if you give us a chance.', 'freemius' ),
|
|
|
327 |
'fix-issue-title' => __( 'Yes - I\'m giving you a chance to fix it', 'freemius' ),
|
328 |
'fix-issue-desc' => __( 'We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update.', 'freemius' ),
|
329 |
'install-previous-title' => __( 'Let\'s try your previous version', 'freemius' ),
|
35 |
'account' => __( 'Account', 'freemius' ),
|
36 |
'addon' => __( 'Add On', 'freemius' ),
|
37 |
'contact-us' => __( 'Contact Us', 'freemius' ),
|
38 |
+
'contact-support' => __( 'Contact Support', 'freemius' ),
|
39 |
'change-ownership' => __( 'Change Ownership', 'freemius' ),
|
40 |
'support' => __( 'Support', 'freemius' ),
|
41 |
'support-forum' => __( 'Support Forum', 'freemius' ),
|
54 |
'details' => __( 'Details', 'freemius' ),
|
55 |
'account-details' => __( 'Account Details', 'freemius' ),
|
56 |
'delete' => _x( 'Delete', 'verb', 'freemius' ),
|
57 |
+
'show' => _x( 'Show', 'verb', 'freemius' ),
|
58 |
+
'hide' => _x( 'Hide', 'verb', 'freemius' ),
|
59 |
+
'edit' => _x( 'Edit', 'verb', 'freemius' ),
|
60 |
+
'date' => __( 'Date', 'freemius' ),
|
61 |
+
'amount' => __( 'Amount', 'freemius' ),
|
62 |
+
'invoice' => __( 'Invoice', 'freemius' ),
|
63 |
+
'billing' => __( 'Billing', 'freemius' ),
|
64 |
+
'payments' => __( 'Payments', 'freemius' ),
|
65 |
'delete-account' => __( 'Delete Account', 'freemius' ),
|
66 |
'dismiss' => _x( 'Dismiss', 'as close a window', 'freemius' ),
|
67 |
'plan' => _x( 'Plan', 'as product pricing plan', 'freemius' ),
|
81 |
'license-unlimited' => __( 'Unlimited Licenses', 'freemius' ),
|
82 |
'license-x-sites' => __( 'Up to %s Sites', 'freemius' ),
|
83 |
'renew-license-now' => __( '%sRenew your license now%s to access version %s features and support.', 'freemius' ),
|
84 |
+
'ask-for-upgrade-email-address' => __( "Enter the email address you've used for the upgrade below and we will resend you the license key.", 'freemius' ),
|
85 |
'x-plan' => _x( '%s Plan', 'e.g. Professional Plan', 'freemius' ),
|
86 |
'you-are-step-away' => __( 'You are just one step away - %s', 'freemius' ),
|
87 |
'activate-x-now' => _x( 'Complete "%s" Activation Now', '%s - plugin name. As complete "Jetpack" activation now', 'freemius' ),
|
105 |
'version' => _x( 'Version', 'as plugin version', 'freemius' ),
|
106 |
'name' => __( 'Name', 'freemius' ),
|
107 |
'email' => __( 'Email', 'freemius' ),
|
108 |
+
'email-address' => __( 'Email address', 'freemius' ),
|
109 |
'verified' => __( 'Verified', 'freemius' ),
|
110 |
'plugin' => __( 'Plugin', 'freemius' ),
|
111 |
'plugins' => __( 'Plugins', 'freemius' ),
|
189 |
'placeholder-what-did-you-expect' => __( "What did you expect?", 'freemius' ),
|
190 |
'reason-didnt-work' => __( "The plugin didn't work", 'freemius' ),
|
191 |
'reason-dont-like-to-share-my-information' => __( "I don't like to share my information with you", 'freemius' ),
|
192 |
+
'dont-have-to-share-any-data' => __( "You might have missed it, but you don't have to share any data and can just %s the opt-in.", 'freemius' ),
|
193 |
#endregion Plugin Deactivation
|
194 |
|
195 |
#region Connect
|
218 |
'opt-in-connect' => _x( 'Allow & Continue', 'button label', 'freemius' ),
|
219 |
'agree-activate-license' => _x( 'Agree & Activate License', 'button label', 'freemius' ),
|
220 |
'skip' => _x( 'Skip', 'verb', 'freemius' ),
|
221 |
+
'click-here-to-use-plugin-anonymously' => __( 'Click here to use the plugin anonymously', 'freemius' ),
|
222 |
'resend-activation-email' => __( 'Re-send activation email', 'freemius' ),
|
223 |
'license-key' => __( 'License key', 'freemius' ),
|
224 |
+
'send-license-key' => __( 'Send License Key', 'freemius' ),
|
225 |
+
'sending-license-key' => __( 'Sending license key', 'freemius' ),
|
226 |
'have-license-key' => __( 'Have a license key?', 'freemius' ),
|
227 |
'dont-have-license-key' => __( 'Don\'t have a license key?', 'freemius' ),
|
228 |
+
'cant-find-license-key' => __( "Can't find your license key?", 'freemius' ),
|
229 |
+
'email-not-found' => __( "We couldn't find your email address in the system, are you sure it's the right address?" ),
|
230 |
+
'no-active-licenses' => __( "We can't see any active licenses associated with that email address, are you sure it's the right address?" ),
|
231 |
#endregion Connect
|
232 |
|
233 |
#region Screenshots
|
342 |
'curl-missing-no-clue-desc' => __( 'We\'ll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update.', 'freemius' ),
|
343 |
'curl-missing-sysadmin-desc' => __( 'Great, please install cURL and enable it in your php.ini file. To make sure it was successfully activated, use \'phpinfo()\'. Once activated, deactivate the plugin and reactivate it back again.', 'freemius' ),
|
344 |
'happy-to-resolve-issue-asap' => __( 'We are sure it\'s an issue on our side and more than happy to resolve it for you ASAP if you give us a chance.', 'freemius' ),
|
345 |
+
'contact-support-before-deactivation' => __( 'Sorry for the inconvenience and we are here to help if you give us a chance.', 'freemius' ),
|
346 |
'fix-issue-title' => __( 'Yes - I\'m giving you a chance to fix it', 'freemius' ),
|
347 |
'fix-issue-desc' => __( 'We will do our best to whitelist your server and resolve this issue ASAP. You will get a follow-up email to %s once we have an update.', 'freemius' ),
|
348 |
'install-previous-title' => __( 'Let\'s try your previous version', 'freemius' ),
|
freemius/includes/managers/class-fs-key-value-storage.php
CHANGED
@@ -10,6 +10,37 @@
|
|
10 |
exit;
|
11 |
}
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
class FS_Key_Value_Storage implements ArrayAccess, Iterator, Countable {
|
14 |
/**
|
15 |
* @var string
|
10 |
exit;
|
11 |
}
|
12 |
|
13 |
+
/**
|
14 |
+
* Class FS_Key_Value_Storage
|
15 |
+
*
|
16 |
+
* @property int $install_timestamp
|
17 |
+
* @property int $activation_timestamp
|
18 |
+
* @property int $sync_timestamp
|
19 |
+
* @property object $sync_cron
|
20 |
+
* @property int $install_sync_timestamp
|
21 |
+
* @property array $connectivity_test
|
22 |
+
* @property array $is_on
|
23 |
+
* @property object $trial_plan
|
24 |
+
* @property bool $has_trial_plan
|
25 |
+
* @property bool $trial_promotion_shown
|
26 |
+
* @property string $sdk_version
|
27 |
+
* @property string $sdk_last_version
|
28 |
+
* @property bool $sdk_upgrade_mode
|
29 |
+
* @property bool $sdk_downgrade_mode
|
30 |
+
* @property bool $plugin_upgrade_mode
|
31 |
+
* @property bool $plugin_downgrade_mode
|
32 |
+
* @property string $plugin_version
|
33 |
+
* @property string $plugin_last_version
|
34 |
+
* @property bool $is_plugin_new_install
|
35 |
+
* @property bool $was_plugin_loaded
|
36 |
+
* @property object $plugin_main_file
|
37 |
+
* @property bool $prev_is_premium
|
38 |
+
* @property array $is_anonymous
|
39 |
+
* @property bool $is_pending_activation
|
40 |
+
* @property bool $sticky_optin_added
|
41 |
+
* @property object $uninstall_reason
|
42 |
+
* @property object $subscription
|
43 |
+
*/
|
44 |
class FS_Key_Value_Storage implements ArrayAccess, Iterator, Countable {
|
45 |
/**
|
46 |
* @var string
|
freemius/require.php
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2016, Freemius, Inc.
|
5 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
6 |
+
* @since 1.1.9
|
7 |
+
*/
|
8 |
+
|
9 |
+
// Configuration should be loaded first.
|
10 |
+
require_once dirname( __FILE__ ) . '/config.php';
|
11 |
+
|
12 |
+
// Logger must be loaded before any other.
|
13 |
+
require_once WP_FS__DIR_INCLUDES . '/class-fs-logger.php';
|
14 |
+
require_once WP_FS__DIR_INCLUDES . '/debug/debug-bar-start.php';
|
15 |
+
|
16 |
+
require_once WP_FS__DIR_INCLUDES . '/fs-core-functions.php';
|
17 |
+
// require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-abstract-manager.php';
|
18 |
+
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-option-manager.php';
|
19 |
+
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-cache-manager.php';
|
20 |
+
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-admin-notice-manager.php';
|
21 |
+
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-admin-menu-manager.php';
|
22 |
+
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-key-value-storage.php';
|
23 |
+
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-license-manager.php';
|
24 |
+
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-plan-manager.php';
|
25 |
+
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-plugin-manager.php';
|
26 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-entity.php';
|
27 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-scope-entity.php';
|
28 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-user.php';
|
29 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-site.php';
|
30 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin.php';
|
31 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-info.php';
|
32 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-tag.php';
|
33 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-plan.php';
|
34 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-pricing.php';
|
35 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-payment.php';
|
36 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-license.php';
|
37 |
+
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-subscription.php';
|
38 |
+
require_once WP_FS__DIR_INCLUDES . '/class-fs-api.php';
|
39 |
+
require_once WP_FS__DIR_INCLUDES . '/class-fs-plugin-updater.php';
|
40 |
+
require_once WP_FS__DIR_INCLUDES . '/class-fs-security.php';
|
41 |
+
require_once WP_FS__DIR_INCLUDES . '/class-freemius-abstract.php';
|
42 |
+
require_once WP_FS__DIR_INCLUDES . '/sdk/Exceptions/Exception.php';
|
43 |
+
require_once WP_FS__DIR_INCLUDES . '/class-freemius.php';
|
freemius/start.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
-
$this_sdk_version = '1.
|
19 |
|
20 |
#region SDK Selection Logic --------------------------------------------------------------------
|
21 |
|
@@ -260,40 +260,8 @@
|
|
260 |
define( 'WP_FS__SDK_VERSION', $this_sdk_version );
|
261 |
}
|
262 |
|
263 |
-
//
|
264 |
-
require_once dirname( __FILE__ ) . '/
|
265 |
-
|
266 |
-
// Logger must be loaded before any other.
|
267 |
-
require_once WP_FS__DIR_INCLUDES . '/class-fs-logger.php';
|
268 |
-
require_once WP_FS__DIR_INCLUDES . '/debug/debug-bar-start.php';
|
269 |
-
|
270 |
-
require_once WP_FS__DIR_INCLUDES . '/fs-core-functions.php';
|
271 |
-
// require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-abstract-manager.php';
|
272 |
-
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-option-manager.php';
|
273 |
-
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-cache-manager.php';
|
274 |
-
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-admin-notice-manager.php';
|
275 |
-
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-admin-menu-manager.php';
|
276 |
-
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-key-value-storage.php';
|
277 |
-
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-license-manager.php';
|
278 |
-
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-plan-manager.php';
|
279 |
-
require_once WP_FS__DIR_INCLUDES . '/managers/class-fs-plugin-manager.php';
|
280 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-entity.php';
|
281 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-scope-entity.php';
|
282 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-user.php';
|
283 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-site.php';
|
284 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin.php';
|
285 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-info.php';
|
286 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-tag.php';
|
287 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-plan.php';
|
288 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-pricing.php';
|
289 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-plugin-license.php';
|
290 |
-
require_once WP_FS__DIR_INCLUDES . '/entities/class-fs-subscription.php';
|
291 |
-
require_once WP_FS__DIR_INCLUDES . '/class-fs-api.php';
|
292 |
-
require_once WP_FS__DIR_INCLUDES . '/class-fs-plugin-updater.php';
|
293 |
-
require_once WP_FS__DIR_INCLUDES . '/class-fs-security.php';
|
294 |
-
require_once WP_FS__DIR_INCLUDES . '/class-freemius-abstract.php';
|
295 |
-
require_once WP_FS__DIR_INCLUDES . '/sdk/Exceptions/Exception.php';
|
296 |
-
require_once WP_FS__DIR_INCLUDES . '/class-freemius.php';
|
297 |
|
298 |
/**
|
299 |
* Quick shortcut to get Freemius for specified plugin.
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
+
$this_sdk_version = '1.2.0';
|
19 |
|
20 |
#region SDK Selection Logic --------------------------------------------------------------------
|
21 |
|
260 |
define( 'WP_FS__SDK_VERSION', $this_sdk_version );
|
261 |
}
|
262 |
|
263 |
+
// Load SDK files.
|
264 |
+
require_once dirname( __FILE__ ) . '/require.php';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
|
266 |
/**
|
267 |
* Quick shortcut to get Freemius for specified plugin.
|
freemius/templates/account.php
CHANGED
@@ -30,596 +30,659 @@
|
|
30 |
$plan = $fs->get_plan();
|
31 |
$is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
|
32 |
$is_paid_trial = $fs->is_paid_trial();
|
33 |
-
$show_upgrade = ( ! $is_paying && ! $is_paid_trial );
|
34 |
-
?>
|
35 |
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
<?php endif ?>
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
<
|
52 |
-
|
53 |
-
<div class="has-sidebar has-right-sidebar">
|
54 |
-
<div class="has-sidebar-content">
|
55 |
-
<div class="postbox">
|
56 |
-
<h3><?php _efs('account-details', $slug) ?></h3>
|
57 |
-
|
58 |
-
<div class="fs-header-actions">
|
59 |
-
<ul>
|
60 |
-
<li>
|
61 |
-
<form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST">
|
62 |
-
<input type="hidden" name="fs_action" value="delete_account">
|
63 |
-
<?php wp_nonce_field('delete_account') ?>
|
64 |
-
<a href="#" onclick="if (confirm('<?php
|
65 |
-
if ($is_active_subscription) {
|
66 |
-
echo esc_attr(sprintf(__fs('delete-account-x-confirm', $slug), $plan->title));
|
67 |
-
} else {
|
68 |
-
_efs('delete-account-confirm', $slug);
|
69 |
-
}
|
70 |
-
?>')) this.parentNode.submit(); return false;"><i
|
71 |
-
class="dashicons dashicons-no"></i> <?php _efs('delete-account', $slug) ?></a>
|
72 |
-
</form>
|
73 |
-
</li>
|
74 |
-
<?php if ($is_paying) : ?>
|
75 |
-
<li>
|
76 |
-
•
|
77 |
-
<form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST">
|
78 |
-
<input type="hidden" name="fs_action" value="deactivate_license">
|
79 |
-
<?php wp_nonce_field('deactivate_license') ?>
|
80 |
-
<a href="#"
|
81 |
-
onclick="if (confirm('<?php _efs('deactivate-license-confirm', $slug) ?>')) this.parentNode.submit(); return false;"><i
|
82 |
-
class="dashicons dashicons-admin-network"></i> <?php _efs('deactivate-license', $slug) ?>
|
83 |
-
</a>
|
84 |
-
</form>
|
85 |
-
</li>
|
86 |
-
<?php if (! $license->is_lifetime() &&
|
87 |
-
$is_active_subscription
|
88 |
-
) : ?>
|
89 |
-
<li>
|
90 |
-
•
|
91 |
-
<form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST">
|
92 |
-
<input type="hidden" name="fs_action" value="downgrade_account">
|
93 |
-
<?php wp_nonce_field('downgrade_account') ?>
|
94 |
-
<a href="#"
|
95 |
-
onclick="if (confirm('<?php printf(__fs('downgrade-x-confirm', $slug), $plan->title, human_time_diff(time(), strtotime($license->expiration))) ?> <?php if (! $license->is_block_features) {
|
96 |
-
printf(__fs('after-downgrade-non-blocking', $slug), $plan->title);
|
97 |
-
} else {
|
98 |
-
printf(__fs('after-downgrade-blocking', $slug), $plan->title);
|
99 |
-
}?> <?php _efs('proceed-confirmation', $slug) ?>')) this.parentNode.submit(); return false;"><i
|
100 |
-
class="dashicons dashicons-download"></i> <?php _efs('downgrade', $slug) ?></a>
|
101 |
-
</form>
|
102 |
-
</li>
|
103 |
<?php endif ?>
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
class="dashicons dashicons-grid-view"></i> <?php _efs('change-plan', $slug) ?></a>
|
108 |
-
</li>
|
109 |
-
<?php elseif ($is_paid_trial) : ?>
|
110 |
-
<li>
|
111 |
-
•
|
112 |
-
<form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST">
|
113 |
-
<input type="hidden" name="fs_action" value="cancel_trial">
|
114 |
-
<?php wp_nonce_field('cancel_trial') ?>
|
115 |
-
<a href="#"
|
116 |
-
onclick="if (confirm('<?php _efs('cancel-trial-confirm') ?>')) this.parentNode.submit(); return false;"><i
|
117 |
-
class="dashicons dashicons-download"></i> <?php _efs('cancel-trial', $slug) ?></a>
|
118 |
-
</form>
|
119 |
-
</li>
|
120 |
<?php endif ?>
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
<table id="fs_account_details" cellspacing="0" class="fs-key-value-table">
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
'id'
|
139 |
-
'title' => __fs('name', $slug),
|
140 |
'value' => $name
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
'id'
|
145 |
-
'title' => __fs('email', $slug),
|
146 |
'value' => $user->email
|
147 |
-
|
148 |
-
if (is_numeric($user->id)) {
|
149 |
-
$profile[] = array(
|
150 |
-
'id' => 'user_id',
|
151 |
-
'title' => __fs('user-id', $slug),
|
152 |
-
'value' => $user->id
|
153 |
-
);
|
154 |
-
}
|
155 |
|
|
|
156 |
$profile[] = array(
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
$site->id :
|
161 |
-
__fs('no-id', $slug)
|
162 |
);
|
|
|
163 |
|
164 |
-
|
165 |
-
'id'
|
166 |
-
'title' => __fs('
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
'value' => $site->public_key
|
168 |
-
|
169 |
|
170 |
-
|
171 |
-
'id'
|
172 |
-
'title' => __fs('secret-key', $slug),
|
173 |
-
'value' => ((is_string($site->secret_key)) ?
|
174 |
-
|
175 |
-
|
176 |
)
|
177 |
-
|
178 |
|
179 |
-
|
180 |
-
|
181 |
-
|
|
|
|
|
182 |
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
|
|
|
|
|
|
|
|
190 |
} else {
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
}
|
199 |
-
}
|
200 |
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
foreach ($profile as $p) : ?>
|
209 |
-
<?php
|
210 |
-
if ('plan' === $p['id'] && ! $fs->has_paid_plan()) {
|
211 |
-
// If plugin don't have any paid plans, there's no reason
|
212 |
-
// to show current plan.
|
213 |
-
continue;
|
214 |
}
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
<
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
class="fs-tag fs-success"><?php printf(__fs('renews-in', $slug), human_time_diff(time(), strtotime($subscription->next_payment))) ?></label>
|
236 |
-
<?php endif ?>
|
237 |
-
<?php elseif ($fs->is_trial()) : ?>
|
238 |
-
<label
|
239 |
-
class="fs-tag fs-warn"><?php printf(__fs('expires-in', $slug), human_time_diff(time(), strtotime($site->trial_ends))) ?></label>
|
240 |
-
<?php endif ?>
|
241 |
-
<?php endif ?>
|
242 |
-
<?php if ('version' === $p['id'] && $fs->has_paid_plan()) : ?>
|
243 |
-
<?php if ($fs->is_premium()) : ?>
|
244 |
-
<label
|
245 |
-
class="fs-tag fs-<?php echo $fs->can_use_premium_code() ? 'success' : 'warn' ?>"><?php _efs('premium-version') ?></label>
|
246 |
-
<?php elseif ($fs->can_use_premium_code()) : ?>
|
247 |
-
<label class="fs-tag fs-warn"><?php _efs('free-version') ?></label>
|
248 |
-
<?php endif ?>
|
249 |
-
<?php endif ?>
|
250 |
-
</td>
|
251 |
-
<td class="fs-right">
|
252 |
-
<?php if ('email' === $p['id'] && ! $user->is_verified()) : ?>
|
253 |
-
<form action="<?php echo $fs->_get_admin_page_url('account') ?>" method="POST">
|
254 |
-
<input type="hidden" name="fs_action" value="verify_email">
|
255 |
-
<?php wp_nonce_field('verify_email') ?>
|
256 |
-
<input type="submit" class="button button-small"
|
257 |
-
value="<?php _efs('verify-email', $slug) ?>">
|
258 |
-
</form>
|
259 |
-
<?php endif ?>
|
260 |
-
<?php if ('plan' === $p['id']) : ?>
|
261 |
-
<div class="button-group">
|
262 |
-
<?php $license = $fs->is_free_plan() ? $fs->_get_available_premium_license() : false ?>
|
263 |
-
<?php if (false !== $license && ($license->left() > 0 || ($site->is_localhost() && $license->is_free_localhost))) : ?>
|
264 |
-
<?php $premium_plan = $fs->_get_plan_by_id($license->plan_id) ?>
|
265 |
-
<form action="<?php echo $fs->_get_admin_page_url('account') ?>"
|
266 |
-
method="POST">
|
267 |
-
<input type="hidden" name="fs_action" value="activate_license">
|
268 |
-
<input type="hidden" name="license_id" value="<?php echo $license->id ?>">
|
269 |
-
<?php wp_nonce_field('activate_license') ?>
|
270 |
-
<input type="submit" class="button button-primary"
|
271 |
-
value="<?php printf(
|
272 |
-
__fs( 'activate-x-plan', $slug ) . '%s',
|
273 |
-
$premium_plan->title,
|
274 |
-
( $site->is_localhost() && $license->is_free_localhost ) ?
|
275 |
-
' [' . __fs( 'localhost', $slug ) . ']' :
|
276 |
-
( $license->is_single_site() ?
|
277 |
-
'' :
|
278 |
-
' [' . ( 1 < $license->left() ?
|
279 |
-
sprintf( __fs( 'x-left', $slug ), $license->left() ) :
|
280 |
-
strtolower( __fs( 'last-license', $slug ) ) ) . ']'
|
281 |
-
)
|
282 |
-
) ?> ">
|
283 |
-
</form>
|
284 |
<?php else : ?>
|
285 |
-
|
286 |
-
method="POST" class="button-group">
|
287 |
-
<input type="submit" class="button"
|
288 |
-
value="<?php _efs('sync-license', $slug) ?>">
|
289 |
-
<input type="hidden" name="fs_action"
|
290 |
-
value="<?php echo $slug ?>_sync_license">
|
291 |
-
<?php wp_nonce_field($slug . '_sync_license') ?>
|
292 |
-
<a href="<?php echo $fs->get_upgrade_url() ?>"
|
293 |
-
class="button<?php if ($show_upgrade) {
|
294 |
-
echo ' button-primary';
|
295 |
-
} ?> button-upgrade"><i
|
296 |
-
class="dashicons dashicons-cart"></i> <?php ($show_upgrade) ?
|
297 |
-
_efs('upgrade', $slug) :
|
298 |
-
_efs('change-plan', $slug)
|
299 |
-
?></a>
|
300 |
-
</form>
|
301 |
<?php endif ?>
|
302 |
-
|
303 |
-
|
304 |
-
<div class="button-group">
|
305 |
-
<?php if ($is_paying || $fs->is_trial()) : ?>
|
306 |
-
<?php if (! $fs->is_allowed_to_install()) : ?>
|
307 |
-
<a target="_blank" class="button button-primary"
|
308 |
-
href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php echo sprintf(__fs('download-x-version', $slug), $site->plan->title) . (is_object($update) ? ' [' . $update->version . ']' : '') ?></a>
|
309 |
-
<?php elseif (is_object($update)) : ?>
|
310 |
-
<a class="button button-primary"
|
311 |
-
href="<?php echo wp_nonce_url(self_admin_url('update.php?action=upgrade-plugin&plugin=' . $fs->get_plugin_basename()), 'upgrade-plugin_' . $fs->get_plugin_basename()) ?>"><?php echo __fs('install-update-now', $slug) . ' [' . $update->version . ']' ?></a>
|
312 |
<?php endif ?>
|
313 |
-
|
314 |
-
|
315 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
elseif (/*in_array($p['id'], array('site_secret_key', 'site_id', 'site_public_key')) ||*/
|
317 |
-
(is_string($user->secret_key) && in_array($p['id'], array(
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
) : ?>
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
|
|
|
|
331 |
<?php endif ?>
|
332 |
-
</
|
333 |
-
|
334 |
-
|
335 |
-
endforeach ?>
|
336 |
</table>
|
337 |
-
</div>
|
338 |
-
</div>
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
|
|
|
|
344 |
|
345 |
-
|
346 |
-
|
347 |
-
foreach ($installed_addons as $fs_addon) {
|
348 |
-
$installed_addons_ids[] = $fs_addon->get_id();
|
349 |
-
}
|
350 |
|
351 |
-
|
352 |
-
?>
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
374 |
<?php
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
$fs_addon = $is_addon_connected ? freemius($addon->slug) : false;
|
380 |
-
if (is_object($fs_addon)) {
|
381 |
-
$is_paying = $fs_addon->is_paying();
|
382 |
-
$user = $fs_addon->get_user();
|
383 |
-
$site = $fs_addon->get_site();
|
384 |
-
$license = $fs_addon->_get_license();
|
385 |
-
$subscription = $fs_addon->_get_subscription();
|
386 |
-
$plan = $fs_addon->get_plan();
|
387 |
-
$is_active_subscription = (is_object($subscription) && $subscription->is_active());
|
388 |
-
$is_paid_trial = $fs_addon->is_paid_trial();
|
389 |
-
$show_upgrade = (! $is_paying && ! $is_paid_trial && ! $fs_addon->_has_premium_license());
|
390 |
-
$is_current_license_expired = is_object($license) && $license->is_expired();
|
391 |
-
}
|
392 |
|
393 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
394 |
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
<?php
|
|
|
|
|
404 |
<?php // Add-on Installed ?>
|
405 |
<?php $addon_site = $fs_addon->get_site(); ?>
|
406 |
-
<td>
|
407 |
-
|
408 |
-
|
409 |
-
</td>
|
410 |
-
<td>
|
411 |
-
|
412 |
-
|
413 |
-
</td>
|
414 |
-
<td>
|
415 |
-
|
416 |
-
|
417 |
-
</td>
|
418 |
-
<td>
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
|
423 |
-
|
424 |
-
|
425 |
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
</td>
|
466 |
-
<?php
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
if (is_object($premium_license)) {
|
494 |
-
$site = $fs_addon->get_site();
|
495 |
-
|
496 |
-
$buttons[] = fs_ui_get_action_button(
|
497 |
-
$slug,
|
498 |
-
'account',
|
499 |
-
'activate_license',
|
500 |
-
sprintf(__fs('activate-x-plan', $slug), $fs_addon->get_plan_title(), ($site->is_localhost() && $premium_license->is_free_localhost) ? '[localhost]' : (1 < $premium_license->left() ? $premium_license->left() . ' left' : '')),
|
501 |
-
array(
|
502 |
-
'plugin_id' => $addon_id,
|
503 |
-
'license_id' => $premium_license->id,
|
504 |
-
)
|
505 |
-
);
|
506 |
-
}
|
507 |
-
}
|
508 |
|
509 |
-
|
510 |
-
|
511 |
-
$buttons[] = fs_ui_get_action_button(
|
512 |
-
$slug,
|
513 |
-
'account',
|
514 |
-
$slug . '_sync_license',
|
515 |
-
__fs('sync-license', $slug),
|
516 |
-
array('plugin_id' => $addon_id),
|
517 |
-
false
|
518 |
-
);
|
519 |
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
$buttons[] = sprintf(
|
533 |
-
'<a class="button button-primary" href="%s" class="edit">%s</a>',
|
534 |
-
wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $addon->slug), 'install-plugin_' . $addon->slug),
|
535 |
-
__fs('install-now', $slug)
|
536 |
-
);
|
537 |
-
} else {
|
538 |
-
$buttons[] = sprintf(
|
539 |
-
'<a target="_blank" class="button button-primary" href="%s" class="edit">%s</a>',
|
540 |
-
$fs->_get_latest_download_local_url($addon_id),
|
541 |
-
__fs('download-latest', $slug)
|
542 |
-
);
|
543 |
-
}
|
544 |
-
}
|
545 |
-
}
|
546 |
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
|
|
556 |
|
557 |
-
|
558 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
559 |
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
566 |
<?php echo $button ?>
|
567 |
<?php endforeach ?>
|
568 |
<?php if ($buttons_count > 1) : ?>
|
569 |
-
|
570 |
-
|
571 |
-
</td>
|
572 |
-
<?php else : ?>
|
573 |
<?php // Add-on NOT Installed or was never connected.
|
574 |
-
?>
|
575 |
-
<td colspan="4">
|
576 |
-
|
577 |
-
|
578 |
-
<?php $addon_file = $fs->get_addon_basename($addon->slug) ?>
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
<?php if ($fs->is_allowed_to_install()) : ?>
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
<?php endif ?>
|
592 |
-
</td>
|
593 |
-
<?php endif ?>
|
594 |
-
<?php if (defined('WP_FS__DEV_MODE') && WP_FS__DEV_MODE) : ?>
|
595 |
-
<td>
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
</td>
|
609 |
-
<?php endif ?>
|
610 |
-
</tr>
|
611 |
-
<?php $odd = ! $odd;
|
612 |
-
|
613 |
-
</tbody>
|
614 |
-
</table>
|
615 |
-
</div>
|
616 |
-
</div>
|
617 |
-
<?php endif ?>
|
618 |
-
|
619 |
-
<?php $fs->do_action('after_account_details') ?>
|
620 |
-
</div>
|
621 |
-
</div>
|
622 |
-
</div>
|
623 |
-
</div>
|
624 |
-
</div>
|
625 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
$plan = $fs->get_plan();
|
31 |
$is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
|
32 |
$is_paid_trial = $fs->is_paid_trial();
|
33 |
+
$show_upgrade = ( $fs->has_paid_plan() && ! $is_paying && ! $is_paid_trial );
|
|
|
34 |
|
35 |
+
if ( $show_upgrade ) {
|
36 |
+
$fs->_require_license_activation_dialog();
|
37 |
+
}
|
38 |
+
?>
|
39 |
+
<div class="wrap">
|
40 |
+
<h2 class="nav-tab-wrapper">
|
41 |
+
<a href="<?php echo $fs->get_account_url() ?>"
|
42 |
+
class="nav-tab nav-tab-active"><?php _efs( 'account', $slug ) ?></a>
|
43 |
+
<?php if ( $fs->has_addons() ) : ?>
|
44 |
+
<a href="<?php echo $fs->_get_admin_page_url( 'addons' ) ?>"
|
45 |
+
class="nav-tab"><?php _efs( 'add-ons', $slug ) ?></a>
|
46 |
<?php endif ?>
|
47 |
+
<?php if ( $show_upgrade ) : ?>
|
48 |
+
<a href="<?php echo $fs->get_upgrade_url() ?>" class="nav-tab"><?php _efs( 'upgrade', $slug ) ?></a>
|
49 |
+
<?php if ( $fs->apply_filters( 'show_trial', true ) && ! $fs->is_trial_utilized() && $fs->has_trial_plan() ) : ?>
|
50 |
+
<a href="<?php echo $fs->get_trial_url() ?>" class="nav-tab"><?php _efs( 'free-trial', $slug ) ?></a>
|
51 |
+
<?php endif ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
<?php endif ?>
|
53 |
+
<?php if ( ! $plan->is_free() ) : ?>
|
54 |
+
<a href="<?php echo $fs->get_account_tab_url( 'billing' ) ?>"
|
55 |
+
class="nav-tab"><?php _efs( 'billing', $slug ) ?></a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
<?php endif ?>
|
57 |
+
</h2>
|
58 |
+
|
59 |
+
<div id="poststuff">
|
60 |
+
<div id="fs_account">
|
61 |
+
<div class="has-sidebar has-right-sidebar">
|
62 |
+
<div class="has-sidebar-content">
|
63 |
+
<div class="postbox">
|
64 |
+
<h3><?php _efs( 'account-details', $slug ) ?></h3>
|
65 |
+
|
66 |
+
<div class="fs-header-actions">
|
67 |
+
<ul>
|
68 |
+
<li>
|
69 |
+
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
|
70 |
+
<input type="hidden" name="fs_action" value="delete_account">
|
71 |
+
<?php wp_nonce_field( 'delete_account' ) ?>
|
72 |
+
<a href="#" onclick="if (confirm('<?php
|
73 |
+
if ( $is_active_subscription ) {
|
74 |
+
echo esc_attr( sprintf( __fs( 'delete-account-x-confirm', $slug ), $plan->title ) );
|
75 |
+
} else {
|
76 |
+
_efs( 'delete-account-confirm', $slug );
|
77 |
+
}
|
78 |
+
?>')) this.parentNode.submit(); return false;"><i
|
79 |
+
class="dashicons dashicons-no"></i> <?php _efs( 'delete-account', $slug ) ?></a>
|
80 |
+
</form>
|
81 |
+
</li>
|
82 |
+
<?php if ( $is_paying ) : ?>
|
83 |
+
<li>
|
84 |
+
•
|
85 |
+
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
|
86 |
+
<input type="hidden" name="fs_action" value="deactivate_license">
|
87 |
+
<?php wp_nonce_field( 'deactivate_license' ) ?>
|
88 |
+
<a href="#"
|
89 |
+
onclick="if (confirm('<?php _efs( 'deactivate-license-confirm', $slug ) ?>')) this.parentNode.submit(); return false;"><i
|
90 |
+
class="dashicons dashicons-admin-network"></i> <?php _efs( 'deactivate-license', $slug ) ?>
|
91 |
+
</a>
|
92 |
+
</form>
|
93 |
+
</li>
|
94 |
+
<?php if ( ! $license->is_lifetime() &&
|
95 |
+
$is_active_subscription
|
96 |
+
) : ?>
|
97 |
+
<li>
|
98 |
+
•
|
99 |
+
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
|
100 |
+
<input type="hidden" name="fs_action" value="downgrade_account">
|
101 |
+
<?php wp_nonce_field( 'downgrade_account' ) ?>
|
102 |
+
<a href="#"
|
103 |
+
onclick="if (confirm('<?php printf( __fs( 'downgrade-x-confirm', $slug ), $plan->title, human_time_diff( time(), strtotime( $license->expiration ) ) ) ?> <?php if ( ! $license->is_block_features ) {
|
104 |
+
printf( __fs( 'after-downgrade-non-blocking', $slug ), $plan->title );
|
105 |
+
} else {
|
106 |
+
printf( __fs( 'after-downgrade-blocking', $slug ), $plan->title );
|
107 |
+
}?> <?php _efs( 'proceed-confirmation', $slug ) ?>')) this.parentNode.submit(); return false;"><i
|
108 |
+
class="dashicons dashicons-download"></i> <?php _efs( 'downgrade', $slug ) ?></a>
|
109 |
+
</form>
|
110 |
+
</li>
|
111 |
+
<?php endif ?>
|
112 |
+
<li>
|
113 |
+
•
|
114 |
+
<a href="<?php echo $fs->get_upgrade_url() ?>"><i
|
115 |
+
class="dashicons dashicons-grid-view"></i> <?php _efs( 'change-plan', $slug ) ?></a>
|
116 |
+
</li>
|
117 |
+
<?php elseif ( $is_paid_trial ) : ?>
|
118 |
+
<li>
|
119 |
+
•
|
120 |
+
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
|
121 |
+
<input type="hidden" name="fs_action" value="cancel_trial">
|
122 |
+
<?php wp_nonce_field( 'cancel_trial' ) ?>
|
123 |
+
<a href="#"
|
124 |
+
onclick="if (confirm('<?php _efs( 'cancel-trial-confirm' ) ?>')) this.parentNode.submit(); return false;"><i
|
125 |
+
class="dashicons dashicons-download"></i> <?php _efs( 'cancel-trial', $slug ) ?></a>
|
126 |
+
</form>
|
127 |
+
</li>
|
128 |
+
<?php endif ?>
|
129 |
+
<li>
|
130 |
+
•
|
131 |
+
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
|
132 |
+
<input type="hidden" name="fs_action" value="<?php echo $slug ?>_sync_license">
|
133 |
+
<?php wp_nonce_field( $slug . '_sync_license' ) ?>
|
134 |
+
<a href="#" onclick="this.parentNode.submit(); return false;"><i
|
135 |
+
class="dashicons dashicons-image-rotate"></i> <?php _efs( 'sync', $slug ) ?></a>
|
136 |
+
</form>
|
137 |
+
</li>
|
138 |
+
|
139 |
+
</ul>
|
140 |
+
</div>
|
141 |
+
<div class="inside">
|
142 |
<table id="fs_account_details" cellspacing="0" class="fs-key-value-table">
|
143 |
+
<?php
|
144 |
+
$profile = array();
|
145 |
+
$profile[] = array(
|
146 |
+
'id' => 'user_name',
|
147 |
+
'title' => __fs( 'name', $slug ),
|
148 |
'value' => $name
|
149 |
+
);
|
150 |
+
// if (isset($user->email) && false !== strpos($user->email, '@'))
|
151 |
+
$profile[] = array(
|
152 |
+
'id' => 'email',
|
153 |
+
'title' => __fs( 'email', $slug ),
|
154 |
'value' => $user->email
|
155 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
+
if ( is_numeric( $user->id ) ) {
|
158 |
$profile[] = array(
|
159 |
+
'id' => 'user_id',
|
160 |
+
'title' => __fs( 'user-id', $slug ),
|
161 |
+
'value' => $user->id
|
|
|
|
|
162 |
);
|
163 |
+
}
|
164 |
|
165 |
+
$profile[] = array(
|
166 |
+
'id' => 'site_id',
|
167 |
+
'title' => __fs( 'site-id', $slug ),
|
168 |
+
'value' => is_string( $site->id ) ?
|
169 |
+
$site->id :
|
170 |
+
__fs( 'no-id', $slug )
|
171 |
+
);
|
172 |
+
|
173 |
+
$profile[] = array(
|
174 |
+
'id' => 'site_public_key',
|
175 |
+
'title' => __fs( 'public-key', $slug ),
|
176 |
'value' => $site->public_key
|
177 |
+
);
|
178 |
|
179 |
+
$profile[] = array(
|
180 |
+
'id' => 'site_secret_key',
|
181 |
+
'title' => __fs( 'secret-key', $slug ),
|
182 |
+
'value' => ( ( is_string( $site->secret_key ) ) ?
|
183 |
+
$site->secret_key :
|
184 |
+
__fs( 'no-secret', $slug )
|
185 |
)
|
186 |
+
);
|
187 |
|
188 |
+
$profile[] = array(
|
189 |
+
'id' => 'version',
|
190 |
+
'title' => __fs( 'version', $slug ),
|
191 |
+
'value' => $fs->get_plugin_version()
|
192 |
+
);
|
193 |
|
194 |
+
if ( $fs->has_paid_plan() ) {
|
195 |
+
if ( $fs->is_trial() ) {
|
196 |
+
$trial_plan = $fs->get_trial_plan();
|
197 |
+
|
198 |
+
$profile[] = array(
|
199 |
+
'id' => 'plan',
|
200 |
+
'title' => __fs( 'plan', $slug ),
|
201 |
+
'value' => ( is_string( $trial_plan->name ) ?
|
202 |
+
strtoupper( $trial_plan->title ) :
|
203 |
+
__fs( 'trial', $slug ) )
|
204 |
+
);
|
205 |
} else {
|
206 |
+
$profile[] = array(
|
207 |
+
'id' => 'plan',
|
208 |
+
'title' => __fs( 'plan', $slug ),
|
209 |
+
'value' => is_string( $site->plan->name ) ?
|
210 |
+
strtoupper( $site->plan->title ) :
|
211 |
+
strtoupper( __fs( 'free', $slug ) )
|
212 |
+
);
|
|
|
|
|
213 |
|
214 |
+
if ( is_object( $license ) ) {
|
215 |
+
$profile[] = array(
|
216 |
+
'id' => 'license_key',
|
217 |
+
'title' => __fs( 'License Key', $slug ),
|
218 |
+
'value' => $license->secret_key,
|
219 |
+
);
|
220 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
}
|
222 |
+
}
|
223 |
+
?>
|
224 |
+
<?php $odd = true;
|
225 |
+
foreach ( $profile as $p ) : ?>
|
226 |
+
<?php
|
227 |
+
if ( 'plan' === $p['id'] && ! $fs->has_paid_plan() ) {
|
228 |
+
// If plugin don't have any paid plans, there's no reason
|
229 |
+
// to show current plan.
|
230 |
+
continue;
|
231 |
+
}
|
232 |
+
?>
|
233 |
+
<tr class="fs-field-<?php echo $p['id'] ?><?php if ( $odd ) : ?> alternate<?php endif ?>">
|
234 |
+
<td>
|
235 |
+
<nobr><?php echo $p['title'] ?>:</nobr>
|
236 |
+
</td>
|
237 |
+
<td<?php if ( 'plan' === $p['id'] ) { echo ' colspan="2"'; }?>>
|
238 |
+
<?php if ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
|
239 |
+
<code><?php echo htmlspecialchars( substr( $p['value'], 0, 6 ) ) . str_pad( '', 23 * 6, '•' ) . htmlspecialchars( substr( $p['value'], - 3 ) ) ?></code>
|
240 |
+
<input type="text" value="<?php echo htmlspecialchars( $p['value'] ) ?>" style="display: none"
|
241 |
+
readonly/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
<?php else : ?>
|
243 |
+
<code><?php echo htmlspecialchars( $p['value'] ) ?></code>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
<?php endif ?>
|
245 |
+
<?php if ( 'email' === $p['id'] && ! $user->is_verified() ) : ?>
|
246 |
+
<label class="fs-tag fs-warn"><?php _efs( 'not-verified', $slug ) ?></label>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
<?php endif ?>
|
248 |
+
<?php if ( 'plan' === $p['id'] ) : ?>
|
249 |
+
<?php if ( $fs->is_trial() ) : ?>
|
250 |
+
<label class="fs-tag fs-success"><?php _efs( 'trial', $slug ) ?></label>
|
251 |
+
<?php endif ?>
|
252 |
+
<?php if ( is_object( $license ) && ! $license->is_lifetime() ) : ?>
|
253 |
+
<?php if ( ! $is_active_subscription && ! $license->is_first_payment_pending() ) : ?>
|
254 |
+
<label
|
255 |
+
class="fs-tag fs-warn"><?php printf( __fs( 'expires-in', $slug ), human_time_diff( time(), strtotime( $license->expiration ) ) ) ?></label>
|
256 |
+
<?php elseif ( $is_active_subscription && ! $subscription->is_first_payment_pending() ) : ?>
|
257 |
+
<label
|
258 |
+
class="fs-tag fs-success"><?php printf( __fs( 'renews-in', $slug ), human_time_diff( time(), strtotime( $subscription->next_payment ) ) ) ?></label>
|
259 |
+
<?php endif ?>
|
260 |
+
<?php elseif ( $fs->is_trial() ) : ?>
|
261 |
+
<label
|
262 |
+
class="fs-tag fs-warn"><?php printf( __fs( 'expires-in', $slug ), human_time_diff( time(), strtotime( $site->trial_ends ) ) ) ?></label>
|
263 |
+
<?php endif ?>
|
264 |
+
<div class="button-group">
|
265 |
+
<?php $available_license = $fs->is_free_plan() ? $fs->_get_available_premium_license() : false ?>
|
266 |
+
<?php if ( false !== $available_license && ( $available_license->left() > 0 || ( $site->is_localhost() && $available_license->is_free_localhost ) ) ) : ?>
|
267 |
+
<?php $premium_plan = $fs->_get_plan_by_id( $available_license->plan_id ) ?>
|
268 |
+
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>"
|
269 |
+
method="POST">
|
270 |
+
<input type="hidden" name="fs_action" value="activate_license">
|
271 |
+
<input type="hidden" name="license_id" value="<?php echo $available_license->id ?>">
|
272 |
+
<?php wp_nonce_field( 'activate_license' ) ?>
|
273 |
+
<input type="submit" class="button button-primary"
|
274 |
+
value="<?php printf(
|
275 |
+
__fs( 'activate-x-plan', $slug ) . '%s',
|
276 |
+
$premium_plan->title,
|
277 |
+
( $site->is_localhost() && $available_license->is_free_localhost ) ?
|
278 |
+
' [' . __fs( 'localhost', $slug ) . ']' :
|
279 |
+
( $available_license->is_single_site() ?
|
280 |
+
'' :
|
281 |
+
' [' . ( 1 < $available_license->left() ?
|
282 |
+
sprintf( __fs( 'x-left', $slug ), $available_license->left() ) :
|
283 |
+
strtolower( __fs( 'last-license', $slug ) ) ) . ']'
|
284 |
+
)
|
285 |
+
) ?> ">
|
286 |
+
</form>
|
287 |
+
<?php else : ?>
|
288 |
+
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>"
|
289 |
+
method="POST" class="button-group">
|
290 |
+
<?php if ($show_upgrade) : ?>
|
291 |
+
<a class="button activate-license-trigger <?php echo $slug ?>" href="#!"><?php _efs( 'activate-license', $slug ) ?></a>
|
292 |
+
<?php endif ?>
|
293 |
+
<input type="submit" class="button"
|
294 |
+
value="<?php _efs( 'sync-license', $slug ) ?>">
|
295 |
+
<input type="hidden" name="fs_action"
|
296 |
+
value="<?php echo $slug ?>_sync_license">
|
297 |
+
<?php wp_nonce_field( $slug . '_sync_license' ) ?>
|
298 |
+
<a href="<?php echo $fs->get_upgrade_url() ?>"
|
299 |
+
class="button<?php if ( $show_upgrade ) {
|
300 |
+
echo ' button-primary';
|
301 |
+
} ?> button-upgrade"><i
|
302 |
+
class="dashicons dashicons-cart"></i> <?php ( $show_upgrade ) ?
|
303 |
+
_efs( 'upgrade', $slug ) :
|
304 |
+
_efs( 'change-plan', $slug )
|
305 |
+
?></a>
|
306 |
+
</form>
|
307 |
+
<?php endif ?>
|
308 |
+
</div>
|
309 |
+
<?php elseif ( 'version' === $p['id'] && $fs->has_paid_plan() ) : ?>
|
310 |
+
<?php if ( $fs->is_premium() ) : ?>
|
311 |
+
<label
|
312 |
+
class="fs-tag fs-<?php echo $fs->can_use_premium_code() ? 'success' : 'warn' ?>"><?php _efs( 'premium-version' ) ?></label>
|
313 |
+
<?php elseif ( $fs->can_use_premium_code() ) : ?>
|
314 |
+
<label class="fs-tag fs-warn"><?php _efs( 'free-version' ) ?></label>
|
315 |
+
<?php endif ?>
|
316 |
+
<?php endif ?>
|
317 |
+
</td>
|
318 |
+
<?php if ( 'plan' !== $p['id'] ) : ?>
|
319 |
+
<td class="fs-right">
|
320 |
+
<?php if ( 'email' === $p['id'] && ! $user->is_verified() ) : ?>
|
321 |
+
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST">
|
322 |
+
<input type="hidden" name="fs_action" value="verify_email">
|
323 |
+
<?php wp_nonce_field( 'verify_email' ) ?>
|
324 |
+
<input type="submit" class="button button-small"
|
325 |
+
value="<?php _efs( 'verify-email', $slug ) ?>">
|
326 |
+
</form>
|
327 |
+
<?php endif ?>
|
328 |
+
<?php if ( 'version' === $p['id'] ) : ?>
|
329 |
+
<div class="button-group">
|
330 |
+
<?php if ( $is_paying || $fs->is_trial() ) : ?>
|
331 |
+
<?php if ( ! $fs->is_allowed_to_install() ) : ?>
|
332 |
+
<a target="_blank" class="button button-primary"
|
333 |
+
href="<?php echo $fs->_get_latest_download_local_url() ?>"><?php echo sprintf( __fs( 'download-x-version', $slug ), ( $fs->is_trial() ? $trial_plan->title : $site->plan->title ) ) . ( is_object( $update ) ? ' [' . $update->version . ']' : '' ) ?></a>
|
334 |
+
<?php elseif ( is_object( $update ) ) : ?>
|
335 |
+
<a class="button button-primary"
|
336 |
+
href="<?php echo wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' . $fs->get_plugin_basename() ), 'upgrade-plugin_' . $fs->get_plugin_basename() ) ?>"><?php echo __fs( 'install-update-now', $slug ) . ' [' . $update->version . ']' ?></a>
|
337 |
+
<?php endif ?>
|
338 |
+
<?php endif; ?>
|
339 |
+
</div>
|
340 |
+
<?php
|
341 |
+
elseif ( in_array( $p['id'], array( 'license_key', 'site_secret_key' ) ) ) : ?>
|
342 |
+
<button class="button button-small"><?php _efs( 'show', $slug ) ?></button>
|
343 |
+
<?php
|
344 |
elseif (/*in_array($p['id'], array('site_secret_key', 'site_id', 'site_public_key')) ||*/
|
345 |
+
( is_string( $user->secret_key ) && in_array( $p['id'], array(
|
346 |
+
'email',
|
347 |
+
'user_name'
|
348 |
+
) ) )
|
349 |
) : ?>
|
350 |
+
<form action="<?php echo $fs->_get_admin_page_url( 'account' ) ?>" method="POST"
|
351 |
+
onsubmit="var val = prompt('<?php printf( __fs( 'what-is-your-x', $slug ), $p['title'] ) ?>', '<?php echo $p['value'] ?>'); if (null == val || '' === val) return false; jQuery('input[name=fs_<?php echo $p['id'] ?>_<?php echo $slug ?>]').val(val); return true;">
|
352 |
+
<input type="hidden" name="fs_action" value="update_<?php echo $p['id'] ?>">
|
353 |
+
<input type="hidden" name="fs_<?php echo $p['id'] ?>_<?php echo $slug ?>"
|
354 |
+
value="">
|
355 |
+
<?php wp_nonce_field( 'update_' . $p['id'] ) ?>
|
356 |
+
<input type="submit" class="button button-small"
|
357 |
+
value="<?php _efs( 'edit', $slug ) ?>">
|
358 |
+
</form>
|
359 |
+
<?php endif ?>
|
360 |
+
</td>
|
361 |
<?php endif ?>
|
362 |
+
</tr>
|
363 |
+
<?php $odd = ! $odd;
|
364 |
+
endforeach ?>
|
|
|
365 |
</table>
|
366 |
+
</div>
|
367 |
+
</div>
|
368 |
+
<script type="text/javascript">
|
369 |
+
(function ($) {
|
370 |
+
$('.fs-field-license_key button, .fs-field-site_secret_key button').click(function () {
|
371 |
+
var
|
372 |
+
$this = $(this),
|
373 |
+
$parent = $this.closest('tr'),
|
374 |
+
$input = $parent.find('input');
|
375 |
|
376 |
+
$parent.find('code').toggle();
|
377 |
+
$input.toggle();
|
|
|
|
|
|
|
378 |
|
379 |
+
if ($input.is(':visible')) {
|
380 |
+
$this.html('<?php _efs( 'hide', $slug ) ?>');
|
381 |
+
setTimeout(function () {
|
382 |
+
$input.select().focus();
|
383 |
+
}, 100);
|
384 |
+
}
|
385 |
+
else {
|
386 |
+
$this.html('<?php _efs( 'show', $slug ) ?>');
|
387 |
+
}
|
388 |
+
});
|
389 |
+
}(jQuery));
|
390 |
+
|
391 |
+
</script>
|
392 |
+
|
393 |
+
<?php
|
394 |
+
$account_addons = $fs->get_account_addons();
|
395 |
+
if ( ! is_array( $account_addons ) ) {
|
396 |
+
$account_addons = array();
|
397 |
+
}
|
398 |
+
|
399 |
+
$installed_addons = $fs->get_installed_addons();
|
400 |
+
$installed_addons_ids = array();
|
401 |
+
foreach ( $installed_addons as $fs_addon ) {
|
402 |
+
$installed_addons_ids[] = $fs_addon->get_id();
|
403 |
+
}
|
404 |
+
|
405 |
+
$addons_to_show = array_unique( array_merge( $installed_addons_ids, $account_addons ) );
|
406 |
+
?>
|
407 |
+
<?php if ( 0 < count( $addons_to_show ) ) : ?>
|
408 |
+
<!-- Add-Ons -->
|
409 |
+
<div class="postbox">
|
410 |
+
<div class="">
|
411 |
+
<!-- <div class="inside">-->
|
412 |
+
<table id="fs_addons" class="widefat">
|
413 |
+
<thead>
|
414 |
+
<tr>
|
415 |
+
<th><h3><?php _efs( 'add-ons', $slug ) ?></h3></th>
|
416 |
+
<th><?php _efs( 'id', $slug ) ?></th>
|
417 |
+
<th><?php _efs( 'version', $slug ) ?></th>
|
418 |
+
<th><?php _efs( 'plan', $slug ) ?></th>
|
419 |
+
<th><?php _efs( 'license', $slug ) ?></th>
|
420 |
+
<th></th>
|
421 |
+
<?php if ( defined( 'WP_FS__DEV_MODE' ) && WP_FS__DEV_MODE ) : ?>
|
422 |
+
<th></th>
|
423 |
+
<?php endif ?>
|
424 |
+
</tr>
|
425 |
+
</thead>
|
426 |
+
<tbody>
|
427 |
+
<?php $odd = true;
|
428 |
+
foreach ( $addons_to_show as $addon_id ) : ?>
|
429 |
<?php
|
430 |
+
$addon = $fs->get_addon( $addon_id );
|
431 |
+
$is_addon_activated = $fs->is_addon_activated( $addon->slug );
|
432 |
+
$is_addon_connected = $fs->is_addon_connected( $addon->slug );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
433 |
|
434 |
+
$fs_addon = $is_addon_connected ? freemius( $addon->slug ) : false;
|
435 |
+
if ( is_object( $fs_addon ) ) {
|
436 |
+
$is_paying = $fs_addon->is_paying();
|
437 |
+
$user = $fs_addon->get_user();
|
438 |
+
$site = $fs_addon->get_site();
|
439 |
+
$license = $fs_addon->_get_license();
|
440 |
+
$subscription = $fs_addon->_get_subscription();
|
441 |
+
$plan = $fs_addon->get_plan();
|
442 |
+
$is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
|
443 |
+
$is_paid_trial = $fs_addon->is_paid_trial();
|
444 |
+
$show_upgrade = ( ! $is_paying && ! $is_paid_trial && ! $fs_addon->_has_premium_license() );
|
445 |
+
$is_current_license_expired = is_object( $license ) && $license->is_expired();
|
446 |
+
}
|
447 |
|
448 |
+
// var_dump( $is_paid_trial, $license, $site, $subscription );
|
449 |
+
|
450 |
+
?>
|
451 |
+
<tr<?php if ( $odd ) {
|
452 |
+
echo ' class="alternate"';
|
453 |
+
} ?>>
|
454 |
+
<td>
|
455 |
+
<!-- Title -->
|
456 |
+
<?php echo $addon->title ?>
|
457 |
+
</td>
|
458 |
+
<?php if ( $is_addon_connected ) : ?>
|
459 |
<?php // Add-on Installed ?>
|
460 |
<?php $addon_site = $fs_addon->get_site(); ?>
|
461 |
+
<td>
|
462 |
+
<!-- ID -->
|
463 |
+
<?php echo $addon_site->id ?>
|
464 |
+
</td>
|
465 |
+
<td>
|
466 |
+
<!-- Version -->
|
467 |
+
<?php echo $fs_addon->get_plugin_version() ?>
|
468 |
+
</td>
|
469 |
+
<td>
|
470 |
+
<!-- Plan Title -->
|
471 |
+
<?php echo is_string( $addon_site->plan->name ) ? strtoupper( $addon_site->plan->title ) : 'FREE' ?>
|
472 |
+
</td>
|
473 |
+
<td>
|
474 |
+
<!-- Expiration -->
|
475 |
+
<?php
|
476 |
+
$tags = array();
|
477 |
|
478 |
+
if ( $fs_addon->is_trial() ) {
|
479 |
+
$tags[] = array( 'label' => __fs( 'trial', $slug ), 'type' => 'success' );
|
480 |
|
481 |
+
$tags[] = array(
|
482 |
+
'label' => sprintf( __fs( ( $is_paid_trial ? 'renews-in' : 'expires-in' ), $slug ), human_time_diff( time(), strtotime( $site->trial_ends ) ) ),
|
483 |
+
'type' => ( $is_paid_trial ? 'success' : 'warn' )
|
484 |
+
);
|
485 |
+
} else {
|
486 |
+
if ( is_object( $license ) ) {
|
487 |
+
if ( $license->is_cancelled ) {
|
488 |
+
$tags[] = array(
|
489 |
+
'label' => __fs( 'cancelled', $slug ),
|
490 |
+
'type' => 'error'
|
491 |
+
);
|
492 |
+
} else if ( $license->is_expired() ) {
|
493 |
+
$tags[] = array(
|
494 |
+
'label' => __fs( 'expired', $slug ),
|
495 |
+
'type' => 'error'
|
496 |
+
);
|
497 |
+
} else if ( $license->is_lifetime() ) {
|
498 |
+
$tags[] = array(
|
499 |
+
'label' => __fs( 'no-expiration', $slug ),
|
500 |
+
'type' => 'success'
|
501 |
+
);
|
502 |
+
} else if ( ! $is_active_subscription && ! $license->is_first_payment_pending() ) {
|
503 |
+
$tags[] = array(
|
504 |
+
'label' => sprintf( __fs( 'expires-in', $slug ), human_time_diff( time(), strtotime( $license->expiration ) ) ),
|
505 |
+
'type' => 'warn'
|
506 |
+
);
|
507 |
+
} else if ( $is_active_subscription && ! $subscription->is_first_payment_pending() ) {
|
508 |
+
$tags[] = array(
|
509 |
+
'label' => sprintf( __fs( 'renews-in', $slug ), human_time_diff( time(), strtotime( $subscription->next_payment ) ) ),
|
510 |
+
'type' => 'success'
|
511 |
+
);
|
512 |
+
}
|
513 |
+
}
|
514 |
+
}
|
515 |
|
516 |
+
foreach ( $tags as $t ) {
|
517 |
+
printf( '<label class="fs-tag fs-%s">%s</label>' . "\n", $t['type'], $t['label'] );
|
518 |
+
}
|
519 |
+
?>
|
520 |
+
</td>
|
521 |
+
<?php
|
522 |
+
$buttons = array();
|
523 |
+
if ( $is_addon_activated ) {
|
524 |
+
if ( $is_paying ) {
|
525 |
+
$buttons[] = fs_ui_get_action_button(
|
526 |
+
$slug,
|
527 |
+
'account',
|
528 |
+
'deactivate_license',
|
529 |
+
__fs( 'deactivate-license', $slug ),
|
530 |
+
array( 'plugin_id' => $addon_id ),
|
531 |
+
false
|
532 |
+
);
|
533 |
+
} else if ( $is_paid_trial ) {
|
534 |
+
$buttons[] = fs_ui_get_action_button(
|
535 |
+
$slug,
|
536 |
+
'account',
|
537 |
+
'cancel_trial',
|
538 |
+
__fs( 'cancel-trial', $slug ),
|
539 |
+
array( 'plugin_id' => $addon_id ),
|
540 |
+
false,
|
541 |
+
'dashicons dashicons-download',
|
542 |
+
__fs( 'cancel-trial-confirm', $slug ),
|
543 |
+
'POST'
|
544 |
+
);
|
545 |
+
} else {
|
546 |
+
$premium_license = $fs_addon->_get_available_premium_license();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
547 |
|
548 |
+
if ( is_object( $premium_license ) ) {
|
549 |
+
$site = $fs_addon->get_site();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
550 |
|
551 |
+
$buttons[] = fs_ui_get_action_button(
|
552 |
+
$slug,
|
553 |
+
'account',
|
554 |
+
'activate_license',
|
555 |
+
sprintf( __fs( 'activate-x-plan', $slug ), $fs_addon->get_plan_title(), ( $site->is_localhost() && $premium_license->is_free_localhost ) ? '[localhost]' : ( 1 < $premium_license->left() ? $premium_license->left() . ' left' : '' ) ),
|
556 |
+
array(
|
557 |
+
'plugin_id' => $addon_id,
|
558 |
+
'license_id' => $premium_license->id,
|
559 |
+
)
|
560 |
+
);
|
561 |
+
}
|
562 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
563 |
|
564 |
+
if ( 0 == count( $buttons ) ) {
|
565 |
+
// Add sync license only if non of the other CTAs are visible.
|
566 |
+
$buttons[] = fs_ui_get_action_button(
|
567 |
+
$slug,
|
568 |
+
'account',
|
569 |
+
$slug . '_sync_license',
|
570 |
+
__fs( 'sync-license', $slug ),
|
571 |
+
array( 'plugin_id' => $addon_id ),
|
572 |
+
false
|
573 |
+
);
|
574 |
|
575 |
+
}
|
576 |
+
} else if ( ! $show_upgrade ) {
|
577 |
+
if ( $fs->is_addon_installed( $addon->slug ) ) {
|
578 |
+
$addon_file = $fs->get_addon_basename( $addon->slug );
|
579 |
+
$buttons[] = sprintf(
|
580 |
+
'<a class="button button-primary" href="%s" title="%s" class="edit">%s</a>',
|
581 |
+
wp_nonce_url( 'plugins.php?action=activate&plugin=' . $addon_file, 'activate-plugin_' . $addon_file ),
|
582 |
+
esc_attr( __fs( 'activate-this-addon', $slug ) ),
|
583 |
+
__fs( 'activate', $slug )
|
584 |
+
);
|
585 |
+
} else {
|
586 |
+
if ( $fs->is_allowed_to_install() ) {
|
587 |
+
$buttons[] = sprintf(
|
588 |
+
'<a class="button button-primary" href="%s" class="edit">%s</a>',
|
589 |
+
wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $addon->slug ), 'install-plugin_' . $addon->slug ),
|
590 |
+
__fs( 'install-now', $slug )
|
591 |
+
);
|
592 |
+
} else {
|
593 |
+
$buttons[] = sprintf(
|
594 |
+
'<a target="_blank" class="button button-primary" href="%s" class="edit">%s</a>',
|
595 |
+
$fs->_get_latest_download_local_url( $addon_id ),
|
596 |
+
__fs( 'download-latest', $slug )
|
597 |
+
);
|
598 |
+
}
|
599 |
+
}
|
600 |
+
}
|
601 |
|
602 |
+
if ( $show_upgrade ) {
|
603 |
+
$buttons[] = sprintf( '<a href="%s" class="thickbox button button-primary" aria-label="%s" data-title="%s"><i class="dashicons dashicons-cart"></i> %s</a>',
|
604 |
+
esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&parent_plugin_id=' . $fs->get_id() . '&plugin=' . $addon->slug .
|
605 |
+
'&TB_iframe=true&width=600&height=550' ) ),
|
606 |
+
esc_attr( sprintf( __fs( 'more-information-about-x', $slug ), $addon->title ) ),
|
607 |
+
esc_attr( $addon->title ),
|
608 |
+
__fs( ( $fs_addon->has_free_plan() ? 'upgrade' : 'purchase' ), $slug )
|
609 |
+
);
|
610 |
+
}
|
611 |
+
|
612 |
+
$buttons_count = count( $buttons );
|
613 |
+
?>
|
614 |
+
|
615 |
+
<td>
|
616 |
+
<!-- Actions -->
|
617 |
+
<?php if ($buttons_count > 1) : ?>
|
618 |
+
<div class="button-group">
|
619 |
+
<?php endif ?>
|
620 |
+
<?php foreach ( $buttons as $button ) : ?>
|
621 |
<?php echo $button ?>
|
622 |
<?php endforeach ?>
|
623 |
<?php if ($buttons_count > 1) : ?>
|
624 |
+
</div>
|
625 |
+
<?php endif ?>
|
626 |
+
</td>
|
627 |
+
<?php else : ?>
|
628 |
<?php // Add-on NOT Installed or was never connected.
|
629 |
+
?>
|
630 |
+
<td colspan="4">
|
631 |
+
<!-- Action -->
|
632 |
+
<?php if ( $fs->is_addon_installed( $addon->slug ) ) : ?>
|
633 |
+
<?php $addon_file = $fs->get_addon_basename( $addon->slug ) ?>
|
634 |
+
<a class="button button-primary"
|
635 |
+
href="<?php echo wp_nonce_url( 'plugins.php?action=activate&plugin=' . $addon_file, 'activate-plugin_' . $addon_file ) ?>"
|
636 |
+
title="<?php esc_attr( __fs( 'activate-this-addon', $slug ) ) ?>"
|
637 |
+
class="edit"><?php _efs( 'activate', $slug ) ?></a>
|
638 |
+
<?php else : ?>
|
639 |
+
<?php if ( $fs->is_allowed_to_install() ) : ?>
|
640 |
+
<a class="button button-primary"
|
641 |
+
href="<?php echo wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $addon->slug ), 'install-plugin_' . $addon->slug ) ?>"><?php _efs( 'install-now', $slug ) ?></a>
|
642 |
+
<?php else : ?>
|
643 |
+
<a target="_blank" class="button button-primary"
|
644 |
+
href="<?php echo $fs->_get_latest_download_local_url( $addon_id ) ?>"><?php _efs( 'download-latest', $slug ) ?></a>
|
645 |
+
<?php endif ?>
|
646 |
<?php endif ?>
|
647 |
+
</td>
|
648 |
+
<?php endif ?>
|
649 |
+
<?php if ( defined( 'WP_FS__DEV_MODE' ) && WP_FS__DEV_MODE ) : ?>
|
650 |
+
<td>
|
651 |
+
<!-- Optional Delete Action -->
|
652 |
+
<?php
|
653 |
+
if ( $is_addon_activated ) {
|
654 |
+
fs_ui_action_button(
|
655 |
+
$slug, 'account',
|
656 |
+
'delete_account',
|
657 |
+
__fs( 'delete', $slug ),
|
658 |
+
array( 'plugin_id' => $addon_id ),
|
659 |
+
false
|
660 |
+
);
|
661 |
+
}
|
662 |
+
?>
|
663 |
+
</td>
|
664 |
+
<?php endif ?>
|
665 |
+
</tr>
|
666 |
+
<?php $odd = ! $odd;
|
667 |
+
endforeach ?>
|
668 |
+
</tbody>
|
669 |
+
</table>
|
670 |
+
</div>
|
671 |
+
</div>
|
672 |
+
<?php endif ?>
|
673 |
+
|
674 |
+
<?php $fs->do_action( 'after_account_details' ) ?>
|
675 |
+
</div>
|
676 |
+
</div>
|
677 |
+
</div>
|
678 |
+
</div>
|
679 |
+
</div>
|
680 |
+
<?php
|
681 |
+
$params = array(
|
682 |
+
'page' => 'account',
|
683 |
+
'module_id' => $fs->get_id(),
|
684 |
+
'module_slug' => $slug,
|
685 |
+
'module_version' => $fs->get_plugin_version(),
|
686 |
+
);
|
687 |
+
fs_require_template( 'powered-by.php', $params );
|
688 |
+
?>
|
freemius/templates/add-ons.php
CHANGED
@@ -141,4 +141,12 @@
|
|
141 |
<?php endif ?>
|
142 |
})(jQuery);
|
143 |
</script>
|
144 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
<?php endif ?>
|
142 |
})(jQuery);
|
143 |
</script>
|
144 |
+
<?php
|
145 |
+
$params = array(
|
146 |
+
'page' => 'addons',
|
147 |
+
'module_id' => $fs->get_id(),
|
148 |
+
'module_slug' => $slug,
|
149 |
+
'module_version' => $fs->get_plugin_version(),
|
150 |
+
);
|
151 |
+
fs_require_template( 'powered-by.php', $params );
|
152 |
+
?>
|
freemius/templates/billing.php
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2016, Freemius, Inc.
|
5 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
6 |
+
* @since 1.2.0
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
$slug = $VARS['slug'];
|
14 |
+
/**
|
15 |
+
* @var Freemius $fs
|
16 |
+
*/
|
17 |
+
$fs = freemius( $slug );
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @var FS_Plugin_Tag $update
|
21 |
+
*/
|
22 |
+
$update = $fs->get_update( false, false );
|
23 |
+
|
24 |
+
$is_paying = $fs->is_paying();
|
25 |
+
$user = $fs->get_user();
|
26 |
+
$site = $fs->get_site();
|
27 |
+
$name = $user->get_name();
|
28 |
+
$license = $fs->_get_license();
|
29 |
+
$subscription = $fs->_get_subscription();
|
30 |
+
$plan = $fs->get_plan();
|
31 |
+
$is_active_subscription = ( is_object( $subscription ) && $subscription->is_active() );
|
32 |
+
$is_paid_trial = $fs->is_paid_trial();
|
33 |
+
$show_upgrade = ( ! $is_paying && ! $is_paid_trial );
|
34 |
+
?>
|
35 |
+
|
36 |
+
<div id="fs_account" class="wrap">
|
37 |
+
<h2 class="nav-tab-wrapper">
|
38 |
+
<a href="<?php echo $fs->get_account_url() ?>" class="nav-tab"><?php _efs( 'account', $slug ) ?></a>
|
39 |
+
<?php if ( $fs->has_addons() ) : ?>
|
40 |
+
<a href="<?php echo $fs->_get_admin_page_url( 'addons' ) ?>"
|
41 |
+
class="nav-tab"><?php _efs( 'add-ons', $slug ) ?></a>
|
42 |
+
<?php endif ?>
|
43 |
+
<?php if ( $fs->is_not_paying() && $fs->has_paid_plan() ) : ?>
|
44 |
+
<a href="<?php echo $fs->get_upgrade_url() ?>" class="nav-tab"><?php _efs( 'upgrade', $slug ) ?></a>
|
45 |
+
<?php if ( $fs->apply_filters( 'show_trial', true ) && ! $fs->is_trial_utilized() && $fs->has_trial_plan() ) : ?>
|
46 |
+
<a href="<?php echo $fs->get_trial_url() ?>"
|
47 |
+
class="nav-tab"><?php _efs( 'free-trial', $slug ) ?></a>
|
48 |
+
<?php endif ?>
|
49 |
+
<?php endif ?>
|
50 |
+
<?php if ( ! $plan->is_free() ) : ?>
|
51 |
+
<a href="<?php echo $fs->get_account_tab_url( 'billing' ) ?>"
|
52 |
+
class="nav-tab nav-tab-active"><?php _efs( 'billing', $slug ) ?></a>
|
53 |
+
<?php endif ?>
|
54 |
+
</h2>
|
55 |
+
|
56 |
+
<div id="poststuff">
|
57 |
+
<div>
|
58 |
+
<div class="has-sidebar has-right-sidebar">
|
59 |
+
<div class="has-sidebar-content">
|
60 |
+
<div class="postbox">
|
61 |
+
<h3><?php _efs( 'payments', $slug ) ?></h3>
|
62 |
+
|
63 |
+
<?php
|
64 |
+
$payments = $fs->_fetch_payments();
|
65 |
+
?>
|
66 |
+
|
67 |
+
<div class="inside">
|
68 |
+
<table class="widefat">
|
69 |
+
<thead>
|
70 |
+
<tr>
|
71 |
+
<th><?php _efs( 'id', $slug ) ?></th>
|
72 |
+
<th><?php _efs( 'date', $slug ) ?></th>
|
73 |
+
<!-- <th>--><?php //_efs( 'transaction' ) ?><!--</th>-->
|
74 |
+
<th><?php _efs( 'amount', $slug ) ?></th>
|
75 |
+
<th><?php _efs( 'invoice', $slug ) ?></th>
|
76 |
+
</tr>
|
77 |
+
</thead>
|
78 |
+
<tbody>
|
79 |
+
<?php $odd = true ?>
|
80 |
+
<?php foreach ( $payments as $payment ) : ?>
|
81 |
+
<tr<?php echo $odd ? ' class="alternate"' : '' ?>>
|
82 |
+
<td><?php echo $payment->id ?></td>
|
83 |
+
<td><?php echo date( 'M j, Y', strtotime( $payment->created ) ) ?></td>
|
84 |
+
<td>$<?php echo $payment->gross ?></td>
|
85 |
+
<td><a href="<?php echo $fs->_get_invoice_api_url($payment->id) ?>" class="button button-small"
|
86 |
+
target="_blank"><?php _efs( 'invoice', $slug ) ?></a></td>
|
87 |
+
</tr>
|
88 |
+
<?php $odd = ! $odd; endforeach ?>
|
89 |
+
</tbody>
|
90 |
+
</table>
|
91 |
+
</div>
|
92 |
+
</div>
|
93 |
+
</div>
|
94 |
+
</div>
|
95 |
+
</div>
|
96 |
+
</div>
|
97 |
+
</div>
|
98 |
+
<?php
|
99 |
+
$params = array(
|
100 |
+
'page' => 'account',
|
101 |
+
'module_id' => $fs->get_id(),
|
102 |
+
'module_slug' => $slug,
|
103 |
+
'module_version' => $fs->get_plugin_version(),
|
104 |
+
);
|
105 |
+
fs_require_template( 'powered-by.php', $params );
|
106 |
+
?>
|
freemius/templates/checkout.php
CHANGED
@@ -95,13 +95,7 @@
|
|
95 |
}
|
96 |
}
|
97 |
|
98 |
-
$return_url =
|
99 |
-
'account',
|
100 |
-
array(
|
101 |
-
'fs_action' => $slug . '_sync_license',
|
102 |
-
'plugin_id' => isset( $_GET['plugin_id'] ) ? $_GET['plugin_id'] : $fs->get_id()
|
103 |
-
)
|
104 |
-
), $slug . '_sync_license' );
|
105 |
|
106 |
$query_params = array_merge( $context_params, $_GET, array(
|
107 |
// Current plugin version.
|
@@ -257,4 +251,12 @@
|
|
257 |
})(jQuery);
|
258 |
</script>
|
259 |
</div>
|
260 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
}
|
96 |
}
|
97 |
|
98 |
+
$return_url = $fs->_get_sync_license_url( isset( $_GET['plugin_id'] ) ? $_GET['plugin_id'] : $fs->get_id() );
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
|
100 |
$query_params = array_merge( $context_params, $_GET, array(
|
101 |
// Current plugin version.
|
251 |
})(jQuery);
|
252 |
</script>
|
253 |
</div>
|
254 |
+
<?php
|
255 |
+
$params = array(
|
256 |
+
'page' => 'checkout',
|
257 |
+
'module_id' => $fs->get_id(),
|
258 |
+
'module_slug' => $slug,
|
259 |
+
'module_version' => $fs->get_plugin_version(),
|
260 |
+
);
|
261 |
+
fs_require_template( 'powered-by.php', $params );
|
262 |
+
?>
|
freemius/templates/connect.php
CHANGED
@@ -39,7 +39,8 @@
|
|
39 |
'https://freemius.com/wordpress/usage-tracking/';
|
40 |
|
41 |
$freemius_site_url .= '?' . http_build_query( array(
|
42 |
-
'
|
|
|
43 |
) );
|
44 |
|
45 |
$freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" tabindex="1">freemius.com</a>';
|
@@ -48,6 +49,14 @@
|
|
48 |
|
49 |
$require_license_key = $is_premium_only ||
|
50 |
( $is_freemium && $is_premium_code && fs_request_get_bool( 'require_license', true ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
?>
|
52 |
<div id="fs_connect"
|
53 |
class="wrap<?php if ( ! $fs->is_enable_anonymous() || $is_pending_activation || $require_license_key ) {
|
@@ -129,6 +138,8 @@
|
|
129 |
<input id="fs_license_key" name="fs_key" type="text" required maxlength="32"
|
130 |
placeholder="<?php _efs( 'license-key', $slug ) ?>" tabindex="1"/>
|
131 |
<i class="dashicons dashicons-admin-network"></i>
|
|
|
|
|
132 |
</div>
|
133 |
<?php endif ?>
|
134 |
</div>
|
@@ -310,12 +321,14 @@
|
|
310 |
* @author Vova Feldman (@svovaf)
|
311 |
* @since 1.1.9
|
312 |
*/
|
313 |
-
$licenseKeyInput.on('keyup', function () {
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
|
|
|
|
319 |
}).focus();
|
320 |
}
|
321 |
|
39 |
'https://freemius.com/wordpress/usage-tracking/';
|
40 |
|
41 |
$freemius_site_url .= '?' . http_build_query( array(
|
42 |
+
'id' => $fs->get_id(),
|
43 |
+
'slug' => $slug,
|
44 |
) );
|
45 |
|
46 |
$freemius_link = '<a href="' . $freemius_site_url . '" target="_blank" tabindex="1">freemius.com</a>';
|
49 |
|
50 |
$require_license_key = $is_premium_only ||
|
51 |
( $is_freemium && $is_premium_code && fs_request_get_bool( 'require_license', true ) );
|
52 |
+
|
53 |
+
if ( $is_pending_activation ) {
|
54 |
+
$require_license_key = false;
|
55 |
+
}
|
56 |
+
|
57 |
+
if ( $require_license_key ) {
|
58 |
+
$fs->_require_license_activation_dialog();
|
59 |
+
}
|
60 |
?>
|
61 |
<div id="fs_connect"
|
62 |
class="wrap<?php if ( ! $fs->is_enable_anonymous() || $is_pending_activation || $require_license_key ) {
|
138 |
<input id="fs_license_key" name="fs_key" type="text" required maxlength="32"
|
139 |
placeholder="<?php _efs( 'license-key', $slug ) ?>" tabindex="1"/>
|
140 |
<i class="dashicons dashicons-admin-network"></i>
|
141 |
+
<a class="show-license-resend-modal show-license-resend-modal-<?php echo $slug; ?>"
|
142 |
+
href="#"><?php _efs( 'cant-find-license-key' ); ?></a>
|
143 |
</div>
|
144 |
<?php endif ?>
|
145 |
</div>
|
321 |
* @author Vova Feldman (@svovaf)
|
322 |
* @since 1.1.9
|
323 |
*/
|
324 |
+
$licenseKeyInput.on('keyup paste delete cut', function () {
|
325 |
+
setTimeout(function () {
|
326 |
+
if ('' === $licenseKeyInput.val()) {
|
327 |
+
$primaryCta.attr('disabled', 'disabled');
|
328 |
+
} else {
|
329 |
+
$primaryCta.prop('disabled', false);
|
330 |
+
}
|
331 |
+
}, 100);
|
332 |
}).focus();
|
333 |
}
|
334 |
|
freemius/templates/contact.php
CHANGED
@@ -74,4 +74,12 @@
|
|
74 |
})(jQuery);
|
75 |
</script>
|
76 |
</div>
|
77 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
})(jQuery);
|
75 |
</script>
|
76 |
</div>
|
77 |
+
<?php
|
78 |
+
$params = array(
|
79 |
+
'page' => 'contact',
|
80 |
+
'module_id' => $fs->get_id(),
|
81 |
+
'module_slug' => $slug,
|
82 |
+
'module_version' => $fs->get_plugin_version(),
|
83 |
+
);
|
84 |
+
fs_require_template( 'powered-by.php', $params );
|
85 |
+
?>
|
freemius/templates/debug.php
CHANGED
@@ -239,7 +239,7 @@
|
|
239 |
<tr>
|
240 |
<td><?php echo $user->id ?></td>
|
241 |
<td><?php echo $user->get_name() ?></td>
|
242 |
-
<td><a href="mailto:<?php esc_attr_e($user->email) ?>"><?php echo $user->email ?></a></td>
|
243 |
<td><?php echo json_encode( $user->is_verified ) ?></td>
|
244 |
<td><?php echo $user->public_key ?></td>
|
245 |
<td><?php echo $user->secret_key ?></td>
|
@@ -247,4 +247,49 @@
|
|
247 |
<?php endforeach ?>
|
248 |
</tbody>
|
249 |
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
<?php endif ?>
|
239 |
<tr>
|
240 |
<td><?php echo $user->id ?></td>
|
241 |
<td><?php echo $user->get_name() ?></td>
|
242 |
+
<td><a href="mailto:<?php esc_attr_e( $user->email ) ?>"><?php echo $user->email ?></a></td>
|
243 |
<td><?php echo json_encode( $user->is_verified ) ?></td>
|
244 |
<td><?php echo $user->public_key ?></td>
|
245 |
<td><?php echo $user->secret_key ?></td>
|
247 |
<?php endforeach ?>
|
248 |
</tbody>
|
249 |
</table>
|
250 |
+
<?php endif ?>
|
251 |
+
<?php
|
252 |
+
/**
|
253 |
+
* @var FS_Plugin_License[] $licenses
|
254 |
+
*/
|
255 |
+
$licenses = $VARS['licenses'];
|
256 |
+
?>
|
257 |
+
<?php if ( is_array( $licenses ) && 0 < count( $licenses ) ) : ?>
|
258 |
+
<h2><?php _efs( 'licenses' ) ?></h2>
|
259 |
+
<table id="fs_users" class="widefat">
|
260 |
+
<thead>
|
261 |
+
<tr>
|
262 |
+
<th><?php _efs( 'id' ) ?></th>
|
263 |
+
<th><?php _efs( 'plugin-id' ) ?></th>
|
264 |
+
<th><?php _efs( 'user-id' ) ?></th>
|
265 |
+
<th><?php _efs( 'plan-id' ) ?></th>
|
266 |
+
<th><?php _efs( 'quota' ) ?></th>
|
267 |
+
<th><?php _efs( 'activated' ) ?></th>
|
268 |
+
<th><?php _efs( 'blocking' ) ?></th>
|
269 |
+
<th><?php _efs( 'license-key' ) ?></th>
|
270 |
+
<th><?php _efs( 'expiration' ) ?></th>
|
271 |
+
</tr>
|
272 |
+
</thead>
|
273 |
+
<tbody>
|
274 |
+
<?php foreach ( $licenses as $slug => $module_licenses ) : ?>
|
275 |
+
<?php foreach ( $module_licenses as $id => $licenses ) : ?>
|
276 |
+
<?php if ( is_array( $licenses ) && 0 < count( $licenses ) ) : ?>
|
277 |
+
<?php foreach ( $licenses as $license ) : ?>
|
278 |
+
<tr>
|
279 |
+
<td><?php echo $license->id ?></td>
|
280 |
+
<td><?php echo $license->plugin_id ?></td>
|
281 |
+
<td><?php echo $license->user_id ?></td>
|
282 |
+
<td><?php echo $license->plan_id ?></td>
|
283 |
+
<td><?php echo $license->is_unlimited() ? 'Unlimited' : ( $license->is_single_site() ? 'Single Site' : $license->quota ) ?></td>
|
284 |
+
<td><?php echo $license->activated ?></td>
|
285 |
+
<td><?php echo $license->is_block_features ? 'Blocking' : 'Flexible' ?></td>
|
286 |
+
<td><?php echo htmlentities( $license->secret_key ) ?></td>
|
287 |
+
<td><?php echo $license->expiration ?></td>
|
288 |
+
</tr>
|
289 |
+
<?php endforeach ?>
|
290 |
+
<?php endif ?>
|
291 |
+
<?php endforeach ?>
|
292 |
+
<?php endforeach ?>
|
293 |
+
</tbody>
|
294 |
+
</table>
|
295 |
<?php endif ?>
|
freemius/templates/forms/deactivation/contact.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
6 |
+
* @since 1.2.0
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
$slug = $VARS['slug'];
|
14 |
+
$fs = freemius( $slug );
|
15 |
+
|
16 |
+
echo __fs( 'contact-support-before-deactivation', $slug )
|
17 |
+
. sprintf(" <a href='%s' class='button button-small button-primary'>%s</a>",
|
18 |
+
$fs->contact_url( 'technical_support' ),
|
19 |
+
__fs( 'contact-support', $slug )
|
20 |
+
);
|
freemius/templates/{deactivation-feedback-modal.php → forms/deactivation/form.php}
RENAMED
@@ -20,15 +20,39 @@
|
|
20 |
$reasons_list_items_html = '';
|
21 |
|
22 |
foreach ( $reasons as $reason ) {
|
23 |
-
$list_item_classes
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
}
|
|
|
|
|
26 |
?>
|
27 |
<script type="text/javascript">
|
28 |
(function ($) {
|
29 |
var reasonsHtml = <?php echo json_encode( $reasons_list_items_html ); ?>,
|
30 |
modalHtml =
|
31 |
-
'<div class="fs-modal<?php echo empty( $confirmation_message ) ? ' no-confirmation-message' : ''; ?>">'
|
32 |
+ ' <div class="fs-modal-dialog">'
|
33 |
+ ' <div class="fs-modal-body">'
|
34 |
+ ' <div class="fs-modal-panel" data-panel-id="confirm"><p><?php echo $confirmation_message; ?></p></div>'
|
@@ -91,7 +115,7 @@
|
|
91 |
}, 150);
|
92 |
});
|
93 |
|
94 |
-
$modal.on('click', '.button', function (evt) {
|
95 |
evt.preventDefault();
|
96 |
|
97 |
if ($(this).hasClass('disabled')) {
|
@@ -127,8 +151,8 @@
|
|
127 |
'reason_info': userReason
|
128 |
},
|
129 |
beforeSend: function () {
|
130 |
-
_parent.find('.button').addClass('disabled');
|
131 |
-
_parent.find('.button-secondary').text('Processing...');
|
132 |
},
|
133 |
complete : function () {
|
134 |
// Do not show the dialog box, deactivate the plugin.
|
@@ -155,10 +179,15 @@
|
|
155 |
var _parent = $(this).parents('li:first');
|
156 |
|
157 |
$modal.find('.reason-input').remove();
|
|
|
158 |
$modal.find('.button-deactivate').text('<?php printf( __fs( 'deactivation-modal-button-submit' , $slug ) ); ?>');
|
159 |
|
160 |
enableDeactivateButton();
|
161 |
|
|
|
|
|
|
|
|
|
162 |
if (_parent.hasClass('has-input')) {
|
163 |
var inputType = _parent.data('input-type'),
|
164 |
inputPlaceholder = _parent.data('input-placeholder'),
|
20 |
$reasons_list_items_html = '';
|
21 |
|
22 |
foreach ( $reasons as $reason ) {
|
23 |
+
$list_item_classes = 'reason' . ( ! empty( $reason['input_type'] ) ? ' has-input' : '' );
|
24 |
+
|
25 |
+
if ( isset( $reason['internal_message'] ) && ! empty( $reason['internal_message'] ) ) {
|
26 |
+
$list_item_classes .= ' has-internal-message';
|
27 |
+
$reason_internal_message = $reason['internal_message'];
|
28 |
+
} else {
|
29 |
+
$reason_internal_message = '';
|
30 |
+
}
|
31 |
+
|
32 |
+
$reason_list_item_html = <<< HTML
|
33 |
+
<li class="{$list_item_classes}"
|
34 |
+
data-input-type="{$reason['input_type']}"
|
35 |
+
data-input-placeholder="{$reason['input_placeholder']}">
|
36 |
+
<label>
|
37 |
+
<span>
|
38 |
+
<input type="radio" name="selected-reason" value="{$reason['id']}"/>
|
39 |
+
</span>
|
40 |
+
<span>{$reason['text']}</span>
|
41 |
+
</label>
|
42 |
+
<div class="internal-message">{$reason_internal_message}</div>
|
43 |
+
</li>
|
44 |
+
HTML;
|
45 |
+
|
46 |
+
$reasons_list_items_html .= $reason_list_item_html;
|
47 |
}
|
48 |
+
|
49 |
+
fs_enqueue_local_style( 'dialog-boxes', '/admin/dialog-boxes.css' );
|
50 |
?>
|
51 |
<script type="text/javascript">
|
52 |
(function ($) {
|
53 |
var reasonsHtml = <?php echo json_encode( $reasons_list_items_html ); ?>,
|
54 |
modalHtml =
|
55 |
+
'<div class="fs-modal fs-modal-deactivation-feedback<?php echo empty( $confirmation_message ) ? ' no-confirmation-message' : ''; ?>">'
|
56 |
+ ' <div class="fs-modal-dialog">'
|
57 |
+ ' <div class="fs-modal-body">'
|
58 |
+ ' <div class="fs-modal-panel" data-panel-id="confirm"><p><?php echo $confirmation_message; ?></p></div>'
|
115 |
}, 150);
|
116 |
});
|
117 |
|
118 |
+
$modal.on('click', '.fs-modal-footer .button', function (evt) {
|
119 |
evt.preventDefault();
|
120 |
|
121 |
if ($(this).hasClass('disabled')) {
|
151 |
'reason_info': userReason
|
152 |
},
|
153 |
beforeSend: function () {
|
154 |
+
_parent.find('.fs-modal-footer .button').addClass('disabled');
|
155 |
+
_parent.find('.fs-modal-footer .button-secondary').text('Processing...');
|
156 |
},
|
157 |
complete : function () {
|
158 |
// Do not show the dialog box, deactivate the plugin.
|
179 |
var _parent = $(this).parents('li:first');
|
180 |
|
181 |
$modal.find('.reason-input').remove();
|
182 |
+
$modal.find( '.internal-message' ).hide();
|
183 |
$modal.find('.button-deactivate').text('<?php printf( __fs( 'deactivation-modal-button-submit' , $slug ) ); ?>');
|
184 |
|
185 |
enableDeactivateButton();
|
186 |
|
187 |
+
if ( _parent.hasClass( 'has-internal-message' ) ) {
|
188 |
+
_parent.find( '.internal-message' ).show();
|
189 |
+
}
|
190 |
+
|
191 |
if (_parent.hasClass('has-input')) {
|
192 |
var inputType = _parent.data('input-type'),
|
193 |
inputPlaceholder = _parent.data('input-placeholder'),
|
freemius/templates/forms/deactivation/retry-skip.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
6 |
+
* @since 1.2.0
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
$slug = $VARS['slug'];
|
14 |
+
$fs = freemius( $slug );
|
15 |
+
|
16 |
+
$skip_url = wp_nonce_url( $fs->_get_admin_page_url( '', array( 'fs_action' => $slug . '_skip_activation' ) ), $slug . '_skip_activation' );
|
17 |
+
$skip_text = strtolower( __fs( 'skip', $slug ) );
|
18 |
+
$use_plugin_anonymously_text = __fs( 'click-here-to-use-plugin-anonymously', $slug );
|
19 |
+
|
20 |
+
echo sprintf( __fs( 'dont-have-to-share-any-data', $slug ), "<a href='{$skip_url}'>{$skip_text}</a>" )
|
21 |
+
. " <a href='{$skip_url}' class='button button-small button-secondary'>{$use_plugin_anonymously_text}</a>";
|
freemius/templates/{license-activation-modal.php → forms/license-activation.php}
RENAMED
@@ -13,8 +13,12 @@
|
|
13 |
$slug = $VARS['slug'];
|
14 |
$fs = freemius( $slug );
|
15 |
|
16 |
-
|
17 |
-
$
|
|
|
|
|
|
|
|
|
18 |
|
19 |
if ( $fs->is_registered() ) {
|
20 |
$activate_button_text = __fs( $fs->is_free_plan() ? 'activate-license' : 'update-license', $slug );
|
@@ -34,17 +38,21 @@
|
|
34 |
$license_key_text = __fs( 'license-key' , $slug );
|
35 |
|
36 |
$modal_content_html = <<< HTML
|
|
|
37 |
<p>{$message_above_input_field}</p>
|
38 |
<input class="license_key" type="text" placeholder="{$license_key_text}" />
|
|
|
39 |
<p>{$message_below_input_field}</p>
|
40 |
HTML;
|
|
|
|
|
41 |
?>
|
42 |
<script type="text/javascript">
|
43 |
(function( $ ) {
|
44 |
$( document ).ready(function() {
|
45 |
var modalContentHtml = <?php echo json_encode($modal_content_html); ?>,
|
46 |
modalHtml =
|
47 |
-
'<div class="fs-modal">'
|
48 |
+ ' <div class="fs-modal-dialog">'
|
49 |
+ ' <div class="fs-modal-body">'
|
50 |
+ ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
|
@@ -56,7 +64,12 @@ HTML;
|
|
56 |
+ ' </div>'
|
57 |
+ '</div>',
|
58 |
$modal = $(modalHtml),
|
59 |
-
$activateLicenseLink
|
|
|
|
|
|
|
|
|
|
|
60 |
|
61 |
$modal.appendTo($('body'));
|
62 |
|
@@ -99,11 +112,9 @@ HTML;
|
|
99 |
return;
|
100 |
}
|
101 |
|
102 |
-
var
|
103 |
-
activateButton = $('.button-activate-license'),
|
104 |
-
licenseKey = $('input.license_key').val().trim();
|
105 |
|
106 |
-
|
107 |
|
108 |
if (0 === licenseKey.length) {
|
109 |
return;
|
@@ -113,14 +124,24 @@ HTML;
|
|
113 |
url: ajaxurl,
|
114 |
method: 'POST',
|
115 |
data: {
|
116 |
-
|
117 |
-
|
|
|
118 |
},
|
119 |
beforeSend: function () {
|
120 |
-
|
121 |
},
|
122 |
-
|
123 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
}
|
125 |
});
|
126 |
});
|
@@ -150,7 +171,7 @@ HTML;
|
|
150 |
$modal.addClass('active');
|
151 |
$('body').addClass('has-fs-modal');
|
152 |
|
153 |
-
$
|
154 |
}
|
155 |
|
156 |
function closeModal() {
|
@@ -158,19 +179,32 @@ HTML;
|
|
158 |
$('body').removeClass('has-fs-modal');
|
159 |
}
|
160 |
|
161 |
-
function
|
162 |
-
$('input.license_key').val('');
|
163 |
-
|
164 |
enableActivateLicenseButton();
|
165 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
}
|
167 |
|
168 |
function enableActivateLicenseButton() {
|
169 |
-
$
|
170 |
}
|
171 |
|
172 |
function disableActivateLicenseButton() {
|
173 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
}
|
175 |
});
|
176 |
})( jQuery );
|
13 |
$slug = $VARS['slug'];
|
14 |
$fs = freemius( $slug );
|
15 |
|
16 |
+
// The URL to redirect to after successfully activating the license from the "Plugins" page.
|
17 |
+
$sync_license_url = $VARS['sync-license-url'];
|
18 |
+
|
19 |
+
$cant_find_license_key_text = __fs( 'cant-find-license-key', $slug );
|
20 |
+
$message_above_input_field = __fs( 'activate-license-message', $slug );
|
21 |
+
$message_below_input_field = '';
|
22 |
|
23 |
if ( $fs->is_registered() ) {
|
24 |
$activate_button_text = __fs( $fs->is_free_plan() ? 'activate-license' : 'update-license', $slug );
|
38 |
$license_key_text = __fs( 'license-key' , $slug );
|
39 |
|
40 |
$modal_content_html = <<< HTML
|
41 |
+
<div class="notice notice-error inline license-activation-message"><p></p></div>
|
42 |
<p>{$message_above_input_field}</p>
|
43 |
<input class="license_key" type="text" placeholder="{$license_key_text}" />
|
44 |
+
<a class="show-license-resend-modal show-license-resend-modal-{$slug}" href="#">{$cant_find_license_key_text}</a>
|
45 |
<p>{$message_below_input_field}</p>
|
46 |
HTML;
|
47 |
+
|
48 |
+
fs_enqueue_local_style( 'dialog-boxes', '/admin/dialog-boxes.css' );
|
49 |
?>
|
50 |
<script type="text/javascript">
|
51 |
(function( $ ) {
|
52 |
$( document ).ready(function() {
|
53 |
var modalContentHtml = <?php echo json_encode($modal_content_html); ?>,
|
54 |
modalHtml =
|
55 |
+
'<div class="fs-modal fs-modal-license-activation">'
|
56 |
+ ' <div class="fs-modal-dialog">'
|
57 |
+ ' <div class="fs-modal-body">'
|
58 |
+ ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
|
64 |
+ ' </div>'
|
65 |
+ '</div>',
|
66 |
$modal = $(modalHtml),
|
67 |
+
$activateLicenseLink = $('span.activate-license.<?php echo $VARS['slug'] ?> a, .activate-license-trigger.<?php echo $VARS['slug'] ?>'),
|
68 |
+
$activateLicenseButton = $modal.find('.button-activate-license'),
|
69 |
+
$licenseKeyInput = $modal.find('input.license_key'),
|
70 |
+
$licenseActivationMessage = $modal.find( '.license-activation-message' ),
|
71 |
+
pluginSlug = '<?php echo $slug; ?>',
|
72 |
+
syncLicenseUrl = '<?php echo $sync_license_url; ?>';
|
73 |
|
74 |
$modal.appendTo($('body'));
|
75 |
|
112 |
return;
|
113 |
}
|
114 |
|
115 |
+
var licenseKey = $licenseKeyInput.val().trim();
|
|
|
|
|
116 |
|
117 |
+
disableActivateLicenseButton();
|
118 |
|
119 |
if (0 === licenseKey.length) {
|
120 |
return;
|
124 |
url: ajaxurl,
|
125 |
method: 'POST',
|
126 |
data: {
|
127 |
+
action : 'activate_license',
|
128 |
+
slug : pluginSlug,
|
129 |
+
license_key: licenseKey
|
130 |
},
|
131 |
beforeSend: function () {
|
132 |
+
$activateLicenseButton.text( '<?php _efs( 'activating-license', $slug ); ?>' );
|
133 |
},
|
134 |
+
success: function( result ) {
|
135 |
+
var resultObj = $.parseJSON( result );
|
136 |
+
if ( resultObj.success ) {
|
137 |
+
closeModal();
|
138 |
+
|
139 |
+
// Redirect to the "Account" page and sync the license.
|
140 |
+
window.location.href = syncLicenseUrl;
|
141 |
+
} else {
|
142 |
+
showError( resultObj.error );
|
143 |
+
resetActivateLicenseButton();
|
144 |
+
}
|
145 |
}
|
146 |
});
|
147 |
});
|
171 |
$modal.addClass('active');
|
172 |
$('body').addClass('has-fs-modal');
|
173 |
|
174 |
+
$licenseKeyInput.focus();
|
175 |
}
|
176 |
|
177 |
function closeModal() {
|
179 |
$('body').removeClass('has-fs-modal');
|
180 |
}
|
181 |
|
182 |
+
function resetActivateLicenseButton() {
|
|
|
|
|
183 |
enableActivateLicenseButton();
|
184 |
+
$activateLicenseButton.text( '<?php echo $activate_button_text; ?>' );
|
185 |
+
}
|
186 |
+
|
187 |
+
function resetModal() {
|
188 |
+
hideError();
|
189 |
+
resetActivateLicenseButton();
|
190 |
+
$licenseKeyInput.val( '' );
|
191 |
}
|
192 |
|
193 |
function enableActivateLicenseButton() {
|
194 |
+
$activateLicenseButton.removeClass( 'disabled' );
|
195 |
}
|
196 |
|
197 |
function disableActivateLicenseButton() {
|
198 |
+
$activateLicenseButton.addClass( 'disabled' );
|
199 |
+
}
|
200 |
+
|
201 |
+
function hideError() {
|
202 |
+
$licenseActivationMessage.hide();
|
203 |
+
}
|
204 |
+
|
205 |
+
function showError( msg ) {
|
206 |
+
$licenseActivationMessage.find( ' > p' ).html( msg );
|
207 |
+
$licenseActivationMessage.show();
|
208 |
}
|
209 |
});
|
210 |
})( jQuery );
|
freemius/templates/forms/resend-key.php
ADDED
@@ -0,0 +1,203 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Freemius
|
4 |
+
* @copyright Copyright (c) 2015, Freemius, Inc.
|
5 |
+
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
6 |
+
* @since 1.2.0
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit;
|
11 |
+
}
|
12 |
+
|
13 |
+
$slug = $VARS['slug'];
|
14 |
+
$fs = freemius( $slug );
|
15 |
+
|
16 |
+
$message_above_input_field = __fs( 'ask-for-upgrade-email-address', $slug );
|
17 |
+
$send_button_text = __fs( 'send-license-key', $slug );
|
18 |
+
$cancel_button_text = __fs( 'deactivation-modal-button-cancel', $slug );
|
19 |
+
$email_address_placeholder = __fs( 'email-address', $slug );
|
20 |
+
|
21 |
+
$modal_content_html = <<< HTML
|
22 |
+
<div class="notice notice-error inline license-resend-message"><p></p></div>
|
23 |
+
<p>{$message_above_input_field}</p>
|
24 |
+
<div class="input-container">
|
25 |
+
<div class="button-container">
|
26 |
+
<a href="#" class="button button-primary button-send-license-key disabled">{$send_button_text}</a>
|
27 |
+
</div>
|
28 |
+
<div class="email-address-container">
|
29 |
+
<input class="email-address" type="text" placeholder="{$email_address_placeholder}">
|
30 |
+
</div>
|
31 |
+
</div>
|
32 |
+
HTML;
|
33 |
+
|
34 |
+
fs_enqueue_local_style( 'dialog-boxes', '/admin/dialog-boxes.css' );
|
35 |
+
?>
|
36 |
+
<script type="text/javascript">
|
37 |
+
(function ($) {
|
38 |
+
$(document).ready(function () {
|
39 |
+
var modalContentHtml = <?php echo json_encode( $modal_content_html ); ?>,
|
40 |
+
modalHtml =
|
41 |
+
'<div class="fs-modal fs-modal-license-key-resend">'
|
42 |
+
+ ' <div class="fs-modal-dialog">'
|
43 |
+
+ ' <a class="button-close">✖</a>'
|
44 |
+
+ ' <div class="fs-modal-body">'
|
45 |
+
+ ' <div class="fs-modal-panel active">' + modalContentHtml + '</div>'
|
46 |
+
+ ' </div>'
|
47 |
+
+ ' </div>'
|
48 |
+
+ '</div>',
|
49 |
+
$modal = $(modalHtml),
|
50 |
+
$sendLicenseKeyButton = $modal.find('.button-send-license-key'),
|
51 |
+
$emailAddressInput = $modal.find('input.email-address'),
|
52 |
+
$licenseResendMessage = $modal.find('.license-resend-message'),
|
53 |
+
moduleSlug = '<?php echo $slug; ?>',
|
54 |
+
isChild = false;
|
55 |
+
|
56 |
+
$modal.appendTo($('body'));
|
57 |
+
|
58 |
+
registerEventHandlers();
|
59 |
+
|
60 |
+
function registerEventHandlers() {
|
61 |
+
$('a.show-license-resend-modal-' + moduleSlug).click(function (evt) {
|
62 |
+
evt.preventDefault();
|
63 |
+
|
64 |
+
showModal();
|
65 |
+
});
|
66 |
+
|
67 |
+
$modal.on('input propertychange', 'input.email-address', function () {
|
68 |
+
|
69 |
+
var emailAddress = $(this).val().trim();
|
70 |
+
|
71 |
+
/**
|
72 |
+
* If email address is not empty, enable the send license key button.
|
73 |
+
*/
|
74 |
+
if (emailAddress.length > 0) {
|
75 |
+
enableSendLicenseKeyButton();
|
76 |
+
}
|
77 |
+
});
|
78 |
+
|
79 |
+
$modal.on('blur', 'input.email-address', function () {
|
80 |
+
var emailAddress = $(this).val().trim();
|
81 |
+
|
82 |
+
/**
|
83 |
+
* If email address is empty, disable the send license key button.
|
84 |
+
*/
|
85 |
+
if (0 === emailAddress.length) {
|
86 |
+
disableSendLicenseKeyButton();
|
87 |
+
}
|
88 |
+
});
|
89 |
+
|
90 |
+
$modal.on('click', '.button', function (evt) {
|
91 |
+
evt.preventDefault();
|
92 |
+
|
93 |
+
if ($(this).hasClass('disabled')) {
|
94 |
+
return;
|
95 |
+
}
|
96 |
+
|
97 |
+
if ($(this).hasClass('button-close')) {
|
98 |
+
closeModal();
|
99 |
+
return;
|
100 |
+
}
|
101 |
+
|
102 |
+
var emailAddress = $emailAddressInput.val().trim();
|
103 |
+
|
104 |
+
disableSendLicenseKeyButton();
|
105 |
+
|
106 |
+
if (0 === emailAddress.length) {
|
107 |
+
return;
|
108 |
+
}
|
109 |
+
|
110 |
+
$.ajax({
|
111 |
+
url : ajaxurl,
|
112 |
+
method : 'POST',
|
113 |
+
data : {
|
114 |
+
action: 'resend_license_key',
|
115 |
+
slug : moduleSlug,
|
116 |
+
email : emailAddress
|
117 |
+
},
|
118 |
+
beforeSend: function () {
|
119 |
+
$sendLicenseKeyButton.text('<?php _efs( 'sending-license-key', $slug ) ?>...');
|
120 |
+
},
|
121 |
+
success : function (result) {
|
122 |
+
var resultObj = $.parseJSON(result);
|
123 |
+
if (resultObj.success) {
|
124 |
+
closeModal();
|
125 |
+
} else {
|
126 |
+
showError(resultObj.error);
|
127 |
+
resetSendLicenseKeyButton();
|
128 |
+
}
|
129 |
+
}
|
130 |
+
});
|
131 |
+
});
|
132 |
+
|
133 |
+
// If the user has clicked outside the window, close the modal.
|
134 |
+
$modal.on('click', function (evt) {
|
135 |
+
var $target = $(evt.target);
|
136 |
+
|
137 |
+
// If the user has clicked anywhere in the modal dialog, just return.
|
138 |
+
if ($target.hasClass('fs-modal-body') || $target.parents('.fs-modal-body').length > 0) {
|
139 |
+
return;
|
140 |
+
}
|
141 |
+
|
142 |
+
closeModal();
|
143 |
+
});
|
144 |
+
}
|
145 |
+
|
146 |
+
function showModal() {
|
147 |
+
resetModal();
|
148 |
+
|
149 |
+
// Display the dialog box.
|
150 |
+
$modal.addClass('active');
|
151 |
+
$emailAddressInput.focus();
|
152 |
+
|
153 |
+
var $body = $('body');
|
154 |
+
|
155 |
+
isChild = $body.hasClass('has-fs-modal');
|
156 |
+
if (isChild) {
|
157 |
+
return;
|
158 |
+
}
|
159 |
+
|
160 |
+
$body.addClass('has-fs-modal');
|
161 |
+
}
|
162 |
+
|
163 |
+
function closeModal() {
|
164 |
+
$modal.removeClass('active');
|
165 |
+
|
166 |
+
// If child modal, do not remove the "has-fs-modal" class of the <body> element to keep its scrollbars hidden.
|
167 |
+
if (isChild) {
|
168 |
+
return;
|
169 |
+
}
|
170 |
+
|
171 |
+
$('body').removeClass('has-fs-modal');
|
172 |
+
}
|
173 |
+
|
174 |
+
function resetSendLicenseKeyButton() {
|
175 |
+
enableSendLicenseKeyButton();
|
176 |
+
$sendLicenseKeyButton.text('<?php echo $send_button_text; ?>');
|
177 |
+
}
|
178 |
+
|
179 |
+
function resetModal() {
|
180 |
+
hideError();
|
181 |
+
resetSendLicenseKeyButton();
|
182 |
+
$emailAddressInput.val('');
|
183 |
+
}
|
184 |
+
|
185 |
+
function enableSendLicenseKeyButton() {
|
186 |
+
$sendLicenseKeyButton.removeClass('disabled');
|
187 |
+
}
|
188 |
+
|
189 |
+
function disableSendLicenseKeyButton() {
|
190 |
+
$sendLicenseKeyButton.addClass('disabled');
|
191 |
+
}
|
192 |
+
|
193 |
+
function hideError() {
|
194 |
+
$licenseResendMessage.hide();
|
195 |
+
}
|
196 |
+
|
197 |
+
function showError(msg) {
|
198 |
+
$licenseResendMessage.find(' > p').html(msg);
|
199 |
+
$licenseResendMessage.show();
|
200 |
+
}
|
201 |
+
});
|
202 |
+
})(jQuery);
|
203 |
+
</script>
|
freemius/templates/powered-by.php
CHANGED
@@ -10,9 +10,7 @@
|
|
10 |
exit;
|
11 |
}
|
12 |
|
13 |
-
|
14 |
-
* KEEP THE POWERED BY TAB AND GET ADDITIONAL - 1% - OFF THE COMMISSION
|
15 |
-
*/
|
16 |
|
17 |
wp_enqueue_script( 'jquery' );
|
18 |
wp_enqueue_script( 'json2' );
|
@@ -26,7 +24,7 @@
|
|
26 |
$(function () {
|
27 |
var
|
28 |
base_url = '<?php echo WP_FS__ADDRESS ?>',
|
29 |
-
piframe = $('<iframe id="fs_promo_tab" src="' + base_url + '/promotional-tab
|
30 |
.appendTo('#piframe');
|
31 |
|
32 |
FS.PostMessage.init(base_url);
|
10 |
exit;
|
11 |
}
|
12 |
|
13 |
+
$VARS = isset($VARS) ? $VARS : array();
|
|
|
|
|
14 |
|
15 |
wp_enqueue_script( 'jquery' );
|
16 |
wp_enqueue_script( 'json2' );
|
24 |
$(function () {
|
25 |
var
|
26 |
base_url = '<?php echo WP_FS__ADDRESS ?>',
|
27 |
+
piframe = $('<iframe id="fs_promo_tab" src="' + base_url + '/promotional-tab/?<?php echo http_build_query($VARS) ?>#' + encodeURIComponent(document.location.href) + '" height="350" width="60" frameborder="0" style=" background: transparent; position: fixed; top: 20%; right: 0;" scrolling="no"></iframe>')
|
28 |
.appendTo('#piframe');
|
29 |
|
30 |
FS.PostMessage.init(base_url);
|
freemius/templates/pricing.php
CHANGED
@@ -44,7 +44,7 @@
|
|
44 |
}
|
45 |
|
46 |
$query_params = array_merge( $context_params, $_GET, array(
|
47 |
-
'next' => $fs->
|
48 |
'plugin_version' => $fs->get_plugin_version(),
|
49 |
// Billing cycle.
|
50 |
'billing_cycle' => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ),
|
@@ -97,4 +97,12 @@
|
|
97 |
})(jQuery);
|
98 |
</script>
|
99 |
</div>
|
100 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
$query_params = array_merge( $context_params, $_GET, array(
|
47 |
+
'next' => $fs->_get_sync_license_url( false, false ),
|
48 |
'plugin_version' => $fs->get_plugin_version(),
|
49 |
// Billing cycle.
|
50 |
'billing_cycle' => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ),
|
97 |
})(jQuery);
|
98 |
</script>
|
99 |
</div>
|
100 |
+
<?php
|
101 |
+
$params = array(
|
102 |
+
'page' => 'pricing',
|
103 |
+
'module_id' => $fs->get_id(),
|
104 |
+
'module_slug' => $slug,
|
105 |
+
'module_version' => $fs->get_plugin_version(),
|
106 |
+
);
|
107 |
+
fs_require_template( 'powered-by.php', $params );
|
108 |
+
?>
|
inc/activate.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if ( ! function_exists( 'wpinked_so_wb_default_active' ) ) :
|
3 |
+
// Activating widgets on install
|
4 |
+
function wpinked_so_wb_default_active( $group ) {
|
5 |
+
$active_widgets = array(
|
6 |
+
'ink-alert' => true,
|
7 |
+
'ink-accordion' => true,
|
8 |
+
'ink-audio' => true,
|
9 |
+
'ink-bar-count' => true,
|
10 |
+
'ink-blog' => true,
|
11 |
+
'ink-buttons' => true,
|
12 |
+
'ink-circle-count' => true,
|
13 |
+
'ink-divider' => true,
|
14 |
+
'ink-filt-ardn' => true,
|
15 |
+
'ink-media-box' => true,
|
16 |
+
'ink-num-count' => true,
|
17 |
+
'ink-pricing-table' => true,
|
18 |
+
'ink-person' => true,
|
19 |
+
'ink-folio' => true,
|
20 |
+
'ink-slider' => true,
|
21 |
+
'ink-tabs' => true,
|
22 |
+
'ink-testimonial' => true,
|
23 |
+
'ink-video' => true,
|
24 |
+
);
|
25 |
+
return $active_widgets;
|
26 |
+
}
|
27 |
+
endif;
|
28 |
+
add_filter( 'siteorigin_widgets_default_active', 'wpinked_so_wb_default_active', 20 );
|
inc/enqueue.php
CHANGED
@@ -15,12 +15,14 @@ if ( ! function_exists ( 'wpinked_so_styles' ) ) :
|
|
15 |
function wpinked_so_styles() {
|
16 |
|
17 |
wp_enqueue_style( 'iw-defaults', plugin_dir_url(__FILE__) . '../css/defaults.css', array(), INKED_SO_VER );
|
|
|
18 |
|
19 |
wp_register_script( 'iw-waypoints-js', plugin_dir_url(__FILE__) . '../js/waypoints' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
20 |
wp_register_script( 'iw-countto-js', plugin_dir_url(__FILE__) . '../js/countto' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
21 |
wp_register_script( 'iw-easypie-js', plugin_dir_url(__FILE__) . '../js/easypie' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
22 |
wp_register_script( 'iw-mixitup-js', plugin_dir_url(__FILE__) . '../js/mixitup' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
23 |
wp_register_script( 'iw-match-height-js', plugin_dir_url(__FILE__) . '../js/match-height' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
|
|
24 |
|
25 |
}
|
26 |
endif;
|
15 |
function wpinked_so_styles() {
|
16 |
|
17 |
wp_enqueue_style( 'iw-defaults', plugin_dir_url(__FILE__) . '../css/defaults.css', array(), INKED_SO_VER );
|
18 |
+
wp_register_style( 'iw-slick', plugin_dir_url(__FILE__) . '../css/slick.css', array(), INKED_SO_VER );
|
19 |
|
20 |
wp_register_script( 'iw-waypoints-js', plugin_dir_url(__FILE__) . '../js/waypoints' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
21 |
wp_register_script( 'iw-countto-js', plugin_dir_url(__FILE__) . '../js/countto' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
22 |
wp_register_script( 'iw-easypie-js', plugin_dir_url(__FILE__) . '../js/easypie' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
23 |
wp_register_script( 'iw-mixitup-js', plugin_dir_url(__FILE__) . '../js/mixitup' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
24 |
wp_register_script( 'iw-match-height-js', plugin_dir_url(__FILE__) . '../js/match-height' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
25 |
+
wp_register_script( 'iw-slick-js', plugin_dir_url(__FILE__) . '../js/slick' . INKED_JS_SUFFIX . '.js', array( 'jquery' ), INKED_SO_VER, true );
|
26 |
|
27 |
}
|
28 |
endif;
|
js/easypie.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e,t){"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e)}):"object"==typeof exports?module.exports=t(require("jquery")):t(jQuery)}(this,function(e){var t=function(e,t){var n,a=document.createElement("canvas");e.appendChild(a),"object"==typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(a);var i=a.getContext("2d");a.width=a.height=t.size;var r=1;window.devicePixelRatio>1&&(r=window.devicePixelRatio,a.style.width=a.style.height=[t.size,"px"].join(""),a.width=a.height=t.size*r,i.scale(r,r)),i.translate(t.size/2,t.size/2),i.rotate((
|
1 |
+
!function(e,t){"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e)}):"object"==typeof exports?module.exports=t(require("jquery")):t(jQuery)}(this,function(e){var t=function(e,t){var n,a=document.createElement("canvas");e.appendChild(a),"object"==typeof G_vmlCanvasManager&&G_vmlCanvasManager.initElement(a);var i=a.getContext("2d");a.width=a.height=t.size;var r=1;window.devicePixelRatio>1&&(r=window.devicePixelRatio,a.style.width=a.style.height=[t.size,"px"].join(""),a.width=a.height=t.size*r,i.scale(r,r)),i.translate(t.size/2,t.size/2),i.rotate((-.5+t.rotate/180)*Math.PI);var o=(t.size-t.lineWidth)/2;t.scaleColor&&t.scaleLength&&(o-=t.scaleLength+2),Date.now=Date.now||function(){return+new Date};var s=function(e,t,n){n=Math.min(Math.max(-1,n||0),1);var a=n<=0;i.beginPath(),i.arc(0,0,o,0,2*Math.PI*n,a),i.strokeStyle=e,i.lineWidth=t,i.stroke()},d=function(){var e,n;i.lineWidth=1,i.fillStyle=t.scaleColor,i.save();for(var a=24;a>0;--a)a%6===0?(n=t.scaleLength,e=0):(n=.6*t.scaleLength,e=t.scaleLength-n),i.fillRect(-t.size/2+e,0,n,1),i.rotate(Math.PI/12);i.restore()},h=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)}}(),u=function(){t.scaleColor&&d(),t.trackColor&&s(t.trackColor,t.trackWidth||t.lineWidth,1)};this.getCanvas=function(){return a},this.getCtx=function(){return i},this.clear=function(){i.clearRect(t.size/-2,t.size/-2,t.size,t.size)},this.draw=function(e){t.scaleColor||t.trackColor?i.getImageData&&i.putImageData?n?i.putImageData(n,0,0):(u(),n=i.getImageData(0,0,t.size*r,t.size*r)):(this.clear(),u()):this.clear(),i.lineCap=t.lineCap;var a;a="function"==typeof t.barColor?t.barColor(e):t.barColor,s(a,t.lineWidth,e/100)}.bind(this),this.animate=function(e,n){var a=Date.now();t.onStart(e,n);var i=function(){var r=Math.min(Date.now()-a,t.animate.duration),o=t.easing(this,r,e,n-e,t.animate.duration);this.draw(o),t.onStep(e,n,o),r>=t.animate.duration?t.onStop(e,n):h(i)}.bind(this);h(i)}.bind(this)},n=function(e,n){var a={barColor:"#ef1e25",trackColor:"#f9f9f9",scaleColor:"#dfe0e0",scaleLength:5,lineCap:"round",lineWidth:3,trackWidth:void 0,size:110,rotate:0,animate:{duration:1e3,enabled:!0},easing:function(e,t,n,a,i){return t/=i/2,t<1?a/2*t*t+n:-a/2*(--t*(t-2)-1)+n},onStart:function(e,t){},onStep:function(e,t,n){},onStop:function(e,t){}};if("undefined"!=typeof t)a.renderer=t;else{if("undefined"==typeof SVGRenderer)throw new Error("Please load either the SVG- or the CanvasRenderer");a.renderer=SVGRenderer}var i={},r=0,o=function(){this.el=e,this.options=i;for(var t in a)a.hasOwnProperty(t)&&(i[t]=n&&"undefined"!=typeof n[t]?n[t]:a[t],"function"==typeof i[t]&&(i[t]=i[t].bind(this)));"string"==typeof i.easing&&"undefined"!=typeof jQuery&&jQuery.isFunction(jQuery.easing[i.easing])?i.easing=jQuery.easing[i.easing]:i.easing=a.easing,"number"==typeof i.animate&&(i.animate={duration:i.animate,enabled:!0}),"boolean"!=typeof i.animate||i.animate||(i.animate={duration:1e3,enabled:i.animate}),this.renderer=new i.renderer(e,i),this.renderer.draw(r),e.dataset&&e.dataset.percent?this.update(parseFloat(e.dataset.percent)):e.getAttribute&&e.getAttribute("data-percent")&&this.update(parseFloat(e.getAttribute("data-percent")))}.bind(this);this.update=function(e){return e=parseFloat(e),i.animate.enabled?this.renderer.animate(r,e):this.renderer.draw(e),r=e,this}.bind(this),this.disableAnimation=function(){return i.animate.enabled=!1,this},this.enableAnimation=function(){return i.animate.enabled=!0,this},o()};e.fn.easyPieChart=function(t){return this.each(function(){var a;e.data(this,"easyPieChart")||(a=e.extend({},t,e(this).data()),e.data(this,"easyPieChart",new n(this,a)))})}});
|
js/match-height.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,i=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),n=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-i(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(n-a))<=o?r[r.length-1]=s.add(e):r.push(e),n=a}),r},n=function(e){var o={byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=n(e);if(o.remove){var i=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(i)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.0",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,r._afterUpdate=null,r._rows=a,r._parse=i,r._parseOptions=n,r._apply=function(e,o){var s=n(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),d=h.parents().filter(":hidden");return d.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),d.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),n=0;if(s.target)n=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),i=e.css("display");"inline-block"!==i&&"flex"!==i&&"inline-flex"!==i&&(i="block");var a={display:i};a[s.property]="",e.css(a),e.outerHeight(!1)>n&&(n=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=i(e.css("border-top-width"))+i(e.css("border-bottom-width")),o+=i(e.css("padding-top"))+i(e.css("padding-bottom"))),e.css(s.property,n-o+"px"))})}),d.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),i=o.attr("data-mh")||o.attr("data-match-height");i in e?e[i]=e[i].add(o):e[i]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(i,a){if(a&&"resize"===a.type){var n=t(window).width();if(n===e)return;e=n}i
|
1 |
+
!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){var e=-1,o=-1,i=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),n=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-i(e.css("margin-top")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(n-a))<=o?r[r.length-1]=s.add(e):r.push(e),n=a}),r},n=function(e){var o={byRow:!0,property:"height",target:null,remove:!1};return"object"==typeof e?t.extend(o,e):("boolean"==typeof e?o.byRow=e:"remove"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=n(e);if(o.remove){var i=this;return this.css(o.property,""),t.each(r._groups,function(t,e){e.elements=e.elements.not(i)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version="0.7.0",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,r._afterUpdate=null,r._rows=a,r._parse=i,r._parseOptions=n,r._apply=function(e,o){var s=n(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t("html").outerHeight(!0),d=h.parents().filter(":hidden");return d.each(function(){var e=t(this);e.data("style-cache",e.attr("style"))}),d.css("display","block"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css("display");"inline-block"!==o&&"flex"!==o&&"inline-flex"!==o&&(o="block"),e.data("style-cache",e.attr("style")),e.css({display:o,"padding-top":"0","padding-bottom":"0","margin-top":"0","margin-bottom":"0","border-top-width":"0","border-bottom-width":"0",height:"100px",overflow:"hidden"})}),l=a(h),h.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||"")})),t.each(l,function(e,o){var a=t(o),n=0;if(s.target)n=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,"");a.each(function(){var e=t(this),o=e.attr("style"),i=e.css("display");"inline-block"!==i&&"flex"!==i&&"inline-flex"!==i&&(i="block");var a={display:i};a[s.property]="",e.css(a),e.outerHeight(!1)>n&&(n=e.outerHeight(!1)),o?e.attr("style",o):e.css("display","")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||("border-box"!==e.css("box-sizing")&&(o+=i(e.css("border-top-width"))+i(e.css("border-bottom-width")),o+=i(e.css("padding-top"))+i(e.css("padding-bottom"))),e.css(s.property,n-o+"px"))})}),d.each(function(){var e=t(this);e.attr("style",e.data("style-cache")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t("html").outerHeight(!0)),this},r._applyDataApi=function(){var e={};t("[data-match-height], [data-mh]").each(function(){var o=t(this),i=o.attr("data-mh")||o.attr("data-match-height");i in e?e[i]=e[i].add(o):e[i]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(i,a){if(a&&"resize"===a.type){var n=t(window).width();if(n===e)return;e=n}i?o===-1&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi),t(window).bind("load",function(t){r._update(!1,t)}),t(window).bind("resize orientationchange",function(t){r._update(!0,t)})});
|
js/mixitup.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t,e){"use strict";t.MixItUp=function(){var e=this;e._execAction("_constructor",0),t.extend(e,{selectors:{target:".mix",filter:".filter",sort:".sort"},animation:{enable:!0,effects:"fade scale",duration:600,easing:"ease",perspectiveDistance:"3000",perspectiveOrigin:"50% 50%",queue:!0,queueLimit:1,animateChangeLayout:!1,animateResizeContainer:!0,animateResizeTargets:!1,staggerSequence:!1,reverseOut:!1},callbacks:{onMixLoad:!1,onMixStart:!1,onMixBusy:!1,onMixEnd:!1,onMixFail:!1,_user:!1},controls:{enable:!0,live:!1,toggleFilterButtons:!1,toggleLogic:"or",activeClass:"active"},layout:{display:"inline-block",containerClass:"",containerClassFail:"fail"},load:{filter:"all",sort:!1},_$body:null,_$container:null,_$targets:null,_$parent:null,_$sortButtons:null,_$filterButtons:null,_suckMode:!1,_mixing:!1,_sorting:!1,_clicking:!1,_loading:!0,_changingLayout:!1,_changingClass:!1,_changingDisplay:!1,_origOrder:[],_startOrder:[],_newOrder:[],_activeFilter:null,_toggleArray:[],_toggleString:"",_activeSort:"default:asc",_newSort:null,_startHeight:null,_newHeight:null,_incPadding:!0,_newDisplay:null,_newClass:null,_targetsBound:0,_targetsDone:0,_queue:[],_$show:t(),_$hide:t()}),e._execAction("_constructor",1)},t.MixItUp.prototype={constructor:t.MixItUp,_instances:{},_handled:{_filter:{},_sort:{}},_bound:{_filter:{},_sort:{}},_actions:{},_filters:{},extend:function(e){for(var a in e)t.MixItUp.prototype[a]=e[a]},addAction:function(e,a,i,n){t.MixItUp.prototype._addHook("_actions",e,a,i,n)},addFilter:function(e,a,i,n){t.MixItUp.prototype._addHook("_filters",e,a,i,n)},_addHook:function(e,a,i,n,r){var o=t.MixItUp.prototype[e],s={};r=1===r||"post"===r?"post":"pre",s[a]={},s[a][r]={},s[a][r][i]=n,t.extend(!0,o,s)},_init:function(e,a){var i=this;if(i._execAction("_init",0,arguments),a&&t.extend(!0,i,a),i._$body=t("body"),i._domNode=e,i._$container=t(e),i._$container.addClass(i.layout.containerClass),i._id=e.id,i._platformDetect(),i._brake=i._getPrefixedCSS("transition","none"),i._refresh(!0),i._$parent=i._$targets.parent().length?i._$targets.parent():i._$container,i.load.sort&&(i._newSort=i._parseSort(i.load.sort),i._newSortString=i.load.sort,i._activeSort=i.load.sort,i._sort(),i._printSort()),i._activeFilter="all"===i.load.filter?i.selectors.target:"none"===i.load.filter?"":i.load.filter,i.controls.enable&&i._bindHandlers(),i.controls.toggleFilterButtons){i._buildToggleArray();for(var n=0;n<i._toggleArray.length;n++)i._updateControls({filter:i._toggleArray[n],sort:i._activeSort},!0)}else i.controls.enable&&i._updateControls({filter:i._activeFilter,sort:i._activeSort});i._filter(),i._init=!0,i._$container.data("mixItUp",i),i._execAction("_init",1,arguments),i._buildState(),i._$targets.css(i._brake),i._goMix(i.animation.enable)},_platformDetect:function(){var t=this,a=["Webkit","Moz","O","ms"],i=["webkit","moz"],n=window.navigator.appVersion.match(/Chrome\/(\d+)\./)||!1,r="undefined"!=typeof InstallTrigger,o=function(t){for(var e=0;e<a.length;e++)if(a[e]+"Transition"in t.style)return{prefix:"-"+a[e].toLowerCase()+"-",vendor:a[e]};return"transition"in t.style?"":!1},s=o(t._domNode);t._execAction("_platformDetect",0),t._chrome=n?parseInt(n[1],10):!1,t._ff=r?parseInt(window.navigator.userAgent.match(/rv:([^)]+)\)/)[1]):!1,t._prefix=s.prefix,t._vendor=s.vendor,t._suckMode=!window.atob||!t._prefix,t._suckMode&&(t.animation.enable=!1),t._ff&&t._ff<=4&&(t.animation.enable=!1);for(var l=0;l<i.length&&!window.requestAnimationFrame;l++)window.requestAnimationFrame=window[i[l]+"RequestAnimationFrame"];"function"!=typeof Object.getPrototypeOf&&("object"==typeof"test".__proto__?Object.getPrototypeOf=function(t){return t.__proto__}:Object.getPrototypeOf=function(t){return t.constructor.prototype}),t._domNode.nextElementSibling===e&&Object.defineProperty(Element.prototype,"nextElementSibling",{get:function(){for(var t=this.nextSibling;t;){if(1===t.nodeType)return t;t=t.nextSibling}return null}}),t._execAction("_platformDetect",1)},_refresh:function(t,a){var i=this;i._execAction("_refresh",0,arguments),i._$targets=i._$container.find(i.selectors.target);for(var n=0;n<i._$targets.length;n++){var r=i._$targets[n];if(r.dataset===e||a){r.dataset={};for(var o=0;o<r.attributes.length;o++){var s=r.attributes[o],l=s.name,c=s.value;if(l.indexOf("data-")>-1){var _=i._helpers._camelCase(l.substring(5,l.length));r.dataset[_]=c}}}r.mixParent===e&&(r.mixParent=i._id)}if(i._$targets.length&&t||!i._origOrder.length&&i._$targets.length){i._origOrder=[];for(var n=0;n<i._$targets.length;n++){var r=i._$targets[n];i._origOrder.push(r)}}i._execAction("_refresh",1,arguments)},_bindHandlers:function(){var a=this,i=t.MixItUp.prototype._bound._filter,n=t.MixItUp.prototype._bound._sort;a._execAction("_bindHandlers",0),a.controls.live?a._$body.on("click.mixItUp."+a._id,a.selectors.sort,function(){a._processClick(t(this),"sort")}).on("click.mixItUp."+a._id,a.selectors.filter,function(){a._processClick(t(this),"filter")}):(a._$sortButtons=t(a.selectors.sort),a._$filterButtons=t(a.selectors.filter),a._$sortButtons.on("click.mixItUp."+a._id,function(){a._processClick(t(this),"sort")}),a._$filterButtons.on("click.mixItUp."+a._id,function(){a._processClick(t(this),"filter")})),i[a.selectors.filter]=i[a.selectors.filter]===e?1:i[a.selectors.filter]+1,n[a.selectors.sort]=n[a.selectors.sort]===e?1:n[a.selectors.sort]+1,a._execAction("_bindHandlers",1)},_processClick:function(a,i){var n=this,r=function(a,i,r){var o=t.MixItUp.prototype;o._handled["_"+i][n.selectors[i]]=o._handled["_"+i][n.selectors[i]]===e?1:o._handled["_"+i][n.selectors[i]]+1,o._handled["_"+i][n.selectors[i]]===o._bound["_"+i][n.selectors[i]]&&(a[(r?"remove":"add")+"Class"](n.controls.activeClass),delete o._handled["_"+i][n.selectors[i]])};if(n._execAction("_processClick",0,arguments),!n._mixing||n.animation.queue&&n._queue.length<n.animation.queueLimit){if(n._clicking=!0,"sort"===i){var o=a.attr("data-sort");(!a.hasClass(n.controls.activeClass)||o.indexOf("random")>-1)&&(t(n.selectors.sort).removeClass(n.controls.activeClass),r(a,i),n.sort(o))}if("filter"===i){var s,l=a.attr("data-filter"),c="or"===n.controls.toggleLogic?",":"";n.controls.toggleFilterButtons?(n._buildToggleArray(),a.hasClass(n.controls.activeClass)?(r(a,i,!0),s=n._toggleArray.indexOf(l),n._toggleArray.splice(s,1)):(r(a,i),n._toggleArray.push(l)),n._toggleArray=t.grep(n._toggleArray,function(t){return t}),n._toggleString=n._toggleArray.join(c),n.filter(n._toggleString)):a.hasClass(n.controls.activeClass)||(t(n.selectors.filter).removeClass(n.controls.activeClass),r(a,i),n.filter(l))}n._execAction("_processClick",1,arguments)}else"function"==typeof n.callbacks.onMixBusy&&n.callbacks.onMixBusy.call(n._domNode,n._state,n),n._execAction("_processClickBusy",1,arguments)},_buildToggleArray:function(){var t=this,e=t._activeFilter.replace(/\s/g,"");if(t._execAction("_buildToggleArray",0,arguments),"or"===t.controls.toggleLogic)t._toggleArray=e.split(",");else{t._toggleArray=e.split("."),!t._toggleArray[0]&&t._toggleArray.shift();for(var a,i=0;a=t._toggleArray[i];i++)t._toggleArray[i]="."+a}t._execAction("_buildToggleArray",1,arguments)},_updateControls:function(a,i){var n=this,r={filter:a.filter,sort:a.sort},o=function(t,e){try{i&&"filter"===s&&"none"!==r.filter&&""!==r.filter?t.filter(e).addClass(n.controls.activeClass):t.removeClass(n.controls.activeClass).filter(e).addClass(n.controls.activeClass)}catch(a){}},s="filter",l=null;n._execAction("_updateControls",0,arguments),a.filter===e&&(r.filter=n._activeFilter),a.sort===e&&(r.sort=n._activeSort),r.filter===n.selectors.target&&(r.filter="all");for(var c=0;2>c;c++)l=n.controls.live?t(n.selectors[s]):n["_$"+s+"Buttons"],l&&o(l,"[data-"+s+'="'+r[s]+'"]'),s="sort";n._execAction("_updateControls",1,arguments)},_filter:function(){var e=this;e._execAction("_filter",0);for(var a=0;a<e._$targets.length;a++){var i=t(e._$targets[a]);i.is(e._activeFilter)?e._$show=e._$show.add(i):e._$hide=e._$hide.add(i)}e._execAction("_filter",1)},_sort:function(){var t=this,e=function(t){for(var e=t.slice(),a=e.length,i=a;i--;){var n=parseInt(Math.random()*a),r=e[i];e[i]=e[n],e[n]=r}return e};t._execAction("_sort",0),t._startOrder=[];for(var a=0;a<t._$targets.length;a++){var i=t._$targets[a];t._startOrder.push(i)}switch(t._newSort[0].sortBy){case"default":t._newOrder=t._origOrder;break;case"random":t._newOrder=e(t._startOrder);break;case"custom":t._newOrder=t._newSort[0].order;break;default:t._newOrder=t._startOrder.concat().sort(function(e,a){return t._compare(e,a)})}t._execAction("_sort",1)},_compare:function(t,e,a){a=a?a:0;var i=this,n=i._newSort[a].order,r=function(t){return t.dataset[i._newSort[a].sortBy]||0},o=isNaN(1*r(t))?r(t).toLowerCase():1*r(t),s=isNaN(1*r(e))?r(e).toLowerCase():1*r(e);return s>o?"asc"===n?-1:1:o>s?"asc"===n?1:-1:o===s&&i._newSort.length>a+1?i._compare(t,e,a+1):0},_printSort:function(t){var e=this,a=t?e._startOrder:e._newOrder,i=e._$parent[0].querySelectorAll(e.selectors.target),n=i.length?i[i.length-1].nextElementSibling:null,r=document.createDocumentFragment();e._execAction("_printSort",0,arguments);for(var o=0;o<i.length;o++){var s=i[o],l=s.nextSibling;"absolute"!==s.style.position&&(l&&"#text"===l.nodeName&&e._$parent[0].removeChild(l),e._$parent[0].removeChild(s))}for(var o=0;o<a.length;o++){var c=a[o];if("default"!==e._newSort[0].sortBy||"desc"!==e._newSort[0].order||t)r.appendChild(c),r.appendChild(document.createTextNode(" "));else{var _=r.firstChild;r.insertBefore(c,_),r.insertBefore(document.createTextNode(" "),c)}}n?e._$parent[0].insertBefore(r,n):e._$parent[0].appendChild(r),e._execAction("_printSort",1,arguments)},_parseSort:function(t){for(var e=this,a="string"==typeof t?t.split(" "):[t],i=[],n=0;n<a.length;n++){var r="string"==typeof t?a[n].split(":"):["custom",a[n]],o={sortBy:e._helpers._camelCase(r[0]),order:r[1]||"asc"};if(i.push(o),"default"===o.sortBy||"random"===o.sortBy)break}return e._execFilter("_parseSort",i,arguments)},_parseEffects:function(){var t=this,e={opacity:"",transformIn:"",transformOut:"",filter:""},a=function(e,a,i){if(t.animation.effects.indexOf(e)>-1){if(a){var n=t.animation.effects.indexOf(e+"(");if(n>-1){var r=t.animation.effects.substring(n),o=/\(([^)]+)\)/.exec(r),s=o[1];return{val:s}}}return!0}return!1},i=function(t,e){return e?"-"===t.charAt(0)?t.substr(1,t.length):"-"+t:t},n=function(t,n){for(var r=[["scale",".01"],["translateX","20px"],["translateY","20px"],["translateZ","20px"],["rotateX","90deg"],["rotateY","90deg"],["rotateZ","180deg"]],o=0;o<r.length;o++){var s=r[o][0],l=r[o][1],c=n&&"scale"!==s;e[t]+=a(s)?s+"("+i(a(s,!0).val||l,c)+") ":""}};return e.opacity=a("fade")?a("fade",!0).val||"0":"1",n("transformIn"),t.animation.reverseOut?n("transformOut",!0):e.transformOut=e.transformIn,e.transition={},e.transition=t._getPrefixedCSS("transition","all "+t.animation.duration+"ms "+t.animation.easing+", opacity "+t.animation.duration+"ms linear"),t.animation.stagger=!!a("stagger"),t.animation.staggerDuration=parseInt(a("stagger")&&a("stagger",!0).val?a("stagger",!0).val:100),t._execFilter("_parseEffects",e)},_buildState:function(t){var e=this,a={};return e._execAction("_buildState",0),a={activeFilter:""===e._activeFilter?"none":e._activeFilter,activeSort:t&&e._newSortString?e._newSortString:e._activeSort,fail:!e._$show.length&&""!==e._activeFilter,$targets:e._$targets,$show:e._$show,$hide:e._$hide,totalTargets:e._$targets.length,totalShow:e._$show.length,totalHide:e._$hide.length,display:t&&e._newDisplay?e._newDisplay:e.layout.display},t?e._execFilter("_buildState",a):(e._state=a,void e._execAction("_buildState",1))},_goMix:function(t){var e=this,a=function(){e._chrome&&31===e._chrome&&r(e._$parent[0]),e._setInter(),i()},i=function(){var t=window.pageYOffset,a=window.pageXOffset;document.documentElement.scrollHeight;e._getInterMixData(),e._setFinal(),e._getFinalMixData(),window.pageYOffset!==t&&window.scrollTo(a,t),e._prepTargets(),window.requestAnimationFrame?requestAnimationFrame(n):setTimeout(function(){n()},20)},n=function(){e._animateTargets(),0===e._targetsBound&&e._cleanUp()},r=function(t){var e=t.parentElement,a=document.createElement("div"),i=document.createDocumentFragment();e.insertBefore(a,t),i.appendChild(t),e.replaceChild(t,a)},o=e._buildState(!0);e._execAction("_goMix",0,arguments),!e.animation.duration&&(t=!1),e._mixing=!0,e._$container.removeClass(e.layout.containerClassFail),"function"==typeof e.callbacks.onMixStart&&e.callbacks.onMixStart.call(e._domNode,e._state,o,e),e._$container.trigger("mixStart",[e._state,o,e]),e._getOrigMixData(),t&&!e._suckMode?window.requestAnimationFrame?requestAnimationFrame(a):a():e._cleanUp(),e._execAction("_goMix",1,arguments)},_getTargetData:function(t,e){var a,i=this;t.dataset[e+"PosX"]=t.offsetLeft,t.dataset[e+"PosY"]=t.offsetTop,i.animation.animateResizeTargets&&(a=i._suckMode?{marginBottom:"",marginRight:""}:window.getComputedStyle(t),t.dataset[e+"MarginBottom"]=parseInt(a.marginBottom),t.dataset[e+"MarginRight"]=parseInt(a.marginRight),t.dataset[e+"Width"]=t.offsetWidth,t.dataset[e+"Height"]=t.offsetHeight)},_getOrigMixData:function(){var t=this,e=t._suckMode?{boxSizing:""}:window.getComputedStyle(t._$parent[0]),a=e.boxSizing||e[t._vendor+"BoxSizing"];t._incPadding="border-box"===a,t._execAction("_getOrigMixData",0),!t._suckMode&&(t.effects=t._parseEffects()),t._$toHide=t._$hide.filter(":visible"),t._$toShow=t._$show.filter(":hidden"),t._$pre=t._$targets.filter(":visible"),t._startHeight=t._incPadding?t._$parent.outerHeight():t._$parent.height();for(var i=0;i<t._$pre.length;i++){var n=t._$pre[i];t._getTargetData(n,"orig")}t._execAction("_getOrigMixData",1)},_setInter:function(){var t=this;t._execAction("_setInter",0),t._changingLayout&&t.animation.animateChangeLayout?(t._$toShow.css("display",t._newDisplay),t._changingClass&&t._$container.removeClass(t.layout.containerClass).addClass(t._newClass)):t._$toShow.css("display",t.layout.display),t._execAction("_setInter",1)},_getInterMixData:function(){var t=this;t._execAction("_getInterMixData",0);for(var e=0;e<t._$toShow.length;e++){var a=t._$toShow[e];t._getTargetData(a,"inter")}for(var e=0;e<t._$pre.length;e++){var a=t._$pre[e];t._getTargetData(a,"inter")}t._execAction("_getInterMixData",1)},_setFinal:function(){var t=this;t._execAction("_setFinal",0),t._sorting&&t._printSort(),t._$toHide.removeStyle("display"),t._changingLayout&&t.animation.animateChangeLayout&&t._$pre.css("display",t._newDisplay),t._execAction("_setFinal",1)},_getFinalMixData:function(){var t=this;t._execAction("_getFinalMixData",0);for(var e=0;e<t._$toShow.length;e++){var a=t._$toShow[e];t._getTargetData(a,"final")}for(var e=0;e<t._$pre.length;e++){var a=t._$pre[e];t._getTargetData(a,"final")}t._newHeight=t._incPadding?t._$parent.outerHeight():t._$parent.height(),t._sorting&&t._printSort(!0),t._$toShow.removeStyle("display"),t._$pre.css("display",t.layout.display),t._changingClass&&t.animation.animateChangeLayout&&t._$container.removeClass(t._newClass).addClass(t.layout.containerClass),t._execAction("_getFinalMixData",1)},_prepTargets:function(){var e=this,a={_in:e._getPrefixedCSS("transform",e.effects.transformIn),_out:e._getPrefixedCSS("transform",e.effects.transformOut)};e._execAction("_prepTargets",0),e.animation.animateResizeContainer&&e._$parent.css("height",e._startHeight+"px");for(var i=0;i<e._$toShow.length;i++){var n=e._$toShow[i],r=t(n);n.style.opacity=e.effects.opacity,n.style.display=e._changingLayout&&e.animation.animateChangeLayout?e._newDisplay:e.layout.display,r.css(a._in),e.animation.animateResizeTargets&&(n.style.width=n.dataset.finalWidth+"px",n.style.height=n.dataset.finalHeight+"px",n.style.marginRight=-(n.dataset.finalWidth-n.dataset.interWidth)+1*n.dataset.finalMarginRight+"px",n.style.marginBottom=-(n.dataset.finalHeight-n.dataset.interHeight)+1*n.dataset.finalMarginBottom+"px")}for(var i=0;i<e._$pre.length;i++){var n=e._$pre[i],r=t(n),o={x:n.dataset.origPosX-n.dataset.interPosX,y:n.dataset.origPosY-n.dataset.interPosY},a=e._getPrefixedCSS("transform","translate("+o.x+"px,"+o.y+"px)");r.css(a),e.animation.animateResizeTargets&&(n.style.width=n.dataset.origWidth+"px",n.style.height=n.dataset.origHeight+"px",n.dataset.origWidth-n.dataset.finalWidth&&(n.style.marginRight=-(n.dataset.origWidth-n.dataset.interWidth)+1*n.dataset.origMarginRight+"px"),n.dataset.origHeight-n.dataset.finalHeight&&(n.style.marginBottom=-(n.dataset.origHeight-n.dataset.interHeight)+1*n.dataset.origMarginBottom+"px"))}e._execAction("_prepTargets",1)},_animateTargets:function(){var e=this;e._execAction("_animateTargets",0),e._targetsDone=0,e._targetsBound=0,e._$parent.css(e._getPrefixedCSS("perspective",e.animation.perspectiveDistance+"px")).css(e._getPrefixedCSS("perspective-origin",e.animation.perspectiveOrigin)),e.animation.animateResizeContainer&&e._$parent.css(e._getPrefixedCSS("transition","height "+e.animation.duration+"ms ease")).css("height",e._newHeight+"px");for(var a=0;a<e._$toShow.length;a++){var i=e._$toShow[a],n=t(i),r={x:i.dataset.finalPosX-i.dataset.interPosX,y:i.dataset.finalPosY-i.dataset.interPosY},o=e._getDelay(a),s={};i.style.opacity="";for(var l=0;2>l;l++){var c=0===l?c=e._prefix:"";e._ff&&e._ff<=20&&(s[c+"transition-property"]="all",s[c+"transition-timing-function"]=e.animation.easing+"ms",s[c+"transition-duration"]=e.animation.duration+"ms"),s[c+"transition-delay"]=o+"ms",s[c+"transform"]="translate("+r.x+"px,"+r.y+"px)"}(e.effects.transform||e.effects.opacity)&&e._bindTargetDone(n),e._ff&&e._ff<=20?n.css(s):n.css(e.effects.transition).css(s)}for(var a=0;a<e._$pre.length;a++){var i=e._$pre[a],n=t(i),r={x:i.dataset.finalPosX-i.dataset.interPosX,y:i.dataset.finalPosY-i.dataset.interPosY},o=e._getDelay(a);i.dataset.finalPosX===i.dataset.origPosX&&i.dataset.finalPosY===i.dataset.origPosY||e._bindTargetDone(n),n.css(e._getPrefixedCSS("transition","all "+e.animation.duration+"ms "+e.animation.easing+" "+o+"ms")),n.css(e._getPrefixedCSS("transform","translate("+r.x+"px,"+r.y+"px)")),e.animation.animateResizeTargets&&(i.dataset.origWidth-i.dataset.finalWidth&&1*i.dataset.finalWidth&&(i.style.width=i.dataset.finalWidth+"px",i.style.marginRight=-(i.dataset.finalWidth-i.dataset.interWidth)+1*i.dataset.finalMarginRight+"px"),i.dataset.origHeight-i.dataset.finalHeight&&1*i.dataset.finalHeight&&(i.style.height=i.dataset.finalHeight+"px",i.style.marginBottom=-(i.dataset.finalHeight-i.dataset.interHeight)+1*i.dataset.finalMarginBottom+"px"))}e._changingClass&&e._$container.removeClass(e.layout.containerClass).addClass(e._newClass);for(var a=0;a<e._$toHide.length;a++){for(var i=e._$toHide[a],n=t(i),o=e._getDelay(a),_={},l=0;2>l;l++){var c=0===l?c=e._prefix:"";_[c+"transition-delay"]=o+"ms",_[c+"transform"]=e.effects.transformOut,_.opacity=e.effects.opacity}n.css(e.effects.transition).css(_),(e.effects.transform||e.effects.opacity)&&e._bindTargetDone(n)}e._execAction("_animateTargets",1)},_bindTargetDone:function(e){var a=this,i=e[0];a._execAction("_bindTargetDone",0,arguments),i.dataset.bound||(i.dataset.bound=!0,a._targetsBound++,e.on("webkitTransitionEnd.mixItUp transitionend.mixItUp",function(n){(n.originalEvent.propertyName.indexOf("transform")>-1||n.originalEvent.propertyName.indexOf("opacity")>-1)&&t(n.originalEvent.target).is(a.selectors.target)&&(e.off(".mixItUp"),i.dataset.bound="",a._targetDone())})),a._execAction("_bindTargetDone",1,arguments)},_targetDone:function(){var t=this;t._execAction("_targetDone",0),t._targetsDone++,t._targetsDone===t._targetsBound&&t._cleanUp(),t._execAction("_targetDone",1)},_cleanUp:function(){var e=this,a=e.animation.animateResizeTargets?"transform opacity width height margin-bottom margin-right":"transform opacity",i=function(){e._$targets.removeStyle("transition",e._prefix)};e._execAction("_cleanUp",0),e._changingLayout?e._$show.css("display",e._newDisplay):e._$show.css("display",e.layout.display),e._$targets.css(e._brake),e._$targets.removeStyle(a,e._prefix).removeAttr("data-inter-pos-x data-inter-pos-y data-final-pos-x data-final-pos-y data-orig-pos-x data-orig-pos-y data-orig-height data-orig-width data-final-height data-final-width data-inter-width data-inter-height data-orig-margin-right data-orig-margin-bottom data-inter-margin-right data-inter-margin-bottom data-final-margin-right data-final-margin-bottom"),e._$hide.removeStyle("display"),e._$parent.removeStyle("height transition perspective-distance perspective perspective-origin-x perspective-origin-y perspective-origin perspectiveOrigin",e._prefix),e._sorting&&(e._printSort(),e._activeSort=e._newSortString,e._sorting=!1),e._changingLayout&&(e._changingDisplay&&(e.layout.display=e._newDisplay,e._changingDisplay=!1),e._changingClass&&(e._$parent.removeClass(e.layout.containerClass).addClass(e._newClass),e.layout.containerClass=e._newClass,e._changingClass=!1),e._changingLayout=!1),e._refresh(),e._buildState(),e._state.fail&&e._$container.addClass(e.layout.containerClassFail),e._$show=t(),e._$hide=t(),window.requestAnimationFrame&&requestAnimationFrame(i),e._mixing=!1,"function"==typeof e.callbacks._user&&e.callbacks._user.call(e._domNode,e._state,e),"function"==typeof e.callbacks.onMixEnd&&e.callbacks.onMixEnd.call(e._domNode,e._state,e),e._$container.trigger("mixEnd",[e._state,e]),e._state.fail&&("function"==typeof e.callbacks.onMixFail&&e.callbacks.onMixFail.call(e._domNode,e._state,e),e._$container.trigger("mixFail",[e._state,e])),e._loading&&("function"==typeof e.callbacks.onMixLoad&&e.callbacks.onMixLoad.call(e._domNode,e._state,e),e._$container.trigger("mixLoad",[e._state,e])),e._queue.length&&(e._execAction("_queue",0),e.multiMix(e._queue[0][0],e._queue[0][1],e._queue[0][2]),e._queue.splice(0,1)),e._execAction("_cleanUp",1),e._loading=!1},_getPrefixedCSS:function(t,e,a){var i=this,n={},r="",o=-1;for(o=0;2>o;o++)r=0===o?i._prefix:"",a?n[r+t]=r+e:n[r+t]=e;return i._execFilter("_getPrefixedCSS",n,arguments)},_getDelay:function(t){var e=this,a="function"==typeof e.animation.staggerSequence?e.animation.staggerSequence.call(e._domNode,t,e._state):t,i=e.animation.stagger?a*e.animation.staggerDuration:0;return e._execFilter("_getDelay",i,arguments)},_parseMultiMixArgs:function(t){for(var e=this,a={command:null,animate:e.animation.enable,callback:null},i=0;i<t.length;i++){var n=t[i];null!==n&&("object"==typeof n||"string"==typeof n?a.command=n:"boolean"==typeof n?a.animate=n:"function"==typeof n&&(a.callback=n))}return e._execFilter("_parseMultiMixArgs",a,arguments)},_parseInsertArgs:function(e){for(var a=this,i={index:0,$object:t(),multiMix:{filter:a._state.activeFilter},callback:null},n=0;n<e.length;n++){var r=e[n];"number"==typeof r?i.index=r:"object"==typeof r&&r instanceof t?i.$object=r:"object"==typeof r&&a._helpers._isElement(r)?i.$object=t(r):"object"==typeof r&&null!==r?i.multiMix=r:"boolean"!=typeof r||r?"function"==typeof r&&(i.callback=r):i.multiMix=!1}return a._execFilter("_parseInsertArgs",i,arguments)},_execAction:function(t,e,a){var i=this,n=e?"post":"pre";if(!i._actions.isEmptyObject&&i._actions.hasOwnProperty(t))for(var r in i._actions[t][n])i._actions[t][n][r].call(i,a)},_execFilter:function(t,e,a){var i=this;if(i._filters.isEmptyObject||!i._filters.hasOwnProperty(t))return e;for(var n in i._filters[t])return i._filters[t][n].call(i,a)},_helpers:{_camelCase:function(t){return t.replace(/-([a-z])/g,function(t){return t[1].toUpperCase()})},_isElement:function(t){return window.HTMLElement?t instanceof HTMLElement:null!==t&&1===t.nodeType&&"string"===t.nodeName}},isMixing:function(){var t=this;return t._execFilter("isMixing",t._mixing)},filter:function(){var t=this,e=t._parseMultiMixArgs(arguments);t._clicking&&(t._toggleString=""),t.multiMix({filter:e.command},e.animate,e.callback)},sort:function(){var t=this,e=t._parseMultiMixArgs(arguments);t.multiMix({sort:e.command},e.animate,e.callback)},changeLayout:function(){var t=this,e=t._parseMultiMixArgs(arguments);t.multiMix({changeLayout:e.command},e.animate,e.callback)},multiMix:function(){var t=this,a=t._parseMultiMixArgs(arguments);if(t._execAction("multiMix",0,arguments),t._mixing)t.animation.queue&&t._queue.length<t.animation.queueLimit?(t._queue.push(arguments),t.controls.enable&&!t._clicking&&t._updateControls(a.command),t._execAction("multiMixQueue",1,arguments)):("function"==typeof t.callbacks.onMixBusy&&t.callbacks.onMixBusy.call(t._domNode,t._state,t),t._$container.trigger("mixBusy",[t._state,t]),t._execAction("multiMixBusy",1,arguments));else{t.controls.enable&&!t._clicking&&(t.controls.toggleFilterButtons&&t._buildToggleArray(),t._updateControls(a.command,t.controls.toggleFilterButtons)),t._queue.length<2&&(t._clicking=!1),delete t.callbacks._user,a.callback&&(t.callbacks._user=a.callback);var i=a.command.sort,n=a.command.filter,r=a.command.changeLayout;t._refresh(),i&&(t._newSort=t._parseSort(i),t._newSortString=i,t._sorting=!0,t._sort()),n!==e&&(n="all"===n?t.selectors.target:n,t._activeFilter=n),t._filter(),r&&(t._newDisplay="string"==typeof r?r:r.display||t.layout.display,t._newClass=r.containerClass||"",t._newDisplay===t.layout.display&&t._newClass===t.layout.containerClass||(t._changingLayout=!0,t._changingClass=t._newClass!==t.layout.containerClass,t._changingDisplay=t._newDisplay!==t.layout.display)),t._$targets.css(t._brake),t._goMix(a.animate^t.animation.enable?a.animate:t.animation.enable),t._execAction("multiMix",1,arguments)}},insert:function(){var t=this,e=t._parseInsertArgs(arguments),a="function"==typeof e.callback?e.callback:null,i=document.createDocumentFragment(),n=function(){return t._refresh(),t._$targets.length?e.index<t._$targets.length||!t._$targets.length?t._$targets[e.index]:t._$targets[t._$targets.length-1].nextElementSibling:t._$parent[0].children[0]}();if(t._execAction("insert",0,arguments),e.$object){for(var r=0;r<e.$object.length;r++){var o=e.$object[r];i.appendChild(o),i.appendChild(document.createTextNode(" "))}t._$parent[0].insertBefore(i,n)}t._execAction("insert",1,arguments),"object"==typeof e.multiMix&&t.multiMix(e.multiMix,a)},prepend:function(){var t=this,e=t._parseInsertArgs(arguments);t.insert(0,e.$object,e.multiMix,e.callback)},append:function(){var t=this,e=t._parseInsertArgs(arguments);t.insert(t._state.totalTargets,e.$object,e.multiMix,e.callback)},getOption:function(t){var a=this,i=function(t,a){for(var i=a.split("."),n=i.pop(),r=i.length,o=1,s=i[0]||a;(t=t[s])&&r>o;)s=i[o],o++;return t!==e?t[n]!==e?t[n]:t:void 0};return t?a._execFilter("getOption",i(a,t),arguments):a},setOptions:function(e){var a=this;a._execAction("setOptions",0,arguments),"object"==typeof e&&t.extend(!0,a,e),a._execAction("setOptions",1,arguments)},getState:function(){var t=this;return t._execFilter("getState",t._state,t)},forceRefresh:function(){var t=this;t._refresh(!1,!0)},destroy:function(e){var a=this,i=t.MixItUp.prototype._bound._filter,n=t.MixItUp.prototype._bound._sort;a._execAction("destroy",0,arguments),a._$body.add(t(a.selectors.sort)).add(t(a.selectors.filter)).off(".mixItUp");for(var r=0;r<a._$targets.length;r++){var o=a._$targets[r];e&&(o.style.display=""),delete o.mixParent}a._execAction("destroy",1,arguments),i[a.selectors.filter]&&i[a.selectors.filter]>1?i[a.selectors.filter]--:1===i[a.selectors.filter]&&delete i[a.selectors.filter],n[a.selectors.sort]&&n[a.selectors.sort]>1?n[a.selectors.sort]--:1===n[a.selectors.sort]&&delete n[a.selectors.sort],delete t.MixItUp.prototype._instances[a._id]}},t.fn.mixItUp=function(){var a,i=arguments,n=[],r=function(e,a){var i=new t.MixItUp,n=function(){return("00000"+(16777216*Math.random()<<0).toString(16)).substr(-6).toUpperCase()};i._execAction("_instantiate",0,arguments),e.id=e.id?e.id:"MixItUp"+n(),i._instances[e.id]||(i._instances[e.id]=i,i._init(e,a)),i._execAction("_instantiate",1,arguments)};return a=this.each(function(){if(i&&"string"==typeof i[0]){var a=t.MixItUp.prototype._instances[this.id];if("isLoaded"===i[0])n.push(!!a);else{var o=a[i[0]](i[1],i[2],i[3]);o!==e&&n.push(o)}}else r(this,i[0])}),n.length?n.length>1?n:n[0]:a},t.fn.removeStyle=function(a,i){return i=i?i:"",this.each(function(){for(var n=this,r=a.split(" "),o=0;o<r.length;o++)for(var s=0;4>s;s++){switch(s){case 0:var l=r[o];break;case 1:var l=t.MixItUp.prototype._helpers._camelCase(l);break;case 2:var l=i+r[o];break;case 3:var l=t.MixItUp.prototype._helpers._camelCase(i+r[o])}if(n.style[l]!==e&&"unknown"!=typeof n.style[l]&&n.style[l].length>0&&(n.style[l]=""),!i&&1===s)break}n.attributes&&n.attributes.style&&n.attributes.style!==e&&""===n.attributes.style.value&&n.attributes.removeNamedItem("style")})}}(jQuery);
|
1 |
+
!function(t,e){"use strict";t.MixItUp=function(){var e=this;e._execAction("_constructor",0),t.extend(e,{selectors:{target:".mix",filter:".filter",sort:".sort"},animation:{enable:!0,effects:"fade scale",duration:600,easing:"ease",perspectiveDistance:"3000",perspectiveOrigin:"50% 50%",queue:!0,queueLimit:1,animateChangeLayout:!1,animateResizeContainer:!0,animateResizeTargets:!1,staggerSequence:!1,reverseOut:!1},callbacks:{onMixLoad:!1,onMixStart:!1,onMixBusy:!1,onMixEnd:!1,onMixFail:!1,_user:!1},controls:{enable:!0,live:!1,toggleFilterButtons:!1,toggleLogic:"or",activeClass:"active"},layout:{display:"inline-block",containerClass:"",containerClassFail:"fail"},load:{filter:"all",sort:!1},_$body:null,_$container:null,_$targets:null,_$parent:null,_$sortButtons:null,_$filterButtons:null,_suckMode:!1,_mixing:!1,_sorting:!1,_clicking:!1,_loading:!0,_changingLayout:!1,_changingClass:!1,_changingDisplay:!1,_origOrder:[],_startOrder:[],_newOrder:[],_activeFilter:null,_toggleArray:[],_toggleString:"",_activeSort:"default:asc",_newSort:null,_startHeight:null,_newHeight:null,_incPadding:!0,_newDisplay:null,_newClass:null,_targetsBound:0,_targetsDone:0,_queue:[],_$show:t(),_$hide:t()}),e._execAction("_constructor",1)},t.MixItUp.prototype={constructor:t.MixItUp,_instances:{},_handled:{_filter:{},_sort:{}},_bound:{_filter:{},_sort:{}},_actions:{},_filters:{},extend:function(e){for(var a in e)t.MixItUp.prototype[a]=e[a]},addAction:function(e,a,i,n){t.MixItUp.prototype._addHook("_actions",e,a,i,n)},addFilter:function(e,a,i,n){t.MixItUp.prototype._addHook("_filters",e,a,i,n)},_addHook:function(e,a,i,n,r){var o=t.MixItUp.prototype[e],s={};r=1===r||"post"===r?"post":"pre",s[a]={},s[a][r]={},s[a][r][i]=n,t.extend(!0,o,s)},_init:function(e,a){var i=this;if(i._execAction("_init",0,arguments),a&&t.extend(!0,i,a),i._$body=t("body"),i._domNode=e,i._$container=t(e),i._$container.addClass(i.layout.containerClass),i._id=e.id,i._platformDetect(),i._brake=i._getPrefixedCSS("transition","none"),i._refresh(!0),i._$parent=i._$targets.parent().length?i._$targets.parent():i._$container,i.load.sort&&(i._newSort=i._parseSort(i.load.sort),i._newSortString=i.load.sort,i._activeSort=i.load.sort,i._sort(),i._printSort()),i._activeFilter="all"===i.load.filter?i.selectors.target:"none"===i.load.filter?"":i.load.filter,i.controls.enable&&i._bindHandlers(),i.controls.toggleFilterButtons){i._buildToggleArray();for(var n=0;n<i._toggleArray.length;n++)i._updateControls({filter:i._toggleArray[n],sort:i._activeSort},!0)}else i.controls.enable&&i._updateControls({filter:i._activeFilter,sort:i._activeSort});i._filter(),i._init=!0,i._$container.data("mixItUp",i),i._execAction("_init",1,arguments),i._buildState(),i._$targets.css(i._brake),i._goMix(i.animation.enable)},_platformDetect:function(){var t=this,a=["Webkit","Moz","O","ms"],i=["webkit","moz"],n=window.navigator.appVersion.match(/Chrome\/(\d+)\./)||!1,r="undefined"!=typeof InstallTrigger,o=function(t){for(var e=0;e<a.length;e++)if(a[e]+"Transition"in t.style)return{prefix:"-"+a[e].toLowerCase()+"-",vendor:a[e]};return"transition"in t.style&&""},s=o(t._domNode);t._execAction("_platformDetect",0),t._chrome=!!n&&parseInt(n[1],10),t._ff=!!r&&parseInt(window.navigator.userAgent.match(/rv:([^)]+)\)/)[1]),t._prefix=s.prefix,t._vendor=s.vendor,t._suckMode=!window.atob||!t._prefix,t._suckMode&&(t.animation.enable=!1),t._ff&&t._ff<=4&&(t.animation.enable=!1);for(var l=0;l<i.length&&!window.requestAnimationFrame;l++)window.requestAnimationFrame=window[i[l]+"RequestAnimationFrame"];"function"!=typeof Object.getPrototypeOf&&("object"==typeof"test".__proto__?Object.getPrototypeOf=function(t){return t.__proto__}:Object.getPrototypeOf=function(t){return t.constructor.prototype}),t._domNode.nextElementSibling===e&&Object.defineProperty(Element.prototype,"nextElementSibling",{get:function(){for(var t=this.nextSibling;t;){if(1===t.nodeType)return t;t=t.nextSibling}return null}}),t._execAction("_platformDetect",1)},_refresh:function(t,a){var i=this;i._execAction("_refresh",0,arguments),i._$targets=i._$container.find(i.selectors.target);for(var n=0;n<i._$targets.length;n++){var r=i._$targets[n];if(r.dataset===e||a){r.dataset={};for(var o=0;o<r.attributes.length;o++){var s=r.attributes[o],l=s.name,c=s.value;if(l.indexOf("data-")>-1){var _=i._helpers._camelCase(l.substring(5,l.length));r.dataset[_]=c}}}r.mixParent===e&&(r.mixParent=i._id)}if(i._$targets.length&&t||!i._origOrder.length&&i._$targets.length){i._origOrder=[];for(var n=0;n<i._$targets.length;n++){var r=i._$targets[n];i._origOrder.push(r)}}i._execAction("_refresh",1,arguments)},_bindHandlers:function(){var a=this,i=t.MixItUp.prototype._bound._filter,n=t.MixItUp.prototype._bound._sort;a._execAction("_bindHandlers",0),a.controls.live?a._$body.on("click.mixItUp."+a._id,a.selectors.sort,function(){a._processClick(t(this),"sort")}).on("click.mixItUp."+a._id,a.selectors.filter,function(){a._processClick(t(this),"filter")}):(a._$sortButtons=t(a.selectors.sort),a._$filterButtons=t(a.selectors.filter),a._$sortButtons.on("click.mixItUp."+a._id,function(){a._processClick(t(this),"sort")}),a._$filterButtons.on("click.mixItUp."+a._id,function(){a._processClick(t(this),"filter")})),i[a.selectors.filter]=i[a.selectors.filter]===e?1:i[a.selectors.filter]+1,n[a.selectors.sort]=n[a.selectors.sort]===e?1:n[a.selectors.sort]+1,a._execAction("_bindHandlers",1)},_processClick:function(a,i){var n=this,r=function(a,i,r){var o=t.MixItUp.prototype;o._handled["_"+i][n.selectors[i]]=o._handled["_"+i][n.selectors[i]]===e?1:o._handled["_"+i][n.selectors[i]]+1,o._handled["_"+i][n.selectors[i]]===o._bound["_"+i][n.selectors[i]]&&(a[(r?"remove":"add")+"Class"](n.controls.activeClass),delete o._handled["_"+i][n.selectors[i]])};if(n._execAction("_processClick",0,arguments),!n._mixing||n.animation.queue&&n._queue.length<n.animation.queueLimit){if(n._clicking=!0,"sort"===i){var o=a.attr("data-sort");(!a.hasClass(n.controls.activeClass)||o.indexOf("random")>-1)&&(t(n.selectors.sort).removeClass(n.controls.activeClass),r(a,i),n.sort(o))}if("filter"===i){var s,l=a.attr("data-filter"),c="or"===n.controls.toggleLogic?",":"";n.controls.toggleFilterButtons?(n._buildToggleArray(),a.hasClass(n.controls.activeClass)?(r(a,i,!0),s=n._toggleArray.indexOf(l),n._toggleArray.splice(s,1)):(r(a,i),n._toggleArray.push(l)),n._toggleArray=t.grep(n._toggleArray,function(t){return t}),n._toggleString=n._toggleArray.join(c),n.filter(n._toggleString)):a.hasClass(n.controls.activeClass)||(t(n.selectors.filter).removeClass(n.controls.activeClass),r(a,i),n.filter(l))}n._execAction("_processClick",1,arguments)}else"function"==typeof n.callbacks.onMixBusy&&n.callbacks.onMixBusy.call(n._domNode,n._state,n),n._execAction("_processClickBusy",1,arguments)},_buildToggleArray:function(){var t=this,e=t._activeFilter.replace(/\s/g,"");if(t._execAction("_buildToggleArray",0,arguments),"or"===t.controls.toggleLogic)t._toggleArray=e.split(",");else{t._toggleArray=e.split("."),!t._toggleArray[0]&&t._toggleArray.shift();for(var a,i=0;a=t._toggleArray[i];i++)t._toggleArray[i]="."+a}t._execAction("_buildToggleArray",1,arguments)},_updateControls:function(a,i){var n=this,r={filter:a.filter,sort:a.sort},o=function(t,e){try{i&&"filter"===s&&"none"!==r.filter&&""!==r.filter?t.filter(e).addClass(n.controls.activeClass):t.removeClass(n.controls.activeClass).filter(e).addClass(n.controls.activeClass)}catch(a){}},s="filter",l=null;n._execAction("_updateControls",0,arguments),a.filter===e&&(r.filter=n._activeFilter),a.sort===e&&(r.sort=n._activeSort),r.filter===n.selectors.target&&(r.filter="all");for(var c=0;c<2;c++)l=n.controls.live?t(n.selectors[s]):n["_$"+s+"Buttons"],l&&o(l,"[data-"+s+'="'+r[s]+'"]'),s="sort";n._execAction("_updateControls",1,arguments)},_filter:function(){var e=this;e._execAction("_filter",0);for(var a=0;a<e._$targets.length;a++){var i=t(e._$targets[a]);i.is(e._activeFilter)?e._$show=e._$show.add(i):e._$hide=e._$hide.add(i)}e._execAction("_filter",1)},_sort:function(){var t=this,e=function(t){for(var e=t.slice(),a=e.length,i=a;i--;){var n=parseInt(Math.random()*a),r=e[i];e[i]=e[n],e[n]=r}return e};t._execAction("_sort",0),t._startOrder=[];for(var a=0;a<t._$targets.length;a++){var i=t._$targets[a];t._startOrder.push(i)}switch(t._newSort[0].sortBy){case"default":t._newOrder=t._origOrder;break;case"random":t._newOrder=e(t._startOrder);break;case"custom":t._newOrder=t._newSort[0].order;break;default:t._newOrder=t._startOrder.concat().sort(function(e,a){return t._compare(e,a)})}t._execAction("_sort",1)},_compare:function(t,e,a){a=a?a:0;var i=this,n=i._newSort[a].order,r=function(t){return t.dataset[i._newSort[a].sortBy]||0},o=isNaN(1*r(t))?r(t).toLowerCase():1*r(t),s=isNaN(1*r(e))?r(e).toLowerCase():1*r(e);return o<s?"asc"===n?-1:1:o>s?"asc"===n?1:-1:o===s&&i._newSort.length>a+1?i._compare(t,e,a+1):0},_printSort:function(t){var e=this,a=t?e._startOrder:e._newOrder,i=e._$parent[0].querySelectorAll(e.selectors.target),n=i.length?i[i.length-1].nextElementSibling:null,r=document.createDocumentFragment();e._execAction("_printSort",0,arguments);for(var o=0;o<i.length;o++){var s=i[o],l=s.nextSibling;"absolute"!==s.style.position&&(l&&"#text"===l.nodeName&&e._$parent[0].removeChild(l),e._$parent[0].removeChild(s))}for(var o=0;o<a.length;o++){var c=a[o];if("default"!==e._newSort[0].sortBy||"desc"!==e._newSort[0].order||t)r.appendChild(c),r.appendChild(document.createTextNode(" "));else{var _=r.firstChild;r.insertBefore(c,_),r.insertBefore(document.createTextNode(" "),c)}}n?e._$parent[0].insertBefore(r,n):e._$parent[0].appendChild(r),e._execAction("_printSort",1,arguments)},_parseSort:function(t){for(var e=this,a="string"==typeof t?t.split(" "):[t],i=[],n=0;n<a.length;n++){var r="string"==typeof t?a[n].split(":"):["custom",a[n]],o={sortBy:e._helpers._camelCase(r[0]),order:r[1]||"asc"};if(i.push(o),"default"===o.sortBy||"random"===o.sortBy)break}return e._execFilter("_parseSort",i,arguments)},_parseEffects:function(){var t=this,e={opacity:"",transformIn:"",transformOut:"",filter:""},a=function(e,a,i){if(t.animation.effects.indexOf(e)>-1){if(a){var n=t.animation.effects.indexOf(e+"(");if(n>-1){var r=t.animation.effects.substring(n),o=/\(([^)]+)\)/.exec(r),s=o[1];return{val:s}}}return!0}return!1},i=function(t,e){return e?"-"===t.charAt(0)?t.substr(1,t.length):"-"+t:t},n=function(t,n){for(var r=[["scale",".01"],["translateX","20px"],["translateY","20px"],["translateZ","20px"],["rotateX","90deg"],["rotateY","90deg"],["rotateZ","180deg"]],o=0;o<r.length;o++){var s=r[o][0],l=r[o][1],c=n&&"scale"!==s;e[t]+=a(s)?s+"("+i(a(s,!0).val||l,c)+") ":""}};return e.opacity=a("fade")?a("fade",!0).val||"0":"1",n("transformIn"),t.animation.reverseOut?n("transformOut",!0):e.transformOut=e.transformIn,e.transition={},e.transition=t._getPrefixedCSS("transition","all "+t.animation.duration+"ms "+t.animation.easing+", opacity "+t.animation.duration+"ms linear"),t.animation.stagger=!!a("stagger"),t.animation.staggerDuration=parseInt(a("stagger")&&a("stagger",!0).val?a("stagger",!0).val:100),t._execFilter("_parseEffects",e)},_buildState:function(t){var e=this,a={};return e._execAction("_buildState",0),a={activeFilter:""===e._activeFilter?"none":e._activeFilter,activeSort:t&&e._newSortString?e._newSortString:e._activeSort,fail:!e._$show.length&&""!==e._activeFilter,$targets:e._$targets,$show:e._$show,$hide:e._$hide,totalTargets:e._$targets.length,totalShow:e._$show.length,totalHide:e._$hide.length,display:t&&e._newDisplay?e._newDisplay:e.layout.display},t?e._execFilter("_buildState",a):(e._state=a,void e._execAction("_buildState",1))},_goMix:function(t){var e=this,a=function(){e._chrome&&31===e._chrome&&r(e._$parent[0]),e._setInter(),i()},i=function(){var t=window.pageYOffset,a=window.pageXOffset;document.documentElement.scrollHeight;e._getInterMixData(),e._setFinal(),e._getFinalMixData(),window.pageYOffset!==t&&window.scrollTo(a,t),e._prepTargets(),window.requestAnimationFrame?requestAnimationFrame(n):setTimeout(function(){n()},20)},n=function(){e._animateTargets(),0===e._targetsBound&&e._cleanUp()},r=function(t){var e=t.parentElement,a=document.createElement("div"),i=document.createDocumentFragment();e.insertBefore(a,t),i.appendChild(t),e.replaceChild(t,a)},o=e._buildState(!0);e._execAction("_goMix",0,arguments),!e.animation.duration&&(t=!1),e._mixing=!0,e._$container.removeClass(e.layout.containerClassFail),"function"==typeof e.callbacks.onMixStart&&e.callbacks.onMixStart.call(e._domNode,e._state,o,e),e._$container.trigger("mixStart",[e._state,o,e]),e._getOrigMixData(),t&&!e._suckMode?window.requestAnimationFrame?requestAnimationFrame(a):a():e._cleanUp(),e._execAction("_goMix",1,arguments)},_getTargetData:function(t,e){var a,i=this;t.dataset[e+"PosX"]=t.offsetLeft,t.dataset[e+"PosY"]=t.offsetTop,i.animation.animateResizeTargets&&(a=i._suckMode?{marginBottom:"",marginRight:""}:window.getComputedStyle(t),t.dataset[e+"MarginBottom"]=parseInt(a.marginBottom),t.dataset[e+"MarginRight"]=parseInt(a.marginRight),t.dataset[e+"Width"]=t.offsetWidth,t.dataset[e+"Height"]=t.offsetHeight)},_getOrigMixData:function(){var t=this,e=t._suckMode?{boxSizing:""}:window.getComputedStyle(t._$parent[0]),a=e.boxSizing||e[t._vendor+"BoxSizing"];t._incPadding="border-box"===a,t._execAction("_getOrigMixData",0),!t._suckMode&&(t.effects=t._parseEffects()),t._$toHide=t._$hide.filter(":visible"),t._$toShow=t._$show.filter(":hidden"),t._$pre=t._$targets.filter(":visible"),t._startHeight=t._incPadding?t._$parent.outerHeight():t._$parent.height();for(var i=0;i<t._$pre.length;i++){var n=t._$pre[i];t._getTargetData(n,"orig")}t._execAction("_getOrigMixData",1)},_setInter:function(){var t=this;t._execAction("_setInter",0),t._changingLayout&&t.animation.animateChangeLayout?(t._$toShow.css("display",t._newDisplay),t._changingClass&&t._$container.removeClass(t.layout.containerClass).addClass(t._newClass)):t._$toShow.css("display",t.layout.display),t._execAction("_setInter",1)},_getInterMixData:function(){var t=this;t._execAction("_getInterMixData",0);for(var e=0;e<t._$toShow.length;e++){var a=t._$toShow[e];t._getTargetData(a,"inter")}for(var e=0;e<t._$pre.length;e++){var a=t._$pre[e];t._getTargetData(a,"inter")}t._execAction("_getInterMixData",1)},_setFinal:function(){var t=this;t._execAction("_setFinal",0),t._sorting&&t._printSort(),t._$toHide.removeStyle("display"),t._changingLayout&&t.animation.animateChangeLayout&&t._$pre.css("display",t._newDisplay),t._execAction("_setFinal",1)},_getFinalMixData:function(){var t=this;t._execAction("_getFinalMixData",0);for(var e=0;e<t._$toShow.length;e++){var a=t._$toShow[e];t._getTargetData(a,"final")}for(var e=0;e<t._$pre.length;e++){var a=t._$pre[e];t._getTargetData(a,"final")}t._newHeight=t._incPadding?t._$parent.outerHeight():t._$parent.height(),t._sorting&&t._printSort(!0),t._$toShow.removeStyle("display"),t._$pre.css("display",t.layout.display),t._changingClass&&t.animation.animateChangeLayout&&t._$container.removeClass(t._newClass).addClass(t.layout.containerClass),t._execAction("_getFinalMixData",1)},_prepTargets:function(){var e=this,a={_in:e._getPrefixedCSS("transform",e.effects.transformIn),_out:e._getPrefixedCSS("transform",e.effects.transformOut)};e._execAction("_prepTargets",0),e.animation.animateResizeContainer&&e._$parent.css("height",e._startHeight+"px");for(var i=0;i<e._$toShow.length;i++){var n=e._$toShow[i],r=t(n);n.style.opacity=e.effects.opacity,n.style.display=e._changingLayout&&e.animation.animateChangeLayout?e._newDisplay:e.layout.display,r.css(a._in),e.animation.animateResizeTargets&&(n.style.width=n.dataset.finalWidth+"px",n.style.height=n.dataset.finalHeight+"px",n.style.marginRight=-(n.dataset.finalWidth-n.dataset.interWidth)+1*n.dataset.finalMarginRight+"px",n.style.marginBottom=-(n.dataset.finalHeight-n.dataset.interHeight)+1*n.dataset.finalMarginBottom+"px")}for(var i=0;i<e._$pre.length;i++){var n=e._$pre[i],r=t(n),o={x:n.dataset.origPosX-n.dataset.interPosX,y:n.dataset.origPosY-n.dataset.interPosY},a=e._getPrefixedCSS("transform","translate("+o.x+"px,"+o.y+"px)");r.css(a),e.animation.animateResizeTargets&&(n.style.width=n.dataset.origWidth+"px",n.style.height=n.dataset.origHeight+"px",n.dataset.origWidth-n.dataset.finalWidth&&(n.style.marginRight=-(n.dataset.origWidth-n.dataset.interWidth)+1*n.dataset.origMarginRight+"px"),n.dataset.origHeight-n.dataset.finalHeight&&(n.style.marginBottom=-(n.dataset.origHeight-n.dataset.interHeight)+1*n.dataset.origMarginBottom+"px"))}e._execAction("_prepTargets",1)},_animateTargets:function(){var e=this;e._execAction("_animateTargets",0),e._targetsDone=0,e._targetsBound=0,e._$parent.css(e._getPrefixedCSS("perspective",e.animation.perspectiveDistance+"px")).css(e._getPrefixedCSS("perspective-origin",e.animation.perspectiveOrigin)),e.animation.animateResizeContainer&&e._$parent.css(e._getPrefixedCSS("transition","height "+e.animation.duration+"ms ease")).css("height",e._newHeight+"px");for(var a=0;a<e._$toShow.length;a++){var i=e._$toShow[a],n=t(i),r={x:i.dataset.finalPosX-i.dataset.interPosX,y:i.dataset.finalPosY-i.dataset.interPosY},o=e._getDelay(a),s={};i.style.opacity="";for(var l=0;l<2;l++){var c=0===l?c=e._prefix:"";e._ff&&e._ff<=20&&(s[c+"transition-property"]="all",s[c+"transition-timing-function"]=e.animation.easing+"ms",s[c+"transition-duration"]=e.animation.duration+"ms"),s[c+"transition-delay"]=o+"ms",s[c+"transform"]="translate("+r.x+"px,"+r.y+"px)"}(e.effects.transform||e.effects.opacity)&&e._bindTargetDone(n),e._ff&&e._ff<=20?n.css(s):n.css(e.effects.transition).css(s)}for(var a=0;a<e._$pre.length;a++){var i=e._$pre[a],n=t(i),r={x:i.dataset.finalPosX-i.dataset.interPosX,y:i.dataset.finalPosY-i.dataset.interPosY},o=e._getDelay(a);i.dataset.finalPosX===i.dataset.origPosX&&i.dataset.finalPosY===i.dataset.origPosY||e._bindTargetDone(n),n.css(e._getPrefixedCSS("transition","all "+e.animation.duration+"ms "+e.animation.easing+" "+o+"ms")),n.css(e._getPrefixedCSS("transform","translate("+r.x+"px,"+r.y+"px)")),e.animation.animateResizeTargets&&(i.dataset.origWidth-i.dataset.finalWidth&&1*i.dataset.finalWidth&&(i.style.width=i.dataset.finalWidth+"px",i.style.marginRight=-(i.dataset.finalWidth-i.dataset.interWidth)+1*i.dataset.finalMarginRight+"px"),i.dataset.origHeight-i.dataset.finalHeight&&1*i.dataset.finalHeight&&(i.style.height=i.dataset.finalHeight+"px",i.style.marginBottom=-(i.dataset.finalHeight-i.dataset.interHeight)+1*i.dataset.finalMarginBottom+"px"))}e._changingClass&&e._$container.removeClass(e.layout.containerClass).addClass(e._newClass);for(var a=0;a<e._$toHide.length;a++){for(var i=e._$toHide[a],n=t(i),o=e._getDelay(a),_={},l=0;l<2;l++){var c=0===l?c=e._prefix:"";_[c+"transition-delay"]=o+"ms",_[c+"transform"]=e.effects.transformOut,_.opacity=e.effects.opacity}n.css(e.effects.transition).css(_),(e.effects.transform||e.effects.opacity)&&e._bindTargetDone(n)}e._execAction("_animateTargets",1)},_bindTargetDone:function(e){var a=this,i=e[0];a._execAction("_bindTargetDone",0,arguments),i.dataset.bound||(i.dataset.bound=!0,a._targetsBound++,e.on("webkitTransitionEnd.mixItUp transitionend.mixItUp",function(n){(n.originalEvent.propertyName.indexOf("transform")>-1||n.originalEvent.propertyName.indexOf("opacity")>-1)&&t(n.originalEvent.target).is(a.selectors.target)&&(e.off(".mixItUp"),i.dataset.bound="",a._targetDone())})),a._execAction("_bindTargetDone",1,arguments)},_targetDone:function(){var t=this;t._execAction("_targetDone",0),t._targetsDone++,t._targetsDone===t._targetsBound&&t._cleanUp(),t._execAction("_targetDone",1)},_cleanUp:function(){var e=this,a=e.animation.animateResizeTargets?"transform opacity width height margin-bottom margin-right":"transform opacity",i=function(){e._$targets.removeStyle("transition",e._prefix)};e._execAction("_cleanUp",0),e._changingLayout?e._$show.css("display",e._newDisplay):e._$show.css("display",e.layout.display),e._$targets.css(e._brake),e._$targets.removeStyle(a,e._prefix).removeAttr("data-inter-pos-x data-inter-pos-y data-final-pos-x data-final-pos-y data-orig-pos-x data-orig-pos-y data-orig-height data-orig-width data-final-height data-final-width data-inter-width data-inter-height data-orig-margin-right data-orig-margin-bottom data-inter-margin-right data-inter-margin-bottom data-final-margin-right data-final-margin-bottom"),e._$hide.removeStyle("display"),e._$parent.removeStyle("height transition perspective-distance perspective perspective-origin-x perspective-origin-y perspective-origin perspectiveOrigin",e._prefix),e._sorting&&(e._printSort(),e._activeSort=e._newSortString,e._sorting=!1),e._changingLayout&&(e._changingDisplay&&(e.layout.display=e._newDisplay,e._changingDisplay=!1),e._changingClass&&(e._$parent.removeClass(e.layout.containerClass).addClass(e._newClass),e.layout.containerClass=e._newClass,e._changingClass=!1),e._changingLayout=!1),e._refresh(),e._buildState(),e._state.fail&&e._$container.addClass(e.layout.containerClassFail),e._$show=t(),e._$hide=t(),window.requestAnimationFrame&&requestAnimationFrame(i),e._mixing=!1,"function"==typeof e.callbacks._user&&e.callbacks._user.call(e._domNode,e._state,e),"function"==typeof e.callbacks.onMixEnd&&e.callbacks.onMixEnd.call(e._domNode,e._state,e),e._$container.trigger("mixEnd",[e._state,e]),e._state.fail&&("function"==typeof e.callbacks.onMixFail&&e.callbacks.onMixFail.call(e._domNode,e._state,e),e._$container.trigger("mixFail",[e._state,e])),e._loading&&("function"==typeof e.callbacks.onMixLoad&&e.callbacks.onMixLoad.call(e._domNode,e._state,e),e._$container.trigger("mixLoad",[e._state,e])),e._queue.length&&(e._execAction("_queue",0),e.multiMix(e._queue[0][0],e._queue[0][1],e._queue[0][2]),e._queue.splice(0,1)),e._execAction("_cleanUp",1),e._loading=!1},_getPrefixedCSS:function(t,e,a){var i=this,n={},r="",o=-1;for(o=0;o<2;o++)r=0===o?i._prefix:"",a?n[r+t]=r+e:n[r+t]=e;return i._execFilter("_getPrefixedCSS",n,arguments)},_getDelay:function(t){var e=this,a="function"==typeof e.animation.staggerSequence?e.animation.staggerSequence.call(e._domNode,t,e._state):t,i=e.animation.stagger?a*e.animation.staggerDuration:0;return e._execFilter("_getDelay",i,arguments)},_parseMultiMixArgs:function(t){for(var e=this,a={command:null,animate:e.animation.enable,callback:null},i=0;i<t.length;i++){var n=t[i];null!==n&&("object"==typeof n||"string"==typeof n?a.command=n:"boolean"==typeof n?a.animate=n:"function"==typeof n&&(a.callback=n))}return e._execFilter("_parseMultiMixArgs",a,arguments)},_parseInsertArgs:function(e){for(var a=this,i={index:0,$object:t(),multiMix:{filter:a._state.activeFilter},callback:null},n=0;n<e.length;n++){var r=e[n];"number"==typeof r?i.index=r:"object"==typeof r&&r instanceof t?i.$object=r:"object"==typeof r&&a._helpers._isElement(r)?i.$object=t(r):"object"==typeof r&&null!==r?i.multiMix=r:"boolean"!=typeof r||r?"function"==typeof r&&(i.callback=r):i.multiMix=!1}return a._execFilter("_parseInsertArgs",i,arguments)},_execAction:function(t,e,a){var i=this,n=e?"post":"pre";if(!i._actions.isEmptyObject&&i._actions.hasOwnProperty(t))for(var r in i._actions[t][n])i._actions[t][n][r].call(i,a)},_execFilter:function(t,e,a){var i=this;if(i._filters.isEmptyObject||!i._filters.hasOwnProperty(t))return e;for(var n in i._filters[t])return i._filters[t][n].call(i,a)},_helpers:{_camelCase:function(t){return t.replace(/-([a-z])/g,function(t){return t[1].toUpperCase()})},_isElement:function(t){return window.HTMLElement?t instanceof HTMLElement:null!==t&&1===t.nodeType&&"string"===t.nodeName}},isMixing:function(){var t=this;return t._execFilter("isMixing",t._mixing)},filter:function(){var t=this,e=t._parseMultiMixArgs(arguments);t._clicking&&(t._toggleString=""),t.multiMix({filter:e.command},e.animate,e.callback)},sort:function(){var t=this,e=t._parseMultiMixArgs(arguments);t.multiMix({sort:e.command},e.animate,e.callback)},changeLayout:function(){var t=this,e=t._parseMultiMixArgs(arguments);t.multiMix({changeLayout:e.command},e.animate,e.callback)},multiMix:function(){var t=this,a=t._parseMultiMixArgs(arguments);if(t._execAction("multiMix",0,arguments),t._mixing)t.animation.queue&&t._queue.length<t.animation.queueLimit?(t._queue.push(arguments),t.controls.enable&&!t._clicking&&t._updateControls(a.command),t._execAction("multiMixQueue",1,arguments)):("function"==typeof t.callbacks.onMixBusy&&t.callbacks.onMixBusy.call(t._domNode,t._state,t),t._$container.trigger("mixBusy",[t._state,t]),t._execAction("multiMixBusy",1,arguments));else{t.controls.enable&&!t._clicking&&(t.controls.toggleFilterButtons&&t._buildToggleArray(),t._updateControls(a.command,t.controls.toggleFilterButtons)),t._queue.length<2&&(t._clicking=!1),delete t.callbacks._user,a.callback&&(t.callbacks._user=a.callback);var i=a.command.sort,n=a.command.filter,r=a.command.changeLayout;t._refresh(),i&&(t._newSort=t._parseSort(i),t._newSortString=i,t._sorting=!0,t._sort()),n!==e&&(n="all"===n?t.selectors.target:n,t._activeFilter=n),t._filter(),r&&(t._newDisplay="string"==typeof r?r:r.display||t.layout.display,t._newClass=r.containerClass||"",t._newDisplay===t.layout.display&&t._newClass===t.layout.containerClass||(t._changingLayout=!0,t._changingClass=t._newClass!==t.layout.containerClass,t._changingDisplay=t._newDisplay!==t.layout.display)),t._$targets.css(t._brake),t._goMix(a.animate^t.animation.enable?a.animate:t.animation.enable),t._execAction("multiMix",1,arguments)}},insert:function(){var t=this,e=t._parseInsertArgs(arguments),a="function"==typeof e.callback?e.callback:null,i=document.createDocumentFragment(),n=function(){return t._refresh(),t._$targets.length?e.index<t._$targets.length||!t._$targets.length?t._$targets[e.index]:t._$targets[t._$targets.length-1].nextElementSibling:t._$parent[0].children[0]}();if(t._execAction("insert",0,arguments),e.$object){for(var r=0;r<e.$object.length;r++){var o=e.$object[r];i.appendChild(o),i.appendChild(document.createTextNode(" "))}t._$parent[0].insertBefore(i,n)}t._execAction("insert",1,arguments),"object"==typeof e.multiMix&&t.multiMix(e.multiMix,a)},prepend:function(){var t=this,e=t._parseInsertArgs(arguments);t.insert(0,e.$object,e.multiMix,e.callback)},append:function(){var t=this,e=t._parseInsertArgs(arguments);t.insert(t._state.totalTargets,e.$object,e.multiMix,e.callback)},getOption:function(t){var a=this,i=function(t,a){for(var i=a.split("."),n=i.pop(),r=i.length,o=1,s=i[0]||a;(t=t[s])&&o<r;)s=i[o],o++;if(t!==e)return t[n]!==e?t[n]:t};return t?a._execFilter("getOption",i(a,t),arguments):a},setOptions:function(e){var a=this;a._execAction("setOptions",0,arguments),"object"==typeof e&&t.extend(!0,a,e),a._execAction("setOptions",1,arguments)},getState:function(){var t=this;return t._execFilter("getState",t._state,t)},forceRefresh:function(){var t=this;t._refresh(!1,!0)},destroy:function(e){var a=this,i=t.MixItUp.prototype._bound._filter,n=t.MixItUp.prototype._bound._sort;a._execAction("destroy",0,arguments),a._$body.add(t(a.selectors.sort)).add(t(a.selectors.filter)).off(".mixItUp");for(var r=0;r<a._$targets.length;r++){var o=a._$targets[r];e&&(o.style.display=""),delete o.mixParent}a._execAction("destroy",1,arguments),i[a.selectors.filter]&&i[a.selectors.filter]>1?i[a.selectors.filter]--:1===i[a.selectors.filter]&&delete i[a.selectors.filter],n[a.selectors.sort]&&n[a.selectors.sort]>1?n[a.selectors.sort]--:1===n[a.selectors.sort]&&delete n[a.selectors.sort],delete t.MixItUp.prototype._instances[a._id]}},t.fn.mixItUp=function(){var a,i=arguments,n=[],r=function(e,a){var i=new t.MixItUp,n=function(){return("00000"+(16777216*Math.random()<<0).toString(16)).substr(-6).toUpperCase()};i._execAction("_instantiate",0,arguments),e.id=e.id?e.id:"MixItUp"+n(),i._instances[e.id]||(i._instances[e.id]=i,i._init(e,a)),i._execAction("_instantiate",1,arguments)};return a=this.each(function(){if(i&&"string"==typeof i[0]){var a=t.MixItUp.prototype._instances[this.id];if("isLoaded"===i[0])n.push(!!a);else{var o=a[i[0]](i[1],i[2],i[3]);o!==e&&n.push(o)}}else r(this,i[0])}),n.length?n.length>1?n:n[0]:a},t.fn.removeStyle=function(a,i){return i=i?i:"",this.each(function(){for(var n=this,r=a.split(" "),o=0;o<r.length;o++)for(var s=0;s<4;s++){switch(s){case 0:var l=r[o];break;case 1:var l=t.MixItUp.prototype._helpers._camelCase(l);break;case 2:var l=i+r[o];break;case 3:var l=t.MixItUp.prototype._helpers._camelCase(i+r[o])}if(n.style[l]!==e&&"unknown"!=typeof n.style[l]&&n.style[l].length>0&&(n.style[l]=""),!i&&1===s)break}n.attributes&&n.attributes.style&&n.attributes.style!==e&&""===n.attributes.style.value&&n.attributes.removeNamedItem("style")})}}(jQuery);
|
js/slick.js
ADDED
@@ -0,0 +1,2892 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
_ _ _ _
|
3 |
+
___| (_) ___| | __ (_)___
|
4 |
+
/ __| | |/ __| |/ / | / __|
|
5 |
+
\__ \ | | (__| < _ | \__ \
|
6 |
+
|___/_|_|\___|_|\_(_)/ |___/
|
7 |
+
|__/
|
8 |
+
|
9 |
+
Version: 1.6.0
|
10 |
+
Author: Ken Wheeler
|
11 |
+
Website: http://kenwheeler.github.io
|
12 |
+
Docs: http://kenwheeler.github.io/slick
|
13 |
+
Repo: http://github.com/kenwheeler/slick
|
14 |
+
Issues: http://github.com/kenwheeler/slick/issues
|
15 |
+
|
16 |
+
*/
|
17 |
+
/* global window, document, define, jQuery, setInterval, clearInterval */
|
18 |
+
(function(factory) {
|
19 |
+
'use strict';
|
20 |
+
if (typeof define === 'function' && define.amd) {
|
21 |
+
define(['jquery'], factory);
|
22 |
+
} else if (typeof exports !== 'undefined') {
|
23 |
+
module.exports = factory(require('jquery'));
|
24 |
+
} else {
|
25 |
+
factory(jQuery);
|
26 |
+
}
|
27 |
+
|
28 |
+
}(function($) {
|
29 |
+
'use strict';
|
30 |
+
var Slick = window.Slick || {};
|
31 |
+
|
32 |
+
Slick = (function() {
|
33 |
+
|
34 |
+
var instanceUid = 0;
|
35 |
+
|
36 |
+
function Slick(element, settings) {
|
37 |
+
|
38 |
+
var _ = this, dataSettings;
|
39 |
+
|
40 |
+
_.defaults = {
|
41 |
+
accessibility: true,
|
42 |
+
adaptiveHeight: false,
|
43 |
+
appendArrows: $(element),
|
44 |
+
appendDots: $(element),
|
45 |
+
arrows: true,
|
46 |
+
asNavFor: null,
|
47 |
+
prevArrow: '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',
|
48 |
+
nextArrow: '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',
|
49 |
+
autoplay: false,
|
50 |
+
autoplaySpeed: 3000,
|
51 |
+
centerMode: false,
|
52 |
+
centerPadding: '50px',
|
53 |
+
cssEase: 'ease',
|
54 |
+
customPaging: function(slider, i) {
|
55 |
+
return $('<button type="button" data-role="none" role="button" tabindex="0" />').text(i + 1);
|
56 |
+
},
|
57 |
+
dots: false,
|
58 |
+
dotsClass: 'slick-dots',
|
59 |
+
draggable: true,
|
60 |
+
easing: 'linear',
|
61 |
+
edgeFriction: 0.35,
|
62 |
+
fade: false,
|
63 |
+
focusOnSelect: false,
|
64 |
+
infinite: true,
|
65 |
+
initialSlide: 0,
|
66 |
+
lazyLoad: 'ondemand',
|
67 |
+
mobileFirst: false,
|
68 |
+
pauseOnHover: true,
|
69 |
+
pauseOnFocus: true,
|
70 |
+
pauseOnDotsHover: false,
|
71 |
+
respondTo: 'window',
|
72 |
+
responsive: null,
|
73 |
+
rows: 1,
|
74 |
+
rtl: false,
|
75 |
+
slide: '',
|
76 |
+
slidesPerRow: 1,
|
77 |
+
slidesToShow: 1,
|
78 |
+
slidesToScroll: 1,
|
79 |
+
speed: 500,
|
80 |
+
swipe: true,
|
81 |
+
swipeToSlide: false,
|
82 |
+
touchMove: true,
|
83 |
+
touchThreshold: 5,
|
84 |
+
useCSS: true,
|
85 |
+
useTransform: true,
|
86 |
+
variableWidth: false,
|
87 |
+
vertical: false,
|
88 |
+
verticalSwiping: false,
|
89 |
+
waitForAnimate: true,
|
90 |
+
zIndex: 1000
|
91 |
+
};
|
92 |
+
|
93 |
+
_.initials = {
|
94 |
+
animating: false,
|
95 |
+
dragging: false,
|
96 |
+
autoPlayTimer: null,
|
97 |
+
currentDirection: 0,
|
98 |
+
currentLeft: null,
|
99 |
+
currentSlide: 0,
|
100 |
+
direction: 1,
|
101 |
+
$dots: null,
|
102 |
+
listWidth: null,
|
103 |
+
listHeight: null,
|
104 |
+
loadIndex: 0,
|
105 |
+
$nextArrow: null,
|
106 |
+
$prevArrow: null,
|
107 |
+
slideCount: null,
|
108 |
+
slideWidth: null,
|
109 |
+
$slideTrack: null,
|
110 |
+
$slides: null,
|
111 |
+
sliding: false,
|
112 |
+
slideOffset: 0,
|
113 |
+
swipeLeft: null,
|
114 |
+
$list: null,
|
115 |
+
touchObject: {},
|
116 |
+
transformsEnabled: false,
|
117 |
+
unslicked: false
|
118 |
+
};
|
119 |
+
|
120 |
+
$.extend(_, _.initials);
|
121 |
+
|
122 |
+
_.activeBreakpoint = null;
|
123 |
+
_.animType = null;
|
124 |
+
_.animProp = null;
|
125 |
+
_.breakpoints = [];
|
126 |
+
_.breakpointSettings = [];
|
127 |
+
_.cssTransitions = false;
|
128 |
+
_.focussed = false;
|
129 |
+
_.interrupted = false;
|
130 |
+
_.hidden = 'hidden';
|
131 |
+
_.paused = true;
|
132 |
+
_.positionProp = null;
|
133 |
+
_.respondTo = null;
|
134 |
+
_.rowCount = 1;
|
135 |
+
_.shouldClick = true;
|
136 |
+
_.$slider = $(element);
|
137 |
+
_.$slidesCache = null;
|
138 |
+
_.transformType = null;
|
139 |
+
_.transitionType = null;
|
140 |
+
_.visibilityChange = 'visibilitychange';
|
141 |
+
_.windowWidth = 0;
|
142 |
+
_.windowTimer = null;
|
143 |
+
|
144 |
+
dataSettings = $(element).data('slick') || {};
|
145 |
+
|
146 |
+
_.options = $.extend({}, _.defaults, settings, dataSettings);
|
147 |
+
|
148 |
+
_.currentSlide = _.options.initialSlide;
|
149 |
+
|
150 |
+
_.originalSettings = _.options;
|
151 |
+
|
152 |
+
if (typeof document.mozHidden !== 'undefined') {
|
153 |
+
_.hidden = 'mozHidden';
|
154 |
+
_.visibilityChange = 'mozvisibilitychange';
|
155 |
+
} else if (typeof document.webkitHidden !== 'undefined') {
|
156 |
+
_.hidden = 'webkitHidden';
|
157 |
+
_.visibilityChange = 'webkitvisibilitychange';
|
158 |
+
}
|
159 |
+
|
160 |
+
_.autoPlay = $.proxy(_.autoPlay, _);
|
161 |
+
_.autoPlayClear = $.proxy(_.autoPlayClear, _);
|
162 |
+
_.autoPlayIterator = $.proxy(_.autoPlayIterator, _);
|
163 |
+
_.changeSlide = $.proxy(_.changeSlide, _);
|
164 |
+
_.clickHandler = $.proxy(_.clickHandler, _);
|
165 |
+
_.selectHandler = $.proxy(_.selectHandler, _);
|
166 |
+
_.setPosition = $.proxy(_.setPosition, _);
|
167 |
+
_.swipeHandler = $.proxy(_.swipeHandler, _);
|
168 |
+
_.dragHandler = $.proxy(_.dragHandler, _);
|
169 |
+
_.keyHandler = $.proxy(_.keyHandler, _);
|
170 |
+
|
171 |
+
_.instanceUid = instanceUid++;
|
172 |
+
|
173 |
+
// A simple way to check for HTML strings
|
174 |
+
// Strict HTML recognition (must start with <)
|
175 |
+
// Extracted from jQuery v1.11 source
|
176 |
+
_.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/;
|
177 |
+
|
178 |
+
|
179 |
+
_.registerBreakpoints();
|
180 |
+
_.init(true);
|
181 |
+
|
182 |
+
}
|
183 |
+
|
184 |
+
return Slick;
|
185 |
+
|
186 |
+
}());
|
187 |
+
|
188 |
+
Slick.prototype.activateADA = function() {
|
189 |
+
var _ = this;
|
190 |
+
|
191 |
+
_.$slideTrack.find('.slick-active').attr({
|
192 |
+
'aria-hidden': 'false'
|
193 |
+
}).find('a, input, button, select').attr({
|
194 |
+
'tabindex': '0'
|
195 |
+
});
|
196 |
+
|
197 |
+
};
|
198 |
+
|
199 |
+
Slick.prototype.addSlide = Slick.prototype.slickAdd = function(markup, index, addBefore) {
|
200 |
+
|
201 |
+
var _ = this;
|
202 |
+
|
203 |
+
if (typeof(index) === 'boolean') {
|
204 |
+
addBefore = index;
|
205 |
+
index = null;
|
206 |
+
} else if (index < 0 || (index >= _.slideCount)) {
|
207 |
+
return false;
|
208 |
+
}
|
209 |
+
|
210 |
+
_.unload();
|
211 |
+
|
212 |
+
if (typeof(index) === 'number') {
|
213 |
+
if (index === 0 && _.$slides.length === 0) {
|
214 |
+
$(markup).appendTo(_.$slideTrack);
|
215 |
+
} else if (addBefore) {
|
216 |
+
$(markup).insertBefore(_.$slides.eq(index));
|
217 |
+
} else {
|
218 |
+
$(markup).insertAfter(_.$slides.eq(index));
|
219 |
+
}
|
220 |
+
} else {
|
221 |
+
if (addBefore === true) {
|
222 |
+
$(markup).prependTo(_.$slideTrack);
|
223 |
+
} else {
|
224 |
+
$(markup).appendTo(_.$slideTrack);
|
225 |
+
}
|
226 |
+
}
|
227 |
+
|
228 |
+
_.$slides = _.$slideTrack.children(this.options.slide);
|
229 |
+
|
230 |
+
_.$slideTrack.children(this.options.slide).detach();
|
231 |
+
|
232 |
+
_.$slideTrack.append(_.$slides);
|
233 |
+
|
234 |
+
_.$slides.each(function(index, element) {
|
235 |
+
$(element).attr('data-slick-index', index);
|
236 |
+
});
|
237 |
+
|
238 |
+
_.$slidesCache = _.$slides;
|
239 |
+
|
240 |
+
_.reinit();
|
241 |
+
|
242 |
+
};
|
243 |
+
|
244 |
+
Slick.prototype.animateHeight = function() {
|
245 |
+
var _ = this;
|
246 |
+
if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
|
247 |
+
var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
|
248 |
+
_.$list.animate({
|
249 |
+
height: targetHeight
|
250 |
+
}, _.options.speed);
|
251 |
+
}
|
252 |
+
};
|
253 |
+
|
254 |
+
Slick.prototype.animateSlide = function(targetLeft, callback) {
|
255 |
+
|
256 |
+
var animProps = {},
|
257 |
+
_ = this;
|
258 |
+
|
259 |
+
_.animateHeight();
|
260 |
+
|
261 |
+
if (_.options.rtl === true && _.options.vertical === false) {
|
262 |
+
targetLeft = -targetLeft;
|
263 |
+
}
|
264 |
+
if (_.transformsEnabled === false) {
|
265 |
+
if (_.options.vertical === false) {
|
266 |
+
_.$slideTrack.animate({
|
267 |
+
left: targetLeft
|
268 |
+
}, _.options.speed, _.options.easing, callback);
|
269 |
+
} else {
|
270 |
+
_.$slideTrack.animate({
|
271 |
+
top: targetLeft
|
272 |
+
}, _.options.speed, _.options.easing, callback);
|
273 |
+
}
|
274 |
+
|
275 |
+
} else {
|
276 |
+
|
277 |
+
if (_.cssTransitions === false) {
|
278 |
+
if (_.options.rtl === true) {
|
279 |
+
_.currentLeft = -(_.currentLeft);
|
280 |
+
}
|
281 |
+
$({
|
282 |
+
animStart: _.currentLeft
|
283 |
+
}).animate({
|
284 |
+
animStart: targetLeft
|
285 |
+
}, {
|
286 |
+
duration: _.options.speed,
|
287 |
+
easing: _.options.easing,
|
288 |
+
step: function(now) {
|
289 |
+
now = Math.ceil(now);
|
290 |
+
if (_.options.vertical === false) {
|
291 |
+
animProps[_.animType] = 'translate(' +
|
292 |
+
now + 'px, 0px)';
|
293 |
+
_.$slideTrack.css(animProps);
|
294 |
+
} else {
|
295 |
+
animProps[_.animType] = 'translate(0px,' +
|
296 |
+
now + 'px)';
|
297 |
+
_.$slideTrack.css(animProps);
|
298 |
+
}
|
299 |
+
},
|
300 |
+
complete: function() {
|
301 |
+
if (callback) {
|
302 |
+
callback.call();
|
303 |
+
}
|
304 |
+
}
|
305 |
+
});
|
306 |
+
|
307 |
+
} else {
|
308 |
+
|
309 |
+
_.applyTransition();
|
310 |
+
targetLeft = Math.ceil(targetLeft);
|
311 |
+
|
312 |
+
if (_.options.vertical === false) {
|
313 |
+
animProps[_.animType] = 'translate3d(' + targetLeft + 'px, 0px, 0px)';
|
314 |
+
} else {
|
315 |
+
animProps[_.animType] = 'translate3d(0px,' + targetLeft + 'px, 0px)';
|
316 |
+
}
|
317 |
+
_.$slideTrack.css(animProps);
|
318 |
+
|
319 |
+
if (callback) {
|
320 |
+
setTimeout(function() {
|
321 |
+
|
322 |
+
_.disableTransition();
|
323 |
+
|
324 |
+
callback.call();
|
325 |
+
}, _.options.speed);
|
326 |
+
}
|
327 |
+
|
328 |
+
}
|
329 |
+
|
330 |
+
}
|
331 |
+
|
332 |
+
};
|
333 |
+
|
334 |
+
Slick.prototype.getNavTarget = function() {
|
335 |
+
|
336 |
+
var _ = this,
|
337 |
+
asNavFor = _.options.asNavFor;
|
338 |
+
|
339 |
+
if ( asNavFor && asNavFor !== null ) {
|
340 |
+
asNavFor = $(asNavFor).not(_.$slider);
|
341 |
+
}
|
342 |
+
|
343 |
+
return asNavFor;
|
344 |
+
|
345 |
+
};
|
346 |
+
|
347 |
+
Slick.prototype.asNavFor = function(index) {
|
348 |
+
|
349 |
+
var _ = this,
|
350 |
+
asNavFor = _.getNavTarget();
|
351 |
+
|
352 |
+
if ( asNavFor !== null && typeof asNavFor === 'object' ) {
|
353 |
+
asNavFor.each(function() {
|
354 |
+
var target = $(this).slick('getSlick');
|
355 |
+
if(!target.unslicked) {
|
356 |
+
target.slideHandler(index, true);
|
357 |
+
}
|
358 |
+
});
|
359 |
+
}
|
360 |
+
|
361 |
+
};
|
362 |
+
|
363 |
+
Slick.prototype.applyTransition = function(slide) {
|
364 |
+
|
365 |
+
var _ = this,
|
366 |
+
transition = {};
|
367 |
+
|
368 |
+
if (_.options.fade === false) {
|
369 |
+
transition[_.transitionType] = _.transformType + ' ' + _.options.speed + 'ms ' + _.options.cssEase;
|
370 |
+
} else {
|
371 |
+
transition[_.transitionType] = 'opacity ' + _.options.speed + 'ms ' + _.options.cssEase;
|
372 |
+
}
|
373 |
+
|
374 |
+
if (_.options.fade === false) {
|
375 |
+
_.$slideTrack.css(transition);
|
376 |
+
} else {
|
377 |
+
_.$slides.eq(slide).css(transition);
|
378 |
+
}
|
379 |
+
|
380 |
+
};
|
381 |
+
|
382 |
+
Slick.prototype.autoPlay = function() {
|
383 |
+
|
384 |
+
var _ = this;
|
385 |
+
|
386 |
+
_.autoPlayClear();
|
387 |
+
|
388 |
+
if ( _.slideCount > _.options.slidesToShow ) {
|
389 |
+
_.autoPlayTimer = setInterval( _.autoPlayIterator, _.options.autoplaySpeed );
|
390 |
+
}
|
391 |
+
|
392 |
+
};
|
393 |
+
|
394 |
+
Slick.prototype.autoPlayClear = function() {
|
395 |
+
|
396 |
+
var _ = this;
|
397 |
+
|
398 |
+
if (_.autoPlayTimer) {
|
399 |
+
clearInterval(_.autoPlayTimer);
|
400 |
+
}
|
401 |
+
|
402 |
+
};
|
403 |
+
|
404 |
+
Slick.prototype.autoPlayIterator = function() {
|
405 |
+
|
406 |
+
var _ = this,
|
407 |
+
slideTo = _.currentSlide + _.options.slidesToScroll;
|
408 |
+
|
409 |
+
if ( !_.paused && !_.interrupted && !_.focussed ) {
|
410 |
+
|
411 |
+
if ( _.options.infinite === false ) {
|
412 |
+
|
413 |
+
if ( _.direction === 1 && ( _.currentSlide + 1 ) === ( _.slideCount - 1 )) {
|
414 |
+
_.direction = 0;
|
415 |
+
}
|
416 |
+
|
417 |
+
else if ( _.direction === 0 ) {
|
418 |
+
|
419 |
+
slideTo = _.currentSlide - _.options.slidesToScroll;
|
420 |
+
|
421 |
+
if ( _.currentSlide - 1 === 0 ) {
|
422 |
+
_.direction = 1;
|
423 |
+
}
|
424 |
+
|
425 |
+
}
|
426 |
+
|
427 |
+
}
|
428 |
+
|
429 |
+
_.slideHandler( slideTo );
|
430 |
+
|
431 |
+
}
|
432 |
+
|
433 |
+
};
|
434 |
+
|
435 |
+
Slick.prototype.buildArrows = function() {
|
436 |
+
|
437 |
+
var _ = this;
|
438 |
+
|
439 |
+
if (_.options.arrows === true ) {
|
440 |
+
|
441 |
+
_.$prevArrow = $(_.options.prevArrow).addClass('slick-arrow');
|
442 |
+
_.$nextArrow = $(_.options.nextArrow).addClass('slick-arrow');
|
443 |
+
|
444 |
+
if( _.slideCount > _.options.slidesToShow ) {
|
445 |
+
|
446 |
+
_.$prevArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
|
447 |
+
_.$nextArrow.removeClass('slick-hidden').removeAttr('aria-hidden tabindex');
|
448 |
+
|
449 |
+
if (_.htmlExpr.test(_.options.prevArrow)) {
|
450 |
+
_.$prevArrow.prependTo(_.options.appendArrows);
|
451 |
+
}
|
452 |
+
|
453 |
+
if (_.htmlExpr.test(_.options.nextArrow)) {
|
454 |
+
_.$nextArrow.appendTo(_.options.appendArrows);
|
455 |
+
}
|
456 |
+
|
457 |
+
if (_.options.infinite !== true) {
|
458 |
+
_.$prevArrow
|
459 |
+
.addClass('slick-disabled')
|
460 |
+
.attr('aria-disabled', 'true');
|
461 |
+
}
|
462 |
+
|
463 |
+
} else {
|
464 |
+
|
465 |
+
_.$prevArrow.add( _.$nextArrow )
|
466 |
+
|
467 |
+
.addClass('slick-hidden')
|
468 |
+
.attr({
|
469 |
+
'aria-disabled': 'true',
|
470 |
+
'tabindex': '-1'
|
471 |
+
});
|
472 |
+
|
473 |
+
}
|
474 |
+
|
475 |
+
}
|
476 |
+
|
477 |
+
};
|
478 |
+
|
479 |
+
Slick.prototype.buildDots = function() {
|
480 |
+
|
481 |
+
var _ = this,
|
482 |
+
i, dot;
|
483 |
+
|
484 |
+
if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
|
485 |
+
|
486 |
+
_.$slider.addClass('slick-dotted');
|
487 |
+
|
488 |
+
dot = $('<ul />').addClass(_.options.dotsClass);
|
489 |
+
|
490 |
+
for (i = 0; i <= _.getDotCount(); i += 1) {
|
491 |
+
dot.append($('<li />').append(_.options.customPaging.call(this, _, i)));
|
492 |
+
}
|
493 |
+
|
494 |
+
_.$dots = dot.appendTo(_.options.appendDots);
|
495 |
+
|
496 |
+
_.$dots.find('li').first().addClass('slick-active').attr('aria-hidden', 'false');
|
497 |
+
|
498 |
+
}
|
499 |
+
|
500 |
+
};
|
501 |
+
|
502 |
+
Slick.prototype.buildOut = function() {
|
503 |
+
|
504 |
+
var _ = this;
|
505 |
+
|
506 |
+
_.$slides =
|
507 |
+
_.$slider
|
508 |
+
.children( _.options.slide + ':not(.slick-cloned)')
|
509 |
+
.addClass('slick-slide');
|
510 |
+
|
511 |
+
_.slideCount = _.$slides.length;
|
512 |
+
|
513 |
+
_.$slides.each(function(index, element) {
|
514 |
+
$(element)
|
515 |
+
.attr('data-slick-index', index)
|
516 |
+
.data('originalStyling', $(element).attr('style') || '');
|
517 |
+
});
|
518 |
+
|
519 |
+
_.$slider.addClass('slick-slider');
|
520 |
+
|
521 |
+
_.$slideTrack = (_.slideCount === 0) ?
|
522 |
+
$('<div class="slick-track"/>').appendTo(_.$slider) :
|
523 |
+
_.$slides.wrapAll('<div class="slick-track"/>').parent();
|
524 |
+
|
525 |
+
_.$list = _.$slideTrack.wrap(
|
526 |
+
'<div aria-live="polite" class="slick-list"/>').parent();
|
527 |
+
_.$slideTrack.css('opacity', 0);
|
528 |
+
|
529 |
+
if (_.options.centerMode === true || _.options.swipeToSlide === true) {
|
530 |
+
_.options.slidesToScroll = 1;
|
531 |
+
}
|
532 |
+
|
533 |
+
$('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');
|
534 |
+
|
535 |
+
_.setupInfinite();
|
536 |
+
|
537 |
+
_.buildArrows();
|
538 |
+
|
539 |
+
_.buildDots();
|
540 |
+
|
541 |
+
_.updateDots();
|
542 |
+
|
543 |
+
|
544 |
+
_.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
|
545 |
+
|
546 |
+
if (_.options.draggable === true) {
|
547 |
+
_.$list.addClass('draggable');
|
548 |
+
}
|
549 |
+
|
550 |
+
};
|
551 |
+
|
552 |
+
Slick.prototype.buildRows = function() {
|
553 |
+
|
554 |
+
var _ = this, a, b, c, newSlides, numOfSlides, originalSlides,slidesPerSection;
|
555 |
+
|
556 |
+
newSlides = document.createDocumentFragment();
|
557 |
+
originalSlides = _.$slider.children();
|
558 |
+
|
559 |
+
if(_.options.rows > 1) {
|
560 |
+
|
561 |
+
slidesPerSection = _.options.slidesPerRow * _.options.rows;
|
562 |
+
numOfSlides = Math.ceil(
|
563 |
+
originalSlides.length / slidesPerSection
|
564 |
+
);
|
565 |
+
|
566 |
+
for(a = 0; a < numOfSlides; a++){
|
567 |
+
var slide = document.createElement('div');
|
568 |
+
for(b = 0; b < _.options.rows; b++) {
|
569 |
+
var row = document.createElement('div');
|
570 |
+
for(c = 0; c < _.options.slidesPerRow; c++) {
|
571 |
+
var target = (a * slidesPerSection + ((b * _.options.slidesPerRow) + c));
|
572 |
+
if (originalSlides.get(target)) {
|
573 |
+
row.appendChild(originalSlides.get(target));
|
574 |
+
}
|
575 |
+
}
|
576 |
+
slide.appendChild(row);
|
577 |
+
}
|
578 |
+
newSlides.appendChild(slide);
|
579 |
+
}
|
580 |
+
|
581 |
+
_.$slider.empty().append(newSlides);
|
582 |
+
_.$slider.children().children().children()
|
583 |
+
.css({
|
584 |
+
'width':(100 / _.options.slidesPerRow) + '%',
|
585 |
+
'display': 'inline-block'
|
586 |
+
});
|
587 |
+
|
588 |
+
}
|
589 |
+
|
590 |
+
};
|
591 |
+
|
592 |
+
Slick.prototype.checkResponsive = function(initial, forceUpdate) {
|
593 |
+
|
594 |
+
var _ = this,
|
595 |
+
breakpoint, targetBreakpoint, respondToWidth, triggerBreakpoint = false;
|
596 |
+
var sliderWidth = _.$slider.width();
|
597 |
+
var windowWidth = window.innerWidth || $(window).width();
|
598 |
+
|
599 |
+
if (_.respondTo === 'window') {
|
600 |
+
respondToWidth = windowWidth;
|
601 |
+
} else if (_.respondTo === 'slider') {
|
602 |
+
respondToWidth = sliderWidth;
|
603 |
+
} else if (_.respondTo === 'min') {
|
604 |
+
respondToWidth = Math.min(windowWidth, sliderWidth);
|
605 |
+
}
|
606 |
+
|
607 |
+
if ( _.options.responsive &&
|
608 |
+
_.options.responsive.length &&
|
609 |
+
_.options.responsive !== null) {
|
610 |
+
|
611 |
+
targetBreakpoint = null;
|
612 |
+
|
613 |
+
for (breakpoint in _.breakpoints) {
|
614 |
+
if (_.breakpoints.hasOwnProperty(breakpoint)) {
|
615 |
+
if (_.originalSettings.mobileFirst === false) {
|
616 |
+
if (respondToWidth < _.breakpoints[breakpoint]) {
|
617 |
+
targetBreakpoint = _.breakpoints[breakpoint];
|
618 |
+
}
|
619 |
+
} else {
|
620 |
+
if (respondToWidth > _.breakpoints[breakpoint]) {
|
621 |
+
targetBreakpoint = _.breakpoints[breakpoint];
|
622 |
+
}
|
623 |
+
}
|
624 |
+
}
|
625 |
+
}
|
626 |
+
|
627 |
+
if (targetBreakpoint !== null) {
|
628 |
+
if (_.activeBreakpoint !== null) {
|
629 |
+
if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {
|
630 |
+
_.activeBreakpoint =
|
631 |
+
targetBreakpoint;
|
632 |
+
if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
|
633 |
+
_.unslick(targetBreakpoint);
|
634 |
+
} else {
|
635 |
+
_.options = $.extend({}, _.originalSettings,
|
636 |
+
_.breakpointSettings[
|
637 |
+
targetBreakpoint]);
|
638 |
+
if (initial === true) {
|
639 |
+
_.currentSlide = _.options.initialSlide;
|
640 |
+
}
|
641 |
+
_.refresh(initial);
|
642 |
+
}
|
643 |
+
triggerBreakpoint = targetBreakpoint;
|
644 |
+
}
|
645 |
+
} else {
|
646 |
+
_.activeBreakpoint = targetBreakpoint;
|
647 |
+
if (_.breakpointSettings[targetBreakpoint] === 'unslick') {
|
648 |
+
_.unslick(targetBreakpoint);
|
649 |
+
} else {
|
650 |
+
_.options = $.extend({}, _.originalSettings,
|
651 |
+
_.breakpointSettings[
|
652 |
+
targetBreakpoint]);
|
653 |
+
if (initial === true) {
|
654 |
+
_.currentSlide = _.options.initialSlide;
|
655 |
+
}
|
656 |
+
_.refresh(initial);
|
657 |
+
}
|
658 |
+
triggerBreakpoint = targetBreakpoint;
|
659 |
+
}
|
660 |
+
} else {
|
661 |
+
if (_.activeBreakpoint !== null) {
|
662 |
+
_.activeBreakpoint = null;
|
663 |
+
_.options = _.originalSettings;
|
664 |
+
if (initial === true) {
|
665 |
+
_.currentSlide = _.options.initialSlide;
|
666 |
+
}
|
667 |
+
_.refresh(initial);
|
668 |
+
triggerBreakpoint = targetBreakpoint;
|
669 |
+
}
|
670 |
+
}
|
671 |
+
|
672 |
+
// only trigger breakpoints during an actual break. not on initialize.
|
673 |
+
if( !initial && triggerBreakpoint !== false ) {
|
674 |
+
_.$slider.trigger('breakpoint', [_, triggerBreakpoint]);
|
675 |
+
}
|
676 |
+
}
|
677 |
+
|
678 |
+
};
|
679 |
+
|
680 |
+
Slick.prototype.changeSlide = function(event, dontAnimate) {
|
681 |
+
|
682 |
+
var _ = this,
|
683 |
+
$target = $(event.currentTarget),
|
684 |
+
indexOffset, slideOffset, unevenOffset;
|
685 |
+
|
686 |
+
// If target is a link, prevent default action.
|
687 |
+
if($target.is('a')) {
|
688 |
+
event.preventDefault();
|
689 |
+
}
|
690 |
+
|
691 |
+
// If target is not the <li> element (ie: a child), find the <li>.
|
692 |
+
if(!$target.is('li')) {
|
693 |
+
$target = $target.closest('li');
|
694 |
+
}
|
695 |
+
|
696 |
+
unevenOffset = (_.slideCount % _.options.slidesToScroll !== 0);
|
697 |
+
indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;
|
698 |
+
|
699 |
+
switch (event.data.message) {
|
700 |
+
|
701 |
+
case 'previous':
|
702 |
+
slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;
|
703 |
+
if (_.slideCount > _.options.slidesToShow) {
|
704 |
+
_.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);
|
705 |
+
}
|
706 |
+
break;
|
707 |
+
|
708 |
+
case 'next':
|
709 |
+
slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;
|
710 |
+
if (_.slideCount > _.options.slidesToShow) {
|
711 |
+
_.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);
|
712 |
+
}
|
713 |
+
break;
|
714 |
+
|
715 |
+
case 'index':
|
716 |
+
var index = event.data.index === 0 ? 0 :
|
717 |
+
event.data.index || $target.index() * _.options.slidesToScroll;
|
718 |
+
|
719 |
+
_.slideHandler(_.checkNavigable(index), false, dontAnimate);
|
720 |
+
$target.children().trigger('focus');
|
721 |
+
break;
|
722 |
+
|
723 |
+
default:
|
724 |
+
return;
|
725 |
+
}
|
726 |
+
|
727 |
+
};
|
728 |
+
|
729 |
+
Slick.prototype.checkNavigable = function(index) {
|
730 |
+
|
731 |
+
var _ = this,
|
732 |
+
navigables, prevNavigable;
|
733 |
+
|
734 |
+
navigables = _.getNavigableIndexes();
|
735 |
+
prevNavigable = 0;
|
736 |
+
if (index > navigables[navigables.length - 1]) {
|
737 |
+
index = navigables[navigables.length - 1];
|
738 |
+
} else {
|
739 |
+
for (var n in navigables) {
|
740 |
+
if (index < navigables[n]) {
|
741 |
+
index = prevNavigable;
|
742 |
+
break;
|
743 |
+
}
|
744 |
+
prevNavigable = navigables[n];
|
745 |
+
}
|
746 |
+
}
|
747 |
+
|
748 |
+
return index;
|
749 |
+
};
|
750 |
+
|
751 |
+
Slick.prototype.cleanUpEvents = function() {
|
752 |
+
|
753 |
+
var _ = this;
|
754 |
+
|
755 |
+
if (_.options.dots && _.$dots !== null) {
|
756 |
+
|
757 |
+
$('li', _.$dots)
|
758 |
+
.off('click.slick', _.changeSlide)
|
759 |
+
.off('mouseenter.slick', $.proxy(_.interrupt, _, true))
|
760 |
+
.off('mouseleave.slick', $.proxy(_.interrupt, _, false));
|
761 |
+
|
762 |
+
}
|
763 |
+
|
764 |
+
_.$slider.off('focus.slick blur.slick');
|
765 |
+
|
766 |
+
if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
|
767 |
+
_.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);
|
768 |
+
_.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);
|
769 |
+
}
|
770 |
+
|
771 |
+
_.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);
|
772 |
+
_.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);
|
773 |
+
_.$list.off('touchend.slick mouseup.slick', _.swipeHandler);
|
774 |
+
_.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);
|
775 |
+
|
776 |
+
_.$list.off('click.slick', _.clickHandler);
|
777 |
+
|
778 |
+
$(document).off(_.visibilityChange, _.visibility);
|
779 |
+
|
780 |
+
_.cleanUpSlideEvents();
|
781 |
+
|
782 |
+
if (_.options.accessibility === true) {
|
783 |
+
_.$list.off('keydown.slick', _.keyHandler);
|
784 |
+
}
|
785 |
+
|
786 |
+
if (_.options.focusOnSelect === true) {
|
787 |
+
$(_.$slideTrack).children().off('click.slick', _.selectHandler);
|
788 |
+
}
|
789 |
+
|
790 |
+
$(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);
|
791 |
+
|
792 |
+
$(window).off('resize.slick.slick-' + _.instanceUid, _.resize);
|
793 |
+
|
794 |
+
$('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);
|
795 |
+
|
796 |
+
$(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);
|
797 |
+
$(document).off('ready.slick.slick-' + _.instanceUid, _.setPosition);
|
798 |
+
|
799 |
+
};
|
800 |
+
|
801 |
+
Slick.prototype.cleanUpSlideEvents = function() {
|
802 |
+
|
803 |
+
var _ = this;
|
804 |
+
|
805 |
+
_.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));
|
806 |
+
_.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));
|
807 |
+
|
808 |
+
};
|
809 |
+
|
810 |
+
Slick.prototype.cleanUpRows = function() {
|
811 |
+
|
812 |
+
var _ = this, originalSlides;
|
813 |
+
|
814 |
+
if(_.options.rows > 1) {
|
815 |
+
originalSlides = _.$slides.children().children();
|
816 |
+
originalSlides.removeAttr('style');
|
817 |
+
_.$slider.empty().append(originalSlides);
|
818 |
+
}
|
819 |
+
|
820 |
+
};
|
821 |
+
|
822 |
+
Slick.prototype.clickHandler = function(event) {
|
823 |
+
|
824 |
+
var _ = this;
|
825 |
+
|
826 |
+
if (_.shouldClick === false) {
|
827 |
+
event.stopImmediatePropagation();
|
828 |
+
event.stopPropagation();
|
829 |
+
event.preventDefault();
|
830 |
+
}
|
831 |
+
|
832 |
+
};
|
833 |
+
|
834 |
+
Slick.prototype.destroy = function(refresh) {
|
835 |
+
|
836 |
+
var _ = this;
|
837 |
+
|
838 |
+
_.autoPlayClear();
|
839 |
+
|
840 |
+
_.touchObject = {};
|
841 |
+
|
842 |
+
_.cleanUpEvents();
|
843 |
+
|
844 |
+
$('.slick-cloned', _.$slider).detach();
|
845 |
+
|
846 |
+
if (_.$dots) {
|
847 |
+
_.$dots.remove();
|
848 |
+
}
|
849 |
+
|
850 |
+
|
851 |
+
if ( _.$prevArrow && _.$prevArrow.length ) {
|
852 |
+
|
853 |
+
_.$prevArrow
|
854 |
+
.removeClass('slick-disabled slick-arrow slick-hidden')
|
855 |
+
.removeAttr('aria-hidden aria-disabled tabindex')
|
856 |
+
.css('display','');
|
857 |
+
|
858 |
+
if ( _.htmlExpr.test( _.options.prevArrow )) {
|
859 |
+
_.$prevArrow.remove();
|
860 |
+
}
|
861 |
+
}
|
862 |
+
|
863 |
+
if ( _.$nextArrow && _.$nextArrow.length ) {
|
864 |
+
|
865 |
+
_.$nextArrow
|
866 |
+
.removeClass('slick-disabled slick-arrow slick-hidden')
|
867 |
+
.removeAttr('aria-hidden aria-disabled tabindex')
|
868 |
+
.css('display','');
|
869 |
+
|
870 |
+
if ( _.htmlExpr.test( _.options.nextArrow )) {
|
871 |
+
_.$nextArrow.remove();
|
872 |
+
}
|
873 |
+
|
874 |
+
}
|
875 |
+
|
876 |
+
|
877 |
+
if (_.$slides) {
|
878 |
+
|
879 |
+
_.$slides
|
880 |
+
.removeClass('slick-slide slick-active slick-center slick-visible slick-current')
|
881 |
+
.removeAttr('aria-hidden')
|
882 |
+
.removeAttr('data-slick-index')
|
883 |
+
.each(function(){
|
884 |
+
$(this).attr('style', $(this).data('originalStyling'));
|
885 |
+
});
|
886 |
+
|
887 |
+
_.$slideTrack.children(this.options.slide).detach();
|
888 |
+
|
889 |
+
_.$slideTrack.detach();
|
890 |
+
|
891 |
+
_.$list.detach();
|
892 |
+
|
893 |
+
_.$slider.append(_.$slides);
|
894 |
+
}
|
895 |
+
|
896 |
+
_.cleanUpRows();
|
897 |
+
|
898 |
+
_.$slider.removeClass('slick-slider');
|
899 |
+
_.$slider.removeClass('slick-initialized');
|
900 |
+
_.$slider.removeClass('slick-dotted');
|
901 |
+
|
902 |
+
_.unslicked = true;
|
903 |
+
|
904 |
+
if(!refresh) {
|
905 |
+
_.$slider.trigger('destroy', [_]);
|
906 |
+
}
|
907 |
+
|
908 |
+
};
|
909 |
+
|
910 |
+
Slick.prototype.disableTransition = function(slide) {
|
911 |
+
|
912 |
+
var _ = this,
|
913 |
+
transition = {};
|
914 |
+
|
915 |
+
transition[_.transitionType] = '';
|
916 |
+
|
917 |
+
if (_.options.fade === false) {
|
918 |
+
_.$slideTrack.css(transition);
|
919 |
+
} else {
|
920 |
+
_.$slides.eq(slide).css(transition);
|
921 |
+
}
|
922 |
+
|
923 |
+
};
|
924 |
+
|
925 |
+
Slick.prototype.fadeSlide = function(slideIndex, callback) {
|
926 |
+
|
927 |
+
var _ = this;
|
928 |
+
|
929 |
+
if (_.cssTransitions === false) {
|
930 |
+
|
931 |
+
_.$slides.eq(slideIndex).css({
|
932 |
+
zIndex: _.options.zIndex
|
933 |
+
});
|
934 |
+
|
935 |
+
_.$slides.eq(slideIndex).animate({
|
936 |
+
opacity: 1
|
937 |
+
}, _.options.speed, _.options.easing, callback);
|
938 |
+
|
939 |
+
} else {
|
940 |
+
|
941 |
+
_.applyTransition(slideIndex);
|
942 |
+
|
943 |
+
_.$slides.eq(slideIndex).css({
|
944 |
+
opacity: 1,
|
945 |
+
zIndex: _.options.zIndex
|
946 |
+
});
|
947 |
+
|
948 |
+
if (callback) {
|
949 |
+
setTimeout(function() {
|
950 |
+
|
951 |
+
_.disableTransition(slideIndex);
|
952 |
+
|
953 |
+
callback.call();
|
954 |
+
}, _.options.speed);
|
955 |
+
}
|
956 |
+
|
957 |
+
}
|
958 |
+
|
959 |
+
};
|
960 |
+
|
961 |
+
Slick.prototype.fadeSlideOut = function(slideIndex) {
|
962 |
+
|
963 |
+
var _ = this;
|
964 |
+
|
965 |
+
if (_.cssTransitions === false) {
|
966 |
+
|
967 |
+
_.$slides.eq(slideIndex).animate({
|
968 |
+
opacity: 0,
|
969 |
+
zIndex: _.options.zIndex - 2
|
970 |
+
}, _.options.speed, _.options.easing);
|
971 |
+
|
972 |
+
} else {
|
973 |
+
|
974 |
+
_.applyTransition(slideIndex);
|
975 |
+
|
976 |
+
_.$slides.eq(slideIndex).css({
|
977 |
+
opacity: 0,
|
978 |
+
zIndex: _.options.zIndex - 2
|
979 |
+
});
|
980 |
+
|
981 |
+
}
|
982 |
+
|
983 |
+
};
|
984 |
+
|
985 |
+
Slick.prototype.filterSlides = Slick.prototype.slickFilter = function(filter) {
|
986 |
+
|
987 |
+
var _ = this;
|
988 |
+
|
989 |
+
if (filter !== null) {
|
990 |
+
|
991 |
+
_.$slidesCache = _.$slides;
|
992 |
+
|
993 |
+
_.unload();
|
994 |
+
|
995 |
+
_.$slideTrack.children(this.options.slide).detach();
|
996 |
+
|
997 |
+
_.$slidesCache.filter(filter).appendTo(_.$slideTrack);
|
998 |
+
|
999 |
+
_.reinit();
|
1000 |
+
|
1001 |
+
}
|
1002 |
+
|
1003 |
+
};
|
1004 |
+
|
1005 |
+
Slick.prototype.focusHandler = function() {
|
1006 |
+
|
1007 |
+
var _ = this;
|
1008 |
+
|
1009 |
+
_.$slider
|
1010 |
+
.off('focus.slick blur.slick')
|
1011 |
+
.on('focus.slick blur.slick',
|
1012 |
+
'*:not(.slick-arrow)', function(event) {
|
1013 |
+
|
1014 |
+
event.stopImmediatePropagation();
|
1015 |
+
var $sf = $(this);
|
1016 |
+
|
1017 |
+
setTimeout(function() {
|
1018 |
+
|
1019 |
+
if( _.options.pauseOnFocus ) {
|
1020 |
+
_.focussed = $sf.is(':focus');
|
1021 |
+
_.autoPlay();
|
1022 |
+
}
|
1023 |
+
|
1024 |
+
}, 0);
|
1025 |
+
|
1026 |
+
});
|
1027 |
+
};
|
1028 |
+
|
1029 |
+
Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function() {
|
1030 |
+
|
1031 |
+
var _ = this;
|
1032 |
+
return _.currentSlide;
|
1033 |
+
|
1034 |
+
};
|
1035 |
+
|
1036 |
+
Slick.prototype.getDotCount = function() {
|
1037 |
+
|
1038 |
+
var _ = this;
|
1039 |
+
|
1040 |
+
var breakPoint = 0;
|
1041 |
+
var counter = 0;
|
1042 |
+
var pagerQty = 0;
|
1043 |
+
|
1044 |
+
if (_.options.infinite === true) {
|
1045 |
+
while (breakPoint < _.slideCount) {
|
1046 |
+
++pagerQty;
|
1047 |
+
breakPoint = counter + _.options.slidesToScroll;
|
1048 |
+
counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
|
1049 |
+
}
|
1050 |
+
} else if (_.options.centerMode === true) {
|
1051 |
+
pagerQty = _.slideCount;
|
1052 |
+
} else if(!_.options.asNavFor) {
|
1053 |
+
pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);
|
1054 |
+
}else {
|
1055 |
+
while (breakPoint < _.slideCount) {
|
1056 |
+
++pagerQty;
|
1057 |
+
breakPoint = counter + _.options.slidesToScroll;
|
1058 |
+
counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
|
1059 |
+
}
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
return pagerQty - 1;
|
1063 |
+
|
1064 |
+
};
|
1065 |
+
|
1066 |
+
Slick.prototype.getLeft = function(slideIndex) {
|
1067 |
+
|
1068 |
+
var _ = this,
|
1069 |
+
targetLeft,
|
1070 |
+
verticalHeight,
|
1071 |
+
verticalOffset = 0,
|
1072 |
+
targetSlide;
|
1073 |
+
|
1074 |
+
_.slideOffset = 0;
|
1075 |
+
verticalHeight = _.$slides.first().outerHeight(true);
|
1076 |
+
|
1077 |
+
if (_.options.infinite === true) {
|
1078 |
+
if (_.slideCount > _.options.slidesToShow) {
|
1079 |
+
_.slideOffset = (_.slideWidth * _.options.slidesToShow) * -1;
|
1080 |
+
verticalOffset = (verticalHeight * _.options.slidesToShow) * -1;
|
1081 |
+
}
|
1082 |
+
if (_.slideCount % _.options.slidesToScroll !== 0) {
|
1083 |
+
if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {
|
1084 |
+
if (slideIndex > _.slideCount) {
|
1085 |
+
_.slideOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth) * -1;
|
1086 |
+
verticalOffset = ((_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight) * -1;
|
1087 |
+
} else {
|
1088 |
+
_.slideOffset = ((_.slideCount % _.options.slidesToScroll) * _.slideWidth) * -1;
|
1089 |
+
verticalOffset = ((_.slideCount % _.options.slidesToScroll) * verticalHeight) * -1;
|
1090 |
+
}
|
1091 |
+
}
|
1092 |
+
}
|
1093 |
+
} else {
|
1094 |
+
if (slideIndex + _.options.slidesToShow > _.slideCount) {
|
1095 |
+
_.slideOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * _.slideWidth;
|
1096 |
+
verticalOffset = ((slideIndex + _.options.slidesToShow) - _.slideCount) * verticalHeight;
|
1097 |
+
}
|
1098 |
+
}
|
1099 |
+
|
1100 |
+
if (_.slideCount <= _.options.slidesToShow) {
|
1101 |
+
_.slideOffset = 0;
|
1102 |
+
verticalOffset = 0;
|
1103 |
+
}
|
1104 |
+
|
1105 |
+
if (_.options.centerMode === true && _.options.infinite === true) {
|
1106 |
+
_.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;
|
1107 |
+
} else if (_.options.centerMode === true) {
|
1108 |
+
_.slideOffset = 0;
|
1109 |
+
_.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);
|
1110 |
+
}
|
1111 |
+
|
1112 |
+
if (_.options.vertical === false) {
|
1113 |
+
targetLeft = ((slideIndex * _.slideWidth) * -1) + _.slideOffset;
|
1114 |
+
} else {
|
1115 |
+
targetLeft = ((slideIndex * verticalHeight) * -1) + verticalOffset;
|
1116 |
+
}
|
1117 |
+
|
1118 |
+
if (_.options.variableWidth === true) {
|
1119 |
+
|
1120 |
+
if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
|
1121 |
+
targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
|
1122 |
+
} else {
|
1123 |
+
targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);
|
1124 |
+
}
|
1125 |
+
|
1126 |
+
if (_.options.rtl === true) {
|
1127 |
+
if (targetSlide[0]) {
|
1128 |
+
targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
|
1129 |
+
} else {
|
1130 |
+
targetLeft = 0;
|
1131 |
+
}
|
1132 |
+
} else {
|
1133 |
+
targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
|
1134 |
+
}
|
1135 |
+
|
1136 |
+
if (_.options.centerMode === true) {
|
1137 |
+
if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {
|
1138 |
+
targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);
|
1139 |
+
} else {
|
1140 |
+
targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
if (_.options.rtl === true) {
|
1144 |
+
if (targetSlide[0]) {
|
1145 |
+
targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;
|
1146 |
+
} else {
|
1147 |
+
targetLeft = 0;
|
1148 |
+
}
|
1149 |
+
} else {
|
1150 |
+
targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;
|
1151 |
+
}
|
1152 |
+
|
1153 |
+
targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;
|
1154 |
+
}
|
1155 |
+
}
|
1156 |
+
|
1157 |
+
return targetLeft;
|
1158 |
+
|
1159 |
+
};
|
1160 |
+
|
1161 |
+
Slick.prototype.getOption = Slick.prototype.slickGetOption = function(option) {
|
1162 |
+
|
1163 |
+
var _ = this;
|
1164 |
+
|
1165 |
+
return _.options[option];
|
1166 |
+
|
1167 |
+
};
|
1168 |
+
|
1169 |
+
Slick.prototype.getNavigableIndexes = function() {
|
1170 |
+
|
1171 |
+
var _ = this,
|
1172 |
+
breakPoint = 0,
|
1173 |
+
counter = 0,
|
1174 |
+
indexes = [],
|
1175 |
+
max;
|
1176 |
+
|
1177 |
+
if (_.options.infinite === false) {
|
1178 |
+
max = _.slideCount;
|
1179 |
+
} else {
|
1180 |
+
breakPoint = _.options.slidesToScroll * -1;
|
1181 |
+
counter = _.options.slidesToScroll * -1;
|
1182 |
+
max = _.slideCount * 2;
|
1183 |
+
}
|
1184 |
+
|
1185 |
+
while (breakPoint < max) {
|
1186 |
+
indexes.push(breakPoint);
|
1187 |
+
breakPoint = counter + _.options.slidesToScroll;
|
1188 |
+
counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;
|
1189 |
+
}
|
1190 |
+
|
1191 |
+
return indexes;
|
1192 |
+
|
1193 |
+
};
|
1194 |
+
|
1195 |
+
Slick.prototype.getSlick = function() {
|
1196 |
+
|
1197 |
+
return this;
|
1198 |
+
|
1199 |
+
};
|
1200 |
+
|
1201 |
+
Slick.prototype.getSlideCount = function() {
|
1202 |
+
|
1203 |
+
var _ = this,
|
1204 |
+
slidesTraversed, swipedSlide, centerOffset;
|
1205 |
+
|
1206 |
+
centerOffset = _.options.centerMode === true ? _.slideWidth * Math.floor(_.options.slidesToShow / 2) : 0;
|
1207 |
+
|
1208 |
+
if (_.options.swipeToSlide === true) {
|
1209 |
+
_.$slideTrack.find('.slick-slide').each(function(index, slide) {
|
1210 |
+
if (slide.offsetLeft - centerOffset + ($(slide).outerWidth() / 2) > (_.swipeLeft * -1)) {
|
1211 |
+
swipedSlide = slide;
|
1212 |
+
return false;
|
1213 |
+
}
|
1214 |
+
});
|
1215 |
+
|
1216 |
+
slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;
|
1217 |
+
|
1218 |
+
return slidesTraversed;
|
1219 |
+
|
1220 |
+
} else {
|
1221 |
+
return _.options.slidesToScroll;
|
1222 |
+
}
|
1223 |
+
|
1224 |
+
};
|
1225 |
+
|
1226 |
+
Slick.prototype.goTo = Slick.prototype.slickGoTo = function(slide, dontAnimate) {
|
1227 |
+
|
1228 |
+
var _ = this;
|
1229 |
+
|
1230 |
+
_.changeSlide({
|
1231 |
+
data: {
|
1232 |
+
message: 'index',
|
1233 |
+
index: parseInt(slide)
|
1234 |
+
}
|
1235 |
+
}, dontAnimate);
|
1236 |
+
|
1237 |
+
};
|
1238 |
+
|
1239 |
+
Slick.prototype.init = function(creation) {
|
1240 |
+
|
1241 |
+
var _ = this;
|
1242 |
+
|
1243 |
+
if (!$(_.$slider).hasClass('slick-initialized')) {
|
1244 |
+
|
1245 |
+
$(_.$slider).addClass('slick-initialized');
|
1246 |
+
|
1247 |
+
_.buildRows();
|
1248 |
+
_.buildOut();
|
1249 |
+
_.setProps();
|
1250 |
+
_.startLoad();
|
1251 |
+
_.loadSlider();
|
1252 |
+
_.initializeEvents();
|
1253 |
+
_.updateArrows();
|
1254 |
+
_.updateDots();
|
1255 |
+
_.checkResponsive(true);
|
1256 |
+
_.focusHandler();
|
1257 |
+
|
1258 |
+
}
|
1259 |
+
|
1260 |
+
if (creation) {
|
1261 |
+
_.$slider.trigger('init', [_]);
|
1262 |
+
}
|
1263 |
+
|
1264 |
+
if (_.options.accessibility === true) {
|
1265 |
+
_.initADA();
|
1266 |
+
}
|
1267 |
+
|
1268 |
+
if ( _.options.autoplay ) {
|
1269 |
+
|
1270 |
+
_.paused = false;
|
1271 |
+
_.autoPlay();
|
1272 |
+
|
1273 |
+
}
|
1274 |
+
|
1275 |
+
};
|
1276 |
+
|
1277 |
+
Slick.prototype.initADA = function() {
|
1278 |
+
var _ = this;
|
1279 |
+
_.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({
|
1280 |
+
'aria-hidden': 'true',
|
1281 |
+
'tabindex': '-1'
|
1282 |
+
}).find('a, input, button, select').attr({
|
1283 |
+
'tabindex': '-1'
|
1284 |
+
});
|
1285 |
+
|
1286 |
+
_.$slideTrack.attr('role', 'listbox');
|
1287 |
+
|
1288 |
+
_.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function(i) {
|
1289 |
+
$(this).attr({
|
1290 |
+
'role': 'option',
|
1291 |
+
'aria-describedby': 'slick-slide' + _.instanceUid + i + ''
|
1292 |
+
});
|
1293 |
+
});
|
1294 |
+
|
1295 |
+
if (_.$dots !== null) {
|
1296 |
+
_.$dots.attr('role', 'tablist').find('li').each(function(i) {
|
1297 |
+
$(this).attr({
|
1298 |
+
'role': 'presentation',
|
1299 |
+
'aria-selected': 'false',
|
1300 |
+
'aria-controls': 'navigation' + _.instanceUid + i + '',
|
1301 |
+
'id': 'slick-slide' + _.instanceUid + i + ''
|
1302 |
+
});
|
1303 |
+
})
|
1304 |
+
.first().attr('aria-selected', 'true').end()
|
1305 |
+
.find('button').attr('role', 'button').end()
|
1306 |
+
.closest('div').attr('role', 'toolbar');
|
1307 |
+
}
|
1308 |
+
_.activateADA();
|
1309 |
+
|
1310 |
+
};
|
1311 |
+
|
1312 |
+
Slick.prototype.initArrowEvents = function() {
|
1313 |
+
|
1314 |
+
var _ = this;
|
1315 |
+
|
1316 |
+
if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
|
1317 |
+
_.$prevArrow
|
1318 |
+
.off('click.slick')
|
1319 |
+
.on('click.slick', {
|
1320 |
+
message: 'previous'
|
1321 |
+
}, _.changeSlide);
|
1322 |
+
_.$nextArrow
|
1323 |
+
.off('click.slick')
|
1324 |
+
.on('click.slick', {
|
1325 |
+
message: 'next'
|
1326 |
+
}, _.changeSlide);
|
1327 |
+
}
|
1328 |
+
|
1329 |
+
};
|
1330 |
+
|
1331 |
+
Slick.prototype.initDotEvents = function() {
|
1332 |
+
|
1333 |
+
var _ = this;
|
1334 |
+
|
1335 |
+
if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
|
1336 |
+
$('li', _.$dots).on('click.slick', {
|
1337 |
+
message: 'index'
|
1338 |
+
}, _.changeSlide);
|
1339 |
+
}
|
1340 |
+
|
1341 |
+
if ( _.options.dots === true && _.options.pauseOnDotsHover === true ) {
|
1342 |
+
|
1343 |
+
$('li', _.$dots)
|
1344 |
+
.on('mouseenter.slick', $.proxy(_.interrupt, _, true))
|
1345 |
+
.on('mouseleave.slick', $.proxy(_.interrupt, _, false));
|
1346 |
+
|
1347 |
+
}
|
1348 |
+
|
1349 |
+
};
|
1350 |
+
|
1351 |
+
Slick.prototype.initSlideEvents = function() {
|
1352 |
+
|
1353 |
+
var _ = this;
|
1354 |
+
|
1355 |
+
if ( _.options.pauseOnHover ) {
|
1356 |
+
|
1357 |
+
_.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));
|
1358 |
+
_.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));
|
1359 |
+
|
1360 |
+
}
|
1361 |
+
|
1362 |
+
};
|
1363 |
+
|
1364 |
+
Slick.prototype.initializeEvents = function() {
|
1365 |
+
|
1366 |
+
var _ = this;
|
1367 |
+
|
1368 |
+
_.initArrowEvents();
|
1369 |
+
|
1370 |
+
_.initDotEvents();
|
1371 |
+
_.initSlideEvents();
|
1372 |
+
|
1373 |
+
_.$list.on('touchstart.slick mousedown.slick', {
|
1374 |
+
action: 'start'
|
1375 |
+
}, _.swipeHandler);
|
1376 |
+
_.$list.on('touchmove.slick mousemove.slick', {
|
1377 |
+
action: 'move'
|
1378 |
+
}, _.swipeHandler);
|
1379 |
+
_.$list.on('touchend.slick mouseup.slick', {
|
1380 |
+
action: 'end'
|
1381 |
+
}, _.swipeHandler);
|
1382 |
+
_.$list.on('touchcancel.slick mouseleave.slick', {
|
1383 |
+
action: 'end'
|
1384 |
+
}, _.swipeHandler);
|
1385 |
+
|
1386 |
+
_.$list.on('click.slick', _.clickHandler);
|
1387 |
+
|
1388 |
+
$(document).on(_.visibilityChange, $.proxy(_.visibility, _));
|
1389 |
+
|
1390 |
+
if (_.options.accessibility === true) {
|
1391 |
+
_.$list.on('keydown.slick', _.keyHandler);
|
1392 |
+
}
|
1393 |
+
|
1394 |
+
if (_.options.focusOnSelect === true) {
|
1395 |
+
$(_.$slideTrack).children().on('click.slick', _.selectHandler);
|
1396 |
+
}
|
1397 |
+
|
1398 |
+
$(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));
|
1399 |
+
|
1400 |
+
$(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));
|
1401 |
+
|
1402 |
+
$('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);
|
1403 |
+
|
1404 |
+
$(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);
|
1405 |
+
$(document).on('ready.slick.slick-' + _.instanceUid, _.setPosition);
|
1406 |
+
|
1407 |
+
};
|
1408 |
+
|
1409 |
+
Slick.prototype.initUI = function() {
|
1410 |
+
|
1411 |
+
var _ = this;
|
1412 |
+
|
1413 |
+
if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
|
1414 |
+
|
1415 |
+
_.$prevArrow.show();
|
1416 |
+
_.$nextArrow.show();
|
1417 |
+
|
1418 |
+
}
|
1419 |
+
|
1420 |
+
if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
|
1421 |
+
|
1422 |
+
_.$dots.show();
|
1423 |
+
|
1424 |
+
}
|
1425 |
+
|
1426 |
+
};
|
1427 |
+
|
1428 |
+
Slick.prototype.keyHandler = function(event) {
|
1429 |
+
|
1430 |
+
var _ = this;
|
1431 |
+
//Dont slide if the cursor is inside the form fields and arrow keys are pressed
|
1432 |
+
if(!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
|
1433 |
+
if (event.keyCode === 37 && _.options.accessibility === true) {
|
1434 |
+
_.changeSlide({
|
1435 |
+
data: {
|
1436 |
+
message: _.options.rtl === true ? 'next' : 'previous'
|
1437 |
+
}
|
1438 |
+
});
|
1439 |
+
} else if (event.keyCode === 39 && _.options.accessibility === true) {
|
1440 |
+
_.changeSlide({
|
1441 |
+
data: {
|
1442 |
+
message: _.options.rtl === true ? 'previous' : 'next'
|
1443 |
+
}
|
1444 |
+
});
|
1445 |
+
}
|
1446 |
+
}
|
1447 |
+
|
1448 |
+
};
|
1449 |
+
|
1450 |
+
Slick.prototype.lazyLoad = function() {
|
1451 |
+
|
1452 |
+
var _ = this,
|
1453 |
+
loadRange, cloneRange, rangeStart, rangeEnd;
|
1454 |
+
|
1455 |
+
function loadImages(imagesScope) {
|
1456 |
+
|
1457 |
+
$('img[data-lazy]', imagesScope).each(function() {
|
1458 |
+
|
1459 |
+
var image = $(this),
|
1460 |
+
imageSource = $(this).attr('data-lazy'),
|
1461 |
+
imageToLoad = document.createElement('img');
|
1462 |
+
|
1463 |
+
imageToLoad.onload = function() {
|
1464 |
+
|
1465 |
+
image
|
1466 |
+
.animate({ opacity: 0 }, 100, function() {
|
1467 |
+
image
|
1468 |
+
.attr('src', imageSource)
|
1469 |
+
.animate({ opacity: 1 }, 200, function() {
|
1470 |
+
image
|
1471 |
+
.removeAttr('data-lazy')
|
1472 |
+
.removeClass('slick-loading');
|
1473 |
+
});
|
1474 |
+
_.$slider.trigger('lazyLoaded', [_, image, imageSource]);
|
1475 |
+
});
|
1476 |
+
|
1477 |
+
};
|
1478 |
+
|
1479 |
+
imageToLoad.onerror = function() {
|
1480 |
+
|
1481 |
+
image
|
1482 |
+
.removeAttr( 'data-lazy' )
|
1483 |
+
.removeClass( 'slick-loading' )
|
1484 |
+
.addClass( 'slick-lazyload-error' );
|
1485 |
+
|
1486 |
+
_.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
|
1487 |
+
|
1488 |
+
};
|
1489 |
+
|
1490 |
+
imageToLoad.src = imageSource;
|
1491 |
+
|
1492 |
+
});
|
1493 |
+
|
1494 |
+
}
|
1495 |
+
|
1496 |
+
if (_.options.centerMode === true) {
|
1497 |
+
if (_.options.infinite === true) {
|
1498 |
+
rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);
|
1499 |
+
rangeEnd = rangeStart + _.options.slidesToShow + 2;
|
1500 |
+
} else {
|
1501 |
+
rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));
|
1502 |
+
rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;
|
1503 |
+
}
|
1504 |
+
} else {
|
1505 |
+
rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;
|
1506 |
+
rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);
|
1507 |
+
if (_.options.fade === true) {
|
1508 |
+
if (rangeStart > 0) rangeStart--;
|
1509 |
+
if (rangeEnd <= _.slideCount) rangeEnd++;
|
1510 |
+
}
|
1511 |
+
}
|
1512 |
+
|
1513 |
+
loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);
|
1514 |
+
loadImages(loadRange);
|
1515 |
+
|
1516 |
+
if (_.slideCount <= _.options.slidesToShow) {
|
1517 |
+
cloneRange = _.$slider.find('.slick-slide');
|
1518 |
+
loadImages(cloneRange);
|
1519 |
+
} else
|
1520 |
+
if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {
|
1521 |
+
cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);
|
1522 |
+
loadImages(cloneRange);
|
1523 |
+
} else if (_.currentSlide === 0) {
|
1524 |
+
cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);
|
1525 |
+
loadImages(cloneRange);
|
1526 |
+
}
|
1527 |
+
|
1528 |
+
};
|
1529 |
+
|
1530 |
+
Slick.prototype.loadSlider = function() {
|
1531 |
+
|
1532 |
+
var _ = this;
|
1533 |
+
|
1534 |
+
_.setPosition();
|
1535 |
+
|
1536 |
+
_.$slideTrack.css({
|
1537 |
+
opacity: 1
|
1538 |
+
});
|
1539 |
+
|
1540 |
+
_.$slider.removeClass('slick-loading');
|
1541 |
+
|
1542 |
+
_.initUI();
|
1543 |
+
|
1544 |
+
if (_.options.lazyLoad === 'progressive') {
|
1545 |
+
_.progressiveLazyLoad();
|
1546 |
+
}
|
1547 |
+
|
1548 |
+
};
|
1549 |
+
|
1550 |
+
Slick.prototype.next = Slick.prototype.slickNext = function() {
|
1551 |
+
|
1552 |
+
var _ = this;
|
1553 |
+
|
1554 |
+
_.changeSlide({
|
1555 |
+
data: {
|
1556 |
+
message: 'next'
|
1557 |
+
}
|
1558 |
+
});
|
1559 |
+
|
1560 |
+
};
|
1561 |
+
|
1562 |
+
Slick.prototype.orientationChange = function() {
|
1563 |
+
|
1564 |
+
var _ = this;
|
1565 |
+
|
1566 |
+
_.checkResponsive();
|
1567 |
+
_.setPosition();
|
1568 |
+
|
1569 |
+
};
|
1570 |
+
|
1571 |
+
Slick.prototype.pause = Slick.prototype.slickPause = function() {
|
1572 |
+
|
1573 |
+
var _ = this;
|
1574 |
+
|
1575 |
+
_.autoPlayClear();
|
1576 |
+
_.paused = true;
|
1577 |
+
|
1578 |
+
};
|
1579 |
+
|
1580 |
+
Slick.prototype.play = Slick.prototype.slickPlay = function() {
|
1581 |
+
|
1582 |
+
var _ = this;
|
1583 |
+
|
1584 |
+
_.autoPlay();
|
1585 |
+
_.options.autoplay = true;
|
1586 |
+
_.paused = false;
|
1587 |
+
_.focussed = false;
|
1588 |
+
_.interrupted = false;
|
1589 |
+
|
1590 |
+
};
|
1591 |
+
|
1592 |
+
Slick.prototype.postSlide = function(index) {
|
1593 |
+
|
1594 |
+
var _ = this;
|
1595 |
+
|
1596 |
+
if( !_.unslicked ) {
|
1597 |
+
|
1598 |
+
_.$slider.trigger('afterChange', [_, index]);
|
1599 |
+
|
1600 |
+
_.animating = false;
|
1601 |
+
|
1602 |
+
_.setPosition();
|
1603 |
+
|
1604 |
+
_.swipeLeft = null;
|
1605 |
+
|
1606 |
+
if ( _.options.autoplay ) {
|
1607 |
+
_.autoPlay();
|
1608 |
+
}
|
1609 |
+
|
1610 |
+
if (_.options.accessibility === true) {
|
1611 |
+
_.initADA();
|
1612 |
+
}
|
1613 |
+
|
1614 |
+
}
|
1615 |
+
|
1616 |
+
};
|
1617 |
+
|
1618 |
+
Slick.prototype.prev = Slick.prototype.slickPrev = function() {
|
1619 |
+
|
1620 |
+
var _ = this;
|
1621 |
+
|
1622 |
+
_.changeSlide({
|
1623 |
+
data: {
|
1624 |
+
message: 'previous'
|
1625 |
+
}
|
1626 |
+
});
|
1627 |
+
|
1628 |
+
};
|
1629 |
+
|
1630 |
+
Slick.prototype.preventDefault = function(event) {
|
1631 |
+
|
1632 |
+
event.preventDefault();
|
1633 |
+
|
1634 |
+
};
|
1635 |
+
|
1636 |
+
Slick.prototype.progressiveLazyLoad = function( tryCount ) {
|
1637 |
+
|
1638 |
+
tryCount = tryCount || 1;
|
1639 |
+
|
1640 |
+
var _ = this,
|
1641 |
+
$imgsToLoad = $( 'img[data-lazy]', _.$slider ),
|
1642 |
+
image,
|
1643 |
+
imageSource,
|
1644 |
+
imageToLoad;
|
1645 |
+
|
1646 |
+
if ( $imgsToLoad.length ) {
|
1647 |
+
|
1648 |
+
image = $imgsToLoad.first();
|
1649 |
+
imageSource = image.attr('data-lazy');
|
1650 |
+
imageToLoad = document.createElement('img');
|
1651 |
+
|
1652 |
+
imageToLoad.onload = function() {
|
1653 |
+
|
1654 |
+
image
|
1655 |
+
.attr( 'src', imageSource )
|
1656 |
+
.removeAttr('data-lazy')
|
1657 |
+
.removeClass('slick-loading');
|
1658 |
+
|
1659 |
+
if ( _.options.adaptiveHeight === true ) {
|
1660 |
+
_.setPosition();
|
1661 |
+
}
|
1662 |
+
|
1663 |
+
_.$slider.trigger('lazyLoaded', [ _, image, imageSource ]);
|
1664 |
+
_.progressiveLazyLoad();
|
1665 |
+
|
1666 |
+
};
|
1667 |
+
|
1668 |
+
imageToLoad.onerror = function() {
|
1669 |
+
|
1670 |
+
if ( tryCount < 3 ) {
|
1671 |
+
|
1672 |
+
/**
|
1673 |
+
* try to load the image 3 times,
|
1674 |
+
* leave a slight delay so we don't get
|
1675 |
+
* servers blocking the request.
|
1676 |
+
*/
|
1677 |
+
setTimeout( function() {
|
1678 |
+
_.progressiveLazyLoad( tryCount + 1 );
|
1679 |
+
}, 500 );
|
1680 |
+
|
1681 |
+
} else {
|
1682 |
+
|
1683 |
+
image
|
1684 |
+
.removeAttr( 'data-lazy' )
|
1685 |
+
.removeClass( 'slick-loading' )
|
1686 |
+
.addClass( 'slick-lazyload-error' );
|
1687 |
+
|
1688 |
+
_.$slider.trigger('lazyLoadError', [ _, image, imageSource ]);
|
1689 |
+
|
1690 |
+
_.progressiveLazyLoad();
|
1691 |
+
|
1692 |
+
}
|
1693 |
+
|
1694 |
+
};
|
1695 |
+
|
1696 |
+
imageToLoad.src = imageSource;
|
1697 |
+
|
1698 |
+
} else {
|
1699 |
+
|
1700 |
+
_.$slider.trigger('allImagesLoaded', [ _ ]);
|
1701 |
+
|
1702 |
+
}
|
1703 |
+
|
1704 |
+
};
|
1705 |
+
|
1706 |
+
Slick.prototype.refresh = function( initializing ) {
|
1707 |
+
|
1708 |
+
var _ = this, currentSlide, lastVisibleIndex;
|
1709 |
+
|
1710 |
+
lastVisibleIndex = _.slideCount - _.options.slidesToShow;
|
1711 |
+
|
1712 |
+
// in non-infinite sliders, we don't want to go past the
|
1713 |
+
// last visible index.
|
1714 |
+
if( !_.options.infinite && ( _.currentSlide > lastVisibleIndex )) {
|
1715 |
+
_.currentSlide = lastVisibleIndex;
|
1716 |
+
}
|
1717 |
+
|
1718 |
+
// if less slides than to show, go to start.
|
1719 |
+
if ( _.slideCount <= _.options.slidesToShow ) {
|
1720 |
+
_.currentSlide = 0;
|
1721 |
+
|
1722 |
+
}
|
1723 |
+
|
1724 |
+
currentSlide = _.currentSlide;
|
1725 |
+
|
1726 |
+
_.destroy(true);
|
1727 |
+
|
1728 |
+
$.extend(_, _.initials, { currentSlide: currentSlide });
|
1729 |
+
|
1730 |
+
_.init();
|
1731 |
+
|
1732 |
+
if( !initializing ) {
|
1733 |
+
|
1734 |
+
_.changeSlide({
|
1735 |
+
data: {
|
1736 |
+
message: 'index',
|
1737 |
+
index: currentSlide
|
1738 |
+
}
|
1739 |
+
}, false);
|
1740 |
+
|
1741 |
+
}
|
1742 |
+
|
1743 |
+
};
|
1744 |
+
|
1745 |
+
Slick.prototype.registerBreakpoints = function() {
|
1746 |
+
|
1747 |
+
var _ = this, breakpoint, currentBreakpoint, l,
|
1748 |
+
responsiveSettings = _.options.responsive || null;
|
1749 |
+
|
1750 |
+
if ( $.type(responsiveSettings) === 'array' && responsiveSettings.length ) {
|
1751 |
+
|
1752 |
+
_.respondTo = _.options.respondTo || 'window';
|
1753 |
+
|
1754 |
+
for ( breakpoint in responsiveSettings ) {
|
1755 |
+
|
1756 |
+
l = _.breakpoints.length-1;
|
1757 |
+
currentBreakpoint = responsiveSettings[breakpoint].breakpoint;
|
1758 |
+
|
1759 |
+
if (responsiveSettings.hasOwnProperty(breakpoint)) {
|
1760 |
+
|
1761 |
+
// loop through the breakpoints and cut out any existing
|
1762 |
+
// ones with the same breakpoint number, we don't want dupes.
|
1763 |
+
while( l >= 0 ) {
|
1764 |
+
if( _.breakpoints[l] && _.breakpoints[l] === currentBreakpoint ) {
|
1765 |
+
_.breakpoints.splice(l,1);
|
1766 |
+
}
|
1767 |
+
l--;
|
1768 |
+
}
|
1769 |
+
|
1770 |
+
_.breakpoints.push(currentBreakpoint);
|
1771 |
+
_.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;
|
1772 |
+
|
1773 |
+
}
|
1774 |
+
|
1775 |
+
}
|
1776 |
+
|
1777 |
+
_.breakpoints.sort(function(a, b) {
|
1778 |
+
return ( _.options.mobileFirst ) ? a-b : b-a;
|
1779 |
+
});
|
1780 |
+
|
1781 |
+
}
|
1782 |
+
|
1783 |
+
};
|
1784 |
+
|
1785 |
+
Slick.prototype.reinit = function() {
|
1786 |
+
|
1787 |
+
var _ = this;
|
1788 |
+
|
1789 |
+
_.$slides =
|
1790 |
+
_.$slideTrack
|
1791 |
+
.children(_.options.slide)
|
1792 |
+
.addClass('slick-slide');
|
1793 |
+
|
1794 |
+
_.slideCount = _.$slides.length;
|
1795 |
+
|
1796 |
+
if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {
|
1797 |
+
_.currentSlide = _.currentSlide - _.options.slidesToScroll;
|
1798 |
+
}
|
1799 |
+
|
1800 |
+
if (_.slideCount <= _.options.slidesToShow) {
|
1801 |
+
_.currentSlide = 0;
|
1802 |
+
}
|
1803 |
+
|
1804 |
+
_.registerBreakpoints();
|
1805 |
+
|
1806 |
+
_.setProps();
|
1807 |
+
_.setupInfinite();
|
1808 |
+
_.buildArrows();
|
1809 |
+
_.updateArrows();
|
1810 |
+
_.initArrowEvents();
|
1811 |
+
_.buildDots();
|
1812 |
+
_.updateDots();
|
1813 |
+
_.initDotEvents();
|
1814 |
+
_.cleanUpSlideEvents();
|
1815 |
+
_.initSlideEvents();
|
1816 |
+
|
1817 |
+
_.checkResponsive(false, true);
|
1818 |
+
|
1819 |
+
if (_.options.focusOnSelect === true) {
|
1820 |
+
$(_.$slideTrack).children().on('click.slick', _.selectHandler);
|
1821 |
+
}
|
1822 |
+
|
1823 |
+
_.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);
|
1824 |
+
|
1825 |
+
_.setPosition();
|
1826 |
+
_.focusHandler();
|
1827 |
+
|
1828 |
+
_.paused = !_.options.autoplay;
|
1829 |
+
_.autoPlay();
|
1830 |
+
|
1831 |
+
_.$slider.trigger('reInit', [_]);
|
1832 |
+
|
1833 |
+
};
|
1834 |
+
|
1835 |
+
Slick.prototype.resize = function() {
|
1836 |
+
|
1837 |
+
var _ = this;
|
1838 |
+
|
1839 |
+
if ($(window).width() !== _.windowWidth) {
|
1840 |
+
clearTimeout(_.windowDelay);
|
1841 |
+
_.windowDelay = window.setTimeout(function() {
|
1842 |
+
_.windowWidth = $(window).width();
|
1843 |
+
_.checkResponsive();
|
1844 |
+
if( !_.unslicked ) { _.setPosition(); }
|
1845 |
+
}, 50);
|
1846 |
+
}
|
1847 |
+
};
|
1848 |
+
|
1849 |
+
Slick.prototype.removeSlide = Slick.prototype.slickRemove = function(index, removeBefore, removeAll) {
|
1850 |
+
|
1851 |
+
var _ = this;
|
1852 |
+
|
1853 |
+
if (typeof(index) === 'boolean') {
|
1854 |
+
removeBefore = index;
|
1855 |
+
index = removeBefore === true ? 0 : _.slideCount - 1;
|
1856 |
+
} else {
|
1857 |
+
index = removeBefore === true ? --index : index;
|
1858 |
+
}
|
1859 |
+
|
1860 |
+
if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {
|
1861 |
+
return false;
|
1862 |
+
}
|
1863 |
+
|
1864 |
+
_.unload();
|
1865 |
+
|
1866 |
+
if (removeAll === true) {
|
1867 |
+
_.$slideTrack.children().remove();
|
1868 |
+
} else {
|
1869 |
+
_.$slideTrack.children(this.options.slide).eq(index).remove();
|
1870 |
+
}
|
1871 |
+
|
1872 |
+
_.$slides = _.$slideTrack.children(this.options.slide);
|
1873 |
+
|
1874 |
+
_.$slideTrack.children(this.options.slide).detach();
|
1875 |
+
|
1876 |
+
_.$slideTrack.append(_.$slides);
|
1877 |
+
|
1878 |
+
_.$slidesCache = _.$slides;
|
1879 |
+
|
1880 |
+
_.reinit();
|
1881 |
+
|
1882 |
+
};
|
1883 |
+
|
1884 |
+
Slick.prototype.setCSS = function(position) {
|
1885 |
+
|
1886 |
+
var _ = this,
|
1887 |
+
positionProps = {},
|
1888 |
+
x, y;
|
1889 |
+
|
1890 |
+
if (_.options.rtl === true) {
|
1891 |
+
position = -position;
|
1892 |
+
}
|
1893 |
+
x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';
|
1894 |
+
y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';
|
1895 |
+
|
1896 |
+
positionProps[_.positionProp] = position;
|
1897 |
+
|
1898 |
+
if (_.transformsEnabled === false) {
|
1899 |
+
_.$slideTrack.css(positionProps);
|
1900 |
+
} else {
|
1901 |
+
positionProps = {};
|
1902 |
+
if (_.cssTransitions === false) {
|
1903 |
+
positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';
|
1904 |
+
_.$slideTrack.css(positionProps);
|
1905 |
+
} else {
|
1906 |
+
positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';
|
1907 |
+
_.$slideTrack.css(positionProps);
|
1908 |
+
}
|
1909 |
+
}
|
1910 |
+
|
1911 |
+
};
|
1912 |
+
|
1913 |
+
Slick.prototype.setDimensions = function() {
|
1914 |
+
|
1915 |
+
var _ = this;
|
1916 |
+
|
1917 |
+
if (_.options.vertical === false) {
|
1918 |
+
if (_.options.centerMode === true) {
|
1919 |
+
_.$list.css({
|
1920 |
+
padding: ('0px ' + _.options.centerPadding)
|
1921 |
+
});
|
1922 |
+
}
|
1923 |
+
} else {
|
1924 |
+
_.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);
|
1925 |
+
if (_.options.centerMode === true) {
|
1926 |
+
_.$list.css({
|
1927 |
+
padding: (_.options.centerPadding + ' 0px')
|
1928 |
+
});
|
1929 |
+
}
|
1930 |
+
}
|
1931 |
+
|
1932 |
+
_.listWidth = _.$list.width();
|
1933 |
+
_.listHeight = _.$list.height();
|
1934 |
+
|
1935 |
+
|
1936 |
+
if (_.options.vertical === false && _.options.variableWidth === false) {
|
1937 |
+
_.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);
|
1938 |
+
_.$slideTrack.width(Math.ceil((_.slideWidth * _.$slideTrack.children('.slick-slide').length)));
|
1939 |
+
|
1940 |
+
} else if (_.options.variableWidth === true) {
|
1941 |
+
_.$slideTrack.width(5000 * _.slideCount);
|
1942 |
+
} else {
|
1943 |
+
_.slideWidth = Math.ceil(_.listWidth);
|
1944 |
+
_.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length)));
|
1945 |
+
}
|
1946 |
+
|
1947 |
+
var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();
|
1948 |
+
if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);
|
1949 |
+
|
1950 |
+
};
|
1951 |
+
|
1952 |
+
Slick.prototype.setFade = function() {
|
1953 |
+
|
1954 |
+
var _ = this,
|
1955 |
+
targetLeft;
|
1956 |
+
|
1957 |
+
_.$slides.each(function(index, element) {
|
1958 |
+
targetLeft = (_.slideWidth * index) * -1;
|
1959 |
+
if (_.options.rtl === true) {
|
1960 |
+
$(element).css({
|
1961 |
+
position: 'relative',
|
1962 |
+
right: targetLeft,
|
1963 |
+
top: 0,
|
1964 |
+
zIndex: _.options.zIndex - 2,
|
1965 |
+
opacity: 0
|
1966 |
+
});
|
1967 |
+
} else {
|
1968 |
+
$(element).css({
|
1969 |
+
position: 'relative',
|
1970 |
+
left: targetLeft,
|
1971 |
+
top: 0,
|
1972 |
+
zIndex: _.options.zIndex - 2,
|
1973 |
+
opacity: 0
|
1974 |
+
});
|
1975 |
+
}
|
1976 |
+
});
|
1977 |
+
|
1978 |
+
_.$slides.eq(_.currentSlide).css({
|
1979 |
+
zIndex: _.options.zIndex - 1,
|
1980 |
+
opacity: 1
|
1981 |
+
});
|
1982 |
+
|
1983 |
+
};
|
1984 |
+
|
1985 |
+
Slick.prototype.setHeight = function() {
|
1986 |
+
|
1987 |
+
var _ = this;
|
1988 |
+
|
1989 |
+
if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {
|
1990 |
+
var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);
|
1991 |
+
_.$list.css('height', targetHeight);
|
1992 |
+
}
|
1993 |
+
|
1994 |
+
};
|
1995 |
+
|
1996 |
+
Slick.prototype.setOption =
|
1997 |
+
Slick.prototype.slickSetOption = function() {
|
1998 |
+
|
1999 |
+
/**
|
2000 |
+
* accepts arguments in format of:
|
2001 |
+
*
|
2002 |
+
* - for changing a single option's value:
|
2003 |
+
* .slick("setOption", option, value, refresh )
|
2004 |
+
*
|
2005 |
+
* - for changing a set of responsive options:
|
2006 |
+
* .slick("setOption", 'responsive', [{}, ...], refresh )
|
2007 |
+
*
|
2008 |
+
* - for updating multiple values at once (not responsive)
|
2009 |
+
* .slick("setOption", { 'option': value, ... }, refresh )
|
2010 |
+
*/
|
2011 |
+
|
2012 |
+
var _ = this, l, item, option, value, refresh = false, type;
|
2013 |
+
|
2014 |
+
if( $.type( arguments[0] ) === 'object' ) {
|
2015 |
+
|
2016 |
+
option = arguments[0];
|
2017 |
+
refresh = arguments[1];
|
2018 |
+
type = 'multiple';
|
2019 |
+
|
2020 |
+
} else if ( $.type( arguments[0] ) === 'string' ) {
|
2021 |
+
|
2022 |
+
option = arguments[0];
|
2023 |
+
value = arguments[1];
|
2024 |
+
refresh = arguments[2];
|
2025 |
+
|
2026 |
+
if ( arguments[0] === 'responsive' && $.type( arguments[1] ) === 'array' ) {
|
2027 |
+
|
2028 |
+
type = 'responsive';
|
2029 |
+
|
2030 |
+
} else if ( typeof arguments[1] !== 'undefined' ) {
|
2031 |
+
|
2032 |
+
type = 'single';
|
2033 |
+
|
2034 |
+
}
|
2035 |
+
|
2036 |
+
}
|
2037 |
+
|
2038 |
+
if ( type === 'single' ) {
|
2039 |
+
|
2040 |
+
_.options[option] = value;
|
2041 |
+
|
2042 |
+
|
2043 |
+
} else if ( type === 'multiple' ) {
|
2044 |
+
|
2045 |
+
$.each( option , function( opt, val ) {
|
2046 |
+
|
2047 |
+
_.options[opt] = val;
|
2048 |
+
|
2049 |
+
});
|
2050 |
+
|
2051 |
+
|
2052 |
+
} else if ( type === 'responsive' ) {
|
2053 |
+
|
2054 |
+
for ( item in value ) {
|
2055 |
+
|
2056 |
+
if( $.type( _.options.responsive ) !== 'array' ) {
|
2057 |
+
|
2058 |
+
_.options.responsive = [ value[item] ];
|
2059 |
+
|
2060 |
+
} else {
|
2061 |
+
|
2062 |
+
l = _.options.responsive.length-1;
|
2063 |
+
|
2064 |
+
// loop through the responsive object and splice out duplicates.
|
2065 |
+
while( l >= 0 ) {
|
2066 |
+
|
2067 |
+
if( _.options.responsive[l].breakpoint === value[item].breakpoint ) {
|
2068 |
+
|
2069 |
+
_.options.responsive.splice(l,1);
|
2070 |
+
|
2071 |
+
}
|
2072 |
+
|
2073 |
+
l--;
|
2074 |
+
|
2075 |
+
}
|
2076 |
+
|
2077 |
+
_.options.responsive.push( value[item] );
|
2078 |
+
|
2079 |
+
}
|
2080 |
+
|
2081 |
+
}
|
2082 |
+
|
2083 |
+
}
|
2084 |
+
|
2085 |
+
if ( refresh ) {
|
2086 |
+
|
2087 |
+
_.unload();
|
2088 |
+
_.reinit();
|
2089 |
+
|
2090 |
+
}
|
2091 |
+
|
2092 |
+
};
|
2093 |
+
|
2094 |
+
Slick.prototype.setPosition = function() {
|
2095 |
+
|
2096 |
+
var _ = this;
|
2097 |
+
|
2098 |
+
_.setDimensions();
|
2099 |
+
|
2100 |
+
_.setHeight();
|
2101 |
+
|
2102 |
+
if (_.options.fade === false) {
|
2103 |
+
_.setCSS(_.getLeft(_.currentSlide));
|
2104 |
+
} else {
|
2105 |
+
_.setFade();
|
2106 |
+
}
|
2107 |
+
|
2108 |
+
_.$slider.trigger('setPosition', [_]);
|
2109 |
+
|
2110 |
+
};
|
2111 |
+
|
2112 |
+
Slick.prototype.setProps = function() {
|
2113 |
+
|
2114 |
+
var _ = this,
|
2115 |
+
bodyStyle = document.body.style;
|
2116 |
+
|
2117 |
+
_.positionProp = _.options.vertical === true ? 'top' : 'left';
|
2118 |
+
|
2119 |
+
if (_.positionProp === 'top') {
|
2120 |
+
_.$slider.addClass('slick-vertical');
|
2121 |
+
} else {
|
2122 |
+
_.$slider.removeClass('slick-vertical');
|
2123 |
+
}
|
2124 |
+
|
2125 |
+
if (bodyStyle.WebkitTransition !== undefined ||
|
2126 |
+
bodyStyle.MozTransition !== undefined ||
|
2127 |
+
bodyStyle.msTransition !== undefined) {
|
2128 |
+
if (_.options.useCSS === true) {
|
2129 |
+
_.cssTransitions = true;
|
2130 |
+
}
|
2131 |
+
}
|
2132 |
+
|
2133 |
+
if ( _.options.fade ) {
|
2134 |
+
if ( typeof _.options.zIndex === 'number' ) {
|
2135 |
+
if( _.options.zIndex < 3 ) {
|
2136 |
+
_.options.zIndex = 3;
|
2137 |
+
}
|
2138 |
+
} else {
|
2139 |
+
_.options.zIndex = _.defaults.zIndex;
|
2140 |
+
}
|
2141 |
+
}
|
2142 |
+
|
2143 |
+
if (bodyStyle.OTransform !== undefined) {
|
2144 |
+
_.animType = 'OTransform';
|
2145 |
+
_.transformType = '-o-transform';
|
2146 |
+
_.transitionType = 'OTransition';
|
2147 |
+
if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
|
2148 |
+
}
|
2149 |
+
if (bodyStyle.MozTransform !== undefined) {
|
2150 |
+
_.animType = 'MozTransform';
|
2151 |
+
_.transformType = '-moz-transform';
|
2152 |
+
_.transitionType = 'MozTransition';
|
2153 |
+
if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;
|
2154 |
+
}
|
2155 |
+
if (bodyStyle.webkitTransform !== undefined) {
|
2156 |
+
_.animType = 'webkitTransform';
|
2157 |
+
_.transformType = '-webkit-transform';
|
2158 |
+
_.transitionType = 'webkitTransition';
|
2159 |
+
if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;
|
2160 |
+
}
|
2161 |
+
if (bodyStyle.msTransform !== undefined) {
|
2162 |
+
_.animType = 'msTransform';
|
2163 |
+
_.transformType = '-ms-transform';
|
2164 |
+
_.transitionType = 'msTransition';
|
2165 |
+
if (bodyStyle.msTransform === undefined) _.animType = false;
|
2166 |
+
}
|
2167 |
+
if (bodyStyle.transform !== undefined && _.animType !== false) {
|
2168 |
+
_.animType = 'transform';
|
2169 |
+
_.transformType = 'transform';
|
2170 |
+
_.transitionType = 'transition';
|
2171 |
+
}
|
2172 |
+
_.transformsEnabled = _.options.useTransform && (_.animType !== null && _.animType !== false);
|
2173 |
+
};
|
2174 |
+
|
2175 |
+
|
2176 |
+
Slick.prototype.setSlideClasses = function(index) {
|
2177 |
+
|
2178 |
+
var _ = this,
|
2179 |
+
centerOffset, allSlides, indexOffset, remainder;
|
2180 |
+
|
2181 |
+
allSlides = _.$slider
|
2182 |
+
.find('.slick-slide')
|
2183 |
+
.removeClass('slick-active slick-center slick-current')
|
2184 |
+
.attr('aria-hidden', 'true');
|
2185 |
+
|
2186 |
+
_.$slides
|
2187 |
+
.eq(index)
|
2188 |
+
.addClass('slick-current');
|
2189 |
+
|
2190 |
+
if (_.options.centerMode === true) {
|
2191 |
+
|
2192 |
+
centerOffset = Math.floor(_.options.slidesToShow / 2);
|
2193 |
+
|
2194 |
+
if (_.options.infinite === true) {
|
2195 |
+
|
2196 |
+
if (index >= centerOffset && index <= (_.slideCount - 1) - centerOffset) {
|
2197 |
+
|
2198 |
+
_.$slides
|
2199 |
+
.slice(index - centerOffset, index + centerOffset + 1)
|
2200 |
+
.addClass('slick-active')
|
2201 |
+
.attr('aria-hidden', 'false');
|
2202 |
+
|
2203 |
+
} else {
|
2204 |
+
|
2205 |
+
indexOffset = _.options.slidesToShow + index;
|
2206 |
+
allSlides
|
2207 |
+
.slice(indexOffset - centerOffset + 1, indexOffset + centerOffset + 2)
|
2208 |
+
.addClass('slick-active')
|
2209 |
+
.attr('aria-hidden', 'false');
|
2210 |
+
|
2211 |
+
}
|
2212 |
+
|
2213 |
+
if (index === 0) {
|
2214 |
+
|
2215 |
+
allSlides
|
2216 |
+
.eq(allSlides.length - 1 - _.options.slidesToShow)
|
2217 |
+
.addClass('slick-center');
|
2218 |
+
|
2219 |
+
} else if (index === _.slideCount - 1) {
|
2220 |
+
|
2221 |
+
allSlides
|
2222 |
+
.eq(_.options.slidesToShow)
|
2223 |
+
.addClass('slick-center');
|
2224 |
+
|
2225 |
+
}
|
2226 |
+
|
2227 |
+
}
|
2228 |
+
|
2229 |
+
_.$slides
|
2230 |
+
.eq(index)
|
2231 |
+
.addClass('slick-center');
|
2232 |
+
|
2233 |
+
} else {
|
2234 |
+
|
2235 |
+
if (index >= 0 && index <= (_.slideCount - _.options.slidesToShow)) {
|
2236 |
+
|
2237 |
+
_.$slides
|
2238 |
+
.slice(index, index + _.options.slidesToShow)
|
2239 |
+
.addClass('slick-active')
|
2240 |
+
.attr('aria-hidden', 'false');
|
2241 |
+
|
2242 |
+
} else if (allSlides.length <= _.options.slidesToShow) {
|
2243 |
+
|
2244 |
+
allSlides
|
2245 |
+
.addClass('slick-active')
|
2246 |
+
.attr('aria-hidden', 'false');
|
2247 |
+
|
2248 |
+
} else {
|
2249 |
+
|
2250 |
+
remainder = _.slideCount % _.options.slidesToShow;
|
2251 |
+
indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;
|
2252 |
+
|
2253 |
+
if (_.options.slidesToShow == _.options.slidesToScroll && (_.slideCount - index) < _.options.slidesToShow) {
|
2254 |
+
|
2255 |
+
allSlides
|
2256 |
+
.slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder)
|
2257 |
+
.addClass('slick-active')
|
2258 |
+
.attr('aria-hidden', 'false');
|
2259 |
+
|
2260 |
+
} else {
|
2261 |
+
|
2262 |
+
allSlides
|
2263 |
+
.slice(indexOffset, indexOffset + _.options.slidesToShow)
|
2264 |
+
.addClass('slick-active')
|
2265 |
+
.attr('aria-hidden', 'false');
|
2266 |
+
|
2267 |
+
}
|
2268 |
+
|
2269 |
+
}
|
2270 |
+
|
2271 |
+
}
|
2272 |
+
|
2273 |
+
if (_.options.lazyLoad === 'ondemand') {
|
2274 |
+
_.lazyLoad();
|
2275 |
+
}
|
2276 |
+
|
2277 |
+
};
|
2278 |
+
|
2279 |
+
Slick.prototype.setupInfinite = function() {
|
2280 |
+
|
2281 |
+
var _ = this,
|
2282 |
+
i, slideIndex, infiniteCount;
|
2283 |
+
|
2284 |
+
if (_.options.fade === true) {
|
2285 |
+
_.options.centerMode = false;
|
2286 |
+
}
|
2287 |
+
|
2288 |
+
if (_.options.infinite === true && _.options.fade === false) {
|
2289 |
+
|
2290 |
+
slideIndex = null;
|
2291 |
+
|
2292 |
+
if (_.slideCount > _.options.slidesToShow) {
|
2293 |
+
|
2294 |
+
if (_.options.centerMode === true) {
|
2295 |
+
infiniteCount = _.options.slidesToShow + 1;
|
2296 |
+
} else {
|
2297 |
+
infiniteCount = _.options.slidesToShow;
|
2298 |
+
}
|
2299 |
+
|
2300 |
+
for (i = _.slideCount; i > (_.slideCount -
|
2301 |
+
infiniteCount); i -= 1) {
|
2302 |
+
slideIndex = i - 1;
|
2303 |
+
$(_.$slides[slideIndex]).clone(true).attr('id', '')
|
2304 |
+
.attr('data-slick-index', slideIndex - _.slideCount)
|
2305 |
+
.prependTo(_.$slideTrack).addClass('slick-cloned');
|
2306 |
+
}
|
2307 |
+
for (i = 0; i < infiniteCount; i += 1) {
|
2308 |
+
slideIndex = i;
|
2309 |
+
$(_.$slides[slideIndex]).clone(true).attr('id', '')
|
2310 |
+
.attr('data-slick-index', slideIndex + _.slideCount)
|
2311 |
+
.appendTo(_.$slideTrack).addClass('slick-cloned');
|
2312 |
+
}
|
2313 |
+
_.$slideTrack.find('.slick-cloned').find('[id]').each(function() {
|
2314 |
+
$(this).attr('id', '');
|
2315 |
+
});
|
2316 |
+
|
2317 |
+
}
|
2318 |
+
|
2319 |
+
}
|
2320 |
+
|
2321 |
+
};
|
2322 |
+
|
2323 |
+
Slick.prototype.interrupt = function( toggle ) {
|
2324 |
+
|
2325 |
+
var _ = this;
|
2326 |
+
|
2327 |
+
if( !toggle ) {
|
2328 |
+
_.autoPlay();
|
2329 |
+
}
|
2330 |
+
_.interrupted = toggle;
|
2331 |
+
|
2332 |
+
};
|
2333 |
+
|
2334 |
+
Slick.prototype.selectHandler = function(event) {
|
2335 |
+
|
2336 |
+
var _ = this;
|
2337 |
+
|
2338 |
+
var targetElement =
|
2339 |
+
$(event.target).is('.slick-slide') ?
|
2340 |
+
$(event.target) :
|
2341 |
+
$(event.target).parents('.slick-slide');
|
2342 |
+
|
2343 |
+
var index = parseInt(targetElement.attr('data-slick-index'));
|
2344 |
+
|
2345 |
+
if (!index) index = 0;
|
2346 |
+
|
2347 |
+
if (_.slideCount <= _.options.slidesToShow) {
|
2348 |
+
|
2349 |
+
_.setSlideClasses(index);
|
2350 |
+
_.asNavFor(index);
|
2351 |
+
return;
|
2352 |
+
|
2353 |
+
}
|
2354 |
+
|
2355 |
+
_.slideHandler(index);
|
2356 |
+
|
2357 |
+
};
|
2358 |
+
|
2359 |
+
Slick.prototype.slideHandler = function(index, sync, dontAnimate) {
|
2360 |
+
|
2361 |
+
var targetSlide, animSlide, oldSlide, slideLeft, targetLeft = null,
|
2362 |
+
_ = this, navTarget;
|
2363 |
+
|
2364 |
+
sync = sync || false;
|
2365 |
+
|
2366 |
+
if (_.animating === true && _.options.waitForAnimate === true) {
|
2367 |
+
return;
|
2368 |
+
}
|
2369 |
+
|
2370 |
+
if (_.options.fade === true && _.currentSlide === index) {
|
2371 |
+
return;
|
2372 |
+
}
|
2373 |
+
|
2374 |
+
if (_.slideCount <= _.options.slidesToShow) {
|
2375 |
+
return;
|
2376 |
+
}
|
2377 |
+
|
2378 |
+
if (sync === false) {
|
2379 |
+
_.asNavFor(index);
|
2380 |
+
}
|
2381 |
+
|
2382 |
+
targetSlide = index;
|
2383 |
+
targetLeft = _.getLeft(targetSlide);
|
2384 |
+
slideLeft = _.getLeft(_.currentSlide);
|
2385 |
+
|
2386 |
+
_.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;
|
2387 |
+
|
2388 |
+
if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {
|
2389 |
+
if (_.options.fade === false) {
|
2390 |
+
targetSlide = _.currentSlide;
|
2391 |
+
if (dontAnimate !== true) {
|
2392 |
+
_.animateSlide(slideLeft, function() {
|
2393 |
+
_.postSlide(targetSlide);
|
2394 |
+
});
|
2395 |
+
} else {
|
2396 |
+
_.postSlide(targetSlide);
|
2397 |
+
}
|
2398 |
+
}
|
2399 |
+
return;
|
2400 |
+
} else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > (_.slideCount - _.options.slidesToScroll))) {
|
2401 |
+
if (_.options.fade === false) {
|
2402 |
+
targetSlide = _.currentSlide;
|
2403 |
+
if (dontAnimate !== true) {
|
2404 |
+
_.animateSlide(slideLeft, function() {
|
2405 |
+
_.postSlide(targetSlide);
|
2406 |
+
});
|
2407 |
+
} else {
|
2408 |
+
_.postSlide(targetSlide);
|
2409 |
+
}
|
2410 |
+
}
|
2411 |
+
return;
|
2412 |
+
}
|
2413 |
+
|
2414 |
+
if ( _.options.autoplay ) {
|
2415 |
+
clearInterval(_.autoPlayTimer);
|
2416 |
+
}
|
2417 |
+
|
2418 |
+
if (targetSlide < 0) {
|
2419 |
+
if (_.slideCount % _.options.slidesToScroll !== 0) {
|
2420 |
+
animSlide = _.slideCount - (_.slideCount % _.options.slidesToScroll);
|
2421 |
+
} else {
|
2422 |
+
animSlide = _.slideCount + targetSlide;
|
2423 |
+
}
|
2424 |
+
} else if (targetSlide >= _.slideCount) {
|
2425 |
+
if (_.slideCount % _.options.slidesToScroll !== 0) {
|
2426 |
+
animSlide = 0;
|
2427 |
+
} else {
|
2428 |
+
animSlide = targetSlide - _.slideCount;
|
2429 |
+
}
|
2430 |
+
} else {
|
2431 |
+
animSlide = targetSlide;
|
2432 |
+
}
|
2433 |
+
|
2434 |
+
_.animating = true;
|
2435 |
+
|
2436 |
+
_.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);
|
2437 |
+
|
2438 |
+
oldSlide = _.currentSlide;
|
2439 |
+
_.currentSlide = animSlide;
|
2440 |
+
|
2441 |
+
_.setSlideClasses(_.currentSlide);
|
2442 |
+
|
2443 |
+
if ( _.options.asNavFor ) {
|
2444 |
+
|
2445 |
+
navTarget = _.getNavTarget();
|
2446 |
+
navTarget = navTarget.slick('getSlick');
|
2447 |
+
|
2448 |
+
if ( navTarget.slideCount <= navTarget.options.slidesToShow ) {
|
2449 |
+
navTarget.setSlideClasses(_.currentSlide);
|
2450 |
+
}
|
2451 |
+
|
2452 |
+
}
|
2453 |
+
|
2454 |
+
_.updateDots();
|
2455 |
+
_.updateArrows();
|
2456 |
+
|
2457 |
+
if (_.options.fade === true) {
|
2458 |
+
if (dontAnimate !== true) {
|
2459 |
+
|
2460 |
+
_.fadeSlideOut(oldSlide);
|
2461 |
+
|
2462 |
+
_.fadeSlide(animSlide, function() {
|
2463 |
+
_.postSlide(animSlide);
|
2464 |
+
});
|
2465 |
+
|
2466 |
+
} else {
|
2467 |
+
_.postSlide(animSlide);
|
2468 |
+
}
|
2469 |
+
_.animateHeight();
|
2470 |
+
return;
|
2471 |
+
}
|
2472 |
+
|
2473 |
+
if (dontAnimate !== true) {
|
2474 |
+
_.animateSlide(targetLeft, function() {
|
2475 |
+
_.postSlide(animSlide);
|
2476 |
+
});
|
2477 |
+
} else {
|
2478 |
+
_.postSlide(animSlide);
|
2479 |
+
}
|
2480 |
+
|
2481 |
+
};
|
2482 |
+
|
2483 |
+
Slick.prototype.startLoad = function() {
|
2484 |
+
|
2485 |
+
var _ = this;
|
2486 |
+
|
2487 |
+
if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {
|
2488 |
+
|
2489 |
+
_.$prevArrow.hide();
|
2490 |
+
_.$nextArrow.hide();
|
2491 |
+
|
2492 |
+
}
|
2493 |
+
|
2494 |
+
if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {
|
2495 |
+
|
2496 |
+
_.$dots.hide();
|
2497 |
+
|
2498 |
+
}
|
2499 |
+
|
2500 |
+
_.$slider.addClass('slick-loading');
|
2501 |
+
|
2502 |
+
};
|
2503 |
+
|
2504 |
+
Slick.prototype.swipeDirection = function() {
|
2505 |
+
|
2506 |
+
var xDist, yDist, r, swipeAngle, _ = this;
|
2507 |
+
|
2508 |
+
xDist = _.touchObject.startX - _.touchObject.curX;
|
2509 |
+
yDist = _.touchObject.startY - _.touchObject.curY;
|
2510 |
+
r = Math.atan2(yDist, xDist);
|
2511 |
+
|
2512 |
+
swipeAngle = Math.round(r * 180 / Math.PI);
|
2513 |
+
if (swipeAngle < 0) {
|
2514 |
+
swipeAngle = 360 - Math.abs(swipeAngle);
|
2515 |
+
}
|
2516 |
+
|
2517 |
+
if ((swipeAngle <= 45) && (swipeAngle >= 0)) {
|
2518 |
+
return (_.options.rtl === false ? 'left' : 'right');
|
2519 |
+
}
|
2520 |
+
if ((swipeAngle <= 360) && (swipeAngle >= 315)) {
|
2521 |
+
return (_.options.rtl === false ? 'left' : 'right');
|
2522 |
+
}
|
2523 |
+
if ((swipeAngle >= 135) && (swipeAngle <= 225)) {
|
2524 |
+
return (_.options.rtl === false ? 'right' : 'left');
|
2525 |
+
}
|
2526 |
+
if (_.options.verticalSwiping === true) {
|
2527 |
+
if ((swipeAngle >= 35) && (swipeAngle <= 135)) {
|
2528 |
+
return 'down';
|
2529 |
+
} else {
|
2530 |
+
return 'up';
|
2531 |
+
}
|
2532 |
+
}
|
2533 |
+
|
2534 |
+
return 'vertical';
|
2535 |
+
|
2536 |
+
};
|
2537 |
+
|
2538 |
+
Slick.prototype.swipeEnd = function(event) {
|
2539 |
+
|
2540 |
+
var _ = this,
|
2541 |
+
slideCount,
|
2542 |
+
direction;
|
2543 |
+
|
2544 |
+
_.dragging = false;
|
2545 |
+
_.interrupted = false;
|
2546 |
+
_.shouldClick = ( _.touchObject.swipeLength > 10 ) ? false : true;
|
2547 |
+
|
2548 |
+
if ( _.touchObject.curX === undefined ) {
|
2549 |
+
return false;
|
2550 |
+
}
|
2551 |
+
|
2552 |
+
if ( _.touchObject.edgeHit === true ) {
|
2553 |
+
_.$slider.trigger('edge', [_, _.swipeDirection() ]);
|
2554 |
+
}
|
2555 |
+
|
2556 |
+
if ( _.touchObject.swipeLength >= _.touchObject.minSwipe ) {
|
2557 |
+
|
2558 |
+
direction = _.swipeDirection();
|
2559 |
+
|
2560 |
+
switch ( direction ) {
|
2561 |
+
|
2562 |
+
case 'left':
|
2563 |
+
case 'down':
|
2564 |
+
|
2565 |
+
slideCount =
|
2566 |
+
_.options.swipeToSlide ?
|
2567 |
+
_.checkNavigable( _.currentSlide + _.getSlideCount() ) :
|
2568 |
+
_.currentSlide + _.getSlideCount();
|
2569 |
+
|
2570 |
+
_.currentDirection = 0;
|
2571 |
+
|
2572 |
+
break;
|
2573 |
+
|
2574 |
+
case 'right':
|
2575 |
+
case 'up':
|
2576 |
+
|
2577 |
+
slideCount =
|
2578 |
+
_.options.swipeToSlide ?
|
2579 |
+
_.checkNavigable( _.currentSlide - _.getSlideCount() ) :
|
2580 |
+
_.currentSlide - _.getSlideCount();
|
2581 |
+
|
2582 |
+
_.currentDirection = 1;
|
2583 |
+
|
2584 |
+
break;
|
2585 |
+
|
2586 |
+
default:
|
2587 |
+
|
2588 |
+
|
2589 |
+
}
|
2590 |
+
|
2591 |
+
if( direction != 'vertical' ) {
|
2592 |
+
|
2593 |
+
_.slideHandler( slideCount );
|
2594 |
+
_.touchObject = {};
|
2595 |
+
_.$slider.trigger('swipe', [_, direction ]);
|
2596 |
+
|
2597 |
+
}
|
2598 |
+
|
2599 |
+
} else {
|
2600 |
+
|
2601 |
+
if ( _.touchObject.startX !== _.touchObject.curX ) {
|
2602 |
+
|
2603 |
+
_.slideHandler( _.currentSlide );
|
2604 |
+
_.touchObject = {};
|
2605 |
+
|
2606 |
+
}
|
2607 |
+
|
2608 |
+
}
|
2609 |
+
|
2610 |
+
};
|
2611 |
+
|
2612 |
+
Slick.prototype.swipeHandler = function(event) {
|
2613 |
+
|
2614 |
+
var _ = this;
|
2615 |
+
|
2616 |
+
if ((_.options.swipe === false) || ('ontouchend' in document && _.options.swipe === false)) {
|
2617 |
+
return;
|
2618 |
+
} else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {
|
2619 |
+
return;
|
2620 |
+
}
|
2621 |
+
|
2622 |
+
_.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ?
|
2623 |
+
event.originalEvent.touches.length : 1;
|
2624 |
+
|
2625 |
+
_.touchObject.minSwipe = _.listWidth / _.options
|
2626 |
+
.touchThreshold;
|
2627 |
+
|
2628 |
+
if (_.options.verticalSwiping === true) {
|
2629 |
+
_.touchObject.minSwipe = _.listHeight / _.options
|
2630 |
+
.touchThreshold;
|
2631 |
+
}
|
2632 |
+
|
2633 |
+
switch (event.data.action) {
|
2634 |
+
|
2635 |
+
case 'start':
|
2636 |
+
_.swipeStart(event);
|
2637 |
+
break;
|
2638 |
+
|
2639 |
+
case 'move':
|
2640 |
+
_.swipeMove(event);
|
2641 |
+
break;
|
2642 |
+
|
2643 |
+
case 'end':
|
2644 |
+
_.swipeEnd(event);
|
2645 |
+
break;
|
2646 |
+
|
2647 |
+
}
|
2648 |
+
|
2649 |
+
};
|
2650 |
+
|
2651 |
+
Slick.prototype.swipeMove = function(event) {
|
2652 |
+
|
2653 |
+
var _ = this,
|
2654 |
+
edgeWasHit = false,
|
2655 |
+
curLeft, swipeDirection, swipeLength, positionOffset, touches;
|
2656 |
+
|
2657 |
+
touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;
|
2658 |
+
|
2659 |
+
if (!_.dragging || touches && touches.length !== 1) {
|
2660 |
+
return false;
|
2661 |
+
}
|
2662 |
+
|
2663 |
+
curLeft = _.getLeft(_.currentSlide);
|
2664 |
+
|
2665 |
+
_.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;
|
2666 |
+
_.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;
|
2667 |
+
|
2668 |
+
_.touchObject.swipeLength = Math.round(Math.sqrt(
|
2669 |
+
Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));
|
2670 |
+
|
2671 |
+
if (_.options.verticalSwiping === true) {
|
2672 |
+
_.touchObject.swipeLength = Math.round(Math.sqrt(
|
2673 |
+
Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));
|
2674 |
+
}
|
2675 |
+
|
2676 |
+
swipeDirection = _.swipeDirection();
|
2677 |
+
|
2678 |
+
if (swipeDirection === 'vertical') {
|
2679 |
+
return;
|
2680 |
+
}
|
2681 |
+
|
2682 |
+
if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {
|
2683 |
+
event.preventDefault();
|
2684 |
+
}
|
2685 |
+
|
2686 |
+
positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);
|
2687 |
+
if (_.options.verticalSwiping === true) {
|
2688 |
+
positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;
|
2689 |
+
}
|
2690 |
+
|
2691 |
+
|
2692 |
+
swipeLength = _.touchObject.swipeLength;
|
2693 |
+
|
2694 |
+
_.touchObject.edgeHit = false;
|
2695 |
+
|
2696 |
+
if (_.options.infinite === false) {
|
2697 |
+
if ((_.currentSlide === 0 && swipeDirection === 'right') || (_.currentSlide >= _.getDotCount() && swipeDirection === 'left')) {
|
2698 |
+
swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;
|
2699 |
+
_.touchObject.edgeHit = true;
|
2700 |
+
}
|
2701 |
+
}
|
2702 |
+
|
2703 |
+
if (_.options.vertical === false) {
|
2704 |
+
_.swipeLeft = curLeft + swipeLength * positionOffset;
|
2705 |
+
} else {
|
2706 |
+
_.swipeLeft = curLeft + (swipeLength * (_.$list.height() / _.listWidth)) * positionOffset;
|
2707 |
+
}
|
2708 |
+
if (_.options.verticalSwiping === true) {
|
2709 |
+
_.swipeLeft = curLeft + swipeLength * positionOffset;
|
2710 |
+
}
|
2711 |
+
|
2712 |
+
if (_.options.fade === true || _.options.touchMove === false) {
|
2713 |
+
return false;
|
2714 |
+
}
|
2715 |
+
|
2716 |
+
if (_.animating === true) {
|
2717 |
+
_.swipeLeft = null;
|
2718 |
+
return false;
|
2719 |
+
}
|
2720 |
+
|
2721 |
+
_.setCSS(_.swipeLeft);
|
2722 |
+
|
2723 |
+
};
|
2724 |
+
|
2725 |
+
Slick.prototype.swipeStart = function(event) {
|
2726 |
+
|
2727 |
+
var _ = this,
|
2728 |
+
touches;
|
2729 |
+
|
2730 |
+
_.interrupted = true;
|
2731 |
+
|
2732 |
+
if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {
|
2733 |
+
_.touchObject = {};
|
2734 |
+
return false;
|
2735 |
+
}
|
2736 |
+
|
2737 |
+
if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {
|
2738 |
+
touches = event.originalEvent.touches[0];
|
2739 |
+
}
|
2740 |
+
|
2741 |
+
_.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;
|
2742 |
+
_.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;
|
2743 |
+
|
2744 |
+
_.dragging = true;
|
2745 |
+
|
2746 |
+
};
|
2747 |
+
|
2748 |
+
Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function() {
|
2749 |
+
|
2750 |
+
var _ = this;
|
2751 |
+
|
2752 |
+
if (_.$slidesCache !== null) {
|
2753 |
+
|
2754 |
+
_.unload();
|
2755 |
+
|
2756 |
+
_.$slideTrack.children(this.options.slide).detach();
|
2757 |
+
|
2758 |
+
_.$slidesCache.appendTo(_.$slideTrack);
|
2759 |
+
|
2760 |
+
_.reinit();
|
2761 |
+
|
2762 |
+
}
|
2763 |
+
|
2764 |
+
};
|
2765 |
+
|
2766 |
+
Slick.prototype.unload = function() {
|
2767 |
+
|
2768 |
+
var _ = this;
|
2769 |
+
|
2770 |
+
$('.slick-cloned', _.$slider).remove();
|
2771 |
+
|
2772 |
+
if (_.$dots) {
|
2773 |
+
_.$dots.remove();
|
2774 |
+
}
|
2775 |
+
|
2776 |
+
if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {
|
2777 |
+
_.$prevArrow.remove();
|
2778 |
+
}
|
2779 |
+
|
2780 |
+
if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {
|
2781 |
+
_.$nextArrow.remove();
|
2782 |
+
}
|
2783 |
+
|
2784 |
+
_.$slides
|
2785 |
+
.removeClass('slick-slide slick-active slick-visible slick-current')
|
2786 |
+
.attr('aria-hidden', 'true')
|
2787 |
+
.css('width', '');
|
2788 |
+
|
2789 |
+
};
|
2790 |
+
|
2791 |
+
Slick.prototype.unslick = function(fromBreakpoint) {
|
2792 |
+
|
2793 |
+
var _ = this;
|
2794 |
+
_.$slider.trigger('unslick', [_, fromBreakpoint]);
|
2795 |
+
_.destroy();
|
2796 |
+
|
2797 |
+
};
|
2798 |
+
|
2799 |
+
Slick.prototype.updateArrows = function() {
|
2800 |
+
|
2801 |
+
var _ = this,
|
2802 |
+
centerOffset;
|
2803 |
+
|
2804 |
+
centerOffset = Math.floor(_.options.slidesToShow / 2);
|
2805 |
+
|
2806 |
+
if ( _.options.arrows === true &&
|
2807 |
+
_.slideCount > _.options.slidesToShow &&
|
2808 |
+
!_.options.infinite ) {
|
2809 |
+
|
2810 |
+
_.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
|
2811 |
+
_.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
|
2812 |
+
|
2813 |
+
if (_.currentSlide === 0) {
|
2814 |
+
|
2815 |
+
_.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
|
2816 |
+
_.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
|
2817 |
+
|
2818 |
+
} else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {
|
2819 |
+
|
2820 |
+
_.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
|
2821 |
+
_.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
|
2822 |
+
|
2823 |
+
} else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {
|
2824 |
+
|
2825 |
+
_.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');
|
2826 |
+
_.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');
|
2827 |
+
|
2828 |
+
}
|
2829 |
+
|
2830 |
+
}
|
2831 |
+
|
2832 |
+
};
|
2833 |
+
|
2834 |
+
Slick.prototype.updateDots = function() {
|
2835 |
+
|
2836 |
+
var _ = this;
|
2837 |
+
|
2838 |
+
if (_.$dots !== null) {
|
2839 |
+
|
2840 |
+
_.$dots
|
2841 |
+
.find('li')
|
2842 |
+
.removeClass('slick-active')
|
2843 |
+
.attr('aria-hidden', 'true');
|
2844 |
+
|
2845 |
+
_.$dots
|
2846 |
+
.find('li')
|
2847 |
+
.eq(Math.floor(_.currentSlide / _.options.slidesToScroll))
|
2848 |
+
.addClass('slick-active')
|
2849 |
+
.attr('aria-hidden', 'false');
|
2850 |
+
|
2851 |
+
}
|
2852 |
+
|
2853 |
+
};
|
2854 |
+
|
2855 |
+
Slick.prototype.visibility = function() {
|
2856 |
+
|
2857 |
+
var _ = this;
|
2858 |
+
|
2859 |
+
if ( _.options.autoplay ) {
|
2860 |
+
|
2861 |
+
if ( document[_.hidden] ) {
|
2862 |
+
|
2863 |
+
_.interrupted = true;
|
2864 |
+
|
2865 |
+
} else {
|
2866 |
+
|
2867 |
+
_.interrupted = false;
|
2868 |
+
|
2869 |
+
}
|
2870 |
+
|
2871 |
+
}
|
2872 |
+
|
2873 |
+
};
|
2874 |
+
|
2875 |
+
$.fn.slick = function() {
|
2876 |
+
var _ = this,
|
2877 |
+
opt = arguments[0],
|
2878 |
+
args = Array.prototype.slice.call(arguments, 1),
|
2879 |
+
l = _.length,
|
2880 |
+
i,
|
2881 |
+
ret;
|
2882 |
+
for (i = 0; i < l; i++) {
|
2883 |
+
if (typeof opt == 'object' || typeof opt == 'undefined')
|
2884 |
+
_[i].slick = new Slick(_[i], opt);
|
2885 |
+
else
|
2886 |
+
ret = _[i].slick[opt].apply(_[i].slick, args);
|
2887 |
+
if (typeof ret != 'undefined') return ret;
|
2888 |
+
}
|
2889 |
+
return _;
|
2890 |
+
};
|
2891 |
+
|
2892 |
+
}));
|
js/slick.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};e=function(){function e(e,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(e),appendDots:i(e),arrows:!0,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" data-role="none" role="button" tabindex="0" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(e),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(e).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,"undefined"!=typeof document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=t++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}var t=0;return e}(),e.prototype.activateADA=function(){var i=this;i.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):o===!0?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&i.options.adaptiveHeight===!0&&i.options.vertical===!1){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),s.options.rtl===!0&&s.options.vertical===!1&&(e=-e),s.transformsEnabled===!1?s.options.vertical===!1?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):s.cssTransitions===!1?(s.options.rtl===!0&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),s.options.vertical===!1?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),s.options.vertical===!1?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this,o=t.getNavTarget();null!==o&&"object"==typeof o&&o.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};e.options.fade===!1?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,e.options.fade===!1?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(i.options.infinite===!1&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1===0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;e.options.arrows===!0&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),e.options.infinite!==!0&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(o.options.dots===!0&&o.slideCount>o.options.slidesToShow){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active").attr("aria-hidden","false")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),e.options.centerMode!==!0&&e.options.swipeToSlide!==!0||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.options.draggable===!0&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.options.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(r.originalSettings.mobileFirst===!1?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,e===!0&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||l===!1||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!==0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t,o=this;if(e=o.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var s in e){if(i<e[s]){i=t;break}t=e[s]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),e.$slider.off("focus.slick blur.slick"),e.options.arrows===!0&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide)),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),e.options.accessibility===!0&&e.$list.off("keydown.slick",e.keyHandler),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition),i(document).off("ready.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&(i=e.$slides.children().children(),i.removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){var e=this;e.shouldClick===!1&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",e.options.fade===!1?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;t.cssTransitions===!1?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;e.cssTransitions===!1?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*:not(.slick-arrow)",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){var i=this;return i.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(i.options.infinite===!0)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(i.options.centerMode===!0)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s=this,n=0;return s.slideOffset=0,t=s.$slides.first().outerHeight(!0),s.options.infinite===!0?(s.slideCount>s.options.slidesToShow&&(s.slideOffset=s.slideWidth*s.options.slidesToShow*-1,n=t*s.options.slidesToShow*-1),s.slideCount%s.options.slidesToScroll!==0&&i+s.options.slidesToScroll>s.slideCount&&s.slideCount>s.options.slidesToShow&&(i>s.slideCount?(s.slideOffset=(s.options.slidesToShow-(i-s.slideCount))*s.slideWidth*-1,n=(s.options.slidesToShow-(i-s.slideCount))*t*-1):(s.slideOffset=s.slideCount%s.options.slidesToScroll*s.slideWidth*-1,n=s.slideCount%s.options.slidesToScroll*t*-1))):i+s.options.slidesToShow>s.slideCount&&(s.slideOffset=(i+s.options.slidesToShow-s.slideCount)*s.slideWidth,n=(i+s.options.slidesToShow-s.slideCount)*t),s.slideCount<=s.options.slidesToShow&&(s.slideOffset=0,n=0),s.options.centerMode===!0&&s.options.infinite===!0?s.slideOffset+=s.slideWidth*Math.floor(s.options.slidesToShow/2)-s.slideWidth:s.options.centerMode===!0&&(s.slideOffset=0,s.slideOffset+=s.slideWidth*Math.floor(s.options.slidesToShow/2)),e=s.options.vertical===!1?i*s.slideWidth*-1+s.slideOffset:i*t*-1+n,s.options.variableWidth===!0&&(o=s.slideCount<=s.options.slidesToShow||s.options.infinite===!1?s.$slideTrack.children(".slick-slide").eq(i):s.$slideTrack.children(".slick-slide").eq(i+s.options.slidesToShow),e=s.options.rtl===!0?o[0]?(s.$slideTrack.width()-o[0].offsetLeft-o.width())*-1:0:o[0]?o[0].offsetLeft*-1:0,s.options.centerMode===!0&&(o=s.slideCount<=s.options.slidesToShow||s.options.infinite===!1?s.$slideTrack.children(".slick-slide").eq(i):s.$slideTrack.children(".slick-slide").eq(i+s.options.slidesToShow+1),e=s.options.rtl===!0?o[0]?(s.$slideTrack.width()-o[0].offsetLeft-o.width())*-1:0:o[0]?o[0].offsetLeft*-1:0,e+=(s.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){var e=this;return e.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(e.options.infinite===!1?i=e.slideCount:(t=e.options.slidesToScroll*-1,o=e.options.slidesToScroll*-1,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o,s=this;return o=s.options.centerMode===!0?s.slideWidth*Math.floor(s.options.slidesToShow/2):0,s.options.swipeToSlide===!0?(s.$slideTrack.find(".slick-slide").each(function(e,n){if(n.offsetLeft-o+i(n).outerWidth()/2>s.swipeLeft*-1)return t=n,!1}),e=Math.abs(i(t).attr("data-slick-index")-s.currentSlide)||1):s.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){var t=this;t.changeSlide({data:{message:"index",index:parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),t.options.accessibility===!0&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this;e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),e.$slideTrack.attr("role","listbox"),e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){i(this).attr({role:"option","aria-describedby":"slick-slide"+e.instanceUid+t})}),null!==e.$dots&&e.$dots.attr("role","tablist").find("li").each(function(t){i(this).attr({role:"presentation","aria-selected":"false","aria-controls":"navigation"+e.instanceUid+t,id:"slick-slide"+e.instanceUid+t})}).first().attr("aria-selected","true").end().find("button").attr("role","button").end().closest("div").attr("role","toolbar"),e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide))},e.prototype.initDotEvents=function(){var e=this;e.options.dots===!0&&e.slideCount>e.options.slidesToShow&&i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),e.options.dots===!0&&e.options.pauseOnDotsHover===!0&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"},e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),e.options.accessibility===!0&&e.$list.on("keydown.slick",e.keyHandler),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(document).on("ready.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.initUI=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),i.options.dots===!0&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&e.options.accessibility===!0?e.changeSlide({data:{message:e.options.rtl===!0?"next":"previous"}}):39===i.keyCode&&e.options.accessibility===!0&&e.changeSlide({data:{message:e.options.rtl===!0?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=document.createElement("img");o.onload=function(){e.animate({opacity:0},100,function(){e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy").removeClass("slick-loading")}),r.$slider.trigger("lazyLoaded",[r,e,t])})},o.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),r.$slider.trigger("lazyLoadError",[r,e,t])},o.src=t})}var t,o,s,n,r=this;r.options.centerMode===!0?r.options.infinite===!0?(s=r.currentSlide+(r.options.slidesToShow/2+1),n=s+r.options.slidesToShow+2):(s=Math.max(0,r.currentSlide-(r.options.slidesToShow/2+1)),n=2+(r.options.slidesToShow/2+1)+r.currentSlide):(s=r.options.infinite?r.options.slidesToShow+r.currentSlide:r.currentSlide,n=Math.ceil(s+r.options.slidesToShow),r.options.fade===!0&&(s>0&&s--,n<=r.slideCount&&n++)),t=r.$slider.find(".slick-slide").slice(s,n),e(t),r.slideCount<=r.options.slidesToShow?(o=r.$slider.find(".slick-slide"),e(o)):r.currentSlide>=r.slideCount-r.options.slidesToShow?(o=r.$slider.find(".slick-cloned").slice(0,r.options.slidesToShow),e(o)):0===r.currentSlide&&(o=r.$slider.find(".slick-cloned").slice(r.options.slidesToShow*-1),e(o))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){var i=this;i.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(i){var e=this;e.unslicked||(e.$slider.trigger("afterChange",[e,i]),e.animating=!1,e.setPosition(),e.swipeLeft=null,e.options.autoplay&&e.autoPlay(),e.options.accessibility===!0&&e.initADA())},e.prototype.prev=e.prototype.slickPrev=function(){var i=this;i.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n=this,r=i("img[data-lazy]",n.$slider);r.length?(t=r.first(),o=t.attr("data-lazy"),s=document.createElement("img"),s.onload=function(){t.attr("src",o).removeAttr("data-lazy").removeClass("slick-loading"),n.options.adaptiveHeight===!0&&n.setPosition(),n.$slider.trigger("lazyLoaded",[n,t,o]),n.progressiveLazyLoad()},s.onerror=function(){e<3?setTimeout(function(){n.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,t,o]),n.progressiveLazyLoad())},s.src=o):n.$slider.trigger("allImagesLoaded",[n])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,t=n[e].breakpoint,n.hasOwnProperty(e)){for(;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),e.options.focusOnSelect===!0&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;return"boolean"==typeof i?(e=i,i=e===!0?0:o.slideCount-1):i=e===!0?--i:i,!(o.slideCount<1||i<0||i>o.slideCount-1)&&(o.unload(),t===!0?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,void o.reinit())},e.prototype.setCSS=function(i){var e,t,o=this,s={};o.options.rtl===!0&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,o.transformsEnabled===!1?o.$slideTrack.css(s):(s={},o.cssTransitions===!1?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;i.options.vertical===!1?i.options.centerMode===!0&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),i.options.centerMode===!0&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),i.options.vertical===!1&&i.options.variableWidth===!1?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):i.options.variableWidth===!0?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();i.options.variableWidth===!1&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,t.options.rtl===!0?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&i.options.adaptiveHeight===!0&&i.options.vertical===!1){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":"undefined"!=typeof arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),i.options.fade===!1?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=i.options.vertical===!0?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||i.options.useCSS===!0&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&i.animType!==!1&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&i.animType!==!1},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),n.options.centerMode===!0?(e=Math.floor(n.options.slidesToShow/2),n.options.infinite===!0&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,
|
2 |
+
t.slice(o-e+1,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")):i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=n.options.infinite===!0?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false")),"ondemand"===n.options.lazyLoad&&n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(s.options.fade===!0&&(s.options.centerMode=!1),s.options.infinite===!0&&s.options.fade===!1&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=s.options.centerMode===!0?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));return s||(s=0),t.slideCount<=t.options.slidesToShow?(t.setSlideClasses(s),void t.asNavFor(s)):void t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,(a.animating!==!0||a.options.waitForAnimate!==!0)&&!(a.options.fade===!0&&a.currentSlide===i||a.slideCount<=a.options.slidesToShow))return e===!1&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,a.options.infinite===!1&&a.options.centerMode===!1&&(i<0||i>a.getDotCount()*a.options.slidesToScroll)?void(a.options.fade===!1&&(o=a.currentSlide,t!==!0?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o))):a.options.infinite===!1&&a.options.centerMode===!0&&(i<0||i>a.slideCount-a.options.slidesToScroll)?void(a.options.fade===!1&&(o=a.currentSlide,t!==!0?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o))):(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!==0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!==0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=a.getNavTarget(),l=l.slick("getSlick"),l.slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide)),a.updateDots(),a.updateArrows(),a.options.fade===!0?(t!==!0?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight()):void(t!==!0?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)))},e.prototype.startLoad=function(){var i=this;i.options.arrows===!0&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),i.options.dots===!0&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),o=Math.round(180*t/Math.PI),o<0&&(o=360-Math.abs(o)),o<=45&&o>=0?s.options.rtl===!1?"left":"right":o<=360&&o>=315?s.options.rtl===!1?"left":"right":o>=135&&o<=225?s.options.rtl===!1?"right":"left":s.options.verticalSwiping===!0?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(o.touchObject.edgeHit===!0&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(e.options.swipe===!1||"ontouchend"in document&&e.options.swipe===!1||e.options.draggable===!1&&i.type.indexOf("mouse")!==-1))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,e.options.verticalSwiping===!0&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!r.dragging||n&&1!==n.length)&&(e=r.getLeft(r.currentSlide),r.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,r.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,r.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(r.touchObject.curX-r.touchObject.startX,2))),r.options.verticalSwiping===!0&&(r.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(r.touchObject.curY-r.touchObject.startY,2)))),t=r.swipeDirection(),"vertical"!==t?(void 0!==i.originalEvent&&r.touchObject.swipeLength>4&&i.preventDefault(),s=(r.options.rtl===!1?1:-1)*(r.touchObject.curX>r.touchObject.startX?1:-1),r.options.verticalSwiping===!0&&(s=r.touchObject.curY>r.touchObject.startY?1:-1),o=r.touchObject.swipeLength,r.touchObject.edgeHit=!1,r.options.infinite===!1&&(0===r.currentSlide&&"right"===t||r.currentSlide>=r.getDotCount()&&"left"===t)&&(o=r.touchObject.swipeLength*r.options.edgeFriction,r.touchObject.edgeHit=!0),r.options.vertical===!1?r.swipeLeft=e+o*s:r.swipeLeft=e+o*(r.$list.height()/r.listWidth)*s,r.options.verticalSwiping===!0&&(r.swipeLeft=e+o*s),r.options.fade!==!0&&r.options.touchMove!==!1&&(r.animating===!0?(r.swipeLeft=null,!1):void r.setCSS(r.swipeLeft))):void 0)},e.prototype.swipeStart=function(i){var e,t=this;return t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow?(t.touchObject={},!1):(void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,void(t.dragging=!0))},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")},e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i,e=this;i=Math.floor(e.options.slidesToShow/2),e.options.arrows===!0&&e.slideCount>e.options.slidesToShow&&!e.options.infinite&&(e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===e.currentSlide?(e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):e.currentSlide>=e.slideCount-e.options.slidesToShow&&e.options.centerMode===!1?(e.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):e.currentSlide>=e.slideCount-1&&e.options.centerMode===!0&&(e.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").attr("aria-hidden","true"),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active").attr("aria-hidden","false"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||"undefined"==typeof s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),"undefined"!=typeof t)return t;return o}});
|
js/waypoints.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r
|
1 |
+
!function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;n<r;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.invokeAll("enable")},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical);t&&e&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){e.didScroll&&!n.isTouch||(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s],l=o.oldScroll<a.triggerPoint,h=o.newScroll>=a.triggerPoint,p=l&&h,c=!l&&!h;(p||c)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}for(var u in t)t[u].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;o<n;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,c,u,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=y+l-f,h=w<s.oldScroll,p=d.triggerPoint>=s.oldScroll,c=h&&p,u=!h&&!p,!g&&c?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&u?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;r<s;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
|
mixins/sass/bourbon/_bourbon-deprecated-upcoming.scss
DELETED
@@ -1,411 +0,0 @@
|
|
1 |
-
// The following features have been deprecated and will be removed in the next MAJOR version release
|
2 |
-
|
3 |
-
@mixin inline-block {
|
4 |
-
display: inline-block;
|
5 |
-
|
6 |
-
@warn "The inline-block mixin is deprecated and will be removed in the next major version release";
|
7 |
-
}
|
8 |
-
|
9 |
-
@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) {
|
10 |
-
|
11 |
-
@if type-of($style) == string and type-of($base-color) == color {
|
12 |
-
@include buttonstyle($style, $base-color, $text-size, $padding);
|
13 |
-
}
|
14 |
-
|
15 |
-
@if type-of($style) == string and type-of($base-color) == number {
|
16 |
-
$padding: $text-size;
|
17 |
-
$text-size: $base-color;
|
18 |
-
$base-color: #4294f0;
|
19 |
-
|
20 |
-
@if $padding == inherit {
|
21 |
-
$padding: 7px 18px;
|
22 |
-
}
|
23 |
-
|
24 |
-
@include buttonstyle($style, $base-color, $text-size, $padding);
|
25 |
-
}
|
26 |
-
|
27 |
-
@if type-of($style) == color and type-of($base-color) == color {
|
28 |
-
$base-color: $style;
|
29 |
-
$style: simple;
|
30 |
-
@include buttonstyle($style, $base-color, $text-size, $padding);
|
31 |
-
}
|
32 |
-
|
33 |
-
@if type-of($style) == color and type-of($base-color) == number {
|
34 |
-
$padding: $text-size;
|
35 |
-
$text-size: $base-color;
|
36 |
-
$base-color: $style;
|
37 |
-
$style: simple;
|
38 |
-
|
39 |
-
@if $padding == inherit {
|
40 |
-
$padding: 7px 18px;
|
41 |
-
}
|
42 |
-
|
43 |
-
@include buttonstyle($style, $base-color, $text-size, $padding);
|
44 |
-
}
|
45 |
-
|
46 |
-
@if type-of($style) == number {
|
47 |
-
$padding: $base-color;
|
48 |
-
$text-size: $style;
|
49 |
-
$base-color: #4294f0;
|
50 |
-
$style: simple;
|
51 |
-
|
52 |
-
@if $padding == #4294f0 {
|
53 |
-
$padding: 7px 18px;
|
54 |
-
}
|
55 |
-
|
56 |
-
@include buttonstyle($style, $base-color, $text-size, $padding);
|
57 |
-
}
|
58 |
-
|
59 |
-
&:disabled {
|
60 |
-
cursor: not-allowed;
|
61 |
-
opacity: 0.5;
|
62 |
-
}
|
63 |
-
|
64 |
-
@warn "The button mixin is deprecated and will be removed in the next major version release";
|
65 |
-
}
|
66 |
-
|
67 |
-
// Selector Style Button
|
68 |
-
@mixin buttonstyle($type, $b-color, $t-size, $pad) {
|
69 |
-
// Grayscale button
|
70 |
-
@if $type == simple and $b-color == grayscale($b-color) {
|
71 |
-
@include simple($b-color, true, $t-size, $pad);
|
72 |
-
}
|
73 |
-
|
74 |
-
@if $type == shiny and $b-color == grayscale($b-color) {
|
75 |
-
@include shiny($b-color, true, $t-size, $pad);
|
76 |
-
}
|
77 |
-
|
78 |
-
@if $type == pill and $b-color == grayscale($b-color) {
|
79 |
-
@include pill($b-color, true, $t-size, $pad);
|
80 |
-
}
|
81 |
-
|
82 |
-
@if $type == flat and $b-color == grayscale($b-color) {
|
83 |
-
@include flat($b-color, true, $t-size, $pad);
|
84 |
-
}
|
85 |
-
|
86 |
-
// Colored button
|
87 |
-
@if $type == simple {
|
88 |
-
@include simple($b-color, false, $t-size, $pad);
|
89 |
-
}
|
90 |
-
|
91 |
-
@else if $type == shiny {
|
92 |
-
@include shiny($b-color, false, $t-size, $pad);
|
93 |
-
}
|
94 |
-
|
95 |
-
@else if $type == pill {
|
96 |
-
@include pill($b-color, false, $t-size, $pad);
|
97 |
-
}
|
98 |
-
|
99 |
-
@else if $type == flat {
|
100 |
-
@include flat($b-color, false, $t-size, $pad);
|
101 |
-
}
|
102 |
-
}
|
103 |
-
|
104 |
-
// Simple Button
|
105 |
-
@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
|
106 |
-
$color: hsl(0, 0, 100%);
|
107 |
-
$border: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
|
108 |
-
$inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%);
|
109 |
-
$stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%);
|
110 |
-
$text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%);
|
111 |
-
|
112 |
-
@if is-light($base-color) {
|
113 |
-
$color: hsl(0, 0, 20%);
|
114 |
-
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
|
115 |
-
}
|
116 |
-
|
117 |
-
@if $grayscale == true {
|
118 |
-
$border: grayscale($border);
|
119 |
-
$inset-shadow: grayscale($inset-shadow);
|
120 |
-
$stop-gradient: grayscale($stop-gradient);
|
121 |
-
$text-shadow: grayscale($text-shadow);
|
122 |
-
}
|
123 |
-
|
124 |
-
border: 1px solid $border;
|
125 |
-
border-radius: 3px;
|
126 |
-
box-shadow: inset 0 1px 0 0 $inset-shadow;
|
127 |
-
color: $color;
|
128 |
-
display: inline-block;
|
129 |
-
font-size: $textsize;
|
130 |
-
font-weight: bold;
|
131 |
-
@include linear-gradient ($base-color, $stop-gradient);
|
132 |
-
padding: $padding;
|
133 |
-
text-decoration: none;
|
134 |
-
text-shadow: 0 1px 0 $text-shadow;
|
135 |
-
background-clip: padding-box;
|
136 |
-
|
137 |
-
&:hover:not(:disabled) {
|
138 |
-
$base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
|
139 |
-
$inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%);
|
140 |
-
$stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%);
|
141 |
-
|
142 |
-
@if $grayscale == true {
|
143 |
-
$base-color-hover: grayscale($base-color-hover);
|
144 |
-
$inset-shadow-hover: grayscale($inset-shadow-hover);
|
145 |
-
$stop-gradient-hover: grayscale($stop-gradient-hover);
|
146 |
-
}
|
147 |
-
|
148 |
-
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
|
149 |
-
|
150 |
-
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
|
151 |
-
cursor: pointer;
|
152 |
-
}
|
153 |
-
|
154 |
-
&:active:not(:disabled),
|
155 |
-
&:focus:not(:disabled) {
|
156 |
-
$border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
|
157 |
-
$inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%);
|
158 |
-
|
159 |
-
@if $grayscale == true {
|
160 |
-
$border-active: grayscale($border-active);
|
161 |
-
$inset-shadow-active: grayscale($inset-shadow-active);
|
162 |
-
}
|
163 |
-
|
164 |
-
border: 1px solid $border-active;
|
165 |
-
box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active;
|
166 |
-
}
|
167 |
-
}
|
168 |
-
|
169 |
-
// Shiny Button
|
170 |
-
@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
|
171 |
-
$color: hsl(0, 0, 100%);
|
172 |
-
$border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81);
|
173 |
-
$border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122);
|
174 |
-
$fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46);
|
175 |
-
$inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12);
|
176 |
-
$second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33);
|
177 |
-
$text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114);
|
178 |
-
$third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48);
|
179 |
-
|
180 |
-
@if is-light($base-color) {
|
181 |
-
$color: hsl(0, 0, 20%);
|
182 |
-
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
|
183 |
-
}
|
184 |
-
|
185 |
-
@if $grayscale == true {
|
186 |
-
$border: grayscale($border);
|
187 |
-
$border-bottom: grayscale($border-bottom);
|
188 |
-
$fourth-stop: grayscale($fourth-stop);
|
189 |
-
$inset-shadow: grayscale($inset-shadow);
|
190 |
-
$second-stop: grayscale($second-stop);
|
191 |
-
$text-shadow: grayscale($text-shadow);
|
192 |
-
$third-stop: grayscale($third-stop);
|
193 |
-
}
|
194 |
-
|
195 |
-
@include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%);
|
196 |
-
|
197 |
-
border: 1px solid $border;
|
198 |
-
border-bottom: 1px solid $border-bottom;
|
199 |
-
border-radius: 5px;
|
200 |
-
box-shadow: inset 0 1px 0 0 $inset-shadow;
|
201 |
-
color: $color;
|
202 |
-
display: inline-block;
|
203 |
-
font-size: $textsize;
|
204 |
-
font-weight: bold;
|
205 |
-
padding: $padding;
|
206 |
-
text-align: center;
|
207 |
-
text-decoration: none;
|
208 |
-
text-shadow: 0 -1px 1px $text-shadow;
|
209 |
-
|
210 |
-
&:hover:not(:disabled) {
|
211 |
-
$first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18);
|
212 |
-
$second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51);
|
213 |
-
$third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66);
|
214 |
-
$fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63);
|
215 |
-
|
216 |
-
@if $grayscale == true {
|
217 |
-
$first-stop-hover: grayscale($first-stop-hover);
|
218 |
-
$second-stop-hover: grayscale($second-stop-hover);
|
219 |
-
$third-stop-hover: grayscale($third-stop-hover);
|
220 |
-
$fourth-stop-hover: grayscale($fourth-stop-hover);
|
221 |
-
}
|
222 |
-
|
223 |
-
@include linear-gradient(top, $first-stop-hover 0%,
|
224 |
-
$second-stop-hover 50%,
|
225 |
-
$third-stop-hover 50%,
|
226 |
-
$fourth-stop-hover 100%);
|
227 |
-
cursor: pointer;
|
228 |
-
}
|
229 |
-
|
230 |
-
&:active:not(:disabled),
|
231 |
-
&:focus:not(:disabled) {
|
232 |
-
$inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122);
|
233 |
-
|
234 |
-
@if $grayscale == true {
|
235 |
-
$inset-shadow-active: grayscale($inset-shadow-active);
|
236 |
-
}
|
237 |
-
|
238 |
-
box-shadow: inset 0 0 20px 0 $inset-shadow-active;
|
239 |
-
}
|
240 |
-
}
|
241 |
-
|
242 |
-
// Pill Button
|
243 |
-
@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
|
244 |
-
$color: hsl(0, 0, 100%);
|
245 |
-
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%);
|
246 |
-
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%);
|
247 |
-
$border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%);
|
248 |
-
$inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%);
|
249 |
-
$stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%);
|
250 |
-
$text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%);
|
251 |
-
|
252 |
-
@if is-light($base-color) {
|
253 |
-
$color: hsl(0, 0, 20%);
|
254 |
-
$text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
|
255 |
-
}
|
256 |
-
|
257 |
-
@if $grayscale == true {
|
258 |
-
$border-bottom: grayscale($border-bottom);
|
259 |
-
$border-sides: grayscale($border-sides);
|
260 |
-
$border-top: grayscale($border-top);
|
261 |
-
$inset-shadow: grayscale($inset-shadow);
|
262 |
-
$stop-gradient: grayscale($stop-gradient);
|
263 |
-
$text-shadow: grayscale($text-shadow);
|
264 |
-
}
|
265 |
-
|
266 |
-
border: 1px solid $border-top;
|
267 |
-
border-color: $border-top $border-sides $border-bottom;
|
268 |
-
border-radius: 16px;
|
269 |
-
box-shadow: inset 0 1px 0 0 $inset-shadow;
|
270 |
-
color: $color;
|
271 |
-
display: inline-block;
|
272 |
-
font-size: $textsize;
|
273 |
-
font-weight: normal;
|
274 |
-
line-height: 1;
|
275 |
-
@include linear-gradient ($base-color, $stop-gradient);
|
276 |
-
padding: $padding;
|
277 |
-
text-align: center;
|
278 |
-
text-decoration: none;
|
279 |
-
text-shadow: 0 -1px 1px $text-shadow;
|
280 |
-
background-clip: padding-box;
|
281 |
-
|
282 |
-
&:hover:not(:disabled) {
|
283 |
-
$base-color-hover: adjust-color($base-color, $lightness: -4.5%);
|
284 |
-
$border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%);
|
285 |
-
$border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%);
|
286 |
-
$border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%);
|
287 |
-
$inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%);
|
288 |
-
$stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%);
|
289 |
-
$text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%);
|
290 |
-
|
291 |
-
@if $grayscale == true {
|
292 |
-
$base-color-hover: grayscale($base-color-hover);
|
293 |
-
$border-bottom: grayscale($border-bottom);
|
294 |
-
$border-sides: grayscale($border-sides);
|
295 |
-
$border-top: grayscale($border-top);
|
296 |
-
$inset-shadow-hover: grayscale($inset-shadow-hover);
|
297 |
-
$stop-gradient-hover: grayscale($stop-gradient-hover);
|
298 |
-
$text-shadow-hover: grayscale($text-shadow-hover);
|
299 |
-
}
|
300 |
-
|
301 |
-
@include linear-gradient ($base-color-hover, $stop-gradient-hover);
|
302 |
-
|
303 |
-
background-clip: padding-box;
|
304 |
-
border: 1px solid $border-top;
|
305 |
-
border-color: $border-top $border-sides $border-bottom;
|
306 |
-
box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
|
307 |
-
cursor: pointer;
|
308 |
-
text-shadow: 0 -1px 1px $text-shadow-hover;
|
309 |
-
}
|
310 |
-
|
311 |
-
&:active:not(:disabled),
|
312 |
-
&:focus:not(:disabled) {
|
313 |
-
$active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%);
|
314 |
-
$border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%);
|
315 |
-
$border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%);
|
316 |
-
$inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%);
|
317 |
-
$text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%);
|
318 |
-
|
319 |
-
@if $grayscale == true {
|
320 |
-
$active-color: grayscale($active-color);
|
321 |
-
$border-active: grayscale($border-active);
|
322 |
-
$border-bottom-active: grayscale($border-bottom-active);
|
323 |
-
$inset-shadow-active: grayscale($inset-shadow-active);
|
324 |
-
$text-shadow-active: grayscale($text-shadow-active);
|
325 |
-
}
|
326 |
-
|
327 |
-
background: $active-color;
|
328 |
-
border: 1px solid $border-active;
|
329 |
-
border-bottom: 1px solid $border-bottom-active;
|
330 |
-
box-shadow: inset 0 0 6px 3px $inset-shadow-active;
|
331 |
-
text-shadow: 0 -1px 1px $text-shadow-active;
|
332 |
-
}
|
333 |
-
}
|
334 |
-
|
335 |
-
// Flat Button
|
336 |
-
@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
|
337 |
-
$color: hsl(0, 0, 100%);
|
338 |
-
|
339 |
-
@if is-light($base-color) {
|
340 |
-
$color: hsl(0, 0, 20%);
|
341 |
-
}
|
342 |
-
|
343 |
-
background-color: $base-color;
|
344 |
-
border-radius: 3px;
|
345 |
-
border: 0;
|
346 |
-
color: $color;
|
347 |
-
display: inline-block;
|
348 |
-
font-size: $textsize;
|
349 |
-
font-weight: bold;
|
350 |
-
padding: $padding;
|
351 |
-
text-decoration: none;
|
352 |
-
background-clip: padding-box;
|
353 |
-
|
354 |
-
&:hover:not(:disabled){
|
355 |
-
$base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%);
|
356 |
-
|
357 |
-
@if $grayscale == true {
|
358 |
-
$base-color-hover: grayscale($base-color-hover);
|
359 |
-
}
|
360 |
-
|
361 |
-
background-color: $base-color-hover;
|
362 |
-
cursor: pointer;
|
363 |
-
}
|
364 |
-
|
365 |
-
&:active:not(:disabled),
|
366 |
-
&:focus:not(:disabled) {
|
367 |
-
$base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
|
368 |
-
|
369 |
-
@if $grayscale == true {
|
370 |
-
$base-color-active: grayscale($base-color-active);
|
371 |
-
}
|
372 |
-
|
373 |
-
background-color: $base-color-active;
|
374 |
-
cursor: pointer;
|
375 |
-
}
|
376 |
-
}
|
377 |
-
|
378 |
-
// Flexible grid
|
379 |
-
@function flex-grid($columns, $container-columns: $fg-max-columns) {
|
380 |
-
$width: $columns * $fg-column + ($columns - 1) * $fg-gutter;
|
381 |
-
$container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
|
382 |
-
@return percentage($width / $container-width);
|
383 |
-
|
384 |
-
@warn "The flex-grid function is deprecated and will be removed in the next major version release";
|
385 |
-
}
|
386 |
-
|
387 |
-
// Flexible gutter
|
388 |
-
@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) {
|
389 |
-
$container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
|
390 |
-
@return percentage($gutter / $container-width);
|
391 |
-
|
392 |
-
@warn "The flex-gutter function is deprecated and will be removed in the next major version release";
|
393 |
-
}
|
394 |
-
|
395 |
-
@function grid-width($n) {
|
396 |
-
@return $n * $gw-column + ($n - 1) * $gw-gutter;
|
397 |
-
|
398 |
-
@warn "The grid-width function is deprecated and will be removed in the next major version release";
|
399 |
-
}
|
400 |
-
|
401 |
-
@function golden-ratio($value, $increment) {
|
402 |
-
@return modular-scale($increment, $value, $ratio: $golden);
|
403 |
-
|
404 |
-
@warn "The golden-ratio function is deprecated and will be removed in the next major version release. Please use the modular-scale function, instead.";
|
405 |
-
}
|
406 |
-
|
407 |
-
@mixin box-sizing($box) {
|
408 |
-
@include prefixer(box-sizing, $box, webkit moz spec);
|
409 |
-
|
410 |
-
@warn "The box-sizing mixin is deprecated and will be removed in the next major version release. This property can now be used un-prefixed.";
|
411 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/_bourbon.scss
DELETED
@@ -1,87 +0,0 @@
|
|
1 |
-
// Bourbon 4.2.7
|
2 |
-
// http://bourbon.io
|
3 |
-
// Copyright 2011-2015 thoughtbot, inc.
|
4 |
-
// MIT License
|
5 |
-
|
6 |
-
@import "settings/prefixer";
|
7 |
-
@import "settings/px-to-em";
|
8 |
-
@import "settings/asset-pipeline";
|
9 |
-
|
10 |
-
@import "functions/assign-inputs";
|
11 |
-
@import "functions/contains";
|
12 |
-
@import "functions/contains-falsy";
|
13 |
-
@import "functions/is-length";
|
14 |
-
@import "functions/is-light";
|
15 |
-
@import "functions/is-number";
|
16 |
-
@import "functions/is-size";
|
17 |
-
@import "functions/px-to-em";
|
18 |
-
@import "functions/px-to-rem";
|
19 |
-
@import "functions/shade";
|
20 |
-
@import "functions/strip-units";
|
21 |
-
@import "functions/tint";
|
22 |
-
@import "functions/transition-property-name";
|
23 |
-
@import "functions/unpack";
|
24 |
-
@import "functions/modular-scale";
|
25 |
-
|
26 |
-
@import "helpers/convert-units";
|
27 |
-
@import "helpers/directional-values";
|
28 |
-
@import "helpers/font-source-declaration";
|
29 |
-
@import "helpers/gradient-positions-parser";
|
30 |
-
@import "helpers/linear-angle-parser";
|
31 |
-
@import "helpers/linear-gradient-parser";
|
32 |
-
@import "helpers/linear-positions-parser";
|
33 |
-
@import "helpers/linear-side-corner-parser";
|
34 |
-
@import "helpers/radial-arg-parser";
|
35 |
-
@import "helpers/radial-positions-parser";
|
36 |
-
@import "helpers/radial-gradient-parser";
|
37 |
-
@import "helpers/render-gradients";
|
38 |
-
@import "helpers/shape-size-stripper";
|
39 |
-
@import "helpers/str-to-num";
|
40 |
-
|
41 |
-
@import "css3/animation";
|
42 |
-
@import "css3/appearance";
|
43 |
-
@import "css3/backface-visibility";
|
44 |
-
@import "css3/background";
|
45 |
-
@import "css3/background-image";
|
46 |
-
@import "css3/border-image";
|
47 |
-
@import "css3/calc";
|
48 |
-
@import "css3/columns";
|
49 |
-
@import "css3/filter";
|
50 |
-
@import "css3/flex-box";
|
51 |
-
@import "css3/font-face";
|
52 |
-
@import "css3/font-feature-settings";
|
53 |
-
@import "css3/hidpi-media-query";
|
54 |
-
@import "css3/hyphens";
|
55 |
-
@import "css3/image-rendering";
|
56 |
-
@import "css3/keyframes";
|
57 |
-
@import "css3/linear-gradient";
|
58 |
-
@import "css3/perspective";
|
59 |
-
@import "css3/placeholder";
|
60 |
-
@import "css3/radial-gradient";
|
61 |
-
@import "css3/selection";
|
62 |
-
@import "css3/text-decoration";
|
63 |
-
@import "css3/transform";
|
64 |
-
@import "css3/transition";
|
65 |
-
@import "css3/user-select";
|
66 |
-
|
67 |
-
@import "addons/border-color";
|
68 |
-
@import "addons/border-radius";
|
69 |
-
@import "addons/border-style";
|
70 |
-
@import "addons/border-width";
|
71 |
-
@import "addons/buttons";
|
72 |
-
@import "addons/clearfix";
|
73 |
-
@import "addons/ellipsis";
|
74 |
-
@import "addons/font-stacks";
|
75 |
-
@import "addons/hide-text";
|
76 |
-
@import "addons/margin";
|
77 |
-
@import "addons/padding";
|
78 |
-
@import "addons/position";
|
79 |
-
@import "addons/prefixer";
|
80 |
-
@import "addons/retina-image";
|
81 |
-
@import "addons/size";
|
82 |
-
@import "addons/text-inputs";
|
83 |
-
@import "addons/timing-functions";
|
84 |
-
@import "addons/triangle";
|
85 |
-
@import "addons/word-wrap";
|
86 |
-
|
87 |
-
@import "bourbon-deprecated-upcoming";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_border-color.scss
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Provides a quick method for targeting `border-color` on specific sides of a box. Use a `null` value to “skip” a side.
|
4 |
-
///
|
5 |
-
/// @param {Arglist} $vals
|
6 |
-
/// List of arguments
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element {
|
10 |
-
/// @include border-color(#a60b55 #76cd9c null #e8ae1a);
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// @example css - CSS Output
|
14 |
-
/// .element {
|
15 |
-
/// border-left-color: #e8ae1a;
|
16 |
-
/// border-right-color: #76cd9c;
|
17 |
-
/// border-top-color: #a60b55;
|
18 |
-
/// }
|
19 |
-
///
|
20 |
-
/// @require {mixin} directional-property
|
21 |
-
///
|
22 |
-
/// @output `border-color`
|
23 |
-
|
24 |
-
@mixin border-color($vals...) {
|
25 |
-
@include directional-property(border, color, $vals...);
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_border-radius.scss
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Provides a quick method for targeting `border-radius` on both corners on the side of a box.
|
4 |
-
///
|
5 |
-
/// @param {Number} $radii
|
6 |
-
/// List of arguments
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element-one {
|
10 |
-
/// @include border-top-radius(5px);
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// .element-two {
|
14 |
-
/// @include border-left-radius(3px);
|
15 |
-
/// }
|
16 |
-
///
|
17 |
-
/// @example css - CSS Output
|
18 |
-
/// .element-one {
|
19 |
-
/// border-top-left-radius: 5px;
|
20 |
-
/// border-top-right-radius: 5px;
|
21 |
-
/// }
|
22 |
-
///
|
23 |
-
/// .element-two {
|
24 |
-
/// border-bottom-left-radius: 3px;
|
25 |
-
/// border-top-left-radius: 3px;
|
26 |
-
/// }
|
27 |
-
///
|
28 |
-
/// @output `border-radius`
|
29 |
-
|
30 |
-
@mixin border-top-radius($radii) {
|
31 |
-
border-top-left-radius: $radii;
|
32 |
-
border-top-right-radius: $radii;
|
33 |
-
}
|
34 |
-
|
35 |
-
@mixin border-right-radius($radii) {
|
36 |
-
border-bottom-right-radius: $radii;
|
37 |
-
border-top-right-radius: $radii;
|
38 |
-
}
|
39 |
-
|
40 |
-
@mixin border-bottom-radius($radii) {
|
41 |
-
border-bottom-left-radius: $radii;
|
42 |
-
border-bottom-right-radius: $radii;
|
43 |
-
}
|
44 |
-
|
45 |
-
@mixin border-left-radius($radii) {
|
46 |
-
border-bottom-left-radius: $radii;
|
47 |
-
border-top-left-radius: $radii;
|
48 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_border-style.scss
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Provides a quick method for targeting `border-style` on specific sides of a box. Use a `null` value to “skip” a side.
|
4 |
-
///
|
5 |
-
/// @param {Arglist} $vals
|
6 |
-
/// List of arguments
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element {
|
10 |
-
/// @include border-style(dashed null solid);
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// @example css - CSS Output
|
14 |
-
/// .element {
|
15 |
-
/// border-bottom-style: solid;
|
16 |
-
/// border-top-style: dashed;
|
17 |
-
/// }
|
18 |
-
///
|
19 |
-
/// @require {mixin} directional-property
|
20 |
-
///
|
21 |
-
/// @output `border-style`
|
22 |
-
|
23 |
-
@mixin border-style($vals...) {
|
24 |
-
@include directional-property(border, style, $vals...);
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_border-width.scss
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Provides a quick method for targeting `border-width` on specific sides of a box. Use a `null` value to “skip” a side.
|
4 |
-
///
|
5 |
-
/// @param {Arglist} $vals
|
6 |
-
/// List of arguments
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element {
|
10 |
-
/// @include border-width(1em null 20px);
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// @example css - CSS Output
|
14 |
-
/// .element {
|
15 |
-
/// border-bottom-width: 20px;
|
16 |
-
/// border-top-width: 1em;
|
17 |
-
/// }
|
18 |
-
///
|
19 |
-
/// @require {mixin} directional-property
|
20 |
-
///
|
21 |
-
/// @output `border-width`
|
22 |
-
|
23 |
-
@mixin border-width($vals...) {
|
24 |
-
@include directional-property(border, width, $vals...);
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_buttons.scss
DELETED
@@ -1,64 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Generates variables for all buttons. Please note that you must use interpolation on the variable: `#{$all-buttons}`.
|
4 |
-
///
|
5 |
-
/// @example scss - Usage
|
6 |
-
/// #{$all-buttons} {
|
7 |
-
/// background-color: #f00;
|
8 |
-
/// }
|
9 |
-
///
|
10 |
-
/// #{$all-buttons-focus},
|
11 |
-
/// #{$all-buttons-hover} {
|
12 |
-
/// background-color: #0f0;
|
13 |
-
/// }
|
14 |
-
///
|
15 |
-
/// #{$all-buttons-active} {
|
16 |
-
/// background-color: #00f;
|
17 |
-
/// }
|
18 |
-
///
|
19 |
-
/// @example css - CSS Output
|
20 |
-
/// button,
|
21 |
-
/// input[type="button"],
|
22 |
-
/// input[type="reset"],
|
23 |
-
/// input[type="submit"] {
|
24 |
-
/// background-color: #f00;
|
25 |
-
/// }
|
26 |
-
///
|
27 |
-
/// button:focus,
|
28 |
-
/// input[type="button"]:focus,
|
29 |
-
/// input[type="reset"]:focus,
|
30 |
-
/// input[type="submit"]:focus,
|
31 |
-
/// button:hover,
|
32 |
-
/// input[type="button"]:hover,
|
33 |
-
/// input[type="reset"]:hover,
|
34 |
-
/// input[type="submit"]:hover {
|
35 |
-
/// background-color: #0f0;
|
36 |
-
/// }
|
37 |
-
///
|
38 |
-
/// button:active,
|
39 |
-
/// input[type="button"]:active,
|
40 |
-
/// input[type="reset"]:active,
|
41 |
-
/// input[type="submit"]:active {
|
42 |
-
/// background-color: #00f;
|
43 |
-
/// }
|
44 |
-
///
|
45 |
-
/// @require assign-inputs
|
46 |
-
///
|
47 |
-
/// @type List
|
48 |
-
///
|
49 |
-
/// @todo Remove double assigned variables (Lines 59–62) in v5.0.0
|
50 |
-
|
51 |
-
$buttons-list: 'button',
|
52 |
-
'input[type="button"]',
|
53 |
-
'input[type="reset"]',
|
54 |
-
'input[type="submit"]';
|
55 |
-
|
56 |
-
$all-buttons: assign-inputs($buttons-list);
|
57 |
-
$all-buttons-active: assign-inputs($buttons-list, active);
|
58 |
-
$all-buttons-focus: assign-inputs($buttons-list, focus);
|
59 |
-
$all-buttons-hover: assign-inputs($buttons-list, hover);
|
60 |
-
|
61 |
-
$all-button-inputs: $all-buttons;
|
62 |
-
$all-button-inputs-active: $all-buttons-active;
|
63 |
-
$all-button-inputs-focus: $all-buttons-focus;
|
64 |
-
$all-button-inputs-hover: $all-buttons-hover;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_clearfix.scss
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Provides an easy way to include a clearfix for containing floats.
|
4 |
-
///
|
5 |
-
/// @link http://cssmojo.com/latest_new_clearfix_so_far/
|
6 |
-
///
|
7 |
-
/// @example scss - Usage
|
8 |
-
/// .element {
|
9 |
-
/// @include clearfix;
|
10 |
-
/// }
|
11 |
-
///
|
12 |
-
/// @example css - CSS Output
|
13 |
-
/// .element::after {
|
14 |
-
/// clear: both;
|
15 |
-
/// content: "";
|
16 |
-
/// display: table;
|
17 |
-
/// }
|
18 |
-
|
19 |
-
@mixin clearfix {
|
20 |
-
&::after {
|
21 |
-
clear: both;
|
22 |
-
content: "";
|
23 |
-
display: table;
|
24 |
-
}
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_ellipsis.scss
DELETED
@@ -1,30 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Truncates text and adds an ellipsis to represent overflow.
|
4 |
-
///
|
5 |
-
/// @param {Number} $width [100%]
|
6 |
-
/// Max-width for the string to respect before being truncated
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element {
|
10 |
-
/// @include ellipsis;
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// @example css - CSS Output
|
14 |
-
/// .element {
|
15 |
-
/// display: inline-block;
|
16 |
-
/// max-width: 100%;
|
17 |
-
/// overflow: hidden;
|
18 |
-
/// text-overflow: ellipsis;
|
19 |
-
/// white-space: nowrap;
|
20 |
-
/// word-wrap: normal;
|
21 |
-
/// }
|
22 |
-
|
23 |
-
@mixin ellipsis($width: 100%) {
|
24 |
-
display: inline-block;
|
25 |
-
max-width: $width;
|
26 |
-
overflow: hidden;
|
27 |
-
text-overflow: ellipsis;
|
28 |
-
white-space: nowrap;
|
29 |
-
word-wrap: normal;
|
30 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_font-stacks.scss
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Georgia font stack.
|
4 |
-
///
|
5 |
-
/// @type List
|
6 |
-
|
7 |
-
$georgia: "Georgia", "Cambria", "Times New Roman", "Times", serif;
|
8 |
-
|
9 |
-
/// Helvetica font stack.
|
10 |
-
///
|
11 |
-
/// @type List
|
12 |
-
|
13 |
-
$helvetica: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif;
|
14 |
-
|
15 |
-
/// Lucida Grande font stack.
|
16 |
-
///
|
17 |
-
/// @type List
|
18 |
-
|
19 |
-
$lucida-grande: "Lucida Grande", "Tahoma", "Verdana", "Arial", sans-serif;
|
20 |
-
|
21 |
-
/// Monospace font stack.
|
22 |
-
///
|
23 |
-
/// @type List
|
24 |
-
|
25 |
-
$monospace: "Bitstream Vera Sans Mono", "Consolas", "Courier", monospace;
|
26 |
-
|
27 |
-
/// Verdana font stack.
|
28 |
-
///
|
29 |
-
/// @type List
|
30 |
-
|
31 |
-
$verdana: "Verdana", "Geneva", sans-serif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_hide-text.scss
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
/// Hides the text in an element, commonly used to show an image. Some elements will need block-level styles applied.
|
2 |
-
///
|
3 |
-
/// @link http://zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement
|
4 |
-
///
|
5 |
-
/// @example scss - Usage
|
6 |
-
/// .element {
|
7 |
-
/// @include hide-text;
|
8 |
-
/// }
|
9 |
-
///
|
10 |
-
/// @example css - CSS Output
|
11 |
-
/// .element {
|
12 |
-
/// overflow: hidden;
|
13 |
-
/// text-indent: 101%;
|
14 |
-
/// white-space: nowrap;
|
15 |
-
/// }
|
16 |
-
///
|
17 |
-
/// @todo Remove height argument in v5.0.0
|
18 |
-
|
19 |
-
@mixin hide-text($height: null) {
|
20 |
-
overflow: hidden;
|
21 |
-
text-indent: 101%;
|
22 |
-
white-space: nowrap;
|
23 |
-
|
24 |
-
@if $height {
|
25 |
-
@warn "The `hide-text` mixin has changed and no longer requires a height. The height argument will no longer be accepted in v5.0.0";
|
26 |
-
}
|
27 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_margin.scss
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Provides a quick method for targeting `margin` on specific sides of a box. Use a `null` value to “skip” a side.
|
4 |
-
///
|
5 |
-
/// @param {Arglist} $vals
|
6 |
-
/// List of arguments
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element {
|
10 |
-
/// @include margin(null 10px 3em 20vh);
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// @example css - CSS Output
|
14 |
-
/// .element {
|
15 |
-
/// margin-bottom: 3em;
|
16 |
-
/// margin-left: 20vh;
|
17 |
-
/// margin-right: 10px;
|
18 |
-
/// }
|
19 |
-
///
|
20 |
-
/// @require {mixin} directional-property
|
21 |
-
///
|
22 |
-
/// @output `margin`
|
23 |
-
|
24 |
-
@mixin margin($vals...) {
|
25 |
-
@include directional-property(margin, false, $vals...);
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_padding.scss
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Provides a quick method for targeting `padding` on specific sides of a box. Use a `null` value to “skip” a side.
|
4 |
-
///
|
5 |
-
/// @param {Arglist} $vals
|
6 |
-
/// List of arguments
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element {
|
10 |
-
/// @include padding(12vh null 10px 5%);
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// @example css - CSS Output
|
14 |
-
/// .element {
|
15 |
-
/// padding-bottom: 10px;
|
16 |
-
/// padding-left: 5%;
|
17 |
-
/// padding-top: 12vh;
|
18 |
-
/// }
|
19 |
-
///
|
20 |
-
/// @require {mixin} directional-property
|
21 |
-
///
|
22 |
-
/// @output `padding`
|
23 |
-
|
24 |
-
@mixin padding($vals...) {
|
25 |
-
@include directional-property(padding, false, $vals...);
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_position.scss
DELETED
@@ -1,48 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Provides a quick method for setting an element’s position. Use a `null` value to “skip” a side.
|
4 |
-
///
|
5 |
-
/// @param {Position} $position [relative]
|
6 |
-
/// A CSS position value
|
7 |
-
///
|
8 |
-
/// @param {Arglist} $coordinates [null null null null]
|
9 |
-
/// List of values that correspond to the 4-value syntax for the edges of a box
|
10 |
-
///
|
11 |
-
/// @example scss - Usage
|
12 |
-
/// .element {
|
13 |
-
/// @include position(absolute, 0 null null 10em);
|
14 |
-
/// }
|
15 |
-
///
|
16 |
-
/// @example css - CSS Output
|
17 |
-
/// .element {
|
18 |
-
/// left: 10em;
|
19 |
-
/// position: absolute;
|
20 |
-
/// top: 0;
|
21 |
-
/// }
|
22 |
-
///
|
23 |
-
/// @require {function} is-length
|
24 |
-
/// @require {function} unpack
|
25 |
-
|
26 |
-
@mixin position($position: relative, $coordinates: null null null null) {
|
27 |
-
@if type-of($position) == list {
|
28 |
-
$coordinates: $position;
|
29 |
-
$position: relative;
|
30 |
-
}
|
31 |
-
|
32 |
-
$coordinates: unpack($coordinates);
|
33 |
-
|
34 |
-
$offsets: (
|
35 |
-
top: nth($coordinates, 1),
|
36 |
-
right: nth($coordinates, 2),
|
37 |
-
bottom: nth($coordinates, 3),
|
38 |
-
left: nth($coordinates, 4)
|
39 |
-
);
|
40 |
-
|
41 |
-
position: $position;
|
42 |
-
|
43 |
-
@each $offset, $value in $offsets {
|
44 |
-
@if is-length($value) {
|
45 |
-
#{$offset}: $value;
|
46 |
-
}
|
47 |
-
}
|
48 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_prefixer.scss
DELETED
@@ -1,66 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// A mixin for generating vendor prefixes on non-standardized properties.
|
4 |
-
///
|
5 |
-
/// @param {String} $property
|
6 |
-
/// Property to prefix
|
7 |
-
///
|
8 |
-
/// @param {*} $value
|
9 |
-
/// Value to use
|
10 |
-
///
|
11 |
-
/// @param {List} $prefixes
|
12 |
-
/// Prefixes to define
|
13 |
-
///
|
14 |
-
/// @example scss - Usage
|
15 |
-
/// .element {
|
16 |
-
/// @include prefixer(border-radius, 10px, webkit ms spec);
|
17 |
-
/// }
|
18 |
-
///
|
19 |
-
/// @example css - CSS Output
|
20 |
-
/// .element {
|
21 |
-
/// -webkit-border-radius: 10px;
|
22 |
-
/// -moz-border-radius: 10px;
|
23 |
-
/// border-radius: 10px;
|
24 |
-
/// }
|
25 |
-
///
|
26 |
-
/// @require {variable} $prefix-for-webkit
|
27 |
-
/// @require {variable} $prefix-for-mozilla
|
28 |
-
/// @require {variable} $prefix-for-microsoft
|
29 |
-
/// @require {variable} $prefix-for-opera
|
30 |
-
/// @require {variable} $prefix-for-spec
|
31 |
-
|
32 |
-
@mixin prefixer($property, $value, $prefixes) {
|
33 |
-
@each $prefix in $prefixes {
|
34 |
-
@if $prefix == webkit {
|
35 |
-
@if $prefix-for-webkit {
|
36 |
-
-webkit-#{$property}: $value;
|
37 |
-
}
|
38 |
-
} @else if $prefix == moz {
|
39 |
-
@if $prefix-for-mozilla {
|
40 |
-
-moz-#{$property}: $value;
|
41 |
-
}
|
42 |
-
} @else if $prefix == ms {
|
43 |
-
@if $prefix-for-microsoft {
|
44 |
-
-ms-#{$property}: $value;
|
45 |
-
}
|
46 |
-
} @else if $prefix == o {
|
47 |
-
@if $prefix-for-opera {
|
48 |
-
-o-#{$property}: $value;
|
49 |
-
}
|
50 |
-
} @else if $prefix == spec {
|
51 |
-
@if $prefix-for-spec {
|
52 |
-
#{$property}: $value;
|
53 |
-
}
|
54 |
-
} @else {
|
55 |
-
@warn "Unrecognized prefix: #{$prefix}";
|
56 |
-
}
|
57 |
-
}
|
58 |
-
}
|
59 |
-
|
60 |
-
@mixin disable-prefix-for-all() {
|
61 |
-
$prefix-for-webkit: false !global;
|
62 |
-
$prefix-for-mozilla: false !global;
|
63 |
-
$prefix-for-microsoft: false !global;
|
64 |
-
$prefix-for-opera: false !global;
|
65 |
-
$prefix-for-spec: false !global;
|
66 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_retina-image.scss
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) {
|
2 |
-
@if $asset-pipeline {
|
3 |
-
background-image: image-url("#{$filename}.#{$extension}");
|
4 |
-
} @else {
|
5 |
-
background-image: url("#{$filename}.#{$extension}");
|
6 |
-
}
|
7 |
-
|
8 |
-
@include hidpi {
|
9 |
-
@if $asset-pipeline {
|
10 |
-
@if $retina-filename {
|
11 |
-
background-image: image-url("#{$retina-filename}.#{$extension}");
|
12 |
-
} @else {
|
13 |
-
background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}");
|
14 |
-
}
|
15 |
-
} @else {
|
16 |
-
@if $retina-filename {
|
17 |
-
background-image: url("#{$retina-filename}.#{$extension}");
|
18 |
-
} @else {
|
19 |
-
background-image: url("#{$filename}#{$retina-suffix}.#{$extension}");
|
20 |
-
}
|
21 |
-
}
|
22 |
-
|
23 |
-
background-size: $background-size;
|
24 |
-
}
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_size.scss
DELETED
@@ -1,51 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Sets the `width` and `height` of the element.
|
4 |
-
///
|
5 |
-
/// @param {List} $size
|
6 |
-
/// A list of at most 2 size values.
|
7 |
-
///
|
8 |
-
/// If there is only a single value in `$size` it is used for both width and height. All units are supported.
|
9 |
-
///
|
10 |
-
/// @example scss - Usage
|
11 |
-
/// .first-element {
|
12 |
-
/// @include size(2em);
|
13 |
-
/// }
|
14 |
-
///
|
15 |
-
/// .second-element {
|
16 |
-
/// @include size(auto 10em);
|
17 |
-
/// }
|
18 |
-
///
|
19 |
-
/// @example css - CSS Output
|
20 |
-
/// .first-element {
|
21 |
-
/// width: 2em;
|
22 |
-
/// height: 2em;
|
23 |
-
/// }
|
24 |
-
///
|
25 |
-
/// .second-element {
|
26 |
-
/// width: auto;
|
27 |
-
/// height: 10em;
|
28 |
-
/// }
|
29 |
-
///
|
30 |
-
/// @todo Refactor in 5.0.0 to use a comma-separated argument
|
31 |
-
|
32 |
-
@mixin size($value) {
|
33 |
-
$width: nth($value, 1);
|
34 |
-
$height: $width;
|
35 |
-
|
36 |
-
@if length($value) > 1 {
|
37 |
-
$height: nth($value, 2);
|
38 |
-
}
|
39 |
-
|
40 |
-
@if is-size($height) {
|
41 |
-
height: $height;
|
42 |
-
} @else {
|
43 |
-
@warn "`#{$height}` is not a valid length for the `$height` parameter in the `size` mixin.";
|
44 |
-
}
|
45 |
-
|
46 |
-
@if is-size($width) {
|
47 |
-
width: $width;
|
48 |
-
} @else {
|
49 |
-
@warn "`#{$width}` is not a valid length for the `$width` parameter in the `size` mixin.";
|
50 |
-
}
|
51 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_text-inputs.scss
DELETED
@@ -1,113 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Generates variables for all text-based inputs. Please note that you must use interpolation on the variable: `#{$all-text-inputs}`.
|
4 |
-
///
|
5 |
-
/// @example scss - Usage
|
6 |
-
/// #{$all-text-inputs} {
|
7 |
-
/// border: 1px solid #f00;
|
8 |
-
/// }
|
9 |
-
///
|
10 |
-
/// #{$all-text-inputs-focus},
|
11 |
-
/// #{$all-text-inputs-hover} {
|
12 |
-
/// border: 1px solid #0f0;
|
13 |
-
/// }
|
14 |
-
///
|
15 |
-
/// #{$all-text-inputs-active} {
|
16 |
-
/// border: 1px solid #00f;
|
17 |
-
/// }
|
18 |
-
///
|
19 |
-
/// @example css - CSS Output
|
20 |
-
/// input[type="color"],
|
21 |
-
/// input[type="date"],
|
22 |
-
/// input[type="datetime"],
|
23 |
-
/// input[type="datetime-local"],
|
24 |
-
/// input[type="email"],
|
25 |
-
/// input[type="month"],
|
26 |
-
/// input[type="number"],
|
27 |
-
/// input[type="password"],
|
28 |
-
/// input[type="search"],
|
29 |
-
/// input[type="tel"],
|
30 |
-
/// input[type="text"],
|
31 |
-
/// input[type="time"],
|
32 |
-
/// input[type="url"],
|
33 |
-
/// input[type="week"],
|
34 |
-
/// textarea {
|
35 |
-
/// border: 1px solid #f00;
|
36 |
-
/// }
|
37 |
-
///
|
38 |
-
/// input[type="color"]:focus,
|
39 |
-
/// input[type="date"]:focus,
|
40 |
-
/// input[type="datetime"]:focus,
|
41 |
-
/// input[type="datetime-local"]:focus,
|
42 |
-
/// input[type="email"]:focus,
|
43 |
-
/// input[type="month"]:focus,
|
44 |
-
/// input[type="number"]:focus,
|
45 |
-
/// input[type="password"]:focus,
|
46 |
-
/// input[type="search"]:focus,
|
47 |
-
/// input[type="tel"]:focus,
|
48 |
-
/// input[type="text"]:focus,
|
49 |
-
/// input[type="time"]:focus,
|
50 |
-
/// input[type="url"]:focus,
|
51 |
-
/// input[type="week"]:focus,
|
52 |
-
/// textarea:focus,
|
53 |
-
/// input[type="color"]:hover,
|
54 |
-
/// input[type="date"]:hover,
|
55 |
-
/// input[type="datetime"]:hover,
|
56 |
-
/// input[type="datetime-local"]:hover,
|
57 |
-
/// input[type="email"]:hover,
|
58 |
-
/// input[type="month"]:hover,
|
59 |
-
/// input[type="number"]:hover,
|
60 |
-
/// input[type="password"]:hover,
|
61 |
-
/// input[type="search"]:hover,
|
62 |
-
/// input[type="tel"]:hover,
|
63 |
-
/// input[type="text"]:hover,
|
64 |
-
/// input[type="time"]:hover,
|
65 |
-
/// input[type="url"]:hover,
|
66 |
-
/// input[type="week"]:hover,
|
67 |
-
/// textarea:hover {
|
68 |
-
/// border: 1px solid #0f0;
|
69 |
-
/// }
|
70 |
-
///
|
71 |
-
/// input[type="color"]:active,
|
72 |
-
/// input[type="date"]:active,
|
73 |
-
/// input[type="datetime"]:active,
|
74 |
-
/// input[type="datetime-local"]:active,
|
75 |
-
/// input[type="email"]:active,
|
76 |
-
/// input[type="month"]:active,
|
77 |
-
/// input[type="number"]:active,
|
78 |
-
/// input[type="password"]:active,
|
79 |
-
/// input[type="search"]:active,
|
80 |
-
/// input[type="tel"]:active,
|
81 |
-
/// input[type="text"]:active,
|
82 |
-
/// input[type="time"]:active,
|
83 |
-
/// input[type="url"]:active,
|
84 |
-
/// input[type="week"]:active,
|
85 |
-
/// textarea:active {
|
86 |
-
/// border: 1px solid #00f;
|
87 |
-
/// }
|
88 |
-
///
|
89 |
-
/// @require assign-inputs
|
90 |
-
///
|
91 |
-
/// @type List
|
92 |
-
|
93 |
-
$text-inputs-list: 'input[type="color"]',
|
94 |
-
'input[type="date"]',
|
95 |
-
'input[type="datetime"]',
|
96 |
-
'input[type="datetime-local"]',
|
97 |
-
'input[type="email"]',
|
98 |
-
'input[type="month"]',
|
99 |
-
'input[type="number"]',
|
100 |
-
'input[type="password"]',
|
101 |
-
'input[type="search"]',
|
102 |
-
'input[type="tel"]',
|
103 |
-
'input[type="text"]',
|
104 |
-
'input[type="time"]',
|
105 |
-
'input[type="url"]',
|
106 |
-
'input[type="week"]',
|
107 |
-
'input:not([type])',
|
108 |
-
'textarea';
|
109 |
-
|
110 |
-
$all-text-inputs: assign-inputs($text-inputs-list);
|
111 |
-
$all-text-inputs-active: assign-inputs($text-inputs-list, active);
|
112 |
-
$all-text-inputs-focus: assign-inputs($text-inputs-list, focus);
|
113 |
-
$all-text-inputs-hover: assign-inputs($text-inputs-list, hover);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_timing-functions.scss
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
|
4 |
-
///
|
5 |
-
/// Timing functions are the same as demoed here: http://jqueryui.com/resources/demos/effect/easing.html
|
6 |
-
///
|
7 |
-
/// @type cubic-bezier
|
8 |
-
|
9 |
-
$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
|
10 |
-
$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
|
11 |
-
$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
|
12 |
-
$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
13 |
-
$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
|
14 |
-
$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
|
15 |
-
$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
|
16 |
-
$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
|
17 |
-
|
18 |
-
$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
|
19 |
-
$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
20 |
-
$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
|
21 |
-
$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
|
22 |
-
$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
|
23 |
-
$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
|
24 |
-
$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
|
25 |
-
$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
|
26 |
-
|
27 |
-
$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
|
28 |
-
$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
|
29 |
-
$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
|
30 |
-
$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
|
31 |
-
$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
|
32 |
-
$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
|
33 |
-
$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
|
34 |
-
$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_triangle.scss
DELETED
@@ -1,63 +0,0 @@
|
|
1 |
-
@mixin triangle($size, $color, $direction) {
|
2 |
-
$width: nth($size, 1);
|
3 |
-
$height: nth($size, length($size));
|
4 |
-
$foreground-color: nth($color, 1);
|
5 |
-
$background-color: if(length($color) == 2, nth($color, 2), transparent);
|
6 |
-
height: 0;
|
7 |
-
width: 0;
|
8 |
-
|
9 |
-
@if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
|
10 |
-
$width: $width / 2;
|
11 |
-
$height: if(length($size) > 1, $height, $height/2);
|
12 |
-
|
13 |
-
@if $direction == up {
|
14 |
-
border-bottom: $height solid $foreground-color;
|
15 |
-
border-left: $width solid $background-color;
|
16 |
-
border-right: $width solid $background-color;
|
17 |
-
} @else if $direction == right {
|
18 |
-
border-bottom: $width solid $background-color;
|
19 |
-
border-left: $height solid $foreground-color;
|
20 |
-
border-top: $width solid $background-color;
|
21 |
-
} @else if $direction == down {
|
22 |
-
border-left: $width solid $background-color;
|
23 |
-
border-right: $width solid $background-color;
|
24 |
-
border-top: $height solid $foreground-color;
|
25 |
-
} @else if $direction == left {
|
26 |
-
border-bottom: $width solid $background-color;
|
27 |
-
border-right: $height solid $foreground-color;
|
28 |
-
border-top: $width solid $background-color;
|
29 |
-
}
|
30 |
-
} @else if ($direction == up-right) or ($direction == up-left) {
|
31 |
-
border-top: $height solid $foreground-color;
|
32 |
-
|
33 |
-
@if $direction == up-right {
|
34 |
-
border-left: $width solid $background-color;
|
35 |
-
} @else if $direction == up-left {
|
36 |
-
border-right: $width solid $background-color;
|
37 |
-
}
|
38 |
-
} @else if ($direction == down-right) or ($direction == down-left) {
|
39 |
-
border-bottom: $height solid $foreground-color;
|
40 |
-
|
41 |
-
@if $direction == down-right {
|
42 |
-
border-left: $width solid $background-color;
|
43 |
-
} @else if $direction == down-left {
|
44 |
-
border-right: $width solid $background-color;
|
45 |
-
}
|
46 |
-
} @else if ($direction == inset-up) {
|
47 |
-
border-color: $background-color $background-color $foreground-color;
|
48 |
-
border-style: solid;
|
49 |
-
border-width: $height $width;
|
50 |
-
} @else if ($direction == inset-down) {
|
51 |
-
border-color: $foreground-color $background-color $background-color;
|
52 |
-
border-style: solid;
|
53 |
-
border-width: $height $width;
|
54 |
-
} @else if ($direction == inset-right) {
|
55 |
-
border-color: $background-color $background-color $background-color $foreground-color;
|
56 |
-
border-style: solid;
|
57 |
-
border-width: $width $height;
|
58 |
-
} @else if ($direction == inset-left) {
|
59 |
-
border-color: $background-color $foreground-color $background-color $background-color;
|
60 |
-
border-style: solid;
|
61 |
-
border-width: $width $height;
|
62 |
-
}
|
63 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/addons/_word-wrap.scss
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Provides an easy way to change the `word-wrap` property.
|
4 |
-
///
|
5 |
-
/// @param {String} $wrap [break-word]
|
6 |
-
/// Value for the `word-break` property.
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .wrapper {
|
10 |
-
/// @include word-wrap(break-word);
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// @example css - CSS Output
|
14 |
-
/// .wrapper {
|
15 |
-
/// overflow-wrap: break-word;
|
16 |
-
/// word-break: break-all;
|
17 |
-
/// word-wrap: break-word;
|
18 |
-
/// }
|
19 |
-
|
20 |
-
@mixin word-wrap($wrap: break-word) {
|
21 |
-
overflow-wrap: $wrap;
|
22 |
-
word-wrap: $wrap;
|
23 |
-
|
24 |
-
@if $wrap == break-word {
|
25 |
-
word-break: break-all;
|
26 |
-
} @else {
|
27 |
-
word-break: $wrap;
|
28 |
-
}
|
29 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_animation.scss
DELETED
@@ -1,43 +0,0 @@
|
|
1 |
-
// http://www.w3.org/TR/css3-animations/#the-animation-name-property-
|
2 |
-
// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
|
3 |
-
|
4 |
-
@mixin animation($animations...) {
|
5 |
-
@include prefixer(animation, $animations, webkit moz spec);
|
6 |
-
}
|
7 |
-
|
8 |
-
@mixin animation-name($names...) {
|
9 |
-
@include prefixer(animation-name, $names, webkit moz spec);
|
10 |
-
}
|
11 |
-
|
12 |
-
@mixin animation-duration($times...) {
|
13 |
-
@include prefixer(animation-duration, $times, webkit moz spec);
|
14 |
-
}
|
15 |
-
|
16 |
-
@mixin animation-timing-function($motions...) {
|
17 |
-
// ease | linear | ease-in | ease-out | ease-in-out
|
18 |
-
@include prefixer(animation-timing-function, $motions, webkit moz spec);
|
19 |
-
}
|
20 |
-
|
21 |
-
@mixin animation-iteration-count($values...) {
|
22 |
-
// infinite | <number>
|
23 |
-
@include prefixer(animation-iteration-count, $values, webkit moz spec);
|
24 |
-
}
|
25 |
-
|
26 |
-
@mixin animation-direction($directions...) {
|
27 |
-
// normal | alternate
|
28 |
-
@include prefixer(animation-direction, $directions, webkit moz spec);
|
29 |
-
}
|
30 |
-
|
31 |
-
@mixin animation-play-state($states...) {
|
32 |
-
// running | paused
|
33 |
-
@include prefixer(animation-play-state, $states, webkit moz spec);
|
34 |
-
}
|
35 |
-
|
36 |
-
@mixin animation-delay($times...) {
|
37 |
-
@include prefixer(animation-delay, $times, webkit moz spec);
|
38 |
-
}
|
39 |
-
|
40 |
-
@mixin animation-fill-mode($modes...) {
|
41 |
-
// none | forwards | backwards | both
|
42 |
-
@include prefixer(animation-fill-mode, $modes, webkit moz spec);
|
43 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_appearance.scss
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
@mixin appearance($value) {
|
2 |
-
@include prefixer(appearance, $value, webkit moz ms o spec);
|
3 |
-
}
|
|
|
|
|
|
mixins/sass/bourbon/css3/_backface-visibility.scss
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
@mixin backface-visibility($visibility) {
|
2 |
-
@include prefixer(backface-visibility, $visibility, webkit spec);
|
3 |
-
}
|
|
|
|
|
|
mixins/sass/bourbon/css3/_background-image.scss
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
//************************************************************************//
|
2 |
-
// Background-image property for adding multiple background images with
|
3 |
-
// gradients, or for stringing multiple gradients together.
|
4 |
-
//************************************************************************//
|
5 |
-
|
6 |
-
@mixin background-image($images...) {
|
7 |
-
$webkit-images: ();
|
8 |
-
$spec-images: ();
|
9 |
-
|
10 |
-
@each $image in $images {
|
11 |
-
$webkit-image: ();
|
12 |
-
$spec-image: ();
|
13 |
-
|
14 |
-
@if (type-of($image) == string) {
|
15 |
-
$url-str: str-slice($image, 1, 3);
|
16 |
-
$gradient-type: str-slice($image, 1, 6);
|
17 |
-
|
18 |
-
@if $url-str == "url" {
|
19 |
-
$webkit-image: $image;
|
20 |
-
$spec-image: $image;
|
21 |
-
}
|
22 |
-
|
23 |
-
@else if $gradient-type == "linear" {
|
24 |
-
$gradients: _linear-gradient-parser($image);
|
25 |
-
$webkit-image: map-get($gradients, webkit-image);
|
26 |
-
$spec-image: map-get($gradients, spec-image);
|
27 |
-
}
|
28 |
-
|
29 |
-
@else if $gradient-type == "radial" {
|
30 |
-
$gradients: _radial-gradient-parser($image);
|
31 |
-
$webkit-image: map-get($gradients, webkit-image);
|
32 |
-
$spec-image: map-get($gradients, spec-image);
|
33 |
-
}
|
34 |
-
}
|
35 |
-
|
36 |
-
$webkit-images: append($webkit-images, $webkit-image, comma);
|
37 |
-
$spec-images: append($spec-images, $spec-image, comma);
|
38 |
-
}
|
39 |
-
|
40 |
-
background-image: $webkit-images;
|
41 |
-
background-image: $spec-images;
|
42 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_background.scss
DELETED
@@ -1,55 +0,0 @@
|
|
1 |
-
//************************************************************************//
|
2 |
-
// Background property for adding multiple backgrounds using shorthand
|
3 |
-
// notation.
|
4 |
-
//************************************************************************//
|
5 |
-
|
6 |
-
@mixin background($backgrounds...) {
|
7 |
-
$webkit-backgrounds: ();
|
8 |
-
$spec-backgrounds: ();
|
9 |
-
|
10 |
-
@each $background in $backgrounds {
|
11 |
-
$webkit-background: ();
|
12 |
-
$spec-background: ();
|
13 |
-
$background-type: type-of($background);
|
14 |
-
|
15 |
-
@if $background-type == string or $background-type == list {
|
16 |
-
$background-str: if($background-type == list, nth($background, 1), $background);
|
17 |
-
|
18 |
-
$url-str: str-slice($background-str, 1, 3);
|
19 |
-
$gradient-type: str-slice($background-str, 1, 6);
|
20 |
-
|
21 |
-
@if $url-str == "url" {
|
22 |
-
$webkit-background: $background;
|
23 |
-
$spec-background: $background;
|
24 |
-
}
|
25 |
-
|
26 |
-
@else if $gradient-type == "linear" {
|
27 |
-
$gradients: _linear-gradient-parser("#{$background}");
|
28 |
-
$webkit-background: map-get($gradients, webkit-image);
|
29 |
-
$spec-background: map-get($gradients, spec-image);
|
30 |
-
}
|
31 |
-
|
32 |
-
@else if $gradient-type == "radial" {
|
33 |
-
$gradients: _radial-gradient-parser("#{$background}");
|
34 |
-
$webkit-background: map-get($gradients, webkit-image);
|
35 |
-
$spec-background: map-get($gradients, spec-image);
|
36 |
-
}
|
37 |
-
|
38 |
-
@else {
|
39 |
-
$webkit-background: $background;
|
40 |
-
$spec-background: $background;
|
41 |
-
}
|
42 |
-
}
|
43 |
-
|
44 |
-
@else {
|
45 |
-
$webkit-background: $background;
|
46 |
-
$spec-background: $background;
|
47 |
-
}
|
48 |
-
|
49 |
-
$webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma);
|
50 |
-
$spec-backgrounds: append($spec-backgrounds, $spec-background, comma);
|
51 |
-
}
|
52 |
-
|
53 |
-
background: $webkit-backgrounds;
|
54 |
-
background: $spec-backgrounds;
|
55 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_border-image.scss
DELETED
@@ -1,59 +0,0 @@
|
|
1 |
-
@mixin border-image($borders...) {
|
2 |
-
$webkit-borders: ();
|
3 |
-
$spec-borders: ();
|
4 |
-
|
5 |
-
@each $border in $borders {
|
6 |
-
$webkit-border: ();
|
7 |
-
$spec-border: ();
|
8 |
-
$border-type: type-of($border);
|
9 |
-
|
10 |
-
@if $border-type == string or list {
|
11 |
-
$border-str: if($border-type == list, nth($border, 1), $border);
|
12 |
-
|
13 |
-
$url-str: str-slice($border-str, 1, 3);
|
14 |
-
$gradient-type: str-slice($border-str, 1, 6);
|
15 |
-
|
16 |
-
@if $url-str == "url" {
|
17 |
-
$webkit-border: $border;
|
18 |
-
$spec-border: $border;
|
19 |
-
}
|
20 |
-
|
21 |
-
@else if $gradient-type == "linear" {
|
22 |
-
$gradients: _linear-gradient-parser("#{$border}");
|
23 |
-
$webkit-border: map-get($gradients, webkit-image);
|
24 |
-
$spec-border: map-get($gradients, spec-image);
|
25 |
-
}
|
26 |
-
|
27 |
-
@else if $gradient-type == "radial" {
|
28 |
-
$gradients: _radial-gradient-parser("#{$border}");
|
29 |
-
$webkit-border: map-get($gradients, webkit-image);
|
30 |
-
$spec-border: map-get($gradients, spec-image);
|
31 |
-
}
|
32 |
-
|
33 |
-
@else {
|
34 |
-
$webkit-border: $border;
|
35 |
-
$spec-border: $border;
|
36 |
-
}
|
37 |
-
}
|
38 |
-
|
39 |
-
@else {
|
40 |
-
$webkit-border: $border;
|
41 |
-
$spec-border: $border;
|
42 |
-
}
|
43 |
-
|
44 |
-
$webkit-borders: append($webkit-borders, $webkit-border, comma);
|
45 |
-
$spec-borders: append($spec-borders, $spec-border, comma);
|
46 |
-
}
|
47 |
-
|
48 |
-
-webkit-border-image: $webkit-borders;
|
49 |
-
border-image: $spec-borders;
|
50 |
-
border-style: solid;
|
51 |
-
}
|
52 |
-
|
53 |
-
//Examples:
|
54 |
-
// @include border-image(url("image.png"));
|
55 |
-
// @include border-image(url("image.png") 20 stretch);
|
56 |
-
// @include border-image(linear-gradient(45deg, orange, yellow));
|
57 |
-
// @include border-image(linear-gradient(45deg, orange, yellow) stretch);
|
58 |
-
// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round);
|
59 |
-
// @include border-image(radial-gradient(top, cover, orange, yellow, orange));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_calc.scss
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
@mixin calc($property, $value) {
|
2 |
-
#{$property}: -webkit-calc(#{$value});
|
3 |
-
#{$property}: calc(#{$value});
|
4 |
-
}
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_columns.scss
DELETED
@@ -1,47 +0,0 @@
|
|
1 |
-
@mixin columns($arg: auto) {
|
2 |
-
// <column-count> || <column-width>
|
3 |
-
@include prefixer(columns, $arg, webkit moz spec);
|
4 |
-
}
|
5 |
-
|
6 |
-
@mixin column-count($int: auto) {
|
7 |
-
// auto || integer
|
8 |
-
@include prefixer(column-count, $int, webkit moz spec);
|
9 |
-
}
|
10 |
-
|
11 |
-
@mixin column-gap($length: normal) {
|
12 |
-
// normal || length
|
13 |
-
@include prefixer(column-gap, $length, webkit moz spec);
|
14 |
-
}
|
15 |
-
|
16 |
-
@mixin column-fill($arg: auto) {
|
17 |
-
// auto || length
|
18 |
-
@include prefixer(column-fill, $arg, webkit moz spec);
|
19 |
-
}
|
20 |
-
|
21 |
-
@mixin column-rule($arg) {
|
22 |
-
// <border-width> || <border-style> || <color>
|
23 |
-
@include prefixer(column-rule, $arg, webkit moz spec);
|
24 |
-
}
|
25 |
-
|
26 |
-
@mixin column-rule-color($color) {
|
27 |
-
@include prefixer(column-rule-color, $color, webkit moz spec);
|
28 |
-
}
|
29 |
-
|
30 |
-
@mixin column-rule-style($style: none) {
|
31 |
-
// none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid
|
32 |
-
@include prefixer(column-rule-style, $style, webkit moz spec);
|
33 |
-
}
|
34 |
-
|
35 |
-
@mixin column-rule-width ($width: none) {
|
36 |
-
@include prefixer(column-rule-width, $width, webkit moz spec);
|
37 |
-
}
|
38 |
-
|
39 |
-
@mixin column-span($arg: none) {
|
40 |
-
// none || all
|
41 |
-
@include prefixer(column-span, $arg, webkit moz spec);
|
42 |
-
}
|
43 |
-
|
44 |
-
@mixin column-width($length: auto) {
|
45 |
-
// auto || length
|
46 |
-
@include prefixer(column-width, $length, webkit moz spec);
|
47 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_filter.scss
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
@mixin filter($function: none) {
|
2 |
-
// <filter-function> [<filter-function]* | none
|
3 |
-
@include prefixer(filter, $function, webkit spec);
|
4 |
-
}
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_flex-box.scss
DELETED
@@ -1,287 +0,0 @@
|
|
1 |
-
// CSS3 Flexible Box Model and property defaults
|
2 |
-
|
3 |
-
// Custom shorthand notation for flexbox
|
4 |
-
@mixin box($orient: inline-axis, $pack: start, $align: stretch) {
|
5 |
-
@include display-box;
|
6 |
-
@include box-orient($orient);
|
7 |
-
@include box-pack($pack);
|
8 |
-
@include box-align($align);
|
9 |
-
}
|
10 |
-
|
11 |
-
@mixin display-box {
|
12 |
-
display: -webkit-box;
|
13 |
-
display: -moz-box;
|
14 |
-
display: -ms-flexbox; // IE 10
|
15 |
-
display: box;
|
16 |
-
}
|
17 |
-
|
18 |
-
@mixin box-orient($orient: inline-axis) {
|
19 |
-
// horizontal|vertical|inline-axis|block-axis|inherit
|
20 |
-
@include prefixer(box-orient, $orient, webkit moz spec);
|
21 |
-
}
|
22 |
-
|
23 |
-
@mixin box-pack($pack: start) {
|
24 |
-
// start|end|center|justify
|
25 |
-
@include prefixer(box-pack, $pack, webkit moz spec);
|
26 |
-
-ms-flex-pack: $pack; // IE 10
|
27 |
-
}
|
28 |
-
|
29 |
-
@mixin box-align($align: stretch) {
|
30 |
-
// start|end|center|baseline|stretch
|
31 |
-
@include prefixer(box-align, $align, webkit moz spec);
|
32 |
-
-ms-flex-align: $align; // IE 10
|
33 |
-
}
|
34 |
-
|
35 |
-
@mixin box-direction($direction: normal) {
|
36 |
-
// normal|reverse|inherit
|
37 |
-
@include prefixer(box-direction, $direction, webkit moz spec);
|
38 |
-
-ms-flex-direction: $direction; // IE 10
|
39 |
-
}
|
40 |
-
|
41 |
-
@mixin box-lines($lines: single) {
|
42 |
-
// single|multiple
|
43 |
-
@include prefixer(box-lines, $lines, webkit moz spec);
|
44 |
-
}
|
45 |
-
|
46 |
-
@mixin box-ordinal-group($int: 1) {
|
47 |
-
@include prefixer(box-ordinal-group, $int, webkit moz spec);
|
48 |
-
-ms-flex-order: $int; // IE 10
|
49 |
-
}
|
50 |
-
|
51 |
-
@mixin box-flex($value: 0) {
|
52 |
-
@include prefixer(box-flex, $value, webkit moz spec);
|
53 |
-
-ms-flex: $value; // IE 10
|
54 |
-
}
|
55 |
-
|
56 |
-
@mixin box-flex-group($int: 1) {
|
57 |
-
@include prefixer(box-flex-group, $int, webkit moz spec);
|
58 |
-
}
|
59 |
-
|
60 |
-
// CSS3 Flexible Box Model and property defaults
|
61 |
-
// Unified attributes for 2009, 2011, and 2012 flavours.
|
62 |
-
|
63 |
-
// 2009 - display (box | inline-box)
|
64 |
-
// 2011 - display (flexbox | inline-flexbox)
|
65 |
-
// 2012 - display (flex | inline-flex)
|
66 |
-
@mixin display($value) {
|
67 |
-
// flex | inline-flex
|
68 |
-
@if $value == "flex" {
|
69 |
-
// 2009
|
70 |
-
display: -webkit-box;
|
71 |
-
display: -moz-box;
|
72 |
-
display: box;
|
73 |
-
|
74 |
-
// 2012
|
75 |
-
display: -webkit-flex;
|
76 |
-
display: -moz-flex;
|
77 |
-
display: -ms-flexbox; // 2011 (IE 10)
|
78 |
-
display: flex;
|
79 |
-
} @else if $value == "inline-flex" {
|
80 |
-
display: -webkit-inline-box;
|
81 |
-
display: -moz-inline-box;
|
82 |
-
display: inline-box;
|
83 |
-
|
84 |
-
display: -webkit-inline-flex;
|
85 |
-
display: -moz-inline-flex;
|
86 |
-
display: -ms-inline-flexbox;
|
87 |
-
display: inline-flex;
|
88 |
-
} @else {
|
89 |
-
display: $value;
|
90 |
-
}
|
91 |
-
}
|
92 |
-
|
93 |
-
// 2009 - box-flex (integer)
|
94 |
-
// 2011 - flex (decimal | width decimal)
|
95 |
-
// 2012 - flex (integer integer width)
|
96 |
-
@mixin flex($value) {
|
97 |
-
|
98 |
-
// Grab flex-grow for older browsers.
|
99 |
-
$flex-grow: nth($value, 1);
|
100 |
-
|
101 |
-
// 2009
|
102 |
-
@include prefixer(box-flex, $flex-grow, webkit moz spec);
|
103 |
-
|
104 |
-
// 2011 (IE 10), 2012
|
105 |
-
@include prefixer(flex, $value, webkit moz ms spec);
|
106 |
-
}
|
107 |
-
|
108 |
-
// 2009 - box-orient ( horizontal | vertical | inline-axis | block-axis)
|
109 |
-
// - box-direction (normal | reverse)
|
110 |
-
// 2011 - flex-direction (row | row-reverse | column | column-reverse)
|
111 |
-
// 2012 - flex-direction (row | row-reverse | column | column-reverse)
|
112 |
-
@mixin flex-direction($value: row) {
|
113 |
-
|
114 |
-
// Alt values.
|
115 |
-
$value-2009: $value;
|
116 |
-
$value-2011: $value;
|
117 |
-
$direction: normal;
|
118 |
-
|
119 |
-
@if $value == row {
|
120 |
-
$value-2009: horizontal;
|
121 |
-
} @else if $value == "row-reverse" {
|
122 |
-
$value-2009: horizontal;
|
123 |
-
$direction: reverse;
|
124 |
-
} @else if $value == column {
|
125 |
-
$value-2009: vertical;
|
126 |
-
} @else if $value == "column-reverse" {
|
127 |
-
$value-2009: vertical;
|
128 |
-
$direction: reverse;
|
129 |
-
}
|
130 |
-
|
131 |
-
// 2009
|
132 |
-
@include prefixer(box-orient, $value-2009, webkit moz spec);
|
133 |
-
@include prefixer(box-direction, $direction, webkit moz spec);
|
134 |
-
|
135 |
-
// 2012
|
136 |
-
@include prefixer(flex-direction, $value, webkit moz spec);
|
137 |
-
|
138 |
-
// 2011 (IE 10)
|
139 |
-
-ms-flex-direction: $value;
|
140 |
-
}
|
141 |
-
|
142 |
-
// 2009 - box-lines (single | multiple)
|
143 |
-
// 2011 - flex-wrap (nowrap | wrap | wrap-reverse)
|
144 |
-
// 2012 - flex-wrap (nowrap | wrap | wrap-reverse)
|
145 |
-
@mixin flex-wrap($value: nowrap) {
|
146 |
-
// Alt values
|
147 |
-
$alt-value: $value;
|
148 |
-
@if $value == nowrap {
|
149 |
-
$alt-value: single;
|
150 |
-
} @else if $value == wrap {
|
151 |
-
$alt-value: multiple;
|
152 |
-
} @else if $value == "wrap-reverse" {
|
153 |
-
$alt-value: multiple;
|
154 |
-
}
|
155 |
-
|
156 |
-
@include prefixer(box-lines, $alt-value, webkit moz spec);
|
157 |
-
@include prefixer(flex-wrap, $value, webkit moz ms spec);
|
158 |
-
}
|
159 |
-
|
160 |
-
// 2009 - TODO: parse values into flex-direction/flex-wrap
|
161 |
-
// 2011 - TODO: parse values into flex-direction/flex-wrap
|
162 |
-
// 2012 - flex-flow (flex-direction || flex-wrap)
|
163 |
-
@mixin flex-flow($value) {
|
164 |
-
@include prefixer(flex-flow, $value, webkit moz spec);
|
165 |
-
}
|
166 |
-
|
167 |
-
// 2009 - box-ordinal-group (integer)
|
168 |
-
// 2011 - flex-order (integer)
|
169 |
-
// 2012 - order (integer)
|
170 |
-
@mixin order($int: 0) {
|
171 |
-
// 2009
|
172 |
-
@include prefixer(box-ordinal-group, $int, webkit moz spec);
|
173 |
-
|
174 |
-
// 2012
|
175 |
-
@include prefixer(order, $int, webkit moz spec);
|
176 |
-
|
177 |
-
// 2011 (IE 10)
|
178 |
-
-ms-flex-order: $int;
|
179 |
-
}
|
180 |
-
|
181 |
-
// 2012 - flex-grow (number)
|
182 |
-
@mixin flex-grow($number: 0) {
|
183 |
-
@include prefixer(flex-grow, $number, webkit moz spec);
|
184 |
-
-ms-flex-positive: $number;
|
185 |
-
}
|
186 |
-
|
187 |
-
// 2012 - flex-shrink (number)
|
188 |
-
@mixin flex-shrink($number: 1) {
|
189 |
-
@include prefixer(flex-shrink, $number, webkit moz spec);
|
190 |
-
-ms-flex-negative: $number;
|
191 |
-
}
|
192 |
-
|
193 |
-
// 2012 - flex-basis (number)
|
194 |
-
@mixin flex-basis($width: auto) {
|
195 |
-
@include prefixer(flex-basis, $width, webkit moz spec);
|
196 |
-
-ms-flex-preferred-size: $width;
|
197 |
-
}
|
198 |
-
|
199 |
-
// 2009 - box-pack (start | end | center | justify)
|
200 |
-
// 2011 - flex-pack (start | end | center | justify)
|
201 |
-
// 2012 - justify-content (flex-start | flex-end | center | space-between | space-around)
|
202 |
-
@mixin justify-content($value: flex-start) {
|
203 |
-
|
204 |
-
// Alt values.
|
205 |
-
$alt-value: $value;
|
206 |
-
@if $value == "flex-start" {
|
207 |
-
$alt-value: start;
|
208 |
-
} @else if $value == "flex-end" {
|
209 |
-
$alt-value: end;
|
210 |
-
} @else if $value == "space-between" {
|
211 |
-
$alt-value: justify;
|
212 |
-
} @else if $value == "space-around" {
|
213 |
-
$alt-value: distribute;
|
214 |
-
}
|
215 |
-
|
216 |
-
// 2009
|
217 |
-
@include prefixer(box-pack, $alt-value, webkit moz spec);
|
218 |
-
|
219 |
-
// 2012
|
220 |
-
@include prefixer(justify-content, $value, webkit moz ms o spec);
|
221 |
-
|
222 |
-
// 2011 (IE 10)
|
223 |
-
-ms-flex-pack: $alt-value;
|
224 |
-
}
|
225 |
-
|
226 |
-
// 2009 - box-align (start | end | center | baseline | stretch)
|
227 |
-
// 2011 - flex-align (start | end | center | baseline | stretch)
|
228 |
-
// 2012 - align-items (flex-start | flex-end | center | baseline | stretch)
|
229 |
-
@mixin align-items($value: stretch) {
|
230 |
-
|
231 |
-
$alt-value: $value;
|
232 |
-
|
233 |
-
@if $value == "flex-start" {
|
234 |
-
$alt-value: start;
|
235 |
-
} @else if $value == "flex-end" {
|
236 |
-
$alt-value: end;
|
237 |
-
}
|
238 |
-
|
239 |
-
// 2009
|
240 |
-
@include prefixer(box-align, $alt-value, webkit moz spec);
|
241 |
-
|
242 |
-
// 2012
|
243 |
-
@include prefixer(align-items, $value, webkit moz ms o spec);
|
244 |
-
|
245 |
-
// 2011 (IE 10)
|
246 |
-
-ms-flex-align: $alt-value;
|
247 |
-
}
|
248 |
-
|
249 |
-
// 2011 - flex-item-align (auto | start | end | center | baseline | stretch)
|
250 |
-
// 2012 - align-self (auto | flex-start | flex-end | center | baseline | stretch)
|
251 |
-
@mixin align-self($value: auto) {
|
252 |
-
|
253 |
-
$value-2011: $value;
|
254 |
-
@if $value == "flex-start" {
|
255 |
-
$value-2011: start;
|
256 |
-
} @else if $value == "flex-end" {
|
257 |
-
$value-2011: end;
|
258 |
-
}
|
259 |
-
|
260 |
-
// 2012
|
261 |
-
@include prefixer(align-self, $value, webkit moz spec);
|
262 |
-
|
263 |
-
// 2011 (IE 10)
|
264 |
-
-ms-flex-item-align: $value-2011;
|
265 |
-
}
|
266 |
-
|
267 |
-
// 2011 - flex-line-pack (start | end | center | justify | distribute | stretch)
|
268 |
-
// 2012 - align-content (flex-start | flex-end | center | space-between | space-around | stretch)
|
269 |
-
@mixin align-content($value: stretch) {
|
270 |
-
|
271 |
-
$value-2011: $value;
|
272 |
-
@if $value == "flex-start" {
|
273 |
-
$value-2011: start;
|
274 |
-
} @else if $value == "flex-end" {
|
275 |
-
$value-2011: end;
|
276 |
-
} @else if $value == "space-between" {
|
277 |
-
$value-2011: justify;
|
278 |
-
} @else if $value == "space-around" {
|
279 |
-
$value-2011: distribute;
|
280 |
-
}
|
281 |
-
|
282 |
-
// 2012
|
283 |
-
@include prefixer(align-content, $value, webkit moz spec);
|
284 |
-
|
285 |
-
// 2011 (IE 10)
|
286 |
-
-ms-flex-line-pack: $value-2011;
|
287 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_font-face.scss
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
@mixin font-face(
|
2 |
-
$font-family,
|
3 |
-
$file-path,
|
4 |
-
$weight: normal,
|
5 |
-
$style: normal,
|
6 |
-
$asset-pipeline: $asset-pipeline,
|
7 |
-
$file-formats: eot woff2 woff ttf svg) {
|
8 |
-
|
9 |
-
$font-url-prefix: font-url-prefixer($asset-pipeline);
|
10 |
-
|
11 |
-
@font-face {
|
12 |
-
font-family: $font-family;
|
13 |
-
font-style: $style;
|
14 |
-
font-weight: $weight;
|
15 |
-
|
16 |
-
src: font-source-declaration(
|
17 |
-
$font-family,
|
18 |
-
$file-path,
|
19 |
-
$asset-pipeline,
|
20 |
-
$file-formats,
|
21 |
-
$font-url-prefix
|
22 |
-
);
|
23 |
-
}
|
24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_font-feature-settings.scss
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
@mixin font-feature-settings($settings...) {
|
2 |
-
@if length($settings) == 0 { $settings: none; }
|
3 |
-
@include prefixer(font-feature-settings, $settings, webkit moz ms spec);
|
4 |
-
}
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_hidpi-media-query.scss
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
// HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)
|
2 |
-
@mixin hidpi($ratio: 1.3) {
|
3 |
-
@media only screen and (-webkit-min-device-pixel-ratio: $ratio),
|
4 |
-
only screen and (min--moz-device-pixel-ratio: $ratio),
|
5 |
-
only screen and (-o-min-device-pixel-ratio: #{$ratio}/1),
|
6 |
-
only screen and (min-resolution: round($ratio * 96dpi)),
|
7 |
-
only screen and (min-resolution: $ratio * 1dppx) {
|
8 |
-
@content;
|
9 |
-
}
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_hyphens.scss
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
@mixin hyphens($hyphenation: none) {
|
2 |
-
// none | manual | auto
|
3 |
-
@include prefixer(hyphens, $hyphenation, webkit moz ms spec);
|
4 |
-
}
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_image-rendering.scss
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
@mixin image-rendering ($mode:auto) {
|
2 |
-
|
3 |
-
@if ($mode == crisp-edges) {
|
4 |
-
-ms-interpolation-mode: nearest-neighbor; // IE8+
|
5 |
-
image-rendering: -moz-crisp-edges;
|
6 |
-
image-rendering: -o-crisp-edges;
|
7 |
-
image-rendering: -webkit-optimize-contrast;
|
8 |
-
image-rendering: crisp-edges;
|
9 |
-
}
|
10 |
-
|
11 |
-
@else {
|
12 |
-
image-rendering: $mode;
|
13 |
-
}
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_keyframes.scss
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
// Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content
|
2 |
-
@mixin keyframes($name) {
|
3 |
-
$original-prefix-for-webkit: $prefix-for-webkit;
|
4 |
-
$original-prefix-for-mozilla: $prefix-for-mozilla;
|
5 |
-
$original-prefix-for-microsoft: $prefix-for-microsoft;
|
6 |
-
$original-prefix-for-opera: $prefix-for-opera;
|
7 |
-
$original-prefix-for-spec: $prefix-for-spec;
|
8 |
-
|
9 |
-
@if $original-prefix-for-webkit {
|
10 |
-
@include disable-prefix-for-all();
|
11 |
-
$prefix-for-webkit: true !global;
|
12 |
-
@-webkit-keyframes #{$name} {
|
13 |
-
@content;
|
14 |
-
}
|
15 |
-
}
|
16 |
-
|
17 |
-
@if $original-prefix-for-mozilla {
|
18 |
-
@include disable-prefix-for-all();
|
19 |
-
$prefix-for-mozilla: true !global;
|
20 |
-
@-moz-keyframes #{$name} {
|
21 |
-
@content;
|
22 |
-
}
|
23 |
-
}
|
24 |
-
|
25 |
-
$prefix-for-webkit: $original-prefix-for-webkit !global;
|
26 |
-
$prefix-for-mozilla: $original-prefix-for-mozilla !global;
|
27 |
-
$prefix-for-microsoft: $original-prefix-for-microsoft !global;
|
28 |
-
$prefix-for-opera: $original-prefix-for-opera !global;
|
29 |
-
$prefix-for-spec: $original-prefix-for-spec !global;
|
30 |
-
|
31 |
-
@if $original-prefix-for-spec {
|
32 |
-
@keyframes #{$name} {
|
33 |
-
@content;
|
34 |
-
}
|
35 |
-
}
|
36 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_linear-gradient.scss
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
@mixin linear-gradient($pos, $g1, $g2: null,
|
2 |
-
$g3: null, $g4: null,
|
3 |
-
$g5: null, $g6: null,
|
4 |
-
$g7: null, $g8: null,
|
5 |
-
$g9: null, $g10: null,
|
6 |
-
$fallback: null) {
|
7 |
-
// Detect what type of value exists in $pos
|
8 |
-
$pos-type: type-of(nth($pos, 1));
|
9 |
-
$pos-spec: null;
|
10 |
-
$pos-degree: null;
|
11 |
-
|
12 |
-
// If $pos is missing from mixin, reassign vars and add default position
|
13 |
-
@if ($pos-type == color) or (nth($pos, 1) == "transparent") {
|
14 |
-
$g10: $g9; $g9: $g8; $g8: $g7; $g7: $g6; $g6: $g5;
|
15 |
-
$g5: $g4; $g4: $g3; $g3: $g2; $g2: $g1; $g1: $pos;
|
16 |
-
$pos: null;
|
17 |
-
}
|
18 |
-
|
19 |
-
@if $pos {
|
20 |
-
$positions: _linear-positions-parser($pos);
|
21 |
-
$pos-degree: nth($positions, 1);
|
22 |
-
$pos-spec: nth($positions, 2);
|
23 |
-
}
|
24 |
-
|
25 |
-
$full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10;
|
26 |
-
|
27 |
-
// Set $g1 as the default fallback color
|
28 |
-
$fallback-color: nth($g1, 1);
|
29 |
-
|
30 |
-
// If $fallback is a color use that color as the fallback color
|
31 |
-
@if (type-of($fallback) == color) or ($fallback == "transparent") {
|
32 |
-
$fallback-color: $fallback;
|
33 |
-
}
|
34 |
-
|
35 |
-
background-color: $fallback-color;
|
36 |
-
background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome
|
37 |
-
background-image: unquote("linear-gradient(#{$pos-spec}#{$full})");
|
38 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_perspective.scss
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
@mixin perspective($depth: none) {
|
2 |
-
// none | <length>
|
3 |
-
@include prefixer(perspective, $depth, webkit moz spec);
|
4 |
-
}
|
5 |
-
|
6 |
-
@mixin perspective-origin($value: 50% 50%) {
|
7 |
-
@include prefixer(perspective-origin, $value, webkit moz spec);
|
8 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_placeholder.scss
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
@mixin placeholder {
|
2 |
-
$placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
|
3 |
-
@each $placeholder in $placeholders {
|
4 |
-
&:#{$placeholder}-placeholder {
|
5 |
-
@content;
|
6 |
-
}
|
7 |
-
}
|
8 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_radial-gradient.scss
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
// Requires Sass 3.1+
|
2 |
-
@mixin radial-gradient($g1, $g2,
|
3 |
-
$g3: null, $g4: null,
|
4 |
-
$g5: null, $g6: null,
|
5 |
-
$g7: null, $g8: null,
|
6 |
-
$g9: null, $g10: null,
|
7 |
-
$pos: null,
|
8 |
-
$shape-size: null,
|
9 |
-
$fallback: null) {
|
10 |
-
|
11 |
-
$data: _radial-arg-parser($g1, $g2, $pos, $shape-size);
|
12 |
-
$g1: nth($data, 1);
|
13 |
-
$g2: nth($data, 2);
|
14 |
-
$pos: nth($data, 3);
|
15 |
-
$shape-size: nth($data, 4);
|
16 |
-
|
17 |
-
$full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10;
|
18 |
-
|
19 |
-
// Strip deprecated cover/contain for spec
|
20 |
-
$shape-size-spec: _shape-size-stripper($shape-size);
|
21 |
-
|
22 |
-
// Set $g1 as the default fallback color
|
23 |
-
$first-color: nth($full, 1);
|
24 |
-
$fallback-color: nth($first-color, 1);
|
25 |
-
|
26 |
-
@if (type-of($fallback) == color) or ($fallback == "transparent") {
|
27 |
-
$fallback-color: $fallback;
|
28 |
-
}
|
29 |
-
|
30 |
-
// Add Commas and spaces
|
31 |
-
$shape-size: if($shape-size, "#{$shape-size}, ", null);
|
32 |
-
$pos: if($pos, "#{$pos}, ", null);
|
33 |
-
$pos-spec: if($pos, "at #{$pos}", null);
|
34 |
-
$shape-size-spec: if(($shape-size-spec != " ") and ($pos == null), "#{$shape-size-spec}, ", "#{$shape-size-spec} ");
|
35 |
-
|
36 |
-
background-color: $fallback-color;
|
37 |
-
background-image: -webkit-radial-gradient(#{$pos}#{$shape-size}#{$full});
|
38 |
-
background-image: radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full});
|
39 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_selection.scss
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Outputs the spec and prefixed versions of the `::selection` pseudo-element.
|
4 |
-
///
|
5 |
-
/// @param {Bool} $current-selector [false]
|
6 |
-
/// If set to `true`, it takes the current element into consideration.
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element {
|
10 |
-
/// @include selection(true) {
|
11 |
-
/// background-color: #ffbb52;
|
12 |
-
/// }
|
13 |
-
/// }
|
14 |
-
///
|
15 |
-
/// @example css - CSS Output
|
16 |
-
/// .element::-moz-selection {
|
17 |
-
/// background-color: #ffbb52;
|
18 |
-
/// }
|
19 |
-
///
|
20 |
-
/// .element::selection {
|
21 |
-
/// background-color: #ffbb52;
|
22 |
-
/// }
|
23 |
-
|
24 |
-
@mixin selection($current-selector: false) {
|
25 |
-
@if $current-selector {
|
26 |
-
&::-moz-selection {
|
27 |
-
@content;
|
28 |
-
}
|
29 |
-
|
30 |
-
&::selection {
|
31 |
-
@content;
|
32 |
-
}
|
33 |
-
} @else {
|
34 |
-
::-moz-selection {
|
35 |
-
@content;
|
36 |
-
}
|
37 |
-
|
38 |
-
::selection {
|
39 |
-
@content;
|
40 |
-
}
|
41 |
-
}
|
42 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_text-decoration.scss
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
@mixin text-decoration($value) {
|
2 |
-
// <text-decoration-line> || <text-decoration-style> || <text-decoration-color>
|
3 |
-
@include prefixer(text-decoration, $value, moz);
|
4 |
-
}
|
5 |
-
|
6 |
-
@mixin text-decoration-line($line: none) {
|
7 |
-
// none || underline || overline || line-through
|
8 |
-
@include prefixer(text-decoration-line, $line, moz);
|
9 |
-
}
|
10 |
-
|
11 |
-
@mixin text-decoration-style($style: solid) {
|
12 |
-
// solid || double || dotted || dashed || wavy
|
13 |
-
@include prefixer(text-decoration-style, $style, moz webkit);
|
14 |
-
}
|
15 |
-
|
16 |
-
@mixin text-decoration-color($color: currentColor) {
|
17 |
-
// currentColor || <color>
|
18 |
-
@include prefixer(text-decoration-color, $color, moz);
|
19 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_transform.scss
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
@mixin transform($property: none) {
|
2 |
-
// none | <transform-function>
|
3 |
-
@include prefixer(transform, $property, webkit moz ms o spec);
|
4 |
-
}
|
5 |
-
|
6 |
-
@mixin transform-origin($axes: 50%) {
|
7 |
-
// x-axis - left | center | right | length | %
|
8 |
-
// y-axis - top | center | bottom | length | %
|
9 |
-
// z-axis - length
|
10 |
-
@include prefixer(transform-origin, $axes, webkit moz ms o spec);
|
11 |
-
}
|
12 |
-
|
13 |
-
@mixin transform-style($style: flat) {
|
14 |
-
@include prefixer(transform-style, $style, webkit moz ms o spec);
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_transition.scss
DELETED
@@ -1,71 +0,0 @@
|
|
1 |
-
// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
|
2 |
-
// Example: @include transition (all 2s ease-in-out);
|
3 |
-
// @include transition (opacity 1s ease-in 2s, width 2s ease-out);
|
4 |
-
// @include transition-property (transform, opacity);
|
5 |
-
|
6 |
-
@mixin transition($properties...) {
|
7 |
-
// Fix for vendor-prefix transform property
|
8 |
-
$needs-prefixes: false;
|
9 |
-
$webkit: ();
|
10 |
-
$moz: ();
|
11 |
-
$spec: ();
|
12 |
-
|
13 |
-
// Create lists for vendor-prefixed transform
|
14 |
-
@each $list in $properties {
|
15 |
-
@if nth($list, 1) == "transform" {
|
16 |
-
$needs-prefixes: true;
|
17 |
-
$list1: -webkit-transform;
|
18 |
-
$list2: -moz-transform;
|
19 |
-
$list3: ();
|
20 |
-
|
21 |
-
@each $var in $list {
|
22 |
-
$list3: join($list3, $var);
|
23 |
-
|
24 |
-
@if $var != "transform" {
|
25 |
-
$list1: join($list1, $var);
|
26 |
-
$list2: join($list2, $var);
|
27 |
-
}
|
28 |
-
}
|
29 |
-
|
30 |
-
$webkit: append($webkit, $list1);
|
31 |
-
$moz: append($moz, $list2);
|
32 |
-
$spec: append($spec, $list3);
|
33 |
-
} @else {
|
34 |
-
$webkit: append($webkit, $list, comma);
|
35 |
-
$moz: append($moz, $list, comma);
|
36 |
-
$spec: append($spec, $list, comma);
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
@if $needs-prefixes {
|
41 |
-
-webkit-transition: $webkit;
|
42 |
-
-moz-transition: $moz;
|
43 |
-
transition: $spec;
|
44 |
-
} @else {
|
45 |
-
@if length($properties) >= 1 {
|
46 |
-
@include prefixer(transition, $properties, webkit moz spec);
|
47 |
-
} @else {
|
48 |
-
$properties: all 0.15s ease-out 0s;
|
49 |
-
@include prefixer(transition, $properties, webkit moz spec);
|
50 |
-
}
|
51 |
-
}
|
52 |
-
}
|
53 |
-
|
54 |
-
@mixin transition-property($properties...) {
|
55 |
-
-webkit-transition-property: transition-property-names($properties, "webkit");
|
56 |
-
-moz-transition-property: transition-property-names($properties, "moz");
|
57 |
-
transition-property: transition-property-names($properties, false);
|
58 |
-
}
|
59 |
-
|
60 |
-
@mixin transition-duration($times...) {
|
61 |
-
@include prefixer(transition-duration, $times, webkit moz spec);
|
62 |
-
}
|
63 |
-
|
64 |
-
@mixin transition-timing-function($motions...) {
|
65 |
-
// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
|
66 |
-
@include prefixer(transition-timing-function, $motions, webkit moz spec);
|
67 |
-
}
|
68 |
-
|
69 |
-
@mixin transition-delay($times...) {
|
70 |
-
@include prefixer(transition-delay, $times, webkit moz spec);
|
71 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/css3/_user-select.scss
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
@mixin user-select($value: none) {
|
2 |
-
@include prefixer(user-select, $value, webkit moz ms spec);
|
3 |
-
}
|
|
|
|
|
|
mixins/sass/bourbon/functions/_assign-inputs.scss
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
@function assign-inputs($inputs, $pseudo: null) {
|
2 |
-
$list: ();
|
3 |
-
|
4 |
-
@each $input in $inputs {
|
5 |
-
$input: unquote($input);
|
6 |
-
$input: if($pseudo, $input + ":" + $pseudo, $input);
|
7 |
-
$list: append($list, $input, comma);
|
8 |
-
}
|
9 |
-
|
10 |
-
@return $list;
|
11 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_contains-falsy.scss
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Checks if a list does not contains a value.
|
4 |
-
///
|
5 |
-
/// @access private
|
6 |
-
///
|
7 |
-
/// @param {List} $list
|
8 |
-
/// The list to check against.
|
9 |
-
///
|
10 |
-
/// @return {Bool}
|
11 |
-
|
12 |
-
@function contains-falsy($list) {
|
13 |
-
@each $item in $list {
|
14 |
-
@if not $item {
|
15 |
-
@return true;
|
16 |
-
}
|
17 |
-
}
|
18 |
-
|
19 |
-
@return false;
|
20 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_contains.scss
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Checks if a list contains a value(s).
|
4 |
-
///
|
5 |
-
/// @access private
|
6 |
-
///
|
7 |
-
/// @param {List} $list
|
8 |
-
/// The list to check against.
|
9 |
-
///
|
10 |
-
/// @param {List} $values
|
11 |
-
/// A single value or list of values to check for.
|
12 |
-
///
|
13 |
-
/// @example scss - Usage
|
14 |
-
/// contains($list, $value)
|
15 |
-
///
|
16 |
-
/// @return {Bool}
|
17 |
-
|
18 |
-
@function contains($list, $values...) {
|
19 |
-
@each $value in $values {
|
20 |
-
@if type-of(index($list, $value)) != "number" {
|
21 |
-
@return false;
|
22 |
-
}
|
23 |
-
}
|
24 |
-
|
25 |
-
@return true;
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_is-length.scss
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Checks for a valid CSS length.
|
4 |
-
///
|
5 |
-
/// @param {String} $value
|
6 |
-
|
7 |
-
@function is-length($value) {
|
8 |
-
@return type-of($value) != "null" and (str-slice($value + "", 1, 4) == "calc"
|
9 |
-
or index(auto inherit initial 0, $value)
|
10 |
-
or (type-of($value) == "number" and not(unitless($value))));
|
11 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_is-light.scss
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Programatically determines whether a color is light or dark.
|
4 |
-
///
|
5 |
-
/// @link http://robots.thoughtbot.com/closer-look-color-lightness
|
6 |
-
///
|
7 |
-
/// @param {Color (Hex)} $color
|
8 |
-
///
|
9 |
-
/// @example scss - Usage
|
10 |
-
/// is-light($color)
|
11 |
-
///
|
12 |
-
/// @return {Bool}
|
13 |
-
|
14 |
-
@function is-light($hex-color) {
|
15 |
-
$-local-red: red(rgba($hex-color, 1));
|
16 |
-
$-local-green: green(rgba($hex-color, 1));
|
17 |
-
$-local-blue: blue(rgba($hex-color, 1));
|
18 |
-
$-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255;
|
19 |
-
|
20 |
-
@return $-local-lightness > 0.6;
|
21 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_is-number.scss
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Checks for a valid number.
|
4 |
-
///
|
5 |
-
/// @param {Number} $value
|
6 |
-
///
|
7 |
-
/// @require {function} contains
|
8 |
-
|
9 |
-
@function is-number($value) {
|
10 |
-
@return contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value);
|
11 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_is-size.scss
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Checks for a valid CSS size.
|
4 |
-
///
|
5 |
-
/// @param {String} $value
|
6 |
-
///
|
7 |
-
/// @require {function} contains
|
8 |
-
/// @require {function} is-length
|
9 |
-
|
10 |
-
@function is-size($value) {
|
11 |
-
@return is-length($value)
|
12 |
-
or contains("fill" "fit-content" "min-content" "max-content", $value);
|
13 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_modular-scale.scss
DELETED
@@ -1,69 +0,0 @@
|
|
1 |
-
// Scaling Variables
|
2 |
-
$golden: 1.618;
|
3 |
-
$minor-second: 1.067;
|
4 |
-
$major-second: 1.125;
|
5 |
-
$minor-third: 1.2;
|
6 |
-
$major-third: 1.25;
|
7 |
-
$perfect-fourth: 1.333;
|
8 |
-
$augmented-fourth: 1.414;
|
9 |
-
$perfect-fifth: 1.5;
|
10 |
-
$minor-sixth: 1.6;
|
11 |
-
$major-sixth: 1.667;
|
12 |
-
$minor-seventh: 1.778;
|
13 |
-
$major-seventh: 1.875;
|
14 |
-
$octave: 2;
|
15 |
-
$major-tenth: 2.5;
|
16 |
-
$major-eleventh: 2.667;
|
17 |
-
$major-twelfth: 3;
|
18 |
-
$double-octave: 4;
|
19 |
-
|
20 |
-
$modular-scale-ratio: $perfect-fourth !default;
|
21 |
-
$modular-scale-base: em($em-base) !default;
|
22 |
-
|
23 |
-
@function modular-scale($increment, $value: $modular-scale-base, $ratio: $modular-scale-ratio) {
|
24 |
-
$v1: nth($value, 1);
|
25 |
-
$v2: nth($value, length($value));
|
26 |
-
$value: $v1;
|
27 |
-
|
28 |
-
// scale $v2 to just above $v1
|
29 |
-
@while $v2 > $v1 {
|
30 |
-
$v2: ($v2 / $ratio); // will be off-by-1
|
31 |
-
}
|
32 |
-
@while $v2 < $v1 {
|
33 |
-
$v2: ($v2 * $ratio); // will fix off-by-1
|
34 |
-
}
|
35 |
-
|
36 |
-
// check AFTER scaling $v2 to prevent double-counting corner-case
|
37 |
-
$double-stranded: $v2 > $v1;
|
38 |
-
|
39 |
-
@if $increment > 0 {
|
40 |
-
@for $i from 1 through $increment {
|
41 |
-
@if $double-stranded and ($v1 * $ratio) > $v2 {
|
42 |
-
$value: $v2;
|
43 |
-
$v2: ($v2 * $ratio);
|
44 |
-
} @else {
|
45 |
-
$v1: ($v1 * $ratio);
|
46 |
-
$value: $v1;
|
47 |
-
}
|
48 |
-
}
|
49 |
-
}
|
50 |
-
|
51 |
-
@if $increment < 0 {
|
52 |
-
// adjust $v2 to just below $v1
|
53 |
-
@if $double-stranded {
|
54 |
-
$v2: ($v2 / $ratio);
|
55 |
-
}
|
56 |
-
|
57 |
-
@for $i from $increment through -1 {
|
58 |
-
@if $double-stranded and ($v1 / $ratio) < $v2 {
|
59 |
-
$value: $v2;
|
60 |
-
$v2: ($v2 / $ratio);
|
61 |
-
} @else {
|
62 |
-
$v1: ($v1 / $ratio);
|
63 |
-
$value: $v1;
|
64 |
-
}
|
65 |
-
}
|
66 |
-
}
|
67 |
-
|
68 |
-
@return $value;
|
69 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_px-to-em.scss
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
// Convert pixels to ems
|
2 |
-
// eg. for a relational value of 12px write em(12) when the parent is 16px
|
3 |
-
// if the parent is another value say 24px write em(12, 24)
|
4 |
-
|
5 |
-
@function em($pxval, $base: $em-base) {
|
6 |
-
@if not unitless($pxval) {
|
7 |
-
$pxval: strip-units($pxval);
|
8 |
-
}
|
9 |
-
@if not unitless($base) {
|
10 |
-
$base: strip-units($base);
|
11 |
-
}
|
12 |
-
@return ($pxval / $base) * 1em;
|
13 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_px-to-rem.scss
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
// Convert pixels to rems
|
2 |
-
// eg. for a relational value of 12px write rem(12)
|
3 |
-
// Assumes $em-base is the font-size of <html>
|
4 |
-
|
5 |
-
@function rem($pxval) {
|
6 |
-
@if not unitless($pxval) {
|
7 |
-
$pxval: strip-units($pxval);
|
8 |
-
}
|
9 |
-
|
10 |
-
$base: $em-base;
|
11 |
-
@if not unitless($base) {
|
12 |
-
$base: strip-units($base);
|
13 |
-
}
|
14 |
-
@return ($pxval / $base) * 1rem;
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_shade.scss
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Mixes a color with black.
|
4 |
-
///
|
5 |
-
/// @param {Color} $color
|
6 |
-
///
|
7 |
-
/// @param {Number (Percentage)} $percent
|
8 |
-
/// The amount of black to be mixed in.
|
9 |
-
///
|
10 |
-
/// @example scss - Usage
|
11 |
-
/// .element {
|
12 |
-
/// background-color: shade(#ffbb52, 60%);
|
13 |
-
/// }
|
14 |
-
///
|
15 |
-
/// @example css - CSS Output
|
16 |
-
/// .element {
|
17 |
-
/// background-color: #664a20;
|
18 |
-
/// }
|
19 |
-
///
|
20 |
-
/// @return {Color}
|
21 |
-
|
22 |
-
@function shade($color, $percent) {
|
23 |
-
@return mix(#000, $color, $percent);
|
24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_strip-units.scss
DELETED
@@ -1,17 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Strips the unit from a number.
|
4 |
-
///
|
5 |
-
/// @param {Number (With Unit)} $value
|
6 |
-
///
|
7 |
-
/// @example scss - Usage
|
8 |
-
/// $dimension: strip-units(10em);
|
9 |
-
///
|
10 |
-
/// @example css - CSS Output
|
11 |
-
/// $dimension: 10;
|
12 |
-
///
|
13 |
-
/// @return {Number (Unitless)}
|
14 |
-
|
15 |
-
@function strip-units($value) {
|
16 |
-
@return ($value / ($value * 0 + 1));
|
17 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_tint.scss
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Mixes a color with white.
|
4 |
-
///
|
5 |
-
/// @param {Color} $color
|
6 |
-
///
|
7 |
-
/// @param {Number (Percentage)} $percent
|
8 |
-
/// The amount of white to be mixed in.
|
9 |
-
///
|
10 |
-
/// @example scss - Usage
|
11 |
-
/// .element {
|
12 |
-
/// background-color: tint(#6ecaa6, 40%);
|
13 |
-
/// }
|
14 |
-
///
|
15 |
-
/// @example css - CSS Output
|
16 |
-
/// .element {
|
17 |
-
/// background-color: #a8dfc9;
|
18 |
-
/// }
|
19 |
-
///
|
20 |
-
/// @return {Color}
|
21 |
-
|
22 |
-
@function tint($color, $percent) {
|
23 |
-
@return mix(#fff, $color, $percent);
|
24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_transition-property-name.scss
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
// Return vendor-prefixed property names if appropriate
|
2 |
-
// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background
|
3 |
-
//************************************************************************//
|
4 |
-
@function transition-property-names($props, $vendor: false) {
|
5 |
-
$new-props: ();
|
6 |
-
|
7 |
-
@each $prop in $props {
|
8 |
-
$new-props: append($new-props, transition-property-name($prop, $vendor), comma);
|
9 |
-
}
|
10 |
-
|
11 |
-
@return $new-props;
|
12 |
-
}
|
13 |
-
|
14 |
-
@function transition-property-name($prop, $vendor: false) {
|
15 |
-
// put other properties that need to be prefixed here aswell
|
16 |
-
@if $vendor and $prop == transform {
|
17 |
-
@return unquote('-'+$vendor+'-'+$prop);
|
18 |
-
}
|
19 |
-
@else {
|
20 |
-
@return $prop;
|
21 |
-
}
|
22 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/functions/_unpack.scss
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Converts shorthand to the 4-value syntax.
|
4 |
-
///
|
5 |
-
/// @param {List} $shorthand
|
6 |
-
///
|
7 |
-
/// @example scss - Usage
|
8 |
-
/// .element {
|
9 |
-
/// margin: unpack(1em 2em);
|
10 |
-
/// }
|
11 |
-
///
|
12 |
-
/// @example css - CSS Output
|
13 |
-
/// .element {
|
14 |
-
/// margin: 1em 2em 1em 2em;
|
15 |
-
/// }
|
16 |
-
|
17 |
-
@function unpack($shorthand) {
|
18 |
-
@if length($shorthand) == 1 {
|
19 |
-
@return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1);
|
20 |
-
} @else if length($shorthand) == 2 {
|
21 |
-
@return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2);
|
22 |
-
} @else if length($shorthand) == 3 {
|
23 |
-
@return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2);
|
24 |
-
} @else {
|
25 |
-
@return $shorthand;
|
26 |
-
}
|
27 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_convert-units.scss
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
//************************************************************************//
|
2 |
-
// Helper function for str-to-num fn.
|
3 |
-
// Source: http://sassmeister.com/gist/9647408
|
4 |
-
//************************************************************************//
|
5 |
-
@function _convert-units($number, $unit) {
|
6 |
-
$strings: "px", "cm", "mm", "%", "ch", "pica", "in", "em", "rem", "pt", "pc", "ex", "vw", "vh", "vmin", "vmax", "deg", "rad", "grad", "turn";
|
7 |
-
$units: 1px, 1cm, 1mm, 1%, 1ch, 1pica, 1in, 1em, 1rem, 1pt, 1pc, 1ex, 1vw, 1vh, 1vmin, 1vmax, 1deg, 1rad, 1grad, 1turn;
|
8 |
-
$index: index($strings, $unit);
|
9 |
-
|
10 |
-
@if not $index {
|
11 |
-
@warn "Unknown unit `#{$unit}`.";
|
12 |
-
@return false;
|
13 |
-
}
|
14 |
-
|
15 |
-
@if type-of($number) != "number" {
|
16 |
-
@warn "`#{$number} is not a number`";
|
17 |
-
@return false;
|
18 |
-
}
|
19 |
-
|
20 |
-
@return $number * nth($units, $index);
|
21 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_directional-values.scss
DELETED
@@ -1,96 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Directional-property mixins are shorthands for writing properties like the following
|
4 |
-
///
|
5 |
-
/// @ignore You can also use `false` instead of `null`.
|
6 |
-
///
|
7 |
-
/// @param {List} $vals
|
8 |
-
/// List of directional values
|
9 |
-
///
|
10 |
-
/// @example scss - Usage
|
11 |
-
/// .element {
|
12 |
-
/// @include border-style(dotted null);
|
13 |
-
/// @include margin(null 0 10px);
|
14 |
-
/// }
|
15 |
-
///
|
16 |
-
/// @example css - CSS Output
|
17 |
-
/// .element {
|
18 |
-
/// border-bottom-style: dotted;
|
19 |
-
/// border-top-style: dotted;
|
20 |
-
/// margin-bottom: 10px;
|
21 |
-
/// margin-left: 0;
|
22 |
-
/// margin-right: 0;
|
23 |
-
/// }
|
24 |
-
///
|
25 |
-
/// @require {function} contains-falsy
|
26 |
-
///
|
27 |
-
/// @return {List}
|
28 |
-
|
29 |
-
@function collapse-directionals($vals) {
|
30 |
-
$output: null;
|
31 |
-
|
32 |
-
$a: nth($vals, 1);
|
33 |
-
$b: if(length($vals) < 2, $a, nth($vals, 2));
|
34 |
-
$c: if(length($vals) < 3, $a, nth($vals, 3));
|
35 |
-
$d: if(length($vals) < 2, $a, nth($vals, if(length($vals) < 4, 2, 4)));
|
36 |
-
|
37 |
-
@if $a == 0 { $a: 0; }
|
38 |
-
@if $b == 0 { $b: 0; }
|
39 |
-
@if $c == 0 { $c: 0; }
|
40 |
-
@if $d == 0 { $d: 0; }
|
41 |
-
|
42 |
-
@if $a == $b and $a == $c and $a == $d { $output: $a; }
|
43 |
-
@else if $a == $c and $b == $d { $output: $a $b; }
|
44 |
-
@else if $b == $d { $output: $a $b $c; }
|
45 |
-
@else { $output: $a $b $c $d; }
|
46 |
-
|
47 |
-
@return $output;
|
48 |
-
}
|
49 |
-
|
50 |
-
/// Output directional properties, for instance `margin`.
|
51 |
-
///
|
52 |
-
/// @access private
|
53 |
-
///
|
54 |
-
/// @param {String} $pre
|
55 |
-
/// Prefix to use
|
56 |
-
/// @param {String} $suf
|
57 |
-
/// Suffix to use
|
58 |
-
/// @param {List} $vals
|
59 |
-
/// List of values
|
60 |
-
///
|
61 |
-
/// @require {function} collapse-directionals
|
62 |
-
/// @require {function} contains-falsy
|
63 |
-
|
64 |
-
@mixin directional-property($pre, $suf, $vals) {
|
65 |
-
// Property Names
|
66 |
-
$top: $pre + "-top" + if($suf, "-#{$suf}", "");
|
67 |
-
$bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
|
68 |
-
$left: $pre + "-left" + if($suf, "-#{$suf}", "");
|
69 |
-
$right: $pre + "-right" + if($suf, "-#{$suf}", "");
|
70 |
-
$all: $pre + if($suf, "-#{$suf}", "");
|
71 |
-
|
72 |
-
$vals: collapse-directionals($vals);
|
73 |
-
|
74 |
-
@if contains-falsy($vals) {
|
75 |
-
@if nth($vals, 1) { #{$top}: nth($vals, 1); }
|
76 |
-
|
77 |
-
@if length($vals) == 1 {
|
78 |
-
@if nth($vals, 1) { #{$right}: nth($vals, 1); }
|
79 |
-
} @else {
|
80 |
-
@if nth($vals, 2) { #{$right}: nth($vals, 2); }
|
81 |
-
}
|
82 |
-
|
83 |
-
@if length($vals) == 2 {
|
84 |
-
@if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
|
85 |
-
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
|
86 |
-
} @else if length($vals) == 3 {
|
87 |
-
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
|
88 |
-
@if nth($vals, 2) { #{$left}: nth($vals, 2); }
|
89 |
-
} @else if length($vals) == 4 {
|
90 |
-
@if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
|
91 |
-
@if nth($vals, 4) { #{$left}: nth($vals, 4); }
|
92 |
-
}
|
93 |
-
} @else {
|
94 |
-
#{$all}: $vals;
|
95 |
-
}
|
96 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_font-source-declaration.scss
DELETED
@@ -1,43 +0,0 @@
|
|
1 |
-
// Used for creating the source string for fonts using @font-face
|
2 |
-
// Reference: http://goo.gl/Ru1bKP
|
3 |
-
|
4 |
-
@function font-url-prefixer($asset-pipeline) {
|
5 |
-
@if $asset-pipeline == true {
|
6 |
-
@return font-url;
|
7 |
-
} @else {
|
8 |
-
@return url;
|
9 |
-
}
|
10 |
-
}
|
11 |
-
|
12 |
-
@function font-source-declaration(
|
13 |
-
$font-family,
|
14 |
-
$file-path,
|
15 |
-
$asset-pipeline,
|
16 |
-
$file-formats,
|
17 |
-
$font-url) {
|
18 |
-
|
19 |
-
$src: ();
|
20 |
-
|
21 |
-
$formats-map: (
|
22 |
-
eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"),
|
23 |
-
woff2: "#{$file-path}.woff2" format("woff2"),
|
24 |
-
woff: "#{$file-path}.woff" format("woff"),
|
25 |
-
ttf: "#{$file-path}.ttf" format("truetype"),
|
26 |
-
svg: "#{$file-path}.svg##{$font-family}" format("svg")
|
27 |
-
);
|
28 |
-
|
29 |
-
@each $key, $values in $formats-map {
|
30 |
-
@if contains($file-formats, $key) {
|
31 |
-
$file-path: nth($values, 1);
|
32 |
-
$font-format: nth($values, 2);
|
33 |
-
|
34 |
-
@if $asset-pipeline == true {
|
35 |
-
$src: append($src, font-url($file-path) $font-format, comma);
|
36 |
-
} @else {
|
37 |
-
$src: append($src, url($file-path) $font-format, comma);
|
38 |
-
}
|
39 |
-
}
|
40 |
-
}
|
41 |
-
|
42 |
-
@return $src;
|
43 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_gradient-positions-parser.scss
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
@function _gradient-positions-parser($gradient-type, $gradient-positions) {
|
2 |
-
@if $gradient-positions
|
3 |
-
and ($gradient-type == linear)
|
4 |
-
and (type-of($gradient-positions) != color) {
|
5 |
-
$gradient-positions: _linear-positions-parser($gradient-positions);
|
6 |
-
}
|
7 |
-
@else if $gradient-positions
|
8 |
-
and ($gradient-type == radial)
|
9 |
-
and (type-of($gradient-positions) != color) {
|
10 |
-
$gradient-positions: _radial-positions-parser($gradient-positions);
|
11 |
-
}
|
12 |
-
@return $gradient-positions;
|
13 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_linear-angle-parser.scss
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
// Private function for linear-gradient-parser
|
2 |
-
@function _linear-angle-parser($image, $first-val, $prefix, $suffix) {
|
3 |
-
$offset: null;
|
4 |
-
$unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val));
|
5 |
-
$unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val));
|
6 |
-
|
7 |
-
@if ($unit-long == "grad") or
|
8 |
-
($unit-long == "turn") {
|
9 |
-
$offset: if($unit-long == "grad", -100grad * 3, -0.75turn);
|
10 |
-
}
|
11 |
-
|
12 |
-
@else if ($unit-short == "deg") or
|
13 |
-
($unit-short == "rad") {
|
14 |
-
$offset: if($unit-short == "deg", -90 * 3, 1.6rad);
|
15 |
-
}
|
16 |
-
|
17 |
-
@if $offset {
|
18 |
-
$num: _str-to-num($first-val);
|
19 |
-
|
20 |
-
@return (
|
21 |
-
webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix,
|
22 |
-
spec-image: $image
|
23 |
-
);
|
24 |
-
}
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_linear-gradient-parser.scss
DELETED
@@ -1,41 +0,0 @@
|
|
1 |
-
@function _linear-gradient-parser($image) {
|
2 |
-
$image: unquote($image);
|
3 |
-
$gradients: ();
|
4 |
-
$start: str-index($image, "(");
|
5 |
-
$end: str-index($image, ",");
|
6 |
-
$first-val: str-slice($image, $start + 1, $end - 1);
|
7 |
-
|
8 |
-
$prefix: str-slice($image, 1, $start);
|
9 |
-
$suffix: str-slice($image, $end, str-length($image));
|
10 |
-
|
11 |
-
$has-multiple-vals: str-index($first-val, " ");
|
12 |
-
$has-single-position: unquote(_position-flipper($first-val) + "");
|
13 |
-
$has-angle: is-number(str-slice($first-val, 1, 1));
|
14 |
-
|
15 |
-
@if $has-multiple-vals {
|
16 |
-
$gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals);
|
17 |
-
}
|
18 |
-
|
19 |
-
@else if $has-single-position != "" {
|
20 |
-
$pos: unquote($has-single-position + "");
|
21 |
-
|
22 |
-
$gradients: (
|
23 |
-
webkit-image: -webkit- + $image,
|
24 |
-
spec-image: $prefix + "to " + $pos + $suffix
|
25 |
-
);
|
26 |
-
}
|
27 |
-
|
28 |
-
@else if $has-angle {
|
29 |
-
// Rotate degree for webkit
|
30 |
-
$gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix);
|
31 |
-
}
|
32 |
-
|
33 |
-
@else {
|
34 |
-
$gradients: (
|
35 |
-
webkit-image: -webkit- + $image,
|
36 |
-
spec-image: $image
|
37 |
-
);
|
38 |
-
}
|
39 |
-
|
40 |
-
@return $gradients;
|
41 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_linear-positions-parser.scss
DELETED
@@ -1,61 +0,0 @@
|
|
1 |
-
@function _linear-positions-parser($pos) {
|
2 |
-
$type: type-of(nth($pos, 1));
|
3 |
-
$spec: null;
|
4 |
-
$degree: null;
|
5 |
-
$side: null;
|
6 |
-
$corner: null;
|
7 |
-
$length: length($pos);
|
8 |
-
// Parse Side and corner positions
|
9 |
-
@if ($length > 1) {
|
10 |
-
@if nth($pos, 1) == "to" { // Newer syntax
|
11 |
-
$side: nth($pos, 2);
|
12 |
-
|
13 |
-
@if $length == 2 { // eg. to top
|
14 |
-
// Swap for backwards compatibility
|
15 |
-
$degree: _position-flipper(nth($pos, 2));
|
16 |
-
}
|
17 |
-
@else if $length == 3 { // eg. to top left
|
18 |
-
$corner: nth($pos, 3);
|
19 |
-
}
|
20 |
-
}
|
21 |
-
@else if $length == 2 { // Older syntax ("top left")
|
22 |
-
$side: _position-flipper(nth($pos, 1));
|
23 |
-
$corner: _position-flipper(nth($pos, 2));
|
24 |
-
}
|
25 |
-
|
26 |
-
@if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
|
27 |
-
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
28 |
-
}
|
29 |
-
@else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
|
30 |
-
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
31 |
-
}
|
32 |
-
@else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
|
33 |
-
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
34 |
-
}
|
35 |
-
@else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
|
36 |
-
$degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
|
37 |
-
}
|
38 |
-
$spec: to $side $corner;
|
39 |
-
}
|
40 |
-
@else if $length == 1 {
|
41 |
-
// Swap for backwards compatibility
|
42 |
-
@if $type == string {
|
43 |
-
$degree: $pos;
|
44 |
-
$spec: to _position-flipper($pos);
|
45 |
-
}
|
46 |
-
@else {
|
47 |
-
$degree: -270 - $pos; //rotate the gradient opposite from spec
|
48 |
-
$spec: $pos;
|
49 |
-
}
|
50 |
-
}
|
51 |
-
$degree: unquote($degree + ",");
|
52 |
-
$spec: unquote($spec + ",");
|
53 |
-
@return $degree $spec;
|
54 |
-
}
|
55 |
-
|
56 |
-
@function _position-flipper($pos) {
|
57 |
-
@return if($pos == left, right, null)
|
58 |
-
if($pos == right, left, null)
|
59 |
-
if($pos == top, bottom, null)
|
60 |
-
if($pos == bottom, top, null);
|
61 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_linear-side-corner-parser.scss
DELETED
@@ -1,31 +0,0 @@
|
|
1 |
-
// Private function for linear-gradient-parser
|
2 |
-
@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) {
|
3 |
-
$val-1: str-slice($first-val, 1, $has-multiple-vals - 1);
|
4 |
-
$val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val));
|
5 |
-
$val-3: null;
|
6 |
-
$has-val-3: str-index($val-2, " ");
|
7 |
-
|
8 |
-
@if $has-val-3 {
|
9 |
-
$val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2));
|
10 |
-
$val-2: str-slice($val-2, 1, $has-val-3 - 1);
|
11 |
-
}
|
12 |
-
|
13 |
-
$pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3);
|
14 |
-
$pos: unquote($pos + "");
|
15 |
-
|
16 |
-
// Use old spec for webkit
|
17 |
-
@if $val-1 == "to" {
|
18 |
-
@return (
|
19 |
-
webkit-image: -webkit- + $prefix + $pos + $suffix,
|
20 |
-
spec-image: $image
|
21 |
-
);
|
22 |
-
}
|
23 |
-
|
24 |
-
// Bring the code up to spec
|
25 |
-
@else {
|
26 |
-
@return (
|
27 |
-
webkit-image: -webkit- + $image,
|
28 |
-
spec-image: $prefix + "to " + $pos + $suffix
|
29 |
-
);
|
30 |
-
}
|
31 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_radial-arg-parser.scss
DELETED
@@ -1,69 +0,0 @@
|
|
1 |
-
@function _radial-arg-parser($g1, $g2, $pos, $shape-size) {
|
2 |
-
@each $value in $g1, $g2 {
|
3 |
-
$first-val: nth($value, 1);
|
4 |
-
$pos-type: type-of($first-val);
|
5 |
-
$spec-at-index: null;
|
6 |
-
|
7 |
-
// Determine if spec was passed to mixin
|
8 |
-
@if type-of($value) == list {
|
9 |
-
$spec-at-index: if(index($value, at), index($value, at), false);
|
10 |
-
}
|
11 |
-
@if $spec-at-index {
|
12 |
-
@if $spec-at-index > 1 {
|
13 |
-
@for $i from 1 through ($spec-at-index - 1) {
|
14 |
-
$shape-size: $shape-size nth($value, $i);
|
15 |
-
}
|
16 |
-
@for $i from ($spec-at-index + 1) through length($value) {
|
17 |
-
$pos: $pos nth($value, $i);
|
18 |
-
}
|
19 |
-
}
|
20 |
-
@else if $spec-at-index == 1 {
|
21 |
-
@for $i from ($spec-at-index + 1) through length($value) {
|
22 |
-
$pos: $pos nth($value, $i);
|
23 |
-
}
|
24 |
-
}
|
25 |
-
$g1: null;
|
26 |
-
}
|
27 |
-
|
28 |
-
// If not spec calculate correct values
|
29 |
-
@else {
|
30 |
-
@if ($pos-type != color) or ($first-val != "transparent") {
|
31 |
-
@if ($pos-type == number)
|
32 |
-
or ($first-val == "center")
|
33 |
-
or ($first-val == "top")
|
34 |
-
or ($first-val == "right")
|
35 |
-
or ($first-val == "bottom")
|
36 |
-
or ($first-val == "left") {
|
37 |
-
|
38 |
-
$pos: $value;
|
39 |
-
|
40 |
-
@if $pos == $g1 {
|
41 |
-
$g1: null;
|
42 |
-
}
|
43 |
-
}
|
44 |
-
|
45 |
-
@else if
|
46 |
-
($first-val == "ellipse")
|
47 |
-
or ($first-val == "circle")
|
48 |
-
or ($first-val == "closest-side")
|
49 |
-
or ($first-val == "closest-corner")
|
50 |
-
or ($first-val == "farthest-side")
|
51 |
-
or ($first-val == "farthest-corner")
|
52 |
-
or ($first-val == "contain")
|
53 |
-
or ($first-val == "cover") {
|
54 |
-
|
55 |
-
$shape-size: $value;
|
56 |
-
|
57 |
-
@if $value == $g1 {
|
58 |
-
$g1: null;
|
59 |
-
}
|
60 |
-
|
61 |
-
@else if $value == $g2 {
|
62 |
-
$g2: null;
|
63 |
-
}
|
64 |
-
}
|
65 |
-
}
|
66 |
-
}
|
67 |
-
}
|
68 |
-
@return $g1, $g2, $pos, $shape-size;
|
69 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_radial-gradient-parser.scss
DELETED
@@ -1,50 +0,0 @@
|
|
1 |
-
@function _radial-gradient-parser($image) {
|
2 |
-
$image: unquote($image);
|
3 |
-
$gradients: ();
|
4 |
-
$start: str-index($image, "(");
|
5 |
-
$end: str-index($image, ",");
|
6 |
-
$first-val: str-slice($image, $start + 1, $end - 1);
|
7 |
-
|
8 |
-
$prefix: str-slice($image, 1, $start);
|
9 |
-
$suffix: str-slice($image, $end, str-length($image));
|
10 |
-
|
11 |
-
$is-spec-syntax: str-index($first-val, "at");
|
12 |
-
|
13 |
-
@if $is-spec-syntax and $is-spec-syntax > 1 {
|
14 |
-
$keyword: str-slice($first-val, 1, $is-spec-syntax - 2);
|
15 |
-
$pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
|
16 |
-
$pos: append($pos, $keyword, comma);
|
17 |
-
|
18 |
-
$gradients: (
|
19 |
-
webkit-image: -webkit- + $prefix + $pos + $suffix,
|
20 |
-
spec-image: $image
|
21 |
-
);
|
22 |
-
}
|
23 |
-
|
24 |
-
@else if $is-spec-syntax == 1 {
|
25 |
-
$pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
|
26 |
-
|
27 |
-
$gradients: (
|
28 |
-
webkit-image: -webkit- + $prefix + $pos + $suffix,
|
29 |
-
spec-image: $image
|
30 |
-
);
|
31 |
-
}
|
32 |
-
|
33 |
-
@else if str-index($image, "cover") or str-index($image, "contain") {
|
34 |
-
@warn "Radial-gradient needs to be updated to conform to latest spec.";
|
35 |
-
|
36 |
-
$gradients: (
|
37 |
-
webkit-image: null,
|
38 |
-
spec-image: $image
|
39 |
-
);
|
40 |
-
}
|
41 |
-
|
42 |
-
@else {
|
43 |
-
$gradients: (
|
44 |
-
webkit-image: -webkit- + $image,
|
45 |
-
spec-image: $image
|
46 |
-
);
|
47 |
-
}
|
48 |
-
|
49 |
-
@return $gradients;
|
50 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_radial-positions-parser.scss
DELETED
@@ -1,18 +0,0 @@
|
|
1 |
-
@function _radial-positions-parser($gradient-pos) {
|
2 |
-
$shape-size: nth($gradient-pos, 1);
|
3 |
-
$pos: nth($gradient-pos, 2);
|
4 |
-
$shape-size-spec: _shape-size-stripper($shape-size);
|
5 |
-
|
6 |
-
$pre-spec: unquote(if($pos, "#{$pos}, ", null))
|
7 |
-
unquote(if($shape-size, "#{$shape-size},", null));
|
8 |
-
$pos-spec: if($pos, "at #{$pos}", null);
|
9 |
-
|
10 |
-
$spec: "#{$shape-size-spec} #{$pos-spec}";
|
11 |
-
|
12 |
-
// Add comma
|
13 |
-
@if ($spec != " ") {
|
14 |
-
$spec: "#{$spec},";
|
15 |
-
}
|
16 |
-
|
17 |
-
@return $pre-spec $spec;
|
18 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_render-gradients.scss
DELETED
@@ -1,26 +0,0 @@
|
|
1 |
-
// User for linear and radial gradients within background-image or border-image properties
|
2 |
-
|
3 |
-
@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
|
4 |
-
$pre-spec: null;
|
5 |
-
$spec: null;
|
6 |
-
$vendor-gradients: null;
|
7 |
-
@if $gradient-type == linear {
|
8 |
-
@if $gradient-positions {
|
9 |
-
$pre-spec: nth($gradient-positions, 1);
|
10 |
-
$spec: nth($gradient-positions, 2);
|
11 |
-
}
|
12 |
-
}
|
13 |
-
@else if $gradient-type == radial {
|
14 |
-
$pre-spec: nth($gradient-positions, 1);
|
15 |
-
$spec: nth($gradient-positions, 2);
|
16 |
-
}
|
17 |
-
|
18 |
-
@if $vendor {
|
19 |
-
$vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
|
20 |
-
}
|
21 |
-
@else if $vendor == false {
|
22 |
-
$vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
|
23 |
-
$vendor-gradients: unquote($vendor-gradients);
|
24 |
-
}
|
25 |
-
@return $vendor-gradients;
|
26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_shape-size-stripper.scss
DELETED
@@ -1,10 +0,0 @@
|
|
1 |
-
@function _shape-size-stripper($shape-size) {
|
2 |
-
$shape-size-spec: null;
|
3 |
-
@each $value in $shape-size {
|
4 |
-
@if ($value == "cover") or ($value == "contain") {
|
5 |
-
$value: null;
|
6 |
-
}
|
7 |
-
$shape-size-spec: "#{$shape-size-spec} #{$value}";
|
8 |
-
}
|
9 |
-
@return $shape-size-spec;
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/helpers/_str-to-num.scss
DELETED
@@ -1,50 +0,0 @@
|
|
1 |
-
//************************************************************************//
|
2 |
-
// Helper function for linear/radial-gradient-parsers.
|
3 |
-
// Source: http://sassmeister.com/gist/9647408
|
4 |
-
//************************************************************************//
|
5 |
-
@function _str-to-num($string) {
|
6 |
-
// Matrices
|
7 |
-
$strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9";
|
8 |
-
$numbers: 0 1 2 3 4 5 6 7 8 9;
|
9 |
-
|
10 |
-
// Result
|
11 |
-
$result: 0;
|
12 |
-
$divider: 0;
|
13 |
-
$minus: false;
|
14 |
-
|
15 |
-
// Looping through all characters
|
16 |
-
@for $i from 1 through str-length($string) {
|
17 |
-
$character: str-slice($string, $i, $i);
|
18 |
-
$index: index($strings, $character);
|
19 |
-
|
20 |
-
@if $character == "-" {
|
21 |
-
$minus: true;
|
22 |
-
}
|
23 |
-
|
24 |
-
@else if $character == "." {
|
25 |
-
$divider: 1;
|
26 |
-
}
|
27 |
-
|
28 |
-
@else {
|
29 |
-
@if not $index {
|
30 |
-
$result: if($minus, $result * -1, $result);
|
31 |
-
@return _convert-units($result, str-slice($string, $i));
|
32 |
-
}
|
33 |
-
|
34 |
-
$number: nth($numbers, $index);
|
35 |
-
|
36 |
-
@if $divider == 0 {
|
37 |
-
$result: $result * 10;
|
38 |
-
}
|
39 |
-
|
40 |
-
@else {
|
41 |
-
// Move the decimal dot to the left
|
42 |
-
$divider: $divider * 10;
|
43 |
-
$number: $number / $divider;
|
44 |
-
}
|
45 |
-
|
46 |
-
$result: $result + $number;
|
47 |
-
}
|
48 |
-
}
|
49 |
-
@return if($minus, $result * -1, $result);
|
50 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/settings/_asset-pipeline.scss
DELETED
@@ -1,7 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// A global setting to enable or disable the `$asset-pipeline` variable for all functions that accept it.
|
4 |
-
///
|
5 |
-
/// @type Bool
|
6 |
-
|
7 |
-
$asset-pipeline: false !default;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/settings/_prefixer.scss
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Global variables to enable or disable vendor prefixes
|
4 |
-
|
5 |
-
$prefix-for-webkit: true !default;
|
6 |
-
$prefix-for-mozilla: true !default;
|
7 |
-
$prefix-for-microsoft: true !default;
|
8 |
-
$prefix-for-opera: true !default;
|
9 |
-
$prefix-for-spec: true !default;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/bourbon/settings/_px-to-em.scss
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
$em-base: 16px !default;
|
|
mixins/sass/mixins.scss
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
@import "bourbon/bourbon";
|
2 |
-
@import "neat/neat";
|
|
|
|
mixins/sass/neat/_neat-helpers.scss
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
// Functions
|
2 |
-
@import "functions/private";
|
3 |
-
@import "functions/new-breakpoint";
|
4 |
-
|
5 |
-
// Settings
|
6 |
-
@import "settings/grid";
|
7 |
-
@import "settings/visual-grid";
|
8 |
-
@import "settings/disable-warnings";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/_neat.scss
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
// Neat 1.7.4
|
2 |
-
// http://neat.bourbon.io
|
3 |
-
// Copyright 2012-2015 thoughtbot, inc.
|
4 |
-
// MIT License
|
5 |
-
|
6 |
-
// Helpers
|
7 |
-
@import "neat-helpers";
|
8 |
-
|
9 |
-
// Grid
|
10 |
-
@import "grid/private";
|
11 |
-
@import "grid/box-sizing";
|
12 |
-
@import "grid/omega";
|
13 |
-
@import "grid/outer-container";
|
14 |
-
@import "grid/span-columns";
|
15 |
-
@import "grid/row";
|
16 |
-
@import "grid/shift";
|
17 |
-
@import "grid/pad";
|
18 |
-
@import "grid/fill-parent";
|
19 |
-
@import "grid/media";
|
20 |
-
@import "grid/to-deprecate";
|
21 |
-
@import "grid/visual-grid";
|
22 |
-
@import "grid/display-context";
|
23 |
-
@import "grid/direction-context";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/functions/_new-breakpoint.scss
DELETED
@@ -1,49 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Returns a media context (media query / grid context) that can be stored in a variable and passed to `media()` as a single-keyword argument. Media contexts defined using `new-breakpoint` are used by the visual grid, as long as they are defined before importing Neat.
|
4 |
-
///
|
5 |
-
/// @param {List} $query
|
6 |
-
/// A list of media query features and values. Each `$feature` should have a corresponding `$value`.
|
7 |
-
///
|
8 |
-
/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used.
|
9 |
-
///
|
10 |
-
/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`). For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1).
|
11 |
-
///
|
12 |
-
/// @param {Number (unitless)} $total-columns [$grid-columns]
|
13 |
-
/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter.
|
14 |
-
///
|
15 |
-
/// @example scss - Usage
|
16 |
-
/// $mobile: new-breakpoint(max-width 480px 4);
|
17 |
-
///
|
18 |
-
/// .element {
|
19 |
-
/// @include media($mobile) {
|
20 |
-
/// @include span-columns(4);
|
21 |
-
/// }
|
22 |
-
/// }
|
23 |
-
///
|
24 |
-
/// @example css - CSS Output
|
25 |
-
/// @media screen and (max-width: 480px) {
|
26 |
-
/// .element {
|
27 |
-
/// display: block;
|
28 |
-
/// float: left;
|
29 |
-
/// margin-right: 7.42297%;
|
30 |
-
/// width: 100%;
|
31 |
-
/// }
|
32 |
-
/// .element:last-child {
|
33 |
-
/// margin-right: 0;
|
34 |
-
/// }
|
35 |
-
/// }
|
36 |
-
|
37 |
-
@function new-breakpoint($query: $feature $value $columns, $total-columns: $grid-columns) {
|
38 |
-
@if length($query) == 1 {
|
39 |
-
$query: $default-feature nth($query, 1) $total-columns;
|
40 |
-
} @else if is-even(length($query)) {
|
41 |
-
$query: append($query, $total-columns);
|
42 |
-
}
|
43 |
-
|
44 |
-
@if is-not(belongs-to($query, $visual-grid-breakpoints)) {
|
45 |
-
$visual-grid-breakpoints: append($visual-grid-breakpoints, $query, comma) !global;
|
46 |
-
}
|
47 |
-
|
48 |
-
@return $query;
|
49 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/functions/_private.scss
DELETED
@@ -1,114 +0,0 @@
|
|
1 |
-
// Not function for Libsass compatibility
|
2 |
-
// https://github.com/sass/libsass/issues/368
|
3 |
-
@function is-not($value) {
|
4 |
-
@return if($value, false, true);
|
5 |
-
}
|
6 |
-
|
7 |
-
// Checks if a number is even
|
8 |
-
@function is-even($int) {
|
9 |
-
@return $int % 2 == 0;
|
10 |
-
}
|
11 |
-
|
12 |
-
// Checks if an element belongs to a list or not
|
13 |
-
@function belongs-to($tested-item, $list) {
|
14 |
-
@return is-not(not-belongs-to($tested-item, $list));
|
15 |
-
}
|
16 |
-
|
17 |
-
@function not-belongs-to($tested-item, $list) {
|
18 |
-
@return is-not(index($list, $tested-item));
|
19 |
-
}
|
20 |
-
|
21 |
-
// Contains display value
|
22 |
-
@function contains-display-value($query) {
|
23 |
-
@return belongs-to(table, $query)
|
24 |
-
or belongs-to(block, $query)
|
25 |
-
or belongs-to(inline-block, $query)
|
26 |
-
or belongs-to(inline, $query);
|
27 |
-
}
|
28 |
-
|
29 |
-
// Parses the first argument of span-columns()
|
30 |
-
@function container-span($span: $span) {
|
31 |
-
@if length($span) == 3 {
|
32 |
-
$container-columns: nth($span, 3);
|
33 |
-
@return $container-columns;
|
34 |
-
} @else if length($span) == 2 {
|
35 |
-
$container-columns: nth($span, 2);
|
36 |
-
@return $container-columns;
|
37 |
-
}
|
38 |
-
|
39 |
-
@return $grid-columns;
|
40 |
-
}
|
41 |
-
|
42 |
-
@function container-shift($shift: $shift) {
|
43 |
-
$parent-columns: $grid-columns !default !global;
|
44 |
-
|
45 |
-
@if length($shift) == 3 {
|
46 |
-
$container-columns: nth($shift, 3);
|
47 |
-
@return $container-columns;
|
48 |
-
} @else if length($shift) == 2 {
|
49 |
-
$container-columns: nth($shift, 2);
|
50 |
-
@return $container-columns;
|
51 |
-
}
|
52 |
-
|
53 |
-
@return $parent-columns;
|
54 |
-
}
|
55 |
-
|
56 |
-
// Generates a striped background
|
57 |
-
@function gradient-stops($grid-columns, $color: $visual-grid-color) {
|
58 |
-
$transparent: transparent;
|
59 |
-
|
60 |
-
$column-width: flex-grid(1, $grid-columns);
|
61 |
-
$gutter-width: flex-gutter($grid-columns);
|
62 |
-
$column-offset: $column-width;
|
63 |
-
|
64 |
-
$values: ($transparent 0, $color 0);
|
65 |
-
|
66 |
-
@for $i from 1 to $grid-columns*2 {
|
67 |
-
@if is-even($i) {
|
68 |
-
$values: append($values, $transparent $column-offset, comma);
|
69 |
-
$values: append($values, $color $column-offset, comma);
|
70 |
-
$column-offset: $column-offset + $column-width;
|
71 |
-
} @else {
|
72 |
-
$values: append($values, $color $column-offset, comma);
|
73 |
-
$values: append($values, $transparent $column-offset, comma);
|
74 |
-
$column-offset: $column-offset + $gutter-width;
|
75 |
-
}
|
76 |
-
}
|
77 |
-
|
78 |
-
@return $values;
|
79 |
-
}
|
80 |
-
|
81 |
-
// Layout direction
|
82 |
-
@function get-direction($layout, $default) {
|
83 |
-
$direction: null;
|
84 |
-
|
85 |
-
@if to-upper-case($layout) == "LTR" or to-upper-case($layout) == "RTL" {
|
86 |
-
$direction: direction-from-layout($layout);
|
87 |
-
} @else {
|
88 |
-
$direction: direction-from-layout($default);
|
89 |
-
}
|
90 |
-
|
91 |
-
@return $direction;
|
92 |
-
}
|
93 |
-
|
94 |
-
@function direction-from-layout($layout) {
|
95 |
-
$direction: null;
|
96 |
-
|
97 |
-
@if to-upper-case($layout) == "LTR" {
|
98 |
-
$direction: right;
|
99 |
-
} @else {
|
100 |
-
$direction: left;
|
101 |
-
}
|
102 |
-
|
103 |
-
@return $direction;
|
104 |
-
}
|
105 |
-
|
106 |
-
@function get-opposite-direction($direction) {
|
107 |
-
$opposite-direction: left;
|
108 |
-
|
109 |
-
@if $direction == "left" {
|
110 |
-
$opposite-direction: right;
|
111 |
-
}
|
112 |
-
|
113 |
-
@return $opposite-direction;
|
114 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_box-sizing.scss
DELETED
@@ -1,15 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
@if $border-box-sizing == true {
|
4 |
-
html { // http://bit.ly/1qk2tVR
|
5 |
-
box-sizing: border-box;
|
6 |
-
}
|
7 |
-
|
8 |
-
* {
|
9 |
-
&,
|
10 |
-
&::after,
|
11 |
-
&::before {
|
12 |
-
box-sizing: inherit;
|
13 |
-
}
|
14 |
-
}
|
15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_direction-context.scss
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Changes the direction property used by other mixins called in the code block argument.
|
4 |
-
///
|
5 |
-
/// @param {String} $direction [left-to-right]
|
6 |
-
/// Layout direction to be used within the block. Can be `left-to-right` or `right-to-left`.
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// @include direction-context(right-to-left) {
|
10 |
-
/// .right-to-left-block {
|
11 |
-
/// @include span-columns(6);
|
12 |
-
/// }
|
13 |
-
/// }
|
14 |
-
///
|
15 |
-
/// @example css - CSS Output
|
16 |
-
/// .right-to-left-block {
|
17 |
-
/// float: right;
|
18 |
-
/// ...
|
19 |
-
/// }
|
20 |
-
|
21 |
-
@mixin direction-context($direction: left-to-right) {
|
22 |
-
$scope-direction: $layout-direction;
|
23 |
-
|
24 |
-
@if to-lower-case($direction) == "left-to-right" {
|
25 |
-
$layout-direction: LTR !global;
|
26 |
-
} @else if to-lower-case($direction) == "right-to-left" {
|
27 |
-
$layout-direction: RTL !global;
|
28 |
-
}
|
29 |
-
|
30 |
-
@content;
|
31 |
-
|
32 |
-
$layout-direction: $scope-direction !global;
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_display-context.scss
DELETED
@@ -1,28 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Changes the display property used by other mixins called in the code block argument.
|
4 |
-
///
|
5 |
-
/// @param {String} $display [block]
|
6 |
-
/// Display value to be used within the block. Can be `table` or `block`.
|
7 |
-
///
|
8 |
-
/// @example scss
|
9 |
-
/// @include display-context(table) {
|
10 |
-
/// .display-table {
|
11 |
-
/// @include span-columns(6);
|
12 |
-
/// }
|
13 |
-
/// }
|
14 |
-
///
|
15 |
-
/// @example css
|
16 |
-
/// .display-table {
|
17 |
-
/// display: table-cell;
|
18 |
-
/// ...
|
19 |
-
/// }
|
20 |
-
|
21 |
-
@mixin display-context($display: block) {
|
22 |
-
$scope-display: $container-display-table;
|
23 |
-
$container-display-table: $display == table !global;
|
24 |
-
|
25 |
-
@content;
|
26 |
-
|
27 |
-
$container-display-table: $scope-display !global;
|
28 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_fill-parent.scss
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Forces the element to fill its parent container.
|
4 |
-
///
|
5 |
-
/// @example scss - Usage
|
6 |
-
/// .element {
|
7 |
-
/// @include fill-parent;
|
8 |
-
/// }
|
9 |
-
///
|
10 |
-
/// @example css - CSS Output
|
11 |
-
/// .element {
|
12 |
-
/// width: 100%;
|
13 |
-
/// box-sizing: border-box;
|
14 |
-
/// }
|
15 |
-
|
16 |
-
@mixin fill-parent() {
|
17 |
-
width: 100%;
|
18 |
-
|
19 |
-
@if $border-box-sizing == false {
|
20 |
-
box-sizing: border-box;
|
21 |
-
}
|
22 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_media.scss
DELETED
@@ -1,92 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Outputs a media-query block with an optional grid context (the total number of columns used in the grid).
|
4 |
-
///
|
5 |
-
/// @param {List} $query
|
6 |
-
/// A list of media query features and values, where each `$feature` should have a corresponding `$value`.
|
7 |
-
/// For a list of valid values for `$feature`, click [here](http://www.w3.org/TR/css3-mediaqueries/#media1).
|
8 |
-
///
|
9 |
-
/// If there is only a single `$value` in `$query`, `$default-feature` is going to be used.
|
10 |
-
///
|
11 |
-
/// The number of total columns in the grid can be set by passing `$columns` at the end of the list (overrides `$total-columns`).
|
12 |
-
///
|
13 |
-
///
|
14 |
-
/// @param {Number (unitless)} $total-columns [$grid-columns]
|
15 |
-
/// - Number of columns to use in the new grid context. Can be set as a shorthand in the first parameter.
|
16 |
-
///
|
17 |
-
/// @example scss - Usage
|
18 |
-
/// .responsive-element {
|
19 |
-
/// @include media(769px) {
|
20 |
-
/// @include span-columns(6);
|
21 |
-
/// }
|
22 |
-
/// }
|
23 |
-
///
|
24 |
-
/// .new-context-element {
|
25 |
-
/// @include media(min-width 320px max-width 480px, 6) {
|
26 |
-
/// @include span-columns(6);
|
27 |
-
/// }
|
28 |
-
/// }
|
29 |
-
///
|
30 |
-
/// @example css - CSS Output
|
31 |
-
/// @media screen and (min-width: 769px) {
|
32 |
-
/// .responsive-element {
|
33 |
-
/// display: block;
|
34 |
-
/// float: left;
|
35 |
-
/// margin-right: 2.35765%;
|
36 |
-
/// width: 48.82117%;
|
37 |
-
/// }
|
38 |
-
///
|
39 |
-
/// .responsive-element:last-child {
|
40 |
-
/// margin-right: 0;
|
41 |
-
/// }
|
42 |
-
/// }
|
43 |
-
///
|
44 |
-
/// @media screen and (min-width: 320px) and (max-width: 480px) {
|
45 |
-
/// .new-context-element {
|
46 |
-
/// display: block;
|
47 |
-
/// float: left;
|
48 |
-
/// margin-right: 4.82916%;
|
49 |
-
/// width: 100%;
|
50 |
-
/// }
|
51 |
-
///
|
52 |
-
/// .new-context-element:last-child {
|
53 |
-
/// margin-right: 0;
|
54 |
-
/// }
|
55 |
-
/// }
|
56 |
-
|
57 |
-
@mixin media($query: $feature $value $columns, $total-columns: $grid-columns) {
|
58 |
-
@if length($query) == 1 {
|
59 |
-
@media screen and ($default-feature: nth($query, 1)) {
|
60 |
-
$default-grid-columns: $grid-columns;
|
61 |
-
$grid-columns: $total-columns !global;
|
62 |
-
@content;
|
63 |
-
$grid-columns: $default-grid-columns !global;
|
64 |
-
}
|
65 |
-
} @else {
|
66 |
-
$loop-to: length($query);
|
67 |
-
$media-query: "screen and ";
|
68 |
-
$default-grid-columns: $grid-columns;
|
69 |
-
$grid-columns: $total-columns !global;
|
70 |
-
|
71 |
-
@if is-not(is-even(length($query))) {
|
72 |
-
$grid-columns: nth($query, $loop-to) !global;
|
73 |
-
$loop-to: $loop-to - 1;
|
74 |
-
}
|
75 |
-
|
76 |
-
$i: 1;
|
77 |
-
@while $i <= $loop-to {
|
78 |
-
$media-query: $media-query + "(" + nth($query, $i) + ": " + nth($query, $i + 1) + ") ";
|
79 |
-
|
80 |
-
@if ($i + 1) != $loop-to {
|
81 |
-
$media-query: $media-query + "and ";
|
82 |
-
}
|
83 |
-
|
84 |
-
$i: $i + 2;
|
85 |
-
}
|
86 |
-
|
87 |
-
@media #{$media-query} {
|
88 |
-
@content;
|
89 |
-
$grid-columns: $default-grid-columns !global;
|
90 |
-
}
|
91 |
-
}
|
92 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_omega.scss
DELETED
@@ -1,87 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Removes the element's gutter margin, regardless of its position in the grid hierarchy or display property. It can target a specific element, or every `nth-child` occurrence. Works only with `block` layouts.
|
4 |
-
///
|
5 |
-
/// @param {List} $query [block]
|
6 |
-
/// List of arguments. Supported arguments are `nth-child` selectors (targets a specific pseudo element) and `auto` (targets `last-child`).
|
7 |
-
///
|
8 |
-
/// When passed an `nth-child` argument of type `*n` with `block` display, the omega mixin automatically adds a clear to the `*n+1` th element. Note that composite arguments such as `2n+1` do not support this feature.
|
9 |
-
///
|
10 |
-
/// **Deprecation warning**: The omega mixin will no longer take a `$direction` argument. To change the layout direction, use `row($direction)` or set `$default-layout-direction` instead.
|
11 |
-
///
|
12 |
-
/// @example scss - Usage
|
13 |
-
/// .element {
|
14 |
-
/// @include omega;
|
15 |
-
/// }
|
16 |
-
///
|
17 |
-
/// .nth-element {
|
18 |
-
/// @include omega(4n);
|
19 |
-
/// }
|
20 |
-
///
|
21 |
-
/// @example css - CSS Output
|
22 |
-
/// .element {
|
23 |
-
/// margin-right: 0;
|
24 |
-
/// }
|
25 |
-
///
|
26 |
-
/// .nth-element:nth-child(4n) {
|
27 |
-
/// margin-right: 0;
|
28 |
-
/// }
|
29 |
-
///
|
30 |
-
/// .nth-element:nth-child(4n+1) {
|
31 |
-
/// clear: left;
|
32 |
-
/// }
|
33 |
-
|
34 |
-
@mixin omega($query: block, $direction: default) {
|
35 |
-
$table: belongs-to(table, $query);
|
36 |
-
$auto: belongs-to(auto, $query);
|
37 |
-
|
38 |
-
@if $direction != default {
|
39 |
-
@include -neat-warn("The omega mixin will no longer take a $direction argument. To change the layout direction, use the direction(){...} mixin.");
|
40 |
-
} @else {
|
41 |
-
$direction: get-direction($layout-direction, $default-layout-direction);
|
42 |
-
}
|
43 |
-
|
44 |
-
@if $table {
|
45 |
-
@include -neat-warn("The omega mixin no longer removes padding in table layouts.");
|
46 |
-
}
|
47 |
-
|
48 |
-
@if length($query) == 1 {
|
49 |
-
@if $auto {
|
50 |
-
&:last-child {
|
51 |
-
margin-#{$direction}: 0;
|
52 |
-
}
|
53 |
-
}
|
54 |
-
|
55 |
-
@else if contains-display-value($query) and $table == false {
|
56 |
-
margin-#{$direction}: 0;
|
57 |
-
}
|
58 |
-
|
59 |
-
@else {
|
60 |
-
@include nth-child($query, $direction);
|
61 |
-
}
|
62 |
-
} @else if length($query) == 2 {
|
63 |
-
@if $auto {
|
64 |
-
&:last-child {
|
65 |
-
margin-#{$direction}: 0;
|
66 |
-
}
|
67 |
-
} @else {
|
68 |
-
@include nth-child(nth($query, 1), $direction);
|
69 |
-
}
|
70 |
-
} @else {
|
71 |
-
@include -neat-warn("Too many arguments passed to the omega() mixin.");
|
72 |
-
}
|
73 |
-
}
|
74 |
-
|
75 |
-
@mixin nth-child($query, $direction) {
|
76 |
-
$opposite-direction: get-opposite-direction($direction);
|
77 |
-
|
78 |
-
&:nth-child(#{$query}) {
|
79 |
-
margin-#{$direction}: 0;
|
80 |
-
}
|
81 |
-
|
82 |
-
@if type-of($query) == number and unit($query) == "n" {
|
83 |
-
&:nth-child(#{$query}+1) {
|
84 |
-
clear: $opposite-direction;
|
85 |
-
}
|
86 |
-
}
|
87 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_outer-container.scss
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Makes an element a outer container by centering it in the viewport, clearing its floats, and setting its `max-width`.
|
4 |
-
/// Although optional, using `outer-container` is recommended. The mixin can be called on more than one element per page, as long as they are not nested.
|
5 |
-
///
|
6 |
-
/// @param {Number [unit]} $local-max-width [$max-width]
|
7 |
-
/// Max width to be applied to the element. Can be a percentage or a measure.
|
8 |
-
///
|
9 |
-
/// @example scss - Usage
|
10 |
-
/// .element {
|
11 |
-
/// @include outer-container(100%);
|
12 |
-
/// }
|
13 |
-
///
|
14 |
-
/// @example css - CSS Output
|
15 |
-
/// .element {
|
16 |
-
/// *zoom: 1;
|
17 |
-
/// max-width: 100%;
|
18 |
-
/// margin-left: auto;
|
19 |
-
/// margin-right: auto;
|
20 |
-
/// }
|
21 |
-
///
|
22 |
-
/// .element:before, .element:after {
|
23 |
-
/// content: " ";
|
24 |
-
/// display: table;
|
25 |
-
/// }
|
26 |
-
///
|
27 |
-
/// .element:after {
|
28 |
-
/// clear: both;
|
29 |
-
/// }
|
30 |
-
|
31 |
-
@mixin outer-container($local-max-width: $max-width) {
|
32 |
-
@include clearfix;
|
33 |
-
max-width: $local-max-width;
|
34 |
-
margin: {
|
35 |
-
left: auto;
|
36 |
-
right: auto;
|
37 |
-
}
|
38 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_pad.scss
DELETED
@@ -1,25 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Adds padding to the element.
|
4 |
-
///
|
5 |
-
/// @param {List} $padding [flex-gutter()]
|
6 |
-
/// A list of padding value(s) to use. Passing `default` in the list will result in using the gutter width as a padding value.
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element {
|
10 |
-
/// @include pad(30px -20px 10px default);
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// @example css - CSS Output
|
14 |
-
/// .element {
|
15 |
-
/// padding: 30px -20px 10px 2.35765%;
|
16 |
-
/// }
|
17 |
-
|
18 |
-
@mixin pad($padding: flex-gutter()) {
|
19 |
-
$padding-list: null;
|
20 |
-
@each $value in $padding {
|
21 |
-
$value: if($value == 'default', flex-gutter(), $value);
|
22 |
-
$padding-list: join($padding-list, $value);
|
23 |
-
}
|
24 |
-
padding: $padding-list;
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_private.scss
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
$parent-columns: $grid-columns !default;
|
2 |
-
$fg-column: $column;
|
3 |
-
$fg-gutter: $gutter;
|
4 |
-
$fg-max-columns: $grid-columns;
|
5 |
-
$container-display-table: false !default;
|
6 |
-
$layout-direction: LTR !default;
|
7 |
-
|
8 |
-
@function flex-grid($columns, $container-columns: $fg-max-columns) {
|
9 |
-
$width: $columns * $fg-column + ($columns - 1) * $fg-gutter;
|
10 |
-
$container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
|
11 |
-
@return percentage($width / $container-width);
|
12 |
-
}
|
13 |
-
|
14 |
-
@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) {
|
15 |
-
$container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
|
16 |
-
@return percentage($gutter / $container-width);
|
17 |
-
}
|
18 |
-
|
19 |
-
@function grid-width($n) {
|
20 |
-
@return $n * $gw-column + ($n - 1) * $gw-gutter;
|
21 |
-
}
|
22 |
-
|
23 |
-
@function get-parent-columns($columns) {
|
24 |
-
@if $columns != $grid-columns {
|
25 |
-
$parent-columns: $columns !global;
|
26 |
-
} @else {
|
27 |
-
$parent-columns: $grid-columns !global;
|
28 |
-
}
|
29 |
-
|
30 |
-
@return $parent-columns;
|
31 |
-
}
|
32 |
-
|
33 |
-
@function is-display-table($container-is-display-table, $display) {
|
34 |
-
@return $container-is-display-table == true or $display == table;
|
35 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_row.scss
DELETED
@@ -1,52 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Designates the element as a row of columns in the grid layout. It clears the floats on the element and sets its display property. Rows can't be nested, but there can be more than one row element—with different display properties—per layout.
|
4 |
-
///
|
5 |
-
/// @param {String} $display [default]
|
6 |
-
/// Sets the display property of the element and the display context that will be used by its children. Can be `block` or `table`.
|
7 |
-
///
|
8 |
-
/// @param {String} $direction [$default-layout-direction]
|
9 |
-
/// Sets the layout direction. Can be `LTR` (left-to-right) or `RTL` (right-to-left).
|
10 |
-
///
|
11 |
-
/// @example scss - Usage
|
12 |
-
/// .element {
|
13 |
-
/// @include row();
|
14 |
-
/// }
|
15 |
-
///
|
16 |
-
/// @example css - CSS Output
|
17 |
-
/// .element {
|
18 |
-
/// *zoom: 1;
|
19 |
-
/// display: block;
|
20 |
-
/// }
|
21 |
-
///
|
22 |
-
/// .element:before, .element:after {
|
23 |
-
/// content: " ";
|
24 |
-
/// display: table;
|
25 |
-
/// }
|
26 |
-
///
|
27 |
-
/// .element:after {
|
28 |
-
/// clear: both;
|
29 |
-
/// }
|
30 |
-
|
31 |
-
@mixin row($display: default, $direction: $default-layout-direction) {
|
32 |
-
@if $direction != $default-layout-direction {
|
33 |
-
@include -neat-warn("The $direction argument will be deprecated in future versions in favor of the direction(){...} mixin.");
|
34 |
-
}
|
35 |
-
|
36 |
-
$layout-direction: $direction !global;
|
37 |
-
|
38 |
-
@if $display != default {
|
39 |
-
@include -neat-warn("The $display argument will be deprecated in future versions in favor of the display(){...} mixin.");
|
40 |
-
}
|
41 |
-
|
42 |
-
@if $display == table {
|
43 |
-
display: table;
|
44 |
-
@include fill-parent;
|
45 |
-
table-layout: fixed;
|
46 |
-
$container-display-table: true !global;
|
47 |
-
} @else {
|
48 |
-
@include clearfix;
|
49 |
-
display: block;
|
50 |
-
$container-display-table: false !global;
|
51 |
-
}
|
52 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_shift.scss
DELETED
@@ -1,50 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction.
|
4 |
-
///
|
5 |
-
/// @param {Number (unitless)} $n-columns [1]
|
6 |
-
/// Number of columns by which the element shifts.
|
7 |
-
///
|
8 |
-
/// @example scss - Usage
|
9 |
-
/// .element {
|
10 |
-
/// @include shift(-3);
|
11 |
-
/// }
|
12 |
-
///
|
13 |
-
/// @example css - CSS output
|
14 |
-
/// .element {
|
15 |
-
/// margin-left: -25.58941%;
|
16 |
-
/// }
|
17 |
-
|
18 |
-
@mixin shift($n-columns: 1) {
|
19 |
-
@include shift-in-context($n-columns);
|
20 |
-
}
|
21 |
-
|
22 |
-
/// Translates an element horizontally by a number of columns, in a specific nesting context.
|
23 |
-
///
|
24 |
-
/// @param {List} $shift
|
25 |
-
/// A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`).
|
26 |
-
///
|
27 |
-
/// The two values can be separated with any string such as `of`, `/`, etc.
|
28 |
-
///
|
29 |
-
/// @example scss - Usage
|
30 |
-
/// .element {
|
31 |
-
/// @include shift(-3 of 6);
|
32 |
-
/// }
|
33 |
-
///
|
34 |
-
/// @example css - CSS output
|
35 |
-
/// .element {
|
36 |
-
/// margin-left: -52.41458%;
|
37 |
-
/// }
|
38 |
-
|
39 |
-
@mixin shift-in-context($shift: $columns of $container-columns) {
|
40 |
-
$n-columns: nth($shift, 1);
|
41 |
-
$parent-columns: container-shift($shift) !global;
|
42 |
-
|
43 |
-
$direction: get-direction($layout-direction, $default-layout-direction);
|
44 |
-
$opposite-direction: get-opposite-direction($direction);
|
45 |
-
|
46 |
-
margin-#{$opposite-direction}: $n-columns * flex-grid(1, $parent-columns) + $n-columns * flex-gutter($parent-columns);
|
47 |
-
|
48 |
-
// Reset nesting context
|
49 |
-
$parent-columns: $grid-columns !global;
|
50 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_span-columns.scss
DELETED
@@ -1,94 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Specifies the number of columns an element should span. If the selector is nested the number of columns of its parent element should be passed as an argument as well.
|
4 |
-
///
|
5 |
-
/// @param {List} $span
|
6 |
-
/// A list containing `$columns`, the unitless number of columns the element spans (required), and `$container-columns`, the number of columns the parent element spans (optional).
|
7 |
-
///
|
8 |
-
/// If only one value is passed, it is assumed that it's `$columns` and that that `$container-columns` is equal to `$grid-columns`, the total number of columns in the grid.
|
9 |
-
///
|
10 |
-
/// The values can be separated with any string such as `of`, `/`, etc.
|
11 |
-
///
|
12 |
-
/// `$columns` also accepts decimals for when it's necessary to break out of the standard grid. E.g. Passing `2.4` in a standard 12 column grid will divide the row into 5 columns.
|
13 |
-
///
|
14 |
-
/// @param {String} $display [block]
|
15 |
-
/// Sets the display property of the element. By default it sets the display property of the element to `block`.
|
16 |
-
///
|
17 |
-
/// If passed `block-collapse`, it also removes the margin gutter by adding it to the element width.
|
18 |
-
///
|
19 |
-
/// If passed `table`, it sets the display property to `table-cell` and calculates the width of the element without taking gutters into consideration. The result does not align with the block-based grid.
|
20 |
-
///
|
21 |
-
/// @example scss - Usage
|
22 |
-
/// .element {
|
23 |
-
/// @include span-columns(6);
|
24 |
-
///
|
25 |
-
/// .nested-element {
|
26 |
-
/// @include span-columns(2 of 6);
|
27 |
-
/// }
|
28 |
-
/// }
|
29 |
-
///
|
30 |
-
/// @example css - CSS Output
|
31 |
-
/// .element {
|
32 |
-
/// display: block;
|
33 |
-
/// float: left;
|
34 |
-
/// margin-right: 2.35765%;
|
35 |
-
/// width: 48.82117%;
|
36 |
-
/// }
|
37 |
-
///
|
38 |
-
/// .element:last-child {
|
39 |
-
/// margin-right: 0;
|
40 |
-
/// }
|
41 |
-
///
|
42 |
-
/// .element .nested-element {
|
43 |
-
/// display: block;
|
44 |
-
/// float: left;
|
45 |
-
/// margin-right: 4.82916%;
|
46 |
-
/// width: 30.11389%;
|
47 |
-
/// }
|
48 |
-
///
|
49 |
-
/// .element .nested-element:last-child {
|
50 |
-
/// margin-right: 0;
|
51 |
-
/// }
|
52 |
-
|
53 |
-
@mixin span-columns($span: $columns of $container-columns, $display: block) {
|
54 |
-
$columns: nth($span, 1);
|
55 |
-
$container-columns: container-span($span);
|
56 |
-
|
57 |
-
$parent-columns: get-parent-columns($container-columns) !global;
|
58 |
-
|
59 |
-
$direction: get-direction($layout-direction, $default-layout-direction);
|
60 |
-
$opposite-direction: get-opposite-direction($direction);
|
61 |
-
|
62 |
-
$display-table: is-display-table($container-display-table, $display);
|
63 |
-
|
64 |
-
@if $display-table {
|
65 |
-
display: table-cell;
|
66 |
-
width: percentage($columns / $container-columns);
|
67 |
-
} @else {
|
68 |
-
float: #{$opposite-direction};
|
69 |
-
|
70 |
-
@if $display != no-display {
|
71 |
-
display: block;
|
72 |
-
}
|
73 |
-
|
74 |
-
@if $display == collapse {
|
75 |
-
@include -neat-warn("The 'collapse' argument will be deprecated. Use 'block-collapse' instead.");
|
76 |
-
}
|
77 |
-
|
78 |
-
@if $display == collapse or $display == block-collapse {
|
79 |
-
width: flex-grid($columns, $container-columns) + flex-gutter($container-columns);
|
80 |
-
|
81 |
-
&:last-child {
|
82 |
-
width: flex-grid($columns, $container-columns);
|
83 |
-
}
|
84 |
-
|
85 |
-
} @else {
|
86 |
-
margin-#{$direction}: flex-gutter($container-columns);
|
87 |
-
width: flex-grid($columns, $container-columns);
|
88 |
-
|
89 |
-
&:last-child {
|
90 |
-
margin-#{$direction}: 0;
|
91 |
-
}
|
92 |
-
}
|
93 |
-
}
|
94 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_to-deprecate.scss
DELETED
@@ -1,97 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
@mixin breakpoint($query:$feature $value $columns, $total-columns: $grid-columns) {
|
4 |
-
@include -neat-warn("The breakpoint() mixin was renamed to media() in Neat 1.0. Please update your project with the new syntax before the next version bump.");
|
5 |
-
|
6 |
-
@if length($query) == 1 {
|
7 |
-
@media screen and ($default-feature: nth($query, 1)) {
|
8 |
-
$default-grid-columns: $grid-columns;
|
9 |
-
$grid-columns: $total-columns;
|
10 |
-
@content;
|
11 |
-
$grid-columns: $default-grid-columns;
|
12 |
-
}
|
13 |
-
} @else if length($query) == 2 {
|
14 |
-
@media screen and (nth($query, 1): nth($query, 2)) {
|
15 |
-
$default-grid-columns: $grid-columns;
|
16 |
-
$grid-columns: $total-columns;
|
17 |
-
@content;
|
18 |
-
$grid-columns: $default-grid-columns;
|
19 |
-
}
|
20 |
-
} @else if length($query) == 3 {
|
21 |
-
@media screen and (nth($query, 1): nth($query, 2)) {
|
22 |
-
$default-grid-columns: $grid-columns;
|
23 |
-
$grid-columns: nth($query, 3);
|
24 |
-
@content;
|
25 |
-
$grid-columns: $default-grid-columns;
|
26 |
-
}
|
27 |
-
} @else if length($query) == 4 {
|
28 |
-
@media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) {
|
29 |
-
$default-grid-columns: $grid-columns;
|
30 |
-
$grid-columns: $total-columns;
|
31 |
-
@content;
|
32 |
-
$grid-columns: $default-grid-columns;
|
33 |
-
}
|
34 |
-
} @else if length($query) == 5 {
|
35 |
-
@media screen and (nth($query, 1): nth($query, 2)) and (nth($query, 3): nth($query, 4)) {
|
36 |
-
$default-grid-columns: $grid-columns;
|
37 |
-
$grid-columns: nth($query, 5);
|
38 |
-
@content;
|
39 |
-
$grid-columns: $default-grid-columns;
|
40 |
-
}
|
41 |
-
} @else {
|
42 |
-
@include -neat-warn("Wrong number of arguments for breakpoint(). Read the documentation for more details.");
|
43 |
-
}
|
44 |
-
}
|
45 |
-
|
46 |
-
@mixin nth-omega($nth, $display: block, $direction: default) {
|
47 |
-
@include -neat-warn("The nth-omega() mixin is deprecated. Please use omega() instead.");
|
48 |
-
@include omega($nth $display, $direction);
|
49 |
-
}
|
50 |
-
|
51 |
-
/// Resets the active display property to `block`. Particularly useful when changing the display property in a single row.
|
52 |
-
///
|
53 |
-
/// @example scss - Usage
|
54 |
-
/// .element {
|
55 |
-
/// @include row(table);
|
56 |
-
/// // Context changed to table display
|
57 |
-
/// }
|
58 |
-
///
|
59 |
-
/// @include reset-display;
|
60 |
-
/// // Context is reset to block display
|
61 |
-
|
62 |
-
@mixin reset-display {
|
63 |
-
$container-display-table: false !global;
|
64 |
-
@include -neat-warn("Resetting $display will be deprecated in future versions in favor of the display(){...} mixin.");
|
65 |
-
}
|
66 |
-
|
67 |
-
/// Resets the active layout direction to the default value set in `$default-layout-direction`. Particularly useful when changing the layout direction in a single row.
|
68 |
-
///
|
69 |
-
/// @example scss - Usage
|
70 |
-
/// .element {
|
71 |
-
/// @include row($direction: RTL);
|
72 |
-
/// // Context changed to right-to-left
|
73 |
-
/// }
|
74 |
-
///
|
75 |
-
/// @include reset-layout-direction;
|
76 |
-
/// // Context is reset to left-to-right
|
77 |
-
|
78 |
-
@mixin reset-layout-direction {
|
79 |
-
$layout-direction: $default-layout-direction !global;
|
80 |
-
@include -neat-warn("Resetting $direction will be deprecated in future versions in favor of the direction(){...} mixin.");
|
81 |
-
}
|
82 |
-
|
83 |
-
/// Resets both the active layout direction and the active display property.
|
84 |
-
///
|
85 |
-
/// @example scss - Usage
|
86 |
-
/// .element {
|
87 |
-
/// @include row(table, RTL);
|
88 |
-
/// // Context changed to table table and right-to-left
|
89 |
-
/// }
|
90 |
-
///
|
91 |
-
/// @include reset-all;
|
92 |
-
/// // Context is reset to block display and left-to-right
|
93 |
-
|
94 |
-
@mixin reset-all {
|
95 |
-
@include reset-display;
|
96 |
-
@include reset-layout-direction;
|
97 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/grid/_visual-grid.scss
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
@mixin grid-column-gradient($values...) {
|
4 |
-
background-image: -webkit-linear-gradient(left, $values);
|
5 |
-
background-image: -moz-linear-gradient(left, $values);
|
6 |
-
background-image: -ms-linear-gradient(left, $values);
|
7 |
-
background-image: -o-linear-gradient(left, $values);
|
8 |
-
background-image: unquote("linear-gradient(to left, #{$values})");
|
9 |
-
}
|
10 |
-
|
11 |
-
@if $visual-grid == true or $visual-grid == yes {
|
12 |
-
body:before {
|
13 |
-
@include grid-column-gradient(gradient-stops($grid-columns));
|
14 |
-
content: "";
|
15 |
-
display: inline-block;
|
16 |
-
height: 100%;
|
17 |
-
left: 0;
|
18 |
-
margin: 0 auto;
|
19 |
-
max-width: $max-width;
|
20 |
-
opacity: $visual-grid-opacity;
|
21 |
-
pointer-events: none;
|
22 |
-
position: fixed;
|
23 |
-
right: 0;
|
24 |
-
width: 100%;
|
25 |
-
|
26 |
-
@if $visual-grid-index == back {
|
27 |
-
z-index: -1;
|
28 |
-
}
|
29 |
-
|
30 |
-
@else if $visual-grid-index == front {
|
31 |
-
z-index: 9999;
|
32 |
-
}
|
33 |
-
|
34 |
-
@each $breakpoint in $visual-grid-breakpoints {
|
35 |
-
@if $breakpoint {
|
36 |
-
@include media($breakpoint) {
|
37 |
-
@include grid-column-gradient(gradient-stops($grid-columns));
|
38 |
-
}
|
39 |
-
}
|
40 |
-
}
|
41 |
-
}
|
42 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/settings/_disable-warnings.scss
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Disable all deprecation warnings. Defaults to `false`. Set with a `!global` flag.
|
4 |
-
///
|
5 |
-
/// @type Bool
|
6 |
-
|
7 |
-
$disable-warnings: false !default;
|
8 |
-
|
9 |
-
@mixin -neat-warn($message) {
|
10 |
-
@if $disable-warnings == false {
|
11 |
-
@warn "#{$message}";
|
12 |
-
}
|
13 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/settings/_grid.scss
DELETED
@@ -1,51 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Sets the relative width of a single grid column. The unit used should be the same one used to define `$gutter`. To learn more about `modular-scale()` see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with a `!global` flag.
|
4 |
-
///
|
5 |
-
/// @type Number (Unit)
|
6 |
-
|
7 |
-
$column: modular-scale(3, 1em, $golden) !default;
|
8 |
-
|
9 |
-
/// Sets the relative width of a single grid gutter. The unit used should be the same one used to define `$column`. To learn more about `modular-scale()` see [Bourbon docs](http://bourbon.io/docs/#modular-scale). Set with the `!global` flag.
|
10 |
-
///
|
11 |
-
/// @type Number (Unit)
|
12 |
-
|
13 |
-
$gutter: modular-scale(1, 1em, $golden) !default;
|
14 |
-
|
15 |
-
/// Sets the total number of columns in the grid. Its value can be overridden inside a media query using the `media()` mixin. Set with the `!global` flag.
|
16 |
-
///
|
17 |
-
/// @type Number (Unitless)
|
18 |
-
|
19 |
-
$grid-columns: 12 !default;
|
20 |
-
|
21 |
-
/// Sets the max-width property of the element that includes `outer-container()`. Set with the `!global` flag.
|
22 |
-
///
|
23 |
-
/// @type Number (Unit)
|
24 |
-
///
|
25 |
-
$max-width: 1200px !default;
|
26 |
-
|
27 |
-
/// When set to true, it sets the box-sizing property of all elements to `border-box`. Set with a `!global` flag.
|
28 |
-
///
|
29 |
-
/// @type Bool
|
30 |
-
///
|
31 |
-
/// @example css - CSS Output
|
32 |
-
/// html {
|
33 |
-
/// box-sizing: border-box; }
|
34 |
-
///
|
35 |
-
/// *, *::after, *::before {
|
36 |
-
/// box-sizing: inherit;
|
37 |
-
/// }
|
38 |
-
|
39 |
-
$border-box-sizing: false !default;
|
40 |
-
|
41 |
-
/// Sets the default [media feature](http://www.w3.org/TR/css3-mediaqueries/#media) that `media()` and `new-breakpoint()` revert to when only a breakpoint value is passed. Set with a `!global` flag.
|
42 |
-
///
|
43 |
-
/// @type String
|
44 |
-
|
45 |
-
$default-feature: min-width; // Default @media feature for the breakpoint() mixin
|
46 |
-
|
47 |
-
///Sets the default layout direction of the grid. Can be `LTR` or `RTL`. Set with a `!global` flag.
|
48 |
-
///
|
49 |
-
///@type String
|
50 |
-
|
51 |
-
$default-layout-direction: LTR !default;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mixins/sass/neat/settings/_visual-grid.scss
DELETED
@@ -1,27 +0,0 @@
|
|
1 |
-
@charset "UTF-8";
|
2 |
-
|
3 |
-
/// Displays the visual grid when set to true. The overlaid grid may be few pixels off depending on the browser's rendering engine and pixel rounding algorithm. Set with the `!global` flag.
|
4 |
-
///
|
5 |
-
/// @type Bool
|
6 |
-
|
7 |
-
$visual-grid: false !default;
|
8 |
-
|
9 |
-
/// Sets the visual grid color. Set with `!global` flag.
|
10 |
-
///
|
11 |
-
/// @type Color
|
12 |
-
|
13 |
-
$visual-grid-color: #eee !default;
|
14 |
-
|
15 |
-
/// Sets the `z-index` property of the visual grid. Can be `back` (behind content) or `front` (in front of content). Set with `!global` flag.
|
16 |
-
///
|
17 |
-
/// @type String
|
18 |
-
|
19 |
-
$visual-grid-index: back !default;
|
20 |
-
|
21 |
-
/// Sets the opacity property of the visual grid. Set with `!global` flag.
|
22 |
-
///
|
23 |
-
/// @type Number (unitless)
|
24 |
-
|
25 |
-
$visual-grid-opacity: 0.4 !default;
|
26 |
-
|
27 |
-
$visual-grid-breakpoints: () !default;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: iamadi
|
|
3 |
Tags: bundle, widget, button, alert, accordion, audio, video, blog, divider, person, portfolio, tabs, testimonial, siteorigin
|
4 |
Requires at least: 3.9
|
5 |
Tested up to: 4.5.3
|
6 |
-
Stable tag: 1.2.
|
7 |
License: GPLv3 or later
|
8 |
|
9 |
A collection of highly customizable and thoughtfully crafted widgets. Built on top of the SiteOrigin Widgets Bundle.
|
@@ -24,7 +24,8 @@ Included widgets
|
|
24 |
* Media Box to highlight important bits of info.
|
25 |
* Testimonial Widget to highlight what your customers think of you.
|
26 |
* Person Widget to get to know you better.
|
27 |
-
* Pricing table to add eye catching pricing lists.
|
|
|
28 |
* Alert Widget to communicate success, warnings, failure or just information.
|
29 |
* Number Counter Widget to display your stats.
|
30 |
* Circle Counter Widget to display your stats with animated circles.
|
@@ -53,6 +54,14 @@ Upload and install these plugins.
|
|
53 |
|
54 |
== Changelog ==
|
55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
= 1.2.3 - July 26 2016 =
|
57 |
* Recoded most widgets making them light weight and quicker.
|
58 |
* Major work on CSS and JS files. Sizes significantly lowered.
|
3 |
Tags: bundle, widget, button, alert, accordion, audio, video, blog, divider, person, portfolio, tabs, testimonial, siteorigin
|
4 |
Requires at least: 3.9
|
5 |
Tested up to: 4.5.3
|
6 |
+
Stable tag: 1.2.4
|
7 |
License: GPLv3 or later
|
8 |
|
9 |
A collection of highly customizable and thoughtfully crafted widgets. Built on top of the SiteOrigin Widgets Bundle.
|
24 |
* Media Box to highlight important bits of info.
|
25 |
* Testimonial Widget to highlight what your customers think of you.
|
26 |
* Person Widget to get to know you better.
|
27 |
+
* Pricing table Widget to add eye catching pricing lists.
|
28 |
+
* Slider Widget to leave an impression.
|
29 |
* Alert Widget to communicate success, warnings, failure or just information.
|
30 |
* Number Counter Widget to display your stats.
|
31 |
* Circle Counter Widget to display your stats with animated circles.
|
54 |
|
55 |
== Changelog ==
|
56 |
|
57 |
+
= 1.2.4 - August 23 2016 =
|
58 |
+
* Compatibility with WP 4.6
|
59 |
+
* Added image slider widget
|
60 |
+
* Allowed use of html in Media Box title
|
61 |
+
* Added option to disable image fullwidth in blog and person widgets
|
62 |
+
* Enabled use of shortcodes in editor field
|
63 |
+
* Updated link to Documentation
|
64 |
+
|
65 |
= 1.2.3 - July 26 2016 =
|
66 |
* Recoded most widgets making them light weight and quicker.
|
67 |
* Major work on CSS and JS files. Sizes significantly lowered.
|
widgets-for-siteorigin.php
CHANGED
@@ -1,28 +1,27 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* @wordpress-plugin
|
4 |
-
* Plugin Name:
|
5 |
-
* Plugin URI:
|
6 |
-
* Description:
|
7 |
-
* Version: 1.2.
|
8 |
-
* Author:
|
9 |
-
* Author URI:
|
10 |
-
* License:
|
11 |
-
* License URI:
|
12 |
-
* Text Domain:
|
13 |
-
* Domain Path:
|
14 |
*
|
15 |
-
* @link
|
16 |
-
* @since
|
17 |
-
* @package
|
18 |
*
|
19 |
*/
|
20 |
|
21 |
-
define( 'INKED_SO_VER', '1.2.
|
22 |
|
23 |
// Allow JS suffix to be pre-set
|
24 |
if( !defined( 'INKED_JS_SUFFIX' ) ) {
|
25 |
-
|
26 |
define('INKED_JS_SUFFIX', '.min');
|
27 |
}
|
28 |
|
@@ -33,11 +32,11 @@ require_once ( 'inc/enqueue.php' );
|
|
33 |
require_once ( 'inc/functions.php' );
|
34 |
|
35 |
// Widgets.... Come out and play!
|
36 |
-
function
|
37 |
$folders[] = plugin_dir_path(__FILE__) . '/widgets/';
|
38 |
return $folders;
|
39 |
}
|
40 |
-
add_filter( 'siteorigin_widgets_widget_folders', '
|
41 |
|
42 |
// Placing all widgets under the 'Widgets for SiteOrigin' Tab
|
43 |
function wpinked_so_add_widget_tabs($tabs) {
|
@@ -49,7 +48,7 @@ function wpinked_so_add_widget_tabs($tabs) {
|
|
49 |
);
|
50 |
return $tabs;
|
51 |
}
|
52 |
-
add_filter( 'siteorigin_panels_widget_dialog_tabs', 'wpinked_so_add_widget_tabs',
|
53 |
|
54 |
// Adding Icon for all Widgets
|
55 |
function wpinked_so_widget_add_bundle_groups($widgets){
|
@@ -69,6 +68,14 @@ function wpinked_so_translation() {
|
|
69 |
}
|
70 |
add_action( 'plugins_loaded', 'wpinked_so_translation' );
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
// Create a helper function for easy SDK access.
|
73 |
function wpinkedwidgets() {
|
74 |
global $wpinkedwidgets;
|
1 |
<?php
|
2 |
/**
|
3 |
* @wordpress-plugin
|
4 |
+
* Plugin Name: Widgets for SiteOrigin
|
5 |
+
* Plugin URI: http://widgets.wpinked.com/
|
6 |
+
* Description: A collection of highly customizable and thoughtfully crafted widgets. Built on top of the SiteOrigin Widgets Bundle.
|
7 |
+
* Version: 1.2.4
|
8 |
+
* Author: wpinked
|
9 |
+
* Author URI: widgets.wpinked.com
|
10 |
+
* License: GPL-2.0+
|
11 |
+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
|
12 |
+
* Text Domain: wpinked-widgets
|
13 |
+
* Domain Path: /languages
|
14 |
*
|
15 |
+
* @link wpinked.com
|
16 |
+
* @since 1.0.0
|
17 |
+
* @package Widgets_For_SiteOrigin
|
18 |
*
|
19 |
*/
|
20 |
|
21 |
+
define( 'INKED_SO_VER', '1.2.4' );
|
22 |
|
23 |
// Allow JS suffix to be pre-set
|
24 |
if( !defined( 'INKED_JS_SUFFIX' ) ) {
|
|
|
25 |
define('INKED_JS_SUFFIX', '.min');
|
26 |
}
|
27 |
|
32 |
require_once ( 'inc/functions.php' );
|
33 |
|
34 |
// Widgets.... Come out and play!
|
35 |
+
function wpinked_so_widgets($folders){
|
36 |
$folders[] = plugin_dir_path(__FILE__) . '/widgets/';
|
37 |
return $folders;
|
38 |
}
|
39 |
+
add_filter( 'siteorigin_widgets_widget_folders', 'wpinked_so_widgets' );
|
40 |
|
41 |
// Placing all widgets under the 'Widgets for SiteOrigin' Tab
|
42 |
function wpinked_so_add_widget_tabs($tabs) {
|
48 |
);
|
49 |
return $tabs;
|
50 |
}
|
51 |
+
add_filter( 'siteorigin_panels_widget_dialog_tabs', 'wpinked_so_add_widget_tabs', 5);
|
52 |
|
53 |
// Adding Icon for all Widgets
|
54 |
function wpinked_so_widget_add_bundle_groups($widgets){
|
68 |
}
|
69 |
add_action( 'plugins_loaded', 'wpinked_so_translation' );
|
70 |
|
71 |
+
/**
|
72 |
+
* GLOBAL VARIABLES
|
73 |
+
*/
|
74 |
+
global $wpinked_widget_count;
|
75 |
+
$wpinked_widget_count = 0;
|
76 |
+
|
77 |
+
require_once ( 'inc/activate.php' );
|
78 |
+
|
79 |
// Create a helper function for easy SDK access.
|
80 |
function wpinkedwidgets() {
|
81 |
global $wpinkedwidgets;
|
widgets/ink-alrt-widget/ink-alrt-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Alert
|
5 |
Description: Communicate success, warnings, failure or just information.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Alert_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Alert_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Communicate success, warnings, failure or just information.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Alert
|
5 |
Description: Communicate success, warnings, failure or just information.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Alert_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Communicate success, warnings, failure or just information.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/alert-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-ardn-widget/ink-ardn-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Accordion
|
5 |
Description: Expand and collapse content that is broken into logical sections.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Accordion_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Accordion_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Expand and collapse content that is broken into logical sections.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Accordion
|
5 |
Description: Expand and collapse content that is broken into logical sections.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Accordion_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Expand and collapse content that is broken into logical sections.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/accordion-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-ardn-widget/js/accordion.js
CHANGED
@@ -42,8 +42,8 @@ jQuery( function ( $ ) {
|
|
42 |
|
43 |
if (window.location.hash) {
|
44 |
var $target = $('body').find(window.location.hash);
|
45 |
-
if ($target.hasClass('iw-so-acc-
|
46 |
-
$(window.location.hash).trigger("click");
|
47 |
}
|
48 |
}
|
49 |
} );
|
42 |
|
43 |
if (window.location.hash) {
|
44 |
var $target = $('body').find(window.location.hash);
|
45 |
+
if ($target.hasClass('iw-so-acc-item')) {
|
46 |
+
$(window.location.hash).children('.iw-so-acc-title').trigger("click");
|
47 |
}
|
48 |
}
|
49 |
} );
|
widgets/ink-ardn-widget/js/accordion.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(i){i.fn.iwInitAccordion=function(){"use strict";i(".iw-so-accordion").length&&i(".iw-so-accordion").each(function(){i(this).find(".iw-so-acc-item .iw-so-acc-content").hide(),i(this).find(".iw-so-acc-item.iw-so-acc-item-active .iw-so-acc-content").show(),i(this).find(".iw-so-acc-item").children(".iw-so-acc-title").click(function(c){(!i(this).parent().parent().hasClass("iw-so-acc-toggle")||!i(this).parent().siblings().hasClass("iw-so-acc-item-active")&&i(this).parent().parent().children().hasClass("iw-so-acc-item-active"))&&i(this).parent().parent().hasClass("iw-so-acc-toggle")?c.preventDefault():(c.preventDefault(),i(this).parent().toggleClass("iw-so-acc-item-active"),i(this).siblings(".iw-so-acc-content").slideToggle("300ms")),i(this).parent().parent().hasClass("iw-so-acc-singleExpand")&&i(this).parent().siblings(".iw-so-acc-item.iw-so-acc-item-active").removeClass("iw-so-acc-item-active").children(".iw-so-acc-content").slideUp("300ms")})})}}(jQuery),jQuery(function(i){if(i(document).iwInitAccordion(),window.location.hash){var c=i("body").find(window.location.hash);c.hasClass("iw-so-acc-
|
1 |
+
!function(i){i.fn.iwInitAccordion=function(){"use strict";i(".iw-so-accordion").length&&i(".iw-so-accordion").each(function(){i(this).find(".iw-so-acc-item .iw-so-acc-content").hide(),i(this).find(".iw-so-acc-item.iw-so-acc-item-active .iw-so-acc-content").show(),i(this).find(".iw-so-acc-item").children(".iw-so-acc-title").click(function(c){(!i(this).parent().parent().hasClass("iw-so-acc-toggle")||!i(this).parent().siblings().hasClass("iw-so-acc-item-active")&&i(this).parent().parent().children().hasClass("iw-so-acc-item-active"))&&i(this).parent().parent().hasClass("iw-so-acc-toggle")?c.preventDefault():(c.preventDefault(),i(this).parent().toggleClass("iw-so-acc-item-active"),i(this).siblings(".iw-so-acc-content").slideToggle("300ms")),i(this).parent().parent().hasClass("iw-so-acc-singleExpand")&&i(this).parent().siblings(".iw-so-acc-item.iw-so-acc-item-active").removeClass("iw-so-acc-item-active").children(".iw-so-acc-content").slideUp("300ms")})})}}(jQuery),jQuery(function(i){if(i(document).iwInitAccordion(),window.location.hash){var c=i("body").find(window.location.hash);c.hasClass("iw-so-acc-item")&&i(window.location.hash).children(".iw-so-acc-title").trigger("click")}});
|
widgets/ink-ardn-widget/tpl/accordion.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
$icon_styles = array();
|
3 |
$icon_styles[] = 'font-size: 2em';
|
4 |
if(!empty($instance['styling']['icon'])) $icon_styles[] = 'color: '.$instance['styling']['icon'];
|
@@ -11,7 +13,7 @@ $acc_no = 1;
|
|
11 |
if( $instance['settings']['id'] ):
|
12 |
$unique = $instance['settings']['id'];
|
13 |
else :
|
14 |
-
$unique = 'toggle-' .
|
15 |
endif;
|
16 |
?>
|
17 |
|
@@ -19,16 +21,16 @@ endif;
|
|
19 |
|
20 |
<?php foreach( $instance['toggles'] as $i => $toggle ) { ?>
|
21 |
|
22 |
-
<div class="iw-so-acc-item<?php echo ( $toggle['active'] == 1 ? ' iw-so-acc-item-active' : '' ); ?>">
|
23 |
|
24 |
-
<a href="#" class="iw-so-acc-title <?php echo $instance['styling']['text']; ?>"
|
25 |
<?php echo esc_html( $toggle['title'] ); ?>
|
26 |
<span class="iw-so-tgl-open"><?php echo siteorigin_widget_get_icon( $instance['settings']['icon-open'], $icon_styles ); ?></span>
|
27 |
<span class="iw-so-tgl-close"><?php echo siteorigin_widget_get_icon( $instance['settings']['icon-close'], $icon_styles ); ?></span>
|
28 |
</a>
|
29 |
|
30 |
<div class="iw-so-acc-content">
|
31 |
-
<?php echo
|
32 |
</div>
|
33 |
|
34 |
</div>
|
1 |
<?php
|
2 |
+
global $wpinked_widget_count;
|
3 |
+
|
4 |
$icon_styles = array();
|
5 |
$icon_styles[] = 'font-size: 2em';
|
6 |
if(!empty($instance['styling']['icon'])) $icon_styles[] = 'color: '.$instance['styling']['icon'];
|
13 |
if( $instance['settings']['id'] ):
|
14 |
$unique = $instance['settings']['id'];
|
15 |
else :
|
16 |
+
$unique = 'toggle-' . ++$wpinked_widget_count;
|
17 |
endif;
|
18 |
?>
|
19 |
|
21 |
|
22 |
<?php foreach( $instance['toggles'] as $i => $toggle ) { ?>
|
23 |
|
24 |
+
<div class="iw-so-acc-item<?php echo ( $toggle['active'] == 1 ? ' iw-so-acc-item-active' : '' ); ?>" id="<?php echo $unique . '-' . $acc_no; ?>">
|
25 |
|
26 |
+
<a href="#" class="iw-so-acc-title <?php echo $instance['styling']['text']; ?>">
|
27 |
<?php echo esc_html( $toggle['title'] ); ?>
|
28 |
<span class="iw-so-tgl-open"><?php echo siteorigin_widget_get_icon( $instance['settings']['icon-open'], $icon_styles ); ?></span>
|
29 |
<span class="iw-so-tgl-close"><?php echo siteorigin_widget_get_icon( $instance['settings']['icon-close'], $icon_styles ); ?></span>
|
30 |
</a>
|
31 |
|
32 |
<div class="iw-so-acc-content">
|
33 |
+
<?php echo do_shortcode( $toggle['content'] ); ?>
|
34 |
</div>
|
35 |
|
36 |
</div>
|
widgets/ink-auds-widget/ink-auds-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Audio
|
5 |
Description: Play self or externally hosted audios.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Audio_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Audio_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Play self or externally hosted audios.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Audio
|
5 |
Description: Play self or externally hosted audios.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Audio_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Play self or externally hosted audios.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/audio-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-barc-widget/ink-barc-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Bar Counter
|
5 |
Description: Animated bars to display your stats.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Bar_Counter_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Bar_Counter_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Animated bars to display your stats.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Bar Counter
|
5 |
Description: Animated bars to display your stats.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Bar_Counter_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Animated bars to display your stats.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/bar-counter-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-barc-widget/js/bar-counter.js
CHANGED
@@ -3,13 +3,14 @@
|
|
3 |
$(document).ready( function() {
|
4 |
|
5 |
$( '.iw-so-bar-counter.iw-so-bars-animated' ).find( '.iw-so-bar-meter' ).waypoint( {
|
6 |
-
offset:
|
|
|
|
|
7 |
handler: function() {
|
8 |
$(this.element).each(function(){
|
9 |
each_bar_width = $(this).attr( 'aria-valuenow' );
|
10 |
$(this).width(each_bar_width + '%' );
|
11 |
});
|
12 |
-
this.destroy()
|
13 |
}
|
14 |
} );
|
15 |
|
3 |
$(document).ready( function() {
|
4 |
|
5 |
$( '.iw-so-bar-counter.iw-so-bars-animated' ).find( '.iw-so-bar-meter' ).waypoint( {
|
6 |
+
offset: function() {
|
7 |
+
return Waypoint.viewportHeight() - 100
|
8 |
+
},
|
9 |
handler: function() {
|
10 |
$(this.element).each(function(){
|
11 |
each_bar_width = $(this).attr( 'aria-valuenow' );
|
12 |
$(this).width(each_bar_width + '%' );
|
13 |
});
|
|
|
14 |
}
|
15 |
} );
|
16 |
|
widgets/ink-barc-widget/js/bar-counter.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t){t(document).ready(function(){t(".iw-so-bar-counter.iw-so-bars-animated").find(".iw-so-bar-meter").waypoint({offset:
|
1 |
+
!function(t){t(document).ready(function(){t(".iw-so-bar-counter.iw-so-bars-animated").find(".iw-so-bar-meter").waypoint({offset:function(){return Waypoint.viewportHeight()-100},handler:function(){t(this.element).each(function(){each_bar_width=t(this).attr("aria-valuenow"),t(this).width(each_bar_width+"%")})}})})}(jQuery);
|
widgets/ink-blgs-widget/css/blog.css
CHANGED
@@ -199,6 +199,12 @@
|
|
199 |
margin-right: 0; }
|
200 |
.iw-so-blog .iw-so-blog-container .iw-so-article .iw-so-article-thumb.iw-so-blog-article-responsive:last-child {
|
201 |
margin-right: 0; } }
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
.iw-so-blog .iw-so-blog-container .iw-so-article .iw-so-article-content.iw-so-blog-article-responsive {
|
203 |
float: left;
|
204 |
display: block;
|
199 |
margin-right: 0; }
|
200 |
.iw-so-blog .iw-so-blog-container .iw-so-article .iw-so-article-thumb.iw-so-blog-article-responsive:last-child {
|
201 |
margin-right: 0; } }
|
202 |
+
.iw-so-blog .iw-so-blog-container .iw-so-article .iw-so-article-thumb .iw-so-article-thumb-wrap {
|
203 |
+
display: inline-block;
|
204 |
+
position: relative;
|
205 |
+
overflow: hidden; }
|
206 |
+
.iw-so-blog .iw-so-blog-container .iw-so-article .iw-so-article-thumb .iw-so-article-thumb-wrap img {
|
207 |
+
width: auto; }
|
208 |
.iw-so-blog .iw-so-blog-container .iw-so-article .iw-so-article-content.iw-so-blog-article-responsive {
|
209 |
float: left;
|
210 |
display: block;
|
widgets/ink-blgs-widget/ink-blgs-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Blog
|
5 |
Description: A widget to display Blog posts.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Blog_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Blog_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'A widget to display Blog posts.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
@@ -182,6 +182,19 @@ class Inked_Blog_SO_Widget extends SiteOrigin_Widget {
|
|
182 |
'description' => __( 'You can change the default size widths by going to <b>Settings</b> → <b>Media</b>.', 'wpinked-widgets' ),
|
183 |
),
|
184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
'responsive' => array(
|
186 |
'type' => 'checkbox',
|
187 |
'label' => __( 'Make Image fullwidth for small screens ?', 'wpinked-widgets' ),
|
@@ -559,8 +572,9 @@ class Inked_Blog_SO_Widget extends SiteOrigin_Widget {
|
|
559 |
),
|
560 |
|
561 |
'id' => array(
|
|
|
562 |
'type' => 'text',
|
563 |
-
'
|
564 |
'default' => 'my-ajax-blog-widget',
|
565 |
),
|
566 |
|
@@ -734,6 +748,7 @@ class Inked_Blog_SO_Widget extends SiteOrigin_Widget {
|
|
734 |
'design' => $instance['design']['layout'],
|
735 |
'columns' => $instance['design']['columns'],
|
736 |
'format' => $instance['design']['format'],
|
|
|
737 |
'cnt-bg' => $instance['styling']['content-bg'],
|
738 |
't-size' => $instance['styling']['title-size'],
|
739 |
't-clr' => $instance['styling']['title-color'],
|
4 |
Widget Name: Inked Blog
|
5 |
Description: A widget to display Blog posts.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Blog_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'A widget to display Blog posts.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/blog-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
182 |
'description' => __( 'You can change the default size widths by going to <b>Settings</b> → <b>Media</b>.', 'wpinked-widgets' ),
|
183 |
),
|
184 |
|
185 |
+
'img-width' => array(
|
186 |
+
'type' => 'checkbox',
|
187 |
+
'label' => __( 'Set image width to 100%?', 'wpinked-widgets' ),
|
188 |
+
'default' => true,
|
189 |
+
'state_handler' => array(
|
190 |
+
'blg_lyt[thumb-above]' => array( 'show' ),
|
191 |
+
'blg_lyt[thumb-left]' => array( 'show' ),
|
192 |
+
'blg_lyt[thumb-right]' => array( 'show' ),
|
193 |
+
'blg_lyt[thumb-behind]' => array( 'hide' ),
|
194 |
+
'blg_lyt[thumb-none]' => array( 'hide' ),
|
195 |
+
)
|
196 |
+
),
|
197 |
+
|
198 |
'responsive' => array(
|
199 |
'type' => 'checkbox',
|
200 |
'label' => __( 'Make Image fullwidth for small screens ?', 'wpinked-widgets' ),
|
572 |
),
|
573 |
|
574 |
'id' => array(
|
575 |
+
'label' => __( 'ID', 'wpinked-widgets' ),
|
576 |
'type' => 'text',
|
577 |
+
'description' => __( 'Needed only if Ajax is used. Should be unique on the page. Must begin with alphabets[A-Za-z]. Should not contain spaces.', 'wpinked-widgets' ),
|
578 |
'default' => 'my-ajax-blog-widget',
|
579 |
),
|
580 |
|
748 |
'design' => $instance['design']['layout'],
|
749 |
'columns' => $instance['design']['columns'],
|
750 |
'format' => $instance['design']['format'],
|
751 |
+
'img-width' => $instance['design']['img-width'],
|
752 |
'cnt-bg' => $instance['styling']['content-bg'],
|
753 |
't-size' => $instance['styling']['title-size'],
|
754 |
't-clr' => $instance['styling']['title-color'],
|
widgets/ink-blgs-widget/styles/thumb-above.less
CHANGED
@@ -18,6 +18,7 @@
|
|
18 |
@icon-shape: 0;
|
19 |
@icon-show: default;
|
20 |
@cnt-bg: transparent;
|
|
|
21 |
|
22 |
.iw-so-article {
|
23 |
margin-bottom: @gap;
|
@@ -27,7 +28,19 @@
|
|
27 |
.iw-so-article-thumb {
|
28 |
overflow: hidden;
|
29 |
position: relative;
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
img {
|
32 |
vertical-align: top;
|
33 |
width: 100%;
|
@@ -42,7 +55,7 @@
|
|
42 |
-moz-transform: translateZ(0);
|
43 |
-ms-transform: translateZ(0);
|
44 |
-o-transform: translateZ(0);
|
45 |
-
|
46 |
}
|
47 |
.img-expand-def();
|
48 |
}
|
18 |
@icon-shape: 0;
|
19 |
@icon-show: default;
|
20 |
@cnt-bg: transparent;
|
21 |
+
@img-width: '';
|
22 |
|
23 |
.iw-so-article {
|
24 |
margin-bottom: @gap;
|
28 |
.iw-so-article-thumb {
|
29 |
overflow: hidden;
|
30 |
position: relative;
|
31 |
+
.img-width-setup() when ( @img-width = '' ) {
|
32 |
+
text-align: center;
|
33 |
+
}
|
34 |
+
.img-width-setup() when ( @img-width = 1 ) {
|
35 |
+
background: @img-ol;
|
36 |
+
}
|
37 |
+
.img-width-setup();
|
38 |
+
.iw-so-article-thumb-wrap {
|
39 |
+
.img-width-bg() when ( @img-width = '' ) {
|
40 |
+
background: @img-ol;
|
41 |
+
}
|
42 |
+
.img-width-bg();
|
43 |
+
}
|
44 |
img {
|
45 |
vertical-align: top;
|
46 |
width: 100%;
|
55 |
-moz-transform: translateZ(0);
|
56 |
-ms-transform: translateZ(0);
|
57 |
-o-transform: translateZ(0);
|
58 |
+
transform: translateZ(0);
|
59 |
}
|
60 |
.img-expand-def();
|
61 |
}
|
widgets/ink-blgs-widget/styles/thumb-left.less
CHANGED
@@ -18,6 +18,7 @@
|
|
18 |
@icon-shape: 0;
|
19 |
@icon-show: default;
|
20 |
@cnt-bg: transparent;
|
|
|
21 |
|
22 |
.iw-so-article {
|
23 |
margin-bottom: @gap;
|
@@ -27,7 +28,20 @@
|
|
27 |
.iw-so-article-thumb {
|
28 |
overflow: hidden;
|
29 |
position: relative;
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
img {
|
33 |
vertical-align: top;
|
18 |
@icon-shape: 0;
|
19 |
@icon-show: default;
|
20 |
@cnt-bg: transparent;
|
21 |
+
@img-width: '';
|
22 |
|
23 |
.iw-so-article {
|
24 |
margin-bottom: @gap;
|
28 |
.iw-so-article-thumb {
|
29 |
overflow: hidden;
|
30 |
position: relative;
|
31 |
+
.img-width-setup() when ( @img-width = '' ) {
|
32 |
+
text-align: center;
|
33 |
+
}
|
34 |
+
.img-width-setup() when ( @img-width = 1 ) {
|
35 |
+
background: @img-ol;
|
36 |
+
}
|
37 |
+
.img-width-setup();
|
38 |
+
|
39 |
+
.iw-so-article-thumb-wrap {
|
40 |
+
.img-width-bg() when ( @img-width = '' ) {
|
41 |
+
background: @img-ol;
|
42 |
+
}
|
43 |
+
.img-width-bg();
|
44 |
+
}
|
45 |
|
46 |
img {
|
47 |
vertical-align: top;
|
widgets/ink-blgs-widget/styles/thumb-right.less
CHANGED
@@ -18,6 +18,7 @@
|
|
18 |
@icon-shape: 0;
|
19 |
@icon-show: default;
|
20 |
@cnt-bg: transparent;
|
|
|
21 |
|
22 |
.iw-so-article {
|
23 |
margin-bottom: @gap;
|
@@ -27,8 +28,21 @@
|
|
27 |
.iw-so-article-thumb {
|
28 |
overflow: hidden;
|
29 |
position: relative;
|
30 |
-
background: @img-ol;
|
31 |
float: right !important;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
img {
|
34 |
vertical-align: top;
|
18 |
@icon-shape: 0;
|
19 |
@icon-show: default;
|
20 |
@cnt-bg: transparent;
|
21 |
+
@img-width: '';
|
22 |
|
23 |
.iw-so-article {
|
24 |
margin-bottom: @gap;
|
28 |
.iw-so-article-thumb {
|
29 |
overflow: hidden;
|
30 |
position: relative;
|
|
|
31 |
float: right !important;
|
32 |
+
.img-width-setup() when ( @img-width = '' ) {
|
33 |
+
text-align: center;
|
34 |
+
}
|
35 |
+
.img-width-setup() when ( @img-width = 1 ) {
|
36 |
+
background: @img-ol;
|
37 |
+
}
|
38 |
+
.img-width-setup();
|
39 |
+
|
40 |
+
.iw-so-article-thumb-wrap {
|
41 |
+
.img-width-bg() when ( @img-width = '' ) {
|
42 |
+
background: @img-ol;
|
43 |
+
}
|
44 |
+
.img-width-bg();
|
45 |
+
}
|
46 |
|
47 |
img {
|
48 |
vertical-align: top;
|
widgets/ink-blgs-widget/tpl/thumb-above.php
CHANGED
@@ -79,16 +79,20 @@ $query_result = new WP_Query( $processed_query );
|
|
79 |
|
80 |
<div class="iw-so-article-thumb">
|
81 |
|
82 |
-
|
83 |
-
|
84 |
-
<?php
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
|
|
|
|
|
|
|
|
92 |
|
93 |
</div>
|
94 |
|
79 |
|
80 |
<div class="iw-so-article-thumb">
|
81 |
|
82 |
+
<?php if( $instance['design']['img-width'] == false ) { ?> <div class="iw-so-article-thumb-wrap"> <?php } ?>
|
83 |
+
|
84 |
+
<a href="<?php echo esc_url( get_permalink() ); ?>">
|
85 |
+
<?php the_post_thumbnail( $instance['design']['img-size'] ); ?>
|
86 |
+
<?php
|
87 |
+
if ( get_post_format() && $instance['design']['format'] ):
|
88 |
+
echo siteorigin_widget_get_icon( $instance['icons'][get_post_format()], $icon_styles );
|
89 |
+
elseif ( $instance['design']['format'] ):
|
90 |
+
echo siteorigin_widget_get_icon( $instance['icons']['standard'], $icon_styles );
|
91 |
+
endif;
|
92 |
+
?>
|
93 |
+
</a>
|
94 |
+
|
95 |
+
<?php if( $instance['design']['img-width'] == false ) { ?> </div> <?php } ?>
|
96 |
|
97 |
</div>
|
98 |
|
widgets/ink-blgs-widget/tpl/thumb-left.php
CHANGED
@@ -86,16 +86,20 @@ $query_result = new WP_Query( $processed_query );
|
|
86 |
|
87 |
<div class="iw-so-article-thumb<?php echo $article_mobile; ?>">
|
88 |
|
89 |
-
|
90 |
-
|
91 |
-
<?php
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
|
|
|
|
|
|
|
|
99 |
|
100 |
</div>
|
101 |
|
86 |
|
87 |
<div class="iw-so-article-thumb<?php echo $article_mobile; ?>">
|
88 |
|
89 |
+
<?php if( $instance['design']['img-width'] == false ) { ?> <div class="iw-so-article-thumb-wrap"> <?php } ?>
|
90 |
+
|
91 |
+
<a href="<?php echo esc_url( get_permalink() ); ?>">
|
92 |
+
<center><?php the_post_thumbnail( $instance['design']['img-size'] ); ?></center>
|
93 |
+
<?php
|
94 |
+
if ( get_post_format() && $instance['design']['format'] ):
|
95 |
+
echo siteorigin_widget_get_icon( $instance['icons'][get_post_format()], $icon_styles );
|
96 |
+
elseif ( $instance['design']['format'] ):
|
97 |
+
echo siteorigin_widget_get_icon( $instance['icons']['standard'], $icon_styles );
|
98 |
+
endif;
|
99 |
+
?>
|
100 |
+
</a>
|
101 |
+
|
102 |
+
<?php if( $instance['design']['img-width'] == false ) { ?> </div> <?php } ?>
|
103 |
|
104 |
</div>
|
105 |
|
widgets/ink-blgs-widget/tpl/thumb-right.php
CHANGED
@@ -86,16 +86,20 @@ $query_result = new WP_Query( $processed_query );
|
|
86 |
|
87 |
<div class="iw-so-article-thumb<?php echo $article_mobile; ?>">
|
88 |
|
89 |
-
|
90 |
-
|
91 |
-
<?php
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
|
|
|
|
|
|
|
|
99 |
|
100 |
</div>
|
101 |
|
86 |
|
87 |
<div class="iw-so-article-thumb<?php echo $article_mobile; ?>">
|
88 |
|
89 |
+
<?php if( $instance['design']['img-width'] == false ) { ?> <div class="iw-so-article-thumb-wrap"> <?php } ?>
|
90 |
+
|
91 |
+
<a href="<?php echo esc_url( get_permalink() ); ?>">
|
92 |
+
<center><?php the_post_thumbnail( $instance['design']['img-size'] ); ?></center>
|
93 |
+
<?php
|
94 |
+
if ( get_post_format() && $instance['design']['format'] ):
|
95 |
+
echo siteorigin_widget_get_icon( $instance['icons'][get_post_format()], $icon_styles );
|
96 |
+
elseif ( $instance['design']['format'] ):
|
97 |
+
echo siteorigin_widget_get_icon( $instance['icons']['standard'], $icon_styles );
|
98 |
+
endif;
|
99 |
+
?>
|
100 |
+
</a>
|
101 |
+
|
102 |
+
<?php if( $instance['design']['img-width'] == false ) { ?> </div> <?php } ?>
|
103 |
|
104 |
</div>
|
105 |
|
widgets/ink-btns-widget/ink-btns-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Buttons
|
5 |
Description: The power of click!
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Buttons_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Buttons_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'The power of click!', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Buttons
|
5 |
Description: The power of click!
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Buttons_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'The power of click!', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/button-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-crlc-widget/ink-crlc-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Circle Counter
|
5 |
Description: Animated circles to display your stats.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Circle_Counter_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Circle_Counter_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Animated circles to display your stats.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
@@ -124,19 +124,19 @@ class Inked_Circle_Counter_SO_Widget extends SiteOrigin_Widget {
|
|
124 |
|
125 |
'bar' => array(
|
126 |
'type' => 'color',
|
127 |
-
'label' => __( '
|
128 |
'default' => ''
|
129 |
),
|
130 |
|
131 |
'track' => array(
|
132 |
'type' => 'color',
|
133 |
-
'label' => __( '
|
134 |
'default' => ''
|
135 |
),
|
136 |
|
137 |
'shape' => array(
|
138 |
'type' => 'select',
|
139 |
-
'label' => __( '
|
140 |
'default' => 'butt',
|
141 |
'options' => array(
|
142 |
'butt' => __( 'Butt', 'wpinked-widgets' ),
|
@@ -147,14 +147,14 @@ class Inked_Circle_Counter_SO_Widget extends SiteOrigin_Widget {
|
|
147 |
|
148 |
'width' => array(
|
149 |
'type' => 'number',
|
150 |
-
'label' => __( '
|
151 |
'default' => '3',
|
152 |
'description' => __( 'Value in px.', 'wpinked-widgets' ),
|
153 |
),
|
154 |
|
155 |
'size' => array(
|
156 |
'type' => 'number',
|
157 |
-
'label' => __( '
|
158 |
'default' => '200',
|
159 |
'description' => __( 'Value in px.', 'wpinked-widgets' ),
|
160 |
),
|
4 |
Widget Name: Inked Circle Counter
|
5 |
Description: Animated circles to display your stats.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Circle_Counter_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Animated circles to display your stats.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/circle-counter-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
124 |
|
125 |
'bar' => array(
|
126 |
'type' => 'color',
|
127 |
+
'label' => __( 'Circle Color', 'wpinked-widgets' ),
|
128 |
'default' => ''
|
129 |
),
|
130 |
|
131 |
'track' => array(
|
132 |
'type' => 'color',
|
133 |
+
'label' => __( 'Circle Background Color', 'wpinked-widgets' ),
|
134 |
'default' => ''
|
135 |
),
|
136 |
|
137 |
'shape' => array(
|
138 |
'type' => 'select',
|
139 |
+
'label' => __( 'Circle Shape', 'wpinked-widgets' ),
|
140 |
'default' => 'butt',
|
141 |
'options' => array(
|
142 |
'butt' => __( 'Butt', 'wpinked-widgets' ),
|
147 |
|
148 |
'width' => array(
|
149 |
'type' => 'number',
|
150 |
+
'label' => __( 'Circle Width', 'wpinked-widgets' ),
|
151 |
'default' => '3',
|
152 |
'description' => __( 'Value in px.', 'wpinked-widgets' ),
|
153 |
),
|
154 |
|
155 |
'size' => array(
|
156 |
'type' => 'number',
|
157 |
+
'label' => __( 'Circle Size', 'wpinked-widgets' ),
|
158 |
'default' => '200',
|
159 |
'description' => __( 'Value in px.', 'wpinked-widgets' ),
|
160 |
),
|
widgets/ink-crlc-widget/js/circle-counter.js
CHANGED
@@ -3,12 +3,13 @@
|
|
3 |
$(document).ready( function() {
|
4 |
|
5 |
$( '.iw-so-circle-chart' ).waypoint( {
|
6 |
-
offset:
|
|
|
|
|
7 |
handler: function() {
|
8 |
$(this.element).easyPieChart();
|
9 |
$(this.element).css( 'min-height', 'auto' )
|
10 |
$(this.element).find( '.iw-so-circle-timer.iw-so-circle-timer-active' ).countTo();
|
11 |
-
this.destroy()
|
12 |
}
|
13 |
} );
|
14 |
|
3 |
$(document).ready( function() {
|
4 |
|
5 |
$( '.iw-so-circle-chart' ).waypoint( {
|
6 |
+
offset: function() {
|
7 |
+
return Waypoint.viewportHeight() - 100
|
8 |
+
},
|
9 |
handler: function() {
|
10 |
$(this.element).easyPieChart();
|
11 |
$(this.element).css( 'min-height', 'auto' )
|
12 |
$(this.element).find( '.iw-so-circle-timer.iw-so-circle-timer-active' ).countTo();
|
|
|
13 |
}
|
14 |
} );
|
15 |
|
widgets/ink-crlc-widget/js/circle-counter.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e){e(document).ready(function(){e(".iw-so-circle-chart").waypoint({offset:
|
1 |
+
!function(e){e(document).ready(function(){e(".iw-so-circle-chart").waypoint({offset:function(){return Waypoint.viewportHeight()-100},handler:function(){e(this.element).easyPieChart(),e(this.element).css("min-height","auto"),e(this.element).find(".iw-so-circle-timer.iw-so-circle-timer-active").countTo()}})})}(jQuery);
|
widgets/ink-dvdr-widget/ink-dvdr-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Divider/Gap
|
5 |
Description: Draw seperators or create gaps in your page.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Divider_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Divider_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Draw seperators or create gaps in your page.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Divider/Gap
|
5 |
Description: Draw seperators or create gaps in your page.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Divider_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Draw seperators or create gaps in your page.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/divider-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-fard-widget/ink-fard-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Filter Accordion
|
5 |
Description: Expand and collapse content that is broken into logical sections.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Filter_Accordion_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Filter_Accordion_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Expand and collapse content that is broken into logical sections.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Filter Accordion
|
5 |
Description: Expand and collapse content that is broken into logical sections.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Filter_Accordion_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Expand and collapse content that is broken into logical sections.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/filter-accordion/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-fard-widget/tpl/filter-accordion.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
if( !empty($instance['title']) ) echo $args['before_title'] . esc_html($instance['title']) . $args['after_title'];
|
3 |
|
4 |
$icon_styles = array();
|
@@ -11,7 +13,7 @@ $toggle = ( $instance['settings']['toggleable'] ) ? ' iw-so-acc-toggle' : '';
|
|
11 |
$acc_no = 1;
|
12 |
$first = true;
|
13 |
|
14 |
-
$unique = ( $instance['id'] ) ? $instance['id'] : 'fard-' .
|
15 |
?>
|
16 |
|
17 |
<div class="iw-so-filter-acrdn-terms">
|
@@ -45,7 +47,7 @@ $unique = ( $instance['id'] ) ? $instance['id'] : 'fard-' . wpinked_so_unique_id
|
|
45 |
</a>
|
46 |
|
47 |
<div class="iw-so-acc-content">
|
48 |
-
<?php echo
|
49 |
</div>
|
50 |
|
51 |
</div>
|
1 |
<?php
|
2 |
+
global $wpinked_widget_count;
|
3 |
+
|
4 |
if( !empty($instance['title']) ) echo $args['before_title'] . esc_html($instance['title']) . $args['after_title'];
|
5 |
|
6 |
$icon_styles = array();
|
13 |
$acc_no = 1;
|
14 |
$first = true;
|
15 |
|
16 |
+
$unique = ( $instance['id'] ) ? $instance['id'] : 'fard-' . ++$wpinked_widget_count;
|
17 |
?>
|
18 |
|
19 |
<div class="iw-so-filter-acrdn-terms">
|
47 |
</a>
|
48 |
|
49 |
<div class="iw-so-acc-content">
|
50 |
+
<?php echo do_shortcode( $toggle['content'] ); ?>
|
51 |
</div>
|
52 |
|
53 |
</div>
|
widgets/ink-mbox-widget/ink-mbox-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Media Box
|
5 |
Description: Highlight important bits of information.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Media_Box_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Media_Box_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Highlight important bits of information.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Media Box
|
5 |
Description: Highlight important bits of information.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Media_Box_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Highlight important bits of information.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/media-box-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-mbox-widget/tpl/media-box.php
CHANGED
@@ -11,11 +11,11 @@ if( !empty($instance['styling']['btn-click'] ) ) $classes[] = 'iw-so-media-box-b
|
|
11 |
$button_attributes = array(
|
12 |
'class' => esc_attr(implode( ' ', $classes))
|
13 |
);
|
14 |
-
if( !empty($instance['box']['btn-window'] ) ) $button_attributes['target'] = '_blank';
|
15 |
-
if( !empty($instance['box']['btn-url'] ) ) $button_attributes['href'] = sow_esc_url( $instance['box']['btn-url'] );
|
16 |
-
if( !empty($instance['box']['btn-id'] ) ) $button_attributes['id'] = esc_attr( $instance['box']['btn-id'] );
|
17 |
-
if( !empty($instance['box']['btn-title'] ) ) $button_attributes['title'] = esc_attr( $instance['box']['btn-title'] );
|
18 |
-
if( !empty($instance['box']['btn-onclick'] ) ) $button_attributes['onclick'] = esc_attr( $instance['box']['btn-onclick'] );
|
19 |
?>
|
20 |
|
21 |
<div class="iw-so-media-box">
|
@@ -35,7 +35,7 @@ if( !empty($instance['box']['btn-onclick'] ) ) $button_attributes['onclick'] = e
|
|
35 |
<div class="iw-so-media-box-text">
|
36 |
|
37 |
<?php if ( $instance['box']['title'] ): ?>
|
38 |
-
<h3 class="iw-so-media-box-title iw-text-center"><?php echo
|
39 |
<?php endif; ?>
|
40 |
<?php if ( $instance['box']['content'] ): ?>
|
41 |
<p class="iw-so-media-box-content iw-text-center"><?php echo wp_kses_post( $instance['box']['content'] ); ?></p>
|
11 |
$button_attributes = array(
|
12 |
'class' => esc_attr(implode( ' ', $classes))
|
13 |
);
|
14 |
+
if( !empty( $instance['box']['btn-window'] ) ) $button_attributes['target'] = '_blank';
|
15 |
+
if( !empty( $instance['box']['btn-url'] ) ) $button_attributes['href'] = sow_esc_url( $instance['box']['btn-url'] );
|
16 |
+
if( !empty( $instance['box']['btn-id'] ) ) $button_attributes['id'] = esc_attr( $instance['box']['btn-id'] );
|
17 |
+
if( !empty( $instance['box']['btn-title'] ) ) $button_attributes['title'] = esc_attr( $instance['box']['btn-title'] );
|
18 |
+
if( !empty( $instance['box']['btn-onclick'] ) ) $button_attributes['onclick'] = esc_attr( $instance['box']['btn-onclick'] );
|
19 |
?>
|
20 |
|
21 |
<div class="iw-so-media-box">
|
35 |
<div class="iw-so-media-box-text">
|
36 |
|
37 |
<?php if ( $instance['box']['title'] ): ?>
|
38 |
+
<h3 class="iw-so-media-box-title iw-text-center"><?php echo wp_kses_post( $instance['box']['title'] ); ?></h3>
|
39 |
<?php endif; ?>
|
40 |
<?php if ( $instance['box']['content'] ): ?>
|
41 |
<p class="iw-so-media-box-content iw-text-center"><?php echo wp_kses_post( $instance['box']['content'] ); ?></p>
|
widgets/ink-numc-widget/ink-numc-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Number Counter
|
5 |
Description: Animated numbers to display your stats.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Number_Counter_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Number_Counter_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Animated numbers to display your stats.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Number Counter
|
5 |
Description: Animated numbers to display your stats.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Number_Counter_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Animated numbers to display your stats.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/number-counter-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-numc-widget/js/number-counter.js
CHANGED
@@ -3,7 +3,9 @@
|
|
3 |
$(document).ready( function() {
|
4 |
|
5 |
$( '.iw-so-number-timer' ).waypoint( {
|
6 |
-
offset:
|
|
|
|
|
7 |
handler: function() {
|
8 |
$(this.element).countTo();
|
9 |
this.destroy()
|
3 |
$(document).ready( function() {
|
4 |
|
5 |
$( '.iw-so-number-timer' ).waypoint( {
|
6 |
+
offset: function() {
|
7 |
+
return Waypoint.viewportHeight() - 100
|
8 |
+
},
|
9 |
handler: function() {
|
10 |
$(this.element).countTo();
|
11 |
this.destroy()
|
widgets/ink-numc-widget/js/number-counter.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(
|
1 |
+
!function(t){t(document).ready(function(){t(".iw-so-number-timer").waypoint({offset:function(){return Waypoint.viewportHeight()-100},handler:function(){t(this.element).countTo(),this.destroy()}})})}(jQuery);
|
widgets/ink-prit-widget/ink-prit-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Pricing Table
|
5 |
Description: Simple responsive pricing tables.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Pricing_Table_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Pricing_Table_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Simple responsive pricing tables.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Pricing Table
|
5 |
Description: Simple responsive pricing tables.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Pricing_Table_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Simple responsive pricing tables.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/pricing-table-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-prsn-widget/css/person.css
CHANGED
@@ -1,3 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.iw-so-person .iw-so-person-img {
|
2 |
position: relative;
|
3 |
margin-bottom: 1em; }
|
1 |
+
.iw-so-person.iw-so-person-fit {
|
2 |
+
text-align: center; }
|
3 |
+
.iw-so-person.iw-so-person-fit .iw-so-person-img {
|
4 |
+
display: inline-block; }
|
5 |
+
.iw-so-person.iw-so-person-fit .iw-so-person-img img {
|
6 |
+
width: auto; }
|
7 |
+
|
8 |
.iw-so-person .iw-so-person-img {
|
9 |
position: relative;
|
10 |
margin-bottom: 1em; }
|
widgets/ink-prsn-widget/ink-prsn-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Person
|
5 |
Description: Getting to know you better.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Person_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Person_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Getting to know you better.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
@@ -124,6 +124,12 @@ class Inked_Person_SO_Widget extends SiteOrigin_Widget {
|
|
124 |
)
|
125 |
),
|
126 |
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
'img-radius' => array(
|
128 |
'type' => 'select',
|
129 |
'label' => __( 'Image Corners', 'wpinked-widgets' ),
|
4 |
Widget Name: Inked Person
|
5 |
Description: Getting to know you better.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Person_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Getting to know you better.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/person-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
124 |
)
|
125 |
),
|
126 |
|
127 |
+
'img-width' => array(
|
128 |
+
'type' => 'checkbox',
|
129 |
+
'label' => __( 'Set image width to 100%?', 'wpinked-widgets' ),
|
130 |
+
'default' => true,
|
131 |
+
),
|
132 |
+
|
133 |
'img-radius' => array(
|
134 |
'type' => 'select',
|
135 |
'label' => __( 'Image Corners', 'wpinked-widgets' ),
|
widgets/ink-prsn-widget/tpl/person.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
<div class="iw-so-person">
|
2 |
|
3 |
<div class="iw-so-person-img">
|
4 |
|
1 |
+
<div class="iw-so-person <?php echo ( $instance['styling']['img-width'] == false ? 'iw-so-person-fit' : '' ) ?>">
|
2 |
|
3 |
<div class="iw-so-person-img">
|
4 |
|
widgets/ink-ptfl-widget/ink-ptfl-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Portfolio
|
5 |
Description: Show off your work.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Folio_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Folio_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Show off your work.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Portfolio
|
5 |
Description: Show off your work.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Folio_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Show off your work.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/portfolio-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-ptfl-widget/tpl/folio-default.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
$ink_post = $instance['design'];
|
4 |
|
@@ -14,7 +15,7 @@ $align = 'iw-text-' . $instance['styling']['align'];
|
|
14 |
|
15 |
$first = true;
|
16 |
|
17 |
-
$unique = 'folio-' .
|
18 |
?>
|
19 |
|
20 |
<?php if ( $ink_post['sorting'] ): ?>
|
1 |
<?php
|
2 |
+
global $wpinked_widget_count;
|
3 |
|
4 |
$ink_post = $instance['design'];
|
5 |
|
15 |
|
16 |
$first = true;
|
17 |
|
18 |
+
$unique = 'folio-' . ++$wpinked_widget_count;
|
19 |
?>
|
20 |
|
21 |
<?php if ( $ink_post['sorting'] ): ?>
|
widgets/ink-ptfl-widget/tpl/folio-gallery.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php
|
|
|
2 |
|
3 |
$ink_post = $instance['design'];
|
4 |
|
@@ -10,7 +11,7 @@ $align = 'iw-text-' . $instance['styling']['align'];
|
|
10 |
|
11 |
$first = true;
|
12 |
|
13 |
-
$unique = 'folio-' .
|
14 |
?>
|
15 |
|
16 |
<?php if ( $ink_post['sorting'] ): ?>
|
1 |
<?php
|
2 |
+
global $wpinked_widget_count;
|
3 |
|
4 |
$ink_post = $instance['design'];
|
5 |
|
11 |
|
12 |
$first = true;
|
13 |
|
14 |
+
$unique = 'folio-' . ++$wpinked_widget_count;
|
15 |
?>
|
16 |
|
17 |
<?php if ( $ink_post['sorting'] ): ?>
|
widgets/ink-sldr-widget/css/slider.css
ADDED
@@ -0,0 +1,115 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.iw-so-slider.iw-so-slider-arrow-hover .slick-arrow {
|
2 |
+
opacity: 0;
|
3 |
+
visibility: hidden;
|
4 |
+
-webkit-transition: all 0.25s ease-in-out;
|
5 |
+
-moz-transition: all 0.25s ease-in-out;
|
6 |
+
transition: all 0.25s ease-in-out; }
|
7 |
+
.iw-so-slider.iw-so-slider-arrow-hover .slick-arrow.slick-prev {
|
8 |
+
left: -50px; }
|
9 |
+
.iw-so-slider.iw-so-slider-arrow-hover .slick-arrow.slick-next {
|
10 |
+
right: -50px; }
|
11 |
+
|
12 |
+
.iw-so-slider.iw-so-slider-arrow-hover:hover .slick-arrow {
|
13 |
+
opacity: 0.5;
|
14 |
+
visibility: visible; }
|
15 |
+
.iw-so-slider.iw-so-slider-arrow-hover:hover .slick-arrow.slick-prev {
|
16 |
+
-webkit-transform: translateX(50px);
|
17 |
+
-moz-transform: translateX(50px);
|
18 |
+
-ms-transform: translateX(50px);
|
19 |
+
-o-transform: translateX(50px);
|
20 |
+
transform: translateX(50px); }
|
21 |
+
.iw-so-slider.iw-so-slider-arrow-hover:hover .slick-arrow.slick-next {
|
22 |
+
-webkit-transform: translateX(-50px);
|
23 |
+
-moz-transform: translateX(-50px);
|
24 |
+
-ms-transform: translateX(-50px);
|
25 |
+
-o-transform: translateX(-50px);
|
26 |
+
transform: translateX(-50px); }
|
27 |
+
.iw-so-slider.iw-so-slider-arrow-hover:hover .slick-arrow.slick-disabled {
|
28 |
+
opacity: 0;
|
29 |
+
visibility: hidden; }
|
30 |
+
.iw-so-slider.iw-so-slider-arrow-hover:hover .slick-arrow.slick-disabled:hover {
|
31 |
+
opacity: 0;
|
32 |
+
visibility: hidden; }
|
33 |
+
|
34 |
+
.iw-so-slider .slick-arrow {
|
35 |
+
border: none;
|
36 |
+
background: #333;
|
37 |
+
color: #fff;
|
38 |
+
z-index: 10;
|
39 |
+
box-shadow: none;
|
40 |
+
opacity: 0.5;
|
41 |
+
font-size: 25px; }
|
42 |
+
.iw-so-slider .slick-arrow.slick-prev {
|
43 |
+
position: absolute;
|
44 |
+
left: 0;
|
45 |
+
top: 47%;
|
46 |
+
padding: 10px 12px 10px 8px; }
|
47 |
+
.iw-so-slider .slick-arrow.slick-next {
|
48 |
+
position: absolute;
|
49 |
+
right: 0;
|
50 |
+
top: 47%;
|
51 |
+
padding: 10px 8px 10px 12px; }
|
52 |
+
.iw-so-slider .slick-arrow:hover {
|
53 |
+
opacity: 0.9; }
|
54 |
+
.iw-so-slider .slick-arrow.slick-disabled {
|
55 |
+
opacity: 0;
|
56 |
+
visibility: hidden; }
|
57 |
+
.iw-so-slider .slick-arrow.slick-disabled:hover {
|
58 |
+
opacity: 0;
|
59 |
+
visibility: hidden; }
|
60 |
+
|
61 |
+
.iw-so-slider.slick-dotted .slick-dots {
|
62 |
+
list-style: none;
|
63 |
+
display: block;
|
64 |
+
text-align: center;
|
65 |
+
padding: 0;
|
66 |
+
margin: 0;
|
67 |
+
width: 100%;
|
68 |
+
padding-bottom: 15px; }
|
69 |
+
.iw-so-slider.slick-dotted .slick-dots::after {
|
70 |
+
clear: both;
|
71 |
+
content: "";
|
72 |
+
display: table; }
|
73 |
+
.iw-so-slider.slick-dotted .slick-dots li {
|
74 |
+
position: relative;
|
75 |
+
display: inline-block;
|
76 |
+
height: 20px;
|
77 |
+
width: 20px;
|
78 |
+
margin: 0 5px;
|
79 |
+
padding: 0;
|
80 |
+
cursor: pointer; }
|
81 |
+
.iw-so-slider.slick-dotted .slick-dots li button {
|
82 |
+
border: 0;
|
83 |
+
background: transparent;
|
84 |
+
display: block;
|
85 |
+
height: 20px;
|
86 |
+
width: 20px;
|
87 |
+
outline: none;
|
88 |
+
line-height: 0px;
|
89 |
+
font-size: 0px;
|
90 |
+
color: transparent;
|
91 |
+
padding: 5px;
|
92 |
+
cursor: pointer;
|
93 |
+
box-shadow: none; }
|
94 |
+
.iw-so-slider.slick-dotted .slick-dots li button:hover, .iw-so-slider.slick-dotted .slick-dots li button:focus {
|
95 |
+
outline: none; }
|
96 |
+
.iw-so-slider.slick-dotted .slick-dots li button:hover:before, .iw-so-slider.slick-dotted .slick-dots li button:focus:before {
|
97 |
+
opacity: 1; }
|
98 |
+
.iw-so-slider.slick-dotted .slick-dots li button:before {
|
99 |
+
position: absolute;
|
100 |
+
top: 0;
|
101 |
+
left: 0;
|
102 |
+
content: "\2022";
|
103 |
+
width: 20px;
|
104 |
+
height: 20px;
|
105 |
+
font-family: slick;
|
106 |
+
font-size: 18px;
|
107 |
+
line-height: 20px;
|
108 |
+
text-align: center;
|
109 |
+
color: #333;
|
110 |
+
opacity: 0.5;
|
111 |
+
-webkit-font-smoothing: antialiased;
|
112 |
+
-moz-osx-font-smoothing: grayscale; }
|
113 |
+
.iw-so-slider.slick-dotted .slick-dots li.slick-active button:before {
|
114 |
+
color: #333;
|
115 |
+
opacity: 0.9; }
|
widgets/ink-sldr-widget/ink-sldr-widget.php
ADDED
@@ -0,0 +1,253 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
Widget Name: Inked Slider
|
5 |
+
Description: A most basic image slider to leave a great impression.
|
6 |
+
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
+
*/
|
9 |
+
|
10 |
+
class Inked_Slider_SO_Widget extends SiteOrigin_Widget {
|
11 |
+
|
12 |
+
function __construct() {
|
13 |
+
|
14 |
+
parent::__construct(
|
15 |
+
|
16 |
+
'ink-slider',
|
17 |
+
|
18 |
+
__( 'Inked Slider', 'wpinked-widgets' ),
|
19 |
+
|
20 |
+
array(
|
21 |
+
'description' => __( 'A most basic image slider to leave a great impression.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/slider-widget/'
|
23 |
+
),
|
24 |
+
|
25 |
+
array(
|
26 |
+
),
|
27 |
+
|
28 |
+
array(
|
29 |
+
|
30 |
+
'admin' => array(
|
31 |
+
'type' => 'text',
|
32 |
+
'label' => __( 'Admin Label', 'wpinked-widgets' )
|
33 |
+
),
|
34 |
+
|
35 |
+
'slides' => array(
|
36 |
+
'type' => 'repeater',
|
37 |
+
'label' => __( 'Slides' , 'wpinked-widgets' ),
|
38 |
+
'item_name' => __( 'Slide', 'wpinked-widgets' ),
|
39 |
+
'item_label' => array(
|
40 |
+
'selector' => "[id*='title']",
|
41 |
+
'update_event' => 'change',
|
42 |
+
'value_method' => 'val'
|
43 |
+
),
|
44 |
+
'fields' => array(
|
45 |
+
|
46 |
+
'name' => array(
|
47 |
+
'type' => 'text',
|
48 |
+
'label' => __( 'Name', 'wpinked-widgets' ),
|
49 |
+
'default' => ''
|
50 |
+
),
|
51 |
+
|
52 |
+
'image' => array(
|
53 |
+
'type' => 'media',
|
54 |
+
'fallback' => true,
|
55 |
+
'label' => __( 'Image', 'wpinked-widgets' ),
|
56 |
+
'default' => '',
|
57 |
+
'library' => 'image',
|
58 |
+
),
|
59 |
+
|
60 |
+
)
|
61 |
+
),
|
62 |
+
|
63 |
+
'settings' => array(
|
64 |
+
'type' => 'section',
|
65 |
+
'label' => __( 'Settings' , 'wpinked-widgets' ),
|
66 |
+
'hide' => true,
|
67 |
+
'fields' => array(
|
68 |
+
|
69 |
+
'adaptive' => array(
|
70 |
+
'type' => 'checkbox',
|
71 |
+
'default' => false,
|
72 |
+
'label' => __( 'Enable Adaptive Height', 'wpinked-widgets' ),
|
73 |
+
),
|
74 |
+
|
75 |
+
'autoplay' => array(
|
76 |
+
'type' => 'checkbox',
|
77 |
+
'default' => false,
|
78 |
+
'label' => __( 'Enable Autoplay', 'wpinked-widgets' ),
|
79 |
+
),
|
80 |
+
|
81 |
+
'autoplay-speed' => array(
|
82 |
+
'type' => 'number',
|
83 |
+
'label' => __( 'Autoplay Speed', 'wpinked-widgets' ),
|
84 |
+
'default' => '3000',
|
85 |
+
'description' => __( 'Value in milliseconds.', 'wpinked-widgets' ),
|
86 |
+
),
|
87 |
+
|
88 |
+
'autoplay-focus' => array(
|
89 |
+
'type' => 'checkbox',
|
90 |
+
'default' => true,
|
91 |
+
'label' => __( 'Pause Autoplay on Focus', 'wpinked-widgets' ),
|
92 |
+
),
|
93 |
+
|
94 |
+
'autoplay-hover' => array(
|
95 |
+
'type' => 'checkbox',
|
96 |
+
'default' => true,
|
97 |
+
'label' => __( 'Pause Autoplay on Hover', 'wpinked-widgets' ),
|
98 |
+
),
|
99 |
+
|
100 |
+
'arrows' => array(
|
101 |
+
'type' => 'checkbox',
|
102 |
+
'default' => true,
|
103 |
+
'label' => __( 'Enable Arrow Navigation', 'wpinked-widgets' ),
|
104 |
+
),
|
105 |
+
|
106 |
+
'arrows-hover' => array(
|
107 |
+
'type' => 'checkbox',
|
108 |
+
'default' => false,
|
109 |
+
'label' => __( 'Show arrows only on hover', 'wpinked-widgets' ),
|
110 |
+
),
|
111 |
+
|
112 |
+
'prev-arrow' => array(
|
113 |
+
'type' => 'icon',
|
114 |
+
'label' => __( 'Previous Arrow', 'wpinked-widgets' ),
|
115 |
+
),
|
116 |
+
|
117 |
+
'next-arrow' => array(
|
118 |
+
'type' => 'icon',
|
119 |
+
'label' => __( 'Next Arrow', 'wpinked-widgets' ),
|
120 |
+
),
|
121 |
+
|
122 |
+
'dots' => array(
|
123 |
+
'type' => 'checkbox',
|
124 |
+
'default' => false,
|
125 |
+
'label' => __( 'Enable Dots Navigation', 'wpinked-widgets' ),
|
126 |
+
),
|
127 |
+
|
128 |
+
'dots-hover' => array(
|
129 |
+
'type' => 'checkbox',
|
130 |
+
'default' => false,
|
131 |
+
'label' => __( 'Pause Autoplay on Dots Hover', 'wpinked-widgets' ),
|
132 |
+
),
|
133 |
+
|
134 |
+
'fade' => array(
|
135 |
+
'type' => 'checkbox',
|
136 |
+
'default' => false,
|
137 |
+
'label' => __( 'Enable Fade Transitions', 'wpinked-widgets' ),
|
138 |
+
),
|
139 |
+
|
140 |
+
'infinite' => array(
|
141 |
+
'type' => 'checkbox',
|
142 |
+
'default' => true,
|
143 |
+
'label' => __( 'Enable Infinite Loop', 'wpinked-widgets' ),
|
144 |
+
),
|
145 |
+
|
146 |
+
)
|
147 |
+
),
|
148 |
+
|
149 |
+
'styling' => array(
|
150 |
+
'type' => 'section',
|
151 |
+
'label' => __( 'Styling' , 'wpinked-widgets' ),
|
152 |
+
'hide' => true,
|
153 |
+
'fields' => array(
|
154 |
+
|
155 |
+
'icon-color' => array(
|
156 |
+
'type' => 'color',
|
157 |
+
'label' => __( 'Icon Color', 'wpinked-widgets' ),
|
158 |
+
'default' => '#fff'
|
159 |
+
),
|
160 |
+
|
161 |
+
'icon-size' => array(
|
162 |
+
'type' => 'measurement',
|
163 |
+
'label' => __( 'Icon Size', 'wpinked-widgets'),
|
164 |
+
'default' => '25px'
|
165 |
+
),
|
166 |
+
|
167 |
+
'icon-bg' => array(
|
168 |
+
'type' => 'color',
|
169 |
+
'label' => __( 'Icon Background', 'wpinked-widgets' ),
|
170 |
+
'default' => '#333'
|
171 |
+
),
|
172 |
+
|
173 |
+
'icon-hover' => array(
|
174 |
+
'type' => 'checkbox',
|
175 |
+
'default' => false,
|
176 |
+
'label' => __( 'Display icons only on slider hover', 'wpinked-widgets' ),
|
177 |
+
),
|
178 |
+
|
179 |
+
'dot-color' => array(
|
180 |
+
'type' => 'color',
|
181 |
+
'label' => __( 'Dot Color', 'wpinked-widgets' ),
|
182 |
+
'default' => '#333'
|
183 |
+
),
|
184 |
+
|
185 |
+
'dot-size' => array(
|
186 |
+
'type' => 'measurement',
|
187 |
+
'label' => __( 'Dot Size', 'wpinked-widgets'),
|
188 |
+
'default' => '18px'
|
189 |
+
),
|
190 |
+
|
191 |
+
'dot-position' => array(
|
192 |
+
'type' => 'select',
|
193 |
+
'label' => __( 'Dot position', 'wpinked-widgets' ),
|
194 |
+
'default' => 'below',
|
195 |
+
'options' => array(
|
196 |
+
'below' => __( 'Below Slider', 'wpinked-widgets' ),
|
197 |
+
'bottom' => __( 'Bottom of Slider', 'wpinked-widgets' ),
|
198 |
+
),
|
199 |
+
),
|
200 |
+
|
201 |
+
)
|
202 |
+
),
|
203 |
+
|
204 |
+
),
|
205 |
+
|
206 |
+
//The $base_folder path string.
|
207 |
+
plugin_dir_path(__FILE__)
|
208 |
+
);
|
209 |
+
}
|
210 |
+
|
211 |
+
function get_template_name( $instance ) {
|
212 |
+
return 'slider';
|
213 |
+
}
|
214 |
+
|
215 |
+
function get_style_name( $instance ) {
|
216 |
+
return 'slider';
|
217 |
+
}
|
218 |
+
|
219 |
+
function initialize() {
|
220 |
+
|
221 |
+
$this->register_frontend_scripts(
|
222 |
+
array(
|
223 |
+
array( 'iw-slider-js', plugin_dir_url(__FILE__) . 'js/slider' . INKED_JS_SUFFIX . '.js', array( 'iw-slick-js' ), INKED_SO_VER, true )
|
224 |
+
)
|
225 |
+
);
|
226 |
+
|
227 |
+
$this->register_frontend_styles(
|
228 |
+
array(
|
229 |
+
array( 'iw-slider-css', plugin_dir_url(__FILE__) . 'css/slider.css', array( 'iw-slick' ), INKED_SO_VER )
|
230 |
+
)
|
231 |
+
);
|
232 |
+
|
233 |
+
}
|
234 |
+
|
235 |
+
function get_less_variables( $instance ) {
|
236 |
+
|
237 |
+
if( empty( $instance ) ) return array();
|
238 |
+
|
239 |
+
return array(
|
240 |
+
'icon-color' => $instance['styling']['icon-color'],
|
241 |
+
'icon-size' => $instance['styling']['icon-size'],
|
242 |
+
'icon-bg' => $instance['styling']['icon-bg'],
|
243 |
+
'icon-hover' => $instance['styling']['icon-hover'],
|
244 |
+
'dot-color' => $instance['styling']['dot-color'],
|
245 |
+
'dot-size' => $instance['styling']['dot-size'],
|
246 |
+
'dot-position' => $instance['styling']['dot-position'],
|
247 |
+
);
|
248 |
+
|
249 |
+
}
|
250 |
+
|
251 |
+
}
|
252 |
+
|
253 |
+
siteorigin_widget_register( 'ink-slider', __FILE__, 'Inked_Slider_SO_Widget' );
|
widgets/ink-sldr-widget/js/slider.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
jQuery( function ( $ ) {
|
3 |
+
$(document).ready( function() {
|
4 |
+
$( '.iw-so-slider' ).slick();
|
5 |
+
} );
|
6 |
+
} );
|
widgets/ink-sldr-widget/js/slider.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(function(i){i(document).ready(function(){i(".iw-so-slider").slick()})});
|
widgets/ink-sldr-widget/styles/slider.less
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@icon-color: #fff;
|
2 |
+
@icon-size: 25px;
|
3 |
+
@icon-bg: #333;
|
4 |
+
@icon-hover: '';
|
5 |
+
@dot-color: #333;
|
6 |
+
@dot-size: 18px;
|
7 |
+
@dot-position: below;
|
8 |
+
|
9 |
+
.iw-so-slider {
|
10 |
+
.slick-arrow {
|
11 |
+
font-size: @icon-size;
|
12 |
+
color: @icon-color;
|
13 |
+
background-color: @icon-bg;
|
14 |
+
|
15 |
+
&:hover {
|
16 |
+
opacity: 1;
|
17 |
+
}
|
18 |
+
|
19 |
+
.arrow-hide() when ( @icon-hover = 1 ) {
|
20 |
+
visibility: hidden;
|
21 |
+
}
|
22 |
+
.arrow-hide();
|
23 |
+
}
|
24 |
+
|
25 |
+
&:hover {
|
26 |
+
.slick-arrow {
|
27 |
+
.arrow-show() when ( @icon-hover = 1 ) {
|
28 |
+
visibility: visible;
|
29 |
+
}
|
30 |
+
.arrow-show();
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
.slick-dots {
|
35 |
+
li {
|
36 |
+
button:before {
|
37 |
+
color: @dot-color;
|
38 |
+
font-size: @dot-size;
|
39 |
+
}
|
40 |
+
|
41 |
+
&.slick-active button:before {
|
42 |
+
color: @dot-color;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
|
46 |
+
.dot-pos() when ( @dot-position = bottom ) {
|
47 |
+
position: relative;
|
48 |
+
bottom: 47px;
|
49 |
+
}
|
50 |
+
.dot-pos();
|
51 |
+
}
|
52 |
+
}
|
widgets/ink-sldr-widget/tpl/slider.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$icon_styles = array();
|
4 |
+
|
5 |
+
$prev = $instance['settings']['prev-arrow'] ? str_replace( '"', "'", siteorigin_widget_get_icon( $instance['settings']['prev-arrow'], $icon_styles ) ) : __( 'Previous', 'wpinked' );
|
6 |
+
$next = $instance['settings']['next-arrow'] ? str_replace( '"', "'", siteorigin_widget_get_icon( $instance['settings']['next-arrow'], $icon_styles ) ) : __( 'Next', 'wpinked' );
|
7 |
+
|
8 |
+
$prevButton = "<button id='iw-so-slick-prev' class='slick-arrow slick-prev'>" . $prev . "</button>";
|
9 |
+
$nextButton = "<button id='iw-so-slick-next' class='slick-arrow slick-next'>" . $next . "</button>";
|
10 |
+
|
11 |
+
// Settings
|
12 |
+
$settings = array();
|
13 |
+
$settings[] = '"prevArrow" : "' . $prevButton . '"';
|
14 |
+
$settings[] = '"nextArrow" : "' . $nextButton . '"';
|
15 |
+
if( $instance['settings']['adaptive'] ) $settings[] = '"adaptiveHeight" : true';
|
16 |
+
if( $instance['settings']['autoplay'] ) $settings[] = '"autoplay" : true';
|
17 |
+
if( $instance['settings']['autoplay-speed'] != 3000 ) $settings[] = '"autoplaySpeed" :' . $instance['settings']['autoplay-speed'] ;
|
18 |
+
if( !$instance['settings']['autoplay-focus'] ) $settings[] = '"pauseOnFocus" : false';
|
19 |
+
if( !$instance['settings']['autoplay-hover'] ) $settings[] = '"pauseOnHover" : false';
|
20 |
+
if( !$instance['settings']['arrows'] ) $settings[] = '"arrows" : false';
|
21 |
+
if( $instance['settings']['dots'] ) $settings[] = '"dots" : true';
|
22 |
+
if( $instance['settings']['dots-hover'] ) $settings[] = '"pauseOnDotsHover" : true';
|
23 |
+
if( $instance['settings']['fade'] ) $settings[] = '"fade" : true';
|
24 |
+
if( !$instance['settings']['infinite'] ) $settings[] = '"infinite" : false';
|
25 |
+
|
26 |
+
$data_settings = esc_attr ( implode ( ', ', $settings ) );
|
27 |
+
|
28 |
+
if ( $instance['settings']['arrows-hover'] ) $arrow_hover = ' iw-so-slider-arrow-hover';
|
29 |
+
?>
|
30 |
+
|
31 |
+
<div class="iw-so-slider<?php echo $arrow_hover; ?>" data-slick='{<?php echo $data_settings; ?>}'>
|
32 |
+
|
33 |
+
<?php foreach( $instance['slides'] as $i => $slide ) { ?>
|
34 |
+
|
35 |
+
<div class="iw-so-slider-slide">
|
36 |
+
<center><?php echo wp_get_attachment_image( $slide['image'], 'full' ); ?></center>
|
37 |
+
</div>
|
38 |
+
|
39 |
+
<?php } ?>
|
40 |
+
</div>
|
widgets/ink-tabb-widget/ink-tabb-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Tabs
|
5 |
Description: Organize and navigate multiple documents in a single container.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Tabs_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Tabs_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Organize and navigate multiple documents in a single container.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Tabs
|
5 |
Description: Organize and navigate multiple documents in a single container.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Tabs_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Organize and navigate multiple documents in a single container.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/tabs-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-tabb-widget/tpl/tabs.php
CHANGED
@@ -1,4 +1,6 @@
|
|
1 |
<?php
|
|
|
|
|
2 |
if( !empty($instance['title']) ) echo $args['before_title'] . esc_html($instance['title']) . $args['after_title'];
|
3 |
|
4 |
$icon_styles = array();
|
@@ -12,7 +14,7 @@ $cnt_active_set = false;
|
|
12 |
if( $instance['id'] ):
|
13 |
$unique = $instance['id'];
|
14 |
else :
|
15 |
-
$unique = 'tab-' .
|
16 |
endif;
|
17 |
?>
|
18 |
|
@@ -37,7 +39,7 @@ endif;
|
|
37 |
|
38 |
<?php foreach( $instance['tabs'] as $i => $tab ) : ?>
|
39 |
<div class="iw-so-tabs-panel<?php echo ( ( $tab['active'] == 1 && !$cnt_active_set ) ? ' iw-so-tab-active' : '' ); ?>" id="<?php echo $unique . '-' . $cnt_no . '-content'; ?>">
|
40 |
-
<?php echo
|
41 |
</div>
|
42 |
<?php $cnt_active_set = ( $tab['active'] == 1 ) ? true : false; ?>
|
43 |
<?php $cnt_no++; ?>
|
1 |
<?php
|
2 |
+
global $wpinked_widget_count;
|
3 |
+
|
4 |
if( !empty($instance['title']) ) echo $args['before_title'] . esc_html($instance['title']) . $args['after_title'];
|
5 |
|
6 |
$icon_styles = array();
|
14 |
if( $instance['id'] ):
|
15 |
$unique = $instance['id'];
|
16 |
else :
|
17 |
+
$unique = 'tab-' . ++$wpinked_widget_count;
|
18 |
endif;
|
19 |
?>
|
20 |
|
39 |
|
40 |
<?php foreach( $instance['tabs'] as $i => $tab ) : ?>
|
41 |
<div class="iw-so-tabs-panel<?php echo ( ( $tab['active'] == 1 && !$cnt_active_set ) ? ' iw-so-tab-active' : '' ); ?>" id="<?php echo $unique . '-' . $cnt_no . '-content'; ?>">
|
42 |
+
<?php echo do_shortcode( $tab['content'] ); ?>
|
43 |
</div>
|
44 |
<?php $cnt_active_set = ( $tab['active'] == 1 ) ? true : false; ?>
|
45 |
<?php $cnt_no++; ?>
|
widgets/ink-tsml-widget/ink-tsml-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Testimonial
|
5 |
Description: Highlight what your customers think of you.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Testimonial_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Testimonial_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Highlight what your customers think of you.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Testimonial
|
5 |
Description: Highlight what your customers think of you.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Testimonial_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Highlight what your customers think of you.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/testimonial-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|
widgets/ink-tsml-widget/tpl/testimonial.php
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
|
15 |
<?php if ( $instance['testimonial']['content'] ) : ?>
|
16 |
|
17 |
-
<div class="iw-so-testimonial-message <?php echo $instance['testimonial']['text']; ?>"><?php echo
|
18 |
|
19 |
<?php endif; ?>
|
20 |
|
14 |
|
15 |
<?php if ( $instance['testimonial']['content'] ) : ?>
|
16 |
|
17 |
+
<div class="iw-so-testimonial-message <?php echo $instance['testimonial']['text']; ?>"><?php echo do_shortcode( $instance['testimonial']['content'] ); ?></div>
|
18 |
|
19 |
<?php endif; ?>
|
20 |
|
widgets/ink-vids-widget/ink-vids-widget.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Widget Name: Inked Video
|
5 |
Description: Play self or externally hosted videos.
|
6 |
Author: wpinked
|
7 |
-
Author URI:
|
8 |
*/
|
9 |
|
10 |
class Inked_Video_SO_Widget extends SiteOrigin_Widget {
|
@@ -19,7 +19,7 @@ class Inked_Video_SO_Widget extends SiteOrigin_Widget {
|
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Play self or externally hosted videos.', 'wpinked-widgets' ),
|
22 |
-
'help' => 'http://
|
23 |
),
|
24 |
|
25 |
array(
|
4 |
Widget Name: Inked Video
|
5 |
Description: Play self or externally hosted videos.
|
6 |
Author: wpinked
|
7 |
+
Author URI: http://widgets.wpinked.com
|
8 |
*/
|
9 |
|
10 |
class Inked_Video_SO_Widget extends SiteOrigin_Widget {
|
19 |
|
20 |
array(
|
21 |
'description' => __( 'Play self or externally hosted videos.', 'wpinked-widgets' ),
|
22 |
+
'help' => 'http://widgets.wpinked.com/documentation/video-widget/'
|
23 |
),
|
24 |
|
25 |
array(
|