Version Description
- 24.01.2020 =
- Fixed: Minor bugs.
- Fixed: Compatibility Anti-spam Pro.
Download this release
Release Info
Developer | webtemyk |
Plugin | Anti-spam |
Version | 6.5.4 |
Comparing to | |
See all releases |
Code changes from version 6.5.1 to 6.5.4
- admin/assets/css/about-premium.css +70 -0
- admin/assets/css/about-premium.css.map +1 -0
- admin/assets/css/about-premium.less +89 -0
- admin/assets/css/libs/sweetalert2.css +716 -0
- admin/assets/css/settings.css +28 -0
- admin/assets/css/settings.css.map +1 -1
- admin/assets/css/settings.less +29 -0
- admin/assets/css/sweetalert-custom.css +79 -0
- admin/assets/css/sweetalert-custom.css.map +1 -0
- admin/assets/css/sweetalert-custom.less +90 -0
- admin/assets/img/about-preview.jpg +0 -0
- admin/assets/js/libs/sweetalert3.min.js +2 -0
- admin/assets/js/settings.js +2 -2
- admin/assets/js/trial-popup.js +25 -0
- admin/boot.php +45 -5
- admin/class-activation.php +2 -2
- admin/pages/class-pages-about.php +91 -18
- admin/pages/class-pages-license.php +200 -4
- admin/pages/class-pages-logs.php +3 -3
- admin/pages/class-pages-settings.php +79 -17
- anti-spam.php +25 -24
- assets/js/anti-spam-5.5.js +0 -77
- assets/js/anti-spam.js +36 -0
- includes/__anti-spam-info.php +0 -79
- includes/class-anti-spam-plugin.php +7 -4
- includes/class-protector.php +21 -48
- includes/functions.php +93 -3
- includes/logger/assets/js/base.js +2 -2
- index.php +2 -2
- libs/factory/bootstrap/assets/css-min/bootstrap.accordion.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.blue.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.coffee.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.core.min.css +2 -2
- libs/factory/bootstrap/assets/css-min/bootstrap.ectoplasm.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.form-group.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.light.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.midnight.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.ocean.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.separator.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.sunrise.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.checkbox.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.dropdown.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/holder.more-link.min.css +1 -1
- libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.checkbox.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.dropdown.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.list.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.multiple-textbox.min.js +1 -1
- libs/factory/bootstrap/boot.php +9 -9
- libs/factory/bootstrap/includes/functions.php +10 -10
- libs/factory/clearfy/assets/css/clearfy-base.css +180 -180
- libs/factory/clearfy/assets/js/globals.js +15 -15
- libs/factory/clearfy/assets/js/license-manager.js +4 -4
- libs/factory/clearfy/boot.php +15 -15
- libs/factory/clearfy/includes/ajax-handlers.php +8 -8
- libs/factory/clearfy/includes/class-configurate.php +3 -3
- libs/factory/clearfy/includes/class-helpers.php +1 -1
- libs/factory/clearfy/langs/{wbcr_factory_clearfy_216-ru_RU.mo → wbcr_factory_clearfy_217-ru_RU.mo} +0 -0
- libs/factory/clearfy/langs/{wbcr_factory_clearfy_216-ru_RU.po → wbcr_factory_clearfy_217-ru_RU.po} +0 -0
- libs/factory/clearfy/pages/class-page-license.php +366 -358
- libs/factory/clearfy/pages/class-page-more-features.php +23 -23
- libs/factory/clearfy/pages/class-pages.php +56 -77
- libs/factory/core/boot.php +27 -27
- libs/factory/core/includes/activation/class-factory-activator.php +3 -3
- libs/factory/core/includes/activation/class-factory-update.php +3 -3
- libs/factory/core/includes/assets-managment/class-factory-assets-list.php +4 -4
- libs/factory/core/includes/assets-managment/class-factory-script-list.php +2 -2
- libs/factory/core/includes/assets-managment/class-factory-style-list.php +1 -1
- libs/factory/core/includes/class-check-compatibility.php +3 -3
- libs/factory/core/includes/class-factory-migrations.php +13 -13
- libs/factory/core/includes/class-factory-notices.php +6 -6
- libs/factory/core/includes/class-factory-options.php +2 -2
- libs/factory/core/includes/class-factory-plugin-abstract.php +99 -83
- libs/factory/core/includes/class-factory-plugin-base.php +25 -25
- libs/factory/core/includes/class-factory-requests.php +1 -1
- libs/factory/core/includes/class-factory-requirements.php +6 -6
- libs/factory/core/includes/entities/class-factory-paths.php +1 -1
- libs/factory/core/includes/entities/class-factory-support.php +1 -1
- libs/factory/core/includes/functions.php +7 -7
- libs/factory/core/includes/premium/class-factory-license-interface.php +1 -1
- libs/factory/core/includes/premium/class-factory-manager.php +10 -10
- libs/factory/core/includes/premium/class-factory-provider-abstract.php +6 -6
- libs/factory/core/includes/updates/class-factory-premium-upgrader.php +11 -11
- libs/factory/core/includes/updates/class-factory-upgrader.php +9 -9
- libs/factory/core/includes/updates/repositories/class-factory-repository-abstract.php +5 -5
- libs/factory/core/includes/updates/repositories/class-factory-wordpress.php +4 -4
- libs/factory/core/langs/{wbcr_factory_424-ru_RU.mo → wbcr_factory_425-ru_RU.mo} +0 -0
- libs/factory/core/langs/{wbcr_factory_424-ru_RU.po → wbcr_factory_425-ru_RU.po} +0 -0
- libs/factory/feedback/README.md +23 -0
- libs/factory/feedback/assets/css/dialog-boxes.css +674 -0
- libs/factory/feedback/assets/js/deactivate-feedback.js +140 -0
- libs/factory/feedback/boot.php +47 -0
- libs/factory/feedback/includes/class-base.php +162 -0
- libs/factory/feedback/includes/class-rest-request.php +117 -0
- libs/factory/feedback/includes/index.php +2 -0
- libs/factory/feedback/index.php +2 -0
- libs/factory/feedback/views/deactivate-form.php +86 -0
- libs/factory/forms/boot.php +103 -103
- libs/factory/forms/controls/checkbox.php +4 -4
- libs/factory/forms/controls/color-and-opacity.php +4 -4
- libs/factory/forms/controls/color.php +2 -2
- libs/factory/forms/controls/customs/html.php +2 -2
- libs/factory/forms/controls/customs/separator.php +2 -2
- libs/factory/forms/controls/datepicker-range.php +4 -4
- libs/factory/forms/controls/dropdown-and-colors.php +6 -6
- libs/factory/forms/controls/dropdown.php +5 -5
- libs/factory/forms/controls/font.php +11 -11
- libs/factory/forms/controls/google-font.php +8 -8
- libs/factory/forms/controls/gradient.php +4 -4
- libs/factory/forms/controls/hidden.php +2 -2
- libs/factory/forms/controls/holders/accordion-item.php +2 -2
- libs/factory/forms/controls/holders/accordion.php +2 -2
- libs/factory/forms/controls/holders/columns.php +2 -2
- libs/factory/forms/controls/holders/control-group-item.php +2 -2
- libs/factory/forms/controls/holders/control-group.php +3 -3
- libs/factory/forms/controls/holders/div.php +2 -2
- libs/factory/forms/controls/holders/form-group.php +2 -2
- libs/factory/forms/controls/holders/more-link.php +2 -2
- libs/factory/forms/controls/holders/tab-item.php +2 -2
- libs/factory/forms/controls/holders/tab.php +4 -4
- libs/factory/forms/controls/integer.php +2 -2
- libs/factory/forms/controls/list.php +4 -4
- libs/factory/forms/controls/multiple-textbox.php +3 -3
- libs/factory/forms/controls/paddings-editor.php +3 -3
- libs/factory/forms/controls/pattern.php +9 -9
- libs/factory/forms/controls/radio-colors.php +2 -2
- libs/factory/forms/controls/radio.php +2 -2
- libs/factory/forms/controls/textarea.php +2 -2
- libs/factory/forms/controls/textbox.php +2 -2
- libs/factory/forms/controls/url.php +3 -3
- libs/factory/forms/controls/wp-editor.php +3 -3
- libs/factory/forms/includes/complex-control.class.php +4 -4
- libs/factory/forms/includes/control-holder.class.php +5 -5
- libs/factory/forms/includes/control.class.php +5 -5
- libs/factory/forms/includes/custom-element.class.php +2 -2
- libs/factory/forms/includes/form-element.class.php +7 -7
- libs/factory/forms/includes/form-layout.class.php +5 -5
- libs/factory/forms/includes/form.class.php +39 -39
- libs/factory/forms/includes/holder.class.php +6 -6
- libs/factory/forms/includes/html-builder.class.php +2 -2
- libs/factory/forms/includes/providers/meta-value-provider.class.php +2 -2
- libs/factory/forms/includes/providers/options-value-provider.class.php +3 -3
- libs/factory/forms/includes/providers/value-provider.interface.php +2 -2
- libs/factory/forms/langs/{wbcr_factory_forms_422-ru_RU.mo → wbcr_factory_forms_423-ru_RU.mo} +0 -0
- libs/factory/forms/langs/{wbcr_factory_forms_422-ru_RU.po → wbcr_factory_forms_423-ru_RU.po} +0 -0
- libs/factory/forms/layouts/bootstrap-3/bootstrap-3.php +7 -7
- libs/factory/freemius/boot.php +18 -18
- libs/factory/freemius/includes/class-freemius-api.php +7 -7
- libs/factory/freemius/includes/entities/class-freemius-entity.php +1 -1
- libs/factory/freemius/includes/entities/class-freemius-license.php +361 -354
- libs/factory/freemius/includes/entities/class-freemius-plugin.php +1 -1
- libs/factory/freemius/includes/entities/class-freemius-scope.php +1 -1
- libs/factory/freemius/includes/entities/class-freemius-site.php +1 -1
- libs/factory/freemius/includes/entities/class-freemius-user.php +1 -1
- libs/factory/freemius/includes/licensing/class-freemius-provider.php +18 -18
- libs/factory/freemius/includes/updates/class-freemius-repository.php +7 -7
- libs/factory/pages/boot.php +10 -10
- libs/factory/pages/includes/admin-page.class.php +6 -6
- libs/factory/pages/includes/page.class.php +7 -7
- libs/factory/pages/langs/{wbcr_factory_pages_424-fr_FR.mo → wbcr_factory_pages_425-fr_FR.mo} +0 -0
- libs/factory/pages/langs/{wbcr_factory_pages_424-fr_FR.po → wbcr_factory_pages_425-fr_FR.po} +0 -0
- libs/factory/pages/langs/{wbcr_factory_pages_424-ru_RU.mo → wbcr_factory_pages_425-ru_RU.mo} +0 -0
- libs/factory/pages/langs/{wbcr_factory_pages_424-ru_RU.po → wbcr_factory_pages_425-ru_RU.po} +0 -0
- libs/factory/pages/pages.php +11 -11
- libs/factory/pages/templates/assets/css/impressive.page.template.css +507 -507
- libs/factory/pages/templates/assets/css/impressive.page.template.css.map +0 -1
- libs/factory/pages/templates/impressive-page.class.php +31 -31
- migrations/060500.php +1 -1
- migrations/index.php +2 -2
- readme.txt +26 -1
admin/assets/css/about-premium.css
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#WBCR .wantispam-about-premium h1 {
|
2 |
+
font-size: 35px;
|
3 |
+
}
|
4 |
+
#WBCR .wantispam-about-premium__title {
|
5 |
+
text-align: left;
|
6 |
+
margin-bottom: 20px;
|
7 |
+
}
|
8 |
+
#WBCR .wantispam-about-premium__title--h2 {
|
9 |
+
margin-top: 60px;
|
10 |
+
}
|
11 |
+
#WBCR .wantispam-about-premium__headline-title {
|
12 |
+
font-size: 15px;
|
13 |
+
background: #fff;
|
14 |
+
padding: 20px;
|
15 |
+
text-align: left;
|
16 |
+
}
|
17 |
+
#WBCR .wantispam-about-premium__columns {
|
18 |
+
margin: 40px 0;
|
19 |
+
}
|
20 |
+
#WBCR .wantispam-about-premium__column {
|
21 |
+
text-align: center;
|
22 |
+
background: #fff;
|
23 |
+
margin-left: 5px;
|
24 |
+
padding: 20px 0;
|
25 |
+
}
|
26 |
+
#WBCR .wantispam-about-premium__column .dashicons {
|
27 |
+
color: #ffc107;
|
28 |
+
font-size: 106px;
|
29 |
+
width: 106px;
|
30 |
+
height: 106px;
|
31 |
+
}
|
32 |
+
#WBCR .wantispam-about-premium__column p {
|
33 |
+
font-size: 13px;
|
34 |
+
color: #909090;
|
35 |
+
padding: 6px;
|
36 |
+
}
|
37 |
+
#WBCR .wantispam-about-premium__activate-trial {
|
38 |
+
text-align: center;
|
39 |
+
padding: 30px;
|
40 |
+
background: #fff;
|
41 |
+
border: 1px dashed #d0a295;
|
42 |
+
margin-top: 60px;
|
43 |
+
}
|
44 |
+
#WBCR .wantispam-about-premium__activate-trial p {
|
45 |
+
font-size: 13px;
|
46 |
+
color: #909090;
|
47 |
+
margin-top: 20px;
|
48 |
+
}
|
49 |
+
#WBCR .wantispam-about-premium__activate-trial-button {
|
50 |
+
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1), inset 0 1px 1px rgba(255, 255, 255, 0.7);
|
51 |
+
color: #ffffff;
|
52 |
+
border: 1px solid #fe5421;
|
53 |
+
background: #fe5421;
|
54 |
+
text-transform: uppercase;
|
55 |
+
}
|
56 |
+
#WBCR .wantispam-about-premium ul {
|
57 |
+
padding-left: 60px;
|
58 |
+
list-style: square;
|
59 |
+
}
|
60 |
+
#WBCR .wantispam-about-premium ul li {
|
61 |
+
font-size: 17px;
|
62 |
+
margin-bottom: 10px;
|
63 |
+
}
|
64 |
+
#WBCR .wantispam-about-premium ul li p {
|
65 |
+
font-size: 13px;
|
66 |
+
color: #909090;
|
67 |
+
background: #fff;
|
68 |
+
padding: 6px;
|
69 |
+
}
|
70 |
+
/*# sourceMappingURL=about-premium.css.map */
|
admin/assets/css/about-premium.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["about-premium.less"],"names":[],"mappings":"AAAA,KACE,yBACE;EACE,eAAA;;AAGF,KALF,yBAKG;EACC,gBAAA;EACA,mBAAA;;AAEA,KATJ,yBAKG,OAIE;EACC,gBAAA;;AAIJ,KAdF,yBAcG;EACC,eAAA;EACA,gBAAA;EACA,aAAA;EACA,gBAAA;;AAGF,KArBF,yBAqBG;EACC,cAAA;;AAGF,KAzBF,yBAyBG;EACC,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,eAAA;;AAJF,KAzBF,yBAyBG,QAMC;EACE,cAAA;EACA,gBAAA;EACA,YAAA;EACA,aAAA;;AAVJ,KAzBF,yBAyBG,QAaC;EACE,eAAA;EACA,cAAA;EACA,YAAA;;AAKJ,KA9CF,yBA8CG;EACC,kBAAA;EACA,aAAA;EACA,gBAAA;EACA,0BAAA;EACA,gBAAA;;AALF,KA9CF,yBA8CG,gBAOC;EACE,eAAA;EACA,cAAA;EACA,gBAAA;;AAGF,KA3DJ,yBA8CG,gBAaE;EACC,0FAAA;EACA,cAAA;EACA,yBAAA;EACA,mBAAA;EACA,yBAAA;;AAjER,KACE,yBAqEE;EACE,kBAAA;EACA,kBAAA;;AAxEN,KACE,yBAqEE,GAIE;EACE,eAAA;EACA,mBAAA;;AA5ER,KACE,yBAqEE,GAIE,GAIE;EACE,eAAA;EACA,cAAA;EACA,gBAAA;EACA,YAAA","file":"about-premium.css"}
|
admin/assets/css/about-premium.less
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#WBCR {
|
2 |
+
.wantispam-about-premium {
|
3 |
+
h1 {
|
4 |
+
font-size: 35px;
|
5 |
+
}
|
6 |
+
|
7 |
+
&__title {
|
8 |
+
text-align: left;
|
9 |
+
margin-bottom: 20px;
|
10 |
+
|
11 |
+
&--h2 {
|
12 |
+
margin-top: 60px;
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
&__headline-title {
|
17 |
+
font-size: 15px;
|
18 |
+
background: #fff;
|
19 |
+
padding: 20px;
|
20 |
+
text-align: left;
|
21 |
+
}
|
22 |
+
|
23 |
+
&__columns {
|
24 |
+
margin: 40px 0;
|
25 |
+
}
|
26 |
+
|
27 |
+
&__column {
|
28 |
+
text-align: center;
|
29 |
+
background: #fff;
|
30 |
+
margin-left: 5px;
|
31 |
+
padding: 20px 0;
|
32 |
+
|
33 |
+
.dashicons {
|
34 |
+
color: #ffc107;
|
35 |
+
font-size: 106px;
|
36 |
+
width: 106px;
|
37 |
+
height: 106px;
|
38 |
+
}
|
39 |
+
|
40 |
+
p {
|
41 |
+
font-size: 13px;
|
42 |
+
color: #909090;
|
43 |
+
padding: 6px;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
|
48 |
+
&__activate-trial {
|
49 |
+
text-align: center;
|
50 |
+
padding: 30px;
|
51 |
+
background: #fff;
|
52 |
+
border: 1px dashed #d0a295;
|
53 |
+
margin-top: 60px;
|
54 |
+
|
55 |
+
p {
|
56 |
+
font-size: 13px;
|
57 |
+
color: #909090;
|
58 |
+
margin-top: 20px;
|
59 |
+
}
|
60 |
+
|
61 |
+
&-button {
|
62 |
+
-webkit-box-shadow: 0 1px 1px rgba(000, 000, 000, .1), inset 0 1px 1px rgba(255, 255, 255, .7);
|
63 |
+
color: #ffffff;
|
64 |
+
border: 1px solid #fe5421;
|
65 |
+
background: #fe5421;
|
66 |
+
text-transform: uppercase;
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
|
71 |
+
ul {
|
72 |
+
padding-left: 60px;
|
73 |
+
list-style: square;
|
74 |
+
|
75 |
+
li {
|
76 |
+
font-size: 17px;
|
77 |
+
margin-bottom: 10px;
|
78 |
+
|
79 |
+
p {
|
80 |
+
font-size: 13px;
|
81 |
+
color: #909090;
|
82 |
+
background: #fff;
|
83 |
+
padding: 6px;
|
84 |
+
}
|
85 |
+
}
|
86 |
+
}
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
admin/assets/css/libs/sweetalert2.css
ADDED
@@ -0,0 +1,716 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
body.swal2-shown {
|
2 |
+
overflow-y: hidden; }
|
3 |
+
|
4 |
+
body.swal2-iosfix {
|
5 |
+
position: fixed;
|
6 |
+
left: 0;
|
7 |
+
right: 0; }
|
8 |
+
|
9 |
+
.swal2-container {
|
10 |
+
display: -webkit-box;
|
11 |
+
display: -ms-flexbox;
|
12 |
+
display: flex;
|
13 |
+
-webkit-box-align: center;
|
14 |
+
-ms-flex-align: center;
|
15 |
+
align-items: center;
|
16 |
+
position: fixed;
|
17 |
+
top: 0;
|
18 |
+
left: 0;
|
19 |
+
bottom: 0;
|
20 |
+
right: 0;
|
21 |
+
padding: 10px;
|
22 |
+
background-color: transparent;
|
23 |
+
z-index: 1060; }
|
24 |
+
.swal2-container.swal2-fade {
|
25 |
+
-webkit-transition: background-color .1s;
|
26 |
+
transition: background-color .1s; }
|
27 |
+
.swal2-container.swal2-shown {
|
28 |
+
background-color: rgba(0, 0, 0, 0.4); }
|
29 |
+
|
30 |
+
.swal2-modal {
|
31 |
+
background-color: #fff;
|
32 |
+
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
33 |
+
border-radius: 5px;
|
34 |
+
-webkit-box-sizing: border-box;
|
35 |
+
box-sizing: border-box;
|
36 |
+
text-align: center;
|
37 |
+
margin: auto;
|
38 |
+
overflow-x: hidden;
|
39 |
+
overflow-y: auto;
|
40 |
+
display: none;
|
41 |
+
position: relative;
|
42 |
+
max-width: 100%; }
|
43 |
+
.swal2-modal:focus {
|
44 |
+
outline: none; }
|
45 |
+
.swal2-modal.swal2-loading {
|
46 |
+
overflow-y: hidden; }
|
47 |
+
.swal2-modal .swal2-title {
|
48 |
+
color: #595959;
|
49 |
+
font-size: 30px;
|
50 |
+
text-align: center;
|
51 |
+
font-weight: 600;
|
52 |
+
text-transform: none;
|
53 |
+
position: relative;
|
54 |
+
margin: 0 0 .4em;
|
55 |
+
padding: 0;
|
56 |
+
display: block;
|
57 |
+
word-wrap: break-word; }
|
58 |
+
.swal2-modal .swal2-buttonswrapper {
|
59 |
+
margin-top: 15px; }
|
60 |
+
.swal2-modal .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled] {
|
61 |
+
opacity: .4;
|
62 |
+
cursor: no-drop; }
|
63 |
+
.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm {
|
64 |
+
-webkit-box-sizing: border-box;
|
65 |
+
box-sizing: border-box;
|
66 |
+
border: 4px solid transparent;
|
67 |
+
border-color: transparent;
|
68 |
+
width: 40px;
|
69 |
+
height: 40px;
|
70 |
+
padding: 0;
|
71 |
+
margin: 7.5px;
|
72 |
+
vertical-align: top;
|
73 |
+
background-color: transparent !important;
|
74 |
+
color: transparent;
|
75 |
+
cursor: default;
|
76 |
+
border-radius: 100%;
|
77 |
+
-webkit-animation: rotate-loading 1.5s linear 0s infinite normal;
|
78 |
+
animation: rotate-loading 1.5s linear 0s infinite normal;
|
79 |
+
-webkit-user-select: none;
|
80 |
+
-moz-user-select: none;
|
81 |
+
-ms-user-select: none;
|
82 |
+
user-select: none; }
|
83 |
+
.swal2-modal .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel {
|
84 |
+
margin-left: 30px;
|
85 |
+
margin-right: 30px; }
|
86 |
+
.swal2-modal .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm::after {
|
87 |
+
display: inline-block;
|
88 |
+
content: '';
|
89 |
+
margin-left: 5px 0 15px;
|
90 |
+
vertical-align: -1px;
|
91 |
+
height: 15px;
|
92 |
+
width: 15px;
|
93 |
+
border: 3px solid #999999;
|
94 |
+
-webkit-box-shadow: 1px 1px 1px #fff;
|
95 |
+
box-shadow: 1px 1px 1px #fff;
|
96 |
+
border-right-color: transparent;
|
97 |
+
border-radius: 50%;
|
98 |
+
-webkit-animation: rotate-loading 1.5s linear 0s infinite normal;
|
99 |
+
animation: rotate-loading 1.5s linear 0s infinite normal; }
|
100 |
+
.swal2-modal .swal2-styled {
|
101 |
+
border: 0;
|
102 |
+
border-radius: 3px;
|
103 |
+
-webkit-box-shadow: none;
|
104 |
+
box-shadow: none;
|
105 |
+
color: #fff;
|
106 |
+
cursor: pointer;
|
107 |
+
font-size: 17px;
|
108 |
+
font-weight: 500;
|
109 |
+
margin: 15px 5px 0;
|
110 |
+
padding: 10px 32px; }
|
111 |
+
.swal2-modal .swal2-image {
|
112 |
+
margin: 20px auto;
|
113 |
+
max-width: 100%; }
|
114 |
+
.swal2-modal .swal2-close {
|
115 |
+
background: transparent;
|
116 |
+
border: 0;
|
117 |
+
margin: 0;
|
118 |
+
padding: 0;
|
119 |
+
width: 38px;
|
120 |
+
height: 40px;
|
121 |
+
font-size: 36px;
|
122 |
+
line-height: 40px;
|
123 |
+
font-family: serif;
|
124 |
+
position: absolute;
|
125 |
+
top: 5px;
|
126 |
+
right: 8px;
|
127 |
+
cursor: pointer;
|
128 |
+
color: #cccccc;
|
129 |
+
-webkit-transition: color .1s ease;
|
130 |
+
transition: color .1s ease; }
|
131 |
+
.swal2-modal .swal2-close:hover {
|
132 |
+
color: #d55; }
|
133 |
+
.swal2-modal > .swal2-input,
|
134 |
+
.swal2-modal > .swal2-file,
|
135 |
+
.swal2-modal > .swal2-textarea,
|
136 |
+
.swal2-modal > .swal2-select,
|
137 |
+
.swal2-modal > .swal2-radio,
|
138 |
+
.swal2-modal > .swal2-checkbox {
|
139 |
+
display: none; }
|
140 |
+
.swal2-modal .swal2-content {
|
141 |
+
font-size: 18px;
|
142 |
+
text-align: center;
|
143 |
+
font-weight: 300;
|
144 |
+
position: relative;
|
145 |
+
float: none;
|
146 |
+
margin: 0;
|
147 |
+
padding: 0;
|
148 |
+
line-height: normal;
|
149 |
+
color: #545454;
|
150 |
+
word-wrap: break-word; }
|
151 |
+
.swal2-modal .swal2-input,
|
152 |
+
.swal2-modal .swal2-file,
|
153 |
+
.swal2-modal .swal2-textarea,
|
154 |
+
.swal2-modal .swal2-select,
|
155 |
+
.swal2-modal .swal2-radio,
|
156 |
+
.swal2-modal .swal2-checkbox {
|
157 |
+
margin: 20px auto; }
|
158 |
+
.swal2-modal .swal2-input,
|
159 |
+
.swal2-modal .swal2-file,
|
160 |
+
.swal2-modal .swal2-textarea {
|
161 |
+
width: 100%;
|
162 |
+
-webkit-box-sizing: border-box;
|
163 |
+
box-sizing: border-box;
|
164 |
+
font-size: 18px;
|
165 |
+
border-radius: 3px;
|
166 |
+
border: 1px solid #d9d9d9;
|
167 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);
|
168 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);
|
169 |
+
-webkit-transition: border-color box-shadow .3s;
|
170 |
+
transition: border-color box-shadow .3s; }
|
171 |
+
.swal2-modal .swal2-input.swal2-inputerror,
|
172 |
+
.swal2-modal .swal2-file.swal2-inputerror,
|
173 |
+
.swal2-modal .swal2-textarea.swal2-inputerror {
|
174 |
+
border-color: #f27474 !important;
|
175 |
+
-webkit-box-shadow: 0 0 2px #f27474 !important;
|
176 |
+
box-shadow: 0 0 2px #f27474 !important; }
|
177 |
+
.swal2-modal .swal2-input:focus,
|
178 |
+
.swal2-modal .swal2-file:focus,
|
179 |
+
.swal2-modal .swal2-textarea:focus {
|
180 |
+
outline: none;
|
181 |
+
border: 1px solid #b4dbed;
|
182 |
+
-webkit-box-shadow: 0 0 3px #c4e6f5;
|
183 |
+
box-shadow: 0 0 3px #c4e6f5; }
|
184 |
+
.swal2-modal .swal2-input:focus::-webkit-input-placeholder,
|
185 |
+
.swal2-modal .swal2-file:focus::-webkit-input-placeholder,
|
186 |
+
.swal2-modal .swal2-textarea:focus::-webkit-input-placeholder {
|
187 |
+
-webkit-transition: opacity .3s .03s ease;
|
188 |
+
transition: opacity .3s .03s ease;
|
189 |
+
opacity: .8; }
|
190 |
+
.swal2-modal .swal2-input:focus:-ms-input-placeholder,
|
191 |
+
.swal2-modal .swal2-file:focus:-ms-input-placeholder,
|
192 |
+
.swal2-modal .swal2-textarea:focus:-ms-input-placeholder {
|
193 |
+
-webkit-transition: opacity .3s .03s ease;
|
194 |
+
transition: opacity .3s .03s ease;
|
195 |
+
opacity: .8; }
|
196 |
+
.swal2-modal .swal2-input:focus::placeholder,
|
197 |
+
.swal2-modal .swal2-file:focus::placeholder,
|
198 |
+
.swal2-modal .swal2-textarea:focus::placeholder {
|
199 |
+
-webkit-transition: opacity .3s .03s ease;
|
200 |
+
transition: opacity .3s .03s ease;
|
201 |
+
opacity: .8; }
|
202 |
+
.swal2-modal .swal2-input::-webkit-input-placeholder,
|
203 |
+
.swal2-modal .swal2-file::-webkit-input-placeholder,
|
204 |
+
.swal2-modal .swal2-textarea::-webkit-input-placeholder {
|
205 |
+
color: #e6e6e6; }
|
206 |
+
.swal2-modal .swal2-input:-ms-input-placeholder,
|
207 |
+
.swal2-modal .swal2-file:-ms-input-placeholder,
|
208 |
+
.swal2-modal .swal2-textarea:-ms-input-placeholder {
|
209 |
+
color: #e6e6e6; }
|
210 |
+
.swal2-modal .swal2-input::placeholder,
|
211 |
+
.swal2-modal .swal2-file::placeholder,
|
212 |
+
.swal2-modal .swal2-textarea::placeholder {
|
213 |
+
color: #e6e6e6; }
|
214 |
+
.swal2-modal .swal2-range input {
|
215 |
+
float: left;
|
216 |
+
width: 80%; }
|
217 |
+
.swal2-modal .swal2-range output {
|
218 |
+
float: right;
|
219 |
+
width: 20%;
|
220 |
+
font-size: 20px;
|
221 |
+
font-weight: 600;
|
222 |
+
text-align: center; }
|
223 |
+
.swal2-modal .swal2-range input,
|
224 |
+
.swal2-modal .swal2-range output {
|
225 |
+
height: 43px;
|
226 |
+
line-height: 43px;
|
227 |
+
vertical-align: middle;
|
228 |
+
margin: 20px auto;
|
229 |
+
padding: 0; }
|
230 |
+
.swal2-modal .swal2-input {
|
231 |
+
height: 43px;
|
232 |
+
padding: 0 12px; }
|
233 |
+
.swal2-modal .swal2-input[type='number'] {
|
234 |
+
max-width: 150px; }
|
235 |
+
.swal2-modal .swal2-file {
|
236 |
+
font-size: 20px; }
|
237 |
+
.swal2-modal .swal2-textarea {
|
238 |
+
height: 108px;
|
239 |
+
padding: 12px; }
|
240 |
+
.swal2-modal .swal2-select {
|
241 |
+
color: #545454;
|
242 |
+
font-size: inherit;
|
243 |
+
padding: 5px 10px;
|
244 |
+
min-width: 40%;
|
245 |
+
max-width: 100%; }
|
246 |
+
.swal2-modal .swal2-radio {
|
247 |
+
border: 0; }
|
248 |
+
.swal2-modal .swal2-radio label:not(:first-child) {
|
249 |
+
margin-left: 20px; }
|
250 |
+
.swal2-modal .swal2-radio input,
|
251 |
+
.swal2-modal .swal2-radio span {
|
252 |
+
vertical-align: middle; }
|
253 |
+
.swal2-modal .swal2-radio input {
|
254 |
+
margin: 0 3px 0 0; }
|
255 |
+
.swal2-modal .swal2-checkbox {
|
256 |
+
color: #545454; }
|
257 |
+
.swal2-modal .swal2-checkbox input,
|
258 |
+
.swal2-modal .swal2-checkbox span {
|
259 |
+
vertical-align: middle; }
|
260 |
+
.swal2-modal .swal2-validationerror {
|
261 |
+
background-color: #f0f0f0;
|
262 |
+
margin: 0 -20px;
|
263 |
+
overflow: hidden;
|
264 |
+
padding: 10px;
|
265 |
+
color: gray;
|
266 |
+
font-size: 16px;
|
267 |
+
font-weight: 300;
|
268 |
+
display: none; }
|
269 |
+
.swal2-modal .swal2-validationerror::before {
|
270 |
+
content: '!';
|
271 |
+
display: inline-block;
|
272 |
+
width: 24px;
|
273 |
+
height: 24px;
|
274 |
+
border-radius: 50%;
|
275 |
+
background-color: #ea7d7d;
|
276 |
+
color: #fff;
|
277 |
+
line-height: 24px;
|
278 |
+
text-align: center;
|
279 |
+
margin-right: 10px; }
|
280 |
+
|
281 |
+
@supports (-ms-accelerator: true) {
|
282 |
+
.swal2-range input {
|
283 |
+
width: 100% !important; }
|
284 |
+
.swal2-range output {
|
285 |
+
display: none; } }
|
286 |
+
|
287 |
+
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
|
288 |
+
.swal2-range input {
|
289 |
+
width: 100% !important; }
|
290 |
+
.swal2-range output {
|
291 |
+
display: none; } }
|
292 |
+
|
293 |
+
.swal2-icon {
|
294 |
+
width: 80px;
|
295 |
+
height: 80px;
|
296 |
+
border: 4px solid transparent;
|
297 |
+
border-radius: 50%;
|
298 |
+
margin: 20px auto 30px;
|
299 |
+
padding: 0;
|
300 |
+
position: relative;
|
301 |
+
-webkit-box-sizing: content-box;
|
302 |
+
box-sizing: content-box;
|
303 |
+
cursor: default;
|
304 |
+
-webkit-user-select: none;
|
305 |
+
-moz-user-select: none;
|
306 |
+
-ms-user-select: none;
|
307 |
+
user-select: none; }
|
308 |
+
.swal2-icon.swal2-error {
|
309 |
+
border-color: #f27474; }
|
310 |
+
.swal2-icon.swal2-error .swal2-x-mark {
|
311 |
+
position: relative;
|
312 |
+
display: block; }
|
313 |
+
.swal2-icon.swal2-error [class^='swal2-x-mark-line'] {
|
314 |
+
position: absolute;
|
315 |
+
height: 5px;
|
316 |
+
width: 47px;
|
317 |
+
background-color: #f27474;
|
318 |
+
display: block;
|
319 |
+
top: 37px;
|
320 |
+
border-radius: 2px; }
|
321 |
+
.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {
|
322 |
+
-webkit-transform: rotate(45deg);
|
323 |
+
transform: rotate(45deg);
|
324 |
+
left: 17px; }
|
325 |
+
.swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {
|
326 |
+
-webkit-transform: rotate(-45deg);
|
327 |
+
transform: rotate(-45deg);
|
328 |
+
right: 16px; }
|
329 |
+
.swal2-icon.swal2-warning {
|
330 |
+
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
331 |
+
color: #f8bb86;
|
332 |
+
border-color: #facea8;
|
333 |
+
font-size: 60px;
|
334 |
+
line-height: 80px;
|
335 |
+
text-align: center; }
|
336 |
+
.swal2-icon.swal2-info {
|
337 |
+
font-family: 'Open Sans', sans-serif;
|
338 |
+
color: #3fc3ee;
|
339 |
+
border-color: #9de0f6;
|
340 |
+
font-size: 60px;
|
341 |
+
line-height: 80px;
|
342 |
+
text-align: center; }
|
343 |
+
.swal2-icon.swal2-question {
|
344 |
+
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
345 |
+
color: #87adbd;
|
346 |
+
border-color: #c9dae1;
|
347 |
+
font-size: 60px;
|
348 |
+
line-height: 80px;
|
349 |
+
text-align: center; }
|
350 |
+
.swal2-icon.swal2-success {
|
351 |
+
border-color: #a5dc86; }
|
352 |
+
.swal2-icon.swal2-success [class^='swal2-success-circular-line'] {
|
353 |
+
border-radius: 50%;
|
354 |
+
position: absolute;
|
355 |
+
width: 60px;
|
356 |
+
height: 120px;
|
357 |
+
-webkit-transform: rotate(45deg);
|
358 |
+
transform: rotate(45deg); }
|
359 |
+
.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {
|
360 |
+
border-radius: 120px 0 0 120px;
|
361 |
+
top: -7px;
|
362 |
+
left: -33px;
|
363 |
+
-webkit-transform: rotate(-45deg);
|
364 |
+
transform: rotate(-45deg);
|
365 |
+
-webkit-transform-origin: 60px 60px;
|
366 |
+
transform-origin: 60px 60px; }
|
367 |
+
.swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {
|
368 |
+
border-radius: 0 120px 120px 0;
|
369 |
+
top: -11px;
|
370 |
+
left: 30px;
|
371 |
+
-webkit-transform: rotate(-45deg);
|
372 |
+
transform: rotate(-45deg);
|
373 |
+
-webkit-transform-origin: 0 60px;
|
374 |
+
transform-origin: 0 60px; }
|
375 |
+
.swal2-icon.swal2-success .swal2-success-ring {
|
376 |
+
width: 80px;
|
377 |
+
height: 80px;
|
378 |
+
border: 4px solid rgba(165, 220, 134, 0.2);
|
379 |
+
border-radius: 50%;
|
380 |
+
-webkit-box-sizing: content-box;
|
381 |
+
box-sizing: content-box;
|
382 |
+
position: absolute;
|
383 |
+
left: -4px;
|
384 |
+
top: -4px;
|
385 |
+
z-index: 2; }
|
386 |
+
.swal2-icon.swal2-success .swal2-success-fix {
|
387 |
+
width: 7px;
|
388 |
+
height: 90px;
|
389 |
+
position: absolute;
|
390 |
+
left: 28px;
|
391 |
+
top: 8px;
|
392 |
+
z-index: 1;
|
393 |
+
-webkit-transform: rotate(-45deg);
|
394 |
+
transform: rotate(-45deg); }
|
395 |
+
.swal2-icon.swal2-success [class^='swal2-success-line'] {
|
396 |
+
height: 5px;
|
397 |
+
background-color: #a5dc86;
|
398 |
+
display: block;
|
399 |
+
border-radius: 2px;
|
400 |
+
position: absolute;
|
401 |
+
z-index: 2; }
|
402 |
+
.swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {
|
403 |
+
width: 25px;
|
404 |
+
left: 14px;
|
405 |
+
top: 46px;
|
406 |
+
-webkit-transform: rotate(45deg);
|
407 |
+
transform: rotate(45deg); }
|
408 |
+
.swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {
|
409 |
+
width: 47px;
|
410 |
+
right: 8px;
|
411 |
+
top: 38px;
|
412 |
+
-webkit-transform: rotate(-45deg);
|
413 |
+
transform: rotate(-45deg); }
|
414 |
+
|
415 |
+
.swal2-progresssteps {
|
416 |
+
font-weight: 600;
|
417 |
+
margin: 0 0 20px;
|
418 |
+
padding: 0; }
|
419 |
+
.swal2-progresssteps li {
|
420 |
+
display: inline-block;
|
421 |
+
position: relative; }
|
422 |
+
.swal2-progresssteps .swal2-progresscircle {
|
423 |
+
background: #3085d6;
|
424 |
+
border-radius: 2em;
|
425 |
+
color: #fff;
|
426 |
+
height: 2em;
|
427 |
+
line-height: 2em;
|
428 |
+
text-align: center;
|
429 |
+
width: 2em;
|
430 |
+
z-index: 20; }
|
431 |
+
.swal2-progresssteps .swal2-progresscircle:first-child {
|
432 |
+
margin-left: 0; }
|
433 |
+
.swal2-progresssteps .swal2-progresscircle:last-child {
|
434 |
+
margin-right: 0; }
|
435 |
+
.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {
|
436 |
+
background: #3085d6; }
|
437 |
+
.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {
|
438 |
+
background: #add8e6; }
|
439 |
+
.swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {
|
440 |
+
background: #add8e6; }
|
441 |
+
.swal2-progresssteps .swal2-progressline {
|
442 |
+
background: #3085d6;
|
443 |
+
height: .4em;
|
444 |
+
margin: 0 -1px;
|
445 |
+
z-index: 10; }
|
446 |
+
|
447 |
+
[class^='swal2'] {
|
448 |
+
-webkit-tap-highlight-color: transparent; }
|
449 |
+
|
450 |
+
@-webkit-keyframes showSweetAlert {
|
451 |
+
0% {
|
452 |
+
-webkit-transform: scale(0.7);
|
453 |
+
transform: scale(0.7); }
|
454 |
+
45% {
|
455 |
+
-webkit-transform: scale(1.05);
|
456 |
+
transform: scale(1.05); }
|
457 |
+
80% {
|
458 |
+
-webkit-transform: scale(0.95);
|
459 |
+
transform: scale(0.95); }
|
460 |
+
100% {
|
461 |
+
-webkit-transform: scale(1);
|
462 |
+
transform: scale(1); } }
|
463 |
+
|
464 |
+
@keyframes showSweetAlert {
|
465 |
+
0% {
|
466 |
+
-webkit-transform: scale(0.7);
|
467 |
+
transform: scale(0.7); }
|
468 |
+
45% {
|
469 |
+
-webkit-transform: scale(1.05);
|
470 |
+
transform: scale(1.05); }
|
471 |
+
80% {
|
472 |
+
-webkit-transform: scale(0.95);
|
473 |
+
transform: scale(0.95); }
|
474 |
+
100% {
|
475 |
+
-webkit-transform: scale(1);
|
476 |
+
transform: scale(1); } }
|
477 |
+
|
478 |
+
@-webkit-keyframes hideSweetAlert {
|
479 |
+
0% {
|
480 |
+
-webkit-transform: scale(1);
|
481 |
+
transform: scale(1);
|
482 |
+
opacity: 1; }
|
483 |
+
100% {
|
484 |
+
-webkit-transform: scale(0.5);
|
485 |
+
transform: scale(0.5);
|
486 |
+
opacity: 0; } }
|
487 |
+
|
488 |
+
@keyframes hideSweetAlert {
|
489 |
+
0% {
|
490 |
+
-webkit-transform: scale(1);
|
491 |
+
transform: scale(1);
|
492 |
+
opacity: 1; }
|
493 |
+
100% {
|
494 |
+
-webkit-transform: scale(0.5);
|
495 |
+
transform: scale(0.5);
|
496 |
+
opacity: 0; } }
|
497 |
+
|
498 |
+
.swal2-show {
|
499 |
+
-webkit-animation: showSweetAlert 0.3s;
|
500 |
+
animation: showSweetAlert 0.3s; }
|
501 |
+
.swal2-show.swal2-noanimation {
|
502 |
+
-webkit-animation: none;
|
503 |
+
animation: none; }
|
504 |
+
|
505 |
+
.swal2-hide {
|
506 |
+
-webkit-animation: hideSweetAlert 0.15s forwards;
|
507 |
+
animation: hideSweetAlert 0.15s forwards; }
|
508 |
+
.swal2-hide.swal2-noanimation {
|
509 |
+
-webkit-animation: none;
|
510 |
+
animation: none; }
|
511 |
+
|
512 |
+
@-webkit-keyframes animate-success-tip {
|
513 |
+
0% {
|
514 |
+
width: 0;
|
515 |
+
left: 1px;
|
516 |
+
top: 19px; }
|
517 |
+
54% {
|
518 |
+
width: 0;
|
519 |
+
left: 1px;
|
520 |
+
top: 19px; }
|
521 |
+
70% {
|
522 |
+
width: 50px;
|
523 |
+
left: -8px;
|
524 |
+
top: 37px; }
|
525 |
+
84% {
|
526 |
+
width: 17px;
|
527 |
+
left: 21px;
|
528 |
+
top: 48px; }
|
529 |
+
100% {
|
530 |
+
width: 25px;
|
531 |
+
left: 14px;
|
532 |
+
top: 45px; } }
|
533 |
+
|
534 |
+
@keyframes animate-success-tip {
|
535 |
+
0% {
|
536 |
+
width: 0;
|
537 |
+
left: 1px;
|
538 |
+
top: 19px; }
|
539 |
+
54% {
|
540 |
+
width: 0;
|
541 |
+
left: 1px;
|
542 |
+
top: 19px; }
|
543 |
+
70% {
|
544 |
+
width: 50px;
|
545 |
+
left: -8px;
|
546 |
+
top: 37px; }
|
547 |
+
84% {
|
548 |
+
width: 17px;
|
549 |
+
left: 21px;
|
550 |
+
top: 48px; }
|
551 |
+
100% {
|
552 |
+
width: 25px;
|
553 |
+
left: 14px;
|
554 |
+
top: 45px; } }
|
555 |
+
|
556 |
+
@-webkit-keyframes animate-success-long {
|
557 |
+
0% {
|
558 |
+
width: 0;
|
559 |
+
right: 46px;
|
560 |
+
top: 54px; }
|
561 |
+
65% {
|
562 |
+
width: 0;
|
563 |
+
right: 46px;
|
564 |
+
top: 54px; }
|
565 |
+
84% {
|
566 |
+
width: 55px;
|
567 |
+
right: 0;
|
568 |
+
top: 35px; }
|
569 |
+
100% {
|
570 |
+
width: 47px;
|
571 |
+
right: 8px;
|
572 |
+
top: 38px; } }
|
573 |
+
|
574 |
+
@keyframes animate-success-long {
|
575 |
+
0% {
|
576 |
+
width: 0;
|
577 |
+
right: 46px;
|
578 |
+
top: 54px; }
|
579 |
+
65% {
|
580 |
+
width: 0;
|
581 |
+
right: 46px;
|
582 |
+
top: 54px; }
|
583 |
+
84% {
|
584 |
+
width: 55px;
|
585 |
+
right: 0;
|
586 |
+
top: 35px; }
|
587 |
+
100% {
|
588 |
+
width: 47px;
|
589 |
+
right: 8px;
|
590 |
+
top: 38px; } }
|
591 |
+
|
592 |
+
@-webkit-keyframes rotatePlaceholder {
|
593 |
+
0% {
|
594 |
+
-webkit-transform: rotate(-45deg);
|
595 |
+
transform: rotate(-45deg); }
|
596 |
+
5% {
|
597 |
+
-webkit-transform: rotate(-45deg);
|
598 |
+
transform: rotate(-45deg); }
|
599 |
+
12% {
|
600 |
+
-webkit-transform: rotate(-405deg);
|
601 |
+
transform: rotate(-405deg); }
|
602 |
+
100% {
|
603 |
+
-webkit-transform: rotate(-405deg);
|
604 |
+
transform: rotate(-405deg); } }
|
605 |
+
|
606 |
+
@keyframes rotatePlaceholder {
|
607 |
+
0% {
|
608 |
+
-webkit-transform: rotate(-45deg);
|
609 |
+
transform: rotate(-45deg); }
|
610 |
+
5% {
|
611 |
+
-webkit-transform: rotate(-45deg);
|
612 |
+
transform: rotate(-45deg); }
|
613 |
+
12% {
|
614 |
+
-webkit-transform: rotate(-405deg);
|
615 |
+
transform: rotate(-405deg); }
|
616 |
+
100% {
|
617 |
+
-webkit-transform: rotate(-405deg);
|
618 |
+
transform: rotate(-405deg); } }
|
619 |
+
|
620 |
+
.swal2-animate-success-line-tip {
|
621 |
+
-webkit-animation: animate-success-tip 0.75s;
|
622 |
+
animation: animate-success-tip 0.75s; }
|
623 |
+
|
624 |
+
.swal2-animate-success-line-long {
|
625 |
+
-webkit-animation: animate-success-long 0.75s;
|
626 |
+
animation: animate-success-long 0.75s; }
|
627 |
+
|
628 |
+
.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right {
|
629 |
+
-webkit-animation: rotatePlaceholder 4.25s ease-in;
|
630 |
+
animation: rotatePlaceholder 4.25s ease-in; }
|
631 |
+
|
632 |
+
@-webkit-keyframes animate-error-icon {
|
633 |
+
0% {
|
634 |
+
-webkit-transform: rotateX(100deg);
|
635 |
+
transform: rotateX(100deg);
|
636 |
+
opacity: 0; }
|
637 |
+
100% {
|
638 |
+
-webkit-transform: rotateX(0deg);
|
639 |
+
transform: rotateX(0deg);
|
640 |
+
opacity: 1; } }
|
641 |
+
|
642 |
+
@keyframes animate-error-icon {
|
643 |
+
0% {
|
644 |
+
-webkit-transform: rotateX(100deg);
|
645 |
+
transform: rotateX(100deg);
|
646 |
+
opacity: 0; }
|
647 |
+
100% {
|
648 |
+
-webkit-transform: rotateX(0deg);
|
649 |
+
transform: rotateX(0deg);
|
650 |
+
opacity: 1; } }
|
651 |
+
|
652 |
+
.swal2-animate-error-icon {
|
653 |
+
-webkit-animation: animate-error-icon 0.5s;
|
654 |
+
animation: animate-error-icon 0.5s; }
|
655 |
+
|
656 |
+
@-webkit-keyframes animate-x-mark {
|
657 |
+
0% {
|
658 |
+
-webkit-transform: scale(0.4);
|
659 |
+
transform: scale(0.4);
|
660 |
+
margin-top: 26px;
|
661 |
+
opacity: 0; }
|
662 |
+
50% {
|
663 |
+
-webkit-transform: scale(0.4);
|
664 |
+
transform: scale(0.4);
|
665 |
+
margin-top: 26px;
|
666 |
+
opacity: 0; }
|
667 |
+
80% {
|
668 |
+
-webkit-transform: scale(1.15);
|
669 |
+
transform: scale(1.15);
|
670 |
+
margin-top: -6px; }
|
671 |
+
100% {
|
672 |
+
-webkit-transform: scale(1);
|
673 |
+
transform: scale(1);
|
674 |
+
margin-top: 0;
|
675 |
+
opacity: 1; } }
|
676 |
+
|
677 |
+
@keyframes animate-x-mark {
|
678 |
+
0% {
|
679 |
+
-webkit-transform: scale(0.4);
|
680 |
+
transform: scale(0.4);
|
681 |
+
margin-top: 26px;
|
682 |
+
opacity: 0; }
|
683 |
+
50% {
|
684 |
+
-webkit-transform: scale(0.4);
|
685 |
+
transform: scale(0.4);
|
686 |
+
margin-top: 26px;
|
687 |
+
opacity: 0; }
|
688 |
+
80% {
|
689 |
+
-webkit-transform: scale(1.15);
|
690 |
+
transform: scale(1.15);
|
691 |
+
margin-top: -6px; }
|
692 |
+
100% {
|
693 |
+
-webkit-transform: scale(1);
|
694 |
+
transform: scale(1);
|
695 |
+
margin-top: 0;
|
696 |
+
opacity: 1; } }
|
697 |
+
|
698 |
+
.swal2-animate-x-mark {
|
699 |
+
-webkit-animation: animate-x-mark 0.5s;
|
700 |
+
animation: animate-x-mark 0.5s; }
|
701 |
+
|
702 |
+
@-webkit-keyframes rotate-loading {
|
703 |
+
0% {
|
704 |
+
-webkit-transform: rotate(0deg);
|
705 |
+
transform: rotate(0deg); }
|
706 |
+
100% {
|
707 |
+
-webkit-transform: rotate(360deg);
|
708 |
+
transform: rotate(360deg); } }
|
709 |
+
|
710 |
+
@keyframes rotate-loading {
|
711 |
+
0% {
|
712 |
+
-webkit-transform: rotate(0deg);
|
713 |
+
transform: rotate(0deg); }
|
714 |
+
100% {
|
715 |
+
-webkit-transform: rotate(360deg);
|
716 |
+
transform: rotate(360deg); } }
|
admin/assets/css/settings.css
CHANGED
@@ -26,4 +26,32 @@
|
|
26 |
-webkit-box-shadow: none;
|
27 |
box-shadow: none;
|
28 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
/*# sourceMappingURL=settings.css.map */
|
26 |
-webkit-box-shadow: none;
|
27 |
box-shadow: none;
|
28 |
}
|
29 |
+
#WBCR .wantispam-checkbox-warning-message {
|
30 |
+
position: relative;
|
31 |
+
padding: 15px;
|
32 |
+
background: #fff5de;
|
33 |
+
color: #9c6e6e;
|
34 |
+
border-radius: 3px;
|
35 |
+
}
|
36 |
+
#WBCR .wantispam-checkbox-warning-message:after,
|
37 |
+
#WBCR .wantispam-checkbox-warning-message:before {
|
38 |
+
bottom: 100%;
|
39 |
+
left: 20px;
|
40 |
+
border: solid transparent;
|
41 |
+
content: " ";
|
42 |
+
height: 0;
|
43 |
+
width: 0;
|
44 |
+
position: absolute;
|
45 |
+
pointer-events: none;
|
46 |
+
}
|
47 |
+
#WBCR .wantispam-checkbox-warning-message:after {
|
48 |
+
border-color: rgba(136, 183, 213, 0);
|
49 |
+
border-bottom-color: #fff5de;
|
50 |
+
border-width: 10px;
|
51 |
+
}
|
52 |
+
#WBCR .wantispam-checkbox-warning-message:before {
|
53 |
+
border-color: rgba(194, 225, 245, 0);
|
54 |
+
border-bottom-color: #fff5de;
|
55 |
+
border-width: 10px;
|
56 |
+
}
|
57 |
/*# sourceMappingURL=settings.css.map */
|
admin/assets/css/settings.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["settings.less"],"names":[],"mappings":"AAEI,KADF,kBACG,iCAAiC;EAChC,qBAAA;EACA,kBAAA;EACA,SAAS,KAAT;EACA,mBAAA;EACA,kBAAA;EACA,WAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;EACA,eAAA;;AAGF,KArBF,kBAqBG,UAAW;AACZ,KAtBF,kBAsBG,UAAW;EACV,oBAAA;EACA,mBAAA;EACA,aAAA;EACA,yBAAA;EACA,wBAAA;EACA,gBAAA","file":"settings.css"}
|
1 |
+
{"version":3,"sources":["settings.less"],"names":[],"mappings":"AAEI,KADF,kBACG,iCAAiC;EAChC,qBAAA;EACA,kBAAA;EACA,SAAS,KAAT;EACA,mBAAA;EACA,kBAAA;EACA,WAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;EACA,eAAA;;AAGF,KArBF,kBAqBG,UAAW;AACZ,KAtBF,kBAsBG,UAAW;EACV,oBAAA;EACA,mBAAA;EACA,aAAA;EACA,yBAAA;EACA,wBAAA;EACA,gBAAA;;AA7BN,KAiCE;EACE,kBAAA;EACA,aAAA;EACA,mBAAA;EACA,cAAA;EACA,kBAAA;;AAEA,KAPF,oCAOG;AAAQ,KAPX,oCAOY;EACR,YAAA;EACA,UAAA;EACA,yBAAA;EACA,SAAS,GAAT;EACA,SAAA;EACA,QAAA;EACA,kBAAA;EACA,oBAAA;;AAGF,KAlBF,oCAkBG;EACC,oCAAA;EACA,4BAAA;EACA,kBAAA;;AAGF,KAxBF,oCAwBG;EACC,oCAAA;EACA,4BAAA;EACA,kBAAA","file":"settings.css"}
|
admin/assets/css/settings.less
CHANGED
@@ -31,6 +31,35 @@
|
|
31 |
}
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
}
|
36 |
|
31 |
}
|
32 |
}
|
33 |
|
34 |
+
.wantispam-checkbox-warning-message {
|
35 |
+
position: relative;
|
36 |
+
padding: 15px;
|
37 |
+
background: #fff5de;
|
38 |
+
color: #9c6e6e;
|
39 |
+
border-radius: 3px;
|
40 |
|
41 |
+
&:after, &:before {
|
42 |
+
bottom: 100%;
|
43 |
+
left: 20px;
|
44 |
+
border: solid transparent;
|
45 |
+
content: " ";
|
46 |
+
height: 0;
|
47 |
+
width: 0;
|
48 |
+
position: absolute;
|
49 |
+
pointer-events: none;
|
50 |
+
}
|
51 |
+
|
52 |
+
&:after {
|
53 |
+
border-color: rgba(136, 183, 213, 0);
|
54 |
+
border-bottom-color: #fff5de;
|
55 |
+
border-width: 10px;
|
56 |
+
}
|
57 |
+
|
58 |
+
&:before {
|
59 |
+
border-color: rgba(194, 225, 245, 0);
|
60 |
+
border-bottom-color: #fff5de;
|
61 |
+
border-width: 10px;
|
62 |
+
}
|
63 |
+
}
|
64 |
}
|
65 |
|
admin/assets/css/sweetalert-custom.css
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Sub Layerr */
|
2 |
+
body[class*="_license-wantispam"] .swal2-container.swal2-shown {
|
3 |
+
background: rgba(16, 17, 21, 0.9);
|
4 |
+
z-index: 100000;
|
5 |
+
}
|
6 |
+
.wantispam-modal {
|
7 |
+
padding: 0 !important;
|
8 |
+
}
|
9 |
+
.wantispam-modal .swal2-close {
|
10 |
+
color: rgba(0, 0, 0, 0.8);
|
11 |
+
}
|
12 |
+
.wantispam-modal .swal2-modal {
|
13 |
+
border-radius: 2px;
|
14 |
+
}
|
15 |
+
.wantispam-modal .swal2-icon {
|
16 |
+
margin-bottom: 25px;
|
17 |
+
}
|
18 |
+
.wantispam-modal .swal2-title {
|
19 |
+
margin: 0;
|
20 |
+
padding: 15px 32px;
|
21 |
+
font-size: 20px;
|
22 |
+
text-align: left;
|
23 |
+
color: #fff !important;
|
24 |
+
background: #3e3e3e !important;
|
25 |
+
}
|
26 |
+
.wantispam-modal .swal2-content {
|
27 |
+
font-size: 16px;
|
28 |
+
padding: 0;
|
29 |
+
background: #efefef;
|
30 |
+
}
|
31 |
+
.wantispam-modal .swal2-actions {
|
32 |
+
margin-top: 0;
|
33 |
+
padding: 10px;
|
34 |
+
background: #F4F7F9;
|
35 |
+
}
|
36 |
+
.wantispam-modal .swal2-actions a.button svg {
|
37 |
+
margin-right: 12px;
|
38 |
+
vertical-align: -2px;
|
39 |
+
}
|
40 |
+
.wantispam-modal .swal2-actions button.loading {
|
41 |
+
border-radius: 100% !important;
|
42 |
+
height: 40px !important;
|
43 |
+
padding: 0 !important;
|
44 |
+
box-shadow: none !important;
|
45 |
+
}
|
46 |
+
.wantispam-modal .swal2-actions button.swal2-styled {
|
47 |
+
height: auto;
|
48 |
+
padding: 12px 32px;
|
49 |
+
margin: 10px;
|
50 |
+
font-size: 14px;
|
51 |
+
letter-spacing: 1px;
|
52 |
+
text-transform: uppercase;
|
53 |
+
border-radius: 3px;
|
54 |
+
font-weight: bold;
|
55 |
+
outline: none;
|
56 |
+
}
|
57 |
+
.wantispam-modal .swal2-actions button.swal2-styled.swal2-confirm {
|
58 |
+
background-color: #fdd599 !important;
|
59 |
+
text-shadow: none !important;
|
60 |
+
box-shadow: 0 3px 0 #ceac7a !important;
|
61 |
+
color: #a57b3c !important;
|
62 |
+
}
|
63 |
+
.wantispam-modal .swal2-actions button.swal2-styled.swal2-cancel {
|
64 |
+
background-color: #d2d2d2 !important;
|
65 |
+
color: #656464 !important;
|
66 |
+
text-shadow: none !important;
|
67 |
+
box-shadow: 0 3px 0 #a9a9a9;
|
68 |
+
/*background-color: #c9deb2 !important;
|
69 |
+
color: #606956 !important;
|
70 |
+
text-shadow: none !important;
|
71 |
+
box-shadow: 0 3px 0 #a7b994;*/
|
72 |
+
}
|
73 |
+
.wantispam-modal .swal2-actions button.swal2-styled:focus,
|
74 |
+
.wantispam-modal .swal2-actions button.swal2-styled:hover {
|
75 |
+
outline: none;
|
76 |
+
text-shadow: none;
|
77 |
+
color: #FFF;
|
78 |
+
}
|
79 |
+
/*# sourceMappingURL=sweetalert-custom.css.map */
|
admin/assets/css/sweetalert-custom.css.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["sweetalert-custom.less"],"names":[],"mappings":";AACA,IAAI,6BAA8B,iBAAgB;EAChD,iCAAA;EACA,eAAA;;AAGF;EACE,qBAAA;;AADF,gBAGE;EACE,yBAAA;;AAJJ,gBAOE;EACE,kBAAA;;AARJ,gBAWE;EACE,mBAAA;;AAZJ,gBAeE;EACE,SAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;;AArBJ,gBAwBE;EACE,eAAA;EACA,UAAA;EACA,mBAAA;;AA3BJ,gBA8BE;EACE,aAAA;EACA,aAAA;EACA,mBAAA;;AAjCJ,gBA8BE,eAKE,EAAC,OAAQ;EACP,kBAAA;EACA,oBAAA;;AArCN,gBA8BE,eAUE,OAAM;EACJ,8BAAA;EACA,uBAAA;EACA,qBAAA;EACA,2BAAA;;AA5CN,gBA8BE,eAiBE,OAAM;EACJ,YAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;EACA,kBAAA;EACA,iBAAA;EACA,aAAA;;AAEA,gBA5BJ,eAiBE,OAAM,aAWH;EACC,yBAAA;EACA,4BAAA;EACA,2BAAA;EACA,cAAA;;AAGF,gBAnCJ,eAiBE,OAAM,aAkBH;EACC,yBAAA;EACA,cAAA;EACA,4BAAA;EACA,2BAAA;;;;;;AAOF,gBA9CJ,eAiBE,OAAM,aA6BH;AAAQ,gBA9Cb,eAiBE,OAAM,aA6BM;EACR,aAAA;EACA,iBAAA;EACA,WAAA","file":"sweetalert-custom.css"}
|
admin/assets/css/sweetalert-custom.less
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Sub Layerr */
|
2 |
+
body[class*="_license-wantispam"] .swal2-container.swal2-shown {
|
3 |
+
background: rgba(16, 17, 21, 0.9);
|
4 |
+
z-index: 100000;
|
5 |
+
}
|
6 |
+
|
7 |
+
.wantispam-modal {
|
8 |
+
padding: 0 !important;
|
9 |
+
|
10 |
+
.swal2-close {
|
11 |
+
color: rgba(0, 0, 0, .8);
|
12 |
+
}
|
13 |
+
|
14 |
+
.swal2-modal {
|
15 |
+
border-radius: 2px;
|
16 |
+
}
|
17 |
+
|
18 |
+
.swal2-icon {
|
19 |
+
margin-bottom: 25px;
|
20 |
+
}
|
21 |
+
|
22 |
+
.swal2-title {
|
23 |
+
margin: 0;
|
24 |
+
padding: 15px 32px;
|
25 |
+
font-size: 20px;
|
26 |
+
text-align: left;
|
27 |
+
color: #fff !important;
|
28 |
+
background: #3e3e3e !important;
|
29 |
+
}
|
30 |
+
|
31 |
+
.swal2-content {
|
32 |
+
font-size: 16px;
|
33 |
+
padding: 0;
|
34 |
+
background: #efefef;
|
35 |
+
}
|
36 |
+
|
37 |
+
.swal2-actions {
|
38 |
+
margin-top: 0;
|
39 |
+
padding: 10px;
|
40 |
+
background: #F4F7F9;
|
41 |
+
|
42 |
+
a.button svg {
|
43 |
+
margin-right: 12px;
|
44 |
+
vertical-align: -2px;
|
45 |
+
}
|
46 |
+
|
47 |
+
button.loading {
|
48 |
+
border-radius: 100% !important;
|
49 |
+
height: 40px !important;
|
50 |
+
padding: 0 !important;
|
51 |
+
box-shadow: none !important;
|
52 |
+
}
|
53 |
+
|
54 |
+
button.swal2-styled {
|
55 |
+
height: auto;
|
56 |
+
padding: 12px 32px;
|
57 |
+
margin: 10px;
|
58 |
+
font-size: 14px;
|
59 |
+
letter-spacing: 1px;
|
60 |
+
text-transform: uppercase;
|
61 |
+
border-radius: 3px;
|
62 |
+
font-weight: bold;
|
63 |
+
outline: none;
|
64 |
+
|
65 |
+
&.swal2-confirm {
|
66 |
+
background-color: #fdd599 !important;
|
67 |
+
text-shadow: none !important;
|
68 |
+
box-shadow: 0 3px 0 #ceac7a !important;
|
69 |
+
color: #a57b3c !important;
|
70 |
+
}
|
71 |
+
|
72 |
+
&.swal2-cancel {
|
73 |
+
background-color: #d2d2d2 !important;
|
74 |
+
color: #656464 !important;
|
75 |
+
text-shadow: none !important;
|
76 |
+
box-shadow: 0 3px 0 #a9a9a9;
|
77 |
+
/*background-color: #c9deb2 !important;
|
78 |
+
color: #606956 !important;
|
79 |
+
text-shadow: none !important;
|
80 |
+
box-shadow: 0 3px 0 #a7b994;*/
|
81 |
+
}
|
82 |
+
|
83 |
+
&:focus, &:hover {
|
84 |
+
outline: none;
|
85 |
+
text-shadow: none;
|
86 |
+
color: #FFF;
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
}
|
admin/assets/img/about-preview.jpg
DELETED
Binary file
|
admin/assets/js/libs/sweetalert3.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Sweetalert2=e()}(this,function(){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function a(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function c(){return(c=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function s(t){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function l(t,e,n){return(l=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,n){var o=[null];o.push.apply(o,e);var i=new(Function.bind.apply(t,o));return n&&u(i,n.prototype),i}).apply(null,arguments)}function d(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function p(t,e,n){return(p="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var o=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=s(t)););return t}(t,e);if(o){var i=Object.getOwnPropertyDescriptor(o,e);return i.get?i.get.call(n):i.value}})(t,e,n||t)}function f(e){return Object.keys(e).map(function(t){return e[t]})}function m(t){return Array.prototype.slice.call(t)}function h(t){console.error("".concat(N," ").concat(t))}function g(t,e){!function(t){-1===U.indexOf(t)&&(U.push(t),D(t))}('"'.concat(t,'" is deprecated and will be removed in the next major release. Please use "').concat(e,'" instead.'))}function v(t){return t&&Promise.resolve(t)===t}function b(t){return t instanceof Element||function(t){return"object"===r(t)&&t.jquery}(t)}function t(t){var e={};for(var n in t)e[t[n]]="swal2-"+t[n];return e}function y(){return document.body.querySelector(".".concat(z.container))}function w(t){var e=y();return e?e.querySelector(t):null}function e(t){return w(".".concat(t))}function C(){return e(z.popup)}function n(){var t=C();return m(t.querySelectorAll(".".concat(z.icon)))}function k(){var t=n().filter(function(t){return dt(t)});return t.length?t[0]:null}function x(){return e(z.title)}function A(){return e(z.content)}function P(){return e(z.image)}function B(){return e(z["progress-steps"])}function E(){return e(z["validation-message"])}function S(){return w(".".concat(z.actions," .").concat(z.confirm))}function T(){return w(".".concat(z.actions," .").concat(z.cancel))}function L(){return e(z.actions)}function O(){return e(z.header)}function M(){return e(z.footer)}function H(){return e(z["timer-progress-bar"])}function j(){return e(z.close)}function V(){var t=m(C().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(function(t,e){return t=parseInt(t.getAttribute("tabindex")),(e=parseInt(e.getAttribute("tabindex")))<t?1:t<e?-1:0}),e=m(C().querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n')).filter(function(t){return"-1"!==t.getAttribute("tabindex")});return function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(t.concat(e)).filter(function(t){return dt(t)})}function I(){return!K()&&!document.body.classList.contains(z["no-backdrop"])}function q(t,e){if(!e)return!1;for(var n=e.split(/\s+/),o=0;o<n.length;o++)if(!t.classList.contains(n[o]))return!1;return!0}function R(t,e,n){if(!function(e,n){m(e.classList).forEach(function(t){-1===f(z).indexOf(t)&&-1===f(W).indexOf(t)&&-1===f(n.showClass).indexOf(t)&&e.classList.remove(t)})}(t,e),e.customClass&&e.customClass[n]){if("string"!=typeof e.customClass[n]&&!e.customClass[n].forEach)return D("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(r(e.customClass[n]),'"'));st(t,e.customClass[n])}}var N="SweetAlert2:",D=function(t){console.warn("".concat(N," ").concat(t))},U=[],F=function(t){return"function"==typeof t?t():t},_=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),z=t(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","toast","toast-shown","toast-column","show","hide","close","title","header","content","html-container","actions","confirm","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),W=t(["success","warning","info","question","error"]),K=function(){return document.body.classList.contains(z["toast-shown"])},Y={previousBodyPadding:null};function Z(t,e){if(!e)return null;switch(e){case"select":case"textarea":case"file":return lt(t,z[e]);case"checkbox":return t.querySelector(".".concat(z.checkbox," input"));case"radio":return t.querySelector(".".concat(z.radio," input:checked"))||t.querySelector(".".concat(z.radio," input:first-child"));case"range":return t.querySelector(".".concat(z.range," input"));default:return lt(t,z.input)}}function Q(t){if(t.focus(),"file"!==t.type){var e=t.value;t.value="",t.value=e}}function $(t,e,n){t&&e&&("string"==typeof e&&(e=e.split(/\s+/).filter(Boolean)),e.forEach(function(e){t.forEach?t.forEach(function(t){n?t.classList.add(e):t.classList.remove(e)}):n?t.classList.add(e):t.classList.remove(e)}))}function J(t,e,n){n||0===parseInt(n)?t.style[e]="number"==typeof n?"".concat(n,"px"):n:t.style.removeProperty(e)}function X(t,e){var n=1<arguments.length&&void 0!==e?e:"flex";t.style.opacity="",t.style.display=n}function G(t){t.style.opacity="",t.style.display="none"}function tt(t,e,n){e?X(t,n):G(t)}function et(t){var e=window.getComputedStyle(t),n=parseFloat(e.getPropertyValue("animation-duration")||"0"),o=parseFloat(e.getPropertyValue("transition-duration")||"0");return 0<n||0<o}function nt(t,e){var n=1<arguments.length&&void 0!==e&&e,o=H();dt(o)&&(n&&(o.style.transition="none",o.style.width="100%"),setTimeout(function(){o.style.transition="width ".concat(t/1e3,"s linear"),o.style.width="0%"},10))}function ot(){return"undefined"==typeof window||"undefined"==typeof document}function it(t){Je.isVisible()&&ct!==t.target.value&&Je.resetValidationMessage(),ct=t.target.value}function rt(t,e){t instanceof HTMLElement?e.appendChild(t):"object"===r(t)?mt(e,t):t&&(e.innerHTML=t)}function at(t,e){var n=L(),o=S(),i=T();e.showConfirmButton||e.showCancelButton||G(n),R(n,e,"actions"),gt(o,"confirm",e),gt(i,"cancel",e),e.buttonsStyling?function(t,e,n){st([t,e],z.styled),n.confirmButtonColor&&(t.style.backgroundColor=n.confirmButtonColor);n.cancelButtonColor&&(e.style.backgroundColor=n.cancelButtonColor);var o=window.getComputedStyle(t).getPropertyValue("background-color");t.style.borderLeftColor=o,t.style.borderRightColor=o}(o,i,e):(ut([o,i],z.styled),o.style.backgroundColor=o.style.borderLeftColor=o.style.borderRightColor="",i.style.backgroundColor=i.style.borderLeftColor=i.style.borderRightColor=""),e.reverseButtons&&o.parentNode.insertBefore(i,o)}var ct,st=function(t,e){$(t,e,!0)},ut=function(t,e){$(t,e,!1)},lt=function(t,e){for(var n=0;n<t.childNodes.length;n++)if(q(t.childNodes[n],e))return t.childNodes[n]},dt=function(t){return!(!t||!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))},pt='\n <div aria-labelledby="'.concat(z.title,'" aria-describedby="').concat(z.content,'" class="').concat(z.popup,'" tabindex="-1">\n <div class="').concat(z.header,'">\n <ul class="').concat(z["progress-steps"],'"></ul>\n <div class="').concat(z.icon," ").concat(W.error,'"></div>\n <div class="').concat(z.icon," ").concat(W.question,'"></div>\n <div class="').concat(z.icon," ").concat(W.warning,'"></div>\n <div class="').concat(z.icon," ").concat(W.info,'"></div>\n <div class="').concat(z.icon," ").concat(W.success,'"></div>\n <img class="').concat(z.image,'" />\n <h2 class="').concat(z.title,'" id="').concat(z.title,'"></h2>\n <button type="button" class="').concat(z.close,'"></button>\n </div>\n <div class="').concat(z.content,'">\n <div id="').concat(z.content,'" class="').concat(z["html-container"],'"></div>\n <input class="').concat(z.input,'" />\n <input type="file" class="').concat(z.file,'" />\n <div class="').concat(z.range,'">\n <input type="range" />\n <output></output>\n </div>\n <select class="').concat(z.select,'"></select>\n <div class="').concat(z.radio,'"></div>\n <label for="').concat(z.checkbox,'" class="').concat(z.checkbox,'">\n <input type="checkbox" />\n <span class="').concat(z.label,'"></span>\n </label>\n <textarea class="').concat(z.textarea,'"></textarea>\n <div class="').concat(z["validation-message"],'" id="').concat(z["validation-message"],'"></div>\n </div>\n <div class="').concat(z.actions,'">\n <button type="button" class="').concat(z.confirm,'">OK</button>\n <button type="button" class="').concat(z.cancel,'">Cancel</button>\n </div>\n <div class="').concat(z.footer,'"></div>\n <div class="').concat(z["timer-progress-bar"],'"></div>\n </div>\n').replace(/(^|\n)\s*/g,""),ft=function(t){if(!function(){var t=y();t&&(t.parentNode.removeChild(t),ut([document.documentElement,document.body],[z["no-backdrop"],z["toast-shown"],z["has-column"]]))}(),ot())h("SweetAlert2 requires document to initialize");else{var e=document.createElement("div");e.className=z.container,e.innerHTML=pt;var n=function(t){return"string"==typeof t?document.querySelector(t):t}(t.target);n.appendChild(e),function(t){var e=C();e.setAttribute("role",t.toast?"alert":"dialog"),e.setAttribute("aria-live",t.toast?"polite":"assertive"),t.toast||e.setAttribute("aria-modal","true")}(t),function(t){"rtl"===window.getComputedStyle(t).direction&&st(y(),z.rtl)}(n),function(){var t=A(),e=lt(t,z.input),n=lt(t,z.file),o=t.querySelector(".".concat(z.range," input")),i=t.querySelector(".".concat(z.range," output")),r=lt(t,z.select),a=t.querySelector(".".concat(z.checkbox," input")),c=lt(t,z.textarea);e.oninput=it,n.onchange=it,r.onchange=it,a.onchange=it,c.oninput=it,o.oninput=function(t){it(t),i.value=o.value},o.onchange=function(t){it(t),o.nextSibling.value=o.value}}()}},mt=function(t,e){if(t.innerHTML="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},ht=function(){if(ot())return!1;var t=document.createElement("div"),e={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&void 0!==t.style[n])return e[n];return!1}();function gt(t,e,n){tt(t,n["show".concat(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}(e),"Button")],"inline-block"),t.innerHTML=n["".concat(e,"ButtonText")],t.setAttribute("aria-label",n["".concat(e,"ButtonAriaLabel")]),t.className=z[e],R(t,n,"".concat(e,"Button")),st(t,n["".concat(e,"ButtonClass")])}function vt(t,e){var n=y();if(n){!function(t,e){"string"==typeof e?t.style.background=e:e||st([document.documentElement,document.body],z["no-backdrop"])}(n,e.backdrop),!e.backdrop&&e.allowOutsideClick&&D('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),function(t,e){e in z?st(t,z[e]):(D('The "position" parameter is not valid, defaulting to "center"'),st(t,z.center))}(n,e.position),function(t,e){if(e&&"string"==typeof e){var n="grow-".concat(e);n in z&&st(t,z[n])}}(n,e.grow),R(n,e,"container");var o=document.body.getAttribute("data-swal2-queue-step");o&&(n.setAttribute("data-queue-step",o),document.body.removeAttribute("data-swal2-queue-step"))}}function bt(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)}var yt={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},wt=["input","file","range","select","radio","checkbox","textarea"],Ct=function(t){if(!Pt[t.input])return h('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=At(t.input),n=Pt[t.input](e,t);X(n),setTimeout(function(){Q(n)})},kt=function(t,e){var n=Z(A(),t);if(n)for(var o in!function(t){for(var e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;-1===["type","value","style"].indexOf(n)&&t.removeAttribute(n)}}(n),e)"range"===t&&"placeholder"===o||n.setAttribute(o,e[o])},xt=function(t){var e=At(t.input);t.customClass&&st(e,t.customClass.input)},At=function(t){var e=z[t]?z[t]:z.input;return lt(A(),e)},Pt={};Pt.text=Pt.email=Pt.password=Pt.number=Pt.tel=Pt.url=function(t,e){return"string"==typeof e.inputValue||"number"==typeof e.inputValue?t.value=e.inputValue:v(e.inputValue)||D('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(r(e.inputValue),'"')),bt(t,e),t.type=e.input,t},Pt.file=function(t,e){return bt(t,e),t},Pt.range=function(t,e){var n=t.querySelector("input"),o=t.querySelector("output");return n.value=e.inputValue,n.type=e.input,o.value=e.inputValue,t},Pt.select=function(t,e){if(t.innerHTML="",e.inputPlaceholder){var n=document.createElement("option");n.innerHTML=e.inputPlaceholder,n.value="",n.disabled=!0,n.selected=!0,t.appendChild(n)}return t},Pt.radio=function(t){return t.innerHTML="",t},Pt.checkbox=function(t,e){var n=Z(A(),"checkbox");return n.value=1,n.id=z.checkbox,n.checked=Boolean(e.inputValue),t.querySelector("span").innerHTML=e.inputPlaceholder,t},Pt.textarea=function(e,t){if(e.value=t.inputValue,bt(e,t),"MutationObserver"in window){var n=parseInt(window.getComputedStyle(C()).width),o=parseInt(window.getComputedStyle(C()).paddingLeft)+parseInt(window.getComputedStyle(C()).paddingRight);new MutationObserver(function(){var t=e.offsetWidth+o;C().style.width=n<t?"".concat(t,"px"):null}).observe(e,{attributes:!0,attributeFilter:["style"]})}return e};function Bt(t,e){var n=A().querySelector("#".concat(z.content));e.html?(rt(e.html,n),X(n,"block")):e.text?(n.textContent=e.text,X(n,"block")):G(n),function(t,o){var i=A(),e=yt.innerParams.get(t),r=!e||o.input!==e.input;wt.forEach(function(t){var e=z[t],n=lt(i,e);kt(t,o.inputAttributes),n.className=e,r&&G(n)}),o.input&&(r&&Ct(o),xt(o))}(t,e),R(A(),e,"content")}function Et(){return y().getAttribute("data-queue-step")}function St(t,i){var r=B();if(!i.progressSteps||0===i.progressSteps.length)return G(r);X(r),r.innerHTML="";var a=parseInt(void 0===i.currentProgressStep?Et():i.currentProgressStep);a>=i.progressSteps.length&&D("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),i.progressSteps.forEach(function(t,e){var n=function(t){var e=document.createElement("li");return st(e,z["progress-step"]),e.innerHTML=t,e}(t);if(r.appendChild(n),e===a&&st(n,z["active-progress-step"]),e!==i.progressSteps.length-1){var o=function(t){var e=document.createElement("li");return st(e,z["progress-step-line"]),t.progressStepsDistance&&(e.style.width=t.progressStepsDistance),e}(t);r.appendChild(o)}})}function Tt(t,e){var n=O();R(n,e,"header"),St(0,e),function(t,e){var n=yt.innerParams.get(t);if(n&&e.icon===n.icon&&k())R(k(),e,"icon");else if(Mt(),e.icon)if(-1!==Object.keys(W).indexOf(e.icon)){var o=w(".".concat(z.icon,".").concat(W[e.icon]));X(o),jt(o,e),Ht(),R(o,e,"icon"),st(o,e.showClass.icon)}else h('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(e.icon,'"'))}(t,e),function(t,e){var n=P();if(!e.imageUrl)return G(n);X(n),n.setAttribute("src",e.imageUrl),n.setAttribute("alt",e.imageAlt),J(n,"width",e.imageWidth),J(n,"height",e.imageHeight),n.className=z.image,R(n,e,"image")}(0,e),function(t,e){var n=x();tt(n,e.title||e.titleText),e.title&&rt(e.title,n),e.titleText&&(n.innerText=e.titleText),R(n,e,"title")}(0,e),function(t,e){var n=j();n.innerHTML=e.closeButtonHtml,R(n,e,"closeButton"),tt(n,e.showCloseButton),n.setAttribute("aria-label",e.closeButtonAriaLabel)}(0,e)}function Lt(t,e){!function(t,e){var n=C();J(n,"width",e.width),J(n,"padding",e.padding),e.background&&(n.style.background=e.background),qt(n,e)}(0,e),vt(0,e),Tt(t,e),Bt(t,e),at(0,e),function(t,e){var n=M();tt(n,e.footer),e.footer&&rt(e.footer,n),R(n,e,"footer")}(0,e),"function"==typeof e.onRender&&e.onRender(C())}function Ot(){return S()&&S().click()}var Mt=function(){for(var t=n(),e=0;e<t.length;e++)G(t[e])},Ht=function(){for(var t=C(),e=window.getComputedStyle(t).getPropertyValue("background-color"),n=t.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"),o=0;o<n.length;o++)n[o].style.backgroundColor=e},jt=function(t,e){if(t.innerHTML="",e.iconHtml)t.innerHTML=Vt(e.iconHtml);else if("success"===e.icon)t.innerHTML='\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n ';else if("error"===e.icon)t.innerHTML='\n <span class="swal2-x-mark">\n <span class="swal2-x-mark-line-left"></span>\n <span class="swal2-x-mark-line-right"></span>\n </span>\n ';else{t.innerHTML=Vt({question:"?",warning:"!",info:"i"}[e.icon])}},Vt=function(t){return'<div class="'.concat(z["icon-content"],'">').concat(t,"</div>")},It=[],qt=function(t,e){t.className="".concat(z.popup," ").concat(dt(t)?e.showClass.popup:""),e.toast?(st([document.documentElement,document.body],z["toast-shown"]),st(t,z.toast)):st(t,z.modal),R(t,e,"popup"),"string"==typeof e.customClass&&st(t,e.customClass),e.icon&&st(t,z["icon-".concat(e.icon)])};function Rt(){var t=C();t||Je.fire(),t=C();var e=L(),n=S();X(e),X(n,"inline-block"),st([t,e],z.loading),n.disabled=!0,t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()}function Nt(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;zt.restoreFocusTimeout=setTimeout(function(){zt.previousActiveElement&&zt.previousActiveElement.focus?(zt.previousActiveElement.focus(),zt.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})}function Dt(){if(zt.timeout)return function(){var t=H(),e=parseInt(window.getComputedStyle(t).width);t.style.removeProperty("transition"),t.style.width="100%";var n=parseInt(window.getComputedStyle(t).width),o=parseInt(e/n*100);t.style.removeProperty("transition"),t.style.width="".concat(o,"%")}(),zt.timeout.stop()}function Ut(){if(zt.timeout){var t=zt.timeout.start();return nt(t),t}}function Ft(t){return Object.prototype.hasOwnProperty.call(Wt,t)}function _t(t){return Yt[t]}var zt={},Wt={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconHtml:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:void 0,target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showCancelButton:!1,preConfirm:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",showLoaderOnConfirm:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,onBeforeOpen:void 0,onOpen:void 0,onRender:void 0,onClose:void 0,onAfterClose:void 0,scrollbarPadding:!0},Kt=["title","titleText","text","html","icon","customClass","showConfirmButton","showCancelButton","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","buttonsStyling","reverseButtons","imageUrl","imageWidth","imageHeight","imageAlt","progressSteps","currentProgressStep"],Yt={animation:'showClass" and "hideClass'},Zt=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusCancel","heightAuto","keydownListenerCapture"],Qt=Object.freeze({isValidParameter:Ft,isUpdatableParameter:function(t){return-1!==Kt.indexOf(t)},isDeprecatedParameter:_t,argsToParams:function(o){var i={};return"object"!==r(o[0])||b(o[0])?["title","html","icon"].forEach(function(t,e){var n=o[e];"string"==typeof n||b(n)?i[t]=n:void 0!==n&&h("Unexpected type of ".concat(t,'! Expected "string" or "Element", got ').concat(r(n)))}):c(i,o[0]),i},isVisible:function(){return dt(C())},clickConfirm:Ot,clickCancel:function(){return T()&&T().click()},getContainer:y,getPopup:C,getTitle:x,getContent:A,getHtmlContainer:function(){return e(z["html-container"])},getImage:P,getIcon:k,getIcons:n,getCloseButton:j,getActions:L,getConfirmButton:S,getCancelButton:T,getHeader:O,getFooter:M,getFocusableElements:V,getValidationMessage:E,isLoading:function(){return C().hasAttribute("data-loading")},fire:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return l(this,e)},mixin:function(n){return function(t){function e(){return o(this,e),d(this,s(e).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)}(e,t),a(e,[{key:"_main",value:function(t){return p(s(e.prototype),"_main",this).call(this,c({},n,t))}}]),e}(this)},queue:function(t){var r=this;It=t;function a(t,e){It=[],t(e)}var c=[];return new Promise(function(i){!function e(n,o){n<It.length?(document.body.setAttribute("data-swal2-queue-step",n),r.fire(It[n]).then(function(t){void 0!==t.value?(c.push(t.value),e(n+1,o)):a(i,{dismiss:t.dismiss})})):a(i,{value:c})}(0)})},getQueueStep:Et,insertQueueStep:function(t,e){return e&&e<It.length?It.splice(e,0,t):It.push(t)},deleteQueueStep:function(t){void 0!==It[t]&&It.splice(t,1)},showLoading:Rt,enableLoading:Rt,getTimerLeft:function(){return zt.timeout&&zt.timeout.getTimerLeft()},stopTimer:Dt,resumeTimer:Ut,toggleTimer:function(){var t=zt.timeout;return t&&(t.running?Dt():Ut())},increaseTimer:function(t){if(zt.timeout){var e=zt.timeout.increase(t);return nt(e,!0),e}},isTimerRunning:function(){return zt.timeout&&zt.timeout.isRunning()}});function $t(){var t=yt.innerParams.get(this);if(t){var e=yt.domCache.get(this);t.showConfirmButton||(G(e.confirmButton),t.showCancelButton||G(e.actions)),ut([e.popup,e.actions],z.loading),e.popup.removeAttribute("aria-busy"),e.popup.removeAttribute("data-loading"),e.confirmButton.disabled=!1,e.cancelButton.disabled=!1}}function Jt(){null===Y.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(Y.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(Y.previousBodyPadding+function(){var t=document.createElement("div");t.className=z["scrollbar-measure"],document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}(),"px"))}function Xt(){return!!window.MSInputMethodContext&&!!document.documentMode}function Gt(){var t=y(),e=C();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")}var te=function(){var e,n=y();n.ontouchstart=function(t){e=t.target===n||!function(t){return!!(t.scrollHeight>t.clientHeight)}(n)&&"INPUT"!==t.target.tagName},n.ontouchmove=function(t){e&&(t.preventDefault(),t.stopPropagation())}},ee={swalPromiseResolve:new WeakMap};function ne(t,e,n,o){n?ae(t,o):(Nt().then(function(){return ae(t,o)}),zt.keydownTarget.removeEventListener("keydown",zt.keydownHandler,{capture:zt.keydownListenerCapture}),zt.keydownHandlerAdded=!1),e.parentNode&&e.parentNode.removeChild(e),I()&&(null!==Y.previousBodyPadding&&(document.body.style.paddingRight="".concat(Y.previousBodyPadding,"px"),Y.previousBodyPadding=null),function(){if(q(document.body,z.iosfix)){var t=parseInt(document.body.style.top,10);ut(document.body,z.iosfix),document.body.style.top="",document.body.scrollTop=-1*t}}(),"undefined"!=typeof window&&Xt()&&window.removeEventListener("resize",Gt),m(document.body.children).forEach(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")})),ut([document.documentElement,document.body],[z.shown,z["height-auto"],z["no-backdrop"],z["toast-shown"],z["toast-column"]])}function oe(t){var e=C();if(e){var n=yt.innerParams.get(this);if(n&&!q(e,n.hideClass.popup)){var o=ee.swalPromiseResolve.get(this);ut(e,n.showClass.popup),st(e,n.hideClass.popup);var i=y();ut(i,n.showClass.backdrop),st(i,n.hideClass.backdrop),function(t,e,n){var o=y(),i=ht&&et(e),r=n.onClose,a=n.onAfterClose;if(r!==null&&typeof r==="function"){r(e)}if(i){re(t,e,o,a)}else{ne(t,o,K(),a)}}(this,e,n),o(t||{})}}}function ie(t){for(var e in t)t[e]=new WeakMap}var re=function(t,e,n,o){zt.swalCloseEventFinishedCallback=ne.bind(null,t,n,K(),o),e.addEventListener(ht,function(t){t.target===e&&(zt.swalCloseEventFinishedCallback(),delete zt.swalCloseEventFinishedCallback)})},ae=function(t,e){setTimeout(function(){null!==e&&"function"==typeof e&&e(),C()||function(t){delete t.params,delete zt.keydownHandler,delete zt.keydownTarget,ie(yt),ie(ee)}(t)})};function ce(t,e,n){var o=yt.domCache.get(t);e.forEach(function(t){o[t].disabled=n})}function se(t,e){if(!t)return!1;if("radio"===t.type)for(var n=t.parentNode.parentNode.querySelectorAll("input"),o=0;o<n.length;o++)n[o].disabled=e;else t.disabled=e}var ue=function(){function n(t,e){o(this,n),this.callback=t,this.remaining=e,this.running=!1,this.start()}return a(n,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date-this.started),this.remaining}},{key:"increase",value:function(t){var e=this.running;return e&&this.stop(),this.remaining+=t,e&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}]),n}(),le={email:function(t,e){return/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid email address")},url:function(t,e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid URL")}};function de(t){!function(e){e.inputValidator||Object.keys(le).forEach(function(t){e.input===t&&(e.inputValidator=le[t])})}(t),t.showLoaderOnConfirm&&!t.preConfirm&&D("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),t.animation=F(t.animation),function(t){t.target&&("string"!=typeof t.target||document.querySelector(t.target))&&("string"==typeof t.target||t.target.appendChild)||(D('Target parameter is not valid, defaulting to "body"'),t.target="body")}(t),"string"==typeof t.title&&(t.title=t.title.split("\n").join("<br />")),ft(t)}function pe(t,e){t.removeEventListener(ht,pe),e.style.overflowY="auto"}function fe(t){var e=y(),n=C();"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n),xe(e,n,t),Ce(e,n),I()&&ke(e,t.scrollbarPadding),K()||zt.previousActiveElement||(zt.previousActiveElement=document.activeElement),"function"==typeof t.onOpen&&setTimeout(function(){return t.onOpen(n)})}function me(t,e){"select"===e.input||"radio"===e.input?Ee(t,e):-1!==["text","email","number","tel","textarea"].indexOf(e.input)&&v(e.inputValue)&&Se(t,e)}function he(t,e){t.disableButtons(),e.input?Oe(t,e):Me(t,e,!0)}function ge(t,e){t.disableButtons(),e(_.cancel)}function ve(t,e){t.closePopup({value:e})}function be(e,t,n,o){t.keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1),n.toast||(t.keydownHandler=function(t){return Ve(e,t,n,o)},t.keydownTarget=n.keydownListenerCapture?window:C(),t.keydownListenerCapture=n.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)}function ye(t,e,n){for(var o=V(),i=0;i<o.length;i++)return(e+=n)===o.length?e=0:-1===e&&(e=o.length-1),o[e].focus();C().focus()}function we(t,e,n){e.toast?De(t,e,n):(Fe(t),_e(t),ze(t,e,n))}var Ce=function(e,n){ht&&et(n)?(e.style.overflowY="hidden",n.addEventListener(ht,function(t){t.target===n&&pe.bind(null,n,e)})):e.style.overflowY="auto"},ke=function(t,e){!function(){if((/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!q(document.body,z.iosfix)){var t=document.body.scrollTop;document.body.style.top="".concat(-1*t,"px"),st(document.body,z.iosfix),te()}}(),"undefined"!=typeof window&&Xt()&&(Gt(),window.addEventListener("resize",Gt)),m(document.body.children).forEach(function(t){t===y()||function(t,e){if("function"==typeof t.contains)return t.contains(e)}(t,y())||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")),t.setAttribute("aria-hidden","true"))}),e&&Jt(),setTimeout(function(){t.scrollTop=0})},xe=function(t,e,n){st(t,n.showClass.backdrop),X(e),st(e,n.showClass.popup),st([document.documentElement,document.body],z.shown),n.heightAuto&&n.backdrop&&!n.toast&&st([document.documentElement,document.body],z["height-auto"])},Ae=function(t){return t.checked?1:0},Pe=function(t){return t.checked?t.value:null},Be=function(t){return t.files.length?null!==t.getAttribute("multiple")?t.files:t.files[0]:null},Ee=function(e,n){function o(t){return Te[n.input](i,Le(t),n)}var i=A();v(n.inputOptions)?(Rt(),n.inputOptions.then(function(t){e.hideLoading(),o(t)})):"object"===r(n.inputOptions)?o(n.inputOptions):h("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(r(n.inputOptions)))},Se=function(e,n){var o=e.getInput();G(o),n.inputValue.then(function(t){o.value="number"===n.input?parseFloat(t)||0:"".concat(t),X(o),o.focus(),e.hideLoading()}).catch(function(t){h("Error in inputValue promise: ".concat(t)),o.value="",X(o),o.focus(),e.hideLoading()})},Te={select:function(t,e,i){var r=lt(t,z.select);e.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("option");o.value=e,o.innerHTML=n,i.inputValue.toString()===e.toString()&&(o.selected=!0),r.appendChild(o)}),r.focus()},radio:function(t,e,a){var c=lt(t,z.radio);e.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("input"),i=document.createElement("label");o.type="radio",o.name=z.radio,o.value=e,a.inputValue.toString()===e.toString()&&(o.checked=!0);var r=document.createElement("span");r.innerHTML=n,r.className=z.label,i.appendChild(o),i.appendChild(r),c.appendChild(i)});var n=c.querySelectorAll("input");n.length&&n[0].focus()}},Le=function(e){var n=[];return"undefined"!=typeof Map&&e instanceof Map?e.forEach(function(t,e){n.push([e,t])}):Object.keys(e).forEach(function(t){n.push([t,e[t]])}),n},Oe=function(e,n){var o=function(t,e){var n=t.getInput();if(!n)return null;switch(e.input){case"checkbox":return Ae(n);case"radio":return Pe(n);case"file":return Be(n);default:return e.inputAutoTrim?n.value.trim():n.value}}(e,n);n.inputValidator?(e.disableInput(),Promise.resolve().then(function(){return n.inputValidator(o,n.validationMessage)}).then(function(t){e.enableButtons(),e.enableInput(),t?e.showValidationMessage(t):Me(e,n,o)})):e.getInput().checkValidity()?Me(e,n,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},Me=function(e,t,n){(t.showLoaderOnConfirm&&Rt(),t.preConfirm)?(e.resetValidationMessage(),Promise.resolve().then(function(){return t.preConfirm(n,t.validationMessage)}).then(function(t){dt(E())||!1===t?e.hideLoading():ve(e,void 0===t?n:t)})):ve(e,n)},He=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Left","Right","Up","Down"],je=["Escape","Esc"],Ve=function(t,e,n,o){n.stopKeydownPropagation&&e.stopPropagation(),"Enter"===e.key?Ie(t,e,n):"Tab"===e.key?qe(e,n):-1!==He.indexOf(e.key)?Re():-1!==je.indexOf(e.key)&&Ne(e,n,o)},Ie=function(t,e,n){if(!e.isComposing&&e.target&&t.getInput()&&e.target.outerHTML===t.getInput().outerHTML){if(-1!==["textarea","file"].indexOf(n.input))return;Ot(),e.preventDefault()}},qe=function(t){for(var e=t.target,n=V(),o=-1,i=0;i<n.length;i++)if(e===n[i]){o=i;break}t.shiftKey?ye(0,o,-1):ye(0,o,1),t.stopPropagation(),t.preventDefault()},Re=function(){var t=S(),e=T();document.activeElement===t&&dt(e)?e.focus():document.activeElement===e&&dt(t)&&t.focus()},Ne=function(t,e,n){F(e.allowEscapeKey)&&(t.preventDefault(),n(_.esc))},De=function(t,e,n){t.popup.onclick=function(){e.showConfirmButton||e.showCancelButton||e.showCloseButton||e.input||n(_.close)}},Ue=!1,Fe=function(e){e.popup.onmousedown=function(){e.container.onmouseup=function(t){e.container.onmouseup=void 0,t.target===e.container&&(Ue=!0)}}},_e=function(e){e.container.onmousedown=function(){e.popup.onmouseup=function(t){e.popup.onmouseup=void 0,t.target!==e.popup&&!e.popup.contains(t.target)||(Ue=!0)}}},ze=function(e,n,o){e.container.onclick=function(t){Ue?Ue=!1:t.target===e.container&&F(n.allowOutsideClick)&&o(_.backdrop)}};var We=function(t,e,n){var o=H();G(o),e.timer&&(t.timeout=new ue(function(){n("timer"),delete t.timeout},e.timer),e.timerProgressBar&&(X(o),setTimeout(function(){nt(e.timer)})))},Ke=function(t,e){if(!e.toast)return F(e.allowEnterKey)?e.focusCancel&&dt(t.cancelButton)?t.cancelButton.focus():e.focusConfirm&&dt(t.confirmButton)?t.confirmButton.focus():void ye(0,-1,1):Ye()},Ye=function(){document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};var Ze,Qe=Object.freeze({hideLoading:$t,disableLoading:$t,getInput:function(t){var e=yt.innerParams.get(t||this),n=yt.domCache.get(t||this);return n?Z(n.content,e.input):null},close:oe,closePopup:oe,closeModal:oe,closeToast:oe,enableButtons:function(){ce(this,["confirmButton","cancelButton"],!1)},disableButtons:function(){ce(this,["confirmButton","cancelButton"],!0)},enableInput:function(){return se(this.getInput(),!1)},disableInput:function(){return se(this.getInput(),!0)},showValidationMessage:function(t){var e=yt.domCache.get(this);e.validationMessage.innerHTML=t;var n=window.getComputedStyle(e.popup);e.validationMessage.style.marginLeft="-".concat(n.getPropertyValue("padding-left")),e.validationMessage.style.marginRight="-".concat(n.getPropertyValue("padding-right")),X(e.validationMessage);var o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedBy",z["validation-message"]),Q(o),st(o,z.inputerror))},resetValidationMessage:function(){var t=yt.domCache.get(this);t.validationMessage&&G(t.validationMessage);var e=this.getInput();e&&(e.removeAttribute("aria-invalid"),e.removeAttribute("aria-describedBy"),ut(e,z.inputerror))},getProgressSteps:function(){return yt.domCache.get(this).progressSteps},_main:function(t){!function(t){for(var e in t)Ft(i=e)||D('Unknown parameter "'.concat(i,'"')),t.toast&&(o=e,-1!==Zt.indexOf(o)&&D('The parameter "'.concat(o,'" is incompatible with toasts'))),_t(n=e)&&g(n,_t(n));var n,o,i}(t),C()&&zt.swalCloseEventFinishedCallback&&(zt.swalCloseEventFinishedCallback(),delete zt.swalCloseEventFinishedCallback),zt.deferDisposalTimer&&(clearTimeout(zt.deferDisposalTimer),delete zt.deferDisposalTimer);var e=function(t){var e=c({},Wt.showClass,t.showClass),n=c({},Wt.hideClass,t.hideClass),o=c({},Wt,t);if(o.showClass=e,o.hideClass=n,t.animation===false){o.showClass={popup:"",backdrop:"swal2-backdrop-show swal2-noanimation"};o.hideClass={}}return o}(t);de(e),Object.freeze(e),zt.timeout&&(zt.timeout.stop(),delete zt.timeout),clearTimeout(zt.restoreFocusTimeout);var n=function(t){var e={popup:C(),container:y(),content:A(),actions:L(),confirmButton:S(),cancelButton:T(),closeButton:j(),validationMessage:E(),progressSteps:B()};return yt.domCache.set(t,e),e}(this);return Lt(this,e),yt.innerParams.set(this,e),function(n,o,i){return new Promise(function(t){var e=function t(e){n.closePopup({dismiss:e})};ee.swalPromiseResolve.set(n,t);We(zt,i,e);o.confirmButton.onclick=function(){return he(n,i)};o.cancelButton.onclick=function(){return ge(n,e)};o.closeButton.onclick=function(){return e(_.close)};we(o,i,e);be(n,zt,i,e);if(i.toast&&(i.input||i.footer||i.showCloseButton)){st(document.body,z["toast-column"])}else{ut(document.body,z["toast-column"])}me(n,i);fe(i);Ke(o,i);o.container.scrollTop=0})}(this,n,e)},update:function(e){var t=C(),n=yt.innerParams.get(this);if(!t||q(t,n.hideClass.popup))return D("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");var o={};Object.keys(e).forEach(function(t){Je.isUpdatableParameter(t)?o[t]=e[t]:D('Invalid parameter to update: "'.concat(t,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js'))});var i=c({},n,o);Lt(this,i),yt.innerParams.set(this,i),Object.defineProperties(this,{params:{value:c({},this.params,e),writable:!1,enumerable:!0}})}});function $e(){if("undefined"!=typeof window){"undefined"==typeof Promise&&h("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"),Ze=this;for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var o=Object.freeze(this.constructor.argsToParams(e));Object.defineProperties(this,{params:{value:o,writable:!1,enumerable:!0,configurable:!0}});var i=this._main(this.params);yt.promise.set(this,i)}}$e.prototype.then=function(t){return yt.promise.get(this).then(t)},$e.prototype.finally=function(t){return yt.promise.get(this).finally(t)},c($e.prototype,Qe),c($e,Qt),Object.keys(Qe).forEach(function(e){$e[e]=function(){var t;if(Ze)return(t=Ze)[e].apply(t,arguments)}}),$e.DismissReason=_,$e.version="9.5.3";var Je=$e;return Je.default=Je}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2);
|
2 |
+
"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.swal2-popup.swal2-toast .swal2-title{-webkit-box-flex:1;flex-grow:1;-webkit-box-pack:start;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{-webkit-box-pack:start;justify-content:flex-start;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:2em 2em;transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;-webkit-transform-origin:0 1.5em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:-webkit-box;display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;padding:.625em;overflow-x:hidden;-webkit-transition:background-color .1s;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{-webkit-box-align:start;align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{-webkit-box-align:start;align-items:flex-start;-webkit-box-pack:end;justify-content:flex-end}.swal2-container.swal2-center{-webkit-box-align:center;align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{-webkit-box-align:center;align-items:center;-webkit-box-pack:start;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{-webkit-box-align:center;align-items:center;-webkit-box-pack:end;justify-content:flex-end}.swal2-container.swal2-bottom{-webkit-box-align:end;align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{-webkit-box-align:end;align-items:flex-end;-webkit-box-pack:start;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{-webkit-box-align:end;align-items:flex-end;-webkit-box-pack:end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:-webkit-box!important;display:flex!important;-webkit-box-flex:1;flex:1;align-self:stretch;-webkit-box-pack:center;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:-webkit-box!important;display:flex!important;-webkit-box-flex:1;flex:1;align-content:center;-webkit-box-pack:center;justify-content:center}.swal2-container.swal2-grow-column{-webkit-box-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{-webkit-box-align:center;align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{-webkit-box-align:start;align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{-webkit-box-align:end;align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:-webkit-box!important;display:flex!important;-webkit-box-flex:1;flex:1;align-content:center;-webkit-box-pack:center;justify-content:center}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:center;align-items:center}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:-webkit-box;display:flex;z-index:1;flex-wrap:wrap;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;width:100%;margin:1.25em auto 0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.1)),to(rgba(0,0,0,.1)));background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.2)),to(rgba(0,0,0,.2)));background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-actions.swal2-loading .swal2-styled.swal2-confirm{box-sizing:border-box;width:2.5em;height:2.5em;margin:.46875em;padding:0;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:.25em solid transparent;border-radius:100%;border-color:transparent;background-color:transparent!important;color:transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-actions.swal2-loading .swal2-styled.swal2-cancel{margin-right:30px;margin-left:30px}.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after{content:\"\";display:inline-block;width:15px;height:15px;margin-left:5px;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:3px solid #999;border-radius:50%;border-right-color:transparent;box-shadow:1px 1px 1px #fff}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{-webkit-box-pack:center;justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar{position:absolute;bottom:0;left:0;width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;-webkit-box-pack:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;-webkit-transition:color .1s ease-out;transition:color .1s ease-out;border:none;border-radius:0;outline:initial;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{-webkit-transform:none;transform:none;background:0 0;color:#f27474}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;-webkit-box-pack:center;justify-content:center;margin:0;padding:0;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;-webkit-transition:border-color .3s,box-shadow .3s;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-webkit-input-placeholder,.swal2-input::-webkit-input-placeholder,.swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;-webkit-box-pack:center;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;-webkit-box-flex:1;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:3.75em 3.75em;transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 3.75em;transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.875em;width:1.5625em;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{-webkit-box-align:center;align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{-webkit-transition:none;transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}@-webkit-keyframes swal2-toast-show{0%{-webkit-transform:translateY(-.625em) rotateZ(2deg);transform:translateY(-.625em) rotateZ(2deg)}33%{-webkit-transform:translateY(0) rotateZ(-2deg);transform:translateY(0) rotateZ(-2deg)}66%{-webkit-transform:translateY(.3125em) rotateZ(2deg);transform:translateY(.3125em) rotateZ(2deg)}100%{-webkit-transform:translateY(0) rotateZ(0);transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{-webkit-transform:translateY(-.625em) rotateZ(2deg);transform:translateY(-.625em) rotateZ(2deg)}33%{-webkit-transform:translateY(0) rotateZ(-2deg);transform:translateY(0) rotateZ(-2deg)}66%{-webkit-transform:translateY(.3125em) rotateZ(2deg);transform:translateY(.3125em) rotateZ(2deg)}100%{-webkit-transform:translateY(0) rotateZ(0);transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{-webkit-transform:rotateZ(1deg);transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{-webkit-transform:rotateZ(1deg);transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes swal2-show{0%{-webkit-transform:scale(.7);transform:scale(.7)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.875em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.875em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}100%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}100%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;-webkit-transform:scale(.4);transform:scale(.4);opacity:0}50%{margin-top:1.625em;-webkit-transform:scale(.4);transform:scale(.4);opacity:0}80%{margin-top:-.375em;-webkit-transform:scale(1.15);transform:scale(1.15)}100%{margin-top:0;-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;-webkit-transform:scale(.4);transform:scale(.4);opacity:0}50%{margin-top:1.625em;-webkit-transform:scale(.4);transform:scale(.4);opacity:0}80%{margin-top:-.375em;-webkit-transform:scale(1.15);transform:scale(1.15)}100%{margin-top:0;-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}100%{-webkit-transform:rotateX(0);transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}100%{-webkit-transform:rotateX(0);transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:stretch;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{-webkit-box-flex:1;flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{-webkit-box-pack:center;justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}");
|
admin/assets/js/settings.js
CHANGED
@@ -12,8 +12,8 @@
|
|
12 |
|
13 |
$.wantispam = {};
|
14 |
|
15 |
-
if( $.
|
16 |
-
$.wantispam = $.
|
17 |
}
|
18 |
|
19 |
$('.factory-checkbox--disabled.wantispam-checkbox-premium-label').click(function(e) {
|
12 |
|
13 |
$.wantispam = {};
|
14 |
|
15 |
+
if( $.wbcr_factory_clearfy_217 ) {
|
16 |
+
$.wantispam = $.wbcr_factory_clearfy_217;
|
17 |
}
|
18 |
|
19 |
$('.factory-checkbox--disabled.wantispam-checkbox-premium-label').click(function(e) {
|
admin/assets/js/trial-popup.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function($) {
|
2 |
+
jQuery('#js-wantispam-activate-trial-button').click(function(e) {
|
3 |
+
e.preventDefault();
|
4 |
+
var infosModal = $('#wantispam-tmpl-confirmation-modal');
|
5 |
+
|
6 |
+
if( !infosModal.length ) {
|
7 |
+
console.log('[Error]: Html template for modal not found.');
|
8 |
+
return;
|
9 |
+
}
|
10 |
+
|
11 |
+
Swal.fire({
|
12 |
+
html: infosModal.html(),
|
13 |
+
customClass: 'wantispam-modal wantispam-modal-confirm',
|
14 |
+
width: 500,
|
15 |
+
showCancelButton: true,
|
16 |
+
showCloseButton: true,
|
17 |
+
confirmButtonText: 'Agree',
|
18 |
+
}).then(function(result) {
|
19 |
+
if( result.value ) {
|
20 |
+
window.location.href = jQuery('#js-wantispam-activate-trial-button').data('url');
|
21 |
+
}
|
22 |
+
console.log(result);
|
23 |
+
});
|
24 |
+
});
|
25 |
+
});
|
admin/boot.php
CHANGED
@@ -25,7 +25,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
25 |
*
|
26 |
* @return string
|
27 |
*/
|
28 |
-
add_filter( '
|
29 |
if ( $plugin_name == \WBCR\Antispam\Plugin::app()->getPluginName() ) {
|
30 |
return 'https://wordpress.org/support/plugin/anti-spam/reviews/';
|
31 |
}
|
@@ -33,6 +33,38 @@ add_filter( 'wbcr_factory_pages_424_imppage_rating_widget_url', function ( $page
|
|
33 |
return $page_url;
|
34 |
}, 10, 2 );
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
/**
|
37 |
* Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
|
38 |
*
|
@@ -45,6 +77,10 @@ add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $posit
|
|
45 |
unset( $widgets['business_suggetion'] );
|
46 |
unset( $widgets['rating_widget'] );
|
47 |
unset( $widgets['info_widget'] );
|
|
|
|
|
|
|
|
|
48 |
}
|
49 |
|
50 |
return $widgets;
|
@@ -67,12 +103,16 @@ add_filter( 'wbcr/factory/pages/impressive/plugin_title', function ( $title, $pl
|
|
67 |
* Этот хук реализует условную логику, при которой пользователь переодически будет
|
68 |
* видет страницу "О плагине", а конкретно при активации и обновлении плагина.
|
69 |
*/
|
70 |
-
add_action( 'admin_init', function () {
|
|
|
|
|
|
|
|
|
71 |
$plugin = \WBCR\Antispam\Plugin::app();
|
72 |
|
73 |
// If the user has updated the plugin or activated it for the first time,
|
74 |
// you need to show the page "What's new?"
|
75 |
-
|
76 |
$about_page_viewed = $plugin->request->get( 'wantispam_about_page_viewed', null );
|
77 |
|
78 |
if ( is_null( $about_page_viewed ) ) {
|
@@ -96,5 +136,5 @@ add_action( 'admin_init', function () {
|
|
96 |
}
|
97 |
}
|
98 |
}
|
99 |
-
|
100 |
-
|
25 |
*
|
26 |
* @return string
|
27 |
*/
|
28 |
+
add_filter( 'wbcr_factory_pages_425_imppage_rating_widget_url', function ( $page_url, $plugin_name ) {
|
29 |
if ( $plugin_name == \WBCR\Antispam\Plugin::app()->getPluginName() ) {
|
30 |
return 'https://wordpress.org/support/plugin/anti-spam/reviews/';
|
31 |
}
|
33 |
return $page_url;
|
34 |
}, 10, 2 );
|
35 |
|
36 |
+
/**
|
37 |
+
* Print admin notice: "Would you like to send them for spam checking?"
|
38 |
+
*
|
39 |
+
* If user clicked button "Yes, do it", plugin will exec action,
|
40 |
+
* that put all unapproved comments to spam check queue.
|
41 |
+
*/
|
42 |
+
add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) {
|
43 |
+
if ( $plugin_name != \WBCR\Antispam\Plugin::app()->getPluginName() ) {
|
44 |
+
return $notices;
|
45 |
+
}
|
46 |
+
$review_link = "https://wordpress.org/support/plugin/anti-spam/reviews/";
|
47 |
+
$notice_text = sprintf( __( 'Hey, You\'ve using Anti-spam – that\'s awesome! Could you please do me a BIG favor and give it a 5-star rating on WordPress? Just to help us spread the word and boost our motivation! <a href="%s" target="_blank" rel="noopener">Review</a>', "anti-spam" ), $review_link );
|
48 |
+
|
49 |
+
$notices[] = [
|
50 |
+
'id' => 'wantispam_give_me_review',
|
51 |
+
'type' => 'success',
|
52 |
+
'where' => [
|
53 |
+
'edit-comments',
|
54 |
+
'plugins',
|
55 |
+
'themes',
|
56 |
+
'dashboard',
|
57 |
+
'edit',
|
58 |
+
'settings'
|
59 |
+
],
|
60 |
+
'dismissible' => true,
|
61 |
+
'dismiss_expires' => 0,
|
62 |
+
'text' => '<p><strong>Anti-spam:</strong><br>' . $notice_text . '</p>'
|
63 |
+
];
|
64 |
+
|
65 |
+
return $notices;
|
66 |
+
}, 10, 2 );
|
67 |
+
|
68 |
/**
|
69 |
* Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
|
70 |
*
|
77 |
unset( $widgets['business_suggetion'] );
|
78 |
unset( $widgets['rating_widget'] );
|
79 |
unset( $widgets['info_widget'] );
|
80 |
+
|
81 |
+
if ( ! \WBCR\Antispam\Plugin::app()->premium->is_activate() ) {
|
82 |
+
$widgets['premium_suggetion'] = wantispam_get_sidebar_premium_widget();
|
83 |
+
}
|
84 |
}
|
85 |
|
86 |
return $widgets;
|
103 |
* Этот хук реализует условную логику, при которой пользователь переодически будет
|
104 |
* видет страницу "О плагине", а конкретно при активации и обновлении плагина.
|
105 |
*/
|
106 |
+
/*add_action( 'admin_init', function () {
|
107 |
+
if ( ! current_user_can( 'manage_option' ) ) {
|
108 |
+
return;
|
109 |
+
}
|
110 |
+
|
111 |
$plugin = \WBCR\Antispam\Plugin::app();
|
112 |
|
113 |
// If the user has updated the plugin or activated it for the first time,
|
114 |
// you need to show the page "What's new?"
|
115 |
+
//-------------------------
|
116 |
$about_page_viewed = $plugin->request->get( 'wantispam_about_page_viewed', null );
|
117 |
|
118 |
if ( is_null( $about_page_viewed ) ) {
|
136 |
}
|
137 |
}
|
138 |
}
|
139 |
+
} );*/
|
140 |
+
|
admin/class-activation.php
CHANGED
@@ -7,7 +7,7 @@ namespace WBCR\Antispam;
|
|
7 |
*
|
8 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
9 |
* @copyright (c) 26.10.2019, Webcraftic
|
10 |
-
* @see
|
11 |
* @version 1.0
|
12 |
*/
|
13 |
|
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
16 |
exit;
|
17 |
}
|
18 |
|
19 |
-
class Activation extends \
|
20 |
|
21 |
/**
|
22 |
* Runs activation actions.
|
7 |
*
|
8 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
9 |
* @copyright (c) 26.10.2019, Webcraftic
|
10 |
+
* @see Wbcr_Factory425_Activator
|
11 |
* @version 1.0
|
12 |
*/
|
13 |
|
16 |
exit;
|
17 |
}
|
18 |
|
19 |
+
class Activation extends \Wbcr_Factory425_Activator {
|
20 |
|
21 |
/**
|
22 |
* Runs activation actions.
|
admin/pages/class-pages-about.php
CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
* @copyright (c) 2019 Webraftic Ltd
|
15 |
* @version 1.0
|
16 |
*/
|
17 |
-
class About extends \
|
18 |
|
19 |
/**
|
20 |
* {@inheritdoc}
|
@@ -47,26 +47,83 @@ class About extends \Wbcr_FactoryClearfy216_PageBase {
|
|
47 |
*
|
48 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
49 |
*
|
50 |
-
* @param \
|
51 |
*/
|
52 |
-
public function __construct( \
|
53 |
$this->plugin = $plugin;
|
54 |
|
55 |
$this->menu_title = __( 'Premium', 'anti-spam' );
|
56 |
$this->page_menu_short_description = sprintf( __( 'What is new in %s?', 'anti-spam' ), $this->plugin->getPluginVersion() );
|
57 |
|
58 |
parent::__construct( $plugin );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
|
61 |
/**
|
62 |
* {@inheritdoc}
|
63 |
*/
|
64 |
public function showPageContent() {
|
65 |
-
|
|
|
|
|
|
|
66 |
?>
|
67 |
-
<div class="wrap about-wrap full-width-layout
|
68 |
<!-- News Title !-->
|
69 |
-
<h1>Meet with <?php echo $this->plugin->getPluginTitle() ?>
|
70 |
Pro in <?php echo $this->plugin->getPluginVersion() ?></h1>
|
71 |
<!-- News Subtext !-->
|
72 |
<div class="about-text">
|
@@ -74,31 +131,47 @@ class About extends \Wbcr_FactoryClearfy216_PageBase {
|
|
74 |
</div>
|
75 |
<!-- Latest News !-->
|
76 |
<div class="headline">
|
77 |
-
<
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
</div>
|
85 |
-
<p> </p>
|
86 |
<p class="introduction">
|
87 |
A new way of checking comments and registrations for spam. Once you install the plugin, all messages
|
88 |
pass a three-step verification:
|
89 |
</p>
|
90 |
<ul>
|
91 |
-
<li
|
92 |
-
<li
|
93 |
-
<li
|
94 |
</ul>
|
95 |
<p>Besides, now you have a handy control panel with various settings and analytics section. The result of
|
96 |
our work is a great plugin that protects your site from spam much better! Check how it works. If you
|
97 |
like it, don’t forget to post a review – that motivates us the best!</p>
|
|
|
|
|
|
|
|
|
|
|
98 |
</div>
|
99 |
<div class="feature-section one-col">
|
100 |
<div class="col">
|
101 |
-
<h2>Useful features scheduled
|
|
|
102 |
</div>
|
103 |
</div>
|
104 |
<div class="feature-section one-col">
|
14 |
* @copyright (c) 2019 Webraftic Ltd
|
15 |
* @version 1.0
|
16 |
*/
|
17 |
+
class About extends \Wbcr_FactoryClearfy217_PageBase {
|
18 |
|
19 |
/**
|
20 |
* {@inheritdoc}
|
47 |
*
|
48 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
49 |
*
|
50 |
+
* @param \Wbcr_Factory425_Plugin $plugin
|
51 |
*/
|
52 |
+
public function __construct( \Wbcr_Factory425_Plugin $plugin ) {
|
53 |
$this->plugin = $plugin;
|
54 |
|
55 |
$this->menu_title = __( 'Premium', 'anti-spam' );
|
56 |
$this->page_menu_short_description = sprintf( __( 'What is new in %s?', 'anti-spam' ), $this->plugin->getPluginVersion() );
|
57 |
|
58 |
parent::__construct( $plugin );
|
59 |
+
|
60 |
+
add_action( 'admin_footer', [ $this, 'print_confirmation_modal_tpl' ] );
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* {@inheritdoc}
|
65 |
+
*
|
66 |
+
* @since 6.5.2
|
67 |
+
* @return void
|
68 |
+
*/
|
69 |
+
public function assets( $scripts, $styles ) {
|
70 |
+
parent::assets( $scripts, $styles );
|
71 |
+
|
72 |
+
$this->styles->add( WANTISPAM_PLUGIN_URL . '/admin/assets/css/about-premium.css' );
|
73 |
+
|
74 |
+
if ( ! $this->plugin->premium->is_activate() ) {
|
75 |
+
$this->styles->add( WANTISPAM_PLUGIN_URL . '/admin/assets/css/libs/sweetalert2.css' );
|
76 |
+
$this->styles->add( WANTISPAM_PLUGIN_URL . '/admin/assets/css/sweetalert-custom.css' );
|
77 |
+
|
78 |
+
$this->scripts->add( WANTISPAM_PLUGIN_URL . '/admin/assets/js/libs/sweetalert3.min.js' );
|
79 |
+
$this->scripts->add( WANTISPAM_PLUGIN_URL . '/admin/assets/js/trial-popup.js' );
|
80 |
+
}
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* {@inheritdoc}
|
85 |
+
*
|
86 |
+
* @since 6.5.2
|
87 |
+
* @return void
|
88 |
+
*/
|
89 |
+
public function print_confirmation_modal_tpl() {
|
90 |
+
if ( isset( $_GET['page'] ) && $this->getResultId() === $_GET['page'] ) {
|
91 |
+
$terms_url = "https://anti-spam.space/terms-of-use/";
|
92 |
+
$privacy_url = "https://anti-spam.space/privacy/";
|
93 |
+
|
94 |
+
?>
|
95 |
+
<script type="text/html" id="wantispam-tmpl-confirmation-modal">
|
96 |
+
<h2 class="swal2-title">
|
97 |
+
<?php _e( 'Confirmation', 'anti-spam' ) ?>
|
98 |
+
</h2>
|
99 |
+
<div class="wantispam-swal-content">
|
100 |
+
<ul class="wantispam-list-infos">
|
101 |
+
<li>
|
102 |
+
<?php _e( 'We are using some personal data, like admin\'s e-mail', 'anti-spam' ) ?>
|
103 |
+
</li>
|
104 |
+
<li>
|
105 |
+
<?php printf( __( 'By agreeing to the trial, you confirm that you have read <a href="%s" target="_blank" rel="noreferrer noopener">Terms of Service</a> and the
|
106 |
+
<a href="%s" target="_blank" rel="noreferrer noopener">Privacy Policy (GDPR compilant)</a>', 'anti-spam' ), $terms_url, $privacy_url ) ?>
|
107 |
+
</li>
|
108 |
+
</ul>
|
109 |
+
</div>
|
110 |
+
</script>
|
111 |
+
<?php
|
112 |
+
}
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
* {@inheritdoc}
|
117 |
*/
|
118 |
public function showPageContent() {
|
119 |
+
$activate_trial_url = wp_nonce_url( $this->plugin->getPluginPageUrl( 'license', [
|
120 |
+
'action' => 'activate-trial'
|
121 |
+
] ), 'activate_trial' );
|
122 |
+
|
123 |
?>
|
124 |
+
<div class="wrap about-wrap full-width-layout wantispam-about-premium">
|
125 |
<!-- News Title !-->
|
126 |
+
<h1 class="wantispam-about-premium__title">Meet with <?php echo $this->plugin->getPluginTitle() ?>
|
127 |
Pro in <?php echo $this->plugin->getPluginVersion() ?></h1>
|
128 |
<!-- News Subtext !-->
|
129 |
<div class="about-text">
|
131 |
</div>
|
132 |
<!-- Latest News !-->
|
133 |
<div class="headline">
|
134 |
+
<div class="is-fullwidth has-3-columns wantispam-about-premium__columns">
|
135 |
+
<div class="col wantispam-about-premium__column">
|
136 |
+
<span class="dashicons dashicons-chart-line"></span>
|
137 |
+
<h3>Statistic widget</h3>
|
138 |
+
<p>The statistics widget on the dashboard page will provide you with statistics on the number of
|
139 |
+
blocked spam.</p>
|
140 |
+
</div>
|
141 |
+
<div class="col wantispam-about-premium__column">
|
142 |
+
<span class="dashicons dashicons-shield"></span>
|
143 |
+
<h3>Protect forms</h3>
|
144 |
+
<p>Allows you to protect contact and comment forms. At the moment, we support the Contact form 7
|
145 |
+
plugin and Wordpress native comments.</p>
|
146 |
+
</div>
|
147 |
+
<div class="col wantispam-about-premium__column">
|
148 |
+
<span class="dashicons dashicons-sos"></span>
|
149 |
+
<h3>Perfect support</h3>
|
150 |
+
<p>We provide the best support for premium users.</p>
|
151 |
+
</div>
|
152 |
</div>
|
|
|
153 |
<p class="introduction">
|
154 |
A new way of checking comments and registrations for spam. Once you install the plugin, all messages
|
155 |
pass a three-step verification:
|
156 |
</p>
|
157 |
<ul>
|
158 |
+
<li>match with the constantly updated spam base;</li>
|
159 |
+
<li>check by a neural network;</li>
|
160 |
+
<li>filter comments posted on a website before the plugin installation.</li>
|
161 |
</ul>
|
162 |
<p>Besides, now you have a handy control panel with various settings and analytics section. The result of
|
163 |
our work is a great plugin that protects your site from spam much better! Check how it works. If you
|
164 |
like it, don’t forget to post a review – that motivates us the best!</p>
|
165 |
+
<div class="wantispam-about-premium__activate-trial">
|
166 |
+
<a href="" data-url="<?php echo esc_url( $activate_trial_url ) ?>" id="js-wantispam-activate-trial-button" class="button button-default button-hero wantispam-about-premium__activate-trial-button"><?php _e( 'Try all premium features now, activate 30 days trial', 'anti-spam' ); ?></a>
|
167 |
+
<p>The free trial edition (no credit card) contains all of the features included in the paid-for
|
168 |
+
version of the product.</p>
|
169 |
+
</div>
|
170 |
</div>
|
171 |
<div class="feature-section one-col">
|
172 |
<div class="col">
|
173 |
+
<h2 class="wantispam-about-premium__title wantispam-about-premium__title--h2">Useful features scheduled
|
174 |
+
for future releases</h2>
|
175 |
</div>
|
176 |
</div>
|
177 |
<div class="feature-section one-col">
|
admin/pages/class-pages-license.php
CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
16 |
*
|
17 |
* @copyright (c) 2018 Webraftic Ltd
|
18 |
*/
|
19 |
-
class License extends \
|
20 |
|
21 |
/**
|
22 |
* {@inheritdoc}
|
@@ -41,27 +41,223 @@ class License extends \Wbcr_FactoryClearfy216_LicensePage {
|
|
41 |
*
|
42 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
43 |
*
|
44 |
-
* @param \
|
45 |
*/
|
46 |
-
public function __construct( \
|
47 |
$this->menu_title = __( 'License', 'anti-spam' );
|
48 |
$this->page_menu_short_description = __( 'Product activation', 'anti-spam' );
|
49 |
$this->plan_name = __( 'Anti-spam PRO', 'anti-spam' );
|
50 |
|
51 |
parent::__construct( $plugin );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
|
|
|
54 |
/**
|
55 |
* {@inheritdoc}
|
56 |
*
|
57 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
58 |
-
* @since
|
59 |
* @return string
|
60 |
*/
|
61 |
public function get_plan_description() {
|
|
|
|
|
62 |
$description = '<p style="font-size: 16px;">' . __( '<b>Anti-spam PRO</b> is a paid package of components for the popular free WordPress plugin named Anti-spam PRO. You get access to all paid components at one price.', 'clearfy' ) . '</p>';
|
63 |
$description .= '<p style="font-size: 16px;">' . __( 'Paid license guarantees that you can download and update existing and future paid components of the plugin.', 'clearfy' ) . '</p>';
|
64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
return $description;
|
66 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
}
|
16 |
*
|
17 |
* @copyright (c) 2018 Webraftic Ltd
|
18 |
*/
|
19 |
+
class License extends \Wbcr_FactoryClearfy217_LicensePage {
|
20 |
|
21 |
/**
|
22 |
* {@inheritdoc}
|
41 |
*
|
42 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
43 |
*
|
44 |
+
* @param \Wbcr_Factory425_Plugin $plugin
|
45 |
*/
|
46 |
+
public function __construct( \Wbcr_Factory425_Plugin $plugin ) {
|
47 |
$this->menu_title = __( 'License', 'anti-spam' );
|
48 |
$this->page_menu_short_description = __( 'Product activation', 'anti-spam' );
|
49 |
$this->plan_name = __( 'Anti-spam PRO', 'anti-spam' );
|
50 |
|
51 |
parent::__construct( $plugin );
|
52 |
+
|
53 |
+
add_action( 'admin_footer', [ $this, 'print_confirmation_modal_tpl' ] );
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* {@inheritDoc}
|
58 |
+
* @since 6.5.2
|
59 |
+
*
|
60 |
+
* @param $notices
|
61 |
+
* @param \Wbcr_Factory425_Plugin $plugin
|
62 |
+
*
|
63 |
+
* @return array
|
64 |
+
* @see \FactoryPages425_ImpressiveThemplate
|
65 |
+
*/
|
66 |
+
public function getActionNotices( $notices ) {
|
67 |
+
|
68 |
+
$notices[] = [
|
69 |
+
'conditions' => [
|
70 |
+
'wantispam_trial_activated' => 1
|
71 |
+
],
|
72 |
+
'type' => 'success',
|
73 |
+
'message' => __( 'Trial is activated successfully!', 'anti-spam' )
|
74 |
+
];
|
75 |
+
|
76 |
+
$notices[] = [
|
77 |
+
'conditions' => [
|
78 |
+
'wantispam_trial_activated_error' => 1,
|
79 |
+
'wantispam_error_code' => 'interal_error'
|
80 |
+
],
|
81 |
+
'type' => 'danger',
|
82 |
+
'message' => __( 'An unknown error occurred during trial activation. Details of the error are wrote in error log.', 'anti-spam' )
|
83 |
+
];
|
84 |
+
|
85 |
+
$notices[] = [
|
86 |
+
'conditions' => [
|
87 |
+
'wantispam_trial_activated_error' => 1,
|
88 |
+
'wantispam_error_code' => 'trial_already_activated'
|
89 |
+
],
|
90 |
+
'type' => 'danger',
|
91 |
+
'message' => sprintf( __( 'You have already activated the trial earlier, you cannot activate the trial more than once. However, if your key has not expired yet, you can find it in your account (<a href="%s" target="_blank" rel="noopener noreferrer">%s</a>), and then insert the key in the license form to activate the premium plugin. To restore access to your account, use your admin email.', 'anti-spam' ), 'https://users.freemius.com/login', 'https://users.freemius.com/login' )
|
92 |
+
];
|
93 |
+
|
94 |
+
return $notices;
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* {@inheritdoc}
|
99 |
+
*
|
100 |
+
* @since 6.5.2
|
101 |
+
* @return void
|
102 |
+
*/
|
103 |
+
public function assets( $scripts, $styles ) {
|
104 |
+
parent::assets( $scripts, $styles );
|
105 |
+
|
106 |
+
if ( ! $this->plugin->premium->is_activate() ) {
|
107 |
+
$this->styles->add( WANTISPAM_PLUGIN_URL . '/admin/assets/css/libs/sweetalert2.css' );
|
108 |
+
$this->styles->add( WANTISPAM_PLUGIN_URL . '/admin/assets/css/sweetalert-custom.css' );
|
109 |
+
|
110 |
+
$this->scripts->add( WANTISPAM_PLUGIN_URL . '/admin/assets/js/libs/sweetalert3.min.js' );
|
111 |
+
$this->scripts->add( WANTISPAM_PLUGIN_URL . '/admin/assets/js/trial-popup.js' );
|
112 |
+
}
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* {@inheritdoc}
|
117 |
+
*
|
118 |
+
* @since 6.5.2
|
119 |
+
* @return void
|
120 |
+
*/
|
121 |
+
public function print_confirmation_modal_tpl() {
|
122 |
+
if ( isset( $_GET['page'] ) && $this->getResultId() === $_GET['page'] ) {
|
123 |
+
$terms_url = "https://anti-spam.space/terms-of-use/";
|
124 |
+
$privacy_url = "https://anti-spam.space/privacy/";
|
125 |
+
|
126 |
+
?>
|
127 |
+
<script type="text/html" id="wantispam-tmpl-confirmation-modal">
|
128 |
+
<h2 class="swal2-title">
|
129 |
+
<?php _e( 'Confirmation', 'anti-spam' ) ?>
|
130 |
+
</h2>
|
131 |
+
<div class="wantispam-swal-content">
|
132 |
+
<ul class="wantispam-list-infos">
|
133 |
+
<li>
|
134 |
+
<?php _e( 'We are using some personal data, like admin\'s e-mail', 'anti-spam' ) ?>
|
135 |
+
</li>
|
136 |
+
<li>
|
137 |
+
<?php printf( __( 'By agreeing to the trial, you confirm that you have read <a href="%s" target="_blank" rel="noreferrer noopener">Terms of Service</a> and the
|
138 |
+
<a href="%s" target="_blank" rel="noreferrer noopener">Privacy Policy (GDPR compilant)</a>', 'anti-spam' ), $terms_url, $privacy_url ) ?>
|
139 |
+
</li>
|
140 |
+
</ul>
|
141 |
+
</div>
|
142 |
+
</script>
|
143 |
+
<?php
|
144 |
+
}
|
145 |
}
|
146 |
|
147 |
+
|
148 |
/**
|
149 |
* {@inheritdoc}
|
150 |
*
|
151 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
152 |
+
* @since 6.5
|
153 |
* @return string
|
154 |
*/
|
155 |
public function get_plan_description() {
|
156 |
+
$activate_trial_url = wp_nonce_url( $this->getActionUrl( 'activate-trial' ), 'activate_trial' );
|
157 |
+
|
158 |
$description = '<p style="font-size: 16px;">' . __( '<b>Anti-spam PRO</b> is a paid package of components for the popular free WordPress plugin named Anti-spam PRO. You get access to all paid components at one price.', 'clearfy' ) . '</p>';
|
159 |
$description .= '<p style="font-size: 16px;">' . __( 'Paid license guarantees that you can download and update existing and future paid components of the plugin.', 'clearfy' ) . '</p>';
|
160 |
|
161 |
+
if ( ! $this->plugin->premium->is_activate() ) {
|
162 |
+
$description .= '<p>The free trial edition (no credit card) contains all of the features included in the paid-for version
|
163 |
+
of the product.</p>';
|
164 |
+
$description .= '<a href="" data-url="' . esc_url( $activate_trial_url ) . '" id="js-wantispam-activate-trial-button" class="button button-default">' . __( 'Activate 30 days trial', 'anti-spam' ) . '</a>';
|
165 |
+
}
|
166 |
+
|
167 |
return $description;
|
168 |
}
|
169 |
+
|
170 |
+
/**
|
171 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
172 |
+
* @since 6.6
|
173 |
+
*/
|
174 |
+
public function activateTrialAction() {
|
175 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
176 |
+
return;
|
177 |
+
}
|
178 |
+
|
179 |
+
check_admin_referer( 'activate_trial' );
|
180 |
+
|
181 |
+
\WBCR\Logger\writter::info( 'Start trial activation [PROCESS START]!' );
|
182 |
+
|
183 |
+
$admin_email = get_option( 'admin_email' );
|
184 |
+
$domain = site_url();
|
185 |
+
|
186 |
+
//$url = 'https://dev.anti-spam.space/api/v1.0/trial/register';
|
187 |
+
$url = 'https://api.anti-spam.space/api/v1.0/trial/register';
|
188 |
+
|
189 |
+
$options = [
|
190 |
+
'body' => [
|
191 |
+
'email' => $admin_email,
|
192 |
+
'domain' => site_url(),
|
193 |
+
]
|
194 |
+
];
|
195 |
+
|
196 |
+
// Get license key from remote server
|
197 |
+
$request = wp_remote_post( $url, $options );
|
198 |
+
|
199 |
+
if ( is_wp_error( $request ) ) {
|
200 |
+
\WBCR\Logger\writter::error( 'Http request error: ' . $request->get_error_message() );
|
201 |
+
\WBCR\Logger\writter::info( 'End trial activation [PROCESS END]!' );
|
202 |
+
$this->redirectToAction( 'index', [
|
203 |
+
'wantispam_trial_activated_error' => 1,
|
204 |
+
'wantispam_error_code' => 'interal_error'
|
205 |
+
] );
|
206 |
+
}
|
207 |
+
|
208 |
+
$data = json_decode( $request['body'], true );
|
209 |
+
|
210 |
+
if ( $data['status'] == 'fail' ) {
|
211 |
+
if ( ! empty( $data['error'] ) ) {
|
212 |
+
$message = $data['error']['message'];
|
213 |
+
\WBCR\Logger\writter::error( sprintf( 'Trial activation failed for domain: %s, e-mail: %s with message: %s', $domain, $admin_email, $message ) );
|
214 |
+
\WBCR\Logger\writter::info( 'End trial activation [PROCESS END]!' );
|
215 |
+
|
216 |
+
if ( ! empty( $data['error']['code'] ) && 1001 === $data['error']['code'] ) {
|
217 |
+
$this->redirectToAction( 'index', [
|
218 |
+
'wantispam_trial_activated_error' => 1,
|
219 |
+
'wantispam_error_code' => 'trial_already_activated'
|
220 |
+
] );
|
221 |
+
} else {
|
222 |
+
$this->redirectToAction( 'index', [
|
223 |
+
'wantispam_trial_activated_error' => 1,
|
224 |
+
'wantispam_error_code' => 'interal_error'
|
225 |
+
] );
|
226 |
+
}
|
227 |
+
}
|
228 |
+
}
|
229 |
+
|
230 |
+
$license_key = $data['response']['license_key'];
|
231 |
+
|
232 |
+
if ( empty( $license_key ) || 32 !== strlen( $license_key ) ) {
|
233 |
+
\WBCR\Logger\writter::error( 'License key format is not valid' );
|
234 |
+
\WBCR\Logger\writter::info( 'End trial activation [PROCESS END]!' );
|
235 |
+
$this->redirectToAction( 'index', [
|
236 |
+
'wantispam_trial_activated_error' => 1,
|
237 |
+
'wantispam_error_code' => 'interal_error'
|
238 |
+
] );
|
239 |
+
}
|
240 |
+
|
241 |
+
try {
|
242 |
+
$this->plugin->premium->activate( $license_key );
|
243 |
+
|
244 |
+
\WBCR\Logger\writter::info( sprintf( 'Trial activation success for domain: %s, e-mail: %s', $domain, $admin_email ) );
|
245 |
+
\WBCR\Logger\writter::info( 'End trial activation [PROCESS END]!' );
|
246 |
+
$this->redirectToAction( 'index', [
|
247 |
+
'wantispam_trial_activated' => 1
|
248 |
+
] );
|
249 |
+
} catch( \Exception $e ) {
|
250 |
+
\WBCR\Logger\writter::error( $e->getMessage() );
|
251 |
+
\WBCR\Logger\writter::info( 'End trial activation [PROCESS END]!' );
|
252 |
+
|
253 |
+
$this->redirectToAction( 'index', [
|
254 |
+
'wantispam_trial_activated_error' => 1,
|
255 |
+
'wantispam_error_code' => 'interal_error'
|
256 |
+
] );
|
257 |
+
}
|
258 |
+
|
259 |
+
// Redirect to index
|
260 |
+
$this->redirectToAction( 'index' );
|
261 |
+
\WBCR\Logger\writter::info( 'End trial activation [PROCESS END]!' );
|
262 |
+
}
|
263 |
}
|
admin/pages/class-pages-logs.php
CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
16 |
* @copyright (c) 2019 Webraftic Ltd
|
17 |
* @version 1.0
|
18 |
*/
|
19 |
-
class Logs extends \
|
20 |
|
21 |
/**
|
22 |
* {@inheritdoc}
|
@@ -38,9 +38,9 @@ class Logs extends \Wbcr_FactoryClearfy216_PageBase {
|
|
38 |
*
|
39 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
40 |
*
|
41 |
-
* @param \
|
42 |
*/
|
43 |
-
public function __construct( \
|
44 |
|
45 |
$this->menu_title = __( 'Error Log', 'anti-spam' );
|
46 |
$this->page_menu_short_description = __( 'Plugin debug report', 'anti-spam' );
|
16 |
* @copyright (c) 2019 Webraftic Ltd
|
17 |
* @version 1.0
|
18 |
*/
|
19 |
+
class Logs extends \Wbcr_FactoryClearfy217_PageBase {
|
20 |
|
21 |
/**
|
22 |
* {@inheritdoc}
|
38 |
*
|
39 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
40 |
*
|
41 |
+
* @param \Wbcr_Factory425_Plugin $plugin
|
42 |
*/
|
43 |
+
public function __construct( \Wbcr_Factory425_Plugin $plugin ) {
|
44 |
|
45 |
$this->menu_title = __( 'Error Log', 'anti-spam' );
|
46 |
$this->page_menu_short_description = __( 'Plugin debug report', 'anti-spam' );
|
admin/pages/class-pages-settings.php
CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
16 |
* @copyright (c) 2019 Webraftic Ltd
|
17 |
* @version 1.0
|
18 |
*/
|
19 |
-
class Settings extends \
|
20 |
|
21 |
/**
|
22 |
* {@inheritDoc}
|
@@ -71,9 +71,10 @@ class Settings extends \Wbcr_FactoryClearfy216_PageBase {
|
|
71 |
*
|
72 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
73 |
*
|
74 |
-
* @param \
|
|
|
75 |
*/
|
76 |
-
public function __construct( \
|
77 |
$this->menu_title = __( 'Anti-spam', 'anti-spam' );
|
78 |
$this->page_menu_short_description = __( 'All settings', 'anti-spam' );
|
79 |
|
@@ -92,7 +93,7 @@ class Settings extends \Wbcr_FactoryClearfy216_PageBase {
|
|
92 |
*
|
93 |
* @since 6.2
|
94 |
* @return void
|
95 |
-
* @see
|
96 |
*
|
97 |
*/
|
98 |
public function assets( $scripts, $styles ) {
|
@@ -101,7 +102,7 @@ class Settings extends \Wbcr_FactoryClearfy216_PageBase {
|
|
101 |
$this->styles->add( WANTISPAM_PLUGIN_URL . '/admin/assets/css/settings.css' );
|
102 |
$this->scripts->add( WANTISPAM_PLUGIN_URL . '/admin/assets/js/settings.js', [
|
103 |
'jquery',
|
104 |
-
'wbcr-factory-clearfy-
|
105 |
], 'wantispam-settings' );
|
106 |
}
|
107 |
|
@@ -112,11 +113,19 @@ class Settings extends \Wbcr_FactoryClearfy216_PageBase {
|
|
112 |
* @return mixed[]
|
113 |
*/
|
114 |
public function getPageOptions() {
|
115 |
-
$is_premium =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
$options[] = [
|
118 |
'type' => 'html',
|
119 |
-
'html' => '<div class="wbcr-factory-page-group-header">' . '<strong>' . __( 'Base options.', 'anti-spam' ) . '</strong>' . '<p>' . __( '
|
120 |
];
|
121 |
|
122 |
$options[] = [
|
@@ -166,16 +175,53 @@ class Settings extends \Wbcr_FactoryClearfy216_PageBase {
|
|
166 |
'default' => false,
|
167 |
'cssClass' => ! $is_premium ? [ 'factory-checkbox--disabled wantispam-checkbox-premium-label' ] : [],
|
168 |
];
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
|
180 |
$form_options = [];
|
181 |
|
@@ -187,4 +233,20 @@ class Settings extends \Wbcr_FactoryClearfy216_PageBase {
|
|
187 |
|
188 |
return apply_filters( 'wantispam/settings_form/options', $form_options, $this );
|
189 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
}
|
16 |
* @copyright (c) 2019 Webraftic Ltd
|
17 |
* @version 1.0
|
18 |
*/
|
19 |
+
class Settings extends \Wbcr_FactoryClearfy217_PageBase {
|
20 |
|
21 |
/**
|
22 |
* {@inheritDoc}
|
71 |
*
|
72 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
73 |
*
|
74 |
+
* @param \Wbcr_Factory425_Plugin $plugin
|
75 |
+
*
|
76 |
*/
|
77 |
+
public function __construct( \Wbcr_Factory425_Plugin $plugin ) {
|
78 |
$this->menu_title = __( 'Anti-spam', 'anti-spam' );
|
79 |
$this->page_menu_short_description = __( 'All settings', 'anti-spam' );
|
80 |
|
93 |
*
|
94 |
* @since 6.2
|
95 |
* @return void
|
96 |
+
* @see Wbcr_FactoryPages425_AdminPage
|
97 |
*
|
98 |
*/
|
99 |
public function assets( $scripts, $styles ) {
|
102 |
$this->styles->add( WANTISPAM_PLUGIN_URL . '/admin/assets/css/settings.css' );
|
103 |
$this->scripts->add( WANTISPAM_PLUGIN_URL . '/admin/assets/js/settings.js', [
|
104 |
'jquery',
|
105 |
+
'wbcr-factory-clearfy-217-global'
|
106 |
], 'wantispam-settings' );
|
107 |
}
|
108 |
|
113 |
* @return mixed[]
|
114 |
*/
|
115 |
public function getPageOptions() {
|
116 |
+
$is_premium = $this->plugin->premium->is_activate();
|
117 |
+
//$upgrade_premium_url = $this->plugin->get_support()->get_pricing_url();
|
118 |
+
|
119 |
+
$blocked_total = 0; // show 0 by default
|
120 |
+
$antispam_stats = get_option( 'antispam_stats', [] );
|
121 |
+
|
122 |
+
if ( isset( $antispam_stats['blocked_total'] ) ) {
|
123 |
+
$blocked_total = $antispam_stats['blocked_total'];
|
124 |
+
}
|
125 |
|
126 |
$options[] = [
|
127 |
'type' => 'html',
|
128 |
+
'html' => '<div class="wbcr-factory-page-group-header">' . '<strong>' . __( 'Base options.', 'anti-spam' ) . '</strong>' . '<p>' . sprintf( __( '%s spam comments were blocked by Anti-spam plugin so far.', 'anti-spam' ), $blocked_total ) . '</p>' . '</div>'
|
129 |
];
|
130 |
|
131 |
$options[] = [
|
175 |
'default' => false,
|
176 |
'cssClass' => ! $is_premium ? [ 'factory-checkbox--disabled wantispam-checkbox-premium-label' ] : [],
|
177 |
];
|
178 |
+
if ( is_plugin_active( 'contact-form-7/wp-contact-form-7.php' ) ) {
|
179 |
+
$options[] = [
|
180 |
+
'type' => 'checkbox',
|
181 |
+
'way' => 'buttons',
|
182 |
+
'name' => 'protect_contacts_form7',
|
183 |
+
'title' => __( 'Protect Contact Forms 7', 'anti-spam' ),
|
184 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'green' ],
|
185 |
+
'hint' => __( 'Job Spam-Free for WordPress Contact Forms.', 'anti-spam' ),
|
186 |
+
'default' => false,
|
187 |
+
'cssClass' => ! $is_premium ? [ 'factory-checkbox--disabled wantispam-checkbox-premium-label' ] : [],
|
188 |
+
];
|
189 |
+
}
|
190 |
+
if ( is_plugin_active( 'ninja-forms/ninja-forms.php' ) ) {
|
191 |
+
$options[] = [
|
192 |
+
'type' => 'checkbox',
|
193 |
+
'way' => 'buttons',
|
194 |
+
'name' => 'protect_ninja_forms',
|
195 |
+
'title' => __( 'Protect Ninja Forms', 'anti-spam' ),
|
196 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'green' ],
|
197 |
+
'hint' => __( 'Protects contact forms of the Ninja Forms plugin from spam.', 'anti-spam' ),
|
198 |
+
'default' => false,
|
199 |
+
'cssClass' => ! $is_premium ? [ 'factory-checkbox--disabled wantispam-checkbox-premium-label' ] : [],
|
200 |
+
];
|
201 |
+
}
|
202 |
+
if ( is_plugin_active( 'caldera-forms/caldera-core.php' ) ) {
|
203 |
+
$options[] = [
|
204 |
+
'type' => 'checkbox',
|
205 |
+
'way' => 'buttons',
|
206 |
+
'name' => 'protect_caldera_forms',
|
207 |
+
'title' => __( 'Protect Caldera Forms', 'anti-spam' ),
|
208 |
+
'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'green' ],
|
209 |
+
'hint' => __( 'Caldera Forms has powerful anti-spam by default. The Anti-spam plugin provides additional anti-spam protection for your Caldera Forms.', 'anti-spam' ),
|
210 |
+
'default' => false,
|
211 |
+
'cssClass' => ! $is_premium ? [ 'factory-checkbox--disabled wantispam-checkbox-premium-label' ] : [],
|
212 |
+
'eventsOn' => [
|
213 |
+
'show' => '#wantispam-protect-caldera-forms-message'
|
214 |
+
],
|
215 |
+
'eventsOff' => [
|
216 |
+
'hide' => '#wantispam-protect-caldera-forms-message'
|
217 |
+
]
|
218 |
+
];
|
219 |
+
|
220 |
+
$options[] = [
|
221 |
+
'type' => 'html',
|
222 |
+
'html' => [ $this, 'protect_caldera_forms_warning' ]
|
223 |
+
];
|
224 |
+
}
|
225 |
|
226 |
$form_options = [];
|
227 |
|
233 |
|
234 |
return apply_filters( 'wantispam/settings_form/options', $form_options, $this );
|
235 |
}
|
236 |
+
|
237 |
+
/**
|
238 |
+
* Adds an html warning notification html markup.
|
239 |
+
*/
|
240 |
+
public function protect_caldera_forms_warning() {
|
241 |
+
?>
|
242 |
+
<div class="form-group">
|
243 |
+
<label class="col-sm-4 control-label"></label>
|
244 |
+
<div class="control-group col-sm-8">
|
245 |
+
<div id="wantispam-protect-caldera-forms-message" class="wantispam-checkbox-warning-message">
|
246 |
+
<?php printf( __( '<b>You have to make additional settings in the Caldera Forms plugin!</b><br> Please create an Anti-spam processor for each of your forms that you want to protect. You can read this <a href="%s" target="_blank" rel="noopener">manual</a> to learn more about how to create an Anti-spam processor in the Caldera Forms plugin.', 'clearfy' ), 'https://anti-spam.space/docs/anti-spam-processor-for-caldera-forms/' ) ?>
|
247 |
+
</div>
|
248 |
+
</div>
|
249 |
+
</div>
|
250 |
+
<?php
|
251 |
+
}
|
252 |
}
|
anti-spam.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Anti-Spam
|
4 |
Plugin URI: http://wordpress.org/plugins/anti-spam/
|
5 |
Description: No spam in comments. No captcha.
|
6 |
-
Version: 6.5.
|
7 |
Author: CreativeMotion
|
8 |
Text Domain: anti-spam
|
9 |
Author URI: https://cm-wp.com/
|
@@ -40,28 +40,30 @@ require_once( dirname( __FILE__ ) . '/libs/factory/core/includes/class-factory-r
|
|
40 |
|
41 |
// @formatter:off
|
42 |
$cm_antspam_plugin_info = array(
|
43 |
-
'prefix'
|
44 |
-
'plugin_name'
|
45 |
-
'plugin_title'
|
46 |
|
47 |
// PLUGIN SUPPORT
|
48 |
'support_details' => array(
|
49 |
'url' => 'https://anti-spam.space',
|
50 |
'pages_map' => array(
|
51 |
-
'support'
|
52 |
-
'docs'
|
53 |
)
|
54 |
),
|
55 |
|
56 |
// PLUGIN PREMIUM SETTINGS
|
57 |
-
'has_premium'
|
58 |
-
'license_settings'
|
59 |
-
'provider'
|
60 |
-
'slug'
|
61 |
-
'plugin_id'
|
62 |
-
'public_key'
|
63 |
-
'
|
64 |
-
'
|
|
|
|
|
65 |
'updates_settings' => array(
|
66 |
'maybe_rollback' => true,
|
67 |
'rollback_settings' => array(
|
@@ -71,8 +73,8 @@ $cm_antspam_plugin_info = array(
|
|
71 |
),
|
72 |
|
73 |
// PLUGIN ADVERTS
|
74 |
-
'render_adverts'
|
75 |
-
'adverts_settings'
|
76 |
'dashboard_widget' => true, // show dashboard widget (default: false)
|
77 |
'right_sidebar' => true, // show adverts sidebar (default: false)
|
78 |
'notice' => true, // show notice message (default: false)
|
@@ -80,22 +82,22 @@ $cm_antspam_plugin_info = array(
|
|
80 |
|
81 |
// FRAMEWORK MODULES
|
82 |
'load_factory_modules' => array(
|
83 |
-
array( 'libs/factory/bootstrap', '
|
84 |
-
array( 'libs/factory/forms', '
|
85 |
-
array( 'libs/factory/pages', '
|
86 |
-
array( 'libs/factory/clearfy', '
|
87 |
-
array( 'libs/factory/freemius', '
|
|
|
88 |
)
|
89 |
);
|
90 |
|
91 |
-
$cm_antspam_compatibility = new
|
92 |
'plugin_already_activate' => defined( 'WANTISPAM_PLUGIN_ACTIVE' ),
|
93 |
'required_php_version' => '5.4',
|
94 |
'required_wp_version' => '4.2.0',
|
95 |
'required_clearfy_check_component' => false
|
96 |
) ) );
|
97 |
|
98 |
-
|
99 |
/**
|
100 |
* If the plugin is compatible, then it will continue its work, otherwise it will be stopped,
|
101 |
* and the user will throw a warning.
|
@@ -121,7 +123,6 @@ define( 'WANTISPAM_PLUGIN_URL', plugins_url( null, __FILE__ ) );
|
|
121 |
|
122 |
|
123 |
|
124 |
-
|
125 |
/**
|
126 |
* -----------------------------------------------------------------------------
|
127 |
* PLUGIN INIT
|
3 |
Plugin Name: Anti-Spam
|
4 |
Plugin URI: http://wordpress.org/plugins/anti-spam/
|
5 |
Description: No spam in comments. No captcha.
|
6 |
+
Version: 6.5.4
|
7 |
Author: CreativeMotion
|
8 |
Text Domain: anti-spam
|
9 |
Author URI: https://cm-wp.com/
|
40 |
|
41 |
// @formatter:off
|
42 |
$cm_antspam_plugin_info = array(
|
43 |
+
'prefix' => 'wantispam_',
|
44 |
+
'plugin_name' => 'wantispam',
|
45 |
+
'plugin_title' => __( 'Anti-Spam', 'anti-spam' ),
|
46 |
|
47 |
// PLUGIN SUPPORT
|
48 |
'support_details' => array(
|
49 |
'url' => 'https://anti-spam.space',
|
50 |
'pages_map' => array(
|
51 |
+
'support' => 'support', // {site}/support
|
52 |
+
'docs' => 'docs' // {site}/docs
|
53 |
)
|
54 |
),
|
55 |
|
56 |
// PLUGIN PREMIUM SETTINGS
|
57 |
+
'has_premium' => true,
|
58 |
+
'license_settings' => array(
|
59 |
+
'provider' => 'freemius',
|
60 |
+
'slug' => 'antispam-premium',
|
61 |
+
'plugin_id' => '5079',
|
62 |
+
'public_key' => 'pk_98a99846a14067246257d4f43c04a',
|
63 |
+
//'plugin_id' => '4865',
|
64 |
+
//'public_key' => 'pk_05cbde6c0f9c96814c3b3cbff2259',
|
65 |
+
'price' => 15,
|
66 |
+
'has_updates' => true,
|
67 |
'updates_settings' => array(
|
68 |
'maybe_rollback' => true,
|
69 |
'rollback_settings' => array(
|
73 |
),
|
74 |
|
75 |
// PLUGIN ADVERTS
|
76 |
+
'render_adverts' => true,
|
77 |
+
'adverts_settings' => array(
|
78 |
'dashboard_widget' => true, // show dashboard widget (default: false)
|
79 |
'right_sidebar' => true, // show adverts sidebar (default: false)
|
80 |
'notice' => true, // show notice message (default: false)
|
82 |
|
83 |
// FRAMEWORK MODULES
|
84 |
'load_factory_modules' => array(
|
85 |
+
array( 'libs/factory/bootstrap', 'factory_bootstrap_426', 'admin' ),
|
86 |
+
array( 'libs/factory/forms', 'factory_forms_423', 'admin' ),
|
87 |
+
array( 'libs/factory/pages', 'factory_pages_425', 'admin' ),
|
88 |
+
array( 'libs/factory/clearfy', 'factory_clearfy_217', 'all' ),
|
89 |
+
array( 'libs/factory/freemius', 'factory_freemius_113', 'all' ),
|
90 |
+
array( 'libs/factory/feedback', 'factory_feedback_102', 'admin' )
|
91 |
)
|
92 |
);
|
93 |
|
94 |
+
$cm_antspam_compatibility = new Wbcr_Factory425_Requirements( __FILE__, array_merge( $cm_antspam_plugin_info, array(
|
95 |
'plugin_already_activate' => defined( 'WANTISPAM_PLUGIN_ACTIVE' ),
|
96 |
'required_php_version' => '5.4',
|
97 |
'required_wp_version' => '4.2.0',
|
98 |
'required_clearfy_check_component' => false
|
99 |
) ) );
|
100 |
|
|
|
101 |
/**
|
102 |
* If the plugin is compatible, then it will continue its work, otherwise it will be stopped,
|
103 |
* and the user will throw a warning.
|
123 |
|
124 |
|
125 |
|
|
|
126 |
/**
|
127 |
* -----------------------------------------------------------------------------
|
128 |
* PLUGIN INIT
|
assets/js/anti-spam-5.5.js
DELETED
@@ -1,77 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
Anti-spam plugin
|
3 |
-
No spam in comments. No captcha.
|
4 |
-
wordpress.org/plugins/anti-spam/
|
5 |
-
*/
|
6 |
-
|
7 |
-
"use strict";
|
8 |
-
(function() {
|
9 |
-
function anti_spam_init() {
|
10 |
-
|
11 |
-
var i,
|
12 |
-
len,
|
13 |
-
elements,
|
14 |
-
answer = '',
|
15 |
-
current_year = new Date().getFullYear(),
|
16 |
-
dynamic_control;
|
17 |
-
|
18 |
-
elements = document.querySelectorAll('.antispam-control-j');
|
19 |
-
for (i = 0; i < elements.length; i++) {
|
20 |
-
elements[i].value = 'on';
|
21 |
-
}
|
22 |
-
|
23 |
-
elements = document.querySelectorAll('.antispam-group');
|
24 |
-
len = elements.length;
|
25 |
-
for (i = 0; i < len; i++) { // hide inputs from users
|
26 |
-
elements[i].style.display = 'none';
|
27 |
-
}
|
28 |
-
|
29 |
-
elements = document.querySelectorAll('.antispam-control-a');
|
30 |
-
if ((elements) && (elements.length > 0)) { // get the answer
|
31 |
-
answer = elements[0].value;
|
32 |
-
}
|
33 |
-
|
34 |
-
elements = document.querySelectorAll('.antispam-control-q');
|
35 |
-
len = elements.length;
|
36 |
-
for (i = 0; i < len; i++) { // set answer into other input instead of user
|
37 |
-
elements[i].value = answer;
|
38 |
-
}
|
39 |
-
|
40 |
-
// clear value of the empty input because some themes are adding some value for all inputs
|
41 |
-
elements = document.querySelectorAll('.antispam-control-e');
|
42 |
-
len = elements.length;
|
43 |
-
for (i = 0; i < len; i++) {
|
44 |
-
elements[i].value = '';
|
45 |
-
}
|
46 |
-
|
47 |
-
//dynamic_control = '<input type="text" name="antspm-d" class="antispam-control antispam-control-d" value="' + current_year + '" />';
|
48 |
-
dynamic_control = document.createElement('input');
|
49 |
-
dynamic_control.setAttribute('type', 'hidden');
|
50 |
-
dynamic_control.setAttribute('name', 'antspm-d');
|
51 |
-
dynamic_control.setAttribute('class', 'antispam-control antispam-control-d');
|
52 |
-
dynamic_control.setAttribute('value', current_year);
|
53 |
-
|
54 |
-
// add input for every comment form if there are more than 1 form with IDs: comments, respond or commentform
|
55 |
-
elements = document.querySelectorAll('form');
|
56 |
-
len = elements.length;
|
57 |
-
for (i = 0; i < len; i++) {
|
58 |
-
if ( (elements[i].id === 'comments') || (elements[i].id === 'respond') || (elements[i].id === 'commentform') ) {
|
59 |
-
var class_index = elements[i].className.indexOf('anti-spam-form-processed');
|
60 |
-
if ( class_index == -1 ) { // form is not yet js processed
|
61 |
-
elements[i].appendChild(dynamic_control);
|
62 |
-
elements[i].className = elements[i].className + ' anti-spam-form-processed';
|
63 |
-
}
|
64 |
-
}
|
65 |
-
}
|
66 |
-
}
|
67 |
-
|
68 |
-
if (document.addEventListener) {
|
69 |
-
document.addEventListener('DOMContentLoaded', anti_spam_init, false);
|
70 |
-
}
|
71 |
-
|
72 |
-
// set 1 second timeout for having form loaded and adding support for browsers which does not support 'DOMContentLoaded' listener
|
73 |
-
setTimeout(function () {
|
74 |
-
anti_spam_init();
|
75 |
-
}, 1000);
|
76 |
-
|
77 |
-
})();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/js/anti-spam.js
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
Anti-spam plugin
|
3 |
+
No spam in comments. No captcha.
|
4 |
+
wordpress.org/plugins/anti-spam/
|
5 |
+
*/
|
6 |
+
|
7 |
+
"use strict";
|
8 |
+
(function() {
|
9 |
+
jQuery(document).ready(function($) {
|
10 |
+
var answer = $('.wantispam-control-a').val(),
|
11 |
+
current_year = new Date().getFullYear(),
|
12 |
+
dynamic_control = $('<input>');
|
13 |
+
|
14 |
+
dynamic_control.attr('type', 'hidden');
|
15 |
+
dynamic_control.attr('name', 'wantispam_d');
|
16 |
+
dynamic_control.addClass('wantispam-control').addClass('wantispam-control-d');
|
17 |
+
dynamic_control.val(current_year);
|
18 |
+
|
19 |
+
$('.wantispam-required-fields').each(function() {
|
20 |
+
if( !$(this).hasClass('wantispam-form-processed') ) {
|
21 |
+
|
22 |
+
// hide inputs from users
|
23 |
+
$('.wantispam-group', $(this)).hide();
|
24 |
+
// set js support marker
|
25 |
+
$('.wantispam-control-j', $(this)).val('on');
|
26 |
+
// set answer into other input instead of user
|
27 |
+
$('.wantispam-control-q', $(this)).val(answer);
|
28 |
+
// clear value of the empty input because some themes are adding some value for all inputs
|
29 |
+
$('.wantispam-control-e', $(this)).val('');
|
30 |
+
|
31 |
+
$(this).append(dynamic_control.clone());
|
32 |
+
$(this).addClass('wantispam-form-processed');
|
33 |
+
}
|
34 |
+
});
|
35 |
+
});
|
36 |
+
})();
|
includes/__anti-spam-info.php
DELETED
@@ -1,79 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! defined( 'ABSPATH' ) ) { // Avoid direct calls to this file and prevent full path disclosure
|
4 |
-
exit;
|
5 |
-
}
|
6 |
-
|
7 |
-
function antispam_admin_notice() {
|
8 |
-
global $pagenow;
|
9 |
-
if ($pagenow == 'edit-comments.php'):
|
10 |
-
$user_id = get_current_user_id();
|
11 |
-
$antispam_info_visibility = get_user_meta($user_id, 'antispam_info_visibility', true);
|
12 |
-
if ($antispam_info_visibility == 1 OR $antispam_info_visibility == ''):
|
13 |
-
$blocked_total = 0; // show 0 by default
|
14 |
-
$antispam_stats = get_option('antispam_stats', array());
|
15 |
-
if (isset($antispam_stats['blocked_total'])) {
|
16 |
-
$blocked_total = $antispam_stats['blocked_total'];
|
17 |
-
}
|
18 |
-
?>
|
19 |
-
<div class="update-nag antispam-panel-info">
|
20 |
-
<p style="margin: 0;">
|
21 |
-
<?php echo $blocked_total; ?> spam comments were blocked by <a href="http://wordpress.org/plugins/anti-spam/">Anti-spam</a> plugin so far.
|
22 |
-
<a href="http://codecanyon.net/item/antispam-pro/6491169?ref=webvitalii" title="Anti-spam Pro">Upgrade to Pro</a> for more advanced protection.
|
23 |
-
</p>
|
24 |
-
</div>
|
25 |
-
<?php
|
26 |
-
endif; // end of if($antispam_info_visibility)
|
27 |
-
endif; // end of if($pagenow == 'edit-comments.php')
|
28 |
-
}
|
29 |
-
add_action('admin_notices', 'antispam_admin_notice');
|
30 |
-
|
31 |
-
|
32 |
-
function antispam_display_screen_option() {
|
33 |
-
global $pagenow;
|
34 |
-
if ($pagenow == 'edit-comments.php'):
|
35 |
-
$user_id = get_current_user_id();
|
36 |
-
$antispam_info_visibility = get_user_meta($user_id, 'antispam_info_visibility', true);
|
37 |
-
|
38 |
-
if ($antispam_info_visibility == 1 OR $antispam_info_visibility == '') {
|
39 |
-
$checked = 'checked="checked"';
|
40 |
-
} else {
|
41 |
-
$checked = '';
|
42 |
-
}
|
43 |
-
|
44 |
-
?>
|
45 |
-
<script>
|
46 |
-
jQuery(function($){
|
47 |
-
$('.antispam_screen_options_group').insertAfter('#screen-options-wrap #adv-settings');
|
48 |
-
});
|
49 |
-
</script>
|
50 |
-
<form method="post" class="antispam_screen_options_group" style="padding: 20px 0 5px 0;">
|
51 |
-
<input type="hidden" name="antispam_option_submit" value="1" />
|
52 |
-
<label>
|
53 |
-
<input name="antispam_info_visibility" type="checkbox" value="1" <?php echo $checked; ?> />
|
54 |
-
Anti-spam info
|
55 |
-
</label>
|
56 |
-
<input type="submit" class="button" value="<?php _e('Apply'); ?>" />
|
57 |
-
</form>
|
58 |
-
<?php
|
59 |
-
endif; // end of if($pagenow == 'edit-comments.php')
|
60 |
-
}
|
61 |
-
|
62 |
-
|
63 |
-
function antispam_register_screen_option() {
|
64 |
-
add_filter('screen_layout_columns', 'antispam_display_screen_option');
|
65 |
-
}
|
66 |
-
add_action('admin_head', 'antispam_register_screen_option');
|
67 |
-
|
68 |
-
|
69 |
-
function antispam_update_screen_option() {
|
70 |
-
if (isset($_POST['antispam_option_submit']) AND $_POST['antispam_option_submit'] == 1) {
|
71 |
-
$user_id = get_current_user_id();
|
72 |
-
if (isset($_POST['antispam_info_visibility']) AND $_POST['antispam_info_visibility'] == 1) {
|
73 |
-
update_user_meta($user_id, 'antispam_info_visibility', 1);
|
74 |
-
} else {
|
75 |
-
update_user_meta($user_id, 'antispam_info_visibility', 0);
|
76 |
-
}
|
77 |
-
}
|
78 |
-
}
|
79 |
-
add_action('admin_init', 'antispam_update_screen_option');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-anti-spam-plugin.php
CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
13 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
14 |
* @copyright (c) 20.10.2019, Webcraftic
|
15 |
*/
|
16 |
-
class Plugin extends \
|
17 |
|
18 |
/**
|
19 |
* Number of comments that will be sent for verification
|
@@ -24,7 +24,7 @@ class Plugin extends \Wbcr_Factory424_Plugin {
|
|
24 |
|
25 |
/**
|
26 |
* @see self::app()
|
27 |
-
* @var \
|
28 |
*/
|
29 |
private static $app;
|
30 |
|
@@ -70,7 +70,7 @@ class Plugin extends \Wbcr_Factory424_Plugin {
|
|
70 |
* классам.
|
71 |
*
|
72 |
* @since 6.0
|
73 |
-
* @return \
|
74 |
*/
|
75 |
public static function app() {
|
76 |
return self::$app;
|
@@ -97,7 +97,10 @@ class Plugin extends \Wbcr_Factory424_Plugin {
|
|
97 |
|
98 |
self::app()->registerPage( '\WBCR\Antispam\Page\License', WANTISPAM_PLUGIN_DIR . '/admin/pages/class-pages-license.php' );
|
99 |
self::app()->registerPage( '\WBCR\Antispam\Page\Logs', WANTISPAM_PLUGIN_DIR . '/admin/pages/class-pages-logs.php' );
|
100 |
-
|
|
|
|
|
|
|
101 |
}
|
102 |
|
103 |
/**
|
13 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
14 |
* @copyright (c) 20.10.2019, Webcraftic
|
15 |
*/
|
16 |
+
class Plugin extends \Wbcr_Factory425_Plugin {
|
17 |
|
18 |
/**
|
19 |
* Number of comments that will be sent for verification
|
24 |
|
25 |
/**
|
26 |
* @see self::app()
|
27 |
+
* @var \Wbcr_Factory425_Plugin
|
28 |
*/
|
29 |
private static $app;
|
30 |
|
70 |
* классам.
|
71 |
*
|
72 |
* @since 6.0
|
73 |
+
* @return \Wbcr_Factory425_Plugin|\WBCR\Antispam\Plugin
|
74 |
*/
|
75 |
public static function app() {
|
76 |
return self::$app;
|
97 |
|
98 |
self::app()->registerPage( '\WBCR\Antispam\Page\License', WANTISPAM_PLUGIN_DIR . '/admin/pages/class-pages-license.php' );
|
99 |
self::app()->registerPage( '\WBCR\Antispam\Page\Logs', WANTISPAM_PLUGIN_DIR . '/admin/pages/class-pages-logs.php' );
|
100 |
+
|
101 |
+
if ( ! $this->premium->is_activate() ) {
|
102 |
+
self::app()->registerPage( '\WBCR\Antispam\Page\About', WANTISPAM_PLUGIN_DIR . '/admin/pages/class-pages-about.php' );
|
103 |
+
}
|
104 |
}
|
105 |
|
106 |
/**
|
includes/class-protector.php
CHANGED
@@ -16,7 +16,7 @@ class Protector {
|
|
16 |
add_action( 'comment_form', [ $this, 'form_part' ] ); // add anti-spam inputs to the comment form
|
17 |
|
18 |
if ( \WBCR\Antispam\Plugin::app()->premium->is_activate() ) {
|
19 |
-
add_action( 'comment_form_after',
|
20 |
}
|
21 |
|
22 |
if ( ! is_admin() ) { // without this check it is not possible to add comment in admin section
|
@@ -24,36 +24,31 @@ class Protector {
|
|
24 |
}
|
25 |
}
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
public function enqueue_script() {
|
28 |
global $withcomments; // WP flag to show comments on all pages
|
|
|
|
|
29 |
if ( ( is_singular() || $withcomments ) && comments_open() ) { // load script only for pages with comments form
|
30 |
-
wp_enqueue_script( 'anti-spam-script'
|
31 |
}
|
32 |
}
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
public function form_part() {
|
35 |
-
$rn = "\r\n"; // .chr(13).chr(10)
|
36 |
-
|
37 |
-
echo $rn . '<!-- Anti-spam plugin wordpress.org/plugins/anti-spam/ -->' . $rn;
|
38 |
-
echo '
|
39 |
-
<input type="hidden" name="antspm-j" class="antispam-control antispam-control-j" value="off" />
|
40 |
-
' . $rn; // trap for simple bots that do not emulate the browser
|
41 |
-
|
42 |
-
echo '
|
43 |
-
<input type="hidden" name="antspm-t" class="antispam-control antispam-control-t" value="' . time() . '" />
|
44 |
-
' . $rn; // Start time of form filling
|
45 |
-
|
46 |
if ( ! is_user_logged_in() ) { // add anti-spam fields only for not logged in users
|
47 |
-
|
48 |
-
echo ' <p class="antispam-group antispam-group-q" style="clear: both;">
|
49 |
-
<label>Current ye@r <span class="required">*</span></label>
|
50 |
-
<input type="hidden" name="antspm-a" class="antispam-control antispam-control-a" value="' . date( 'Y' ) . '" />
|
51 |
-
<input type="text" name="antspm-q" class="antispam-control antispam-control-q" value="' . \WBCR\Antispam\Plugin::app()->getPluginVersion() . '" autocomplete="off" />
|
52 |
-
</p>' . $rn; // question (hidden with js)
|
53 |
-
echo ' <p class="antispam-group antispam-group-e" style="display: none;">
|
54 |
-
<label>Leave this field empty</label>
|
55 |
-
<input type="text" name="antspm-e-email-url-website" class="antispam-control antispam-control-e" value="" autocomplete="off" />
|
56 |
-
</p>' . $rn; // empty field (hidden with css); trap for spammers because many bots will try to put email or url here
|
57 |
}
|
58 |
}
|
59 |
|
@@ -96,20 +91,9 @@ class Protector {
|
|
96 |
public function check_for_spam() {
|
97 |
$spam_flag = false;
|
98 |
|
99 |
-
$antspm_q = '';
|
100 |
-
|
101 |
-
|
102 |
-
}
|
103 |
-
|
104 |
-
$antspm_d = '';
|
105 |
-
if ( isset( $_POST['antspm-d'] ) ) {
|
106 |
-
$antspm_d = trim( $_POST['antspm-d'] );
|
107 |
-
}
|
108 |
-
|
109 |
-
$antspm_e = '';
|
110 |
-
if ( isset( $_POST['antspm-e-email-url-website'] ) ) {
|
111 |
-
$antspm_e = trim( $_POST['antspm-e-email-url-website'] );
|
112 |
-
}
|
113 |
|
114 |
if ( $antspm_q != date( 'Y' ) ) { // year-answer is wrong - it is spam
|
115 |
if ( $antspm_d != date( 'Y' ) ) { // extra js-only check: there is no js added input - it is spam
|
@@ -194,17 +178,6 @@ class Protector {
|
|
194 |
|
195 |
wp_set_comment_status( $comment_ID, 'spam' );
|
196 |
}
|
197 |
-
|
198 |
-
/**
|
199 |
-
* Controls the display of a privacy related notice underneath the comment form using the `akismet_comment_form_privacy_notice` option and filter respectively.
|
200 |
-
* Default is top not display the notice, leaving the choice to site admins, or integrators.
|
201 |
-
*/
|
202 |
-
public function display_comment_form_privacy_notice() {
|
203 |
-
if ( ! \WBCR\Antispam\Plugin::app()->getPopulateOption( 'comment_form_privacy_notice' ) ) {
|
204 |
-
return;
|
205 |
-
}
|
206 |
-
echo '<p class="wantispam-comment-form-privacy-notice" style="margin-top:10px;">' . sprintf( __( 'This site uses Antispam to reduce spam. <a href="%s" target="_blank" rel="nofollow noopener">Learn how your comment data is processed</a>.', 'anti-spam' ), 'https://anti-spam.space/antispam-privacy/' ) . '</p>';
|
207 |
-
}
|
208 |
}
|
209 |
|
210 |
new \WBCR\Antispam\Protector();
|
16 |
add_action( 'comment_form', [ $this, 'form_part' ] ); // add anti-spam inputs to the comment form
|
17 |
|
18 |
if ( \WBCR\Antispam\Plugin::app()->premium->is_activate() ) {
|
19 |
+
add_action( 'comment_form_after', 'wantispam_display_comment_form_privacy_notice' );
|
20 |
}
|
21 |
|
22 |
if ( ! is_admin() ) { // without this check it is not possible to add comment in admin section
|
24 |
}
|
25 |
}
|
26 |
|
27 |
+
/**
|
28 |
+
* We enqueue js script required for the plugin to work. The script overwrites the values
|
29 |
+
* of hidden fields or determines whether the user uses javascript or not.
|
30 |
+
*
|
31 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
32 |
+
* @since 1.1.1
|
33 |
+
*/
|
34 |
public function enqueue_script() {
|
35 |
global $withcomments; // WP flag to show comments on all pages
|
36 |
+
wp_register_script( 'anti-spam-script', WANTISPAM_PLUGIN_URL . '/assets/js/anti-spam.js', [ 'jquery' ], \WBCR\Antispam\Plugin::app()->getPluginVersion(), true );
|
37 |
+
|
38 |
if ( ( is_singular() || $withcomments ) && comments_open() ) { // load script only for pages with comments form
|
39 |
+
wp_enqueue_script( 'anti-spam-script' );
|
40 |
}
|
41 |
}
|
42 |
|
43 |
+
/**
|
44 |
+
* Renders required fields into the comment form on the page.
|
45 |
+
*
|
46 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
47 |
+
* @since 1.1
|
48 |
+
*/
|
49 |
public function form_part() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
if ( ! is_user_logged_in() ) { // add anti-spam fields only for not logged in users
|
51 |
+
echo wantispam_get_required_fields();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
}
|
54 |
|
91 |
public function check_for_spam() {
|
92 |
$spam_flag = false;
|
93 |
|
94 |
+
$antspm_q = \WBCR\Antispam\Plugin::app()->request->post( "wantispam_q", '', 'trim' );
|
95 |
+
$antspm_d = \WBCR\Antispam\Plugin::app()->request->post( "wantispam_d", '', 'trim' );
|
96 |
+
$antspm_e = \WBCR\Antispam\Plugin::app()->request->post( "wantispam_e_email_url_website", '', 'trim' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
|
98 |
if ( $antspm_q != date( 'Y' ) ) { // year-answer is wrong - it is spam
|
99 |
if ( $antspm_d != date( 'Y' ) ) { // extra js-only check: there is no js added input - it is spam
|
178 |
|
179 |
wp_set_comment_status( $comment_ID, 'spam' );
|
180 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
}
|
182 |
|
183 |
new \WBCR\Antispam\Protector();
|
includes/functions.php
CHANGED
@@ -1,15 +1,105 @@
|
|
1 |
<?php
|
2 |
/**
|
|
|
3 |
*
|
4 |
-
* @author
|
5 |
* @copyright (c) 12.12.2019, Webcraftic
|
6 |
* @version 1.0
|
7 |
*/
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
/**
|
10 |
* Should show a page about the plugin or not.
|
11 |
*
|
12 |
* @return bool
|
|
|
13 |
*/
|
14 |
function wantispam_is_need_show_about_page() {
|
15 |
if ( \WBCR\Antispam\Plugin::app()->isNetworkActive() ) {
|
@@ -58,8 +148,8 @@ function wantispam_doing_rest_api() {
|
|
58 |
}
|
59 |
|
60 |
/**
|
61 |
-
* @since 2.1.0
|
62 |
* @return bool
|
|
|
63 |
*/
|
64 |
function wantispam_doing_ajax() {
|
65 |
if ( function_exists( 'wp_doing_ajax' ) ) {
|
@@ -70,8 +160,8 @@ function wantispam_doing_ajax() {
|
|
70 |
}
|
71 |
|
72 |
/**
|
73 |
-
* @since 2.1.0
|
74 |
* @return bool
|
|
|
75 |
*/
|
76 |
function wantispam_doing_cron() {
|
77 |
if ( function_exists( 'wp_doing_cron' ) ) {
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Helper functions
|
4 |
*
|
5 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
6 |
* @copyright (c) 12.12.2019, Webcraftic
|
7 |
* @version 1.0
|
8 |
*/
|
9 |
|
10 |
+
/**
|
11 |
+
* Gets honeypot fields.
|
12 |
+
*
|
13 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
14 |
+
* @since 6.5.3
|
15 |
+
*/
|
16 |
+
function wantispam_get_honeypot_fields() {
|
17 |
+
$rn = "\r\n"; // .chr(13).chr(10)
|
18 |
+
$html = '';
|
19 |
+
|
20 |
+
$html .= '<div class="wantispam-group wantispam-group-q" style="clear: both;">
|
21 |
+
<label>Current ye@r <span class="required">*</span></label>
|
22 |
+
<input type="hidden" name="wantispam_a" class="wantispam-control wantispam-control-a" value="' . date( 'Y' ) . '" />
|
23 |
+
<input type="text" name="wantispam_q" class="wantispam-control wantispam-control-q" value="' . \WBCR\Antispam\Plugin::app()->getPluginVersion() . '" autocomplete="off" />
|
24 |
+
</div>' . $rn; // question (hidden with js)
|
25 |
+
$html .= '<div class="wantispam-group wantispam-group-e" style="display: none;">
|
26 |
+
<label>Leave this field empty</label>
|
27 |
+
<input type="text" name="wantispam_e_email_url_website" class="wantispam-control wantispam-control-e" value="" autocomplete="off" />
|
28 |
+
</div>' . $rn; // empty field (hidden with css); trap for spammers because many bots will try to put email or url here
|
29 |
+
|
30 |
+
return $html;
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Gets required fields into the comment form on the page.
|
35 |
+
*
|
36 |
+
* @param string $html
|
37 |
+
*
|
38 |
+
* @return string
|
39 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
40 |
+
* @since 6.5.3
|
41 |
+
*
|
42 |
+
*/
|
43 |
+
function wantispam_get_required_fields( $render_honeypot_fields = true ) {
|
44 |
+
$html = '<!-- Anti-spam plugin wordpress.org/plugins/anti-spam/ -->';
|
45 |
+
$html .= '<div class="wantispam-required-fields">';
|
46 |
+
$html .= '<input type="hidden" name="wantispam_t" class="wantispam-control wantispam-control-t" value="' . time() . '" />'; // Start time of form filling
|
47 |
+
if ( $render_honeypot_fields ) {
|
48 |
+
$html .= wantispam_get_honeypot_fields();
|
49 |
+
}
|
50 |
+
$html .= '</div>';
|
51 |
+
$html .= '<!--\End Anti-spam plugin -->';
|
52 |
+
|
53 |
+
return $html;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Controls the display of a privacy related notice underneath the comment form.
|
58 |
+
*
|
59 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
60 |
+
* @since 6.5.3
|
61 |
+
*/
|
62 |
+
function wantispam_display_comment_form_privacy_notice( $echo = false ) {
|
63 |
+
if ( ! \WBCR\Antispam\Plugin::app()->getPopulateOption( 'comment_form_privacy_notice' ) ) {
|
64 |
+
return '';
|
65 |
+
}
|
66 |
+
|
67 |
+
$output = '<p class="wantispam-comment-form-privacy-notice" style="margin-top:10px;">' . sprintf( __( 'This site uses Antispam to reduce spam. <a href="%s" target="_blank" rel="nofollow noopener">Learn how your comment data is processed</a>.', 'anti-spam' ), 'https://anti-spam.space/antispam-privacy/' ) . '</p>';
|
68 |
+
|
69 |
+
if ( ! $echo ) {
|
70 |
+
return $output;
|
71 |
+
}
|
72 |
+
|
73 |
+
echo $output;
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Return premium widget markup
|
78 |
+
*
|
79 |
+
* @return string
|
80 |
+
* @since 6.5.3
|
81 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
82 |
+
*/
|
83 |
+
function wantispam_get_sidebar_premium_widget() {
|
84 |
+
ob_start();
|
85 |
+
?>
|
86 |
+
<div class="wbcr-factory-sidebar-widget">
|
87 |
+
<p>
|
88 |
+
<a href="https://anti-spam.space/pricing/" target="_blank" rel="noopener nofollow">
|
89 |
+
<img style="width: 100%;"
|
90 |
+
src="https://api.cm-wp.com/wp-content/uploads/2019/12/baner_antispam_vertical.jpg" alt="">
|
91 |
+
</a>
|
92 |
+
</p>
|
93 |
+
</div>
|
94 |
+
<?php
|
95 |
+
return ob_get_clean();
|
96 |
+
}
|
97 |
+
|
98 |
/**
|
99 |
* Should show a page about the plugin or not.
|
100 |
*
|
101 |
* @return bool
|
102 |
+
* @since 6.5.3
|
103 |
*/
|
104 |
function wantispam_is_need_show_about_page() {
|
105 |
if ( \WBCR\Antispam\Plugin::app()->isNetworkActive() ) {
|
148 |
}
|
149 |
|
150 |
/**
|
|
|
151 |
* @return bool
|
152 |
+
* @since 6.5.3
|
153 |
*/
|
154 |
function wantispam_doing_ajax() {
|
155 |
if ( function_exists( 'wp_doing_ajax' ) ) {
|
160 |
}
|
161 |
|
162 |
/**
|
|
|
163 |
* @return bool
|
164 |
+
* @since 6.5.3
|
165 |
*/
|
166 |
function wantispam_doing_cron() {
|
167 |
if ( function_exists( 'wp_doing_cron' ) ) {
|
includes/logger/assets/js/base.js
CHANGED
@@ -28,10 +28,10 @@
|
|
28 |
|
29 |
jQuery('#js-wlogger-viewer').html('');
|
30 |
jQuery('#js-wlogger-size').text('0B');
|
31 |
-
jQuery.
|
32 |
},
|
33 |
error: function(jqXHR, textStatus, errorThrown) {
|
34 |
-
jQuery.
|
35 |
btn.html(currentBtnText);
|
36 |
}
|
37 |
});
|
28 |
|
29 |
jQuery('#js-wlogger-viewer').html('');
|
30 |
jQuery('#js-wlogger-size').text('0B');
|
31 |
+
jQuery.wbcr_factory_clearfy_217.app.showNotice(data.message, data.type);
|
32 |
},
|
33 |
error: function(jqXHR, textStatus, errorThrown) {
|
34 |
+
jQuery.wbcr_factory_clearfy_217.app.showNotice('Error: ' + errorThrown + ', status: ' + textStatus, 'danger');
|
35 |
btn.html(currentBtnText);
|
36 |
}
|
37 |
});
|
index.php
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
<?php
|
2 |
-
// Silence is golden.
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
libs/factory/bootstrap/assets/css-min/bootstrap.accordion.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-accordion{margin:0 0 30px;border-top:1px solid #DDD;border-right:1px solid #DDD;border-left:1px solid #DDD;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.factory-bootstrap-426 .factory-accordion>h3{border-bottom:1px solid #DDD;cursor:pointer;padding:8px 15px;margin:0}.factory-bootstrap-426 .factory-accordion>div{display:none;margin:0;border-bottom:1px solid #DDD}.factory-bootstrap-426 .factory-accordion-item{display:none}.factory-bootstrap-426 .inner-factory-accordion-item{padding:10px 0}.factory-bootstrap-426 .factory-accordion>h3.active:hover{cursor:default}
|
libs/factory/bootstrap/assets/css-min/bootstrap.blue.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .btn-primary{background:#e1a948;border-color:#d39323;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:focus,.factory-bootstrap-426 .btn-primary:hover{background:#db9825;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8be74,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8be74,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:active{background:#db9825;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-426 .btn-primary:disabled,.factory-bootstrap-426 .btn-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.factory-bootstrap-426 .btn-group .btn.active.value{background-color:#e1a948;-webkit-box-shadow:inset 0 1px 2px #d39323;box-shadow:inset 0 1px 2px #d39323;border-top:1px solid #d39323;border-bottom:1px solid #d39323;border-left:1px solid #d39323}.factory-bootstrap-426 .pagination>.active>a,.factory-bootstrap-426 .pagination>.active>a:focus,.factory-bootstrap-426 .pagination>.active>a:hover,.factory-bootstrap-426 .pagination>.active>span,.factory-bootstrap-426 .pagination>.active>span:focus,.factory-bootstrap-426 .pagination>.active>span:hover{background-color:#e1a948;border-color:#d39323}
|
libs/factory/bootstrap/assets/css-min/bootstrap.coffee.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .btn-primary{background:#c7a589;border-color:#b78a66;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:focus,.factory-bootstrap-426 .btn-primary:hover{background:#ba906d;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 1px 0 #d7bfac,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #d7bfac,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:active{background:#ba906d;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-426 .btn-primary:disabled,.factory-bootstrap-426 .btn-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.factory-bootstrap-426 .btn-group .btn.active.value{background-color:#c7a589;-webkit-box-shadow:inset 0 1px 2px #b78a66;box-shadow:inset 0 1px 2px #b78a66;border-top:1px solid #b78a66;border-bottom:1px solid #b78a66;border-left:1px solid #b78a66}.factory-bootstrap-426 .pagination>.active>a,.factory-bootstrap-426 .pagination>.active>a:focus,.factory-bootstrap-426 .pagination>.active>a:hover,.factory-bootstrap-426 .pagination>.active>span,.factory-bootstrap-426 .pagination>.active>span:focus,.factory-bootstrap-426 .pagination>.active>span:hover{background-color:#c7a589;border-color:#b78a66}
|
libs/factory/bootstrap/assets/css-min/bootstrap.core.min.css
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-425 article,.factory-bootstrap-425 aside,.factory-bootstrap-425 details,.factory-bootstrap-425 figcaption,.factory-bootstrap-425 figure,.factory-bootstrap-425 footer,.factory-bootstrap-425 header,.factory-bootstrap-425 hgroup,.factory-bootstrap-425 main,.factory-bootstrap-425 nav,.factory-bootstrap-425 section,.factory-bootstrap-425 summary{display:block}.factory-bootstrap-425 audio,.factory-bootstrap-425 canvas,.factory-bootstrap-425 video{display:inline-block}.factory-bootstrap-425 audio:not([controls]){display:none;height:0}.factory-bootstrap-425 [hidden],.factory-bootstrap-425 template{display:none}.factory-bootstrap-425 body{margin:0}.factory-bootstrap-425 a{background:0 0}.factory-bootstrap-425 a:focus{outline:thin dotted}.factory-bootstrap-425 a:active,.factory-bootstrap-425 a:hover{outline:0}.factory-bootstrap-425 h1{margin:.67em 0}.factory-bootstrap-425 b,.factory-bootstrap-425 strong{font-weight:700}.factory-bootstrap-425 dfn{font-style:italic}.factory-bootstrap-425 hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-425 mark{color:#000;background:#ff0}.factory-bootstrap-425 code,.factory-bootstrap-425 kbd,.factory-bootstrap-425 pre,.factory-bootstrap-425 samp{font-size:1em}.factory-bootstrap-425 pre{white-space:pre-wrap}.factory-bootstrap-425 q{quotes:"\201C" "\201D" "\2018" "\2019"}.factory-bootstrap-425 sub,.factory-bootstrap-425 sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.factory-bootstrap-425 sup{top:-.5em}.factory-bootstrap-425 sub{bottom:-.25em}.factory-bootstrap-425 img{border:0}.factory-bootstrap-425 svg:not(:root){overflow:hidden}.factory-bootstrap-425 figure{margin:0}.factory-bootstrap-425 button,.factory-bootstrap-425 input,.factory-bootstrap-425 select,.factory-bootstrap-425 textarea{margin:0}.factory-bootstrap-425 button,.factory-bootstrap-425 select{text-transform:none}.factory-bootstrap-425 select{padding-right:4px!important}.factory-bootstrap-425 button,.factory-bootstrap-425 input[type=reset],.factory-bootstrap-425 input[type=submit],html .factory-bootstrap-425 input[type=button]{cursor:pointer;-webkit-appearance:button}.factory-bootstrap-425 button[disabled],html .factory-bootstrap-425 input[disabled]{cursor:default}.factory-bootstrap-425 input[type=checkbox],.factory-bootstrap-425 input[type=radio]{padding:0;box-sizing:border-box}.factory-bootstrap-425 input[type=search]{-webkit-appearance:textfield}.factory-bootstrap-425 input[type=search]::-webkit-search-cancel-button,.factory-bootstrap-425 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.factory-bootstrap-425 button::-moz-focus-inner,.factory-bootstrap-425 input::-moz-focus-inner{padding:0;border:0}.factory-bootstrap-425 textarea{overflow:auto;vertical-align:top}.factory-bootstrap-425 table{border-collapse:collapse;border-spacing:0}@media print{.factory-bootstrap-425 *{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}.factory-bootstrap-425 a,.factory-bootstrap-425 a:visited{text-decoration:underline}.factory-bootstrap-425 a[href]:after{content:" (" attr(href) ")"}.factory-bootstrap-425 abbr[title]:after{content:" (" attr(title) ")"}.factory-bootstrap-425 a[href^="javascript:"]:after,.factory-bootstrap-425 a[href^="#"]:after{content:""}.factory-bootstrap-425 blockquote,.factory-bootstrap-425 pre{border:1px solid #999;page-break-inside:avoid}.factory-bootstrap-425 thead{display:table-header-group}.factory-bootstrap-425 img,.factory-bootstrap-425 tr{page-break-inside:avoid}.factory-bootstrap-425 img{max-width:100%!important}@page{margin:2cm .5cm}.factory-bootstrap-425 h2,.factory-bootstrap-425 h3,.factory-bootstrap-425 p{orphans:3;widows:3}.factory-bootstrap-425 h2,.factory-bootstrap-425 h3{page-break-after:avoid}.factory-bootstrap-425 select{background:#fff!important}.factory-bootstrap-425 .navbar{display:none}.factory-bootstrap-425 .table td,.factory-bootstrap-425 .table th{background-color:#fff!important}.factory-bootstrap-425 .btn>.caret,.factory-bootstrap-425 .dropup>.btn>.caret{border-top-color:#000!important}.factory-bootstrap-425 .label{border:1px solid #000}.factory-bootstrap-425 .table{border-collapse:collapse!important}.factory-bootstrap-425 .table-bordered td,.factory-bootstrap-425 .table-bordered th{border:1px solid #ddd!important}}.factory-bootstrap-425 *,.factory-bootstrap-425 :after,.factory-bootstrap-425 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html .factory-bootstrap-425{-webkit-tap-highlight-color:rgba(0,0,0,0)}.factory-bootstrap-425 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.factory-bootstrap-425 button,.factory-bootstrap-425 input,.factory-bootstrap-425 select,.factory-bootstrap-425 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.factory-bootstrap-425 img{vertical-align:middle}.factory-bootstrap-425 .img-responsive{display:block;height:auto;max-width:100%}.factory-bootstrap-425 .img-rounded{border-radius:6px}.factory-bootstrap-425 .img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.factory-bootstrap-425 .img-circle{border-radius:50%}.factory-bootstrap-425 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.factory-bootstrap-425 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.factory-bootstrap-425 .h1,.factory-bootstrap-425 .h2,.factory-bootstrap-425 .h3,.factory-bootstrap-425 .h4,.factory-bootstrap-425 .h5,.factory-bootstrap-425 .h6,.factory-bootstrap-425 h1,.factory-bootstrap-425 h2,.factory-bootstrap-425 h3,.factory-bootstrap-425 h4,.factory-bootstrap-425 h5,.factory-bootstrap-425 h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.factory-bootstrap-425 .h1 .small,.factory-bootstrap-425 .h1 small,.factory-bootstrap-425 .h2 .small,.factory-bootstrap-425 .h2 small,.factory-bootstrap-425 .h3 .small,.factory-bootstrap-425 .h3 small,.factory-bootstrap-425 .h4 .small,.factory-bootstrap-425 .h4 small,.factory-bootstrap-425 .h5 .small,.factory-bootstrap-425 .h5 small,.factory-bootstrap-425 .h6 .small,.factory-bootstrap-425 .h6 small,.factory-bootstrap-425 h1 .small,.factory-bootstrap-425 h1 small,.factory-bootstrap-425 h2 .small,.factory-bootstrap-425 h2 small,.factory-bootstrap-425 h3 .small,.factory-bootstrap-425 h3 small,.factory-bootstrap-425 h4 .small,.factory-bootstrap-425 h4 small,.factory-bootstrap-425 h5 .small,.factory-bootstrap-425 h5 small,.factory-bootstrap-425 h6 .small,.factory-bootstrap-425 h6 small{font-weight:400;line-height:1;color:#999}.factory-bootstrap-425 h1,.factory-bootstrap-425 h2,.factory-bootstrap-425 h3{margin-top:20px;margin-bottom:10px}.factory-bootstrap-425 h1 .small,.factory-bootstrap-425 h1 small,.factory-bootstrap-425 h2 .small,.factory-bootstrap-425 h2 small,.factory-bootstrap-425 h3 .small,.factory-bootstrap-425 h3 small{font-size:65%}.factory-bootstrap-425 h4,.factory-bootstrap-425 h5,.factory-bootstrap-425 h6{margin-top:10px;margin-bottom:10px}.factory-bootstrap-425 h4 .small,.factory-bootstrap-425 h4 small,.factory-bootstrap-425 h5 .small,.factory-bootstrap-425 h5 small,.factory-bootstrap-425 h6 .small,.factory-bootstrap-425 h6 small{font-size:75%}.factory-bootstrap-425 .h1,.factory-bootstrap-425 h1{font-size:36px}.factory-bootstrap-425 .h2,.factory-bootstrap-425 h2{font-size:30px}.factory-bootstrap-425 .h3,.factory-bootstrap-425 h3{font-size:24px}.factory-bootstrap-425 .h4,.factory-bootstrap-425 h4{font-size:18px}.factory-bootstrap-425 .h5,.factory-bootstrap-425 h5{font-size:14px}.factory-bootstrap-425 .h6,.factory-bootstrap-425 h6{font-size:12px}.factory-bootstrap-425 p{margin:0 0 10px}.factory-bootstrap-425 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.factory-bootstrap-425 .small,.factory-bootstrap-425 small{font-size:85%}.factory-bootstrap-425 cite{font-style:normal}.factory-bootstrap-425 .text-muted{color:#999}.factory-bootstrap-425 .text-primary{color:#428bca}.factory-bootstrap-425 .text-primary:hover{color:#3071a9}.factory-bootstrap-425 .text-warning{color:#8a6d3b}.factory-bootstrap-425 .text-warning:hover{color:#66512c}.factory-bootstrap-425 .text-danger{color:#a94442}.factory-bootstrap-425 .text-danger:hover{color:#843534}.factory-bootstrap-425 .text-success{color:#3c763d}.factory-bootstrap-425 .text-success:hover{color:#2b542c}.factory-bootstrap-425 .text-info{color:#31708f}.factory-bootstrap-425 .text-info:hover{color:#245269}.factory-bootstrap-425 .text-left{text-align:left}.factory-bootstrap-425 .text-right{text-align:right}.factory-bootstrap-425 .text-center{text-align:center}.factory-bootstrap-425 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.factory-bootstrap-425 ol,.factory-bootstrap-425 ul{margin-top:0;margin-bottom:10px}.factory-bootstrap-425 ol ol,.factory-bootstrap-425 ol ul,.factory-bootstrap-425 ul ol,.factory-bootstrap-425 ul ul{margin-bottom:0}.factory-bootstrap-425 .list-inline,.factory-bootstrap-425 .list-unstyled{padding-left:0;list-style:none}.factory-bootstrap-425 .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.factory-bootstrap-425 .list-inline>li:first-child{padding-left:0}.factory-bootstrap-425 dl{margin-top:0;margin-bottom:20px}.factory-bootstrap-425 dd,.factory-bootstrap-425 dt{line-height:1.428571429}.factory-bootstrap-425 dt{font-weight:700}.factory-bootstrap-425 dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:after,.dl-horizontal dd:before{display:table;content:" "}.dl-horizontal dd:after{clear:both}}.factory-bootstrap-425 abbr[data-original-title],.factory-bootstrap-425 abbr[title]{cursor:help;border-bottom:1px dotted #999}.factory-bootstrap-425 .initialism{font-size:90%;text-transform:uppercase}.factory-bootstrap-425 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.factory-bootstrap-425 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.factory-bootstrap-425 blockquote p:last-child{margin-bottom:0}.factory-bootstrap-425 blockquote .small,.factory-bootstrap-425 blockquote small{display:block;line-height:1.428571429;color:#999}.factory-bootstrap-425 blockquote .small:before,.factory-bootstrap-425 blockquote small:before{content:'\2014 \00A0'}.factory-bootstrap-425 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.factory-bootstrap-425 blockquote.pull-right .small,.factory-bootstrap-425 blockquote.pull-right p,.factory-bootstrap-425 blockquote.pull-right small{text-align:right}.factory-bootstrap-425 blockquote.pull-right .small:before,.factory-bootstrap-425 blockquote.pull-right small:before{content:''}.factory-bootstrap-425 blockquote.pull-right .small:after,.factory-bootstrap-425 blockquote.pull-right small:after{content:'\00A0 \2014'}.factory-bootstrap-425 blockquote:after,.factory-bootstrap-425 blockquote:before{content:""}.factory-bootstrap-425 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.factory-bootstrap-425 code,.factory-bootstrap-425 kbd,.factory-bootstrap-425 pre,.factory-bootstrap-425 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.factory-bootstrap-425 code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}.factory-bootstrap-425 pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.factory-bootstrap-425 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.factory-bootstrap-425 .pre-scrollable{max-height:340px;overflow-y:scroll}.factory-bootstrap-425 .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.factory-bootstrap-425 .container:after,.factory-bootstrap-425 .container:before{display:table;content:" "}.factory-bootstrap-425 .container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.factory-bootstrap-425 .row{margin-right:-15px;margin-left:-15px}.factory-bootstrap-425 .row:after,.factory-bootstrap-425 .row:before{display:table;content:" "}.factory-bootstrap-425 .row:after{clear:both}.factory-bootstrap-425 .col-lg-1,.factory-bootstrap-425 .col-lg-10,.factory-bootstrap-425 .col-lg-11,.factory-bootstrap-425 .col-lg-12,.factory-bootstrap-425 .col-lg-2,.factory-bootstrap-425 .col-lg-3,.factory-bootstrap-425 .col-lg-4,.factory-bootstrap-425 .col-lg-5,.factory-bootstrap-425 .col-lg-6,.factory-bootstrap-425 .col-lg-7,.factory-bootstrap-425 .col-lg-8,.factory-bootstrap-425 .col-lg-9,.factory-bootstrap-425 .col-md-1,.factory-bootstrap-425 .col-md-10,.factory-bootstrap-425 .col-md-11,.factory-bootstrap-425 .col-md-12,.factory-bootstrap-425 .col-md-2,.factory-bootstrap-425 .col-md-3,.factory-bootstrap-425 .col-md-4,.factory-bootstrap-425 .col-md-5,.factory-bootstrap-425 .col-md-6,.factory-bootstrap-425 .col-md-7,.factory-bootstrap-425 .col-md-8,.factory-bootstrap-425 .col-md-9,.factory-bootstrap-425 .col-sm-1,.factory-bootstrap-425 .col-sm-10,.factory-bootstrap-425 .col-sm-11,.factory-bootstrap-425 .col-sm-12,.factory-bootstrap-425 .col-sm-2,.factory-bootstrap-425 .col-sm-3,.factory-bootstrap-425 .col-sm-4,.factory-bootstrap-425 .col-sm-5,.factory-bootstrap-425 .col-sm-6,.factory-bootstrap-425 .col-sm-7,.factory-bootstrap-425 .col-sm-8,.factory-bootstrap-425 .col-sm-9,.factory-bootstrap-425 .col-xs-1,.factory-bootstrap-425 .col-xs-10,.factory-bootstrap-425 .col-xs-11,.factory-bootstrap-425 .col-xs-12,.factory-bootstrap-425 .col-xs-2,.factory-bootstrap-425 .col-xs-3,.factory-bootstrap-425 .col-xs-4,.factory-bootstrap-425 .col-xs-5,.factory-bootstrap-425 .col-xs-6,.factory-bootstrap-425 .col-xs-7,.factory-bootstrap-425 .col-xs-8,.factory-bootstrap-425 .col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.factory-bootstrap-425 .col-xs-1,.factory-bootstrap-425 .col-xs-10,.factory-bootstrap-425 .col-xs-11,.factory-bootstrap-425 .col-xs-12,.factory-bootstrap-425 .col-xs-2,.factory-bootstrap-425 .col-xs-3,.factory-bootstrap-425 .col-xs-4,.factory-bootstrap-425 .col-xs-5,.factory-bootstrap-425 .col-xs-6,.factory-bootstrap-425 .col-xs-7,.factory-bootstrap-425 .col-xs-8,.factory-bootstrap-425 .col-xs-9{float:left}.factory-bootstrap-425 .col-xs-12{width:100%}.factory-bootstrap-425 .col-xs-11{width:91.66666666666666%}.factory-bootstrap-425 .col-xs-10{width:83.33333333333334%}.factory-bootstrap-425 .col-xs-9{width:75%}.factory-bootstrap-425 .col-xs-8{width:66.66666666666666%}.factory-bootstrap-425 .col-xs-7{width:58.333333333333336%}.factory-bootstrap-425 .col-xs-6{width:50%}.factory-bootstrap-425 .col-xs-5{width:41.66666666666667%}.factory-bootstrap-425 .col-xs-4{width:33.33333333333333%}.factory-bootstrap-425 .col-xs-3{width:25%}.factory-bootstrap-425 .col-xs-2{width:16.666666666666664%}.factory-bootstrap-425 .col-xs-1{width:8.333333333333332%}.factory-bootstrap-425 .col-xs-pull-12{right:100%}.factory-bootstrap-425 .col-xs-pull-11{right:91.66666666666666%}.factory-bootstrap-425 .col-xs-pull-10{right:83.33333333333334%}.factory-bootstrap-425 .col-xs-pull-9{right:75%}.factory-bootstrap-425 .col-xs-pull-8{right:66.66666666666666%}.factory-bootstrap-425 .col-xs-pull-7{right:58.333333333333336%}.factory-bootstrap-425 .col-xs-pull-6{right:50%}.factory-bootstrap-425 .col-xs-pull-5{right:41.66666666666667%}.factory-bootstrap-425 .col-xs-pull-4{right:33.33333333333333%}.factory-bootstrap-425 .col-xs-pull-3{right:25%}.factory-bootstrap-425 .col-xs-pull-2{right:16.666666666666664%}.factory-bootstrap-425 .col-xs-pull-1{right:8.333333333333332%}.factory-bootstrap-425 .col-xs-pull-0{right:0}.factory-bootstrap-425 .col-xs-push-12{left:100%}.factory-bootstrap-425 .col-xs-push-11{left:91.66666666666666%}.factory-bootstrap-425 .col-xs-push-10{left:83.33333333333334%}.factory-bootstrap-425 .col-xs-push-9{left:75%}.factory-bootstrap-425 .col-xs-push-8{left:66.66666666666666%}.factory-bootstrap-425 .col-xs-push-7{left:58.333333333333336%}.factory-bootstrap-425 .col-xs-push-6{left:50%}.factory-bootstrap-425 .col-xs-push-5{left:41.66666666666667%}.factory-bootstrap-425 .col-xs-push-4{left:33.33333333333333%}.factory-bootstrap-425 .col-xs-push-3{left:25%}.factory-bootstrap-425 .col-xs-push-2{left:16.666666666666664%}.factory-bootstrap-425 .col-xs-push-1{left:8.333333333333332%}.factory-bootstrap-425 .col-xs-push-0{left:0}.factory-bootstrap-425 .col-xs-offset-12{margin-left:100%}.factory-bootstrap-425 .col-xs-offset-11{margin-left:91.66666666666666%}.factory-bootstrap-425 .col-xs-offset-10{margin-left:83.33333333333334%}.factory-bootstrap-425 .col-xs-offset-9{margin-left:75%}.factory-bootstrap-425 .col-xs-offset-8{margin-left:66.66666666666666%}.factory-bootstrap-425 .col-xs-offset-7{margin-left:58.333333333333336%}.factory-bootstrap-425 .col-xs-offset-6{margin-left:50%}.factory-bootstrap-425 .col-xs-offset-5{margin-left:41.66666666666667%}.factory-bootstrap-425 .col-xs-offset-4{margin-left:33.33333333333333%}.factory-bootstrap-425 .col-xs-offset-3{margin-left:25%}.factory-bootstrap-425 .col-xs-offset-2{margin-left:16.666666666666664%}.factory-bootstrap-425 .col-xs-offset-1{margin-left:8.333333333333332%}.factory-bootstrap-425 .col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}.factory-bootstrap-425 table{max-width:100%;background-color:transparent}.factory-bootstrap-425 th{text-align:left}.factory-bootstrap-425 .table{width:100%;margin-bottom:20px}.factory-bootstrap-425 .table>tbody>tr>td,.factory-bootstrap-425 .table>tbody>tr>th,.factory-bootstrap-425 .table>tfoot>tr>td,.factory-bootstrap-425 .table>tfoot>tr>th,.factory-bootstrap-425 .table>thead>tr>td,.factory-bootstrap-425 .table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.factory-bootstrap-425 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.factory-bootstrap-425 .table>caption+thead>tr:first-child>td,.factory-bootstrap-425 .table>caption+thead>tr:first-child>th,.factory-bootstrap-425 .table>colgroup+thead>tr:first-child>td,.factory-bootstrap-425 .table>colgroup+thead>tr:first-child>th,.factory-bootstrap-425 .table>thead:first-child>tr:first-child>td,.factory-bootstrap-425 .table>thead:first-child>tr:first-child>th{border-top:0}.factory-bootstrap-425 .table>tbody+tbody{border-top:2px solid #ddd}.factory-bootstrap-425 .table .table{background-color:#fff}.factory-bootstrap-425 .table-condensed>tbody>tr>td,.factory-bootstrap-425 .table-condensed>tbody>tr>th,.factory-bootstrap-425 .table-condensed>tfoot>tr>td,.factory-bootstrap-425 .table-condensed>tfoot>tr>th,.factory-bootstrap-425 .table-condensed>thead>tr>td,.factory-bootstrap-425 .table-condensed>thead>tr>th{padding:5px}.factory-bootstrap-425 .table-bordered,.factory-bootstrap-425 .table-bordered>tbody>tr>td,.factory-bootstrap-425 .table-bordered>tbody>tr>th,.factory-bootstrap-425 .table-bordered>tfoot>tr>td,.factory-bootstrap-425 .table-bordered>tfoot>tr>th,.factory-bootstrap-425 .table-bordered>thead>tr>td,.factory-bootstrap-425 .table-bordered>thead>tr>th{border:1px solid #ddd}.factory-bootstrap-425 .table-bordered>thead>tr>td,.factory-bootstrap-425 .table-bordered>thead>tr>th{border-bottom-width:2px}.factory-bootstrap-425 .table-striped>tbody>tr:nth-child(odd)>td,.factory-bootstrap-425 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.factory-bootstrap-425 .table-hover>tbody>tr:hover>td,.factory-bootstrap-425 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.factory-bootstrap-425 table col[class*=col-]{position:static;display:table-column;float:none}.factory-bootstrap-425 table td[class*=col-],.factory-bootstrap-425 table th[class*=col-]{display:table-cell;float:none}.factory-bootstrap-425 .table>tbody>.active>td,.factory-bootstrap-425 .table>tbody>.active>th,.factory-bootstrap-425 .table>tbody>tr>.active,.factory-bootstrap-425 .table>tfoot>.active>td,.factory-bootstrap-425 .table>tfoot>.active>th,.factory-bootstrap-425 .table>tfoot>tr>.active,.factory-bootstrap-425 .table>thead>.active>td,.factory-bootstrap-425 .table>thead>.active>th,.factory-bootstrap-425 .table>thead>tr>.active{background-color:#f5f5f5}.factory-bootstrap-425 .table-hover>tbody>.active:hover>td,.factory-bootstrap-425 .table-hover>tbody>.active:hover>th,.factory-bootstrap-425 .table-hover>tbody>tr>.active:hover{background-color:#e8e8e8}.factory-bootstrap-425 .table>tbody>.success>td,.factory-bootstrap-425 .table>tbody>.success>th,.factory-bootstrap-425 .table>tbody>tr>.success,.factory-bootstrap-425 .table>tfoot>.success>td,.factory-bootstrap-425 .table>tfoot>.success>th,.factory-bootstrap-425 .table>tfoot>tr>.success,.factory-bootstrap-425 .table>thead>.success>td,.factory-bootstrap-425 .table>thead>.success>th,.factory-bootstrap-425 .table>thead>tr>.success{background-color:#dff0d8}.factory-bootstrap-425 .table-hover>tbody>.success:hover>td,.factory-bootstrap-425 .table-hover>tbody>.success:hover>th,.factory-bootstrap-425 .table-hover>tbody>tr>.success:hover{background-color:#d0e9c6}.factory-bootstrap-425 .table>tbody>.danger>td,.factory-bootstrap-425 .table>tbody>.danger>th,.factory-bootstrap-425 .table>tbody>tr>.danger,.factory-bootstrap-425 .table>tfoot>.danger>td,.factory-bootstrap-425 .table>tfoot>.danger>th,.factory-bootstrap-425 .table>tfoot>tr>.danger,.factory-bootstrap-425 .table>thead>.danger>td,.factory-bootstrap-425 .table>thead>.danger>th,.factory-bootstrap-425 .table>thead>tr>.danger{background-color:#f2dede}.factory-bootstrap-425 .table-hover>tbody>.danger:hover>td,.factory-bootstrap-425 .table-hover>tbody>.danger:hover>th,.factory-bootstrap-425 .table-hover>tbody>tr>.danger:hover{background-color:#ebcccc}.factory-bootstrap-425 .table>tbody>.warning>td,.factory-bootstrap-425 .table>tbody>.warning>th,.factory-bootstrap-425 .table>tbody>tr>.warning,.factory-bootstrap-425 .table>tfoot>.warning>td,.factory-bootstrap-425 .table>tfoot>.warning>th,.factory-bootstrap-425 .table>tfoot>tr>.warning,.factory-bootstrap-425 .table>thead>.warning>td,.factory-bootstrap-425 .table>thead>.warning>th,.factory-bootstrap-425 .table>thead>tr>.warning{background-color:#fcf8e3}.factory-bootstrap-425 .table-hover>tbody>.warning:hover>td,.factory-bootstrap-425 .table-hover>tbody>.warning:hover>th,.factory-bootstrap-425 .table-hover>tbody>tr>.warning:hover{background-color:#faf2cc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}.factory-bootstrap-425 fieldset{padding:0;margin:0;border:0}.factory-bootstrap-425 legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-425 label{display:inline-block;margin-bottom:5px;font-weight:700}.factory-bootstrap-425 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-425 input[type=checkbox],.factory-bootstrap-425 input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.factory-bootstrap-425 input[type=file]{display:block}.factory-bootstrap-425 select[multiple],.factory-bootstrap-425 select[size]{height:auto}.factory-bootstrap-425 select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}.factory-bootstrap-425 input[type=checkbox]:focus,.factory-bootstrap-425 input[type=file]:focus,.factory-bootstrap-425 input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-425 input[type=number]::-webkit-inner-spin-button,.factory-bootstrap-425 input[type=number]::-webkit-outer-spin-button{height:auto}.factory-bootstrap-425 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.factory-bootstrap-425 .form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.factory-bootstrap-425 .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-425 .form-control:-moz-placeholder{color:#999}.factory-bootstrap-425 .form-control::-moz-placeholder{color:#999;opacity:1}.factory-bootstrap-425 .form-control:-ms-input-placeholder{color:#999}.factory-bootstrap-425 .form-control::-webkit-input-placeholder{color:#999}.factory-bootstrap-425 .form-control[disabled],.factory-bootstrap-425 .form-control[readonly],.factory-bootstrap-425 fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.factory-bootstrap-425 textarea.form-control{height:auto}.factory-bootstrap-425 .form-group{margin-bottom:15px}.factory-bootstrap-425 .checkbox,.factory-bootstrap-425 .radio{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.factory-bootstrap-425 .checkbox label,.factory-bootstrap-425 .radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.factory-bootstrap-425 .checkbox input[type=checkbox],.factory-bootstrap-425 .checkbox-inline input[type=checkbox],.factory-bootstrap-425 .radio input[type=radio],.factory-bootstrap-425 .radio-inline input[type=radio]{float:left;margin-left:-20px}.factory-bootstrap-425 .checkbox+.checkbox,.factory-bootstrap-425 .radio+.radio{margin-top:-5px}.factory-bootstrap-425 .checkbox-inline,.factory-bootstrap-425 .radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.factory-bootstrap-425 .checkbox-inline+.checkbox-inline,.factory-bootstrap-425 .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.factory-bootstrap-425 .checkbox-inline[disabled],.factory-bootstrap-425 .checkbox[disabled],.factory-bootstrap-425 .radio-inline[disabled],.factory-bootstrap-425 .radio[disabled],.factory-bootstrap-425 fieldset[disabled] .checkbox,.factory-bootstrap-425 fieldset[disabled] .checkbox-inline,.factory-bootstrap-425 fieldset[disabled] .radio,.factory-bootstrap-425 fieldset[disabled] .radio-inline,.factory-bootstrap-425 fieldset[disabled] input[type=checkbox],.factory-bootstrap-425 fieldset[disabled] input[type=radio],.factory-bootstrap-425 input[type=checkbox][disabled],.factory-bootstrap-425 input[type=radio][disabled]{cursor:not-allowed}.factory-bootstrap-425 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-425 select.input-sm{height:30px;line-height:30px}.factory-bootstrap-425 textarea.input-sm{height:auto}.factory-bootstrap-425 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-425 select.input-lg{height:46px;line-height:46px}.factory-bootstrap-425 textarea.input-lg{height:auto}.factory-bootstrap-425 .has-warning .checkbox,.factory-bootstrap-425 .has-warning .checkbox-inline,.factory-bootstrap-425 .has-warning .control-label,.factory-bootstrap-425 .has-warning .help-block,.factory-bootstrap-425 .has-warning .radio,.factory-bootstrap-425 .has-warning .radio-inline{color:#8a6d3b}.factory-bootstrap-425 .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-425 .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.factory-bootstrap-425 .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.factory-bootstrap-425 .has-error .checkbox,.factory-bootstrap-425 .has-error .checkbox-inline,.factory-bootstrap-425 .has-error .control-label,.factory-bootstrap-425 .has-error .help-block,.factory-bootstrap-425 .has-error .radio,.factory-bootstrap-425 .has-error .radio-inline{color:#a94442}.factory-bootstrap-425 .controls{display:block}.factory-bootstrap-425 .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-425 .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.factory-bootstrap-425 .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.factory-bootstrap-425 .has-success .checkbox,.factory-bootstrap-425 .has-success .checkbox-inline,.factory-bootstrap-425 .has-success .control-label,.factory-bootstrap-425 .has-success .help-block,.factory-bootstrap-425 .has-success .radio,.factory-bootstrap-425 .has-success .radio-inline{color:#3c763d}.factory-bootstrap-425 .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-425 .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.factory-bootstrap-425 .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.factory-bootstrap-425 .form-control-static{margin-bottom:0}.factory-bootstrap-425 .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373;font-weight:400}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .checkbox,.form-inline .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.factory-bootstrap-425 .form-horizontal .checkbox,.factory-bootstrap-425 .form-horizontal .checkbox-inline,.factory-bootstrap-425 .form-horizontal .control-label,.factory-bootstrap-425 .form-horizontal .radio,.factory-bootstrap-425 .form-horizontal .radio-inline{position:relative;padding-top:7px;margin-top:0;margin-bottom:0}.factory-bootstrap-425 .form-horizontal .control-label{max-width:200px}.factory-bootstrap-425 .form-horizontal .checkbox,.factory-bootstrap-425 .form-horizontal .radio{min-height:27px}.factory-bootstrap-425 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.factory-bootstrap-425 .form-horizontal .form-group:after,.factory-bootstrap-425 .form-horizontal .form-group:before{display:table;content:" "}.factory-bootstrap-425 .form-horizontal .form-group:after{clear:both}.factory-bootstrap-425 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.factory-bootstrap-425 .btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:13px;font-weight:400;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.factory-bootstrap-425 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-425 .btn{text-decoration:none}.factory-bootstrap-425 .btn:focus,.factory-bootstrap-425 .btn:hover{color:#333;text-decoration:none}.factory-bootstrap-425 .btn.disabled,.factory-bootstrap-425 .btn[disabled],.factory-bootstrap-425 fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-425 .btn-default.active,.factory-bootstrap-425 .btn-default:active,.factory-bootstrap-425 .btn-default:focus,.factory-bootstrap-425 .btn-default:hover,.factory-bootstrap-425 .open .dropdown-toggle.btn-default{background:#fafafa;border-color:#999;color:#222}.factory-bootstrap-425 .btn-default.active,.factory-bootstrap-425 .btn-default:active,.factory-bootstrap-425 .open .dropdown-toggle.btn-default{background-image:none}.factory-bootstrap-425 .btn-default.disabled,.factory-bootstrap-425 .btn-default.disabled.active,.factory-bootstrap-425 .btn-default.disabled:active,.factory-bootstrap-425 .btn-default.disabled:focus,.factory-bootstrap-425 .btn-default.disabled:hover,.factory-bootstrap-425 .btn-default[disabled],.factory-bootstrap-425 .btn-default[disabled].active,.factory-bootstrap-425 .btn-default[disabled]:active,.factory-bootstrap-425 .btn-default[disabled]:focus,.factory-bootstrap-425 .btn-default[disabled]:hover,.factory-bootstrap-425 fieldset[disabled] .btn-default,.factory-bootstrap-425 fieldset[disabled] .btn-default.active,.factory-bootstrap-425 fieldset[disabled] .btn-default:active,.factory-bootstrap-425 fieldset[disabled] .btn-default:focus,.factory-bootstrap-425 fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.factory-bootstrap-425 .btn-default .badge{color:#fff;background-color:#fff}.factory-bootstrap-425 .btn-primary.active,.factory-bootstrap-425 .btn-primary:active,.factory-bootstrap-425 .btn-primary:focus,.factory-bootstrap-425 .btn-primary:hover,.factory-bootstrap-425 .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.factory-bootstrap-425 .btn-primary.active,.factory-bootstrap-425 .btn-primary:active,.factory-bootstrap-425 .open .dropdown-toggle.btn-primary{background-image:none}.factory-bootstrap-425 .btn-primary.disabled,.factory-bootstrap-425 .btn-primary.disabled.active,.factory-bootstrap-425 .btn-primary.disabled:active,.factory-bootstrap-425 .btn-primary.disabled:focus,.factory-bootstrap-425 .btn-primary.disabled:hover,.factory-bootstrap-425 .btn-primary[disabled],.factory-bootstrap-425 .btn-primary[disabled].active,.factory-bootstrap-425 .btn-primary[disabled]:active,.factory-bootstrap-425 .btn-primary[disabled]:focus,.factory-bootstrap-425 .btn-primary[disabled]:hover,.factory-bootstrap-425 fieldset[disabled] .btn-primary,.factory-bootstrap-425 fieldset[disabled] .btn-primary.active,.factory-bootstrap-425 fieldset[disabled] .btn-primary:active,.factory-bootstrap-425 fieldset[disabled] .btn-primary:focus,.factory-bootstrap-425 fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.factory-bootstrap-425 .btn-primary .badge{color:#428bca;background-color:#fff}.factory-bootstrap-425 .btn-warning{color:#fff;background-color:#f0ad4e}.factory-bootstrap-425 .btn-warning.active,.factory-bootstrap-425 .btn-warning:active,.factory-bootstrap-425 .btn-warning:focus,.factory-bootstrap-425 .btn-warning:hover,.factory-bootstrap-425 .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.factory-bootstrap-425 .btn-warning.active,.factory-bootstrap-425 .btn-warning:active,.factory-bootstrap-425 .open .dropdown-toggle.btn-warning{background-image:none}.factory-bootstrap-425 .btn-warning.disabled,.factory-bootstrap-425 .btn-warning.disabled.active,.factory-bootstrap-425 .btn-warning.disabled:active,.factory-bootstrap-425 .btn-warning.disabled:focus,.factory-bootstrap-425 .btn-warning.disabled:hover,.factory-bootstrap-425 .btn-warning[disabled],.factory-bootstrap-425 .btn-warning[disabled].active,.factory-bootstrap-425 .btn-warning[disabled]:active,.factory-bootstrap-425 .btn-warning[disabled]:focus,.factory-bootstrap-425 .btn-warning[disabled]:hover,.factory-bootstrap-425 fieldset[disabled] .btn-warning,.factory-bootstrap-425 fieldset[disabled] .btn-warning.active,.factory-bootstrap-425 fieldset[disabled] .btn-warning:active,.factory-bootstrap-425 fieldset[disabled] .btn-warning:focus,.factory-bootstrap-425 fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.factory-bootstrap-425 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.factory-bootstrap-425 .btn-success{color:#fff;background-color:#5cb85c}.factory-bootstrap-425 .btn-success.active,.factory-bootstrap-425 .btn-success:active,.factory-bootstrap-425 .btn-success:focus,.factory-bootstrap-425 .btn-success:hover,.factory-bootstrap-425 .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.factory-bootstrap-425 .btn-success.active,.factory-bootstrap-425 .btn-success:active,.factory-bootstrap-425 .open .dropdown-toggle.btn-success{background-image:none}.factory-bootstrap-425 .btn-success.disabled,.factory-bootstrap-425 .btn-success.disabled.active,.factory-bootstrap-425 .btn-success.disabled:active,.factory-bootstrap-425 .btn-success.disabled:focus,.factory-bootstrap-425 .btn-success.disabled:hover,.factory-bootstrap-425 .btn-success[disabled],.factory-bootstrap-425 .btn-success[disabled].active,.factory-bootstrap-425 .btn-success[disabled]:active,.factory-bootstrap-425 .btn-success[disabled]:focus,.factory-bootstrap-425 .btn-success[disabled]:hover,.factory-bootstrap-425 fieldset[disabled] .btn-success,.factory-bootstrap-425 fieldset[disabled] .btn-success.active,.factory-bootstrap-425 fieldset[disabled] .btn-success:active,.factory-bootstrap-425 fieldset[disabled] .btn-success:focus,.factory-bootstrap-425 fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.factory-bootstrap-425 .btn-success .badge{color:#5cb85c;background-color:#fff}.factory-bootstrap-425 .btn-info{color:#fff;background-color:#5bc0de}.factory-bootstrap-425 .btn-info.active,.factory-bootstrap-425 .btn-info:active,.factory-bootstrap-425 .btn-info:focus,.factory-bootstrap-425 .btn-info:hover,.factory-bootstrap-425 .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.factory-bootstrap-425 .btn-info.active,.factory-bootstrap-425 .btn-info:active,.factory-bootstrap-425 .open .dropdown-toggle.btn-info{background-image:none}.factory-bootstrap-425 .btn-info.disabled,.factory-bootstrap-425 .btn-info.disabled.active,.factory-bootstrap-425 .btn-info.disabled:active,.factory-bootstrap-425 .btn-info.disabled:focus,.factory-bootstrap-425 .btn-info.disabled:hover,.factory-bootstrap-425 .btn-info[disabled],.factory-bootstrap-425 .btn-info[disabled].active,.factory-bootstrap-425 .btn-info[disabled]:active,.factory-bootstrap-425 .btn-info[disabled]:focus,.factory-bootstrap-425 .btn-info[disabled]:hover,.factory-bootstrap-425 fieldset[disabled] .btn-info,.factory-bootstrap-425 fieldset[disabled] .btn-info.active,.factory-bootstrap-425 fieldset[disabled] .btn-info:active,.factory-bootstrap-425 fieldset[disabled] .btn-info:focus,.factory-bootstrap-425 fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.factory-bootstrap-425 .btn-info .badge{color:#5bc0de;background-color:#fff}.factory-bootstrap-425 .btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.factory-bootstrap-425 .btn-link,.factory-bootstrap-425 .btn-link:active,.factory-bootstrap-425 .btn-link[disabled],.factory-bootstrap-425 fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-425 .btn-link,.factory-bootstrap-425 .btn-link:active,.factory-bootstrap-425 .btn-link:focus,.factory-bootstrap-425 .btn-link:hover{border-color:transparent}.factory-bootstrap-425 .btn-link:focus,.factory-bootstrap-425 .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.factory-bootstrap-425 .btn-link[disabled]:focus,.factory-bootstrap-425 .btn-link[disabled]:hover,.factory-bootstrap-425 fieldset[disabled] .btn-link:focus,.factory-bootstrap-425 fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.factory-bootstrap-425 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-425 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-425 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-425 .btn-block{display:block;width:100%;padding-right:0;padding-left:0}.factory-bootstrap-425 .btn-block+.btn-block{margin-top:5px}.factory-bootstrap-425 input[type=button].btn-block,.factory-bootstrap-425 input[type=reset].btn-block,.factory-bootstrap-425 input[type=submit].btn-block{width:100%}.factory-bootstrap-425 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.factory-bootstrap-425 .fade.in{opacity:1}.factory-bootstrap-425 .collapse{display:none}.factory-bootstrap-425 .collapse.in{display:block}.factory-bootstrap-425 .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular) format('svg')}.factory-bootstrap-425 .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;line-height:1;-moz-osx-font-smoothing:grayscale}.factory-bootstrap-425 .glyphicon:empty{width:1em}.factory-bootstrap-425 .glyphicon-asterisk:before{content:"\2a"}.factory-bootstrap-425 .glyphicon-plus:before{content:"\2b"}.factory-bootstrap-425 .glyphicon-euro:before{content:"\20ac"}.factory-bootstrap-425 .glyphicon-minus:before{content:"\2212"}.factory-bootstrap-425 .glyphicon-cloud:before{content:"\2601"}.factory-bootstrap-425 .glyphicon-envelope:before{content:"\2709"}.factory-bootstrap-425 .glyphicon-pencil:before{content:"\270f"}.factory-bootstrap-425 .glyphicon-glass:before{content:"\e001"}.factory-bootstrap-425 .glyphicon-music:before{content:"\e002"}.factory-bootstrap-425 .glyphicon-search:before{content:"\e003"}.factory-bootstrap-425 .glyphicon-heart:before{content:"\e005"}.factory-bootstrap-425 .glyphicon-star:before{content:"\e006"}.factory-bootstrap-425 .glyphicon-star-empty:before{content:"\e007"}.factory-bootstrap-425 .glyphicon-user:before{content:"\e008"}.factory-bootstrap-425 .glyphicon-film:before{content:"\e009"}.factory-bootstrap-425 .glyphicon-th-large:before{content:"\e010"}.factory-bootstrap-425 .glyphicon-th:before{content:"\e011"}.factory-bootstrap-425 .glyphicon-th-list:before{content:"\e012"}.factory-bootstrap-425 .glyphicon-ok:before{content:"\e013"}.factory-bootstrap-425 .glyphicon-remove:before{content:"\e014"}.factory-bootstrap-425 .glyphicon-zoom-in:before{content:"\e015"}.factory-bootstrap-425 .glyphicon-zoom-out:before{content:"\e016"}.factory-bootstrap-425 .glyphicon-off:before{content:"\e017"}.factory-bootstrap-425 .glyphicon-signal:before{content:"\e018"}.factory-bootstrap-425 .glyphicon-cog:before{content:"\e019"}.factory-bootstrap-425 .glyphicon-trash:before{content:"\e020"}.factory-bootstrap-425 .glyphicon-home:before{content:"\e021"}.factory-bootstrap-425 .glyphicon-file:before{content:"\e022"}.factory-bootstrap-425 .glyphicon-time:before{content:"\e023"}.factory-bootstrap-425 .glyphicon-road:before{content:"\e024"}.factory-bootstrap-425 .glyphicon-download-alt:before{content:"\e025"}.factory-bootstrap-425 .glyphicon-download:before{content:"\e026"}.factory-bootstrap-425 .glyphicon-upload:before{content:"\e027"}.factory-bootstrap-425 .glyphicon-inbox:before{content:"\e028"}.factory-bootstrap-425 .glyphicon-play-circle:before{content:"\e029"}.factory-bootstrap-425 .glyphicon-repeat:before{content:"\e030"}.factory-bootstrap-425 .glyphicon-refresh:before{content:"\e031"}.factory-bootstrap-425 .glyphicon-list-alt:before{content:"\e032"}.factory-bootstrap-425 .glyphicon-lock:before{content:"\e033"}.factory-bootstrap-425 .glyphicon-flag:before{content:"\e034"}.factory-bootstrap-425 .glyphicon-headphones:before{content:"\e035"}.factory-bootstrap-425 .glyphicon-volume-off:before{content:"\e036"}.factory-bootstrap-425 .glyphicon-volume-down:before{content:"\e037"}.factory-bootstrap-425 .glyphicon-volume-up:before{content:"\e038"}.factory-bootstrap-425 .glyphicon-qrcode:before{content:"\e039"}.factory-bootstrap-425 .glyphicon-barcode:before{content:"\e040"}.factory-bootstrap-425 .glyphicon-tag:before{content:"\e041"}.factory-bootstrap-425 .glyphicon-tags:before{content:"\e042"}.factory-bootstrap-425 .glyphicon-book:before{content:"\e043"}.factory-bootstrap-425 .glyphicon-bookmark:before{content:"\e044"}.factory-bootstrap-425 .glyphicon-print:before{content:"\e045"}.factory-bootstrap-425 .glyphicon-camera:before{content:"\e046"}.factory-bootstrap-425 .glyphicon-font:before{content:"\e047"}.factory-bootstrap-425 .glyphicon-bold:before{content:"\e048"}.factory-bootstrap-425 .glyphicon-italic:before{content:"\e049"}.factory-bootstrap-425 .glyphicon-text-height:before{content:"\e050"}.factory-bootstrap-425 .glyphicon-text-width:before{content:"\e051"}.factory-bootstrap-425 .glyphicon-align-left:before{content:"\e052"}.factory-bootstrap-425 .glyphicon-align-center:before{content:"\e053"}.factory-bootstrap-425 .glyphicon-align-right:before{content:"\e054"}.factory-bootstrap-425 .glyphicon-align-justify:before{content:"\e055"}.factory-bootstrap-425 .glyphicon-list:before{content:"\e056"}.factory-bootstrap-425 .glyphicon-indent-left:before{content:"\e057"}.factory-bootstrap-425 .glyphicon-indent-right:before{content:"\e058"}.factory-bootstrap-425 .glyphicon-facetime-video:before{content:"\e059"}.factory-bootstrap-425 .glyphicon-picture:before{content:"\e060"}.factory-bootstrap-425 .glyphicon-map-marker:before{content:"\e062"}.factory-bootstrap-425 .glyphicon-adjust:before{content:"\e063"}.factory-bootstrap-425 .glyphicon-tint:before{content:"\e064"}.factory-bootstrap-425 .glyphicon-edit:before{content:"\e065"}.factory-bootstrap-425 .glyphicon-share:before{content:"\e066"}.factory-bootstrap-425 .glyphicon-check:before{content:"\e067"}.factory-bootstrap-425 .glyphicon-move:before{content:"\e068"}.factory-bootstrap-425 .glyphicon-step-backward:before{content:"\e069"}.factory-bootstrap-425 .glyphicon-fast-backward:before{content:"\e070"}.factory-bootstrap-425 .glyphicon-backward:before{content:"\e071"}.factory-bootstrap-425 .glyphicon-play:before{content:"\e072"}.factory-bootstrap-425 .glyphicon-pause:before{content:"\e073"}.factory-bootstrap-425 .glyphicon-stop:before{content:"\e074"}.factory-bootstrap-425 .glyphicon-forward:before{content:"\e075"}.factory-bootstrap-425 .glyphicon-fast-forward:before{content:"\e076"}.factory-bootstrap-425 .glyphicon-step-forward:before{content:"\e077"}.factory-bootstrap-425 .glyphicon-eject:before{content:"\e078"}.factory-bootstrap-425 .glyphicon-chevron-left:before{content:"\e079"}.factory-bootstrap-425 .glyphicon-chevron-right:before{content:"\e080"}.factory-bootstrap-425 .glyphicon-plus-sign:before{content:"\e081"}.factory-bootstrap-425 .glyphicon-minus-sign:before{content:"\e082"}.factory-bootstrap-425 .glyphicon-remove-sign:before{content:"\e083"}.factory-bootstrap-425 .glyphicon-ok-sign:before{content:"\e084"}.factory-bootstrap-425 .glyphicon-question-sign:before{content:"\e085"}.factory-bootstrap-425 .glyphicon-info-sign:before{content:"\e086"}.factory-bootstrap-425 .glyphicon-screenshot:before{content:"\e087"}.factory-bootstrap-425 .glyphicon-remove-circle:before{content:"\e088"}.factory-bootstrap-425 .glyphicon-ok-circle:before{content:"\e089"}.factory-bootstrap-425 .glyphicon-ban-circle:before{content:"\e090"}.factory-bootstrap-425 .glyphicon-arrow-left:before{content:"\e091"}.factory-bootstrap-425 .glyphicon-arrow-right:before{content:"\e092"}.factory-bootstrap-425 .glyphicon-arrow-up:before{content:"\e093"}.factory-bootstrap-425 .glyphicon-arrow-down:before{content:"\e094"}.factory-bootstrap-425 .glyphicon-share-alt:before{content:"\e095"}.factory-bootstrap-425 .glyphicon-resize-full:before{content:"\e096"}.factory-bootstrap-425 .glyphicon-resize-small:before{content:"\e097"}.factory-bootstrap-425 .glyphicon-exclamation-sign:before{content:"\e101"}.factory-bootstrap-425 .glyphicon-gift:before{content:"\e102"}.factory-bootstrap-425 .glyphicon-leaf:before{content:"\e103"}.factory-bootstrap-425 .glyphicon-fire:before{content:"\e104"}.factory-bootstrap-425 .glyphicon-eye-open:before{content:"\e105"}.factory-bootstrap-425 .glyphicon-eye-close:before{content:"\e106"}.factory-bootstrap-425 .glyphicon-warning-sign:before{content:"\e107"}.factory-bootstrap-425 .glyphicon-plane:before{content:"\e108"}.factory-bootstrap-425 .glyphicon-calendar:before{content:"\e109"}.factory-bootstrap-425 .glyphicon-random:before{content:"\e110"}.factory-bootstrap-425 .glyphicon-comment:before{content:"\e111"}.factory-bootstrap-425 .glyphicon-magnet:before{content:"\e112"}.factory-bootstrap-425 .glyphicon-chevron-up:before{content:"\e113"}.factory-bootstrap-425 .glyphicon-chevron-down:before{content:"\e114"}.factory-bootstrap-425 .glyphicon-retweet:before{content:"\e115"}.factory-bootstrap-425 .glyphicon-shopping-cart:before{content:"\e116"}.factory-bootstrap-425 .glyphicon-folder-close:before{content:"\e117"}.factory-bootstrap-425 .glyphicon-folder-open:before{content:"\e118"}.factory-bootstrap-425 .glyphicon-resize-vertical:before{content:"\e119"}.factory-bootstrap-425 .glyphicon-resize-horizontal:before{content:"\e120"}.factory-bootstrap-425 .glyphicon-hdd:before{content:"\e121"}.factory-bootstrap-425 .glyphicon-bullhorn:before{content:"\e122"}.factory-bootstrap-425 .glyphicon-bell:before{content:"\e123"}.factory-bootstrap-425 .glyphicon-certificate:before{content:"\e124"}.factory-bootstrap-425 .glyphicon-thumbs-up:before{content:"\e125"}.factory-bootstrap-425 .glyphicon-thumbs-down:before{content:"\e126"}.factory-bootstrap-425 .glyphicon-hand-right:before{content:"\e127"}.factory-bootstrap-425 .glyphicon-hand-left:before{content:"\e128"}.factory-bootstrap-425 .glyphicon-hand-up:before{content:"\e129"}.factory-bootstrap-425 .glyphicon-hand-down:before{content:"\e130"}.factory-bootstrap-425 .glyphicon-circle-arrow-right:before{content:"\e131"}.factory-bootstrap-425 .glyphicon-circle-arrow-left:before{content:"\e132"}.factory-bootstrap-425 .glyphicon-circle-arrow-up:before{content:"\e133"}.factory-bootstrap-425 .glyphicon-circle-arrow-down:before{content:"\e134"}.factory-bootstrap-425 .glyphicon-globe:before{content:"\e135"}.factory-bootstrap-425 .glyphicon-wrench:before{content:"\e136"}.factory-bootstrap-425 .glyphicon-tasks:before{content:"\e137"}.factory-bootstrap-425 .glyphicon-filter:before{content:"\e138"}.factory-bootstrap-425 .glyphicon-briefcase:before{content:"\e139"}.factory-bootstrap-425 .glyphicon-fullscreen:before{content:"\e140"}.factory-bootstrap-425 .glyphicon-dashboard:before{content:"\e141"}.factory-bootstrap-425 .glyphicon-paperclip:before{content:"\e142"}.factory-bootstrap-425 .glyphicon-heart-empty:before{content:"\e143"}.factory-bootstrap-425 .glyphicon-link:before{content:"\e144"}.factory-bootstrap-425 .glyphicon-phone:before{content:"\e145"}.factory-bootstrap-425 .glyphicon-pushpin:before{content:"\e146"}.factory-bootstrap-425 .glyphicon-usd:before{content:"\e148"}.factory-bootstrap-425 .glyphicon-gbp:before{content:"\e149"}.factory-bootstrap-425 .glyphicon-sort:before{content:"\e150"}.factory-bootstrap-425 .glyphicon-sort-by-alphabet:before{content:"\e151"}.factory-bootstrap-425 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.factory-bootstrap-425 .glyphicon-sort-by-order:before{content:"\e153"}.factory-bootstrap-425 .glyphicon-sort-by-order-alt:before{content:"\e154"}.factory-bootstrap-425 .glyphicon-sort-by-attributes:before{content:"\e155"}.factory-bootstrap-425 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.factory-bootstrap-425 .glyphicon-unchecked:before{content:"\e157"}.factory-bootstrap-425 .glyphicon-expand:before{content:"\e158"}.factory-bootstrap-425 .glyphicon-collapse-down:before{content:"\e159"}.factory-bootstrap-425 .glyphicon-collapse-up:before{content:"\e160"}.factory-bootstrap-425 .glyphicon-log-in:before{content:"\e161"}.factory-bootstrap-425 .glyphicon-flash:before{content:"\e162"}.factory-bootstrap-425 .glyphicon-log-out:before{content:"\e163"}.factory-bootstrap-425 .glyphicon-new-window:before{content:"\e164"}.factory-bootstrap-425 .glyphicon-record:before{content:"\e165"}.factory-bootstrap-425 .glyphicon-save:before{content:"\e166"}.factory-bootstrap-425 .glyphicon-open:before{content:"\e167"}.factory-bootstrap-425 .glyphicon-saved:before{content:"\e168"}.factory-bootstrap-425 .glyphicon-import:before{content:"\e169"}.factory-bootstrap-425 .glyphicon-export:before{content:"\e170"}.factory-bootstrap-425 .glyphicon-send:before{content:"\e171"}.factory-bootstrap-425 .glyphicon-floppy-disk:before{content:"\e172"}.factory-bootstrap-425 .glyphicon-floppy-saved:before{content:"\e173"}.factory-bootstrap-425 .glyphicon-floppy-remove:before{content:"\e174"}.factory-bootstrap-425 .glyphicon-floppy-save:before{content:"\e175"}.factory-bootstrap-425 .glyphicon-floppy-open:before{content:"\e176"}.factory-bootstrap-425 .glyphicon-credit-card:before{content:"\e177"}.factory-bootstrap-425 .glyphicon-transfer:before{content:"\e178"}.factory-bootstrap-425 .glyphicon-cutlery:before{content:"\e179"}.factory-bootstrap-425 .glyphicon-header:before{content:"\e180"}.factory-bootstrap-425 .glyphicon-compressed:before{content:"\e181"}.factory-bootstrap-425 .glyphicon-earphone:before{content:"\e182"}.factory-bootstrap-425 .glyphicon-phone-alt:before{content:"\e183"}.factory-bootstrap-425 .glyphicon-tower:before{content:"\e184"}.factory-bootstrap-425 .glyphicon-stats:before{content:"\e185"}.factory-bootstrap-425 .glyphicon-sd-video:before{content:"\e186"}.factory-bootstrap-425 .glyphicon-hd-video:before{content:"\e187"}.factory-bootstrap-425 .glyphicon-subtitles:before{content:"\e188"}.factory-bootstrap-425 .glyphicon-sound-stereo:before{content:"\e189"}.factory-bootstrap-425 .glyphicon-sound-dolby:before{content:"\e190"}.factory-bootstrap-425 .glyphicon-sound-5-1:before{content:"\e191"}.factory-bootstrap-425 .glyphicon-sound-6-1:before{content:"\e192"}.factory-bootstrap-425 .glyphicon-sound-7-1:before{content:"\e193"}.factory-bootstrap-425 .glyphicon-copyright-mark:before{content:"\e194"}.factory-bootstrap-425 .glyphicon-registration-mark:before{content:"\e195"}.factory-bootstrap-425 .glyphicon-cloud-download:before{content:"\e197"}.factory-bootstrap-425 .glyphicon-cloud-upload:before{content:"\e198"}.factory-bootstrap-425 .glyphicon-tree-conifer:before{content:"\e199"}.factory-bootstrap-425 .glyphicon-tree-deciduous:before{content:"\e200"}.factory-bootstrap-425 .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.factory-bootstrap-425 .dropdown{position:relative}.factory-bootstrap-425 .dropdown-toggle:focus{outline:0}.factory-bootstrap-425 .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.factory-bootstrap-425 .dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-425 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-425 .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.factory-bootstrap-425 .dropdown-menu>li>a:focus,.factory-bootstrap-425 .dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.factory-bootstrap-425 .dropdown-menu>.active>a,.factory-bootstrap-425 .dropdown-menu>.active>a:focus,.factory-bootstrap-425 .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.factory-bootstrap-425 .dropdown-menu>.disabled>a,.factory-bootstrap-425 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-425 .dropdown-menu>.disabled>a:hover{color:#999}.factory-bootstrap-425 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-425 .dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-425 .open>.dropdown-menu{display:block}.factory-bootstrap-425 .open>a{outline:0}.factory-bootstrap-425 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.factory-bootstrap-425 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.factory-bootstrap-425 .pull-right>.dropdown-menu{right:0;left:auto}.factory-bootstrap-425 .dropup .caret,.factory-bootstrap-425 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.factory-bootstrap-425 .dropup .dropdown-menu,.factory-bootstrap-425 .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.factory-bootstrap-425 .btn-group,.factory-bootstrap-425 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.factory-bootstrap-425 .btn-group-vertical>.btn,.factory-bootstrap-425 .btn-group>.btn{position:relative;float:left}.factory-bootstrap-425 .btn-group-vertical>.btn.active,.factory-bootstrap-425 .btn-group-vertical>.btn:active,.factory-bootstrap-425 .btn-group-vertical>.btn:focus,.factory-bootstrap-425 .btn-group-vertical>.btn:hover,.factory-bootstrap-425 .btn-group>.btn.active,.factory-bootstrap-425 .btn-group>.btn:active,.factory-bootstrap-425 .btn-group>.btn:focus,.factory-bootstrap-425 .btn-group>.btn:hover{z-index:2}.factory-bootstrap-425 .btn-group-vertical>.btn:focus,.factory-bootstrap-425 .btn-group>.btn:focus{outline:0}.factory-bootstrap-425 .btn-group .btn+.btn,.factory-bootstrap-425 .btn-group .btn+.btn-group,.factory-bootstrap-425 .btn-group .btn-group+.btn,.factory-bootstrap-425 .btn-group .btn-group+.btn-group{margin-left:-1px}.factory-bootstrap-425 .btn-toolbar:after,.factory-bootstrap-425 .btn-toolbar:before{display:table;content:" "}.factory-bootstrap-425 .btn-toolbar:after{clear:both}.factory-bootstrap-425 .btn-toolbar .btn-group{float:left}.factory-bootstrap-425 .btn-toolbar>.btn+.btn,.factory-bootstrap-425 .btn-toolbar>.btn+.btn-group,.factory-bootstrap-425 .btn-toolbar>.btn-group+.btn,.factory-bootstrap-425 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.factory-bootstrap-425 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.factory-bootstrap-425 .btn-group>.btn:first-child{margin-left:0}.factory-bootstrap-425 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-425 .btn-group>.btn:last-child:not(:first-child),.factory-bootstrap-425 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-425 .btn-group>.btn-group{float:left}.factory-bootstrap-425 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-425 .btn-group>.btn-group:first-child>.btn:last-child,.factory-bootstrap-425 .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-425 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-425 .btn-group .dropdown-toggle:active,.factory-bootstrap-425 .btn-group.open .dropdown-toggle{outline:0}.factory-bootstrap-425 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-425 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-425 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-425 .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.factory-bootstrap-425 .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.factory-bootstrap-425 .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.factory-bootstrap-425 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-425 .btn-group{border:4px solid #f9f9f9;border-radius:4px}.factory-bootstrap-425 .btn-group .btn.active.value{text-shadow:none;color:#fff;background-color:#33aad5;-webkit-box-shadow:inset 0 1px 1px #0074a2;box-shadow:inset 0 1px 3px #0074a2;border-top:1px solid #0074a2;border-bottom:1px solid #0074a2;border-left:1px solid #0074a2}.factory-bootstrap-425 .btn .caret{margin-left:0}.factory-bootstrap-425 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.factory-bootstrap-425 .dropup .btn-lg .caret{border-width:0 5px 5px}.factory-bootstrap-425 .btn-group-vertical>.btn,.factory-bootstrap-425 .btn-group-vertical>.btn-group,.factory-bootstrap-425 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.factory-bootstrap-425 .btn-group-vertical>.btn-group:after,.factory-bootstrap-425 .btn-group-vertical>.btn-group:before{display:table;content:" "}.factory-bootstrap-425 .btn-group-vertical>.btn-group:after{clear:both}.factory-bootstrap-425 .btn-group-vertical>.btn-group>.btn{float:none}.factory-bootstrap-425 .btn-group-vertical>.btn+.btn,.factory-bootstrap-425 .btn-group-vertical>.btn+.btn-group,.factory-bootstrap-425 .btn-group-vertical>.btn-group+.btn,.factory-bootstrap-425 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.factory-bootstrap-425 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-425 .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-425 .btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.factory-bootstrap-425 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-425 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.factory-bootstrap-425 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-425 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-425 .btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.factory-bootstrap-425 .btn-group-justified>.btn,.factory-bootstrap-425 .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.factory-bootstrap-425 .btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.factory-bootstrap-425 .input-group{position:relative;display:table;border-collapse:separate}.factory-bootstrap-425 .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.factory-bootstrap-425 .input-group .form-control{width:100%;margin-bottom:0}.factory-bootstrap-425 .input-group-lg>.form-control,.factory-bootstrap-425 .input-group-lg>.input-group-addon,.factory-bootstrap-425 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-425 select.input-group-lg>.form-control,.factory-bootstrap-425 select.input-group-lg>.input-group-addon,.factory-bootstrap-425 select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}.factory-bootstrap-425 textarea.input-group-lg>.form-control,.factory-bootstrap-425 textarea.input-group-lg>.input-group-addon,.factory-bootstrap-425 textarea.input-group-lg>.input-group-btn>.btn{height:auto}.factory-bootstrap-425 .input-group-sm>.form-control,.factory-bootstrap-425 .input-group-sm>.input-group-addon,.factory-bootstrap-425 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-425 select.input-group-sm>.form-control,.factory-bootstrap-425 select.input-group-sm>.input-group-addon,.factory-bootstrap-425 select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}.factory-bootstrap-425 textarea.input-group-sm>.form-control,.factory-bootstrap-425 textarea.input-group-sm>.input-group-addon,.factory-bootstrap-425 textarea.input-group-sm>.input-group-btn>.btn{height:auto}.factory-bootstrap-425 .input-group .form-control,.factory-bootstrap-425 .input-group-addon,.factory-bootstrap-425 .input-group-btn{display:table-cell}.factory-bootstrap-425 .input-group .form-control:not(:first-child):not(:last-child),.factory-bootstrap-425 .input-group-addon:not(:first-child):not(:last-child),.factory-bootstrap-425 .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-425 .input-group-addon,.factory-bootstrap-425 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.factory-bootstrap-425 .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.factory-bootstrap-425 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.factory-bootstrap-425 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.factory-bootstrap-425 .input-group-addon input[type=checkbox],.factory-bootstrap-425 .input-group-addon input[type=radio]{margin-top:0}.factory-bootstrap-425 .input-group .form-control:first-child,.factory-bootstrap-425 .input-group-addon:first-child,.factory-bootstrap-425 .input-group-btn:first-child>.btn,.factory-bootstrap-425 .input-group-btn:first-child>.dropdown-toggle,.factory-bootstrap-425 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-425 .input-group-addon:first-child{border-right:0}.factory-bootstrap-425 .input-group .form-control:last-child,.factory-bootstrap-425 .input-group-addon:last-child,.factory-bootstrap-425 .input-group-btn:first-child>.btn:not(:first-child),.factory-bootstrap-425 .input-group-btn:last-child>.btn,.factory-bootstrap-425 .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-425 .input-group-addon:last-child{border-left:0}.factory-bootstrap-425 .input-group-btn{position:relative;white-space:nowrap}.factory-bootstrap-425 .input-group-btn:first-child>.btn{margin-right:-1px}.factory-bootstrap-425 .input-group-btn:last-child>.btn{margin-left:-1px}.factory-bootstrap-425 .input-group-btn>.btn{position:relative}.factory-bootstrap-425 .input-group-btn>.btn+.btn{margin-left:-4px}.factory-bootstrap-425 .input-group-btn>.btn:active,.factory-bootstrap-425 .input-group-btn>.btn:hover{z-index:2}.factory-bootstrap-425 .nav{padding-left:0;margin-bottom:0;list-style:none}.factory-bootstrap-425 .nav:after,.factory-bootstrap-425 .nav:before{display:table;content:" "}.factory-bootstrap-425 .nav:after{clear:both}.factory-bootstrap-425 .nav>li{position:relative;display:block}.factory-bootstrap-425 .nav>li>a{position:relative;display:block;padding:10px 15px}.factory-bootstrap-425 .nav>li>a:focus,.factory-bootstrap-425 .nav>li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-425 .nav>li.disabled>a{color:#999}.factory-bootstrap-425 .nav>li.disabled>a:focus,.factory-bootstrap-425 .nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.factory-bootstrap-425 .nav .open>a,.factory-bootstrap-425 .nav .open>a:focus,.factory-bootstrap-425 .nav .open>a:hover{background-color:#eee;border-color:#428bca}.factory-bootstrap-425 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-425 .nav>li>a>img{max-width:none}.factory-bootstrap-425 .nav-tabs{border-bottom:1px solid #ddd}.factory-bootstrap-425 .nav-tabs>li{float:left;margin-bottom:-1px}.factory-bootstrap-425 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.factory-bootstrap-425 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.factory-bootstrap-425 .nav-tabs>li.active>a,.factory-bootstrap-425 .nav-tabs>li.active>a:focus,.factory-bootstrap-425 .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.factory-bootstrap-425 .nav-tabs.nav-justified{width:100%;border-bottom:0}.factory-bootstrap-425 .nav-tabs.nav-justified>li{float:none}.factory-bootstrap-425 .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-425 .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.factory-bootstrap-425 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-425 .nav-tabs.nav-justified>.active>a,.factory-bootstrap-425 .nav-tabs.nav-justified>.active>a:focus,.factory-bootstrap-425 .nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.factory-bootstrap-425 .nav-pills>li{float:left}.factory-bootstrap-425 .nav-pills>li>a{border-radius:4px}.factory-bootstrap-425 .nav-pills>li+li{margin-left:2px}.factory-bootstrap-425 .nav-pills>li.active>a,.factory-bootstrap-425 .nav-pills>li.active>a:focus,.factory-bootstrap-425 .nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.factory-bootstrap-425 .nav-stacked>li{float:none}.factory-bootstrap-425 .nav-stacked>li+li{margin-top:2px;margin-left:0}.factory-bootstrap-425 .nav-justified{width:100%}.factory-bootstrap-425 .nav-justified>li{float:none}.factory-bootstrap-425 .nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-425 .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.factory-bootstrap-425 .nav-tabs-justified{border-bottom:0}.factory-bootstrap-425 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-425 .nav-tabs-justified>.active>a,.factory-bootstrap-425 .nav-tabs-justified>.active>a:focus,.factory-bootstrap-425 .nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.factory-bootstrap-425 .tab-content>.tab-pane{display:none}.factory-bootstrap-425 .tab-content>.active{display:block}.factory-bootstrap-425 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-425 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.factory-bootstrap-425 .navbar:after,.factory-bootstrap-425 .navbar:before{display:table;content:" "}.factory-bootstrap-425 .navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.factory-bootstrap-425 .navbar-header:after,.factory-bootstrap-425 .navbar-header:before{display:table;content:" "}.factory-bootstrap-425 .navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.factory-bootstrap-425 .navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.factory-bootstrap-425 .navbar-collapse:after,.factory-bootstrap-425 .navbar-collapse:before{display:table;content:" "}.factory-bootstrap-425 .navbar-collapse:after{clear:both}.factory-bootstrap-425 .navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.factory-bootstrap-425 .container>.navbar-collapse,.factory-bootstrap-425 .container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.factory-bootstrap-425 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.factory-bootstrap-425 .navbar-fixed-bottom,.factory-bootstrap-425 .navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.factory-bootstrap-425 .navbar-fixed-top{top:0;border-width:0 0 1px}.factory-bootstrap-425 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.factory-bootstrap-425 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.factory-bootstrap-425 .navbar-brand:focus,.factory-bootstrap-425 .navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.factory-bootstrap-425 .navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.factory-bootstrap-425 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.factory-bootstrap-425 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.factory-bootstrap-425 .navbar-nav{margin:7.5px -15px}.factory-bootstrap-425 .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.factory-bootstrap-425 .navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.factory-bootstrap-425 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-425 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-425 .navbar-nav.pull-right>li>.dropdown-menu,.factory-bootstrap-425 .navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-425 .navbar-btn{margin-top:8px;margin-bottom:8px}.factory-bootstrap-425 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.factory-bootstrap-425 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.factory-bootstrap-425 .navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.factory-bootstrap-425 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.factory-bootstrap-425 .navbar-default .navbar-brand{color:#777}.factory-bootstrap-425 .navbar-default .navbar-brand:focus,.factory-bootstrap-425 .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.factory-bootstrap-425 .navbar-default .navbar-nav>li>a,.factory-bootstrap-425 .navbar-default .navbar-text{color:#777}.factory-bootstrap-425 .navbar-default .navbar-nav>li>a:focus,.factory-bootstrap-425 .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.factory-bootstrap-425 .navbar-default .navbar-nav>.active>a,.factory-bootstrap-425 .navbar-default .navbar-nav>.active>a:focus,.factory-bootstrap-425 .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.factory-bootstrap-425 .navbar-default .navbar-nav>.disabled>a,.factory-bootstrap-425 .navbar-default .navbar-nav>.disabled>a:focus,.factory-bootstrap-425 .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.factory-bootstrap-425 .navbar-default .navbar-toggle{border-color:#ddd}.factory-bootstrap-425 .navbar-default .navbar-toggle:focus,.factory-bootstrap-425 .navbar-default .navbar-toggle:hover{background-color:#ddd}.factory-bootstrap-425 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.factory-bootstrap-425 .navbar-default .navbar-collapse,.factory-bootstrap-425 .navbar-default .navbar-form{border-color:#e7e7e7}.factory-bootstrap-425 .navbar-default .navbar-nav>.open>a,.factory-bootstrap-425 .navbar-default .navbar-nav>.open>a:focus,.factory-bootstrap-425 .navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.factory-bootstrap-425 .navbar-default .navbar-link{color:#777}.factory-bootstrap-425 .navbar-default .navbar-link:hover{color:#333}.factory-bootstrap-425 .navbar-inverse{background-color:#222;border-color:#080808}.factory-bootstrap-425 .navbar-inverse .navbar-brand{color:#999}.factory-bootstrap-425 .navbar-inverse .navbar-brand:focus,.factory-bootstrap-425 .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.factory-bootstrap-425 .navbar-inverse .navbar-nav>li>a,.factory-bootstrap-425 .navbar-inverse .navbar-text{color:#999}.factory-bootstrap-425 .navbar-inverse .navbar-nav>li>a:focus,.factory-bootstrap-425 .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.factory-bootstrap-425 .navbar-inverse .navbar-nav>.active>a,.factory-bootstrap-425 .navbar-inverse .navbar-nav>.active>a:focus,.factory-bootstrap-425 .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.factory-bootstrap-425 .navbar-inverse .navbar-nav>.disabled>a,.factory-bootstrap-425 .navbar-inverse .navbar-nav>.disabled>a:focus,.factory-bootstrap-425 .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.factory-bootstrap-425 .navbar-inverse .navbar-toggle{border-color:#333}.factory-bootstrap-425 .navbar-inverse .navbar-toggle:focus,.factory-bootstrap-425 .navbar-inverse .navbar-toggle:hover{background-color:#333}.factory-bootstrap-425 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.factory-bootstrap-425 .navbar-inverse .navbar-collapse,.factory-bootstrap-425 .navbar-inverse .navbar-form{border-color:#101010}.factory-bootstrap-425 .navbar-inverse .navbar-nav>.open>a,.factory-bootstrap-425 .navbar-inverse .navbar-nav>.open>a:focus,.factory-bootstrap-425 .navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.factory-bootstrap-425 .navbar-inverse .navbar-link{color:#999}.factory-bootstrap-425 .navbar-inverse .navbar-link:hover{color:#fff}.factory-bootstrap-425 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.factory-bootstrap-425 .breadcrumb>li{display:inline-block}.factory-bootstrap-425 .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.factory-bootstrap-425 .breadcrumb>.active{color:#999}.factory-bootstrap-425 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.factory-bootstrap-425 .pagination>li{display:inline}.factory-bootstrap-425 .pagination>li>a,.factory-bootstrap-425 .pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-425 .pagination>li:first-child>a,.factory-bootstrap-425 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.factory-bootstrap-425 .pagination>li:last-child>a,.factory-bootstrap-425 .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.factory-bootstrap-425 .pagination>li>a:focus,.factory-bootstrap-425 .pagination>li>a:hover,.factory-bootstrap-425 .pagination>li>span:focus,.factory-bootstrap-425 .pagination>li>span:hover{background-color:#eee}.factory-bootstrap-425 .pagination>.active>a,.factory-bootstrap-425 .pagination>.active>a:focus,.factory-bootstrap-425 .pagination>.active>a:hover,.factory-bootstrap-425 .pagination>.active>span,.factory-bootstrap-425 .pagination>.active>span:focus,.factory-bootstrap-425 .pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#1e8cbe;border-color:#0074a2}.factory-bootstrap-425 .pagination>.disabled>a,.factory-bootstrap-425 .pagination>.disabled>a:focus,.factory-bootstrap-425 .pagination>.disabled>a:hover,.factory-bootstrap-425 .pagination>.disabled>span,.factory-bootstrap-425 .pagination>.disabled>span:focus,.factory-bootstrap-425 .pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.factory-bootstrap-425 .pagination-lg>li>a,.factory-bootstrap-425 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.factory-bootstrap-425 .pagination-lg>li:first-child>a,.factory-bootstrap-425 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.factory-bootstrap-425 .pagination-lg>li:last-child>a,.factory-bootstrap-425 .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.factory-bootstrap-425 .pagination-sm>li>a,.factory-bootstrap-425 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.factory-bootstrap-425 .pagination-sm>li:first-child>a,.factory-bootstrap-425 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.factory-bootstrap-425 .pagination-sm>li:last-child>a,.factory-bootstrap-425 .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.factory-bootstrap-425 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.factory-bootstrap-425 .pager:after,.factory-bootstrap-425 .pager:before{display:table;content:" "}.factory-bootstrap-425 .pager:after{clear:both}.factory-bootstrap-425 .pager li{display:inline}.factory-bootstrap-425 .pager li>a,.factory-bootstrap-425 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.factory-bootstrap-425 .pager li>a:focus,.factory-bootstrap-425 .pager li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-425 .pager .next>a,.factory-bootstrap-425 .pager .next>span{float:right}.factory-bootstrap-425 .pager .previous>a,.factory-bootstrap-425 .pager .previous>span{float:left}.factory-bootstrap-425 .pager .disabled>a,.factory-bootstrap-425 .pager .disabled>a:focus,.factory-bootstrap-425 .pager .disabled>a:hover,.factory-bootstrap-425 .pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.factory-bootstrap-425 .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.factory-bootstrap-425 .label[href]:focus,.factory-bootstrap-425 .label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-425 .label:empty{display:none}.factory-bootstrap-425 .btn .label{position:relative;top:-1px}.factory-bootstrap-425 .label-default{background-color:#999}.factory-bootstrap-425 .label-default[href]:focus,.factory-bootstrap-425 .label-default[href]:hover{background-color:gray}.factory-bootstrap-425 .label-primary{background-color:#428bca}.factory-bootstrap-425 .label-primary[href]:focus,.factory-bootstrap-425 .label-primary[href]:hover{background-color:#3071a9}.factory-bootstrap-425 .label-success{background-color:#5cb85c}.factory-bootstrap-425 .label-success[href]:focus,.factory-bootstrap-425 .label-success[href]:hover{background-color:#449d44}.factory-bootstrap-425 .label-info{background-color:#5bc0de}.factory-bootstrap-425 .label-info[href]:focus,.factory-bootstrap-425 .label-info[href]:hover{background-color:#31b0d5}.factory-bootstrap-425 .label-warning{background-color:#f0ad4e}.factory-bootstrap-425 .label-warning[href]:focus,.factory-bootstrap-425 .label-warning[href]:hover{background-color:#ec971f}.factory-bootstrap-425 .label-danger{background-color:#d9534f}.factory-bootstrap-425 .label-danger[href]:focus,.factory-bootstrap-425 .label-danger[href]:hover{background-color:#c9302c}.factory-bootstrap-425 .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.factory-bootstrap-425 .badge:empty{display:none}.factory-bootstrap-425 .btn .badge{position:relative;top:-1px}.factory-bootstrap-425 a.badge:focus,.factory-bootstrap-425 a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-425 .nav-pills>.active>a>.badge,.factory-bootstrap-425 a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.factory-bootstrap-425 .nav-pills>li>a>.badge{margin-left:3px}.factory-bootstrap-425 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.factory-bootstrap-425 .jumbotron .h1,.factory-bootstrap-425 .jumbotron h1{line-height:1;color:inherit}.factory-bootstrap-425 .jumbotron p{line-height:1.4}.factory-bootstrap-425 .container .jumbotron{border-radius:6px}.factory-bootstrap-425 .jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.factory-bootstrap-425 .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.factory-bootstrap-425 .thumbnail a>img,.factory-bootstrap-425 .thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}.factory-bootstrap-425 a.thumbnail.active,.factory-bootstrap-425 a.thumbnail:focus,.factory-bootstrap-425 a.thumbnail:hover{border-color:#428bca}.factory-bootstrap-425 .thumbnail .caption{padding:9px;color:#333}.factory-bootstrap-425 .alert{border:1px solid transparent;border-radius:4px}.factory-bootstrap-425 .alert h4{margin-top:0;color:inherit}.factory-bootstrap-425 .alert .alert-link{font-weight:700}.factory-bootstrap-425 .alert>p,.factory-bootstrap-425 .alert>ul{margin-bottom:0}.factory-bootstrap-425 .alert>p+p{margin-top:5px}.factory-bootstrap-425 .alert-dismissable{padding-right:35px}.factory-bootstrap-425 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.factory-bootstrap-425 .alert-info{color:#31708f;background-color:#d9edf7}.factory-bootstrap-425 .alert-info hr{border-top-color:#a6e1ec}.factory-bootstrap-425 .alert-info .alert-link{color:#245269}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.factory-bootstrap-425 .progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.factory-bootstrap-425 .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#2ea2cc;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.factory-bootstrap-425 .progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.factory-bootstrap-425 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.factory-bootstrap-425 .progress-bar-success{background-color:#5cb85c}.factory-bootstrap-425 .progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-425 .progress-bar-info{background-color:#5bc0de}.factory-bootstrap-425 .progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-425 .progress-bar-warning{background-color:#f0ad4e}.factory-bootstrap-425 .progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-425 .progress-bar-danger{background-color:#d9534f}.factory-bootstrap-425 .progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-425 .media,.factory-bootstrap-425 .media-body{overflow:hidden;zoom:1}.factory-bootstrap-425 .media,.factory-bootstrap-425 .media .media{margin-top:15px}.factory-bootstrap-425 .media:first-child{margin-top:0}.factory-bootstrap-425 .media-object{display:block}.factory-bootstrap-425 .media-heading{margin:0 0 5px}.factory-bootstrap-425 .media>.pull-left{margin-right:10px}.factory-bootstrap-425 .media>.pull-right{margin-left:10px}.factory-bootstrap-425 .media-list{padding-left:0;list-style:none}.factory-bootstrap-425 .list-group{padding-left:0;margin-bottom:20px}.factory-bootstrap-425 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-425 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.factory-bootstrap-425 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.factory-bootstrap-425 .list-group-item>.badge{float:right}.factory-bootstrap-425 .list-group-item>.badge+.badge{margin-right:5px}.factory-bootstrap-425 a.list-group-item{color:#555}.factory-bootstrap-425 a.list-group-item .list-group-item-heading{color:#333}.factory-bootstrap-425 a.list-group-item:focus,.factory-bootstrap-425 a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.factory-bootstrap-425 a.list-group-item.active,.factory-bootstrap-425 a.list-group-item.active:focus,.factory-bootstrap-425 a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-425 a.list-group-item.active .list-group-item-heading,.factory-bootstrap-425 a.list-group-item.active:focus .list-group-item-heading,.factory-bootstrap-425 a.list-group-item.active:hover .list-group-item-heading{color:inherit}.factory-bootstrap-425 a.list-group-item.active .list-group-item-text,.factory-bootstrap-425 a.list-group-item.active:focus .list-group-item-text,.factory-bootstrap-425 a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.factory-bootstrap-425 .list-group-item-heading{margin-top:0;margin-bottom:5px}.factory-bootstrap-425 .list-group-item-text{margin-bottom:0;line-height:1.3}.factory-bootstrap-425 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.factory-bootstrap-425 .panel-body{padding:15px}.factory-bootstrap-425 .panel-body:after,.factory-bootstrap-425 .panel-body:before{display:table;content:" "}.factory-bootstrap-425 .panel-body:after{clear:both}.factory-bootstrap-425 .panel>.list-group{margin-bottom:0}.factory-bootstrap-425 .panel>.list-group .list-group-item{border-width:1px 0}.factory-bootstrap-425 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-425 .panel>.list-group .list-group-item:last-child{border-bottom:0}.factory-bootstrap-425 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.factory-bootstrap-425 .panel>.table,.factory-bootstrap-425 .panel>.table-responsive>.table{margin-bottom:0}.factory-bootstrap-425 .panel>.panel-body+.table,.factory-bootstrap-425 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.factory-bootstrap-425 .panel>.table>tbody:first-child td,.factory-bootstrap-425 .panel>.table>tbody:first-child th{border-top:0}.factory-bootstrap-425 .panel>.table-bordered,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered{border:0}.factory-bootstrap-425 .panel>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-425 .panel>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-425 .panel>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-425 .panel>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-425 .panel>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-425 .panel>.table-bordered>thead>tr>th:first-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.factory-bootstrap-425 .panel>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-425 .panel>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-425 .panel>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-425 .panel>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-425 .panel>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-425 .panel>.table-bordered>thead>tr>th:last-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.factory-bootstrap-425 .panel>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-425 .panel>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-425 .panel>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-425 .panel>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-425 .panel>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-425 .panel>.table-bordered>thead>tr:last-child>th,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-425 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}.factory-bootstrap-425 .panel>.table-responsive{margin-bottom:0;border:0}.factory-bootstrap-425 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.factory-bootstrap-425 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.factory-bootstrap-425 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.factory-bootstrap-425 .panel-title>a{color:inherit}.factory-bootstrap-425 .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.factory-bootstrap-425 .panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.factory-bootstrap-425 .panel-group .panel+.panel{margin-top:5px}.factory-bootstrap-425 .panel-group .panel-heading{border-bottom:0}.factory-bootstrap-425 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.factory-bootstrap-425 .panel-group .panel-footer{border-top:0}.factory-bootstrap-425 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.factory-bootstrap-425 .panel-default{border-color:#ddd}.factory-bootstrap-425 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.factory-bootstrap-425 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.factory-bootstrap-425 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.factory-bootstrap-425 .panel-primary{border-color:#428bca}.factory-bootstrap-425 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-425 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.factory-bootstrap-425 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.factory-bootstrap-425 .panel-success{border-color:#d6e9c6}.factory-bootstrap-425 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.factory-bootstrap-425 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.factory-bootstrap-425 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.factory-bootstrap-425 .panel-warning{border-color:#faebcc}.factory-bootstrap-425 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.factory-bootstrap-425 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.factory-bootstrap-425 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.factory-bootstrap-425 .panel-danger{border-color:#ebccd1}.factory-bootstrap-425 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.factory-bootstrap-425 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.factory-bootstrap-425 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.factory-bootstrap-425 .panel-info{border-color:#bce8f1}.factory-bootstrap-425 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.factory-bootstrap-425 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.factory-bootstrap-425 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.factory-bootstrap-425 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.factory-bootstrap-425 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.factory-bootstrap-425 .well-lg{padding:24px;border-radius:6px}.factory-bootstrap-425 .well-sm{padding:9px;border-radius:3px}.factory-bootstrap-425 .close{float:right;font-size:14px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.3;filter:alpha(opacity=30)}.factory-bootstrap-425 .alert .close{position:relative;top:-8px;right:-7px}.factory-bootstrap-425 .close:focus,.factory-bootstrap-425 .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-425 button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.factory-bootstrap-425 .modal-open{overflow:hidden}.factory-bootstrap-425 .modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll;width:auto;margin-left:0;background-color:transparent;border:0}.factory-bootstrap-425 .modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.factory-bootstrap-425 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.factory-bootstrap-425 .modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.factory-bootstrap-425 .modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box}.factory-bootstrap-425 .modal-backdrop,.factory-bootstrap-425-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.factory-bootstrap-425 .modal-backdrop.fade,.factory-bootstrap-425-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.factory-bootstrap-425 .modal-backdrop.in,.factory-bootstrap-425-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-425 .modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.factory-bootstrap-425 .modal-header .close{margin-top:-2px}.factory-bootstrap-425 .modal-title{margin:0;line-height:1.428571429}.factory-bootstrap-425 .modal-body{position:relative;padding:20px;max-height:none}.factory-bootstrap-425 .modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.factory-bootstrap-425 .modal-footer:after,.factory-bootstrap-425 .modal-footer:before{display:table;content:" "}.factory-bootstrap-425 .modal-footer:after{clear:both}.factory-bootstrap-425 .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.factory-bootstrap-425 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.factory-bootstrap-425 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.factory-bootstrap-425 .modal-dialog{width:600px;margin:30px auto}.factory-bootstrap-425 .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}}.factory-bootstrap-425 .tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.factory-bootstrap-425 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-425 .tooltip.top{padding:5px 0;margin-top:-3px}.factory-bootstrap-425 .tooltip.right{padding:0 5px;margin-left:3px}.factory-bootstrap-425 .tooltip.bottom{padding:5px 0;margin-top:3px}.factory-bootstrap-425 .tooltip.left{padding:0 5px;margin-left:-3px}.factory-bootstrap-425 .tooltip-inner{width:400px;padding:15px 20px;color:#fff;text-align:left;text-decoration:none;background-color:#673ab7;border-radius:3px}.factory-bootstrap-425 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-425 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-425 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-425 .tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-425 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#673ab7;border-width:5px 5px 5px 0}.factory-bootstrap-425 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#673ab7;border-width:5px 0 5px 5px}.factory-bootstrap-425 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-425 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-425 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-425 .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);background-clip:padding-box}.factory-bootstrap-425 .popover.top{margin-top:-10px}.factory-bootstrap-425 .popover.right{margin-left:10px}.factory-bootstrap-425 .popover.bottom{margin-top:10px}.factory-bootstrap-425 .popover.left{margin-left:-10px}.factory-bootstrap-425 .popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.factory-bootstrap-425 .popover-content{padding:9px 14px}.factory-bootstrap-425 .popover .arrow,.factory-bootstrap-425 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-425 .popover .arrow{border-width:11px}.factory-bootstrap-425 .popover .arrow:after{border-width:10px;content:""}.factory-bootstrap-425 .popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.factory-bootstrap-425 .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.factory-bootstrap-425 .popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.factory-bootstrap-425 .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.factory-bootstrap-425 .popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);border-top-width:0}.factory-bootstrap-425 .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.factory-bootstrap-425 .popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,.25);border-right-width:0}.factory-bootstrap-425 .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.factory-bootstrap-425 .carousel{position:relative}.factory-bootstrap-425 .carousel-inner{position:relative;width:100%;overflow:hidden}.factory-bootstrap-425 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.factory-bootstrap-425 .carousel-inner>.item>a>img,.factory-bootstrap-425 .carousel-inner>.item>img{display:block;height:auto;max-width:100%;line-height:1}.factory-bootstrap-425 .carousel-inner>.active,.factory-bootstrap-425 .carousel-inner>.next,.factory-bootstrap-425 .carousel-inner>.prev{display:block}.factory-bootstrap-425 .carousel-inner>.active{left:0}.factory-bootstrap-425 .carousel-inner>.next,.factory-bootstrap-425 .carousel-inner>.prev{position:absolute;top:0;width:100%}.factory-bootstrap-425 .carousel-inner>.next{left:100%}.factory-bootstrap-425 .carousel-inner>.prev{left:-100%}.factory-bootstrap-425 .carousel-inner>.next.left,.factory-bootstrap-425 .carousel-inner>.prev.right{left:0}.factory-bootstrap-425 .carousel-inner>.active.left{left:-100%}.factory-bootstrap-425 .carousel-inner>.active.right{left:100%}.factory-bootstrap-425 .carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-425 .carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.factory-bootstrap-425 .carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.factory-bootstrap-425 .carousel-control:focus,.factory-bootstrap-425 .carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-425 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-425 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-425 .carousel-control .icon-next,.factory-bootstrap-425 .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.factory-bootstrap-425 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-425 .carousel-control .icon-prev{left:50%}.factory-bootstrap-425 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-425 .carousel-control .icon-next{right:50%}.factory-bootstrap-425 .carousel-control .icon-next,.factory-bootstrap-425 .carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.factory-bootstrap-425 .carousel-control .icon-prev:before{content:'\2039'}.factory-bootstrap-425 .carousel-control .icon-next:before{content:'\203a'}.factory-bootstrap-425 .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.factory-bootstrap-425 .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.factory-bootstrap-425 .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.factory-bootstrap-425 .carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.factory-bootstrap-425 .carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.factory-bootstrap-425 .clearfix:after,.factory-bootstrap-425 .clearfix:before{display:table;content:" "}.factory-bootstrap-425 .clearfix:after{clear:both}.factory-bootstrap-425 .center-block{display:block;margin-right:auto;margin-left:auto}.factory-bootstrap-425 .pull-right{float:right!important}.factory-bootstrap-425 .pull-left{float:left!important}.factory-bootstrap-425 .hide{display:none!important}.factory-bootstrap-425 .show{display:block!important}.factory-bootstrap-425 .invisible{visibility:hidden}.factory-bootstrap-425 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.factory-bootstrap-425 .hidden{display:none!important;visibility:hidden!important}.factory-bootstrap-425 .affix{position:fixed}@-ms-viewport{width:device-width}.factory-bootstrap-425 .visible-lg,.factory-bootstrap-425 .visible-md,.factory-bootstrap-425 .visible-sm,.factory-bootstrap-425 .visible-xs,.factory-bootstrap-425 td.visible-lg,.factory-bootstrap-425 td.visible-md,.factory-bootstrap-425 td.visible-sm,.factory-bootstrap-425 td.visible-xs,.factory-bootstrap-425 th.visible-lg,.factory-bootstrap-425 th.visible-md,.factory-bootstrap-425 th.visible-sm,.factory-bootstrap-425 th.visible-xs,.factory-bootstrap-425 tr.visible-lg,.factory-bootstrap-425 tr.visible-md,.factory-bootstrap-425 tr.visible-sm,.factory-bootstrap-425 tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}table.visible-xs.visible-sm{display:table}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}table.visible-xs.visible-md{display:table}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}table.visible-xs.visible-lg{display:table}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}table.visible-sm.visible-xs{display:table}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}table.visible-sm.visible-md{display:table}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}table.visible-sm.visible-lg{display:table}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}table.visible-md.visible-xs{display:table}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}table.visible-md.visible-sm{display:table}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}table.visible-md.visible-lg{display:table}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}table.visible-lg.visible-xs{display:table}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}table.visible-lg.visible-sm{display:table}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}table.visible-lg.visible-md{display:table}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.factory-bootstrap-425 .hidden-xs{display:block!important}.factory-bootstrap-425 table.hidden-xs{display:table}.factory-bootstrap-425 tr.hidden-xs{display:table-row!important}.factory-bootstrap-425 td.hidden-xs,.factory-bootstrap-425 th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.factory-bootstrap-425 .hidden-sm{display:block!important}.factory-bootstrap-425 table.hidden-sm{display:table}.factory-bootstrap-425 tr.hidden-sm{display:table-row!important}.factory-bootstrap-425 td.hidden-sm,.factory-bootstrap-425 th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.factory-bootstrap-425 .hidden-md{display:block!important}.factory-bootstrap-425 table.hidden-md{display:table}.factory-bootstrap-425 tr.hidden-md{display:table-row!important}.factory-bootstrap-425 td.hidden-md,.factory-bootstrap-425 th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.factory-bootstrap-425 .hidden-lg{display:block!important}.factory-bootstrap-425 table.hidden-lg{display:table}.factory-bootstrap-425 tr.hidden-lg{display:table-row!important}.factory-bootstrap-425 td.hidden-lg,.factory-bootstrap-425 th.hidden-lg{display:table-cell!important}@media (max-width:767px){.factory-bootstrap-425 .hidden-lg.hidden-xs,.factory-bootstrap-425 td.hidden-lg.hidden-xs,.factory-bootstrap-425 th.hidden-lg.hidden-xs,.factory-bootstrap-425 tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.factory-bootstrap-425 .hidden-lg.hidden-sm,.factory-bootstrap-425 td.hidden-lg.hidden-sm,.factory-bootstrap-425 th.hidden-lg.hidden-sm,.factory-bootstrap-425 tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.factory-bootstrap-425 .hidden-lg.hidden-md,.factory-bootstrap-425 td.hidden-lg.hidden-md,.factory-bootstrap-425 th.hidden-lg.hidden-md,.factory-bootstrap-425 tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.factory-bootstrap-425 .hidden-lg,.factory-bootstrap-425 td.hidden-lg,.factory-bootstrap-425 th.hidden-lg,.factory-bootstrap-425 tr.hidden-lg{display:none!important}}.factory-bootstrap-425 .visible-print,.factory-bootstrap-425 td.visible-print,.factory-bootstrap-425 th.visible-print,.factory-bootstrap-425 tr.visible-print{display:none!important}@media print{.factory-bootstrap-425 .visible-print{display:block!important}.factory-bootstrap-425 table.visible-print{display:table}.factory-bootstrap-425 tr.visible-print{display:table-row!important}.factory-bootstrap-425 td.visible-print,.factory-bootstrap-425 th.visible-print{display:table-cell!important}.factory-bootstrap-425 .hidden-print,.factory-bootstrap-425 td.hidden-print,.factory-bootstrap-425 th.hidden-print,.factory-bootstrap-425 tr.hidden-print{display:none!important}}/*!
|
12 |
* Factory Default Bootstrap Theme
|
13 |
*
|
14 |
* The code is based on Bootstrap v2.1.1
|
@@ -22,4 +22,4 @@
|
|
22 |
*
|
23 |
* @package factory-bootstrap
|
24 |
* @since 1.0.0
|
25 |
-
*/.factory-bootstrap-425 .btn-danger,.factory-bootstrap-425 .btn-default,.factory-bootstrap-425 .btn-info,.factory-bootstrap-425 .btn-primary,.factory-bootstrap-425 .btn-success,.factory-bootstrap-425 .btn-warning{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-425 .btn-danger.active,.factory-bootstrap-425 .btn-danger:active,.factory-bootstrap-425 .btn-default.active,.factory-bootstrap-425 .btn-default:active,.factory-bootstrap-425 .btn-info.active,.factory-bootstrap-425 .btn-info:active,.factory-bootstrap-425 .btn-primary.active,.factory-bootstrap-425 .btn-primary:active,.factory-bootstrap-425 .btn-success.active,.factory-bootstrap-425 .btn-success:active,.factory-bootstrap-425 .btn-warning.active,.factory-bootstrap-425 .btn-warning:active{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.1);box-shadow:inset 0 1px 1px rgba(0,0,0,.1)}.factory-bootstrap-425 .btn.active,.factory-bootstrap-425 .btn:active{background-image:none}.factory-bootstrap-425 .btn-default{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.factory-bootstrap-425 .btn-default.active,.factory-bootstrap-425 .btn-default:active{background-color:#fff;border-color:#dbdbdb}.factory-bootstrap-425 .btn-gold{font-weight:700;padding:7px 12px;cursor:pointer;line-height:16px;display:inline-block;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;box-shadow:#e3e3e3 0 1px 1px;-moz-box-shadow:0 1px 1px rgba(000,000,000,.1),inset 0 1px 1px rgba(255,255,255,.7);-webkit-box-shadow:0 1px 1px rgba(000,000,000,.1),inset 0 1px 1px rgba(255,255,255,.7);text-shadow:1px 1px 0 #ffe8b2;color:#7c5d1b;border:1px solid #d6a437;background:#feeb80}.factory-bootstrap-425 .btn-gold:focus,.factory-bootstrap-425 .btn-gold:hover{background:#fef0a1}.factory-bootstrap-425 .btn-gold.active,.factory-bootstrap-425 .btn-gold:active{background:#fef0a1;-webkit-box-shadow:inset 0 3px 8px 0 #f8ba36;box-shadow:inset 0 3px 8px 0 #f8ba36}.factory-bootstrap-425 .btn-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.factory-bootstrap-425 .btn-primary:focus,.factory-bootstrap-425 .btn-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.factory-bootstrap-425 .btn-primary.active,.factory-bootstrap-425 .btn-primary:active{background-color:#2d6ca2;border-color:#2b669a}.factory-bootstrap-425 .btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-425 .btn-success:focus,.factory-bootstrap-425 .btn-success:hover{background-color:#419641;background-position:0 -15px}.factory-bootstrap-425 .btn-success.active,.factory-bootstrap-425 .btn-success:active{background-color:#419641;border-color:#3e8f3e}.factory-bootstrap-425 .btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-425 .btn-warning:focus,.factory-bootstrap-425 .btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.factory-bootstrap-425 .btn-warning.active,.factory-bootstrap-425 .btn-warning:active{background-color:#eb9316;border-color:#e38d13}.factory-bootstrap-425 .btn-danger{color:#fff;background:#d9534f;border-color:#d43f3a}.factory-bootstrap-425 .btn-danger.active,.factory-bootstrap-425 .btn-danger:active,.factory-bootstrap-425 .btn-danger:focus,.factory-bootstrap-425 .btn-danger:hover,.factory-bootstrap-425 .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.factory-bootstrap-425 .btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-425 .btn-info:focus,.factory-bootstrap-425 .btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.factory-bootstrap-425 .btn-info.active,.factory-bootstrap-425 .btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.factory-bootstrap-425 .img-thumbnail,.factory-bootstrap-425 .thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-425 .dropdown-menu>li>a:focus,.factory-bootstrap-425 .dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.factory-bootstrap-425 .dropdown-menu>.active>a,.factory-bootstrap-425 .dropdown-menu>.active>a:focus,.factory-bootstrap-425 .dropdown-menu>.active>a:hover{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.factory-bootstrap-425 .navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.factory-bootstrap-425 .navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.factory-bootstrap-425 .navbar-brand,.factory-bootstrap-425 .navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.factory-bootstrap-425 .navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-425 .navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.factory-bootstrap-425 .navbar-inverse .navbar-brand,.factory-bootstrap-425 .navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-425 .navbar-fixed-bottom,.factory-bootstrap-425 .navbar-fixed-top,.factory-bootstrap-425 .navbar-static-top{border-radius:0}.factory-bootstrap-425 .alert{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-425 .alert .actions{padding-top:10px}.factory-bootstrap-425 .alert-success{color:#3c763d;background-color:#dff0d8;border-bottom:2px solid #c8e5bc}.factory-bootstrap-425 .alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0)}.factory-bootstrap-425 .alert{text-shadow:none;box-shadow:none;margin:0;margin-top:10px;margin-bottom:10px;padding:10px}.factory-bootstrap-425 .alert-normal,.factory-bootstrap-425 .alert-warning{background:#fcf8e3;color:#8a6d3b;border:1px solid #b8823b}.factory-bootstrap-425 .alert-danger{background:#cf4944;color:#fff;border-bottom:2px solid #b23e3a}.factory-bootstrap-425 .alert-danger a:not(.btn),.factory-bootstrap-425 .alert-error a:not(.btn){color:#fff}.factory-bootstrap-425 .progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.factory-bootstrap-425 .progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.factory-bootstrap-425 .progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.factory-bootstrap-425 .progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.factory-bootstrap-425 .progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.factory-bootstrap-425 .progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.factory-bootstrap-425 .list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-425 .list-group-item.active,.factory-bootstrap-425 .list-group-item.active:focus,.factory-bootstrap-425 .list-group-item.active:hover{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0)}.factory-bootstrap-425 .panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-425 .panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.factory-bootstrap-425 .panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.factory-bootstrap-425 .panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.factory-bootstrap-425 .panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.factory-bootstrap-425 .panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.factory-bootstrap-425 .panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.factory-bootstrap-425 .well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}.factory-bootstrap-425 .factory-after{margin-left:7px;display:inline-block}.factory-bootstrap-425 .factory-hidden{display:none}.factory-bootstrap-425 .factory-ajax-loader{width:25px;height:25px;background:url(../assets/images/loader-sm-tr.gif)}.factory-control-error{background-color:rgba(0,0,0,.8);white-space:normal;z-index:10;font-weight:400;line-height:150%;border-radius:4px;color:#fff;font-size:13px;margin-top:5px;padding:4px 10px 3px;max-width:500px;display:inline-block}.factory-control-error i{margin:0 7px 0 1px}
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 article,.factory-bootstrap-426 aside,.factory-bootstrap-426 details,.factory-bootstrap-426 figcaption,.factory-bootstrap-426 figure,.factory-bootstrap-426 footer,.factory-bootstrap-426 header,.factory-bootstrap-426 hgroup,.factory-bootstrap-426 main,.factory-bootstrap-426 nav,.factory-bootstrap-426 section,.factory-bootstrap-426 summary{display:block}.factory-bootstrap-426 audio,.factory-bootstrap-426 canvas,.factory-bootstrap-426 video{display:inline-block}.factory-bootstrap-426 audio:not([controls]){display:none;height:0}.factory-bootstrap-426 [hidden],.factory-bootstrap-426 template{display:none}.factory-bootstrap-426 body{margin:0}.factory-bootstrap-426 a{background:0 0}.factory-bootstrap-426 a:focus{outline:thin dotted}.factory-bootstrap-426 a:active,.factory-bootstrap-426 a:hover{outline:0}.factory-bootstrap-426 h1{margin:.67em 0}.factory-bootstrap-426 b,.factory-bootstrap-426 strong{font-weight:700}.factory-bootstrap-426 dfn{font-style:italic}.factory-bootstrap-426 hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-426 mark{color:#000;background:#ff0}.factory-bootstrap-426 code,.factory-bootstrap-426 kbd,.factory-bootstrap-426 pre,.factory-bootstrap-426 samp{font-size:1em}.factory-bootstrap-426 pre{white-space:pre-wrap}.factory-bootstrap-426 q{quotes:"\201C" "\201D" "\2018" "\2019"}.factory-bootstrap-426 sub,.factory-bootstrap-426 sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.factory-bootstrap-426 sup{top:-.5em}.factory-bootstrap-426 sub{bottom:-.25em}.factory-bootstrap-426 img{border:0}.factory-bootstrap-426 svg:not(:root){overflow:hidden}.factory-bootstrap-426 figure{margin:0}.factory-bootstrap-426 button,.factory-bootstrap-426 input,.factory-bootstrap-426 select,.factory-bootstrap-426 textarea{margin:0}.factory-bootstrap-426 button,.factory-bootstrap-426 select{text-transform:none}.factory-bootstrap-426 select{padding-right:4px!important}.factory-bootstrap-426 button,.factory-bootstrap-426 input[type=reset],.factory-bootstrap-426 input[type=submit],html .factory-bootstrap-426 input[type=button]{cursor:pointer;-webkit-appearance:button}.factory-bootstrap-426 button[disabled],html .factory-bootstrap-426 input[disabled]{cursor:default}.factory-bootstrap-426 input[type=checkbox],.factory-bootstrap-426 input[type=radio]{padding:0;box-sizing:border-box}.factory-bootstrap-426 input[type=search]{-webkit-appearance:textfield}.factory-bootstrap-426 input[type=search]::-webkit-search-cancel-button,.factory-bootstrap-426 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.factory-bootstrap-426 button::-moz-focus-inner,.factory-bootstrap-426 input::-moz-focus-inner{padding:0;border:0}.factory-bootstrap-426 textarea{overflow:auto;vertical-align:top}.factory-bootstrap-426 table{border-collapse:collapse;border-spacing:0}@media print{.factory-bootstrap-426 *{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}.factory-bootstrap-426 a,.factory-bootstrap-426 a:visited{text-decoration:underline}.factory-bootstrap-426 a[href]:after{content:" (" attr(href) ")"}.factory-bootstrap-426 abbr[title]:after{content:" (" attr(title) ")"}.factory-bootstrap-426 a[href^="javascript:"]:after,.factory-bootstrap-426 a[href^="#"]:after{content:""}.factory-bootstrap-426 blockquote,.factory-bootstrap-426 pre{border:1px solid #999;page-break-inside:avoid}.factory-bootstrap-426 thead{display:table-header-group}.factory-bootstrap-426 img,.factory-bootstrap-426 tr{page-break-inside:avoid}.factory-bootstrap-426 img{max-width:100%!important}@page{margin:2cm .5cm}.factory-bootstrap-426 h2,.factory-bootstrap-426 h3,.factory-bootstrap-426 p{orphans:3;widows:3}.factory-bootstrap-426 h2,.factory-bootstrap-426 h3{page-break-after:avoid}.factory-bootstrap-426 select{background:#fff!important}.factory-bootstrap-426 .navbar{display:none}.factory-bootstrap-426 .table td,.factory-bootstrap-426 .table th{background-color:#fff!important}.factory-bootstrap-426 .btn>.caret,.factory-bootstrap-426 .dropup>.btn>.caret{border-top-color:#000!important}.factory-bootstrap-426 .label{border:1px solid #000}.factory-bootstrap-426 .table{border-collapse:collapse!important}.factory-bootstrap-426 .table-bordered td,.factory-bootstrap-426 .table-bordered th{border:1px solid #ddd!important}}.factory-bootstrap-426 *,.factory-bootstrap-426 :after,.factory-bootstrap-426 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html .factory-bootstrap-426{-webkit-tap-highlight-color:rgba(0,0,0,0)}.factory-bootstrap-426 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.factory-bootstrap-426 button,.factory-bootstrap-426 input,.factory-bootstrap-426 select,.factory-bootstrap-426 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.factory-bootstrap-426 img{vertical-align:middle}.factory-bootstrap-426 .img-responsive{display:block;height:auto;max-width:100%}.factory-bootstrap-426 .img-rounded{border-radius:6px}.factory-bootstrap-426 .img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.factory-bootstrap-426 .img-circle{border-radius:50%}.factory-bootstrap-426 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.factory-bootstrap-426 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.factory-bootstrap-426 .h1,.factory-bootstrap-426 .h2,.factory-bootstrap-426 .h3,.factory-bootstrap-426 .h4,.factory-bootstrap-426 .h5,.factory-bootstrap-426 .h6,.factory-bootstrap-426 h1,.factory-bootstrap-426 h2,.factory-bootstrap-426 h3,.factory-bootstrap-426 h4,.factory-bootstrap-426 h5,.factory-bootstrap-426 h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.factory-bootstrap-426 .h1 .small,.factory-bootstrap-426 .h1 small,.factory-bootstrap-426 .h2 .small,.factory-bootstrap-426 .h2 small,.factory-bootstrap-426 .h3 .small,.factory-bootstrap-426 .h3 small,.factory-bootstrap-426 .h4 .small,.factory-bootstrap-426 .h4 small,.factory-bootstrap-426 .h5 .small,.factory-bootstrap-426 .h5 small,.factory-bootstrap-426 .h6 .small,.factory-bootstrap-426 .h6 small,.factory-bootstrap-426 h1 .small,.factory-bootstrap-426 h1 small,.factory-bootstrap-426 h2 .small,.factory-bootstrap-426 h2 small,.factory-bootstrap-426 h3 .small,.factory-bootstrap-426 h3 small,.factory-bootstrap-426 h4 .small,.factory-bootstrap-426 h4 small,.factory-bootstrap-426 h5 .small,.factory-bootstrap-426 h5 small,.factory-bootstrap-426 h6 .small,.factory-bootstrap-426 h6 small{font-weight:400;line-height:1;color:#999}.factory-bootstrap-426 h1,.factory-bootstrap-426 h2,.factory-bootstrap-426 h3{margin-top:20px;margin-bottom:10px}.factory-bootstrap-426 h1 .small,.factory-bootstrap-426 h1 small,.factory-bootstrap-426 h2 .small,.factory-bootstrap-426 h2 small,.factory-bootstrap-426 h3 .small,.factory-bootstrap-426 h3 small{font-size:65%}.factory-bootstrap-426 h4,.factory-bootstrap-426 h5,.factory-bootstrap-426 h6{margin-top:10px;margin-bottom:10px}.factory-bootstrap-426 h4 .small,.factory-bootstrap-426 h4 small,.factory-bootstrap-426 h5 .small,.factory-bootstrap-426 h5 small,.factory-bootstrap-426 h6 .small,.factory-bootstrap-426 h6 small{font-size:75%}.factory-bootstrap-426 .h1,.factory-bootstrap-426 h1{font-size:36px}.factory-bootstrap-426 .h2,.factory-bootstrap-426 h2{font-size:30px}.factory-bootstrap-426 .h3,.factory-bootstrap-426 h3{font-size:24px}.factory-bootstrap-426 .h4,.factory-bootstrap-426 h4{font-size:18px}.factory-bootstrap-426 .h5,.factory-bootstrap-426 h5{font-size:14px}.factory-bootstrap-426 .h6,.factory-bootstrap-426 h6{font-size:12px}.factory-bootstrap-426 p{margin:0 0 10px}.factory-bootstrap-426 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.factory-bootstrap-426 .small,.factory-bootstrap-426 small{font-size:85%}.factory-bootstrap-426 cite{font-style:normal}.factory-bootstrap-426 .text-muted{color:#999}.factory-bootstrap-426 .text-primary{color:#428bca}.factory-bootstrap-426 .text-primary:hover{color:#3071a9}.factory-bootstrap-426 .text-warning{color:#8a6d3b}.factory-bootstrap-426 .text-warning:hover{color:#66512c}.factory-bootstrap-426 .text-danger{color:#a94442}.factory-bootstrap-426 .text-danger:hover{color:#843534}.factory-bootstrap-426 .text-success{color:#3c763d}.factory-bootstrap-426 .text-success:hover{color:#2b542c}.factory-bootstrap-426 .text-info{color:#31708f}.factory-bootstrap-426 .text-info:hover{color:#245269}.factory-bootstrap-426 .text-left{text-align:left}.factory-bootstrap-426 .text-right{text-align:right}.factory-bootstrap-426 .text-center{text-align:center}.factory-bootstrap-426 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.factory-bootstrap-426 ol,.factory-bootstrap-426 ul{margin-top:0;margin-bottom:10px}.factory-bootstrap-426 ol ol,.factory-bootstrap-426 ol ul,.factory-bootstrap-426 ul ol,.factory-bootstrap-426 ul ul{margin-bottom:0}.factory-bootstrap-426 .list-inline,.factory-bootstrap-426 .list-unstyled{padding-left:0;list-style:none}.factory-bootstrap-426 .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.factory-bootstrap-426 .list-inline>li:first-child{padding-left:0}.factory-bootstrap-426 dl{margin-top:0;margin-bottom:20px}.factory-bootstrap-426 dd,.factory-bootstrap-426 dt{line-height:1.428571429}.factory-bootstrap-426 dt{font-weight:700}.factory-bootstrap-426 dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:after,.dl-horizontal dd:before{display:table;content:" "}.dl-horizontal dd:after{clear:both}}.factory-bootstrap-426 abbr[data-original-title],.factory-bootstrap-426 abbr[title]{cursor:help;border-bottom:1px dotted #999}.factory-bootstrap-426 .initialism{font-size:90%;text-transform:uppercase}.factory-bootstrap-426 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.factory-bootstrap-426 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.factory-bootstrap-426 blockquote p:last-child{margin-bottom:0}.factory-bootstrap-426 blockquote .small,.factory-bootstrap-426 blockquote small{display:block;line-height:1.428571429;color:#999}.factory-bootstrap-426 blockquote .small:before,.factory-bootstrap-426 blockquote small:before{content:'\2014 \00A0'}.factory-bootstrap-426 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.factory-bootstrap-426 blockquote.pull-right .small,.factory-bootstrap-426 blockquote.pull-right p,.factory-bootstrap-426 blockquote.pull-right small{text-align:right}.factory-bootstrap-426 blockquote.pull-right .small:before,.factory-bootstrap-426 blockquote.pull-right small:before{content:''}.factory-bootstrap-426 blockquote.pull-right .small:after,.factory-bootstrap-426 blockquote.pull-right small:after{content:'\00A0 \2014'}.factory-bootstrap-426 blockquote:after,.factory-bootstrap-426 blockquote:before{content:""}.factory-bootstrap-426 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.factory-bootstrap-426 code,.factory-bootstrap-426 kbd,.factory-bootstrap-426 pre,.factory-bootstrap-426 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.factory-bootstrap-426 code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}.factory-bootstrap-426 pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.factory-bootstrap-426 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.factory-bootstrap-426 .pre-scrollable{max-height:340px;overflow-y:scroll}.factory-bootstrap-426 .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.factory-bootstrap-426 .container:after,.factory-bootstrap-426 .container:before{display:table;content:" "}.factory-bootstrap-426 .container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.factory-bootstrap-426 .row{margin-right:-15px;margin-left:-15px}.factory-bootstrap-426 .row:after,.factory-bootstrap-426 .row:before{display:table;content:" "}.factory-bootstrap-426 .row:after{clear:both}.factory-bootstrap-426 .col-lg-1,.factory-bootstrap-426 .col-lg-10,.factory-bootstrap-426 .col-lg-11,.factory-bootstrap-426 .col-lg-12,.factory-bootstrap-426 .col-lg-2,.factory-bootstrap-426 .col-lg-3,.factory-bootstrap-426 .col-lg-4,.factory-bootstrap-426 .col-lg-5,.factory-bootstrap-426 .col-lg-6,.factory-bootstrap-426 .col-lg-7,.factory-bootstrap-426 .col-lg-8,.factory-bootstrap-426 .col-lg-9,.factory-bootstrap-426 .col-md-1,.factory-bootstrap-426 .col-md-10,.factory-bootstrap-426 .col-md-11,.factory-bootstrap-426 .col-md-12,.factory-bootstrap-426 .col-md-2,.factory-bootstrap-426 .col-md-3,.factory-bootstrap-426 .col-md-4,.factory-bootstrap-426 .col-md-5,.factory-bootstrap-426 .col-md-6,.factory-bootstrap-426 .col-md-7,.factory-bootstrap-426 .col-md-8,.factory-bootstrap-426 .col-md-9,.factory-bootstrap-426 .col-sm-1,.factory-bootstrap-426 .col-sm-10,.factory-bootstrap-426 .col-sm-11,.factory-bootstrap-426 .col-sm-12,.factory-bootstrap-426 .col-sm-2,.factory-bootstrap-426 .col-sm-3,.factory-bootstrap-426 .col-sm-4,.factory-bootstrap-426 .col-sm-5,.factory-bootstrap-426 .col-sm-6,.factory-bootstrap-426 .col-sm-7,.factory-bootstrap-426 .col-sm-8,.factory-bootstrap-426 .col-sm-9,.factory-bootstrap-426 .col-xs-1,.factory-bootstrap-426 .col-xs-10,.factory-bootstrap-426 .col-xs-11,.factory-bootstrap-426 .col-xs-12,.factory-bootstrap-426 .col-xs-2,.factory-bootstrap-426 .col-xs-3,.factory-bootstrap-426 .col-xs-4,.factory-bootstrap-426 .col-xs-5,.factory-bootstrap-426 .col-xs-6,.factory-bootstrap-426 .col-xs-7,.factory-bootstrap-426 .col-xs-8,.factory-bootstrap-426 .col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.factory-bootstrap-426 .col-xs-1,.factory-bootstrap-426 .col-xs-10,.factory-bootstrap-426 .col-xs-11,.factory-bootstrap-426 .col-xs-12,.factory-bootstrap-426 .col-xs-2,.factory-bootstrap-426 .col-xs-3,.factory-bootstrap-426 .col-xs-4,.factory-bootstrap-426 .col-xs-5,.factory-bootstrap-426 .col-xs-6,.factory-bootstrap-426 .col-xs-7,.factory-bootstrap-426 .col-xs-8,.factory-bootstrap-426 .col-xs-9{float:left}.factory-bootstrap-426 .col-xs-12{width:100%}.factory-bootstrap-426 .col-xs-11{width:91.66666666666666%}.factory-bootstrap-426 .col-xs-10{width:83.33333333333334%}.factory-bootstrap-426 .col-xs-9{width:75%}.factory-bootstrap-426 .col-xs-8{width:66.66666666666666%}.factory-bootstrap-426 .col-xs-7{width:58.333333333333336%}.factory-bootstrap-426 .col-xs-6{width:50%}.factory-bootstrap-426 .col-xs-5{width:41.66666666666667%}.factory-bootstrap-426 .col-xs-4{width:33.33333333333333%}.factory-bootstrap-426 .col-xs-3{width:25%}.factory-bootstrap-426 .col-xs-2{width:16.666666666666664%}.factory-bootstrap-426 .col-xs-1{width:8.333333333333332%}.factory-bootstrap-426 .col-xs-pull-12{right:100%}.factory-bootstrap-426 .col-xs-pull-11{right:91.66666666666666%}.factory-bootstrap-426 .col-xs-pull-10{right:83.33333333333334%}.factory-bootstrap-426 .col-xs-pull-9{right:75%}.factory-bootstrap-426 .col-xs-pull-8{right:66.66666666666666%}.factory-bootstrap-426 .col-xs-pull-7{right:58.333333333333336%}.factory-bootstrap-426 .col-xs-pull-6{right:50%}.factory-bootstrap-426 .col-xs-pull-5{right:41.66666666666667%}.factory-bootstrap-426 .col-xs-pull-4{right:33.33333333333333%}.factory-bootstrap-426 .col-xs-pull-3{right:25%}.factory-bootstrap-426 .col-xs-pull-2{right:16.666666666666664%}.factory-bootstrap-426 .col-xs-pull-1{right:8.333333333333332%}.factory-bootstrap-426 .col-xs-pull-0{right:0}.factory-bootstrap-426 .col-xs-push-12{left:100%}.factory-bootstrap-426 .col-xs-push-11{left:91.66666666666666%}.factory-bootstrap-426 .col-xs-push-10{left:83.33333333333334%}.factory-bootstrap-426 .col-xs-push-9{left:75%}.factory-bootstrap-426 .col-xs-push-8{left:66.66666666666666%}.factory-bootstrap-426 .col-xs-push-7{left:58.333333333333336%}.factory-bootstrap-426 .col-xs-push-6{left:50%}.factory-bootstrap-426 .col-xs-push-5{left:41.66666666666667%}.factory-bootstrap-426 .col-xs-push-4{left:33.33333333333333%}.factory-bootstrap-426 .col-xs-push-3{left:25%}.factory-bootstrap-426 .col-xs-push-2{left:16.666666666666664%}.factory-bootstrap-426 .col-xs-push-1{left:8.333333333333332%}.factory-bootstrap-426 .col-xs-push-0{left:0}.factory-bootstrap-426 .col-xs-offset-12{margin-left:100%}.factory-bootstrap-426 .col-xs-offset-11{margin-left:91.66666666666666%}.factory-bootstrap-426 .col-xs-offset-10{margin-left:83.33333333333334%}.factory-bootstrap-426 .col-xs-offset-9{margin-left:75%}.factory-bootstrap-426 .col-xs-offset-8{margin-left:66.66666666666666%}.factory-bootstrap-426 .col-xs-offset-7{margin-left:58.333333333333336%}.factory-bootstrap-426 .col-xs-offset-6{margin-left:50%}.factory-bootstrap-426 .col-xs-offset-5{margin-left:41.66666666666667%}.factory-bootstrap-426 .col-xs-offset-4{margin-left:33.33333333333333%}.factory-bootstrap-426 .col-xs-offset-3{margin-left:25%}.factory-bootstrap-426 .col-xs-offset-2{margin-left:16.666666666666664%}.factory-bootstrap-426 .col-xs-offset-1{margin-left:8.333333333333332%}.factory-bootstrap-426 .col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}.factory-bootstrap-426 table{max-width:100%;background-color:transparent}.factory-bootstrap-426 th{text-align:left}.factory-bootstrap-426 .table{width:100%;margin-bottom:20px}.factory-bootstrap-426 .table>tbody>tr>td,.factory-bootstrap-426 .table>tbody>tr>th,.factory-bootstrap-426 .table>tfoot>tr>td,.factory-bootstrap-426 .table>tfoot>tr>th,.factory-bootstrap-426 .table>thead>tr>td,.factory-bootstrap-426 .table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.factory-bootstrap-426 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.factory-bootstrap-426 .table>caption+thead>tr:first-child>td,.factory-bootstrap-426 .table>caption+thead>tr:first-child>th,.factory-bootstrap-426 .table>colgroup+thead>tr:first-child>td,.factory-bootstrap-426 .table>colgroup+thead>tr:first-child>th,.factory-bootstrap-426 .table>thead:first-child>tr:first-child>td,.factory-bootstrap-426 .table>thead:first-child>tr:first-child>th{border-top:0}.factory-bootstrap-426 .table>tbody+tbody{border-top:2px solid #ddd}.factory-bootstrap-426 .table .table{background-color:#fff}.factory-bootstrap-426 .table-condensed>tbody>tr>td,.factory-bootstrap-426 .table-condensed>tbody>tr>th,.factory-bootstrap-426 .table-condensed>tfoot>tr>td,.factory-bootstrap-426 .table-condensed>tfoot>tr>th,.factory-bootstrap-426 .table-condensed>thead>tr>td,.factory-bootstrap-426 .table-condensed>thead>tr>th{padding:5px}.factory-bootstrap-426 .table-bordered,.factory-bootstrap-426 .table-bordered>tbody>tr>td,.factory-bootstrap-426 .table-bordered>tbody>tr>th,.factory-bootstrap-426 .table-bordered>tfoot>tr>td,.factory-bootstrap-426 .table-bordered>tfoot>tr>th,.factory-bootstrap-426 .table-bordered>thead>tr>td,.factory-bootstrap-426 .table-bordered>thead>tr>th{border:1px solid #ddd}.factory-bootstrap-426 .table-bordered>thead>tr>td,.factory-bootstrap-426 .table-bordered>thead>tr>th{border-bottom-width:2px}.factory-bootstrap-426 .table-striped>tbody>tr:nth-child(odd)>td,.factory-bootstrap-426 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.factory-bootstrap-426 .table-hover>tbody>tr:hover>td,.factory-bootstrap-426 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.factory-bootstrap-426 table col[class*=col-]{position:static;display:table-column;float:none}.factory-bootstrap-426 table td[class*=col-],.factory-bootstrap-426 table th[class*=col-]{display:table-cell;float:none}.factory-bootstrap-426 .table>tbody>.active>td,.factory-bootstrap-426 .table>tbody>.active>th,.factory-bootstrap-426 .table>tbody>tr>.active,.factory-bootstrap-426 .table>tfoot>.active>td,.factory-bootstrap-426 .table>tfoot>.active>th,.factory-bootstrap-426 .table>tfoot>tr>.active,.factory-bootstrap-426 .table>thead>.active>td,.factory-bootstrap-426 .table>thead>.active>th,.factory-bootstrap-426 .table>thead>tr>.active{background-color:#f5f5f5}.factory-bootstrap-426 .table-hover>tbody>.active:hover>td,.factory-bootstrap-426 .table-hover>tbody>.active:hover>th,.factory-bootstrap-426 .table-hover>tbody>tr>.active:hover{background-color:#e8e8e8}.factory-bootstrap-426 .table>tbody>.success>td,.factory-bootstrap-426 .table>tbody>.success>th,.factory-bootstrap-426 .table>tbody>tr>.success,.factory-bootstrap-426 .table>tfoot>.success>td,.factory-bootstrap-426 .table>tfoot>.success>th,.factory-bootstrap-426 .table>tfoot>tr>.success,.factory-bootstrap-426 .table>thead>.success>td,.factory-bootstrap-426 .table>thead>.success>th,.factory-bootstrap-426 .table>thead>tr>.success{background-color:#dff0d8}.factory-bootstrap-426 .table-hover>tbody>.success:hover>td,.factory-bootstrap-426 .table-hover>tbody>.success:hover>th,.factory-bootstrap-426 .table-hover>tbody>tr>.success:hover{background-color:#d0e9c6}.factory-bootstrap-426 .table>tbody>.danger>td,.factory-bootstrap-426 .table>tbody>.danger>th,.factory-bootstrap-426 .table>tbody>tr>.danger,.factory-bootstrap-426 .table>tfoot>.danger>td,.factory-bootstrap-426 .table>tfoot>.danger>th,.factory-bootstrap-426 .table>tfoot>tr>.danger,.factory-bootstrap-426 .table>thead>.danger>td,.factory-bootstrap-426 .table>thead>.danger>th,.factory-bootstrap-426 .table>thead>tr>.danger{background-color:#f2dede}.factory-bootstrap-426 .table-hover>tbody>.danger:hover>td,.factory-bootstrap-426 .table-hover>tbody>.danger:hover>th,.factory-bootstrap-426 .table-hover>tbody>tr>.danger:hover{background-color:#ebcccc}.factory-bootstrap-426 .table>tbody>.warning>td,.factory-bootstrap-426 .table>tbody>.warning>th,.factory-bootstrap-426 .table>tbody>tr>.warning,.factory-bootstrap-426 .table>tfoot>.warning>td,.factory-bootstrap-426 .table>tfoot>.warning>th,.factory-bootstrap-426 .table>tfoot>tr>.warning,.factory-bootstrap-426 .table>thead>.warning>td,.factory-bootstrap-426 .table>thead>.warning>th,.factory-bootstrap-426 .table>thead>tr>.warning{background-color:#fcf8e3}.factory-bootstrap-426 .table-hover>tbody>.warning:hover>td,.factory-bootstrap-426 .table-hover>tbody>.warning:hover>th,.factory-bootstrap-426 .table-hover>tbody>tr>.warning:hover{background-color:#faf2cc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}.factory-bootstrap-426 fieldset{padding:0;margin:0;border:0}.factory-bootstrap-426 legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-426 label{display:inline-block;margin-bottom:5px;font-weight:700}.factory-bootstrap-426 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-426 input[type=checkbox],.factory-bootstrap-426 input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.factory-bootstrap-426 input[type=file]{display:block}.factory-bootstrap-426 select[multiple],.factory-bootstrap-426 select[size]{height:auto}.factory-bootstrap-426 select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}.factory-bootstrap-426 input[type=checkbox]:focus,.factory-bootstrap-426 input[type=file]:focus,.factory-bootstrap-426 input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-426 input[type=number]::-webkit-inner-spin-button,.factory-bootstrap-426 input[type=number]::-webkit-outer-spin-button{height:auto}.factory-bootstrap-426 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.factory-bootstrap-426 .form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.factory-bootstrap-426 .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-426 .form-control:-moz-placeholder{color:#999}.factory-bootstrap-426 .form-control::-moz-placeholder{color:#999;opacity:1}.factory-bootstrap-426 .form-control:-ms-input-placeholder{color:#999}.factory-bootstrap-426 .form-control::-webkit-input-placeholder{color:#999}.factory-bootstrap-426 .form-control[disabled],.factory-bootstrap-426 .form-control[readonly],.factory-bootstrap-426 fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.factory-bootstrap-426 textarea.form-control{height:auto}.factory-bootstrap-426 .form-group{margin-bottom:15px}.factory-bootstrap-426 .checkbox,.factory-bootstrap-426 .radio{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.factory-bootstrap-426 .checkbox label,.factory-bootstrap-426 .radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.factory-bootstrap-426 .checkbox input[type=checkbox],.factory-bootstrap-426 .checkbox-inline input[type=checkbox],.factory-bootstrap-426 .radio input[type=radio],.factory-bootstrap-426 .radio-inline input[type=radio]{float:left;margin-left:-20px}.factory-bootstrap-426 .checkbox+.checkbox,.factory-bootstrap-426 .radio+.radio{margin-top:-5px}.factory-bootstrap-426 .checkbox-inline,.factory-bootstrap-426 .radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.factory-bootstrap-426 .checkbox-inline+.checkbox-inline,.factory-bootstrap-426 .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.factory-bootstrap-426 .checkbox-inline[disabled],.factory-bootstrap-426 .checkbox[disabled],.factory-bootstrap-426 .radio-inline[disabled],.factory-bootstrap-426 .radio[disabled],.factory-bootstrap-426 fieldset[disabled] .checkbox,.factory-bootstrap-426 fieldset[disabled] .checkbox-inline,.factory-bootstrap-426 fieldset[disabled] .radio,.factory-bootstrap-426 fieldset[disabled] .radio-inline,.factory-bootstrap-426 fieldset[disabled] input[type=checkbox],.factory-bootstrap-426 fieldset[disabled] input[type=radio],.factory-bootstrap-426 input[type=checkbox][disabled],.factory-bootstrap-426 input[type=radio][disabled]{cursor:not-allowed}.factory-bootstrap-426 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-426 select.input-sm{height:30px;line-height:30px}.factory-bootstrap-426 textarea.input-sm{height:auto}.factory-bootstrap-426 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-426 select.input-lg{height:46px;line-height:46px}.factory-bootstrap-426 textarea.input-lg{height:auto}.factory-bootstrap-426 .has-warning .checkbox,.factory-bootstrap-426 .has-warning .checkbox-inline,.factory-bootstrap-426 .has-warning .control-label,.factory-bootstrap-426 .has-warning .help-block,.factory-bootstrap-426 .has-warning .radio,.factory-bootstrap-426 .has-warning .radio-inline{color:#8a6d3b}.factory-bootstrap-426 .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-426 .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.factory-bootstrap-426 .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.factory-bootstrap-426 .has-error .checkbox,.factory-bootstrap-426 .has-error .checkbox-inline,.factory-bootstrap-426 .has-error .control-label,.factory-bootstrap-426 .has-error .help-block,.factory-bootstrap-426 .has-error .radio,.factory-bootstrap-426 .has-error .radio-inline{color:#a94442}.factory-bootstrap-426 .controls{display:block}.factory-bootstrap-426 .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-426 .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.factory-bootstrap-426 .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.factory-bootstrap-426 .has-success .checkbox,.factory-bootstrap-426 .has-success .checkbox-inline,.factory-bootstrap-426 .has-success .control-label,.factory-bootstrap-426 .has-success .help-block,.factory-bootstrap-426 .has-success .radio,.factory-bootstrap-426 .has-success .radio-inline{color:#3c763d}.factory-bootstrap-426 .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-426 .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.factory-bootstrap-426 .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.factory-bootstrap-426 .form-control-static{margin-bottom:0}.factory-bootstrap-426 .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373;font-weight:400}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .checkbox,.form-inline .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.factory-bootstrap-426 .form-horizontal .checkbox,.factory-bootstrap-426 .form-horizontal .checkbox-inline,.factory-bootstrap-426 .form-horizontal .control-label,.factory-bootstrap-426 .form-horizontal .radio,.factory-bootstrap-426 .form-horizontal .radio-inline{position:relative;padding-top:7px;margin-top:0;margin-bottom:0}.factory-bootstrap-426 .form-horizontal .control-label{max-width:200px}.factory-bootstrap-426 .form-horizontal .checkbox,.factory-bootstrap-426 .form-horizontal .radio{min-height:27px}.factory-bootstrap-426 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.factory-bootstrap-426 .form-horizontal .form-group:after,.factory-bootstrap-426 .form-horizontal .form-group:before{display:table;content:" "}.factory-bootstrap-426 .form-horizontal .form-group:after{clear:both}.factory-bootstrap-426 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.factory-bootstrap-426 .btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:13px;font-weight:400;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.factory-bootstrap-426 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-426 .btn{text-decoration:none}.factory-bootstrap-426 .btn:focus,.factory-bootstrap-426 .btn:hover{color:#333;text-decoration:none}.factory-bootstrap-426 .btn.disabled,.factory-bootstrap-426 .btn[disabled],.factory-bootstrap-426 fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-426 .btn-default.active,.factory-bootstrap-426 .btn-default:active,.factory-bootstrap-426 .btn-default:focus,.factory-bootstrap-426 .btn-default:hover,.factory-bootstrap-426 .open .dropdown-toggle.btn-default{background:#fafafa;border-color:#999;color:#222}.factory-bootstrap-426 .btn-default.active,.factory-bootstrap-426 .btn-default:active,.factory-bootstrap-426 .open .dropdown-toggle.btn-default{background-image:none}.factory-bootstrap-426 .btn-default.disabled,.factory-bootstrap-426 .btn-default.disabled.active,.factory-bootstrap-426 .btn-default.disabled:active,.factory-bootstrap-426 .btn-default.disabled:focus,.factory-bootstrap-426 .btn-default.disabled:hover,.factory-bootstrap-426 .btn-default[disabled],.factory-bootstrap-426 .btn-default[disabled].active,.factory-bootstrap-426 .btn-default[disabled]:active,.factory-bootstrap-426 .btn-default[disabled]:focus,.factory-bootstrap-426 .btn-default[disabled]:hover,.factory-bootstrap-426 fieldset[disabled] .btn-default,.factory-bootstrap-426 fieldset[disabled] .btn-default.active,.factory-bootstrap-426 fieldset[disabled] .btn-default:active,.factory-bootstrap-426 fieldset[disabled] .btn-default:focus,.factory-bootstrap-426 fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.factory-bootstrap-426 .btn-default .badge{color:#fff;background-color:#fff}.factory-bootstrap-426 .btn-primary.active,.factory-bootstrap-426 .btn-primary:active,.factory-bootstrap-426 .btn-primary:focus,.factory-bootstrap-426 .btn-primary:hover,.factory-bootstrap-426 .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.factory-bootstrap-426 .btn-primary.active,.factory-bootstrap-426 .btn-primary:active,.factory-bootstrap-426 .open .dropdown-toggle.btn-primary{background-image:none}.factory-bootstrap-426 .btn-primary.disabled,.factory-bootstrap-426 .btn-primary.disabled.active,.factory-bootstrap-426 .btn-primary.disabled:active,.factory-bootstrap-426 .btn-primary.disabled:focus,.factory-bootstrap-426 .btn-primary.disabled:hover,.factory-bootstrap-426 .btn-primary[disabled],.factory-bootstrap-426 .btn-primary[disabled].active,.factory-bootstrap-426 .btn-primary[disabled]:active,.factory-bootstrap-426 .btn-primary[disabled]:focus,.factory-bootstrap-426 .btn-primary[disabled]:hover,.factory-bootstrap-426 fieldset[disabled] .btn-primary,.factory-bootstrap-426 fieldset[disabled] .btn-primary.active,.factory-bootstrap-426 fieldset[disabled] .btn-primary:active,.factory-bootstrap-426 fieldset[disabled] .btn-primary:focus,.factory-bootstrap-426 fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.factory-bootstrap-426 .btn-primary .badge{color:#428bca;background-color:#fff}.factory-bootstrap-426 .btn-warning{color:#fff;background-color:#f0ad4e}.factory-bootstrap-426 .btn-warning.active,.factory-bootstrap-426 .btn-warning:active,.factory-bootstrap-426 .btn-warning:focus,.factory-bootstrap-426 .btn-warning:hover,.factory-bootstrap-426 .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.factory-bootstrap-426 .btn-warning.active,.factory-bootstrap-426 .btn-warning:active,.factory-bootstrap-426 .open .dropdown-toggle.btn-warning{background-image:none}.factory-bootstrap-426 .btn-warning.disabled,.factory-bootstrap-426 .btn-warning.disabled.active,.factory-bootstrap-426 .btn-warning.disabled:active,.factory-bootstrap-426 .btn-warning.disabled:focus,.factory-bootstrap-426 .btn-warning.disabled:hover,.factory-bootstrap-426 .btn-warning[disabled],.factory-bootstrap-426 .btn-warning[disabled].active,.factory-bootstrap-426 .btn-warning[disabled]:active,.factory-bootstrap-426 .btn-warning[disabled]:focus,.factory-bootstrap-426 .btn-warning[disabled]:hover,.factory-bootstrap-426 fieldset[disabled] .btn-warning,.factory-bootstrap-426 fieldset[disabled] .btn-warning.active,.factory-bootstrap-426 fieldset[disabled] .btn-warning:active,.factory-bootstrap-426 fieldset[disabled] .btn-warning:focus,.factory-bootstrap-426 fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.factory-bootstrap-426 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.factory-bootstrap-426 .btn-success{color:#fff;background-color:#5cb85c}.factory-bootstrap-426 .btn-success.active,.factory-bootstrap-426 .btn-success:active,.factory-bootstrap-426 .btn-success:focus,.factory-bootstrap-426 .btn-success:hover,.factory-bootstrap-426 .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.factory-bootstrap-426 .btn-success.active,.factory-bootstrap-426 .btn-success:active,.factory-bootstrap-426 .open .dropdown-toggle.btn-success{background-image:none}.factory-bootstrap-426 .btn-success.disabled,.factory-bootstrap-426 .btn-success.disabled.active,.factory-bootstrap-426 .btn-success.disabled:active,.factory-bootstrap-426 .btn-success.disabled:focus,.factory-bootstrap-426 .btn-success.disabled:hover,.factory-bootstrap-426 .btn-success[disabled],.factory-bootstrap-426 .btn-success[disabled].active,.factory-bootstrap-426 .btn-success[disabled]:active,.factory-bootstrap-426 .btn-success[disabled]:focus,.factory-bootstrap-426 .btn-success[disabled]:hover,.factory-bootstrap-426 fieldset[disabled] .btn-success,.factory-bootstrap-426 fieldset[disabled] .btn-success.active,.factory-bootstrap-426 fieldset[disabled] .btn-success:active,.factory-bootstrap-426 fieldset[disabled] .btn-success:focus,.factory-bootstrap-426 fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.factory-bootstrap-426 .btn-success .badge{color:#5cb85c;background-color:#fff}.factory-bootstrap-426 .btn-info{color:#fff;background-color:#5bc0de}.factory-bootstrap-426 .btn-info.active,.factory-bootstrap-426 .btn-info:active,.factory-bootstrap-426 .btn-info:focus,.factory-bootstrap-426 .btn-info:hover,.factory-bootstrap-426 .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.factory-bootstrap-426 .btn-info.active,.factory-bootstrap-426 .btn-info:active,.factory-bootstrap-426 .open .dropdown-toggle.btn-info{background-image:none}.factory-bootstrap-426 .btn-info.disabled,.factory-bootstrap-426 .btn-info.disabled.active,.factory-bootstrap-426 .btn-info.disabled:active,.factory-bootstrap-426 .btn-info.disabled:focus,.factory-bootstrap-426 .btn-info.disabled:hover,.factory-bootstrap-426 .btn-info[disabled],.factory-bootstrap-426 .btn-info[disabled].active,.factory-bootstrap-426 .btn-info[disabled]:active,.factory-bootstrap-426 .btn-info[disabled]:focus,.factory-bootstrap-426 .btn-info[disabled]:hover,.factory-bootstrap-426 fieldset[disabled] .btn-info,.factory-bootstrap-426 fieldset[disabled] .btn-info.active,.factory-bootstrap-426 fieldset[disabled] .btn-info:active,.factory-bootstrap-426 fieldset[disabled] .btn-info:focus,.factory-bootstrap-426 fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.factory-bootstrap-426 .btn-info .badge{color:#5bc0de;background-color:#fff}.factory-bootstrap-426 .btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.factory-bootstrap-426 .btn-link,.factory-bootstrap-426 .btn-link:active,.factory-bootstrap-426 .btn-link[disabled],.factory-bootstrap-426 fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-426 .btn-link,.factory-bootstrap-426 .btn-link:active,.factory-bootstrap-426 .btn-link:focus,.factory-bootstrap-426 .btn-link:hover{border-color:transparent}.factory-bootstrap-426 .btn-link:focus,.factory-bootstrap-426 .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.factory-bootstrap-426 .btn-link[disabled]:focus,.factory-bootstrap-426 .btn-link[disabled]:hover,.factory-bootstrap-426 fieldset[disabled] .btn-link:focus,.factory-bootstrap-426 fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.factory-bootstrap-426 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-426 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-426 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-426 .btn-block{display:block;width:100%;padding-right:0;padding-left:0}.factory-bootstrap-426 .btn-block+.btn-block{margin-top:5px}.factory-bootstrap-426 input[type=button].btn-block,.factory-bootstrap-426 input[type=reset].btn-block,.factory-bootstrap-426 input[type=submit].btn-block{width:100%}.factory-bootstrap-426 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.factory-bootstrap-426 .fade.in{opacity:1}.factory-bootstrap-426 .collapse{display:none}.factory-bootstrap-426 .collapse.in{display:block}.factory-bootstrap-426 .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular) format('svg')}.factory-bootstrap-426 .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;line-height:1;-moz-osx-font-smoothing:grayscale}.factory-bootstrap-426 .glyphicon:empty{width:1em}.factory-bootstrap-426 .glyphicon-asterisk:before{content:"\2a"}.factory-bootstrap-426 .glyphicon-plus:before{content:"\2b"}.factory-bootstrap-426 .glyphicon-euro:before{content:"\20ac"}.factory-bootstrap-426 .glyphicon-minus:before{content:"\2212"}.factory-bootstrap-426 .glyphicon-cloud:before{content:"\2601"}.factory-bootstrap-426 .glyphicon-envelope:before{content:"\2709"}.factory-bootstrap-426 .glyphicon-pencil:before{content:"\270f"}.factory-bootstrap-426 .glyphicon-glass:before{content:"\e001"}.factory-bootstrap-426 .glyphicon-music:before{content:"\e002"}.factory-bootstrap-426 .glyphicon-search:before{content:"\e003"}.factory-bootstrap-426 .glyphicon-heart:before{content:"\e005"}.factory-bootstrap-426 .glyphicon-star:before{content:"\e006"}.factory-bootstrap-426 .glyphicon-star-empty:before{content:"\e007"}.factory-bootstrap-426 .glyphicon-user:before{content:"\e008"}.factory-bootstrap-426 .glyphicon-film:before{content:"\e009"}.factory-bootstrap-426 .glyphicon-th-large:before{content:"\e010"}.factory-bootstrap-426 .glyphicon-th:before{content:"\e011"}.factory-bootstrap-426 .glyphicon-th-list:before{content:"\e012"}.factory-bootstrap-426 .glyphicon-ok:before{content:"\e013"}.factory-bootstrap-426 .glyphicon-remove:before{content:"\e014"}.factory-bootstrap-426 .glyphicon-zoom-in:before{content:"\e015"}.factory-bootstrap-426 .glyphicon-zoom-out:before{content:"\e016"}.factory-bootstrap-426 .glyphicon-off:before{content:"\e017"}.factory-bootstrap-426 .glyphicon-signal:before{content:"\e018"}.factory-bootstrap-426 .glyphicon-cog:before{content:"\e019"}.factory-bootstrap-426 .glyphicon-trash:before{content:"\e020"}.factory-bootstrap-426 .glyphicon-home:before{content:"\e021"}.factory-bootstrap-426 .glyphicon-file:before{content:"\e022"}.factory-bootstrap-426 .glyphicon-time:before{content:"\e023"}.factory-bootstrap-426 .glyphicon-road:before{content:"\e024"}.factory-bootstrap-426 .glyphicon-download-alt:before{content:"\e025"}.factory-bootstrap-426 .glyphicon-download:before{content:"\e026"}.factory-bootstrap-426 .glyphicon-upload:before{content:"\e027"}.factory-bootstrap-426 .glyphicon-inbox:before{content:"\e028"}.factory-bootstrap-426 .glyphicon-play-circle:before{content:"\e029"}.factory-bootstrap-426 .glyphicon-repeat:before{content:"\e030"}.factory-bootstrap-426 .glyphicon-refresh:before{content:"\e031"}.factory-bootstrap-426 .glyphicon-list-alt:before{content:"\e032"}.factory-bootstrap-426 .glyphicon-lock:before{content:"\e033"}.factory-bootstrap-426 .glyphicon-flag:before{content:"\e034"}.factory-bootstrap-426 .glyphicon-headphones:before{content:"\e035"}.factory-bootstrap-426 .glyphicon-volume-off:before{content:"\e036"}.factory-bootstrap-426 .glyphicon-volume-down:before{content:"\e037"}.factory-bootstrap-426 .glyphicon-volume-up:before{content:"\e038"}.factory-bootstrap-426 .glyphicon-qrcode:before{content:"\e039"}.factory-bootstrap-426 .glyphicon-barcode:before{content:"\e040"}.factory-bootstrap-426 .glyphicon-tag:before{content:"\e041"}.factory-bootstrap-426 .glyphicon-tags:before{content:"\e042"}.factory-bootstrap-426 .glyphicon-book:before{content:"\e043"}.factory-bootstrap-426 .glyphicon-bookmark:before{content:"\e044"}.factory-bootstrap-426 .glyphicon-print:before{content:"\e045"}.factory-bootstrap-426 .glyphicon-camera:before{content:"\e046"}.factory-bootstrap-426 .glyphicon-font:before{content:"\e047"}.factory-bootstrap-426 .glyphicon-bold:before{content:"\e048"}.factory-bootstrap-426 .glyphicon-italic:before{content:"\e049"}.factory-bootstrap-426 .glyphicon-text-height:before{content:"\e050"}.factory-bootstrap-426 .glyphicon-text-width:before{content:"\e051"}.factory-bootstrap-426 .glyphicon-align-left:before{content:"\e052"}.factory-bootstrap-426 .glyphicon-align-center:before{content:"\e053"}.factory-bootstrap-426 .glyphicon-align-right:before{content:"\e054"}.factory-bootstrap-426 .glyphicon-align-justify:before{content:"\e055"}.factory-bootstrap-426 .glyphicon-list:before{content:"\e056"}.factory-bootstrap-426 .glyphicon-indent-left:before{content:"\e057"}.factory-bootstrap-426 .glyphicon-indent-right:before{content:"\e058"}.factory-bootstrap-426 .glyphicon-facetime-video:before{content:"\e059"}.factory-bootstrap-426 .glyphicon-picture:before{content:"\e060"}.factory-bootstrap-426 .glyphicon-map-marker:before{content:"\e062"}.factory-bootstrap-426 .glyphicon-adjust:before{content:"\e063"}.factory-bootstrap-426 .glyphicon-tint:before{content:"\e064"}.factory-bootstrap-426 .glyphicon-edit:before{content:"\e065"}.factory-bootstrap-426 .glyphicon-share:before{content:"\e066"}.factory-bootstrap-426 .glyphicon-check:before{content:"\e067"}.factory-bootstrap-426 .glyphicon-move:before{content:"\e068"}.factory-bootstrap-426 .glyphicon-step-backward:before{content:"\e069"}.factory-bootstrap-426 .glyphicon-fast-backward:before{content:"\e070"}.factory-bootstrap-426 .glyphicon-backward:before{content:"\e071"}.factory-bootstrap-426 .glyphicon-play:before{content:"\e072"}.factory-bootstrap-426 .glyphicon-pause:before{content:"\e073"}.factory-bootstrap-426 .glyphicon-stop:before{content:"\e074"}.factory-bootstrap-426 .glyphicon-forward:before{content:"\e075"}.factory-bootstrap-426 .glyphicon-fast-forward:before{content:"\e076"}.factory-bootstrap-426 .glyphicon-step-forward:before{content:"\e077"}.factory-bootstrap-426 .glyphicon-eject:before{content:"\e078"}.factory-bootstrap-426 .glyphicon-chevron-left:before{content:"\e079"}.factory-bootstrap-426 .glyphicon-chevron-right:before{content:"\e080"}.factory-bootstrap-426 .glyphicon-plus-sign:before{content:"\e081"}.factory-bootstrap-426 .glyphicon-minus-sign:before{content:"\e082"}.factory-bootstrap-426 .glyphicon-remove-sign:before{content:"\e083"}.factory-bootstrap-426 .glyphicon-ok-sign:before{content:"\e084"}.factory-bootstrap-426 .glyphicon-question-sign:before{content:"\e085"}.factory-bootstrap-426 .glyphicon-info-sign:before{content:"\e086"}.factory-bootstrap-426 .glyphicon-screenshot:before{content:"\e087"}.factory-bootstrap-426 .glyphicon-remove-circle:before{content:"\e088"}.factory-bootstrap-426 .glyphicon-ok-circle:before{content:"\e089"}.factory-bootstrap-426 .glyphicon-ban-circle:before{content:"\e090"}.factory-bootstrap-426 .glyphicon-arrow-left:before{content:"\e091"}.factory-bootstrap-426 .glyphicon-arrow-right:before{content:"\e092"}.factory-bootstrap-426 .glyphicon-arrow-up:before{content:"\e093"}.factory-bootstrap-426 .glyphicon-arrow-down:before{content:"\e094"}.factory-bootstrap-426 .glyphicon-share-alt:before{content:"\e095"}.factory-bootstrap-426 .glyphicon-resize-full:before{content:"\e096"}.factory-bootstrap-426 .glyphicon-resize-small:before{content:"\e097"}.factory-bootstrap-426 .glyphicon-exclamation-sign:before{content:"\e101"}.factory-bootstrap-426 .glyphicon-gift:before{content:"\e102"}.factory-bootstrap-426 .glyphicon-leaf:before{content:"\e103"}.factory-bootstrap-426 .glyphicon-fire:before{content:"\e104"}.factory-bootstrap-426 .glyphicon-eye-open:before{content:"\e105"}.factory-bootstrap-426 .glyphicon-eye-close:before{content:"\e106"}.factory-bootstrap-426 .glyphicon-warning-sign:before{content:"\e107"}.factory-bootstrap-426 .glyphicon-plane:before{content:"\e108"}.factory-bootstrap-426 .glyphicon-calendar:before{content:"\e109"}.factory-bootstrap-426 .glyphicon-random:before{content:"\e110"}.factory-bootstrap-426 .glyphicon-comment:before{content:"\e111"}.factory-bootstrap-426 .glyphicon-magnet:before{content:"\e112"}.factory-bootstrap-426 .glyphicon-chevron-up:before{content:"\e113"}.factory-bootstrap-426 .glyphicon-chevron-down:before{content:"\e114"}.factory-bootstrap-426 .glyphicon-retweet:before{content:"\e115"}.factory-bootstrap-426 .glyphicon-shopping-cart:before{content:"\e116"}.factory-bootstrap-426 .glyphicon-folder-close:before{content:"\e117"}.factory-bootstrap-426 .glyphicon-folder-open:before{content:"\e118"}.factory-bootstrap-426 .glyphicon-resize-vertical:before{content:"\e119"}.factory-bootstrap-426 .glyphicon-resize-horizontal:before{content:"\e120"}.factory-bootstrap-426 .glyphicon-hdd:before{content:"\e121"}.factory-bootstrap-426 .glyphicon-bullhorn:before{content:"\e122"}.factory-bootstrap-426 .glyphicon-bell:before{content:"\e123"}.factory-bootstrap-426 .glyphicon-certificate:before{content:"\e124"}.factory-bootstrap-426 .glyphicon-thumbs-up:before{content:"\e125"}.factory-bootstrap-426 .glyphicon-thumbs-down:before{content:"\e126"}.factory-bootstrap-426 .glyphicon-hand-right:before{content:"\e127"}.factory-bootstrap-426 .glyphicon-hand-left:before{content:"\e128"}.factory-bootstrap-426 .glyphicon-hand-up:before{content:"\e129"}.factory-bootstrap-426 .glyphicon-hand-down:before{content:"\e130"}.factory-bootstrap-426 .glyphicon-circle-arrow-right:before{content:"\e131"}.factory-bootstrap-426 .glyphicon-circle-arrow-left:before{content:"\e132"}.factory-bootstrap-426 .glyphicon-circle-arrow-up:before{content:"\e133"}.factory-bootstrap-426 .glyphicon-circle-arrow-down:before{content:"\e134"}.factory-bootstrap-426 .glyphicon-globe:before{content:"\e135"}.factory-bootstrap-426 .glyphicon-wrench:before{content:"\e136"}.factory-bootstrap-426 .glyphicon-tasks:before{content:"\e137"}.factory-bootstrap-426 .glyphicon-filter:before{content:"\e138"}.factory-bootstrap-426 .glyphicon-briefcase:before{content:"\e139"}.factory-bootstrap-426 .glyphicon-fullscreen:before{content:"\e140"}.factory-bootstrap-426 .glyphicon-dashboard:before{content:"\e141"}.factory-bootstrap-426 .glyphicon-paperclip:before{content:"\e142"}.factory-bootstrap-426 .glyphicon-heart-empty:before{content:"\e143"}.factory-bootstrap-426 .glyphicon-link:before{content:"\e144"}.factory-bootstrap-426 .glyphicon-phone:before{content:"\e145"}.factory-bootstrap-426 .glyphicon-pushpin:before{content:"\e146"}.factory-bootstrap-426 .glyphicon-usd:before{content:"\e148"}.factory-bootstrap-426 .glyphicon-gbp:before{content:"\e149"}.factory-bootstrap-426 .glyphicon-sort:before{content:"\e150"}.factory-bootstrap-426 .glyphicon-sort-by-alphabet:before{content:"\e151"}.factory-bootstrap-426 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.factory-bootstrap-426 .glyphicon-sort-by-order:before{content:"\e153"}.factory-bootstrap-426 .glyphicon-sort-by-order-alt:before{content:"\e154"}.factory-bootstrap-426 .glyphicon-sort-by-attributes:before{content:"\e155"}.factory-bootstrap-426 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.factory-bootstrap-426 .glyphicon-unchecked:before{content:"\e157"}.factory-bootstrap-426 .glyphicon-expand:before{content:"\e158"}.factory-bootstrap-426 .glyphicon-collapse-down:before{content:"\e159"}.factory-bootstrap-426 .glyphicon-collapse-up:before{content:"\e160"}.factory-bootstrap-426 .glyphicon-log-in:before{content:"\e161"}.factory-bootstrap-426 .glyphicon-flash:before{content:"\e162"}.factory-bootstrap-426 .glyphicon-log-out:before{content:"\e163"}.factory-bootstrap-426 .glyphicon-new-window:before{content:"\e164"}.factory-bootstrap-426 .glyphicon-record:before{content:"\e165"}.factory-bootstrap-426 .glyphicon-save:before{content:"\e166"}.factory-bootstrap-426 .glyphicon-open:before{content:"\e167"}.factory-bootstrap-426 .glyphicon-saved:before{content:"\e168"}.factory-bootstrap-426 .glyphicon-import:before{content:"\e169"}.factory-bootstrap-426 .glyphicon-export:before{content:"\e170"}.factory-bootstrap-426 .glyphicon-send:before{content:"\e171"}.factory-bootstrap-426 .glyphicon-floppy-disk:before{content:"\e172"}.factory-bootstrap-426 .glyphicon-floppy-saved:before{content:"\e173"}.factory-bootstrap-426 .glyphicon-floppy-remove:before{content:"\e174"}.factory-bootstrap-426 .glyphicon-floppy-save:before{content:"\e175"}.factory-bootstrap-426 .glyphicon-floppy-open:before{content:"\e176"}.factory-bootstrap-426 .glyphicon-credit-card:before{content:"\e177"}.factory-bootstrap-426 .glyphicon-transfer:before{content:"\e178"}.factory-bootstrap-426 .glyphicon-cutlery:before{content:"\e179"}.factory-bootstrap-426 .glyphicon-header:before{content:"\e180"}.factory-bootstrap-426 .glyphicon-compressed:before{content:"\e181"}.factory-bootstrap-426 .glyphicon-earphone:before{content:"\e182"}.factory-bootstrap-426 .glyphicon-phone-alt:before{content:"\e183"}.factory-bootstrap-426 .glyphicon-tower:before{content:"\e184"}.factory-bootstrap-426 .glyphicon-stats:before{content:"\e185"}.factory-bootstrap-426 .glyphicon-sd-video:before{content:"\e186"}.factory-bootstrap-426 .glyphicon-hd-video:before{content:"\e187"}.factory-bootstrap-426 .glyphicon-subtitles:before{content:"\e188"}.factory-bootstrap-426 .glyphicon-sound-stereo:before{content:"\e189"}.factory-bootstrap-426 .glyphicon-sound-dolby:before{content:"\e190"}.factory-bootstrap-426 .glyphicon-sound-5-1:before{content:"\e191"}.factory-bootstrap-426 .glyphicon-sound-6-1:before{content:"\e192"}.factory-bootstrap-426 .glyphicon-sound-7-1:before{content:"\e193"}.factory-bootstrap-426 .glyphicon-copyright-mark:before{content:"\e194"}.factory-bootstrap-426 .glyphicon-registration-mark:before{content:"\e195"}.factory-bootstrap-426 .glyphicon-cloud-download:before{content:"\e197"}.factory-bootstrap-426 .glyphicon-cloud-upload:before{content:"\e198"}.factory-bootstrap-426 .glyphicon-tree-conifer:before{content:"\e199"}.factory-bootstrap-426 .glyphicon-tree-deciduous:before{content:"\e200"}.factory-bootstrap-426 .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.factory-bootstrap-426 .dropdown{position:relative}.factory-bootstrap-426 .dropdown-toggle:focus{outline:0}.factory-bootstrap-426 .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.factory-bootstrap-426 .dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-426 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-426 .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.factory-bootstrap-426 .dropdown-menu>li>a:focus,.factory-bootstrap-426 .dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.factory-bootstrap-426 .dropdown-menu>.active>a,.factory-bootstrap-426 .dropdown-menu>.active>a:focus,.factory-bootstrap-426 .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.factory-bootstrap-426 .dropdown-menu>.disabled>a,.factory-bootstrap-426 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-426 .dropdown-menu>.disabled>a:hover{color:#999}.factory-bootstrap-426 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-426 .dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-426 .open>.dropdown-menu{display:block}.factory-bootstrap-426 .open>a{outline:0}.factory-bootstrap-426 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.factory-bootstrap-426 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.factory-bootstrap-426 .pull-right>.dropdown-menu{right:0;left:auto}.factory-bootstrap-426 .dropup .caret,.factory-bootstrap-426 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.factory-bootstrap-426 .dropup .dropdown-menu,.factory-bootstrap-426 .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.factory-bootstrap-426 .btn-group,.factory-bootstrap-426 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.factory-bootstrap-426 .btn-group-vertical>.btn,.factory-bootstrap-426 .btn-group>.btn{position:relative;float:left}.factory-bootstrap-426 .btn-group-vertical>.btn.active,.factory-bootstrap-426 .btn-group-vertical>.btn:active,.factory-bootstrap-426 .btn-group-vertical>.btn:focus,.factory-bootstrap-426 .btn-group-vertical>.btn:hover,.factory-bootstrap-426 .btn-group>.btn.active,.factory-bootstrap-426 .btn-group>.btn:active,.factory-bootstrap-426 .btn-group>.btn:focus,.factory-bootstrap-426 .btn-group>.btn:hover{z-index:2}.factory-bootstrap-426 .btn-group-vertical>.btn:focus,.factory-bootstrap-426 .btn-group>.btn:focus{outline:0}.factory-bootstrap-426 .btn-group .btn+.btn,.factory-bootstrap-426 .btn-group .btn+.btn-group,.factory-bootstrap-426 .btn-group .btn-group+.btn,.factory-bootstrap-426 .btn-group .btn-group+.btn-group{margin-left:-1px}.factory-bootstrap-426 .btn-toolbar:after,.factory-bootstrap-426 .btn-toolbar:before{display:table;content:" "}.factory-bootstrap-426 .btn-toolbar:after{clear:both}.factory-bootstrap-426 .btn-toolbar .btn-group{float:left}.factory-bootstrap-426 .btn-toolbar>.btn+.btn,.factory-bootstrap-426 .btn-toolbar>.btn+.btn-group,.factory-bootstrap-426 .btn-toolbar>.btn-group+.btn,.factory-bootstrap-426 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.factory-bootstrap-426 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.factory-bootstrap-426 .btn-group>.btn:first-child{margin-left:0}.factory-bootstrap-426 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-426 .btn-group>.btn:last-child:not(:first-child),.factory-bootstrap-426 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-426 .btn-group>.btn-group{float:left}.factory-bootstrap-426 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-426 .btn-group>.btn-group:first-child>.btn:last-child,.factory-bootstrap-426 .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-426 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-426 .btn-group .dropdown-toggle:active,.factory-bootstrap-426 .btn-group.open .dropdown-toggle{outline:0}.factory-bootstrap-426 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-426 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-426 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-426 .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.factory-bootstrap-426 .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.factory-bootstrap-426 .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.factory-bootstrap-426 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-426 .btn-group{border:4px solid #f9f9f9;border-radius:4px}.factory-bootstrap-426 .btn-group .btn.active.value{text-shadow:none;color:#fff;background-color:#33aad5;-webkit-box-shadow:inset 0 1px 1px #0074a2;box-shadow:inset 0 1px 3px #0074a2;border-top:1px solid #0074a2;border-bottom:1px solid #0074a2;border-left:1px solid #0074a2}.factory-bootstrap-426 .btn .caret{margin-left:0}.factory-bootstrap-426 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.factory-bootstrap-426 .dropup .btn-lg .caret{border-width:0 5px 5px}.factory-bootstrap-426 .btn-group-vertical>.btn,.factory-bootstrap-426 .btn-group-vertical>.btn-group,.factory-bootstrap-426 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.factory-bootstrap-426 .btn-group-vertical>.btn-group:after,.factory-bootstrap-426 .btn-group-vertical>.btn-group:before{display:table;content:" "}.factory-bootstrap-426 .btn-group-vertical>.btn-group:after{clear:both}.factory-bootstrap-426 .btn-group-vertical>.btn-group>.btn{float:none}.factory-bootstrap-426 .btn-group-vertical>.btn+.btn,.factory-bootstrap-426 .btn-group-vertical>.btn+.btn-group,.factory-bootstrap-426 .btn-group-vertical>.btn-group+.btn,.factory-bootstrap-426 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.factory-bootstrap-426 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-426 .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-426 .btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.factory-bootstrap-426 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-426 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.factory-bootstrap-426 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-426 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-426 .btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.factory-bootstrap-426 .btn-group-justified>.btn,.factory-bootstrap-426 .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.factory-bootstrap-426 .btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.factory-bootstrap-426 .input-group{position:relative;display:table;border-collapse:separate}.factory-bootstrap-426 .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.factory-bootstrap-426 .input-group .form-control{width:100%;margin-bottom:0}.factory-bootstrap-426 .input-group-lg>.form-control,.factory-bootstrap-426 .input-group-lg>.input-group-addon,.factory-bootstrap-426 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-426 select.input-group-lg>.form-control,.factory-bootstrap-426 select.input-group-lg>.input-group-addon,.factory-bootstrap-426 select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}.factory-bootstrap-426 textarea.input-group-lg>.form-control,.factory-bootstrap-426 textarea.input-group-lg>.input-group-addon,.factory-bootstrap-426 textarea.input-group-lg>.input-group-btn>.btn{height:auto}.factory-bootstrap-426 .input-group-sm>.form-control,.factory-bootstrap-426 .input-group-sm>.input-group-addon,.factory-bootstrap-426 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-426 select.input-group-sm>.form-control,.factory-bootstrap-426 select.input-group-sm>.input-group-addon,.factory-bootstrap-426 select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}.factory-bootstrap-426 textarea.input-group-sm>.form-control,.factory-bootstrap-426 textarea.input-group-sm>.input-group-addon,.factory-bootstrap-426 textarea.input-group-sm>.input-group-btn>.btn{height:auto}.factory-bootstrap-426 .input-group .form-control,.factory-bootstrap-426 .input-group-addon,.factory-bootstrap-426 .input-group-btn{display:table-cell}.factory-bootstrap-426 .input-group .form-control:not(:first-child):not(:last-child),.factory-bootstrap-426 .input-group-addon:not(:first-child):not(:last-child),.factory-bootstrap-426 .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-426 .input-group-addon,.factory-bootstrap-426 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.factory-bootstrap-426 .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.factory-bootstrap-426 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.factory-bootstrap-426 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.factory-bootstrap-426 .input-group-addon input[type=checkbox],.factory-bootstrap-426 .input-group-addon input[type=radio]{margin-top:0}.factory-bootstrap-426 .input-group .form-control:first-child,.factory-bootstrap-426 .input-group-addon:first-child,.factory-bootstrap-426 .input-group-btn:first-child>.btn,.factory-bootstrap-426 .input-group-btn:first-child>.dropdown-toggle,.factory-bootstrap-426 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-426 .input-group-addon:first-child{border-right:0}.factory-bootstrap-426 .input-group .form-control:last-child,.factory-bootstrap-426 .input-group-addon:last-child,.factory-bootstrap-426 .input-group-btn:first-child>.btn:not(:first-child),.factory-bootstrap-426 .input-group-btn:last-child>.btn,.factory-bootstrap-426 .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-426 .input-group-addon:last-child{border-left:0}.factory-bootstrap-426 .input-group-btn{position:relative;white-space:nowrap}.factory-bootstrap-426 .input-group-btn:first-child>.btn{margin-right:-1px}.factory-bootstrap-426 .input-group-btn:last-child>.btn{margin-left:-1px}.factory-bootstrap-426 .input-group-btn>.btn{position:relative}.factory-bootstrap-426 .input-group-btn>.btn+.btn{margin-left:-4px}.factory-bootstrap-426 .input-group-btn>.btn:active,.factory-bootstrap-426 .input-group-btn>.btn:hover{z-index:2}.factory-bootstrap-426 .nav{padding-left:0;margin-bottom:0;list-style:none}.factory-bootstrap-426 .nav:after,.factory-bootstrap-426 .nav:before{display:table;content:" "}.factory-bootstrap-426 .nav:after{clear:both}.factory-bootstrap-426 .nav>li{position:relative;display:block}.factory-bootstrap-426 .nav>li>a{position:relative;display:block;padding:10px 15px}.factory-bootstrap-426 .nav>li>a:focus,.factory-bootstrap-426 .nav>li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-426 .nav>li.disabled>a{color:#999}.factory-bootstrap-426 .nav>li.disabled>a:focus,.factory-bootstrap-426 .nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.factory-bootstrap-426 .nav .open>a,.factory-bootstrap-426 .nav .open>a:focus,.factory-bootstrap-426 .nav .open>a:hover{background-color:#eee;border-color:#428bca}.factory-bootstrap-426 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-426 .nav>li>a>img{max-width:none}.factory-bootstrap-426 .nav-tabs{border-bottom:1px solid #ddd}.factory-bootstrap-426 .nav-tabs>li{float:left;margin-bottom:-1px}.factory-bootstrap-426 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.factory-bootstrap-426 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.factory-bootstrap-426 .nav-tabs>li.active>a,.factory-bootstrap-426 .nav-tabs>li.active>a:focus,.factory-bootstrap-426 .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.factory-bootstrap-426 .nav-tabs.nav-justified{width:100%;border-bottom:0}.factory-bootstrap-426 .nav-tabs.nav-justified>li{float:none}.factory-bootstrap-426 .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-426 .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.factory-bootstrap-426 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-426 .nav-tabs.nav-justified>.active>a,.factory-bootstrap-426 .nav-tabs.nav-justified>.active>a:focus,.factory-bootstrap-426 .nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.factory-bootstrap-426 .nav-pills>li{float:left}.factory-bootstrap-426 .nav-pills>li>a{border-radius:4px}.factory-bootstrap-426 .nav-pills>li+li{margin-left:2px}.factory-bootstrap-426 .nav-pills>li.active>a,.factory-bootstrap-426 .nav-pills>li.active>a:focus,.factory-bootstrap-426 .nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.factory-bootstrap-426 .nav-stacked>li{float:none}.factory-bootstrap-426 .nav-stacked>li+li{margin-top:2px;margin-left:0}.factory-bootstrap-426 .nav-justified{width:100%}.factory-bootstrap-426 .nav-justified>li{float:none}.factory-bootstrap-426 .nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-426 .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.factory-bootstrap-426 .nav-tabs-justified{border-bottom:0}.factory-bootstrap-426 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-426 .nav-tabs-justified>.active>a,.factory-bootstrap-426 .nav-tabs-justified>.active>a:focus,.factory-bootstrap-426 .nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.factory-bootstrap-426 .tab-content>.tab-pane{display:none}.factory-bootstrap-426 .tab-content>.active{display:block}.factory-bootstrap-426 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-426 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.factory-bootstrap-426 .navbar:after,.factory-bootstrap-426 .navbar:before{display:table;content:" "}.factory-bootstrap-426 .navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.factory-bootstrap-426 .navbar-header:after,.factory-bootstrap-426 .navbar-header:before{display:table;content:" "}.factory-bootstrap-426 .navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.factory-bootstrap-426 .navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.factory-bootstrap-426 .navbar-collapse:after,.factory-bootstrap-426 .navbar-collapse:before{display:table;content:" "}.factory-bootstrap-426 .navbar-collapse:after{clear:both}.factory-bootstrap-426 .navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.factory-bootstrap-426 .container>.navbar-collapse,.factory-bootstrap-426 .container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.factory-bootstrap-426 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.factory-bootstrap-426 .navbar-fixed-bottom,.factory-bootstrap-426 .navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.factory-bootstrap-426 .navbar-fixed-top{top:0;border-width:0 0 1px}.factory-bootstrap-426 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.factory-bootstrap-426 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.factory-bootstrap-426 .navbar-brand:focus,.factory-bootstrap-426 .navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.factory-bootstrap-426 .navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.factory-bootstrap-426 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.factory-bootstrap-426 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.factory-bootstrap-426 .navbar-nav{margin:7.5px -15px}.factory-bootstrap-426 .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.factory-bootstrap-426 .navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.factory-bootstrap-426 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-426 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-426 .navbar-nav.pull-right>li>.dropdown-menu,.factory-bootstrap-426 .navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-426 .navbar-btn{margin-top:8px;margin-bottom:8px}.factory-bootstrap-426 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.factory-bootstrap-426 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.factory-bootstrap-426 .navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.factory-bootstrap-426 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.factory-bootstrap-426 .navbar-default .navbar-brand{color:#777}.factory-bootstrap-426 .navbar-default .navbar-brand:focus,.factory-bootstrap-426 .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.factory-bootstrap-426 .navbar-default .navbar-nav>li>a,.factory-bootstrap-426 .navbar-default .navbar-text{color:#777}.factory-bootstrap-426 .navbar-default .navbar-nav>li>a:focus,.factory-bootstrap-426 .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.factory-bootstrap-426 .navbar-default .navbar-nav>.active>a,.factory-bootstrap-426 .navbar-default .navbar-nav>.active>a:focus,.factory-bootstrap-426 .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.factory-bootstrap-426 .navbar-default .navbar-nav>.disabled>a,.factory-bootstrap-426 .navbar-default .navbar-nav>.disabled>a:focus,.factory-bootstrap-426 .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.factory-bootstrap-426 .navbar-default .navbar-toggle{border-color:#ddd}.factory-bootstrap-426 .navbar-default .navbar-toggle:focus,.factory-bootstrap-426 .navbar-default .navbar-toggle:hover{background-color:#ddd}.factory-bootstrap-426 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.factory-bootstrap-426 .navbar-default .navbar-collapse,.factory-bootstrap-426 .navbar-default .navbar-form{border-color:#e7e7e7}.factory-bootstrap-426 .navbar-default .navbar-nav>.open>a,.factory-bootstrap-426 .navbar-default .navbar-nav>.open>a:focus,.factory-bootstrap-426 .navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.factory-bootstrap-426 .navbar-default .navbar-link{color:#777}.factory-bootstrap-426 .navbar-default .navbar-link:hover{color:#333}.factory-bootstrap-426 .navbar-inverse{background-color:#222;border-color:#080808}.factory-bootstrap-426 .navbar-inverse .navbar-brand{color:#999}.factory-bootstrap-426 .navbar-inverse .navbar-brand:focus,.factory-bootstrap-426 .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.factory-bootstrap-426 .navbar-inverse .navbar-nav>li>a,.factory-bootstrap-426 .navbar-inverse .navbar-text{color:#999}.factory-bootstrap-426 .navbar-inverse .navbar-nav>li>a:focus,.factory-bootstrap-426 .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.factory-bootstrap-426 .navbar-inverse .navbar-nav>.active>a,.factory-bootstrap-426 .navbar-inverse .navbar-nav>.active>a:focus,.factory-bootstrap-426 .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.factory-bootstrap-426 .navbar-inverse .navbar-nav>.disabled>a,.factory-bootstrap-426 .navbar-inverse .navbar-nav>.disabled>a:focus,.factory-bootstrap-426 .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.factory-bootstrap-426 .navbar-inverse .navbar-toggle{border-color:#333}.factory-bootstrap-426 .navbar-inverse .navbar-toggle:focus,.factory-bootstrap-426 .navbar-inverse .navbar-toggle:hover{background-color:#333}.factory-bootstrap-426 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.factory-bootstrap-426 .navbar-inverse .navbar-collapse,.factory-bootstrap-426 .navbar-inverse .navbar-form{border-color:#101010}.factory-bootstrap-426 .navbar-inverse .navbar-nav>.open>a,.factory-bootstrap-426 .navbar-inverse .navbar-nav>.open>a:focus,.factory-bootstrap-426 .navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.factory-bootstrap-426 .navbar-inverse .navbar-link{color:#999}.factory-bootstrap-426 .navbar-inverse .navbar-link:hover{color:#fff}.factory-bootstrap-426 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.factory-bootstrap-426 .breadcrumb>li{display:inline-block}.factory-bootstrap-426 .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.factory-bootstrap-426 .breadcrumb>.active{color:#999}.factory-bootstrap-426 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.factory-bootstrap-426 .pagination>li{display:inline}.factory-bootstrap-426 .pagination>li>a,.factory-bootstrap-426 .pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-426 .pagination>li:first-child>a,.factory-bootstrap-426 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.factory-bootstrap-426 .pagination>li:last-child>a,.factory-bootstrap-426 .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.factory-bootstrap-426 .pagination>li>a:focus,.factory-bootstrap-426 .pagination>li>a:hover,.factory-bootstrap-426 .pagination>li>span:focus,.factory-bootstrap-426 .pagination>li>span:hover{background-color:#eee}.factory-bootstrap-426 .pagination>.active>a,.factory-bootstrap-426 .pagination>.active>a:focus,.factory-bootstrap-426 .pagination>.active>a:hover,.factory-bootstrap-426 .pagination>.active>span,.factory-bootstrap-426 .pagination>.active>span:focus,.factory-bootstrap-426 .pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#1e8cbe;border-color:#0074a2}.factory-bootstrap-426 .pagination>.disabled>a,.factory-bootstrap-426 .pagination>.disabled>a:focus,.factory-bootstrap-426 .pagination>.disabled>a:hover,.factory-bootstrap-426 .pagination>.disabled>span,.factory-bootstrap-426 .pagination>.disabled>span:focus,.factory-bootstrap-426 .pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.factory-bootstrap-426 .pagination-lg>li>a,.factory-bootstrap-426 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.factory-bootstrap-426 .pagination-lg>li:first-child>a,.factory-bootstrap-426 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.factory-bootstrap-426 .pagination-lg>li:last-child>a,.factory-bootstrap-426 .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.factory-bootstrap-426 .pagination-sm>li>a,.factory-bootstrap-426 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.factory-bootstrap-426 .pagination-sm>li:first-child>a,.factory-bootstrap-426 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.factory-bootstrap-426 .pagination-sm>li:last-child>a,.factory-bootstrap-426 .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.factory-bootstrap-426 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.factory-bootstrap-426 .pager:after,.factory-bootstrap-426 .pager:before{display:table;content:" "}.factory-bootstrap-426 .pager:after{clear:both}.factory-bootstrap-426 .pager li{display:inline}.factory-bootstrap-426 .pager li>a,.factory-bootstrap-426 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.factory-bootstrap-426 .pager li>a:focus,.factory-bootstrap-426 .pager li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-426 .pager .next>a,.factory-bootstrap-426 .pager .next>span{float:right}.factory-bootstrap-426 .pager .previous>a,.factory-bootstrap-426 .pager .previous>span{float:left}.factory-bootstrap-426 .pager .disabled>a,.factory-bootstrap-426 .pager .disabled>a:focus,.factory-bootstrap-426 .pager .disabled>a:hover,.factory-bootstrap-426 .pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.factory-bootstrap-426 .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.factory-bootstrap-426 .label[href]:focus,.factory-bootstrap-426 .label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-426 .label:empty{display:none}.factory-bootstrap-426 .btn .label{position:relative;top:-1px}.factory-bootstrap-426 .label-default{background-color:#999}.factory-bootstrap-426 .label-default[href]:focus,.factory-bootstrap-426 .label-default[href]:hover{background-color:gray}.factory-bootstrap-426 .label-primary{background-color:#428bca}.factory-bootstrap-426 .label-primary[href]:focus,.factory-bootstrap-426 .label-primary[href]:hover{background-color:#3071a9}.factory-bootstrap-426 .label-success{background-color:#5cb85c}.factory-bootstrap-426 .label-success[href]:focus,.factory-bootstrap-426 .label-success[href]:hover{background-color:#449d44}.factory-bootstrap-426 .label-info{background-color:#5bc0de}.factory-bootstrap-426 .label-info[href]:focus,.factory-bootstrap-426 .label-info[href]:hover{background-color:#31b0d5}.factory-bootstrap-426 .label-warning{background-color:#f0ad4e}.factory-bootstrap-426 .label-warning[href]:focus,.factory-bootstrap-426 .label-warning[href]:hover{background-color:#ec971f}.factory-bootstrap-426 .label-danger{background-color:#d9534f}.factory-bootstrap-426 .label-danger[href]:focus,.factory-bootstrap-426 .label-danger[href]:hover{background-color:#c9302c}.factory-bootstrap-426 .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.factory-bootstrap-426 .badge:empty{display:none}.factory-bootstrap-426 .btn .badge{position:relative;top:-1px}.factory-bootstrap-426 a.badge:focus,.factory-bootstrap-426 a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-426 .nav-pills>.active>a>.badge,.factory-bootstrap-426 a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.factory-bootstrap-426 .nav-pills>li>a>.badge{margin-left:3px}.factory-bootstrap-426 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.factory-bootstrap-426 .jumbotron .h1,.factory-bootstrap-426 .jumbotron h1{line-height:1;color:inherit}.factory-bootstrap-426 .jumbotron p{line-height:1.4}.factory-bootstrap-426 .container .jumbotron{border-radius:6px}.factory-bootstrap-426 .jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.factory-bootstrap-426 .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.factory-bootstrap-426 .thumbnail a>img,.factory-bootstrap-426 .thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}.factory-bootstrap-426 a.thumbnail.active,.factory-bootstrap-426 a.thumbnail:focus,.factory-bootstrap-426 a.thumbnail:hover{border-color:#428bca}.factory-bootstrap-426 .thumbnail .caption{padding:9px;color:#333}.factory-bootstrap-426 .alert{border:1px solid transparent;border-radius:4px}.factory-bootstrap-426 .alert h4{margin-top:0;color:inherit}.factory-bootstrap-426 .alert .alert-link{font-weight:700}.factory-bootstrap-426 .alert>p,.factory-bootstrap-426 .alert>ul{margin-bottom:0}.factory-bootstrap-426 .alert>p+p{margin-top:5px}.factory-bootstrap-426 .alert-dismissable{padding-right:35px}.factory-bootstrap-426 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.factory-bootstrap-426 .alert-info{color:#31708f;background-color:#d9edf7}.factory-bootstrap-426 .alert-info hr{border-top-color:#a6e1ec}.factory-bootstrap-426 .alert-info .alert-link{color:#245269}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.factory-bootstrap-426 .progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.factory-bootstrap-426 .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#2ea2cc;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.factory-bootstrap-426 .progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.factory-bootstrap-426 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.factory-bootstrap-426 .progress-bar-success{background-color:#5cb85c}.factory-bootstrap-426 .progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-426 .progress-bar-info{background-color:#5bc0de}.factory-bootstrap-426 .progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-426 .progress-bar-warning{background-color:#f0ad4e}.factory-bootstrap-426 .progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-426 .progress-bar-danger{background-color:#d9534f}.factory-bootstrap-426 .progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-426 .media,.factory-bootstrap-426 .media-body{overflow:hidden;zoom:1}.factory-bootstrap-426 .media,.factory-bootstrap-426 .media .media{margin-top:15px}.factory-bootstrap-426 .media:first-child{margin-top:0}.factory-bootstrap-426 .media-object{display:block}.factory-bootstrap-426 .media-heading{margin:0 0 5px}.factory-bootstrap-426 .media>.pull-left{margin-right:10px}.factory-bootstrap-426 .media>.pull-right{margin-left:10px}.factory-bootstrap-426 .media-list{padding-left:0;list-style:none}.factory-bootstrap-426 .list-group{padding-left:0;margin-bottom:20px}.factory-bootstrap-426 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-426 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.factory-bootstrap-426 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.factory-bootstrap-426 .list-group-item>.badge{float:right}.factory-bootstrap-426 .list-group-item>.badge+.badge{margin-right:5px}.factory-bootstrap-426 a.list-group-item{color:#555}.factory-bootstrap-426 a.list-group-item .list-group-item-heading{color:#333}.factory-bootstrap-426 a.list-group-item:focus,.factory-bootstrap-426 a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.factory-bootstrap-426 a.list-group-item.active,.factory-bootstrap-426 a.list-group-item.active:focus,.factory-bootstrap-426 a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-426 a.list-group-item.active .list-group-item-heading,.factory-bootstrap-426 a.list-group-item.active:focus .list-group-item-heading,.factory-bootstrap-426 a.list-group-item.active:hover .list-group-item-heading{color:inherit}.factory-bootstrap-426 a.list-group-item.active .list-group-item-text,.factory-bootstrap-426 a.list-group-item.active:focus .list-group-item-text,.factory-bootstrap-426 a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.factory-bootstrap-426 .list-group-item-heading{margin-top:0;margin-bottom:5px}.factory-bootstrap-426 .list-group-item-text{margin-bottom:0;line-height:1.3}.factory-bootstrap-426 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.factory-bootstrap-426 .panel-body{padding:15px}.factory-bootstrap-426 .panel-body:after,.factory-bootstrap-426 .panel-body:before{display:table;content:" "}.factory-bootstrap-426 .panel-body:after{clear:both}.factory-bootstrap-426 .panel>.list-group{margin-bottom:0}.factory-bootstrap-426 .panel>.list-group .list-group-item{border-width:1px 0}.factory-bootstrap-426 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-426 .panel>.list-group .list-group-item:last-child{border-bottom:0}.factory-bootstrap-426 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.factory-bootstrap-426 .panel>.table,.factory-bootstrap-426 .panel>.table-responsive>.table{margin-bottom:0}.factory-bootstrap-426 .panel>.panel-body+.table,.factory-bootstrap-426 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.factory-bootstrap-426 .panel>.table>tbody:first-child td,.factory-bootstrap-426 .panel>.table>tbody:first-child th{border-top:0}.factory-bootstrap-426 .panel>.table-bordered,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered{border:0}.factory-bootstrap-426 .panel>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-426 .panel>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-426 .panel>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-426 .panel>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-426 .panel>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-426 .panel>.table-bordered>thead>tr>th:first-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.factory-bootstrap-426 .panel>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-426 .panel>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-426 .panel>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-426 .panel>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-426 .panel>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-426 .panel>.table-bordered>thead>tr>th:last-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.factory-bootstrap-426 .panel>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-426 .panel>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-426 .panel>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-426 .panel>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-426 .panel>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-426 .panel>.table-bordered>thead>tr:last-child>th,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-426 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}.factory-bootstrap-426 .panel>.table-responsive{margin-bottom:0;border:0}.factory-bootstrap-426 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.factory-bootstrap-426 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.factory-bootstrap-426 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.factory-bootstrap-426 .panel-title>a{color:inherit}.factory-bootstrap-426 .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.factory-bootstrap-426 .panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.factory-bootstrap-426 .panel-group .panel+.panel{margin-top:5px}.factory-bootstrap-426 .panel-group .panel-heading{border-bottom:0}.factory-bootstrap-426 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.factory-bootstrap-426 .panel-group .panel-footer{border-top:0}.factory-bootstrap-426 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.factory-bootstrap-426 .panel-default{border-color:#ddd}.factory-bootstrap-426 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.factory-bootstrap-426 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.factory-bootstrap-426 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.factory-bootstrap-426 .panel-primary{border-color:#428bca}.factory-bootstrap-426 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-426 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.factory-bootstrap-426 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.factory-bootstrap-426 .panel-success{border-color:#d6e9c6}.factory-bootstrap-426 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.factory-bootstrap-426 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.factory-bootstrap-426 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.factory-bootstrap-426 .panel-warning{border-color:#faebcc}.factory-bootstrap-426 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.factory-bootstrap-426 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.factory-bootstrap-426 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.factory-bootstrap-426 .panel-danger{border-color:#ebccd1}.factory-bootstrap-426 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.factory-bootstrap-426 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.factory-bootstrap-426 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.factory-bootstrap-426 .panel-info{border-color:#bce8f1}.factory-bootstrap-426 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.factory-bootstrap-426 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.factory-bootstrap-426 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.factory-bootstrap-426 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.factory-bootstrap-426 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.factory-bootstrap-426 .well-lg{padding:24px;border-radius:6px}.factory-bootstrap-426 .well-sm{padding:9px;border-radius:3px}.factory-bootstrap-426 .close{float:right;font-size:14px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.3;filter:alpha(opacity=30)}.factory-bootstrap-426 .alert .close{position:relative;top:-8px;right:-7px}.factory-bootstrap-426 .close:focus,.factory-bootstrap-426 .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-426 button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.factory-bootstrap-426 .modal-open{overflow:hidden}.factory-bootstrap-426 .modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll;width:auto;margin-left:0;background-color:transparent;border:0}.factory-bootstrap-426 .modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.factory-bootstrap-426 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.factory-bootstrap-426 .modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.factory-bootstrap-426 .modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box}.factory-bootstrap-426 .modal-backdrop,.factory-bootstrap-426-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.factory-bootstrap-426 .modal-backdrop.fade,.factory-bootstrap-426-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.factory-bootstrap-426 .modal-backdrop.in,.factory-bootstrap-426-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-426 .modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.factory-bootstrap-426 .modal-header .close{margin-top:-2px}.factory-bootstrap-426 .modal-title{margin:0;line-height:1.428571429}.factory-bootstrap-426 .modal-body{position:relative;padding:20px;max-height:none}.factory-bootstrap-426 .modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.factory-bootstrap-426 .modal-footer:after,.factory-bootstrap-426 .modal-footer:before{display:table;content:" "}.factory-bootstrap-426 .modal-footer:after{clear:both}.factory-bootstrap-426 .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.factory-bootstrap-426 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.factory-bootstrap-426 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.factory-bootstrap-426 .modal-dialog{width:600px;margin:30px auto}.factory-bootstrap-426 .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}}.factory-bootstrap-426 .tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.factory-bootstrap-426 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-426 .tooltip.top{padding:5px 0;margin-top:-3px}.factory-bootstrap-426 .tooltip.right{padding:0 5px;margin-left:3px}.factory-bootstrap-426 .tooltip.bottom{padding:5px 0;margin-top:3px}.factory-bootstrap-426 .tooltip.left{padding:0 5px;margin-left:-3px}.factory-bootstrap-426 .tooltip-inner{width:400px;padding:15px 20px;color:#fff;text-align:left;text-decoration:none;background-color:#673ab7;border-radius:3px}.factory-bootstrap-426 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-426 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-426 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-426 .tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-426 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#673ab7;border-width:5px 5px 5px 0}.factory-bootstrap-426 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#673ab7;border-width:5px 0 5px 5px}.factory-bootstrap-426 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-426 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-426 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-426 .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);background-clip:padding-box}.factory-bootstrap-426 .popover.top{margin-top:-10px}.factory-bootstrap-426 .popover.right{margin-left:10px}.factory-bootstrap-426 .popover.bottom{margin-top:10px}.factory-bootstrap-426 .popover.left{margin-left:-10px}.factory-bootstrap-426 .popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.factory-bootstrap-426 .popover-content{padding:9px 14px}.factory-bootstrap-426 .popover .arrow,.factory-bootstrap-426 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-426 .popover .arrow{border-width:11px}.factory-bootstrap-426 .popover .arrow:after{border-width:10px;content:""}.factory-bootstrap-426 .popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.factory-bootstrap-426 .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.factory-bootstrap-426 .popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.factory-bootstrap-426 .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.factory-bootstrap-426 .popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);border-top-width:0}.factory-bootstrap-426 .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.factory-bootstrap-426 .popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,.25);border-right-width:0}.factory-bootstrap-426 .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.factory-bootstrap-426 .carousel{position:relative}.factory-bootstrap-426 .carousel-inner{position:relative;width:100%;overflow:hidden}.factory-bootstrap-426 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.factory-bootstrap-426 .carousel-inner>.item>a>img,.factory-bootstrap-426 .carousel-inner>.item>img{display:block;height:auto;max-width:100%;line-height:1}.factory-bootstrap-426 .carousel-inner>.active,.factory-bootstrap-426 .carousel-inner>.next,.factory-bootstrap-426 .carousel-inner>.prev{display:block}.factory-bootstrap-426 .carousel-inner>.active{left:0}.factory-bootstrap-426 .carousel-inner>.next,.factory-bootstrap-426 .carousel-inner>.prev{position:absolute;top:0;width:100%}.factory-bootstrap-426 .carousel-inner>.next{left:100%}.factory-bootstrap-426 .carousel-inner>.prev{left:-100%}.factory-bootstrap-426 .carousel-inner>.next.left,.factory-bootstrap-426 .carousel-inner>.prev.right{left:0}.factory-bootstrap-426 .carousel-inner>.active.left{left:-100%}.factory-bootstrap-426 .carousel-inner>.active.right{left:100%}.factory-bootstrap-426 .carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-426 .carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.factory-bootstrap-426 .carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.factory-bootstrap-426 .carousel-control:focus,.factory-bootstrap-426 .carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-426 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-426 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-426 .carousel-control .icon-next,.factory-bootstrap-426 .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.factory-bootstrap-426 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-426 .carousel-control .icon-prev{left:50%}.factory-bootstrap-426 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-426 .carousel-control .icon-next{right:50%}.factory-bootstrap-426 .carousel-control .icon-next,.factory-bootstrap-426 .carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.factory-bootstrap-426 .carousel-control .icon-prev:before{content:'\2039'}.factory-bootstrap-426 .carousel-control .icon-next:before{content:'\203a'}.factory-bootstrap-426 .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.factory-bootstrap-426 .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.factory-bootstrap-426 .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.factory-bootstrap-426 .carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.factory-bootstrap-426 .carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.factory-bootstrap-426 .clearfix:after,.factory-bootstrap-426 .clearfix:before{display:table;content:" "}.factory-bootstrap-426 .clearfix:after{clear:both}.factory-bootstrap-426 .center-block{display:block;margin-right:auto;margin-left:auto}.factory-bootstrap-426 .pull-right{float:right!important}.factory-bootstrap-426 .pull-left{float:left!important}.factory-bootstrap-426 .hide{display:none!important}.factory-bootstrap-426 .show{display:block!important}.factory-bootstrap-426 .invisible{visibility:hidden}.factory-bootstrap-426 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.factory-bootstrap-426 .hidden{display:none!important;visibility:hidden!important}.factory-bootstrap-426 .affix{position:fixed}@-ms-viewport{width:device-width}.factory-bootstrap-426 .visible-lg,.factory-bootstrap-426 .visible-md,.factory-bootstrap-426 .visible-sm,.factory-bootstrap-426 .visible-xs,.factory-bootstrap-426 td.visible-lg,.factory-bootstrap-426 td.visible-md,.factory-bootstrap-426 td.visible-sm,.factory-bootstrap-426 td.visible-xs,.factory-bootstrap-426 th.visible-lg,.factory-bootstrap-426 th.visible-md,.factory-bootstrap-426 th.visible-sm,.factory-bootstrap-426 th.visible-xs,.factory-bootstrap-426 tr.visible-lg,.factory-bootstrap-426 tr.visible-md,.factory-bootstrap-426 tr.visible-sm,.factory-bootstrap-426 tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}table.visible-xs.visible-sm{display:table}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}table.visible-xs.visible-md{display:table}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}table.visible-xs.visible-lg{display:table}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}table.visible-sm.visible-xs{display:table}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}table.visible-sm.visible-md{display:table}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}table.visible-sm.visible-lg{display:table}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}table.visible-md.visible-xs{display:table}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}table.visible-md.visible-sm{display:table}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}table.visible-md.visible-lg{display:table}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}table.visible-lg.visible-xs{display:table}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}table.visible-lg.visible-sm{display:table}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}table.visible-lg.visible-md{display:table}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.factory-bootstrap-426 .hidden-xs{display:block!important}.factory-bootstrap-426 table.hidden-xs{display:table}.factory-bootstrap-426 tr.hidden-xs{display:table-row!important}.factory-bootstrap-426 td.hidden-xs,.factory-bootstrap-426 th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.factory-bootstrap-426 .hidden-sm{display:block!important}.factory-bootstrap-426 table.hidden-sm{display:table}.factory-bootstrap-426 tr.hidden-sm{display:table-row!important}.factory-bootstrap-426 td.hidden-sm,.factory-bootstrap-426 th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.factory-bootstrap-426 .hidden-md{display:block!important}.factory-bootstrap-426 table.hidden-md{display:table}.factory-bootstrap-426 tr.hidden-md{display:table-row!important}.factory-bootstrap-426 td.hidden-md,.factory-bootstrap-426 th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.factory-bootstrap-426 .hidden-lg{display:block!important}.factory-bootstrap-426 table.hidden-lg{display:table}.factory-bootstrap-426 tr.hidden-lg{display:table-row!important}.factory-bootstrap-426 td.hidden-lg,.factory-bootstrap-426 th.hidden-lg{display:table-cell!important}@media (max-width:767px){.factory-bootstrap-426 .hidden-lg.hidden-xs,.factory-bootstrap-426 td.hidden-lg.hidden-xs,.factory-bootstrap-426 th.hidden-lg.hidden-xs,.factory-bootstrap-426 tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.factory-bootstrap-426 .hidden-lg.hidden-sm,.factory-bootstrap-426 td.hidden-lg.hidden-sm,.factory-bootstrap-426 th.hidden-lg.hidden-sm,.factory-bootstrap-426 tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.factory-bootstrap-426 .hidden-lg.hidden-md,.factory-bootstrap-426 td.hidden-lg.hidden-md,.factory-bootstrap-426 th.hidden-lg.hidden-md,.factory-bootstrap-426 tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.factory-bootstrap-426 .hidden-lg,.factory-bootstrap-426 td.hidden-lg,.factory-bootstrap-426 th.hidden-lg,.factory-bootstrap-426 tr.hidden-lg{display:none!important}}.factory-bootstrap-426 .visible-print,.factory-bootstrap-426 td.visible-print,.factory-bootstrap-426 th.visible-print,.factory-bootstrap-426 tr.visible-print{display:none!important}@media print{.factory-bootstrap-426 .visible-print{display:block!important}.factory-bootstrap-426 table.visible-print{display:table}.factory-bootstrap-426 tr.visible-print{display:table-row!important}.factory-bootstrap-426 td.visible-print,.factory-bootstrap-426 th.visible-print{display:table-cell!important}.factory-bootstrap-426 .hidden-print,.factory-bootstrap-426 td.hidden-print,.factory-bootstrap-426 th.hidden-print,.factory-bootstrap-426 tr.hidden-print{display:none!important}}/*!
|
12 |
* Factory Default Bootstrap Theme
|
13 |
*
|
14 |
* The code is based on Bootstrap v2.1.1
|
22 |
*
|
23 |
* @package factory-bootstrap
|
24 |
* @since 1.0.0
|
25 |
+
*/.factory-bootstrap-426 .btn-danger,.factory-bootstrap-426 .btn-default,.factory-bootstrap-426 .btn-info,.factory-bootstrap-426 .btn-primary,.factory-bootstrap-426 .btn-success,.factory-bootstrap-426 .btn-warning{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-426 .btn-danger.active,.factory-bootstrap-426 .btn-danger:active,.factory-bootstrap-426 .btn-default.active,.factory-bootstrap-426 .btn-default:active,.factory-bootstrap-426 .btn-info.active,.factory-bootstrap-426 .btn-info:active,.factory-bootstrap-426 .btn-primary.active,.factory-bootstrap-426 .btn-primary:active,.factory-bootstrap-426 .btn-success.active,.factory-bootstrap-426 .btn-success:active,.factory-bootstrap-426 .btn-warning.active,.factory-bootstrap-426 .btn-warning:active{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.1);box-shadow:inset 0 1px 1px rgba(0,0,0,.1)}.factory-bootstrap-426 .btn.active,.factory-bootstrap-426 .btn:active{background-image:none}.factory-bootstrap-426 .btn-default{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.factory-bootstrap-426 .btn-default.active,.factory-bootstrap-426 .btn-default:active{background-color:#fff;border-color:#dbdbdb}.factory-bootstrap-426 .btn-gold{font-weight:700;padding:7px 12px;cursor:pointer;line-height:16px;display:inline-block;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;box-shadow:#e3e3e3 0 1px 1px;-moz-box-shadow:0 1px 1px rgba(000,000,000,.1),inset 0 1px 1px rgba(255,255,255,.7);-webkit-box-shadow:0 1px 1px rgba(000,000,000,.1),inset 0 1px 1px rgba(255,255,255,.7);text-shadow:1px 1px 0 #ffe8b2;color:#7c5d1b;border:1px solid #d6a437;background:#feeb80}.factory-bootstrap-426 .btn-gold:focus,.factory-bootstrap-426 .btn-gold:hover{background:#fef0a1}.factory-bootstrap-426 .btn-gold.active,.factory-bootstrap-426 .btn-gold:active{background:#fef0a1;-webkit-box-shadow:inset 0 3px 8px 0 #f8ba36;box-shadow:inset 0 3px 8px 0 #f8ba36}.factory-bootstrap-426 .btn-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.factory-bootstrap-426 .btn-primary:focus,.factory-bootstrap-426 .btn-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.factory-bootstrap-426 .btn-primary.active,.factory-bootstrap-426 .btn-primary:active{background-color:#2d6ca2;border-color:#2b669a}.factory-bootstrap-426 .btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-426 .btn-success:focus,.factory-bootstrap-426 .btn-success:hover{background-color:#419641;background-position:0 -15px}.factory-bootstrap-426 .btn-success.active,.factory-bootstrap-426 .btn-success:active{background-color:#419641;border-color:#3e8f3e}.factory-bootstrap-426 .btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-426 .btn-warning:focus,.factory-bootstrap-426 .btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.factory-bootstrap-426 .btn-warning.active,.factory-bootstrap-426 .btn-warning:active{background-color:#eb9316;border-color:#e38d13}.factory-bootstrap-426 .btn-danger{color:#fff;background:#d9534f;border-color:#d43f3a}.factory-bootstrap-426 .btn-danger.active,.factory-bootstrap-426 .btn-danger:active,.factory-bootstrap-426 .btn-danger:focus,.factory-bootstrap-426 .btn-danger:hover,.factory-bootstrap-426 .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.factory-bootstrap-426 .btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-426 .btn-info:focus,.factory-bootstrap-426 .btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.factory-bootstrap-426 .btn-info.active,.factory-bootstrap-426 .btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.factory-bootstrap-426 .img-thumbnail,.factory-bootstrap-426 .thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-426 .dropdown-menu>li>a:focus,.factory-bootstrap-426 .dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.factory-bootstrap-426 .dropdown-menu>.active>a,.factory-bootstrap-426 .dropdown-menu>.active>a:focus,.factory-bootstrap-426 .dropdown-menu>.active>a:hover{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.factory-bootstrap-426 .navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.factory-bootstrap-426 .navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.factory-bootstrap-426 .navbar-brand,.factory-bootstrap-426 .navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.factory-bootstrap-426 .navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-426 .navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.factory-bootstrap-426 .navbar-inverse .navbar-brand,.factory-bootstrap-426 .navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-426 .navbar-fixed-bottom,.factory-bootstrap-426 .navbar-fixed-top,.factory-bootstrap-426 .navbar-static-top{border-radius:0}.factory-bootstrap-426 .alert{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-426 .alert .actions{padding-top:10px}.factory-bootstrap-426 .alert-success{color:#3c763d;background-color:#dff0d8;border-bottom:2px solid #c8e5bc}.factory-bootstrap-426 .alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0)}.factory-bootstrap-426 .alert{text-shadow:none;box-shadow:none;margin:0;margin-top:10px;margin-bottom:10px;padding:10px}.factory-bootstrap-426 .alert-normal,.factory-bootstrap-426 .alert-warning{background:#fcf8e3;color:#8a6d3b;border:1px solid #b8823b}.factory-bootstrap-426 .alert-danger{background:#cf4944;color:#fff;border-bottom:2px solid #b23e3a}.factory-bootstrap-426 .alert-danger a:not(.btn),.factory-bootstrap-426 .alert-error a:not(.btn){color:#fff}.factory-bootstrap-426 .progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.factory-bootstrap-426 .progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.factory-bootstrap-426 .progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.factory-bootstrap-426 .progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.factory-bootstrap-426 .progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.factory-bootstrap-426 .progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.factory-bootstrap-426 .list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-426 .list-group-item.active,.factory-bootstrap-426 .list-group-item.active:focus,.factory-bootstrap-426 .list-group-item.active:hover{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0)}.factory-bootstrap-426 .panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-426 .panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.factory-bootstrap-426 .panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.factory-bootstrap-426 .panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.factory-bootstrap-426 .panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.factory-bootstrap-426 .panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.factory-bootstrap-426 .panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.factory-bootstrap-426 .well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}.factory-bootstrap-426 .factory-after{margin-left:7px;display:inline-block}.factory-bootstrap-426 .factory-hidden{display:none}.factory-bootstrap-426 .factory-ajax-loader{width:25px;height:25px;background:url(../assets/images/loader-sm-tr.gif)}.factory-control-error{background-color:rgba(0,0,0,.8);white-space:normal;z-index:10;font-weight:400;line-height:150%;border-radius:4px;color:#fff;font-size:13px;margin-top:5px;padding:4px 10px 3px;max-width:500px;display:inline-block}.factory-control-error i{margin:0 7px 0 1px}
|
libs/factory/bootstrap/assets/css-min/bootstrap.ectoplasm.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .btn-primary{background:#a3b745;border-color:#839237;color:#fff;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:focus,.factory-bootstrap-426 .btn-primary:hover{background:#89993a;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 1px 0 #b7c669,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #b7c669,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:active{background:#89993a;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-426 .btn-primary:disabled,.factory-bootstrap-426 .btn-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.factory-bootstrap-426 .btn-group .btn.active.value{background-color:#a3b745;-webkit-box-shadow:inset 0 1px 2px #839237;box-shadow:inset 0 1px 2px #839237;border-top:1px solid #839237;border-bottom:1px solid #839237;border-left:1px solid #839237}.factory-bootstrap-426 .pagination>.active>a,.factory-bootstrap-426 .pagination>.active>a:focus,.factory-bootstrap-426 .pagination>.active>a:hover,.factory-bootstrap-426 .pagination>.active>span,.factory-bootstrap-426 .pagination>.active>span:focus,.factory-bootstrap-426 .pagination>.active>span:hover{background-color:#a3b745;border-color:#839237}
|
libs/factory/bootstrap/assets/css-min/bootstrap.form-group.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-form-group .factory-legend{padding:9px 12px;background-color:#f9f9f9}.factory-bootstrap-426 .factory-form-group .factory-title{font-weight:700;font-size:14px;line-height:14px;color:#555;margin:0}.factory-bootstrap-426 .factory-form-group .factory-hint-icon{display:block;width:16px;height:16px;line-height:13px;padding:0;font-size:11px;text-align:center;position:absolute;top:-5px;right:-3px;color:#fff;background:#E91E63;border-radius:3px}.factory-bootstrap-426 .factory-form-group .factory-hint-icon.factory-hint-icon-green{background:#8bc34a}.factory-bootstrap-426 .factory-form-group .factory-hint-icon.factory-hint-icon-grey{background:#9e9e9e}.factory-bootstrap-426 .factory-form-group .factory-hint-icon.factory-hint-icon-red{background:#E91E63}.factory-bootstrap-426 .factory-form-group .factory-hint{margin:0;font-size:12px;line-height:16px;margin-top:6px}.factory-bootstrap-426 .factory-form-group+.factory-form-group{margin-top:30px}.factory-bootstrap-426 .factory-form-group legend+.control-group{margin-top:0}
|
libs/factory/bootstrap/assets/css-min/bootstrap.light.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .btn-primary{background:#04a4cc;border-color:#037c9a;color:#fff;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:focus,.factory-bootstrap-426 .btn-primary:hover{background:#0384a4;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 1px 0 #09cafa,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #09cafa,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:active{background:#0384a4;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-426 .btn-primary:disabled,.factory-bootstrap-426 .btn-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.factory-bootstrap-426 .btn-group .btn.active.value{background-color:#04a4cc;-webkit-box-shadow:inset 0 1px 2px #037c9a;box-shadow:inset 0 1px 2px #037c9a;border-top:1px solid #037c9a;border-bottom:1px solid #037c9a;border-left:1px solid #037c9a}.factory-bootstrap-426 .pagination>.active>a,.factory-bootstrap-426 .pagination>.active>a:focus,.factory-bootstrap-426 .pagination>.active>a:hover,.factory-bootstrap-426 .pagination>.active>span,.factory-bootstrap-426 .pagination>.active>span:focus,.factory-bootstrap-426 .pagination>.active>span:hover{background-color:#04a4cc;border-color:#037c9a}
|
libs/factory/bootstrap/assets/css-min/bootstrap.midnight.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .btn-primary{background:#e14d43;border-color:#d02a21;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:focus,.factory-bootstrap-426 .btn-primary:hover{background:#d92c23;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8756f,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8756f,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:active{background:#d92c23;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-426 .btn-primary:disabled,.factory-bootstrap-426 .btn-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.factory-bootstrap-426 .btn-group .btn.active.value{background-color:#e14d43;-webkit-box-shadow:inset 0 1px 2px #d02a21;box-shadow:inset 0 1px 2px #d02a21;border-top:1px solid #d02a21;border-bottom:1px solid #d02a21;border-left:1px solid #d02a21}.factory-bootstrap-426 .pagination>.active>a,.factory-bootstrap-426 .pagination>.active>a:focus,.factory-bootstrap-426 .pagination>.active>a:hover,.factory-bootstrap-426 .pagination>.active>span,.factory-bootstrap-426 .pagination>.active>span:focus,.factory-bootstrap-426 .pagination>.active>span:hover{background-color:#e14d43;border-color:#d02a21}
|
libs/factory/bootstrap/assets/css-min/bootstrap.ocean.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .btn-primary{background:#9ebaa0;border-color:#80a583;color:#fff;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:focus,.factory-bootstrap-426 .btn-primary:hover{background:#86a988;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 1px 0 #bccfbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #bccfbd,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:active{background:#86a988;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-426 .btn-primary:disabled,.factory-bootstrap-426 .btn-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.factory-bootstrap-426 .btn-group .btn.active.value{background-color:#9ebaa0;-webkit-box-shadow:inset 0 1px 2px #80a583;box-shadow:inset 0 1px 2px #80a583;border-top:1px solid #80a583;border-bottom:1px solid #80a583;border-left:1px solid #80a583}.factory-bootstrap-426 .pagination>.active>a,.factory-bootstrap-426 .pagination>.active>a:focus,.factory-bootstrap-426 .pagination>.active>a:hover,.factory-bootstrap-426 .pagination>.active>span,.factory-bootstrap-426 .pagination>.active>span:focus,.factory-bootstrap-426 .pagination>.active>span:hover{background-color:#9ebaa0;border-color:#80a583}
|
libs/factory/bootstrap/assets/css-min/bootstrap.separator.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-separator{border-bottom:1px solid #f9f9f9;border-top:1px solid #d1d1d1;margin-bottom:25px}
|
libs/factory/bootstrap/assets/css-min/bootstrap.sunrise.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .btn-primary{background:#dd823b;border-color:#c36822;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:focus,.factory-bootstrap-426 .btn-primary:hover{background:#cc6c23;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e59d66,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e59d66,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-426 .btn-primary:active{background:#cc6c23;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-426 .btn-primary:disabled,.factory-bootstrap-426 .btn-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.factory-bootstrap-426 .btn-group .btn.active.value{background-color:#dd823b;-webkit-box-shadow:inset 0 1px 2px #c36822;box-shadow:inset 0 1px 2px #c36822;border-top:1px solid #c36822;border-bottom:1px solid #c36822;border-left:1px solid #c36822}.factory-bootstrap-426 .pagination>.active>a,.factory-bootstrap-426 .pagination>.active>a:focus,.factory-bootstrap-426 .pagination>.active>a:hover,.factory-bootstrap-426 .pagination>.active>span,.factory-bootstrap-426 .pagination>.active>span:focus,.factory-bootstrap-426 .pagination>.active>span:hover{background-color:#dd823b;border-color:#c36822}
|
libs/factory/bootstrap/assets/css-min/control.checkbox.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
#side-sortables .factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
#side-sortables .factory-bootstrap-426 .factory-buttons-way{float:right;position:relative;top:-25px;left:5px;border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-426 .factory-buttons-way{border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-426 .factory-buttons-way button{padding-left:10px;padding-right:10px}.factory-bootstrap-426 .factory-buttons-way .factory-on.active{text-shadow:none;color:#fff;background-color:#33aad5;-webkit-box-shadow:inset 0 1px 1px #0074a2;box-shadow:inset 0 1px 3px #0074a2;border-top:1px solid #0074a2;border-bottom:1px solid #0074a2;border-left:1px solid #0074a2}.factory-bootstrap-426 .factory-checkbox-tumbler-hint{margin-top:5px}.factory-bootstrap-426 .factory-checkbox-tumbler-hint .factory-tumbler-content{display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-426 .factory-buttons-way .factory-on.active{background-color:#04a4cc;-webkit-box-shadow:inset 0 1px 2px #037c9a;box-shadow:inset 0 1px 2px #037c9a;border-top:1px solid #037c9a;border-bottom:1px solid #037c9a;border-left:1px solid #037c9a}.admin-color-blue .factory-bootstrap-426 .factory-buttons-way .factory-on.active{background-color:#e1a948;-webkit-box-shadow:inset 0 1px 2px #d39323;box-shadow:inset 0 1px 2px #d39323;border-top:1px solid #d39323;border-bottom:1px solid #d39323;border-left:1px solid #d39323}.admin-color-coffee .factory-bootstrap-426 .factory-buttons-way .factory-on.active{background-color:#c7a589;-webkit-box-shadow:inset 0 1px 2px #b78a66;box-shadow:inset 0 1px 2px #b78a66;border-top:1px solid #b78a66;border-bottom:1px solid #b78a66;border-left:1px solid #b78a66}.admin-color-ectoplasm .factory-bootstrap-426 .factory-buttons-way .factory-on.active{background-color:#a3b745;-webkit-box-shadow:inset 0 1px 2px #839237;box-shadow:inset 0 1px 2px #839237;border-top:1px solid #839237;border-bottom:1px solid #839237;border-left:1px solid #839237}.admin-color-midnight .factory-bootstrap-426 .factory-buttons-way .factory-on.active{background-color:#e14d43;-webkit-box-shadow:inset 0 1px 2px #d02a21;box-shadow:inset 0 1px 2px #d02a21;border-top:1px solid #d02a21;border-bottom:1px solid #d02a21;border-left:1px solid #d02a21}.admin-color-ocean .factory-bootstrap-426 .factory-buttons-way .factory-on.active{background-color:#9ebaa0;-webkit-box-shadow:inset 0 1px 2px #80a583;box-shadow:inset 0 1px 2px #80a583;border-top:1px solid #80a583;border-bottom:1px solid #80a583;border-left:1px solid #80a583}.admin-color-sunrise .factory-bootstrap-426 .factory-buttons-way .factory-on.active{background-color:#dd823b;-webkit-box-shadow:inset 0 1px 2px #c36822;box-shadow:inset 0 1px 2px #c36822;border-top:1px solid #c36822;border-bottom:1px solid #c36822;border-left:1px solid #c36822}
|
libs/factory/bootstrap/assets/css-min/control.dropdown.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-dropdown.factory-buttons-way .fa{margin-right:6px;position:relative}.factory-bootstrap-426 .factory-dropdown.factory-buttons-way{border:0;border-radius:0}.factory-bootstrap-426 .factory-hints .factory-hint{margin-top:5px;display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-426 .factory-dropdown.factory-buttons-way .active{background-color:#04a4cc;-webkit-box-shadow:inset 0 1px 2px #037c9a;box-shadow:inset 0 1px 2px #037c9a;border-top:1px solid #037c9a;border-bottom:1px solid #037c9a;border-left:1px solid #037c9a}.admin-color-blue .factory-bootstrap-426 .factory-dropdown.factory-buttons-way .active{background-color:#e1a948;-webkit-box-shadow:inset 0 1px 2px #d39323;box-shadow:inset 0 1px 2px #d39323;border-top:1px solid #d39323;border-bottom:1px solid #d39323;border-left:1px solid #d39323}.admin-color-coffee .factory-bootstrap-426 .factory-dropdown.factory-buttons-way .active{background-color:#c7a589;-webkit-box-shadow:inset 0 1px 2px #b78a66;box-shadow:inset 0 1px 2px #b78a66;border-top:1px solid #b78a66;border-bottom:1px solid #b78a66;border-left:1px solid #b78a66}.admin-color-ectoplasm .factory-bootstrap-426 .factory-dropdown.factory-buttons-way .active{background-color:#a3b745;-webkit-box-shadow:inset 0 1px 2px #839237;box-shadow:inset 0 1px 2px #839237;border-top:1px solid #839237;border-bottom:1px solid #839237;border-left:1px solid #839237}.admin-color-midnight .factory-bootstrap-426 .factory-dropdown.factory-buttons-way .active{background-color:#e14d43;-webkit-box-shadow:inset 0 1px 2px #d02a21;box-shadow:inset 0 1px 2px #d02a21;border-top:1px solid #d02a21;border-bottom:1px solid #d02a21;border-left:1px solid #d02a21}.admin-color-ocean .factory-bootstrap-426 .factory-dropdown.factory-buttons-way .active{background-color:#9ebaa0;-webkit-box-shadow:inset 0 1px 2px #80a583;box-shadow:inset 0 1px 2px #80a583;border-top:1px solid #80a583;border-bottom:1px solid #80a583;border-left:1px solid #80a583}.admin-color-sunrise .factory-bootstrap-426 .factory-dropdown.factory-buttons-way .active{background-color:#dd823b;-webkit-box-shadow:inset 0 1px 2px #c36822;box-shadow:inset 0 1px 2px #c36822;border-top:1px solid #c36822;border-bottom:1px solid #c36822;border-left:1px solid #c36822}.factory-bootstrap-426 .factory-dropdown.factory-ddslick-way .dd-select{background-color:#fff!important}.factory-bootstrap-426 .factory-dropdown.factory-ddslick-way label{margin-bottom:1px}.factory-bootstrap-426 .factory-dropdown.factory-ddslick-way .dd-option,.factory-bootstrap-426 .factory-dropdown.factory-ddslick-way .dd-selected{padding:8px 12px 8px 11px!important}
|
libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-mtextbox-item{position:relative;margin-bottom:5px}.factory-bootstrap-426 .factory-mtextbox-item input,.factory-mtextbox-remove-item{display:inline-block}.factory-bootstrap-426 .factory-mtextbox-item .factory-mtextbox-remove-item{position:absolute;top:0;right:0;bottom:0;width:40px;border-radius:0 3px 3px 0;outline:0}.factory-bootstrap-426 .factory-mtextbox-item .factory-mtextbox-remove-item:focus,.factory-bootstrap-426 .factory-mtextbox-item .factory-mtextbox-remove-item:hover{box-shadow:none;outline:0}.factory-bootstrap-426 .factory-mtextbox-add-item{display:block;margin-top:10px}
|
libs/factory/bootstrap/assets/css-min/holder.more-link.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-more-link-content{border-top:1px dashed #DDD;padding-top:25px;width:100%;padding-right:20px;position:relative}.factory-bootstrap-426 .factory-tab .factory-more-link-show{display:inline-block;text-decoration:none;border-bottom:1px dotted #21759b;position:relative}.factory-bootstrap-426 .factory-tab .factory-more-link-show:hover{border-color:#d54e21}.factory-bootstrap-426 .factory-tab .factory-more-link-hide{position:absolute;margin-top:-35px;background-color:#fff;padding:0 5px;right:20px;color:#bbb;text-decoration:none}.factory-bootstrap-426 .factory-tab .factory-more-link-hide:hover{color:#999}
|
libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=factory-dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}},a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=factory-dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}},a.fn.factoryBootstrap426_dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.factoryBootstrap426_dropdown.Constructor=f,a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(jQuery);
|
libs/factory/bootstrap/assets/js-min/control.checkbox.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){var b=function(b){var c=this;this.$element=a(b),this.$result=this.$element.find(".factory-result"),this.$on=this.$element.find(".factory-on"),this.$off=this.$element.find(".factory-off");var d=this.$element.is(".factory-tumbler"),e=this.$element.is(".factory-has-tumbler-hint"),f=this.$element.data("tumbler-function"),g=this.$element.data("tumbler-delay");g||(g=3e3),this.callByPath=function(a,b){for(var c=a.split("."),d=window,e=0;e<c.length;e++)d=d[c[e]];d.apply(d,b)},this.$on.click(function(){return c.$off.removeClass("active"),c.$on.addClass("active"),d?setTimeout(function(){c.$on.removeClass("active"),c.$off.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.attr("checked","checked"),c.$result.val(1),c.$result.trigger("change")),!1}),this.$off.click(function(){return c.$on.removeClass("active"),c.$off.addClass("active"),d?setTimeout(function(){c.$off.removeClass("active"),c.$on.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.removeAttr("checked"),c.$result.val(0),c.$result.trigger("change")),!1}),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){(void 0!==window.__factory_checkbox_control_events_off_data||void 0!==window.__factory_checkbox_control_events_on_data)&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.prop("checked"),f=window.__factory_checkbox_control_events_on_data[d],g=window.__factory_checkbox_control_events_off_data[d];if(f||g){var h,i;void 0===window.__factory_checkbox_control_detach_elements&&(window.__factory_checkbox_control_detach_elements={}),h=window.__factory_checkbox_control_detach_elements,i=e?f:g;for(var j in i)if(i.hasOwnProperty(j)){var k,l=i[j];a.isArray(l)||(k=c.hashCode(d+l));var m;switch(j){case"hide":"string"==typeof l&&a(l).hide(0);break;case"show":"string"==typeof l&&a(l).fadeIn(200);break;case"detach":"string"==typeof l&&a(l).each(function(b){h[k]||(h[k]={}),h[k][b]||(h[k][b]={}),h[k][b].recovery_contanier=a(this).parent(),h[k][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(h[k]){for(var n in h[k])h[k].hasOwnProperty(n)&&h[k][n].recovery_contanier&&h[k][n].element&&h[k][n].recovery_contanier.append(h[k][n].element);delete h[k]}break;case"removeClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).removeClass(l[m]);break;case"addClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).addClass(l[m]);break;case"setValue":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&void 0!==l[m]&&null!==l[m]&&(console.log(l[m]),a(m).val(l[m]))}}}},this.executeEvents(this.$result)};a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){var b=function(b){var c=this;this.$element=a(b),this.$result=this.$element.find(".factory-result"),this.$on=this.$element.find(".factory-on"),this.$off=this.$element.find(".factory-off");var d=this.$element.is(".factory-tumbler"),e=this.$element.is(".factory-has-tumbler-hint"),f=this.$element.data("tumbler-function"),g=this.$element.data("tumbler-delay");g||(g=3e3),this.callByPath=function(a,b){for(var c=a.split("."),d=window,e=0;e<c.length;e++)d=d[c[e]];d.apply(d,b)},this.$on.click(function(){return c.$off.removeClass("active"),c.$on.addClass("active"),d?setTimeout(function(){c.$on.removeClass("active"),c.$off.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.attr("checked","checked"),c.$result.val(1),c.$result.trigger("change")),!1}),this.$off.click(function(){return c.$on.removeClass("active"),c.$off.addClass("active"),d?setTimeout(function(){c.$off.removeClass("active"),c.$on.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.removeAttr("checked"),c.$result.val(0),c.$result.trigger("change")),!1}),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){(void 0!==window.__factory_checkbox_control_events_off_data||void 0!==window.__factory_checkbox_control_events_on_data)&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.prop("checked"),f=window.__factory_checkbox_control_events_on_data[d],g=window.__factory_checkbox_control_events_off_data[d];if(f||g){var h,i;void 0===window.__factory_checkbox_control_detach_elements&&(window.__factory_checkbox_control_detach_elements={}),h=window.__factory_checkbox_control_detach_elements,i=e?f:g;for(var j in i)if(i.hasOwnProperty(j)){var k,l=i[j];a.isArray(l)||(k=c.hashCode(d+l));var m;switch(j){case"hide":"string"==typeof l&&a(l).hide(0);break;case"show":"string"==typeof l&&a(l).fadeIn(200);break;case"detach":"string"==typeof l&&a(l).each(function(b){h[k]||(h[k]={}),h[k][b]||(h[k][b]={}),h[k][b].recovery_contanier=a(this).parent(),h[k][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(h[k]){for(var n in h[k])h[k].hasOwnProperty(n)&&h[k][n].recovery_contanier&&h[k][n].element&&h[k][n].recovery_contanier.append(h[k][n].element);delete h[k]}break;case"removeClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).removeClass(l[m]);break;case"addClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).addClass(l[m]);break;case"setValue":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&void 0!==l[m]&&null!==l[m]&&(console.log(l[m]),a(m).val(l[m]))}}}},this.executeEvents(this.$result)};a.fn.factoryBootstrap426_checkboxControl=function(c){if("string"==typeof c){var d=a(this).data("factory.checkbox.control");return d?d[c]():null}return this.each(function(){var c=a(this),d=c.data("factory.checkbox.control");d||c.data("factory.checkbox.control",d=new b(this))})},a.fn.factoryBootstrap426_checkboxControl.Constructor=b,a(function(){a(".factory-bootstrap-426 .factory-checkbox.factory-buttons-way").factoryBootstrap426_checkboxControl()})}(jQuery);
|
libs/factory/bootstrap/assets/js-min/control.dropdown.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name")||this.$element.attr("name"),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){void 0!==window.factory_dropdown_control_events_data&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.val(),f=window.factory_dropdown_control_events_data[d];if(f&&f[e]){var g;void 0===window.__factory_dropdown_control_detach_elements&&(window.__factory_dropdown_control_detach_elements={}),g=window.__factory_dropdown_control_detach_elements;for(var h in f[e])if(f[e].hasOwnProperty(h)){var i,j=f[e][h];switch(a.isArray(j)||(i=c.hashCode(d+j)),h){case"hide":"string"==typeof j&&a(j).hide(0);break;case"show":"string"==typeof j&&a(j).fadeIn(200);break;case"detach":"string"==typeof j&&a(j).each(function(b){g[i]||(g[i]={}),g[i][b]||(g[i][b]={}),g[i][b].recovery_contanier=a(this).parent(),g[i][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(g[i]){for(var k in g[i])g[i].hasOwnProperty(k)&&g[i][k].recovery_contanier&&g[i][k].element&&g[i][k].recovery_contanier.append(g[i][k].element);delete g[i]}break;case"removeClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).removeClass(j[l]);break;case"addClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).addClass(j[l])}}}},"buttons"===this.way)this.$result=this.$element.find(".factory-result"),this.$hints=this.$element.find(".factory-hints"),this.$buttons=this.$element.find(".btn"),c.executeEvents(this.$result),this.$buttons.click(function(){var b=a(this).data("value");return c.$buttons.removeClass("active"),a(this).addClass("active"),c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+b).fadeIn(),c.$result.val(b),c.$result.trigger("change"),!1});else if("ddslick"===this.way){c.executeEvents(c.$element.find(".factory-result"));var d=window["factory_"+this.name+"_data"],e=this.$element.find(".factory-ddslick"),f=this.$element.data("width")||300,g=this.$element.data("align")||"right";a(d).each(function(){return this.imageHoverSrc?void(a("<img/>")[0].src=this.imageHoverSrc):!0}),e.ddslick({data:d,width:f,imagePosition:g,selectText:"- select -",onSelected:function(a){a.selectedData.imageHoverSrc&&c.$element.find(".dd-selected-image").attr("src",a.selectedData.imageHoverSrc);var b=c.$element.find(".factory-result").val(a.selectedData.value);b.change()}})}else{c.executeEvents(this.$element),this.$hints=this.$element.next(),this.$hints.hasClass("factory-hints")&&(this.$element.change(function(){return c.updateHints(),!1}),this.updateHints=function(){var a=c.$element.val();c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+a).show()},c.updateHints()),this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(a){console&&console.log&&console.log(a.responseText),c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length)for(var d in a){var e=a[d];c.addListItem(e)}else this.$element.append("<option>"+b.emptyList+"</li>");this.$element.trigger("factory-loaded")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<option />").attr("value",b.value).text(b.title).appendTo(this.$element),e=c.getAjaxData();e.selected&&e.selected==b.value&&d.attr("selected","selected")},this.showError=function(b){this.clearList();var d=a("<div class='factory-control-error'></div>").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),e=c.getAjaxData();this.$element.append("<option>"+e.emptyList+"</li>"),this.$element.after(d),this.$element.addClass("factory-has-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var h=this.$element.data("ajax");h&&this.loadData()}};a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name")||this.$element.attr("name"),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){void 0!==window.factory_dropdown_control_events_data&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.val(),f=window.factory_dropdown_control_events_data[d];if(f&&f[e]){var g;void 0===window.__factory_dropdown_control_detach_elements&&(window.__factory_dropdown_control_detach_elements={}),g=window.__factory_dropdown_control_detach_elements;for(var h in f[e])if(f[e].hasOwnProperty(h)){var i,j=f[e][h];switch(a.isArray(j)||(i=c.hashCode(d+j)),h){case"hide":"string"==typeof j&&a(j).hide(0);break;case"show":"string"==typeof j&&a(j).fadeIn(200);break;case"detach":"string"==typeof j&&a(j).each(function(b){g[i]||(g[i]={}),g[i][b]||(g[i][b]={}),g[i][b].recovery_contanier=a(this).parent(),g[i][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(g[i]){for(var k in g[i])g[i].hasOwnProperty(k)&&g[i][k].recovery_contanier&&g[i][k].element&&g[i][k].recovery_contanier.append(g[i][k].element);delete g[i]}break;case"removeClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).removeClass(j[l]);break;case"addClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).addClass(j[l])}}}},"buttons"===this.way)this.$result=this.$element.find(".factory-result"),this.$hints=this.$element.find(".factory-hints"),this.$buttons=this.$element.find(".btn"),c.executeEvents(this.$result),this.$buttons.click(function(){var b=a(this).data("value");return c.$buttons.removeClass("active"),a(this).addClass("active"),c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+b).fadeIn(),c.$result.val(b),c.$result.trigger("change"),!1});else if("ddslick"===this.way){c.executeEvents(c.$element.find(".factory-result"));var d=window["factory_"+this.name+"_data"],e=this.$element.find(".factory-ddslick"),f=this.$element.data("width")||300,g=this.$element.data("align")||"right";a(d).each(function(){return this.imageHoverSrc?void(a("<img/>")[0].src=this.imageHoverSrc):!0}),e.ddslick({data:d,width:f,imagePosition:g,selectText:"- select -",onSelected:function(a){a.selectedData.imageHoverSrc&&c.$element.find(".dd-selected-image").attr("src",a.selectedData.imageHoverSrc);var b=c.$element.find(".factory-result").val(a.selectedData.value);b.change()}})}else{c.executeEvents(this.$element),this.$hints=this.$element.next(),this.$hints.hasClass("factory-hints")&&(this.$element.change(function(){return c.updateHints(),!1}),this.updateHints=function(){var a=c.$element.val();c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+a).show()},c.updateHints()),this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(a){console&&console.log&&console.log(a.responseText),c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length)for(var d in a){var e=a[d];c.addListItem(e)}else this.$element.append("<option>"+b.emptyList+"</li>");this.$element.trigger("factory-loaded")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<option />").attr("value",b.value).text(b.title).appendTo(this.$element),e=c.getAjaxData();e.selected&&e.selected==b.value&&d.attr("selected","selected")},this.showError=function(b){this.clearList();var d=a("<div class='factory-control-error'></div>").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),e=c.getAjaxData();this.$element.append("<option>"+e.emptyList+"</li>"),this.$element.after(d),this.$element.addClass("factory-has-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var h=this.$element.data("ajax");h&&this.loadData()}};a.fn.factoryBootstrap426_dropdownControl=function(c){if("string"==typeof c){var d=a(this).data("factory.dropdown.control");return d?d[c]():null}return this.each(function(){var c=a(this),d=c.data("factory.dropdown.control");d||c.data("factory.dropdown.control",d=new b(this))})},a.fn.factoryBootstrap426_dropdownControl.Constructor=b,a(function(){a(".factory-bootstrap-426 .factory-dropdown").factoryBootstrap426_dropdownControl()})}(jQuery);
|
libs/factory/bootstrap/assets/js-min/control.list.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name"),"checklist"===this.way){this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(){c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length){this.$element.removeClass("factory-empty");for(var d in a){var e=a[d];c.addListItem(e)}}else this.$element.addClass("factory-empty"),this.$element.append("<li>"+b.emptyList+"</li>")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<li>"),e=a("<label>").attr("for","factory-checklist-"+c.name+"-"+b.value).appendTo(d),f=a("<span>").appendTo(e),g=a("<input />").attr("type","checkbox").attr("name",c.name+"[]").val(b.value).attr("id","factory-checklist-"+c.name+"-"+b.value).appendTo(f),h=(a("<span>"+b.title+"</span>").appendTo(e),c.getAjaxData());h.selected.length&&a.inArray(b.value,h.selected)>=0&&g.attr("checked","checked"),this.$element.append(d)},this.showError=function(b){this.$element.html("").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),this.$element.addClass("factory-list-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var d=this.$element.data("ajax");d&&this.loadData()}};a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name"),"checklist"===this.way){this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(){c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length){this.$element.removeClass("factory-empty");for(var d in a){var e=a[d];c.addListItem(e)}}else this.$element.addClass("factory-empty"),this.$element.append("<li>"+b.emptyList+"</li>")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<li>"),e=a("<label>").attr("for","factory-checklist-"+c.name+"-"+b.value).appendTo(d),f=a("<span>").appendTo(e),g=a("<input />").attr("type","checkbox").attr("name",c.name+"[]").val(b.value).attr("id","factory-checklist-"+c.name+"-"+b.value).appendTo(f),h=(a("<span>"+b.title+"</span>").appendTo(e),c.getAjaxData());h.selected.length&&a.inArray(b.value,h.selected)>=0&&g.attr("checked","checked"),this.$element.append(d)},this.showError=function(b){this.$element.html("").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),this.$element.addClass("factory-list-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var d=this.$element.data("ajax");d&&this.loadData()}};a.fn.factoryBootstrap426_listControl=function(c){if("string"==typeof c){var d=a(this).data("factory.list.control");return d?d[c]():null}return this.each(function(){var c=a(this),d=c.data("factory.list.control");d||c.data("factory.list.control",d=new b(this))})},a.fn.factoryBootstrap426_listControl.Constructor=b,a(function(){a(".factory-bootstrap-426 .factory-list").factoryBootstrap426_listControl()})}(jQuery);
|
libs/factory/bootstrap/assets/js-min/control.multiple-textbox.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){"use strict";var b=function(b){this.$element=a(b);var c=a(".factory-mtextbox-item",this.$element).eq(0).clone(!0);a(".factory-mtextbox-add-item",this.$element).on("click",function(){var b=a(this).closest(".factory-multiple-textbox-group").find(".factory-mtextbox-items"),d=c.clone(!0),e=a('<button class="btn btn-default btn-small factory-mtextbox-remove-item"><i class="fa fa-times" aria-hidden="true"></i></button>');return b.append(d.append(e)),d.find('input[type="text"]').val("").focus(),!1}),a(document).on("click",".factory-mtextbox-remove-item",function(){return a(this).closest(".factory-mtextbox-item").remove(),!1})};a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){"use strict";var b=function(b){this.$element=a(b);var c=a(".factory-mtextbox-item",this.$element).eq(0).clone(!0);a(".factory-mtextbox-add-item",this.$element).on("click",function(){var b=a(this).closest(".factory-multiple-textbox-group").find(".factory-mtextbox-items"),d=c.clone(!0),e=a('<button class="btn btn-default btn-small factory-mtextbox-remove-item"><i class="fa fa-times" aria-hidden="true"></i></button>');return b.append(d.append(e)),d.find('input[type="text"]').val("").focus(),!1}),a(document).on("click",".factory-mtextbox-remove-item",function(){return a(this).closest(".factory-mtextbox-item").remove(),!1})};a.fn.factoryBootstrap426_MultipleTextboxControl=function(){return this.each(function(){new b(this)})},a(function(){a(".factory-bootstrap-426 .factory-multiple-textbox-group").factoryBootstrap426_MultipleTextboxControl()})}(jQuery);
|
libs/factory/bootstrap/boot.php
CHANGED
@@ -19,27 +19,27 @@ if ( ! is_admin() ) {
|
|
19 |
return;
|
20 |
}
|
21 |
|
22 |
-
if ( defined( '
|
23 |
return;
|
24 |
}
|
25 |
|
26 |
-
define( '
|
27 |
-
define( '
|
28 |
|
29 |
if ( ! defined( 'FACTORY_FLAT_ADMIN' ) ) {
|
30 |
define( 'FACTORY_FLAT_ADMIN', true );
|
31 |
}
|
32 |
|
33 |
-
define( '
|
34 |
-
define( '
|
35 |
|
36 |
-
require_once(
|
37 |
|
38 |
/**
|
39 |
-
* @param
|
40 |
*/
|
41 |
-
add_action( '
|
42 |
-
$manager = new
|
43 |
$plugin->setBootstap( $manager );
|
44 |
} );
|
45 |
|
19 |
return;
|
20 |
}
|
21 |
|
22 |
+
if ( defined( 'FACTORY_BOOTSTRAP_426_LOADED' ) ) {
|
23 |
return;
|
24 |
}
|
25 |
|
26 |
+
define( 'FACTORY_BOOTSTRAP_426_VERSION', '4.2.6' );
|
27 |
+
define( 'FACTORY_BOOTSTRAP_426_LOADED', true );
|
28 |
|
29 |
if ( ! defined( 'FACTORY_FLAT_ADMIN' ) ) {
|
30 |
define( 'FACTORY_FLAT_ADMIN', true );
|
31 |
}
|
32 |
|
33 |
+
define( 'FACTORY_BOOTSTRAP_426_DIR', dirname( __FILE__ ) );
|
34 |
+
define( 'FACTORY_BOOTSTRAP_426_URL', plugins_url( null, __FILE__ ) );
|
35 |
|
36 |
+
require_once( FACTORY_BOOTSTRAP_426_DIR . '/includes/functions.php' );
|
37 |
|
38 |
/**
|
39 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
40 |
*/
|
41 |
+
add_action( 'wbcr_factory_bootstrap_426_plugin_created', function ( $plugin ) {
|
42 |
+
$manager = new Wbcr_FactoryBootstrap426_Manager( $plugin );
|
43 |
$plugin->setBootstap( $manager );
|
44 |
} );
|
45 |
|
libs/factory/bootstrap/includes/functions.php
CHANGED
@@ -20,13 +20,13 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
20 |
*
|
21 |
* @since 3.2.0
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
/**
|
26 |
* A plugin for which the manager was created.
|
27 |
*
|
28 |
* @since 3.2.0
|
29 |
-
* @var
|
30 |
*/
|
31 |
public $plugin;
|
32 |
|
@@ -51,7 +51,7 @@ class Wbcr_FactoryBootstrap425_Manager {
|
|
51 |
*
|
52 |
* @since 1.0.0
|
53 |
*/
|
54 |
-
public function __construct(
|
55 |
$this->plugin = $plugin;
|
56 |
|
57 |
add_action( 'admin_enqueue_scripts', [ $this, 'loadAssets' ] );
|
@@ -111,8 +111,8 @@ class Wbcr_FactoryBootstrap425_Manager {
|
|
111 |
*/
|
112 |
public function loadAssets( $hook ) {
|
113 |
|
114 |
-
do_action( '
|
115 |
-
do_action( '
|
116 |
|
117 |
$dependencies = [];
|
118 |
if ( ! empty( $this->scripts ) ) {
|
@@ -156,8 +156,8 @@ class Wbcr_FactoryBootstrap425_Manager {
|
|
156 |
$cache_enable = apply_filters( 'wbcr/factory/bootstrap/cache_enable', true );
|
157 |
|
158 |
$cache_id = md5( implode( ',', $this->scripts ) . $type . $this->plugin->getPluginVersion() );
|
159 |
-
$cache_dir_path =
|
160 |
-
$cache_dir_url =
|
161 |
|
162 |
$cache_filepath = $cache_dir_path . $cache_id . ".min." . $type;
|
163 |
$cache_fileurl = $cache_dir_url . $cache_id . ".min." . $type;
|
@@ -184,7 +184,7 @@ class Wbcr_FactoryBootstrap425_Manager {
|
|
184 |
foreach ( $scripts as $script_to_load ) {
|
185 |
$script_to_load = sanitize_text_field( $script_to_load );
|
186 |
if ( $cache_enable && $cache_dir_exists ) {
|
187 |
-
$fname =
|
188 |
if ( file_exists( $fname ) ) {
|
189 |
$f = @fopen( $fname, 'r' );
|
190 |
$concat_files[] = @fread( $f, filesize( $fname ) );
|
@@ -192,9 +192,9 @@ class Wbcr_FactoryBootstrap425_Manager {
|
|
192 |
}
|
193 |
} else {
|
194 |
if ( $type == 'js' ) {
|
195 |
-
wp_enqueue_script( md5( $script_to_load ),
|
196 |
} else {
|
197 |
-
wp_enqueue_style( md5( $script_to_load ),
|
198 |
}
|
199 |
$is_first = false;
|
200 |
}
|
20 |
*
|
21 |
* @since 3.2.0
|
22 |
*/
|
23 |
+
class Wbcr_FactoryBootstrap426_Manager {
|
24 |
|
25 |
/**
|
26 |
* A plugin for which the manager was created.
|
27 |
*
|
28 |
* @since 3.2.0
|
29 |
+
* @var Wbcr_Factory425_Plugin
|
30 |
*/
|
31 |
public $plugin;
|
32 |
|
51 |
*
|
52 |
* @since 1.0.0
|
53 |
*/
|
54 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
55 |
$this->plugin = $plugin;
|
56 |
|
57 |
add_action( 'admin_enqueue_scripts', [ $this, 'loadAssets' ] );
|
111 |
*/
|
112 |
public function loadAssets( $hook ) {
|
113 |
|
114 |
+
do_action( 'wbcr_factory_425_bootstrap_enqueue_scripts', $hook );
|
115 |
+
do_action( 'wbcr_factory_425_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), $hook );
|
116 |
|
117 |
$dependencies = [];
|
118 |
if ( ! empty( $this->scripts ) ) {
|
156 |
$cache_enable = apply_filters( 'wbcr/factory/bootstrap/cache_enable', true );
|
157 |
|
158 |
$cache_id = md5( implode( ',', $this->scripts ) . $type . $this->plugin->getPluginVersion() );
|
159 |
+
$cache_dir_path = FACTORY_BOOTSTRAP_426_DIR . '/assets/cache/';
|
160 |
+
$cache_dir_url = FACTORY_BOOTSTRAP_426_URL . '/assets/cache/';
|
161 |
|
162 |
$cache_filepath = $cache_dir_path . $cache_id . ".min." . $type;
|
163 |
$cache_fileurl = $cache_dir_url . $cache_id . ".min." . $type;
|
184 |
foreach ( $scripts as $script_to_load ) {
|
185 |
$script_to_load = sanitize_text_field( $script_to_load );
|
186 |
if ( $cache_enable && $cache_dir_exists ) {
|
187 |
+
$fname = FACTORY_BOOTSTRAP_426_DIR . "/assets/$type-min/$script_to_load.min." . $type;
|
188 |
if ( file_exists( $fname ) ) {
|
189 |
$f = @fopen( $fname, 'r' );
|
190 |
$concat_files[] = @fread( $f, filesize( $fname ) );
|
192 |
}
|
193 |
} else {
|
194 |
if ( $type == 'js' ) {
|
195 |
+
wp_enqueue_script( md5( $script_to_load ), FACTORY_BOOTSTRAP_426_URL . "/assets/$type-min/$script_to_load.min." . $type, $is_first ? $dependencies : false, $this->plugin->getPluginVersion() );
|
196 |
} else {
|
197 |
+
wp_enqueue_style( md5( $script_to_load ), FACTORY_BOOTSTRAP_426_URL . "/assets/$type-min/$script_to_load.min." . $type, [], $this->plugin->getPluginVersion() );
|
198 |
}
|
199 |
$is_first = false;
|
200 |
}
|
libs/factory/clearfy/assets/css/clearfy-base.css
CHANGED
@@ -1,181 +1,181 @@
|
|
1 |
-
/**
|
2 |
-
* Базовые стили для всех копомпонентов Clearfy
|
3 |
-
|
4 |
-
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
5 |
-
* @copyright Webcraftic 06.10.2018
|
6 |
-
* @sicne 2.0.5
|
7 |
-
*/
|
8 |
-
#WBCR .wbcr-factory-pages-
|
9 |
-
padding: 30px 80px;
|
10 |
-
}
|
11 |
-
#WBCR .wbcr-factory-pages-
|
12 |
-
margin: 0 0 20px;
|
13 |
-
}
|
14 |
-
#WBCR .wbcr-factory-pages-
|
15 |
-
border: 2px dashed #8bc34a;
|
16 |
-
background: #fff;
|
17 |
-
padding: 20px;
|
18 |
-
}
|
19 |
-
#WBCR .wbcr-factory-pages-
|
20 |
-
display: inline-block;
|
21 |
-
cursor: pointer;
|
22 |
-
line-height: 16px;
|
23 |
-
font-size: 13px;
|
24 |
-
font-weight: 600;
|
25 |
-
padding: 12px 20px;
|
26 |
-
text-align: center;
|
27 |
-
text-decoration: none;
|
28 |
-
text-transform: uppercase;
|
29 |
-
border-radius: 2px;
|
30 |
-
-moz-border-radius: 2px;
|
31 |
-
-webkit-border-radius: 2px;
|
32 |
-
color: #353535;
|
33 |
-
background: #e8e8e8;
|
34 |
-
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
35 |
-
-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
36 |
-
-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
37 |
-
}
|
38 |
-
#WBCR .wbcr-factory-pages-
|
39 |
-
box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
40 |
-
-moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
41 |
-
-webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
42 |
-
}
|
43 |
-
#WBCR .wbcr-factory-pages-
|
44 |
-
outline: none;
|
45 |
-
border: 0;
|
46 |
-
}
|
47 |
-
#WBCR .wbcr-factory-pages-
|
48 |
-
display: inline-block;
|
49 |
-
cursor: pointer;
|
50 |
-
line-height: 16px;
|
51 |
-
font-size: 13px;
|
52 |
-
font-weight: 600;
|
53 |
-
padding: 12px 20px;
|
54 |
-
text-align: center;
|
55 |
-
text-decoration: none;
|
56 |
-
text-transform: uppercase;
|
57 |
-
border-radius: 2px;
|
58 |
-
-moz-border-radius: 2px;
|
59 |
-
-webkit-border-radius: 2px;
|
60 |
-
color: #755c0e;
|
61 |
-
background: #fdd868;
|
62 |
-
box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
|
63 |
-
-moz-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
|
64 |
-
-webkit-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
|
65 |
-
}
|
66 |
-
#WBCR .wbcr-factory-pages-
|
67 |
-
box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
|
68 |
-
-moz-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
|
69 |
-
-webkit-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
|
70 |
-
}
|
71 |
-
#WBCR .wbcr-factory-pages-
|
72 |
-
outline: none;
|
73 |
-
border: 0;
|
74 |
-
}
|
75 |
-
#WBCR .wbcr-factory-pages-
|
76 |
-
background: #fff;
|
77 |
-
color: #353535;
|
78 |
-
font-weight: 600;
|
79 |
-
border: 2px dashed #8bc34a;
|
80 |
-
}
|
81 |
-
#WBCR .wbcr-factory-pages-
|
82 |
-
margin: 0 0 20px;
|
83 |
-
padding: 10px 0;
|
84 |
-
text-align: center;
|
85 |
-
border-bottom: 2px solid #e6e6e6;
|
86 |
-
color: #636363;
|
87 |
-
font-size: 17px;
|
88 |
-
font-weight: 600;
|
89 |
-
vertical-align: middle;
|
90 |
-
text-transform: uppercase;
|
91 |
-
}
|
92 |
-
#WBCR .wbcr-factory-pages-
|
93 |
-
position: relative;
|
94 |
-
margin-bottom: 20px;
|
95 |
-
}
|
96 |
-
#WBCR .wbcr-factory-pages-
|
97 |
-
font-size: 15px;
|
98 |
-
padding: 7px;
|
99 |
-
padding-left: 20px;
|
100 |
-
}
|
101 |
-
#WBCR .wbcr-factory-pages-
|
102 |
-
content: " ";
|
103 |
-
display: inline-block;
|
104 |
-
width: 0.4em;
|
105 |
-
height: 0.7em;
|
106 |
-
border: solid #8bc34a;
|
107 |
-
border-width: 0 0.2em 0.2em 0;
|
108 |
-
left: 0;
|
109 |
-
margin-right: 10px;
|
110 |
-
-webkit-transform: rotate(45deg);
|
111 |
-
-moz-transform: rotate(45deg);
|
112 |
-
-o-transform: rotate(45deg);
|
113 |
-
transform: rotate(45deg);
|
114 |
-
}
|
115 |
-
#WBCR .wbcr-factory-pages-
|
116 |
-
display: block;
|
117 |
-
cursor: pointer;
|
118 |
-
line-height: 16px;
|
119 |
-
font-size: 13px;
|
120 |
-
font-weight: 600;
|
121 |
-
padding: 12px 20px;
|
122 |
-
text-align: center;
|
123 |
-
text-decoration: none;
|
124 |
-
text-transform: uppercase;
|
125 |
-
border-radius: 2px;
|
126 |
-
-moz-border-radius: 2px;
|
127 |
-
-webkit-border-radius: 2px;
|
128 |
-
color: #353535;
|
129 |
-
background: #e8e8e8;
|
130 |
-
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
131 |
-
-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
132 |
-
-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
133 |
-
}
|
134 |
-
#WBCR .wbcr-factory-pages-
|
135 |
-
box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
136 |
-
-moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
137 |
-
-webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
138 |
-
}
|
139 |
-
#WBCR .wbcr-factory-pages-
|
140 |
-
outline: none;
|
141 |
-
border: 0;
|
142 |
-
}
|
143 |
-
@media screen and (max-width: 1550px) {
|
144 |
-
#WBCR .wbcr-factory-pages-
|
145 |
-
padding: 10px 80px;
|
146 |
-
}
|
147 |
-
#WBCR .wbcr-factory-pages-
|
148 |
-
padding: 10px;
|
149 |
-
}
|
150 |
-
#WBCR .wbcr-factory-pages-
|
151 |
-
margin: 0 0 20px;
|
152 |
-
padding: 10px 0;
|
153 |
-
font-size: 13px;
|
154 |
-
font-weight: 600;
|
155 |
-
}
|
156 |
-
#WBCR .wbcr-factory-pages-
|
157 |
-
margin-bottom: 20px;
|
158 |
-
}
|
159 |
-
#WBCR .wbcr-factory-pages-
|
160 |
-
font-size: 13px;
|
161 |
-
padding: 2px;
|
162 |
-
padding-left: 10px;
|
163 |
-
}
|
164 |
-
#WBCR .wbcr-factory-pages-
|
165 |
-
width: 0.4em;
|
166 |
-
height: 0.7em;
|
167 |
-
border-width: 0 0.2em 0.2em 0;
|
168 |
-
left: 0;
|
169 |
-
margin-right: 10px;
|
170 |
-
}
|
171 |
-
#WBCR .wbcr-factory-pages-
|
172 |
-
font-weight: 700;
|
173 |
-
line-height: 16px;
|
174 |
-
font-size: 12px;
|
175 |
-
padding: 8px 12px;
|
176 |
-
border-radius: 2px;
|
177 |
-
-moz-border-radius: 2px;
|
178 |
-
-webkit-border-radius: 2px;
|
179 |
-
}
|
180 |
-
}
|
181 |
/*# sourceMappingURL=clearfy-base.css.map */
|
1 |
+
/**
|
2 |
+
* Базовые стили для всех копомпонентов Clearfy
|
3 |
+
|
4 |
+
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
5 |
+
* @copyright Webcraftic 06.10.2018
|
6 |
+
* @sicne 2.0.5
|
7 |
+
*/
|
8 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-suggetion {
|
9 |
+
padding: 30px 80px;
|
10 |
+
}
|
11 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-suggetion h3 {
|
12 |
+
margin: 0 0 20px;
|
13 |
+
}
|
14 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-suggetion .wbcr-factory-inner-contanier {
|
15 |
+
border: 2px dashed #8bc34a;
|
16 |
+
background: #fff;
|
17 |
+
padding: 20px;
|
18 |
+
}
|
19 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-suggetion .wbcr-factory-activate-premium {
|
20 |
+
display: inline-block;
|
21 |
+
cursor: pointer;
|
22 |
+
line-height: 16px;
|
23 |
+
font-size: 13px;
|
24 |
+
font-weight: 600;
|
25 |
+
padding: 12px 20px;
|
26 |
+
text-align: center;
|
27 |
+
text-decoration: none;
|
28 |
+
text-transform: uppercase;
|
29 |
+
border-radius: 2px;
|
30 |
+
-moz-border-radius: 2px;
|
31 |
+
-webkit-border-radius: 2px;
|
32 |
+
color: #353535;
|
33 |
+
background: #e8e8e8;
|
34 |
+
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
35 |
+
-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
36 |
+
-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
37 |
+
}
|
38 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-suggetion .wbcr-factory-activate-premium:active {
|
39 |
+
box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
40 |
+
-moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
41 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
42 |
+
}
|
43 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-suggetion .wbcr-factory-activate-premium:focus {
|
44 |
+
outline: none;
|
45 |
+
border: 0;
|
46 |
+
}
|
47 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-suggetion .wbcr-factory-purchase-premium {
|
48 |
+
display: inline-block;
|
49 |
+
cursor: pointer;
|
50 |
+
line-height: 16px;
|
51 |
+
font-size: 13px;
|
52 |
+
font-weight: 600;
|
53 |
+
padding: 12px 20px;
|
54 |
+
text-align: center;
|
55 |
+
text-decoration: none;
|
56 |
+
text-transform: uppercase;
|
57 |
+
border-radius: 2px;
|
58 |
+
-moz-border-radius: 2px;
|
59 |
+
-webkit-border-radius: 2px;
|
60 |
+
color: #755c0e;
|
61 |
+
background: #fdd868;
|
62 |
+
box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
|
63 |
+
-moz-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
|
64 |
+
-webkit-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
|
65 |
+
}
|
66 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-suggetion .wbcr-factory-purchase-premium:active {
|
67 |
+
box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
|
68 |
+
-moz-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
|
69 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
|
70 |
+
}
|
71 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-suggetion .wbcr-factory-purchase-premium:focus {
|
72 |
+
outline: none;
|
73 |
+
border: 0;
|
74 |
+
}
|
75 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion {
|
76 |
+
background: #fff;
|
77 |
+
color: #353535;
|
78 |
+
font-weight: 600;
|
79 |
+
border: 2px dashed #8bc34a;
|
80 |
+
}
|
81 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion h3 {
|
82 |
+
margin: 0 0 20px;
|
83 |
+
padding: 10px 0;
|
84 |
+
text-align: center;
|
85 |
+
border-bottom: 2px solid #e6e6e6;
|
86 |
+
color: #636363;
|
87 |
+
font-size: 17px;
|
88 |
+
font-weight: 600;
|
89 |
+
vertical-align: middle;
|
90 |
+
text-transform: uppercase;
|
91 |
+
}
|
92 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion ul {
|
93 |
+
position: relative;
|
94 |
+
margin-bottom: 20px;
|
95 |
+
}
|
96 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion ul li {
|
97 |
+
font-size: 15px;
|
98 |
+
padding: 7px;
|
99 |
+
padding-left: 20px;
|
100 |
+
}
|
101 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion ul li:before {
|
102 |
+
content: " ";
|
103 |
+
display: inline-block;
|
104 |
+
width: 0.4em;
|
105 |
+
height: 0.7em;
|
106 |
+
border: solid #8bc34a;
|
107 |
+
border-width: 0 0.2em 0.2em 0;
|
108 |
+
left: 0;
|
109 |
+
margin-right: 10px;
|
110 |
+
-webkit-transform: rotate(45deg);
|
111 |
+
-moz-transform: rotate(45deg);
|
112 |
+
-o-transform: rotate(45deg);
|
113 |
+
transform: rotate(45deg);
|
114 |
+
}
|
115 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion .wbcr-factory-purchase-premium {
|
116 |
+
display: block;
|
117 |
+
cursor: pointer;
|
118 |
+
line-height: 16px;
|
119 |
+
font-size: 13px;
|
120 |
+
font-weight: 600;
|
121 |
+
padding: 12px 20px;
|
122 |
+
text-align: center;
|
123 |
+
text-decoration: none;
|
124 |
+
text-transform: uppercase;
|
125 |
+
border-radius: 2px;
|
126 |
+
-moz-border-radius: 2px;
|
127 |
+
-webkit-border-radius: 2px;
|
128 |
+
color: #353535;
|
129 |
+
background: #e8e8e8;
|
130 |
+
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
131 |
+
-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
132 |
+
-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
|
133 |
+
}
|
134 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion .wbcr-factory-purchase-premium:active {
|
135 |
+
box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
136 |
+
-moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
137 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
|
138 |
+
}
|
139 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion .wbcr-factory-purchase-premium:focus {
|
140 |
+
outline: none;
|
141 |
+
border: 0;
|
142 |
+
}
|
143 |
+
@media screen and (max-width: 1550px) {
|
144 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-clearfy-217-multisite-pro-suggetion {
|
145 |
+
padding: 10px 80px;
|
146 |
+
}
|
147 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion {
|
148 |
+
padding: 10px;
|
149 |
+
}
|
150 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion h3 {
|
151 |
+
margin: 0 0 20px;
|
152 |
+
padding: 10px 0;
|
153 |
+
font-size: 13px;
|
154 |
+
font-weight: 600;
|
155 |
+
}
|
156 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion ul {
|
157 |
+
margin-bottom: 20px;
|
158 |
+
}
|
159 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion ul li {
|
160 |
+
font-size: 13px;
|
161 |
+
padding: 2px;
|
162 |
+
padding-left: 10px;
|
163 |
+
}
|
164 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion ul li:before {
|
165 |
+
width: 0.4em;
|
166 |
+
height: 0.7em;
|
167 |
+
border-width: 0 0.2em 0.2em 0;
|
168 |
+
left: 0;
|
169 |
+
margin-right: 10px;
|
170 |
+
}
|
171 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-217-pro-suggettion .wbcr-factory-purchase-premium {
|
172 |
+
font-weight: 700;
|
173 |
+
line-height: 16px;
|
174 |
+
font-size: 12px;
|
175 |
+
padding: 8px 12px;
|
176 |
+
border-radius: 2px;
|
177 |
+
-moz-border-radius: 2px;
|
178 |
+
-webkit-border-radius: 2px;
|
179 |
+
}
|
180 |
+
}
|
181 |
/*# sourceMappingURL=clearfy-base.css.map */
|
libs/factory/clearfy/assets/js/globals.js
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
* Глобальный JS файл, который регистрирует глобальные переменные с общими методами для всех компонентов Clearfy
|
3 |
* и самого Clearfy.
|
4 |
*
|
5 |
-
* $.
|
6 |
-
* $.
|
7 |
*
|
8 |
* Copyright 2018, Webcraftic, http://webcraftic.com
|
9 |
*
|
@@ -13,11 +13,11 @@
|
|
13 |
(function($) {
|
14 |
'use strict';
|
15 |
|
16 |
-
if( !$.
|
17 |
-
$.
|
18 |
}
|
19 |
|
20 |
-
$.
|
21 |
/**
|
22 |
* Создает и показывает уведомление внутри интерфейса Clearfy
|
23 |
*
|
@@ -63,12 +63,12 @@
|
|
63 |
/**
|
64 |
* Хук выполняет проивольную функцию, после того как уведомление отображено
|
65 |
* Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
|
66 |
-
* Пример регистрации хука $.
|
67 |
* function(noticeId) {});
|
68 |
* @param {string} noticeId - id уведомления
|
69 |
*/
|
70 |
-
$.
|
71 |
-
$.
|
72 |
});
|
73 |
|
74 |
return noticeId;
|
@@ -93,13 +93,13 @@
|
|
93 |
/**
|
94 |
* Хук выполняет проивольную функцию, после того как уведомление скрыто
|
95 |
* Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
|
96 |
-
* Пример регистрации хука $.
|
97 |
* function(noticeId)
|
98 |
* {});
|
99 |
* @param {string} noticeId - id уведомления
|
100 |
*/
|
101 |
-
$.
|
102 |
-
$.
|
103 |
});
|
104 |
},
|
105 |
|
@@ -116,7 +116,7 @@
|
|
116 |
|
117 |
};
|
118 |
|
119 |
-
$.
|
120 |
|
121 |
/**
|
122 |
* A set of registered filters.
|
@@ -183,20 +183,20 @@
|
|
183 |
}
|
184 |
};
|
185 |
|
186 |
-
$.
|
187 |
|
188 |
/**
|
189 |
* Applies filters to a given input value.
|
190 |
*/
|
191 |
run: function(filterName, args) {
|
192 |
-
$.
|
193 |
},
|
194 |
|
195 |
/**
|
196 |
* Registers a new filter.
|
197 |
*/
|
198 |
add: function(filterName, callback, priority) {
|
199 |
-
$.
|
200 |
}
|
201 |
};
|
202 |
|
2 |
* Глобальный JS файл, который регистрирует глобальные переменные с общими методами для всех компонентов Clearfy
|
3 |
* и самого Clearfy.
|
4 |
*
|
5 |
+
* $.wbcr_factory_clearfy_217.app - методы для работы с приложением. Скрыть, показать уведомления.
|
6 |
+
* $.wbcr_factory_clearfy_217.hooks - это иммитация хуков и фильтров аналогично тем, что используются в Wordpress
|
7 |
*
|
8 |
* Copyright 2018, Webcraftic, http://webcraftic.com
|
9 |
*
|
13 |
(function($) {
|
14 |
'use strict';
|
15 |
|
16 |
+
if( !$.wbcr_factory_clearfy_217 ) {
|
17 |
+
$.wbcr_factory_clearfy_217 = {};
|
18 |
}
|
19 |
|
20 |
+
$.wbcr_factory_clearfy_217.app = $.wbcr_factory_clearfy_217.app || {
|
21 |
/**
|
22 |
* Создает и показывает уведомление внутри интерфейса Clearfy
|
23 |
*
|
63 |
/**
|
64 |
* Хук выполняет проивольную функцию, после того как уведомление отображено
|
65 |
* Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
|
66 |
+
* Пример регистрации хука $.wbcr_factory_clearfy_217.hooks.add('wbcr/factory_clearfy_217/updated',
|
67 |
* function(noticeId) {});
|
68 |
* @param {string} noticeId - id уведомления
|
69 |
*/
|
70 |
+
$.wbcr_factory_clearfy_217.hooks.run('wbcr/factory_clearfy_217/showed_notice', [noticeId]);
|
71 |
+
$.wbcr_factory_clearfy_217.hooks.run('wbcr/clearfy/showed_notice', [noticeId]);
|
72 |
});
|
73 |
|
74 |
return noticeId;
|
93 |
/**
|
94 |
* Хук выполняет проивольную функцию, после того как уведомление скрыто
|
95 |
* Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
|
96 |
+
* Пример регистрации хука $.wbcr_factory_clearfy_217.hooks.add('wbcr/factory_clearfy_217/updated',
|
97 |
* function(noticeId)
|
98 |
* {});
|
99 |
* @param {string} noticeId - id уведомления
|
100 |
*/
|
101 |
+
$.wbcr_factory_clearfy_217.hooks.run('wbcr/factory_clearfy_217/hidded_notice', [noticeId]);
|
102 |
+
$.wbcr_factory_clearfy_217.hooks.run('wbcr/clearfy/hidded_notice', [noticeId]);
|
103 |
});
|
104 |
},
|
105 |
|
116 |
|
117 |
};
|
118 |
|
119 |
+
$.wbcr_factory_clearfy_217.filters = $.wbcr_factory_clearfy_217.filters || {
|
120 |
|
121 |
/**
|
122 |
* A set of registered filters.
|
183 |
}
|
184 |
};
|
185 |
|
186 |
+
$.wbcr_factory_clearfy_217.hooks = $.wbcr_factory_clearfy_217.hooks || {
|
187 |
|
188 |
/**
|
189 |
* Applies filters to a given input value.
|
190 |
*/
|
191 |
run: function(filterName, args) {
|
192 |
+
$.wbcr_factory_clearfy_217.filters.run(filterName, args);
|
193 |
},
|
194 |
|
195 |
/**
|
196 |
* Registers a new filter.
|
197 |
*/
|
198 |
add: function(filterName, callback, priority) {
|
199 |
+
$.wbcr_factory_clearfy_217.filters.add(filterName, callback, priority);
|
200 |
}
|
201 |
};
|
202 |
|
libs/factory/clearfy/assets/js/license-manager.js
CHANGED
@@ -20,7 +20,7 @@ jQuery(function($) {
|
|
20 |
licenseAction = $(this).data('action');
|
21 |
|
22 |
for( i = 0; i < allNotices.length; i++ ) {
|
23 |
-
$.
|
24 |
}
|
25 |
|
26 |
$('.wcl-control-btn').hide();
|
@@ -53,7 +53,7 @@ jQuery(function($) {
|
|
53 |
|
54 |
if( response.data ) {
|
55 |
console.log(response.data.error_message);
|
56 |
-
noticeId = $.
|
57 |
allNotices.push(noticeId);
|
58 |
} else {
|
59 |
console.log(response);
|
@@ -63,7 +63,7 @@ jQuery(function($) {
|
|
63 |
}
|
64 |
|
65 |
if( response.data && response.data.message ) {
|
66 |
-
noticeId = $.
|
67 |
allNotices.push(noticeId);
|
68 |
|
69 |
// todo: доработать генерацию формы, вместо перезагрузки страницы
|
@@ -80,7 +80,7 @@ jQuery(function($) {
|
|
80 |
console.log(xhr.responseText);
|
81 |
console.log(thrownError);
|
82 |
|
83 |
-
var noticeId = $.
|
84 |
|
85 |
allNotices.push(noticeId);
|
86 |
}
|
20 |
licenseAction = $(this).data('action');
|
21 |
|
22 |
for( i = 0; i < allNotices.length; i++ ) {
|
23 |
+
$.wbcr_factory_clearfy_217.app.hideNotice(allNotices[i]);
|
24 |
}
|
25 |
|
26 |
$('.wcl-control-btn').hide();
|
53 |
|
54 |
if( response.data ) {
|
55 |
console.log(response.data.error_message);
|
56 |
+
noticeId = $.wbcr_factory_clearfy_217.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
|
57 |
allNotices.push(noticeId);
|
58 |
} else {
|
59 |
console.log(response);
|
63 |
}
|
64 |
|
65 |
if( response.data && response.data.message ) {
|
66 |
+
noticeId = $.wbcr_factory_clearfy_217.app.showNotice(response.data.message, 'success');
|
67 |
allNotices.push(noticeId);
|
68 |
|
69 |
// todo: доработать генерацию формы, вместо перезагрузки страницы
|
80 |
console.log(xhr.responseText);
|
81 |
console.log(thrownError);
|
82 |
|
83 |
+
var noticeId = $.wbcr_factory_clearfy_217.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
|
84 |
|
85 |
allNotices.push(noticeId);
|
86 |
}
|
libs/factory/clearfy/boot.php
CHANGED
@@ -14,22 +14,22 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if ( defined( '
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
-
define( '
|
22 |
|
23 |
-
define( '
|
24 |
|
25 |
-
define( '
|
26 |
-
define( '
|
27 |
|
28 |
-
load_plugin_textdomain( '
|
29 |
|
30 |
-
require(
|
31 |
-
require(
|
32 |
-
require(
|
33 |
|
34 |
// module provides function only for the admin area
|
35 |
if ( is_admin() ) {
|
@@ -38,12 +38,12 @@ if ( is_admin() ) {
|
|
38 |
* на все страницы админпанели.
|
39 |
*/
|
40 |
add_action( 'admin_enqueue_scripts', function () {
|
41 |
-
wp_enqueue_script( 'wbcr-factory-clearfy-
|
42 |
} );
|
43 |
-
|
44 |
-
if ( defined( '
|
45 |
-
require(
|
46 |
-
require(
|
47 |
-
require(
|
48 |
}
|
49 |
}
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if ( defined( 'FACTORY_CLEARFY_217_LOADED' ) ) {
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
+
define( 'FACTORY_CLEARFY_217_LOADED', true );
|
22 |
|
23 |
+
define( 'FACTORY_CLEARFY_217', '2.1.7' );
|
24 |
|
25 |
+
define( 'FACTORY_CLEARFY_217_DIR', dirname( __FILE__ ) );
|
26 |
+
define( 'FACTORY_CLEARFY_217_URL', plugins_url( null, __FILE__ ) );
|
27 |
|
28 |
+
load_plugin_textdomain( 'wbcr_factory_clearfy_217', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
|
29 |
|
30 |
+
require( FACTORY_CLEARFY_217_DIR . '/includes/ajax-handlers.php' );
|
31 |
+
require( FACTORY_CLEARFY_217_DIR . '/includes/class-helpers.php' );
|
32 |
+
require( FACTORY_CLEARFY_217_DIR . '/includes/class-configurate.php' );
|
33 |
|
34 |
// module provides function only for the admin area
|
35 |
if ( is_admin() ) {
|
38 |
* на все страницы админпанели.
|
39 |
*/
|
40 |
add_action( 'admin_enqueue_scripts', function () {
|
41 |
+
wp_enqueue_script( 'wbcr-factory-clearfy-217-global', FACTORY_CLEARFY_217_URL . '/assets/js/globals.js', [ 'jquery' ], FACTORY_CLEARFY_217 );
|
42 |
} );
|
43 |
+
|
44 |
+
if ( defined( 'FACTORY_PAGES_425_LOADED' ) ) {
|
45 |
+
require( FACTORY_CLEARFY_217_DIR . '/pages/class-pages.php' );
|
46 |
+
require( FACTORY_CLEARFY_217_DIR . '/pages/class-page-more-features.php' );
|
47 |
+
require( FACTORY_CLEARFY_217_DIR . '/pages/class-page-license.php' );
|
48 |
}
|
49 |
}
|
libs/factory/clearfy/includes/ajax-handlers.php
CHANGED
@@ -17,10 +17,10 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
17 |
*
|
18 |
* @since 2.0.7
|
19 |
*
|
20 |
-
* @param
|
21 |
*
|
22 |
*/
|
23 |
-
function
|
24 |
|
25 |
$plugin_name = $plugin_instance->request->post( 'plugin_name', null, true );
|
26 |
|
@@ -34,7 +34,7 @@ function wbcr_factory_clearfy_216_check_license( $plugin_instance ) {
|
|
34 |
check_admin_referer( "clearfy_activate_license_for_{$plugin_name}" );
|
35 |
|
36 |
if ( empty( $action ) || ! in_array( $action, [ 'activate', 'deactivate', 'sync', 'unsubscribe' ] ) ) {
|
37 |
-
wp_send_json_error( [ 'error_message' => __( 'Licensing action not passed or this action is prohibited!', '
|
38 |
die();
|
39 |
}
|
40 |
|
@@ -45,23 +45,23 @@ function wbcr_factory_clearfy_216_check_license( $plugin_instance ) {
|
|
45 |
switch ( $action ) {
|
46 |
case 'activate':
|
47 |
if ( empty( $license_key ) || strlen( $license_key ) > 32 ) {
|
48 |
-
wp_send_json_error( [ 'error_message' => __( 'License key is empty or license key too long (license key is 32 characters long)', '
|
49 |
} else {
|
50 |
$plugin_instance->premium->activate( $license_key );
|
51 |
-
$success_message = __( 'Your license has been successfully activated', '
|
52 |
}
|
53 |
break;
|
54 |
case 'deactivate':
|
55 |
$plugin_instance->premium->deactivate();
|
56 |
-
$success_message = __( 'The license is deactivated', '
|
57 |
break;
|
58 |
case 'sync':
|
59 |
$plugin_instance->premium->sync();
|
60 |
-
$success_message = __( 'The license has been updated', '
|
61 |
break;
|
62 |
case 'unsubscribe':
|
63 |
$plugin_instance->premium->cancel_paid_subscription();
|
64 |
-
$success_message = __( 'Subscription success cancelled', '
|
65 |
break;
|
66 |
}
|
67 |
} catch( Exception $e ) {
|
17 |
*
|
18 |
* @since 2.0.7
|
19 |
*
|
20 |
+
* @param Wbcr_Factory425_Plugin $plugin_instance
|
21 |
*
|
22 |
*/
|
23 |
+
function wbcr_factory_clearfy_217_check_license( $plugin_instance ) {
|
24 |
|
25 |
$plugin_name = $plugin_instance->request->post( 'plugin_name', null, true );
|
26 |
|
34 |
check_admin_referer( "clearfy_activate_license_for_{$plugin_name}" );
|
35 |
|
36 |
if ( empty( $action ) || ! in_array( $action, [ 'activate', 'deactivate', 'sync', 'unsubscribe' ] ) ) {
|
37 |
+
wp_send_json_error( [ 'error_message' => __( 'Licensing action not passed or this action is prohibited!', 'wbcr_factory_clearfy_217' ) ] );
|
38 |
die();
|
39 |
}
|
40 |
|
45 |
switch ( $action ) {
|
46 |
case 'activate':
|
47 |
if ( empty( $license_key ) || strlen( $license_key ) > 32 ) {
|
48 |
+
wp_send_json_error( [ 'error_message' => __( 'License key is empty or license key too long (license key is 32 characters long)', 'wbcr_factory_clearfy_217' ) ] );
|
49 |
} else {
|
50 |
$plugin_instance->premium->activate( $license_key );
|
51 |
+
$success_message = __( 'Your license has been successfully activated', 'wbcr_factory_clearfy_217' );
|
52 |
}
|
53 |
break;
|
54 |
case 'deactivate':
|
55 |
$plugin_instance->premium->deactivate();
|
56 |
+
$success_message = __( 'The license is deactivated', 'wbcr_factory_clearfy_217' );
|
57 |
break;
|
58 |
case 'sync':
|
59 |
$plugin_instance->premium->sync();
|
60 |
+
$success_message = __( 'The license has been updated', 'wbcr_factory_clearfy_217' );
|
61 |
break;
|
62 |
case 'unsubscribe':
|
63 |
$plugin_instance->premium->cancel_paid_subscription();
|
64 |
+
$success_message = __( 'Subscription success cancelled', 'wbcr_factory_clearfy_217' );
|
65 |
break;
|
66 |
}
|
67 |
} catch( Exception $e ) {
|
libs/factory/clearfy/includes/class-configurate.php
CHANGED
@@ -13,12 +13,12 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
13 |
* @copyright (c) 2018, Webcraftic Ltd
|
14 |
*
|
15 |
*/
|
16 |
-
abstract class
|
17 |
|
18 |
/**
|
19 |
-
* @param
|
20 |
*/
|
21 |
-
public function __construct(
|
22 |
$this->plugin = $plugin;
|
23 |
$this->registerActionsAndFilters();
|
24 |
}
|
13 |
* @copyright (c) 2018, Webcraftic Ltd
|
14 |
*
|
15 |
*/
|
16 |
+
abstract class Wbcr_FactoryClearfy217_Configurate {
|
17 |
|
18 |
/**
|
19 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
20 |
*/
|
21 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
22 |
$this->plugin = $plugin;
|
23 |
$this->registerActionsAndFilters();
|
24 |
}
|
libs/factory/clearfy/includes/class-helpers.php
CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
* @copyright (c) 2018, Webcraftic Ltd
|
15 |
*
|
16 |
*/
|
17 |
-
class
|
18 |
|
19 |
/**
|
20 |
* Recursive sanitation for an array
|
14 |
* @copyright (c) 2018, Webcraftic Ltd
|
15 |
*
|
16 |
*/
|
17 |
+
class WbcrFactoryClearfy217_Helpers {
|
18 |
|
19 |
/**
|
20 |
* Recursive sanitation for an array
|
libs/factory/clearfy/langs/{wbcr_factory_clearfy_216-ru_RU.mo → wbcr_factory_clearfy_217-ru_RU.mo}
RENAMED
File without changes
|
libs/factory/clearfy/langs/{wbcr_factory_clearfy_216-ru_RU.po → wbcr_factory_clearfy_217-ru_RU.po}
RENAMED
File without changes
|
libs/factory/clearfy/pages/class-page-license.php
CHANGED
@@ -1,393 +1,401 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
// Exit if accessed directly
|
4 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
5 |
-
|
6 |
-
}
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Class Wbcr_FactoryLicense000_LicensePage is used as template to display form to active premium functionality.
|
10 |
-
*
|
11 |
-
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
12 |
-
* @since 2.0.7
|
13 |
-
*/
|
14 |
-
class Wbcr_FactoryClearfy216_LicensePage extends Wbcr_FactoryClearfy216_PageBase {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* {@inheritdoc}
|
18 |
-
*
|
19 |
-
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
20 |
-
* @since 2.1.2
|
21 |
-
* @var string
|
22 |
-
*/
|
23 |
-
public $type = "page";
|
24 |
-
|
25 |
-
/**
|
26 |
-
* {@inheritdoc}
|
27 |
-
*
|
28 |
-
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
29 |
-
* @since 2.1.2
|
30 |
-
* @var string
|
31 |
-
*/
|
32 |
-
public $page_menu_dashicon = 'dashicons-admin-network';
|
33 |
-
|
34 |
-
/**
|
35 |
-
* {@inheritdoc}
|
36 |
-
*
|
37 |
-
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
38 |
-
* @since 2.1.2
|
39 |
-
* @var bool
|
40 |
-
*/
|
41 |
-
public $show_right_sidebar_in_options = false;
|
42 |
-
|
43 |
-
/**
|
44 |
-
* {@inheritdoc}
|
45 |
-
*
|
46 |
-
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
47 |
-
* @since 2.1.2
|
48 |
-
* @var int
|
49 |
-
*/
|
50 |
-
public $page_menu_position = 0;
|
51 |
-
|
52 |
-
/**
|
53 |
-
* {@inheritdoc}
|
54 |
-
*
|
55 |
-
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
56 |
-
* @since 2.1.2
|
57 |
-
* @var bool
|
58 |
-
*/
|
59 |
-
public $available_for_multisite = true;
|
60 |
-
|
61 |
-
/**
|
62 |
-
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
63 |
-
* @since 2.1.2
|
64 |
-
* @var string
|
65 |
-
*/
|
66 |
-
public $plugin_name;
|
67 |
-
|
68 |
-
/**
|
69 |
-
* @var string Name of the paid plan.
|
70 |
-
*/
|
71 |
-
public $plan_name;
|
72 |
-
|
73 |
-
// PREMIUM SECTION
|
74 |
-
// ------------------------------------------------------------------
|
75 |
-
/**
|
76 |
-
* @since 2.0.7
|
77 |
-
* @var bool
|
78 |
-
*/
|
79 |
-
protected $is_premium;
|
80 |
-
|
81 |
-
/**
|
82 |
-
* @since 2.0.7
|
83 |
-
* @var \WBCR\Factory_424\Premium\Provider
|
84 |
-
*/
|
85 |
-
protected $premium;
|
86 |
-
|
87 |
-
/**
|
88 |
-
* @since 2.0.7
|
89 |
-
* @var bool
|
90 |
-
*/
|
91 |
-
protected $is_premium_active;
|
92 |
-
|
93 |
-
/**
|
94 |
-
* @since 2.0.7
|
95 |
-
* @var bool
|
96 |
-
*/
|
97 |
-
protected $premium_has_subscription;
|
98 |
-
|
99 |
-
/**
|
100 |
-
* @since 2.0.7
|
101 |
-
* @var \WBCR\Factory_424\Premium\Interfaces\License
|
102 |
-
*/
|
103 |
-
protected $premium_license;
|
104 |
-
|
105 |
-
// END PREMIUM SECTION
|
106 |
-
// ------------------------------------------------------------------
|
107 |
-
|
108 |
-
/**
|
109 |
-
* {@inheritdoc}
|
110 |
-
* @param Wbcr_Factory424_Plugin $plugin
|
111 |
-
*/
|
112 |
-
public function __construct( Wbcr_Factory424_Plugin $plugin ) {
|
113 |
-
$this->plugin = $plugin;
|
114 |
-
|
115 |
-
parent::__construct( $plugin );
|
116 |
-
|
117 |
-
if ( ! $this->id ) {
|
118 |
-
$this->id = $this->plugin->getPrefix() . 'license';
|
119 |
-
}
|
120 |
-
|
121 |
-
$this->plugin_name = $this->plugin->getPluginName();
|
122 |
-
$this->premium = $plugin->premium;
|
123 |
-
$this->is_premium = $this->premium->is_activate();
|
124 |
-
$this->is_premium_active = $this->premium->is_active();
|
125 |
-
$this->premium_has_subscription = $this->premium->has_paid_subscription();
|
126 |
-
$this->premium_license = $this->premium->get_license();
|
127 |
-
|
128 |
-
add_action( "wp_ajax_wbcr-clearfy-activate-license-for-{$this->plugin_name}", [ $this, 'ajax_handler' ] );
|
129 |
}
|
130 |
-
|
131 |
/**
|
132 |
-
*
|
133 |
-
*/
|
134 |
-
public function assets( $scripts, $styles ) {
|
135 |
-
parent::assets( $scripts, $styles );
|
136 |
-
|
137 |
-
$this->styles->add( FACTORY_CLEARFY_216_URL . '/assets/css/license-manager.css' );
|
138 |
-
$this->scripts->add( FACTORY_CLEARFY_216_URL . '/assets/js/license-manager.js' );
|
139 |
-
}
|
140 |
-
|
141 |
-
/**
|
142 |
-
* Регистрируем ajax обработчик для текущей страницы
|
143 |
*
|
144 |
-
* @
|
145 |
-
|
146 |
-
public function ajax_handler() {
|
147 |
-
wbcr_factory_clearfy_216_check_license( $this->plugin );
|
148 |
-
}
|
149 |
-
|
150 |
-
/**
|
151 |
-
* {@inheritdoc}
|
152 |
*/
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
}
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
return 'free';
|
190 |
}
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
return '';
|
208 |
}
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
$
|
215 |
-
|
216 |
-
|
|
|
|
|
217 |
}
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
*
|
229 |
-
* @return string
|
230 |
-
*/
|
231 |
-
protected function get_license_type() {
|
232 |
-
if ( ! $this->is_premium ) {
|
233 |
-
return 'free';
|
234 |
}
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
|
|
|
|
|
|
242 |
}
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
</div>
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
<span class="btn btn-gold btn-inner-wrap">
|
272 |
-
<?php _e( 'Upgrade to Premium', '
|
273 |
</span>
|
274 |
-
</a>
|
275 |
-
<p><?php printf( __( 'Your current license for %1$s:', 'wbcr_factory_clearfy_216' ), $this->plugin->getPluginTitle() ) ?></p>
|
276 |
-
<?php endif; ?>
|
277 |
-
<div class="license-details-block <?= $this->get_license_type() ?>-details-block">
|
278 |
-
<?php if ( $this->is_premium ): ?>
|
279 |
-
<a data-action="deactivate" href="#"
|
280 |
-
class="btn btn-default btn-small license-delete-button wcl-control-btn">
|
281 |
-
<?php _e( 'Delete Key', 'wbcr_factory_clearfy_216' ) ?>
|
282 |
-
</a>
|
283 |
-
<a data-action="sync" href="#"
|
284 |
-
class="btn btn-default btn-small license-synchronization-button wcl-control-btn">
|
285 |
-
<?php _e( 'Synchronization', 'wbcr_factory_clearfy_216' ) ?>
|
286 |
</a>
|
|
|
287 |
<?php endif; ?>
|
288 |
-
<
|
289 |
-
<?php
|
290 |
-
|
291 |
-
|
292 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
(<?php printf( __( 'Automatic renewal, every %s', '' ), esc_attr( $this->get_billing_cycle_readable() ) ); ?>)
|
294 |
</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
<?php endif; ?>
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
300 |
</div>
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
</p>
|
305 |
-
<?php if ( $this->is_premium && $this->premium_has_subscription ): ?>
|
306 |
-
<p class="activate-trial-hint">
|
307 |
-
<?php _e( 'You use a paid subscription for the plugin updates. In case you don’t want to receive paid updates, please, click <a data-action="unsubscribe" class="wcl-control-btn" href="#">cancel subscription</a>', 'wbcr_factory_clearfy_216' ) ?>
|
308 |
-
</p>
|
309 |
-
<?php endif; ?>
|
310 |
-
|
311 |
-
<?php if ( $this->get_license_type() == 'trial' ): ?>
|
312 |
-
<p class="activate-error-hint">
|
313 |
-
<?php printf( __( 'Your license has expired, please extend the license to get updates and support.', 'wbcr_factory_clearfy_216' ), '' ) ?>
|
314 |
-
</p>
|
315 |
-
<?php endif; ?>
|
316 |
-
</div>
|
317 |
-
<table class="license-params" colspacing="0" colpadding="0">
|
318 |
-
<tr>
|
319 |
-
<!--<td class="license-param license-param-domain">
|
320 |
<span class="license-value"><?php echo esc_attr( $_SERVER['SERVER_NAME'] ); ?></span>
|
321 |
-
<span class="license-value-name"><?php _e( 'domain', '
|
322 |
</td>-->
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
<span class="license-value">
|
330 |
<?php echo esc_attr( $this->premium_license->get_count_active_sites() ); ?>
|
331 |
-
<?php _e( 'of', '
|
332 |
<?php echo esc_attr( $this->premium_license->get_sites_quota() ); ?></span>
|
333 |
-
|
|
|
|
|
|
|
|
|
|
|
334 |
</td>
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
<?php if ( $this->get_license_type() == 'trial' ): ?>
|
343 |
-
<span class="license-value"><?php _e( 'EXPIRED!', 'wbcr_factory_clearfy_216' ) ?></span>
|
344 |
-
<span class="license-value-name"><?php _e( 'please update the key', 'wbcr_factory_clearfy_216' ) ?></span>
|
345 |
-
<?php else: ?>
|
346 |
-
<span class="license-value">
|
347 |
<?php
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
?>
|
354 |
-
<small> <?php _e( 'day(s)', '
|
355 |
</span>
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
</div>
|
363 |
-
</div>
|
364 |
-
<div class="license-input">
|
365 |
-
<form action="" method="post">
|
366 |
-
<?php if ( $this->is_premium ): ?>
|
367 |
-
<p><?php _e( 'Have a key to activate the premium version? Paste it here:', 'wbcr_factory_clearfy_216' ) ?><p>
|
368 |
-
<?php else: ?>
|
369 |
-
<p><?php _e( 'Have a key to activate the plugin? Paste it here:', 'wbcr_factory_clearfy_216' ) ?>
|
370 |
-
<p>
|
371 |
-
<?php endif; ?>
|
372 |
-
<button data-action="activate" class="btn btn-default wcl-control-btn" type="button" id="license-submit">
|
373 |
-
<?php _e( 'Submit Key', 'wbcr_factory_clearfy_216' ) ?>
|
374 |
-
</button>
|
375 |
-
<div class="license-key-wrap">
|
376 |
-
<input type="text" id="license-key" name="licensekey" value="" class="form-control"/>
|
377 |
</div>
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
|
|
382 |
<?php else: ?>
|
383 |
-
<p
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
388 |
</div>
|
389 |
</div>
|
390 |
-
|
391 |
-
|
392 |
}
|
393 |
-
}
|
1 |
<?php
|
2 |
+
|
3 |
+
// Exit if accessed directly
|
4 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
5 |
+
exit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
}
|
7 |
+
|
8 |
/**
|
9 |
+
* Class Wbcr_FactoryLicense000_LicensePage is used as template to display form to active premium functionality.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
*
|
11 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
12 |
+
* @since 2.0.7
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
*/
|
14 |
+
class Wbcr_FactoryClearfy217_LicensePage extends Wbcr_FactoryClearfy217_PageBase {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* {@inheritdoc}
|
18 |
+
*
|
19 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
20 |
+
* @since 2.1.2
|
21 |
+
* @var string
|
22 |
+
*/
|
23 |
+
public $type = "page";
|
24 |
+
|
25 |
+
/**
|
26 |
+
* {@inheritdoc}
|
27 |
+
*
|
28 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
29 |
+
* @since 2.1.2
|
30 |
+
* @var string
|
31 |
+
*/
|
32 |
+
public $page_menu_dashicon = 'dashicons-admin-network';
|
33 |
+
|
34 |
+
/**
|
35 |
+
* {@inheritdoc}
|
36 |
+
*
|
37 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
38 |
+
* @since 2.1.2
|
39 |
+
* @var bool
|
40 |
+
*/
|
41 |
+
public $show_right_sidebar_in_options = false;
|
42 |
+
|
43 |
+
/**
|
44 |
+
* {@inheritdoc}
|
45 |
+
*
|
46 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
47 |
+
* @since 2.1.2
|
48 |
+
* @var int
|
49 |
+
*/
|
50 |
+
public $page_menu_position = 0;
|
51 |
+
|
52 |
+
/**
|
53 |
+
* {@inheritdoc}
|
54 |
+
*
|
55 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
56 |
+
* @since 2.1.2
|
57 |
+
* @var bool
|
58 |
+
*/
|
59 |
+
public $available_for_multisite = true;
|
60 |
+
|
61 |
+
/**
|
62 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
63 |
+
* @since 2.1.2
|
64 |
+
* @var string
|
65 |
+
*/
|
66 |
+
public $plugin_name;
|
67 |
+
|
68 |
+
/**
|
69 |
+
* @var string Name of the paid plan.
|
70 |
+
*/
|
71 |
+
public $plan_name;
|
72 |
+
|
73 |
+
// PREMIUM SECTION
|
74 |
+
// ------------------------------------------------------------------
|
75 |
+
/**
|
76 |
+
* @since 2.0.7
|
77 |
+
* @var bool
|
78 |
+
*/
|
79 |
+
protected $is_premium;
|
80 |
+
|
81 |
+
/**
|
82 |
+
* @since 2.0.7
|
83 |
+
* @var \WBCR\Factory_425\Premium\Provider
|
84 |
+
*/
|
85 |
+
protected $premium;
|
86 |
+
|
87 |
+
/**
|
88 |
+
* @since 2.0.7
|
89 |
+
* @var bool
|
90 |
+
*/
|
91 |
+
protected $is_premium_active;
|
92 |
+
|
93 |
+
/**
|
94 |
+
* @since 2.0.7
|
95 |
+
* @var bool
|
96 |
+
*/
|
97 |
+
protected $premium_has_subscription;
|
98 |
+
|
99 |
+
/**
|
100 |
+
* @since 2.0.7
|
101 |
+
* @var \WBCR\Factory_425\Premium\Interfaces\License
|
102 |
+
*/
|
103 |
+
protected $premium_license;
|
104 |
+
|
105 |
+
// END PREMIUM SECTION
|
106 |
+
// ------------------------------------------------------------------
|
107 |
+
|
108 |
+
/**
|
109 |
+
* {@inheritdoc}
|
110 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
111 |
+
*/
|
112 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
113 |
+
$this->plugin = $plugin;
|
114 |
+
|
115 |
+
parent::__construct( $plugin );
|
116 |
+
|
117 |
+
if ( ! $this->id ) {
|
118 |
+
$this->id = $this->plugin->getPrefix() . 'license';
|
119 |
+
}
|
120 |
+
|
121 |
+
$this->plugin_name = $this->plugin->getPluginName();
|
122 |
+
$this->premium = $plugin->premium;
|
123 |
+
$this->is_premium = $this->premium->is_activate();
|
124 |
+
$this->is_premium_active = $this->premium->is_active();
|
125 |
+
$this->premium_has_subscription = $this->premium->has_paid_subscription();
|
126 |
+
$this->premium_license = $this->premium->get_license();
|
127 |
+
|
128 |
+
add_action( "wp_ajax_wbcr-clearfy-activate-license-for-{$this->plugin_name}", [ $this, 'ajax_handler' ] );
|
129 |
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* [MAGIC] Magic method that configures assets for a page.
|
133 |
+
*/
|
134 |
+
public function assets( $scripts, $styles ) {
|
135 |
+
parent::assets( $scripts, $styles );
|
136 |
+
|
137 |
+
$this->styles->add( FACTORY_CLEARFY_217_URL . '/assets/css/license-manager.css' );
|
138 |
+
$this->scripts->add( FACTORY_CLEARFY_217_URL . '/assets/js/license-manager.js' );
|
|
|
139 |
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* Регистрируем ajax обработчик для текущей страницы
|
143 |
+
*
|
144 |
+
* @since 2.0.7
|
145 |
+
*/
|
146 |
+
public function ajax_handler() {
|
147 |
+
wbcr_factory_clearfy_217_check_license( $this->plugin );
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* {@inheritdoc}
|
152 |
+
*/
|
153 |
+
public function showPageContent() {
|
154 |
+
?>
|
155 |
+
<div id="wcl-license-wrapper"
|
156 |
+
data-loader="<?php echo FACTORY_CLEARFY_217_URL . '/assets/img/loader.gif'; ?>"
|
157 |
+
data-plugin-name="<?php echo esc_attr( $this->plugin_name ); ?>"
|
158 |
+
data-nonce="<?php echo wp_create_nonce( "clearfy_activate_license_for_{$this->plugin_name}" ) ?>">
|
159 |
+
<?php $this->show_license_form(); ?>
|
160 |
+
</div>
|
161 |
+
<?php
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Get before content.
|
166 |
+
*
|
167 |
+
* @return string Before content.
|
168 |
+
*/
|
169 |
+
protected function get_plan_description() {
|
170 |
return '';
|
171 |
}
|
172 |
+
|
173 |
+
/**
|
174 |
+
* @return string
|
175 |
+
*/
|
176 |
+
protected function get_hidden_license_key() {
|
177 |
+
if ( ! $this->is_premium ) {
|
178 |
+
return '';
|
179 |
+
}
|
180 |
+
|
181 |
+
return $this->premium_license->get_hidden_key();
|
182 |
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* @return string
|
186 |
+
*/
|
187 |
+
protected function get_plan() {
|
188 |
+
if ( ! $this->is_premium ) {
|
189 |
+
return 'free';
|
190 |
+
}
|
191 |
+
|
192 |
+
return $this->premium->get_plan();
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* @return mixed
|
197 |
+
*/
|
198 |
+
protected function get_expiration_days() {
|
199 |
+
if ( ! $this->is_premium ) {
|
200 |
+
return '';
|
201 |
+
}
|
202 |
+
|
203 |
+
return $this->premium_license->get_expiration_time( 'days' );
|
204 |
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* @return string
|
208 |
+
*/
|
209 |
+
protected function get_billing_cycle_readable() {
|
210 |
+
if ( ! $this->is_premium ) {
|
211 |
+
return '';
|
212 |
+
}
|
213 |
+
|
214 |
+
$billing_cycle = $this->premium->get_billing_cycle();
|
215 |
+
$billing = 'lifetime';
|
216 |
+
|
217 |
+
if ( 1 == $billing_cycle ) {
|
218 |
+
$billing = 'month';
|
219 |
+
} else if ( 12 == $billing_cycle ) {
|
220 |
+
$billing = 'year';
|
221 |
+
}
|
222 |
+
|
223 |
+
return $billing;
|
224 |
+
}
|
225 |
+
|
226 |
+
/**
|
227 |
+
* Тип лицензии, цветовое оформление для формы лицензирования
|
228 |
+
* free - бесплатная
|
229 |
+
* gift - пожизненная лицензия, лицензия на особых условиях
|
230 |
+
* trial - красный цвет, применяется для триалов, если лиценизия истекла или заблокирована
|
231 |
+
* paid - обычная оплаченная лицензия, в данный момент активна.
|
232 |
+
*
|
233 |
+
* @return string
|
234 |
+
*/
|
235 |
+
protected function get_license_type() {
|
236 |
+
if ( ! $this->is_premium ) {
|
237 |
+
return 'free';
|
238 |
+
}
|
239 |
+
|
240 |
+
$license = $this->premium_license;
|
241 |
+
|
242 |
+
if ( $license->is_lifetime() ) {
|
243 |
+
return 'gift';
|
244 |
+
} else if ( $license->get_expiration_time( 'days' ) < 1 ) {
|
245 |
+
return 'trial';
|
246 |
+
}
|
247 |
+
|
248 |
+
return 'paid';
|
249 |
+
}
|
250 |
+
|
251 |
+
/**
|
252 |
+
* @param bool|WP_Error $notice
|
253 |
+
*/
|
254 |
+
public function show_license_form( $notice = false ) {
|
255 |
+
?>
|
256 |
+
<div id="license-manager"
|
257 |
+
class="factory-bootstrap-426 onp-page-wrap <?= $this->get_license_type() ?>-license-manager-content">
|
258 |
+
<div>
|
259 |
+
<h3><?php printf( __( 'Activate %s', 'wbcr_factory_clearfy_217' ), $this->plan_name ) ?></h3>
|
260 |
+
<?php echo $this->get_plan_description() ?>
|
261 |
</div>
|
262 |
+
<br>
|
263 |
+
<?php if ( is_wp_error( $notice ) ) : ?>
|
264 |
+
<div class="license-message <?= $this->get_license_type() ?>-license-message">
|
265 |
+
<div class="alert <?php echo esc_attr( $notice->get_error_code() ); ?>">
|
266 |
+
<h4 class="alert-heading"><?php _e( $notice->get_error_message(), 'wbcr_factory_clearfy_217' ) ?></h4>
|
267 |
+
</div>
|
268 |
+
</div>
|
269 |
+
<?php endif; ?>
|
270 |
+
<div class="onp-container">
|
271 |
+
<div class="license-details">
|
272 |
+
<?php if ( $this->get_license_type() == 'free' ): ?>
|
273 |
+
<a href="<?php echo $this->plugin->get_support()->get_pricing_url( true, 'license_page' ); ?>"
|
274 |
+
class="purchase-premium" target="_blank" rel="noopener">
|
275 |
<span class="btn btn-gold btn-inner-wrap">
|
276 |
+
<?php _e( 'Upgrade to Premium', 'wbcr_factory_clearfy_217' ) ?>
|
277 |
</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
</a>
|
279 |
+
<p><?php printf( __( 'Your current license for %1$s:', 'wbcr_factory_clearfy_217' ), $this->plugin->getPluginTitle() ) ?></p>
|
280 |
<?php endif; ?>
|
281 |
+
<div class="license-details-block <?= $this->get_license_type() ?>-details-block">
|
282 |
+
<?php if ( $this->is_premium ): ?>
|
283 |
+
<a data-action="deactivate" href="#"
|
284 |
+
class="btn btn-default btn-small license-delete-button wcl-control-btn">
|
285 |
+
<?php _e( 'Delete Key', 'wbcr_factory_clearfy_217' ) ?>
|
286 |
+
</a>
|
287 |
+
<a data-action="sync" href="#"
|
288 |
+
class="btn btn-default btn-small license-synchronization-button wcl-control-btn">
|
289 |
+
<?php _e( 'Synchronization', 'wbcr_factory_clearfy_217' ) ?>
|
290 |
+
</a>
|
291 |
+
<?php endif; ?>
|
292 |
+
<h3>
|
293 |
+
<?php echo ucfirst( $this->get_plan() ); ?>
|
294 |
+
|
295 |
+
<?php if ( $this->is_premium && $this->premium_has_subscription ): ?>
|
296 |
+
<span style="font-size: 15px;">
|
297 |
(<?php printf( __( 'Automatic renewal, every %s', '' ), esc_attr( $this->get_billing_cycle_readable() ) ); ?>)
|
298 |
</span>
|
299 |
+
<?php endif; ?>
|
300 |
+
</h3>
|
301 |
+
<?php if ( $this->is_premium ): ?>
|
302 |
+
<div class="license-key-identity">
|
303 |
+
<code><?= esc_attr( $this->get_hidden_license_key() ) ?></code>
|
304 |
+
</div>
|
305 |
<?php endif; ?>
|
306 |
+
<div class="license-key-description">
|
307 |
+
<?php if ( ! $this->is_premium ): ?>
|
308 |
+
<p><?php _e( 'Public License is a GPLv3 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'wbcr_factory_clearfy_217' ) ?></p>
|
309 |
+
<?php else: ?>
|
310 |
+
<p><?php _e( 'Сommercial license, only to the premium add-on to this free plugin. You cannot distribute or modify the premium add-on. But free plugin is a GPLv3 compatible license allowing you to change and use this version of the plugin for free.', 'wbcr_factory_clearfy_217' ) ?></p>
|
311 |
+
<?php endif; ?>
|
312 |
+
<?php if ( $this->is_premium && $this->premium_has_subscription ): ?>
|
313 |
+
<p class="activate-trial-hint">
|
314 |
+
<?php _e( 'You use a paid subscription for the plugin updates. In case you don’t want to receive paid updates, please, click <a data-action="unsubscribe" class="wcl-control-btn" href="#">cancel subscription</a>', 'wbcr_factory_clearfy_217' ) ?>
|
315 |
+
</p>
|
316 |
+
<?php endif; ?>
|
317 |
+
|
318 |
+
<?php if ( $this->get_license_type() == 'trial' ): ?>
|
319 |
+
<p class="activate-error-hint">
|
320 |
+
<?php printf( __( 'Your license has expired, please extend the license to get updates and support.', 'wbcr_factory_clearfy_217' ), '' ) ?>
|
321 |
+
</p>
|
322 |
+
<?php endif; ?>
|
323 |
</div>
|
324 |
+
<table class="license-params" colspacing="0" colpadding="0">
|
325 |
+
<tr>
|
326 |
+
<!--<td class="license-param license-param-domain">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
<span class="license-value"><?php echo esc_attr( $_SERVER['SERVER_NAME'] ); ?></span>
|
328 |
+
<span class="license-value-name"><?php _e( 'domain', 'wbcr_factory_clearfy_217' ) ?></span>
|
329 |
</td>-->
|
330 |
+
<td class="license-param license-param-days">
|
331 |
+
<span class="license-value"><?= $this->get_plan() ?></span>
|
332 |
+
<span class="license-value-name"><?php _e( 'plan', 'wbcr_factory_clearfy_217' ) ?></span>
|
333 |
+
</td>
|
334 |
+
<?php if ( $this->is_premium ) : ?>
|
335 |
+
<td class="license-param license-param-sites">
|
336 |
<span class="license-value">
|
337 |
<?php echo esc_attr( $this->premium_license->get_count_active_sites() ); ?>
|
338 |
+
<?php _e( 'of', 'wbcr_factory_clearfy_217' ) ?>
|
339 |
<?php echo esc_attr( $this->premium_license->get_sites_quota() ); ?></span>
|
340 |
+
<span class="license-value-name"><?php _e( 'active sites', 'wbcr_factory_clearfy_217' ) ?></span>
|
341 |
+
</td>
|
342 |
+
<?php endif; ?>
|
343 |
+
<td class="license-param license-param-version">
|
344 |
+
<span class="license-value"><?= $this->plugin->getPluginVersion() ?></span>
|
345 |
+
<span class="license-value-name"><span>version</span></span>
|
346 |
</td>
|
347 |
+
<?php if ( $this->is_premium ): ?>
|
348 |
+
<td class="license-param license-param-days">
|
349 |
+
<?php if ( $this->get_license_type() == 'trial' ): ?>
|
350 |
+
<span class="license-value"><?php _e( 'EXPIRED!', 'wbcr_factory_clearfy_217' ) ?></span>
|
351 |
+
<span class="license-value-name"><?php _e( 'please update the key', 'wbcr_factory_clearfy_217' ) ?></span>
|
352 |
+
<?php else: ?>
|
353 |
+
<span class="license-value">
|
|
|
|
|
|
|
|
|
|
|
354 |
<?php
|
355 |
+
if ( $this->premium_license->is_lifetime() ) {
|
356 |
+
echo 'infiniate';
|
357 |
+
} else {
|
358 |
+
echo $this->get_expiration_days();
|
359 |
+
}
|
360 |
?>
|
361 |
+
<small> <?php _e( 'day(s)', 'wbcr_factory_clearfy_217' ) ?></small>
|
362 |
</span>
|
363 |
+
<span class="license-value-name"><?php _e( 'remained', 'wbcr_factory_clearfy_217' ) ?></span>
|
364 |
+
<?php endif; ?>
|
365 |
+
</td>
|
366 |
+
<?php endif; ?>
|
367 |
+
</tr>
|
368 |
+
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
369 |
</div>
|
370 |
+
</div>
|
371 |
+
<div class="license-input">
|
372 |
+
<form action="" method="post">
|
373 |
+
<?php if ( $this->is_premium ): ?>
|
374 |
+
<p><?php _e( 'Have a key to activate the premium version? Paste it here:', 'wbcr_factory_clearfy_217' ) ?><p>
|
375 |
<?php else: ?>
|
376 |
+
<p><?php _e( 'Have a key to activate the plugin? Paste it here:', 'wbcr_factory_clearfy_217' ) ?>
|
377 |
+
<p>
|
378 |
+
<?php endif; ?>
|
379 |
+
<button data-action="activate" class="btn btn-default wcl-control-btn" type="button"
|
380 |
+
id="license-submit">
|
381 |
+
<?php _e( 'Submit Key', 'wbcr_factory_clearfy_217' ) ?>
|
382 |
+
</button>
|
383 |
+
<div class="license-key-wrap">
|
384 |
+
<input type="text" id="license-key" name="licensekey" value="" class="form-control"/>
|
385 |
+
</div>
|
386 |
+
<?php if ( $this->is_premium ): ?>
|
387 |
+
<p style="margin-top: 10px;">
|
388 |
+
<?php printf( __( '<a href="%s" target="_blank" rel="noopener">Lean more</a> about the premium version and get the license key to activate it now!', 'wbcr_factory_clearfy_217' ), $this->plugin->get_support()->get_pricing_url( true, 'license_page' ) ); ?>
|
389 |
+
</p>
|
390 |
+
<?php else: ?>
|
391 |
+
<p style="margin-top: 10px;">
|
392 |
+
<?php printf( __( 'Can’t find your key? Go to <a href="%s" target="_blank" rel="noopener">this page</a> and login using the e-mail address associated with your purchase.', 'wbcr_factory_clearfy_217' ), $this->plugin->get_support()->get_contacts_url( true, 'license_page' ) ) ?>
|
393 |
+
</p>
|
394 |
+
<?php endif; ?>
|
395 |
+
</form>
|
396 |
+
</div>
|
397 |
</div>
|
398 |
</div>
|
399 |
+
<?php
|
400 |
+
}
|
401 |
}
|
|
libs/factory/clearfy/pages/class-page-more-features.php
CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
15 |
}
|
16 |
|
17 |
|
18 |
-
class
|
19 |
|
20 |
/**
|
21 |
* {@inheritDoc}
|
@@ -60,8 +60,8 @@ class Wbcr_FactoryClearfy216_MoreFeaturesPage extends Wbcr_FactoryPages424_Impre
|
|
60 |
*/
|
61 |
public $internal = true;
|
62 |
|
63 |
-
public function __construct(
|
64 |
-
$this->menu_title = __( 'More features (<b>free</b>)', '
|
65 |
|
66 |
parent::__construct( $plugin );
|
67 |
|
@@ -74,7 +74,7 @@ class Wbcr_FactoryClearfy216_MoreFeaturesPage extends Wbcr_FactoryPages424_Impre
|
|
74 |
* @return string
|
75 |
*/
|
76 |
public function getPageTitle() {
|
77 |
-
return __( 'More features', '
|
78 |
}
|
79 |
|
80 |
/**
|
@@ -88,66 +88,66 @@ class Wbcr_FactoryClearfy216_MoreFeaturesPage extends Wbcr_FactoryPages424_Impre
|
|
88 |
<div class="col-sm-4">
|
89 |
<div class="wbcr-factory-feature-box">
|
90 |
<span class="dashicons dashicons-yes"></span>
|
91 |
-
<h3><?php _e( 'Code cleaning', '
|
92 |
-
<p><?php _e( 'Clears the source code of the page from unused code.', '
|
93 |
</div>
|
94 |
</div>
|
95 |
<div class="col-sm-4">
|
96 |
<div class="wbcr-factory-feature-box">
|
97 |
<span class="dashicons dashicons-chart-bar"></span>
|
98 |
-
<h3><?php _e( 'Improve SEO', '
|
99 |
-
<p><?php _e( 'Removes duplicate pages, closes external links, changes the headers of the server.', '
|
100 |
</div>
|
101 |
</div>
|
102 |
<div class="col-sm-4">
|
103 |
<div class="wbcr-factory-feature-box">
|
104 |
<span class="dashicons dashicons-shield-alt"></span>
|
105 |
-
<h3><?php _e( 'Site protection', '
|
106 |
-
<p><?php _e( 'Enables and disables features that improve the protection of your site.', '
|
107 |
</div>
|
108 |
</div>
|
109 |
<div class="col-sm-4">
|
110 |
<div class="wbcr-factory-feature-box">
|
111 |
<span class="dashicons dashicons-welcome-comments"></span>
|
112 |
-
<h3><?php _e( 'Disable comments', '
|
113 |
-
<p><?php _e( 'Disables comments on the entire site or on specific pages.', '
|
114 |
</div>
|
115 |
</div>
|
116 |
<div class="col-sm-4">
|
117 |
<div class="wbcr-factory-feature-box">
|
118 |
<span class="dashicons dashicons-update"></span>
|
119 |
-
<h3><?php _e( 'Manage updates', '
|
120 |
<p><?php _e( 'Enables or disables automatically updates for plugins, themes and core. It is also possible
|
121 |
-
to disable all updates.', '
|
122 |
</div>
|
123 |
</div>
|
124 |
<div class="col-sm-4">
|
125 |
<div class="wbcr-factory-feature-box">
|
126 |
<span class="dashicons dashicons-admin-plugins"></span>
|
127 |
-
<h3><?php _e( 'Manage widgets', '
|
128 |
-
<p><?php _e( 'Allows you to remove unused widgets.', '
|
129 |
</div>
|
130 |
</div>
|
131 |
<div class="col-sm-4">
|
132 |
<div class="wbcr-factory-feature-box">
|
133 |
<span class="dashicons dashicons-dashboard"></span>
|
134 |
-
<h3><?php _e( 'Speed Optimization', '
|
135 |
-
<p><?php _e( 'Increases performance by disabling unused functions and reducing the number of requests.', '
|
136 |
</div>
|
137 |
</div>
|
138 |
<div class="col-sm-4">
|
139 |
<div class="wbcr-factory-feature-box">
|
140 |
<span class="dashicons dashicons-visibility"></span>
|
141 |
-
<h3><?php _e( 'Site privacy', '
|
142 |
<p><?php _e( 'Allows you to hide the version of the site and plugins. Allows you to hide your
|
143 |
-
WordPress.', '
|
144 |
</div>
|
145 |
</div>
|
146 |
<div class="col-sm-4">
|
147 |
<div class="wbcr-factory-feature-box">
|
148 |
<span class="dashicons dashicons-admin-settings"></span>
|
149 |
-
<h3><?php _e( 'Easy setup', '
|
150 |
-
<p><?php _e( 'In quick mode, you can easily configure the plugin according to your needs.', '
|
151 |
</div>
|
152 |
</div>
|
153 |
</div>
|
@@ -161,7 +161,7 @@ class Wbcr_FactoryClearfy216_MoreFeaturesPage extends Wbcr_FactoryPages424_Impre
|
|
161 |
$url .= '?utm_source=wordpress.org&utm_campaign=' . $this->plugin->getPluginName();
|
162 |
?>
|
163 |
<a href="<?= $url ?>" class="wbcr-factory-premium-button" target="_blank">
|
164 |
-
<?php _e( 'Get the ultimate plugin 100% FREE', '
|
165 |
</a>
|
166 |
</div>
|
167 |
<?php
|
15 |
}
|
16 |
|
17 |
|
18 |
+
class Wbcr_FactoryClearfy217_MoreFeaturesPage extends Wbcr_FactoryPages425_ImpressiveThemplate {
|
19 |
|
20 |
/**
|
21 |
* {@inheritDoc}
|
60 |
*/
|
61 |
public $internal = true;
|
62 |
|
63 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
64 |
+
$this->menu_title = __( 'More features (<b>free</b>)', 'wbcr_factory_clearfy_217' );
|
65 |
|
66 |
parent::__construct( $plugin );
|
67 |
|
74 |
* @return string
|
75 |
*/
|
76 |
public function getPageTitle() {
|
77 |
+
return __( 'More features', 'wbcr_factory_clearfy_217' );
|
78 |
}
|
79 |
|
80 |
/**
|
88 |
<div class="col-sm-4">
|
89 |
<div class="wbcr-factory-feature-box">
|
90 |
<span class="dashicons dashicons-yes"></span>
|
91 |
+
<h3><?php _e( 'Code cleaning', 'wbcr_factory_clearfy_217' ) ?></h3>
|
92 |
+
<p><?php _e( 'Clears the source code of the page from unused code.', 'wbcr_factory_clearfy_217' ) ?></p>
|
93 |
</div>
|
94 |
</div>
|
95 |
<div class="col-sm-4">
|
96 |
<div class="wbcr-factory-feature-box">
|
97 |
<span class="dashicons dashicons-chart-bar"></span>
|
98 |
+
<h3><?php _e( 'Improve SEO', 'wbcr_factory_clearfy_217' ) ?></h3>
|
99 |
+
<p><?php _e( 'Removes duplicate pages, closes external links, changes the headers of the server.', 'wbcr_factory_clearfy_217' ) ?></p>
|
100 |
</div>
|
101 |
</div>
|
102 |
<div class="col-sm-4">
|
103 |
<div class="wbcr-factory-feature-box">
|
104 |
<span class="dashicons dashicons-shield-alt"></span>
|
105 |
+
<h3><?php _e( 'Site protection', 'wbcr_factory_clearfy_217' ) ?></h3>
|
106 |
+
<p><?php _e( 'Enables and disables features that improve the protection of your site.', 'wbcr_factory_clearfy_217' ) ?></p>
|
107 |
</div>
|
108 |
</div>
|
109 |
<div class="col-sm-4">
|
110 |
<div class="wbcr-factory-feature-box">
|
111 |
<span class="dashicons dashicons-welcome-comments"></span>
|
112 |
+
<h3><?php _e( 'Disable comments', 'wbcr_factory_clearfy_217' ) ?></h3>
|
113 |
+
<p><?php _e( 'Disables comments on the entire site or on specific pages.', 'wbcr_factory_clearfy_217' ) ?></p>
|
114 |
</div>
|
115 |
</div>
|
116 |
<div class="col-sm-4">
|
117 |
<div class="wbcr-factory-feature-box">
|
118 |
<span class="dashicons dashicons-update"></span>
|
119 |
+
<h3><?php _e( 'Manage updates', 'wbcr_factory_clearfy_217' ) ?></h3>
|
120 |
<p><?php _e( 'Enables or disables automatically updates for plugins, themes and core. It is also possible
|
121 |
+
to disable all updates.', 'wbcr_factory_clearfy_217' ) ?></p>
|
122 |
</div>
|
123 |
</div>
|
124 |
<div class="col-sm-4">
|
125 |
<div class="wbcr-factory-feature-box">
|
126 |
<span class="dashicons dashicons-admin-plugins"></span>
|
127 |
+
<h3><?php _e( 'Manage widgets', 'wbcr_factory_clearfy_217' ) ?></h3>
|
128 |
+
<p><?php _e( 'Allows you to remove unused widgets.', 'wbcr_factory_clearfy_217' ) ?></p>
|
129 |
</div>
|
130 |
</div>
|
131 |
<div class="col-sm-4">
|
132 |
<div class="wbcr-factory-feature-box">
|
133 |
<span class="dashicons dashicons-dashboard"></span>
|
134 |
+
<h3><?php _e( 'Speed Optimization', 'wbcr_factory_clearfy_217' ) ?></h3>
|
135 |
+
<p><?php _e( 'Increases performance by disabling unused functions and reducing the number of requests.', 'wbcr_factory_clearfy_217' ) ?></p>
|
136 |
</div>
|
137 |
</div>
|
138 |
<div class="col-sm-4">
|
139 |
<div class="wbcr-factory-feature-box">
|
140 |
<span class="dashicons dashicons-visibility"></span>
|
141 |
+
<h3><?php _e( 'Site privacy', 'wbcr_factory_clearfy_217' ) ?></h3>
|
142 |
<p><?php _e( 'Allows you to hide the version of the site and plugins. Allows you to hide your
|
143 |
+
WordPress.', 'wbcr_factory_clearfy_217' ) ?></p>
|
144 |
</div>
|
145 |
</div>
|
146 |
<div class="col-sm-4">
|
147 |
<div class="wbcr-factory-feature-box">
|
148 |
<span class="dashicons dashicons-admin-settings"></span>
|
149 |
+
<h3><?php _e( 'Easy setup', 'wbcr_factory_clearfy_217' ) ?></h3>
|
150 |
+
<p><?php _e( 'In quick mode, you can easily configure the plugin according to your needs.', 'wbcr_factory_clearfy_217' ) ?></p>
|
151 |
</div>
|
152 |
</div>
|
153 |
</div>
|
161 |
$url .= '?utm_source=wordpress.org&utm_campaign=' . $this->plugin->getPluginName();
|
162 |
?>
|
163 |
<a href="<?= $url ?>" class="wbcr-factory-premium-button" target="_blank">
|
164 |
+
<?php _e( 'Get the ultimate plugin 100% FREE', 'wbcr_factory_clearfy_217' ) ?>
|
165 |
</a>
|
166 |
</div>
|
167 |
<?php
|
libs/factory/clearfy/pages/class-pages.php
CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
}
|
15 |
|
16 |
/**
|
17 |
-
* Class
|
18 |
*
|
19 |
* @method string getInfoWidget() - get widget content information
|
20 |
* @method string getRatingWidget( array $args = [] ) - get widget content rating
|
@@ -22,7 +22,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
22 |
* @method string getBusinessSuggetionWidget()
|
23 |
* @method string getSupportWidget
|
24 |
*/
|
25 |
-
class
|
26 |
|
27 |
/**
|
28 |
* {@inheritDoc}
|
@@ -49,9 +49,9 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
49 |
public $internal = true;
|
50 |
|
51 |
/**
|
52 |
-
* @param
|
53 |
*/
|
54 |
-
public function __construct(
|
55 |
parent::__construct( $plugin );
|
56 |
}
|
57 |
|
@@ -81,24 +81,24 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
81 |
/**
|
82 |
* Requests assets (js and css) for the page.
|
83 |
*
|
84 |
-
* @param
|
85 |
-
* @param
|
86 |
*
|
87 |
* @return void
|
88 |
-
* @see
|
89 |
*
|
90 |
*/
|
91 |
public function assets( $scripts, $styles ) {
|
92 |
parent::assets( $scripts, $styles );
|
93 |
|
94 |
-
$this->styles->add(
|
95 |
|
96 |
// todo: вынести все общие скрипты и стили фреймворка, продумать совместимость с другими плагинами
|
97 |
if ( defined( 'WCL_PLUGIN_URL' ) ) {
|
98 |
$this->styles->add( WCL_PLUGIN_URL . '/admin/assets/css/general.css' );
|
99 |
}
|
100 |
|
101 |
-
|
102 |
$this->getResultId(),
|
103 |
$scripts,
|
104 |
$styles
|
@@ -114,19 +114,19 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
114 |
}
|
115 |
|
116 |
/**
|
117 |
-
* @return
|
118 |
*/
|
119 |
public function request() {
|
120 |
return $this->plugin->request;
|
121 |
}
|
122 |
|
123 |
/**
|
124 |
-
* @since 2.0.5
|
125 |
-
*
|
126 |
* @param $option_name
|
127 |
-
* @param bool $default
|
128 |
*
|
129 |
* @return mixed|void
|
|
|
|
|
130 |
*/
|
131 |
public function getPopulateOption( $option_name, $default = false ) {
|
132 |
return $this->plugin->getPopulateOption( $option_name, $default );
|
@@ -180,38 +180,6 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
180 |
$this->plugin->deleteOption( $option_name );
|
181 |
}
|
182 |
|
183 |
-
|
184 |
-
/**
|
185 |
-
* Действие выполняется для всех страниц Clearfy и его компонентах.
|
186 |
-
* Это простое предложение перейти на PRO версию.
|
187 |
-
*/
|
188 |
-
public function multisiteProAction() {
|
189 |
-
if ( is_multisite() && $this->plugin->isNetworkActive() ) {
|
190 |
-
|
191 |
-
$license_page_url = $this->getBaseUrl( 'license' );
|
192 |
-
$upgrade_url = WbcrFactoryClearfy216_Helpers::getWebcrafticSitePageUrl( $this->plugin->getPluginName(), 'pricing', 'multisite_save_settings' );
|
193 |
-
|
194 |
-
$html = '<div class="wbcr-factory-clearfy-216-multisite-suggetion">';
|
195 |
-
$html .= '<div class="wbcr-factory-inner-contanier">';
|
196 |
-
$html .= '<h3>' . __( 'Upgrade to Clearfy Business', 'wbcr_factory_clearfy_216' ) . '</h3>';
|
197 |
-
$html .= '<p>' . __( 'Oops... Sorry for the inconvenience caused!', 'wbcr_factory_clearfy_216' ) . '</p>';
|
198 |
-
$html .= '<p>' . __( 'Complete multisite support is available in Clearfy Business and Clearfy Business Revolution packages only!', 'wbcr_factory_clearfy_216' ) . '</p>';
|
199 |
-
$html .= '<p>' . __( 'You can activate the plugin on each website and use it with zero limitations. But you can’t save the plugin’s settings under the Super Administrator role!', 'wbcr_factory_clearfy_216' ) . '</p>';
|
200 |
-
$html .= '<p style="margin-top:20px">';
|
201 |
-
$html .= '<a href="' . $license_page_url . '" class="wbcr-factory-activate-premium" rel="noopener">' . __( 'Activate license ', 'wbcr_factory_clearfy_216' ) . '</a> ';
|
202 |
-
$html .= '<a href="' . $upgrade_url . '" class="wbcr-factory-purchase-premium" target="_blank" rel="noopener">' . __( 'Upgrade to Clearfy Business', 'wbcr_factory_clearfy_216' ) . '</a>';
|
203 |
-
$html .= '</p>';
|
204 |
-
$html .= '</div>';
|
205 |
-
$html .= '</div>';
|
206 |
-
|
207 |
-
$this->showPage( $html );
|
208 |
-
|
209 |
-
return;
|
210 |
-
}
|
211 |
-
|
212 |
-
$this->redirectToAction( 'index' );
|
213 |
-
}
|
214 |
-
|
215 |
/**
|
216 |
* @param string $position
|
217 |
*
|
@@ -234,7 +202,7 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
234 |
/**
|
235 |
* @since 4.0.9 - является устаревшим
|
236 |
*/
|
237 |
-
$widgets =
|
238 |
$widgets,
|
239 |
$position,
|
240 |
$this->plugin,
|
@@ -262,24 +230,24 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
262 |
$purchase_url = $this->plugin->get_support()->get_pricing_url( true, 'right_sidebar_ads' );
|
263 |
|
264 |
$default_features = [
|
265 |
-
'4_premium' => __( '4 premium components now;', '
|
266 |
-
'40_premium' => __( '40 new premium components within a year for the single price;', '
|
267 |
-
'multisite_support' => __( 'Multisite support;', '
|
268 |
-
'advance_settings' => __( 'Advanced settings;', '
|
269 |
-
'no_ads' => __( 'No ads;', '
|
270 |
-
'perfect_support' => __( 'Perfect support.', '
|
271 |
];
|
272 |
|
273 |
/**
|
274 |
* @since 2.0.8 - added
|
275 |
*/
|
276 |
-
$suggetion_title = __( 'MORE IN CLEARFY <span>BUSINESS</span>', '
|
277 |
$suggetion_title = apply_filters( 'wbcr/clearfy/pages/suggetion_title', $suggetion_title, $plugin_name, $this->id );
|
278 |
|
279 |
/**
|
280 |
* @since 2.0.8 - deprecated
|
281 |
*/
|
282 |
-
$suggetion_features =
|
283 |
$default_features,
|
284 |
$this->plugin->getPluginName(),
|
285 |
$this->id
|
@@ -295,7 +263,7 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
295 |
$suggetion_features = $default_features;
|
296 |
}
|
297 |
?>
|
298 |
-
<div class="wbcr-factory-sidebar-widget wbcr-factory-clearfy-
|
299 |
<h3><?php echo $suggetion_title; ?></h3>
|
300 |
<ul>
|
301 |
<?php if ( ! empty( $suggetion_features ) ): ?>
|
@@ -304,8 +272,9 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
304 |
<?php endforeach; ?>
|
305 |
<?php endif; ?>
|
306 |
</ul>
|
307 |
-
<a href="<?php echo $purchase_url ?>" class="wbcr-factory-purchase-premium" target="_blank"
|
308 |
-
|
|
|
309 |
</a>
|
310 |
</div>
|
311 |
<?php
|
@@ -323,25 +292,28 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
323 |
<ul>
|
324 |
<li>
|
325 |
<span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-red">
|
326 |
-
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
|
|
|
327 |
</span>
|
328 |
-
- <?php _e( 'A neutral setting that can not harm your site, but you must be sure that you need to use it.', '
|
329 |
</li>
|
330 |
<li>
|
331 |
<span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
|
332 |
-
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
|
|
|
333 |
</span>
|
334 |
-
- <?php _e( 'When set this option, you must be careful. Plugins and themes may depend on this function. You must be sure that you can disable this feature for the site.', '
|
335 |
</li>
|
336 |
<li>
|
337 |
<span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
|
338 |
-
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
|
|
|
339 |
</span>
|
340 |
-
- <?php _e( 'Absolutely safe setting, We recommend to use.', '
|
341 |
</li>
|
342 |
</ul>
|
343 |
----------<br>
|
344 |
-
<p><?php _e( 'Hover to the icon to get help for the feature you selected.', '
|
345 |
</div>
|
346 |
<?php
|
347 |
}
|
@@ -349,10 +321,11 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
349 |
/**
|
350 |
* Создает html разметку виджета рейтинга
|
351 |
*
|
352 |
-
* @
|
|
|
353 |
* @since 2.0.0
|
354 |
*
|
355 |
-
* @
|
356 |
*/
|
357 |
public function showRatingWidget( array $args ) {
|
358 |
if ( ! isset( $args[0] ) || empty( $args[0] ) ) {
|
@@ -361,19 +334,19 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
361 |
$page_url = $args[0];
|
362 |
}
|
363 |
|
364 |
-
$page_url = apply_filters( '
|
365 |
|
366 |
?>
|
367 |
<div class="wbcr-factory-sidebar-widget">
|
368 |
<p>
|
369 |
-
<strong><?php _e( 'Do you want the plugin to improved and update?', '
|
370 |
</p>
|
371 |
-
<p><?php _e( 'Help the author, leave a review on wordpress.org. Thanks to feedback, I will know that the plugin is really useful to you and is needed.', '
|
372 |
-
<p><?php _e( 'And also write your ideas on how to extend or improve the plugin.', '
|
373 |
<p>
|
374 |
<i class="wbcr-factory-icon-5stars"></i>
|
375 |
<a href="<?= $page_url ?>" title="Go rate us" target="_blank">
|
376 |
-
<strong><?php _e( 'Go rate us and push ideas', '
|
377 |
</a>
|
378 |
</p>
|
379 |
</div>
|
@@ -390,17 +363,21 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
390 |
?>
|
391 |
<div class="wbcr-factory-sidebar-widget">
|
392 |
<p>
|
393 |
-
<strong><?php _e( 'Donation for plugin development', '
|
394 |
</p>
|
395 |
<?php if ( get_locale() !== 'ru_RU' ): ?>
|
396 |
-
<form id="wbcr-factory-paypal-donation-form" action="https://www.paypal.com/cgi-bin/webscr"
|
|
|
397 |
<input type="hidden" name="cmd" value="_s-xclick">
|
398 |
<input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
|
399 |
<div class="wbcr-factory-donation-price">5$</div>
|
400 |
-
<input type="image" src="<?=
|
|
|
401 |
</form>
|
402 |
<?php else: ?>
|
403 |
-
<iframe frameborder="0" allowtransparency="true" scrolling="no"
|
|
|
|
|
404 |
<?php endif; ?>
|
405 |
</div>
|
406 |
<?php
|
@@ -414,7 +391,8 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
414 |
*/
|
415 |
public function showSupportWidget() {
|
416 |
$free_support_url = $this->plugin->get_support()->get_contacts_url();
|
417 |
-
$hot_support_url = '
|
|
|
418 |
?>
|
419 |
<div id="wbcr-clr-support-widget" class="wbcr-factory-sidebar-widget">
|
420 |
<p><strong><?php _e( 'Having Issues?', 'clearfy' ); ?></strong></p>
|
@@ -424,7 +402,8 @@ class Wbcr_FactoryClearfy216_PageBase extends Wbcr_FactoryPages424_ImpressiveThe
|
|
424 |
</p>
|
425 |
<ul>
|
426 |
<li><span class="dashicons dashicons-sos"></span>
|
427 |
-
<a href="<?= $free_support_url ?>" target="_blank"
|
|
|
428 |
</li>
|
429 |
<li style="margin-top: 15px;background: #fff4f1;padding: 10px;color: #a58074;">
|
430 |
<span class="dashicons dashicons-warning"></span>
|
14 |
}
|
15 |
|
16 |
/**
|
17 |
+
* Class Wbcr_FactoryPages425_ImpressiveThemplate
|
18 |
*
|
19 |
* @method string getInfoWidget() - get widget content information
|
20 |
* @method string getRatingWidget( array $args = [] ) - get widget content rating
|
22 |
* @method string getBusinessSuggetionWidget()
|
23 |
* @method string getSupportWidget
|
24 |
*/
|
25 |
+
class Wbcr_FactoryClearfy217_PageBase extends Wbcr_FactoryPages425_ImpressiveThemplate {
|
26 |
|
27 |
/**
|
28 |
* {@inheritDoc}
|
49 |
public $internal = true;
|
50 |
|
51 |
/**
|
52 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
53 |
*/
|
54 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
55 |
parent::__construct( $plugin );
|
56 |
}
|
57 |
|
81 |
/**
|
82 |
* Requests assets (js and css) for the page.
|
83 |
*
|
84 |
+
* @param Wbcr_Factory425_ScriptList $scripts
|
85 |
+
* @param Wbcr_Factory425_StyleList $styles
|
86 |
*
|
87 |
* @return void
|
88 |
+
* @see Wbcr_FactoryPages425_AdminPage
|
89 |
*
|
90 |
*/
|
91 |
public function assets( $scripts, $styles ) {
|
92 |
parent::assets( $scripts, $styles );
|
93 |
|
94 |
+
$this->styles->add( FACTORY_CLEARFY_217_URL . '/assets/css/clearfy-base.css' );
|
95 |
|
96 |
// todo: вынести все общие скрипты и стили фреймворка, продумать совместимость с другими плагинами
|
97 |
if ( defined( 'WCL_PLUGIN_URL' ) ) {
|
98 |
$this->styles->add( WCL_PLUGIN_URL . '/admin/assets/css/general.css' );
|
99 |
}
|
100 |
|
101 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_clearfy_page_enqueue_scripts', [
|
102 |
$this->getResultId(),
|
103 |
$scripts,
|
104 |
$styles
|
114 |
}
|
115 |
|
116 |
/**
|
117 |
+
* @return Wbcr_Factory425_Request
|
118 |
*/
|
119 |
public function request() {
|
120 |
return $this->plugin->request;
|
121 |
}
|
122 |
|
123 |
/**
|
|
|
|
|
124 |
* @param $option_name
|
125 |
+
* @param bool $default *
|
126 |
*
|
127 |
* @return mixed|void
|
128 |
+
* @since 2.0.5
|
129 |
+
*
|
130 |
*/
|
131 |
public function getPopulateOption( $option_name, $default = false ) {
|
132 |
return $this->plugin->getPopulateOption( $option_name, $default );
|
180 |
$this->plugin->deleteOption( $option_name );
|
181 |
}
|
182 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
/**
|
184 |
* @param string $position
|
185 |
*
|
202 |
/**
|
203 |
* @since 4.0.9 - является устаревшим
|
204 |
*/
|
205 |
+
$widgets = wbcr_factory_425_apply_filters_deprecated( 'wbcr_factory_pages_425_imppage_get_widgets', [
|
206 |
$widgets,
|
207 |
$position,
|
208 |
$this->plugin,
|
230 |
$purchase_url = $this->plugin->get_support()->get_pricing_url( true, 'right_sidebar_ads' );
|
231 |
|
232 |
$default_features = [
|
233 |
+
'4_premium' => __( '4 premium components now;', 'wbcr_factory_clearfy_217' ),
|
234 |
+
'40_premium' => __( '40 new premium components within a year for the single price;', 'wbcr_factory_clearfy_217' ),
|
235 |
+
'multisite_support' => __( 'Multisite support;', 'wbcr_factory_clearfy_217' ),
|
236 |
+
'advance_settings' => __( 'Advanced settings;', 'wbcr_factory_clearfy_217' ),
|
237 |
+
'no_ads' => __( 'No ads;', 'wbcr_factory_clearfy_217' ),
|
238 |
+
'perfect_support' => __( 'Perfect support.', 'wbcr_factory_clearfy_217' )
|
239 |
];
|
240 |
|
241 |
/**
|
242 |
* @since 2.0.8 - added
|
243 |
*/
|
244 |
+
$suggetion_title = __( 'MORE IN CLEARFY <span>BUSINESS</span>', 'wbcr_factory_clearfy_217' );
|
245 |
$suggetion_title = apply_filters( 'wbcr/clearfy/pages/suggetion_title', $suggetion_title, $plugin_name, $this->id );
|
246 |
|
247 |
/**
|
248 |
* @since 2.0.8 - deprecated
|
249 |
*/
|
250 |
+
$suggetion_features = wbcr_factory_425_apply_filters_deprecated( 'wbcr/clearfy/page_bussines_suggetion_features', [
|
251 |
$default_features,
|
252 |
$this->plugin->getPluginName(),
|
253 |
$this->id
|
263 |
$suggetion_features = $default_features;
|
264 |
}
|
265 |
?>
|
266 |
+
<div class="wbcr-factory-sidebar-widget wbcr-factory-clearfy-217-pro-suggettion">
|
267 |
<h3><?php echo $suggetion_title; ?></h3>
|
268 |
<ul>
|
269 |
<?php if ( ! empty( $suggetion_features ) ): ?>
|
272 |
<?php endforeach; ?>
|
273 |
<?php endif; ?>
|
274 |
</ul>
|
275 |
+
<a href="<?php echo $purchase_url ?>" class="wbcr-factory-purchase-premium" target="_blank"
|
276 |
+
rel="noopener">
|
277 |
+
<?php printf( __( 'Upgrade for $%s', 'wbcr_factory_clearfy_217' ), $upgrade_price ) ?>
|
278 |
</a>
|
279 |
</div>
|
280 |
<?php
|
292 |
<ul>
|
293 |
<li>
|
294 |
<span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-red">
|
295 |
+
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
|
296 |
+
alt=""/>
|
297 |
</span>
|
298 |
+
- <?php _e( 'A neutral setting that can not harm your site, but you must be sure that you need to use it.', 'wbcr_factory_clearfy_217' ); ?>
|
299 |
</li>
|
300 |
<li>
|
301 |
<span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
|
302 |
+
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
|
303 |
+
alt=""/>
|
304 |
</span>
|
305 |
+
- <?php _e( 'When set this option, you must be careful. Plugins and themes may depend on this function. You must be sure that you can disable this feature for the site.', 'wbcr_factory_clearfy_217' ); ?>
|
306 |
</li>
|
307 |
<li>
|
308 |
<span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
|
309 |
+
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
|
310 |
+
alt=""/>
|
311 |
</span>
|
312 |
+
- <?php _e( 'Absolutely safe setting, We recommend to use.', 'wbcr_factory_clearfy_217' ); ?>
|
313 |
</li>
|
314 |
</ul>
|
315 |
----------<br>
|
316 |
+
<p><?php _e( 'Hover to the icon to get help for the feature you selected.', 'wbcr_factory_clearfy_217' ); ?></p>
|
317 |
</div>
|
318 |
<?php
|
319 |
}
|
321 |
/**
|
322 |
* Создает html разметку виджета рейтинга
|
323 |
*
|
324 |
+
* @param array $args
|
325 |
+
*
|
326 |
* @since 2.0.0
|
327 |
*
|
328 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
329 |
*/
|
330 |
public function showRatingWidget( array $args ) {
|
331 |
if ( ! isset( $args[0] ) || empty( $args[0] ) ) {
|
334 |
$page_url = $args[0];
|
335 |
}
|
336 |
|
337 |
+
$page_url = apply_filters( 'wbcr_factory_pages_425_imppage_rating_widget_url', $page_url, $this->plugin->getPluginName(), $this->getResultId() );
|
338 |
|
339 |
?>
|
340 |
<div class="wbcr-factory-sidebar-widget">
|
341 |
<p>
|
342 |
+
<strong><?php _e( 'Do you want the plugin to improved and update?', 'wbcr_factory_clearfy_217' ); ?></strong>
|
343 |
</p>
|
344 |
+
<p><?php _e( 'Help the author, leave a review on wordpress.org. Thanks to feedback, I will know that the plugin is really useful to you and is needed.', 'wbcr_factory_clearfy_217' ); ?></p>
|
345 |
+
<p><?php _e( 'And also write your ideas on how to extend or improve the plugin.', 'wbcr_factory_clearfy_217' ); ?></p>
|
346 |
<p>
|
347 |
<i class="wbcr-factory-icon-5stars"></i>
|
348 |
<a href="<?= $page_url ?>" title="Go rate us" target="_blank">
|
349 |
+
<strong><?php _e( 'Go rate us and push ideas', 'wbcr_factory_clearfy_217' ); ?></strong>
|
350 |
</a>
|
351 |
</p>
|
352 |
</div>
|
363 |
?>
|
364 |
<div class="wbcr-factory-sidebar-widget">
|
365 |
<p>
|
366 |
+
<strong><?php _e( 'Donation for plugin development', 'wbcr_factory_clearfy_217' ); ?></strong>
|
367 |
</p>
|
368 |
<?php if ( get_locale() !== 'ru_RU' ): ?>
|
369 |
+
<form id="wbcr-factory-paypal-donation-form" action="https://www.paypal.com/cgi-bin/webscr"
|
370 |
+
method="post" target="_blank">
|
371 |
<input type="hidden" name="cmd" value="_s-xclick">
|
372 |
<input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
|
373 |
<div class="wbcr-factory-donation-price">5$</div>
|
374 |
+
<input type="image" src="<?= FACTORY_PAGES_425_URL ?>/templates/assets/img/paypal-donate.png"
|
375 |
+
border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
|
376 |
</form>
|
377 |
<?php else: ?>
|
378 |
+
<iframe frameborder="0" allowtransparency="true" scrolling="no"
|
379 |
+
src="https://money.yandex.ru/embed/donate.xml?account=410011242846510&quickpay=donate&payment-type-choice=on&mobile-payment-type-choice=on&default-sum=300&targets=%D0%9D%D0%B0+%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D1%83+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0+%D0%B8+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D1%83+%D0%BD%D0%BE%D0%B2%D1%8B%D1%85+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9.+&target-visibility=on&project-name=Webcraftic&project-site=&button-text=05&comment=on&hint=%D0%9A%D0%B0%D0%BA%D1%83%D1%8E+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E+%D0%BD%D1%83%D0%B6%D0%BD%D0%BE+%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C+%D0%B2+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%3F&mail=on&successURL="
|
380 |
+
width="508" height="187"></iframe>
|
381 |
<?php endif; ?>
|
382 |
</div>
|
383 |
<?php
|
391 |
*/
|
392 |
public function showSupportWidget() {
|
393 |
$free_support_url = $this->plugin->get_support()->get_contacts_url();
|
394 |
+
$hot_support_url = $this->plugin->get_support()->get_site_url() . '/other-questions-support';
|
395 |
+
|
396 |
?>
|
397 |
<div id="wbcr-clr-support-widget" class="wbcr-factory-sidebar-widget">
|
398 |
<p><strong><?php _e( 'Having Issues?', 'clearfy' ); ?></strong></p>
|
402 |
</p>
|
403 |
<ul>
|
404 |
<li><span class="dashicons dashicons-sos"></span>
|
405 |
+
<a href="<?= $free_support_url ?>" target="_blank"
|
406 |
+
rel="noopener"><?php _e( 'Get starting free support', 'clearfy' ); ?></a>
|
407 |
</li>
|
408 |
<li style="margin-top: 15px;background: #fff4f1;padding: 10px;color: #a58074;">
|
409 |
<span class="dashicons dashicons-warning"></span>
|
libs/factory/core/boot.php
CHANGED
@@ -14,49 +14,49 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if ( defined( '
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
-
define( '
|
22 |
|
23 |
-
define( '
|
24 |
|
25 |
-
define( '
|
26 |
-
define( '
|
27 |
|
28 |
-
load_plugin_textdomain( '
|
29 |
|
30 |
#comp merge
|
31 |
-
require_once(
|
32 |
|
33 |
-
require_once(
|
34 |
-
require_once(
|
35 |
|
36 |
-
require_once(
|
37 |
-
require_once(
|
38 |
-
require_once(
|
39 |
-
require_once(
|
40 |
-
require_once(
|
41 |
|
42 |
// ASSETS
|
43 |
-
require_once(
|
44 |
-
require_once(
|
45 |
-
require_once(
|
46 |
|
47 |
// PREMIUM
|
48 |
-
require_once(
|
49 |
-
require_once(
|
50 |
-
require_once(
|
51 |
|
52 |
// UPDATES
|
53 |
-
require_once(
|
54 |
-
require_once(
|
55 |
-
require_once(
|
56 |
-
require_once(
|
57 |
|
58 |
-
require_once(
|
59 |
|
60 |
-
require_once(
|
61 |
-
require_once(
|
62 |
#endcomp
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if ( defined( 'FACTORY_425_LOADED' ) ) {
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
+
define( 'FACTORY_425_LOADED', true );
|
22 |
|
23 |
+
define( 'FACTORY_425_VERSION', '4.2.5' );
|
24 |
|
25 |
+
define( 'FACTORY_425_DIR', dirname( __FILE__ ) );
|
26 |
+
define( 'FACTORY_425_URL', plugins_url( null, __FILE__ ) );
|
27 |
|
28 |
+
load_plugin_textdomain( 'wbcr_factory_425', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
|
29 |
|
30 |
#comp merge
|
31 |
+
require_once( FACTORY_425_DIR . '/includes/functions.php' );
|
32 |
|
33 |
+
require_once( FACTORY_425_DIR . '/includes/entities/class-factory-paths.php' );
|
34 |
+
require_once( FACTORY_425_DIR . '/includes/entities/class-factory-support.php' );
|
35 |
|
36 |
+
require_once( FACTORY_425_DIR . '/includes/class-factory-requests.php' );
|
37 |
+
require_once( FACTORY_425_DIR . '/includes/class-factory-options.php' );
|
38 |
+
require_once( FACTORY_425_DIR . '/includes/class-factory-plugin-base.php' );
|
39 |
+
require_once( FACTORY_425_DIR . '/includes/class-factory-migrations.php' );
|
40 |
+
require_once( FACTORY_425_DIR . '/includes/class-factory-notices.php' );
|
41 |
|
42 |
// ASSETS
|
43 |
+
require_once( FACTORY_425_DIR . '/includes/assets-managment/class-factory-assets-list.php' );
|
44 |
+
require_once( FACTORY_425_DIR . '/includes/assets-managment/class-factory-script-list.php' );
|
45 |
+
require_once( FACTORY_425_DIR . '/includes/assets-managment/class-factory-style-list.php' );
|
46 |
|
47 |
// PREMIUM
|
48 |
+
require_once( FACTORY_425_DIR . '/includes/premium/class-factory-license-interface.php' );
|
49 |
+
require_once( FACTORY_425_DIR . '/includes/premium/class-factory-provider-abstract.php' );
|
50 |
+
require_once( FACTORY_425_DIR . '/includes/premium/class-factory-manager.php' );
|
51 |
|
52 |
// UPDATES
|
53 |
+
require_once( FACTORY_425_DIR . '/includes/updates/repositories/class-factory-repository-abstract.php' );
|
54 |
+
require_once( FACTORY_425_DIR . '/includes/updates/repositories/class-factory-wordpress.php' );
|
55 |
+
require_once( FACTORY_425_DIR . '/includes/updates/class-factory-upgrader.php' );
|
56 |
+
require_once( FACTORY_425_DIR . '/includes/updates/class-factory-premium-upgrader.php' );
|
57 |
|
58 |
+
require_once( FACTORY_425_DIR . '/includes/class-factory-plugin-abstract.php' );
|
59 |
|
60 |
+
require_once( FACTORY_425_DIR . '/includes/activation/class-factory-activator.php' );
|
61 |
+
require_once( FACTORY_425_DIR . '/includes/activation/class-factory-update.php' );
|
62 |
#endcomp
|
libs/factory/core/includes/activation/class-factory-activator.php
CHANGED
@@ -19,16 +19,16 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
-
abstract class
|
23 |
|
24 |
/**
|
25 |
* Curent plugin.
|
26 |
*
|
27 |
-
* @var
|
28 |
*/
|
29 |
public $plugin;
|
30 |
|
31 |
-
public function __construct(
|
32 |
$this->plugin = $plugin;
|
33 |
}
|
34 |
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
+
abstract class Wbcr_Factory425_Activator {
|
23 |
|
24 |
/**
|
25 |
* Curent plugin.
|
26 |
*
|
27 |
+
* @var Wbcr_Factory425_Plugin
|
28 |
*/
|
29 |
public $plugin;
|
30 |
|
31 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
32 |
$this->plugin = $plugin;
|
33 |
}
|
34 |
|
libs/factory/core/includes/activation/class-factory-update.php
CHANGED
@@ -20,16 +20,16 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
abstract class
|
24 |
|
25 |
/**
|
26 |
* Current plugin
|
27 |
*
|
28 |
-
* @var
|
29 |
*/
|
30 |
var $plugin;
|
31 |
|
32 |
-
public function __construct(
|
33 |
$this->plugin = $plugin;
|
34 |
}
|
35 |
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
abstract class Wbcr_Factory425_Update {
|
24 |
|
25 |
/**
|
26 |
* Current plugin
|
27 |
*
|
28 |
+
* @var Wbcr_Factory425_Plugin
|
29 |
*/
|
30 |
var $plugin;
|
31 |
|
32 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
33 |
$this->plugin = $plugin;
|
34 |
}
|
35 |
|
libs/factory/core/includes/assets-managment/class-factory-assets-list.php
CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
-
class
|
23 |
|
24 |
protected $all = [];
|
25 |
public $header_place = [];
|
@@ -29,15 +29,15 @@ class Wbcr_Factory424_AssetsList {
|
|
29 |
protected $default_place;
|
30 |
|
31 |
/**
|
32 |
-
* @var
|
33 |
*/
|
34 |
protected $plugin;
|
35 |
|
36 |
/**
|
37 |
-
* @param
|
38 |
* @param bool $defaultIsFooter
|
39 |
*/
|
40 |
-
public function __construct(
|
41 |
$this->plugin = $plugin;
|
42 |
|
43 |
if ( $defaultIsFooter ) {
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
+
class Wbcr_Factory425_AssetsList {
|
23 |
|
24 |
protected $all = [];
|
25 |
public $header_place = [];
|
29 |
protected $default_place;
|
30 |
|
31 |
/**
|
32 |
+
* @var Wbcr_Factory425_Plugin
|
33 |
*/
|
34 |
protected $plugin;
|
35 |
|
36 |
/**
|
37 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
38 |
* @param bool $defaultIsFooter
|
39 |
*/
|
40 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin, $defaultIsFooter = true ) {
|
41 |
$this->plugin = $plugin;
|
42 |
|
43 |
if ( $defaultIsFooter ) {
|
libs/factory/core/includes/assets-managment/class-factory-script-list.php
CHANGED
@@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
public $localize_data = [];
|
26 |
public $use_ajax = false;
|
@@ -149,7 +149,7 @@ class Wbcr_Factory424_ScriptList extends Wbcr_Factory424_AssetsList {
|
|
149 |
* @param string $varname
|
150 |
* @param string $data
|
151 |
*
|
152 |
-
* @return
|
153 |
*/
|
154 |
public function localize( $varname, $data ) {
|
155 |
$bindTo = count( $this->all ) == 0 ? null : end( $this->all );
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
class Wbcr_Factory425_ScriptList extends Wbcr_Factory425_AssetsList {
|
24 |
|
25 |
public $localize_data = [];
|
26 |
public $use_ajax = false;
|
149 |
* @param string $varname
|
150 |
* @param string $data
|
151 |
*
|
152 |
+
* @return Wbcr_Factory425_ScriptList $this
|
153 |
*/
|
154 |
public function localize( $varname, $data ) {
|
155 |
$bindTo = count( $this->all ) == 0 ? null : end( $this->all );
|
libs/factory/core/includes/assets-managment/class-factory-style-list.php
CHANGED
@@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
/**
|
26 |
* Adds new items to the collection (default place).
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
class Wbcr_Factory425_StyleList extends Wbcr_Factory425_AssetsList {
|
24 |
|
25 |
/**
|
26 |
* Adds new items to the collection (default place).
|
libs/factory/core/includes/class-check-compatibility.php
CHANGED
@@ -75,19 +75,19 @@ if ( ! class_exists( 'Wbcr_Factory_Compatibility' ) ) {
|
|
75 |
$notice_text = $notice_default_text = '';
|
76 |
$notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
|
77 |
|
78 |
-
$notice_default_text .= sprintf( __( 'The %s plugin has stopped.', '
|
79 |
$notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
|
80 |
|
81 |
$has_one = false;
|
82 |
|
83 |
if ( ! $this->isPhpCompatibility() ) {
|
84 |
$has_one = true;
|
85 |
-
$notice_text .= '- ' . sprintf( __( 'You need to update the PHP version to %s or higher!', '
|
86 |
}
|
87 |
|
88 |
if ( ! $this->isWpCompatibility() ) {
|
89 |
$has_one = true;
|
90 |
-
$notice_text .= '- ' . sprintf( __( 'You need to update WordPress to %s or higher!', '
|
91 |
}
|
92 |
|
93 |
if ( $has_one ) {
|
75 |
$notice_text = $notice_default_text = '';
|
76 |
$notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
|
77 |
|
78 |
+
$notice_default_text .= sprintf( __( 'The %s plugin has stopped.', 'wbcr_factory_clearfy_217' ), $this->plugin_title ) . ' ';
|
79 |
$notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
|
80 |
|
81 |
$has_one = false;
|
82 |
|
83 |
if ( ! $this->isPhpCompatibility() ) {
|
84 |
$has_one = true;
|
85 |
+
$notice_text .= '- ' . sprintf( __( 'You need to update the PHP version to %s or higher!', 'wbcr_factory_425' ), $this->required_php_version ) . '<br>';
|
86 |
}
|
87 |
|
88 |
if ( ! $this->isWpCompatibility() ) {
|
89 |
$has_one = true;
|
90 |
+
$notice_text .= '- ' . sprintf( __( 'You need to update WordPress to %s or higher!', 'wbcr_factory_425' ), $this->required_wp_version ) . '<br>';
|
91 |
}
|
92 |
|
93 |
if ( $has_one ) {
|
libs/factory/core/includes/class-factory-migrations.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use Exception;
|
6 |
-
use
|
7 |
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
exit;
|
@@ -35,11 +35,11 @@ class Migrations {
|
|
35 |
/**
|
36 |
* Migrations constructor.
|
37 |
*
|
38 |
-
* @param
|
39 |
*
|
40 |
* @throws Exception
|
41 |
*/
|
42 |
-
public function __construct(
|
43 |
|
44 |
$this->plugin = $plugin;
|
45 |
$plugin_name = $plugin->getPluginName();
|
@@ -129,14 +129,14 @@ class Migrations {
|
|
129 |
$fix_migration_error_url = add_query_arg( 'wbcr_factory_fix_migration_error', 1 );
|
130 |
|
131 |
$notice_text = $migration_error_text;
|
132 |
-
$notice_text .= "<br><br><a href='{$fix_migration_error_url}' class='button button-default'>" . __( 'I fixed, confirm migration', '
|
133 |
|
134 |
$notices[] = [
|
135 |
'id' => 'migration_debug_bar',
|
136 |
'type' => 'error',
|
137 |
'dismissible' => false,
|
138 |
'dismiss_expires' => 0,
|
139 |
-
'text' => '<p><b>' . $this->plugin->getPluginTitle() . ' ' . __( 'migration error', '
|
140 |
];
|
141 |
|
142 |
return $notices;
|
@@ -162,19 +162,19 @@ class Migrations {
|
|
162 |
|
163 |
$migrate_url = add_query_arg( 'wbcr_factory_test_migration', 1 );
|
164 |
|
165 |
-
$notice_text = __( "Plugin activated:", "
|
166 |
|
167 |
-
$notice_text .= __( "Old plugin version (debug):", "
|
168 |
-
$notice_text .= __( "Current plugin version:", "
|
169 |
-
$notice_text .= __( "Need migration:", "
|
170 |
-
$notice_text .= "<a href='{$migrate_url}' class='button button-default'>" . __( "Migrate now", "
|
171 |
|
172 |
$notices[] = [
|
173 |
'id' => 'migration_debug_bar',
|
174 |
'type' => 'warning',
|
175 |
'dismissible' => false,
|
176 |
'dismiss_expires' => 0,
|
177 |
-
'text' => '<p><b style="color:red;">' . $this->plugin->getPluginTitle() . ' ' . __( 'migrations DEBUG bar', '
|
178 |
];
|
179 |
|
180 |
return $notices;
|
@@ -505,7 +505,7 @@ class Migrations {
|
|
505 |
$classes = [];
|
506 |
|
507 |
if ( ! function_exists( 'token_get_all' ) ) {
|
508 |
-
throw new Exception( __( 'There is no PHP Tokenizer extension installed on your server, you cannot use the token_get_all function.', '
|
509 |
}
|
510 |
|
511 |
$tokens = token_get_all( $phpCode );
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425;
|
4 |
|
5 |
use Exception;
|
6 |
+
use Wbcr_Factory425_Plugin;
|
7 |
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
exit;
|
35 |
/**
|
36 |
* Migrations constructor.
|
37 |
*
|
38 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
39 |
*
|
40 |
* @throws Exception
|
41 |
*/
|
42 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
43 |
|
44 |
$this->plugin = $plugin;
|
45 |
$plugin_name = $plugin->getPluginName();
|
129 |
$fix_migration_error_url = add_query_arg( 'wbcr_factory_fix_migration_error', 1 );
|
130 |
|
131 |
$notice_text = $migration_error_text;
|
132 |
+
$notice_text .= "<br><br><a href='{$fix_migration_error_url}' class='button button-default'>" . __( 'I fixed, confirm migration', 'wbcr_factory_425' ) . "</a>";
|
133 |
|
134 |
$notices[] = [
|
135 |
'id' => 'migration_debug_bar',
|
136 |
'type' => 'error',
|
137 |
'dismissible' => false,
|
138 |
'dismiss_expires' => 0,
|
139 |
+
'text' => '<p><b>' . $this->plugin->getPluginTitle() . ' ' . __( 'migration error', 'wbcr_factory_425' ) . '</b><br>' . $notice_text . '</p>'
|
140 |
];
|
141 |
|
142 |
return $notices;
|
162 |
|
163 |
$migrate_url = add_query_arg( 'wbcr_factory_test_migration', 1 );
|
164 |
|
165 |
+
$notice_text = __( "Plugin activated:", "wbcr_factory_425" ) . ' ' . date( "Y-m-d H:i:s", $this->get_plugin_activated_time() ) . "<br>";
|
166 |
|
167 |
+
$notice_text .= __( "Old plugin version (debug):", "wbcr_factory_425" ) . ' ' . $this->get_old_plugin_version() . "<br>";
|
168 |
+
$notice_text .= __( "Current plugin version:", "wbcr_factory_425" ) . ' ' . $this->get_current_plugin_version() . "<br>";
|
169 |
+
$notice_text .= __( "Need migration:", "wbcr_factory_425" ) . ' ' . ( $this->need_migration() ? "true" : "false" ) . "<br><br>";
|
170 |
+
$notice_text .= "<a href='{$migrate_url}' class='button button-default'>" . __( "Migrate now", "wbcr_factory_425" ) . "</a><br>";
|
171 |
|
172 |
$notices[] = [
|
173 |
'id' => 'migration_debug_bar',
|
174 |
'type' => 'warning',
|
175 |
'dismissible' => false,
|
176 |
'dismiss_expires' => 0,
|
177 |
+
'text' => '<p><b style="color:red;">' . $this->plugin->getPluginTitle() . ' ' . __( 'migrations DEBUG bar', 'wbcr_factory_425' ) . '</b><br>' . $notice_text . '</p>'
|
178 |
];
|
179 |
|
180 |
return $notices;
|
505 |
$classes = [];
|
506 |
|
507 |
if ( ! function_exists( 'token_get_all' ) ) {
|
508 |
+
throw new Exception( __( 'There is no PHP Tokenizer extension installed on your server, you cannot use the token_get_all function.', 'wbcr_factory_425' ) );
|
509 |
}
|
510 |
|
511 |
$tokens = token_get_all( $phpCode );
|
libs/factory/core/includes/class-factory-notices.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
-
use
|
6 |
|
7 |
// Exit if accessed directly
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -27,7 +27,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
27 |
class Notices {
|
28 |
|
29 |
/**
|
30 |
-
* @var
|
31 |
*/
|
32 |
protected $plugin;
|
33 |
/**
|
@@ -58,7 +58,7 @@ class Notices {
|
|
58 |
/**
|
59 |
* Инициализируем уведомлений сразу после загрузки модуля уведомлений
|
60 |
*
|
61 |
-
* @param
|
62 |
*/
|
63 |
public function __construct( $plugin ) {
|
64 |
//default notices
|
@@ -86,13 +86,13 @@ class Notices {
|
|
86 |
/**
|
87 |
* @since 2.1.2 - является устаревшим
|
88 |
*/
|
89 |
-
$this->notices =
|
90 |
$this->notices,
|
91 |
$this->plugin->getPluginName(),
|
92 |
], '2.1.2', 'wbcr/factory/admin_notices' );
|
93 |
|
94 |
/**
|
95 |
-
* @since 2.1.2 - Добавлен, модуль factory_notices_000 был удален. Поэтому в этому хуке мы заменили префикс на
|
96 |
*/
|
97 |
$this->notices = apply_filters( 'wbcr/factory/admin_notices', $this->notices, $this->plugin->getPluginName() );
|
98 |
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425;
|
4 |
|
5 |
+
use Wbcr_Factory425_Plugin;
|
6 |
|
7 |
// Exit if accessed directly
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
27 |
class Notices {
|
28 |
|
29 |
/**
|
30 |
+
* @var Wbcr_Factory425_Plugin
|
31 |
*/
|
32 |
protected $plugin;
|
33 |
/**
|
58 |
/**
|
59 |
* Инициализируем уведомлений сразу после загрузки модуля уведомлений
|
60 |
*
|
61 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
62 |
*/
|
63 |
public function __construct( $plugin ) {
|
64 |
//default notices
|
86 |
/**
|
87 |
* @since 2.1.2 - является устаревшим
|
88 |
*/
|
89 |
+
$this->notices = wbcr_factory_425_apply_filters_deprecated( 'wbcr_factory_notices_000_list', [
|
90 |
$this->notices,
|
91 |
$this->plugin->getPluginName(),
|
92 |
], '2.1.2', 'wbcr/factory/admin_notices' );
|
93 |
|
94 |
/**
|
95 |
+
* @since 2.1.2 - Добавлен, модуль factory_notices_000 был удален. Поэтому в этому хуке мы заменили префикс на factory_425
|
96 |
*/
|
97 |
$this->notices = apply_filters( 'wbcr/factory/admin_notices', $this->notices, $this->plugin->getPluginName() );
|
98 |
|
libs/factory/core/includes/class-factory-options.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
use Exception;
|
@@ -10,7 +10,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
10 |
}
|
11 |
|
12 |
/**
|
13 |
-
* Трейт используется для расширения базового класса плагина
|
14 |
*
|
15 |
* Этот трейт является оберткой для Wordpress функций get_option, get_site_option, update_option, update_site_option,
|
16 |
* delete_option, delete_site_option. Основная задача была получать, обновлять, удалять опции без использования префиксов,
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425;
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
use Exception;
|
10 |
}
|
11 |
|
12 |
/**
|
13 |
+
* Трейт используется для расширения базового класса плагина Wbcr_Factory425_Base, позволяя работать с опциями плагина.
|
14 |
*
|
15 |
* Этот трейт является оберткой для Wordpress функций get_option, get_site_option, update_option, update_site_option,
|
16 |
* delete_option, delete_site_option. Основная задача была получать, обновлять, удалять опции без использования префиксов,
|
libs/factory/core/includes/class-factory-plugin-abstract.php
CHANGED
@@ -24,42 +24,42 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
24 |
* @package factory-core
|
25 |
*
|
26 |
*/
|
27 |
-
abstract class
|
28 |
|
29 |
/**
|
30 |
-
* Instance class
|
31 |
*
|
32 |
* @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/390561806
|
33 |
-
* @var
|
34 |
*/
|
35 |
public $request;
|
36 |
|
37 |
/**
|
38 |
* @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/393936924
|
39 |
-
* @var \WBCR\
|
40 |
*/
|
41 |
public $premium;
|
42 |
|
43 |
/**
|
44 |
* The Bootstrap Manager class
|
45 |
*
|
46 |
-
* @var
|
47 |
*/
|
48 |
public $bootstrap;
|
49 |
|
50 |
/**
|
51 |
* The Bootstrap Manager class
|
52 |
*
|
53 |
-
* @var
|
54 |
*/
|
55 |
public $forms;
|
56 |
|
57 |
/**
|
58 |
-
* Простой массив со списком зарегистрированных классов унаследованных от
|
59 |
* Классы активации используются для упаковки набора функций, которые нужно выполнить во время
|
60 |
* активации плагина.
|
61 |
*
|
62 |
-
* @var array[]
|
63 |
*/
|
64 |
protected $activator_class = [];
|
65 |
|
@@ -93,20 +93,20 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
93 |
/**
|
94 |
* Инициализирует компоненты фреймворка и плагина.
|
95 |
*
|
96 |
-
* @
|
97 |
-
*
|
98 |
-
* @param array $data A set of plugin data.
|
99 |
*
|
100 |
-
* @param string $plugin_path
|
101 |
*
|
102 |
* @throws Exception
|
|
|
|
|
103 |
*/
|
104 |
public function __construct( $plugin_path, $data ) {
|
105 |
|
106 |
parent::__construct( $plugin_path, $data );
|
107 |
|
108 |
-
$this->request = new
|
109 |
-
//$this->route = new
|
110 |
|
111 |
// INIT PLUGIN FRAMEWORK MODULES
|
112 |
// Framework modules should always be loaded first,
|
@@ -138,18 +138,18 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
138 |
* Устанавливает класс менеджер, которому плагин будет делегировать подключение ресурсов (картинок,
|
139 |
* скриптов, стилей) фреймворка.
|
140 |
*
|
141 |
-
* @param
|
142 |
*/
|
143 |
-
public function setBootstap(
|
144 |
$this->bootstrap = $bootstrap;
|
145 |
}
|
146 |
|
147 |
/**
|
148 |
* Устанавливает класс менеджер, которому будет делегирована работа с html формами фреймворка.
|
149 |
*
|
150 |
-
* @param
|
151 |
*/
|
152 |
-
public function setForms(
|
153 |
$this->forms = $forms;
|
154 |
}
|
155 |
|
@@ -171,14 +171,15 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
171 |
* С помощью этого класса, мы проверяем валидность лицензий и получаем дополнительную информацию
|
172 |
* о лицензии и ее покупателе. Класс используется в премиум менеджере.
|
173 |
*
|
|
|
|
|
|
|
174 |
* @since 4.1.6 - Добавлен
|
175 |
*
|
176 |
-
* @param string $name Имя провайдер
|
177 |
-
* @param string $class_name Имя класса провайдера
|
178 |
*/
|
179 |
public function set_license_provider( $name, $class_name ) {
|
180 |
-
if ( ! isset( WBCR\
|
181 |
-
WBCR\
|
182 |
}
|
183 |
}
|
184 |
|
@@ -188,14 +189,15 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
188 |
* С помощью этого класса мы реализиуем доставку и откат обновлений плагина, на сайт пользователя.
|
189 |
* Скачиваение премиум версий происходит по защенному каналу. Класс используется в менеджере обновлений.
|
190 |
*
|
|
|
|
|
|
|
191 |
* @since 4.1.7 - Добавлен
|
192 |
*
|
193 |
-
* @param string $name Имя репозитория
|
194 |
-
* @param string $class_name Имя класса репозитория
|
195 |
*/
|
196 |
public function set_update_repository( $name, $class_name ) {
|
197 |
-
if ( ! isset( WBCR\
|
198 |
-
WBCR\
|
199 |
}
|
200 |
}
|
201 |
|
@@ -205,9 +207,9 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
205 |
* Доступен глобально через метод app(), чаще всего используется для создания точек для ротации
|
206 |
* рекламных объявлений.
|
207 |
*
|
208 |
-
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
209 |
-
* @since 1.1
|
210 |
* @return \WBCR\Factory_Adverts_000\Base
|
|
|
|
|
211 |
*/
|
212 |
public function get_adverts_manager() {
|
213 |
return $this->adverts;
|
@@ -217,37 +219,38 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
217 |
* Устанавливает текстовый домен для плагина. Текстовый домен берется из заголовка входного
|
218 |
* файла плагина.
|
219 |
*
|
|
|
220 |
* @since 4.0.8 - Добавлен
|
221 |
*
|
222 |
* @see https://codex.wordpress.org/I18n_for_WordPress_Developers
|
223 |
* @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/327828 - документация по входному файлу
|
224 |
*/
|
225 |
-
|
226 |
-
if ( empty( $
|
227 |
return;
|
228 |
}
|
229 |
|
230 |
-
$locale = apply_filters( 'plugin_locale', is_admin() ? get_user_locale() : get_locale(), $
|
231 |
|
232 |
-
$mofile = $
|
233 |
|
234 |
-
if ( ! load_textdomain( $
|
235 |
-
load_muplugin_textdomain( $
|
236 |
}
|
237 |
}
|
238 |
|
239 |
public function newScriptList() {
|
240 |
-
return new
|
241 |
}
|
242 |
|
243 |
public function newStyleList() {
|
244 |
-
return new
|
245 |
}
|
246 |
|
247 |
/**
|
248 |
* Все страницы плагина создаются через специальную обертку, за которую отвечает модуль
|
249 |
* фреймворка pages. Разработчик создает собственный класс, унаследованный от
|
250 |
-
*
|
251 |
* Метод выполняет подключение класса страницы и регистрирует его в модуле фреймворка
|
252 |
* pages.
|
253 |
*
|
@@ -256,9 +259,9 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
256 |
*
|
257 |
* @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/222887949 - документация по созданию страниц
|
258 |
*
|
259 |
-
* @param string $class_name
|
260 |
-
* Регистрируемый класс должен быть унаследован от класса
|
261 |
-
* @param string $file_path
|
262 |
*
|
263 |
* @throws Exception
|
264 |
*/
|
@@ -278,11 +281,11 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
278 |
throw new Exception( 'A class with this name {' . $class_name . '} does not exist.' );
|
279 |
}
|
280 |
|
281 |
-
if ( ! class_exists( '
|
282 |
-
throw new Exception( 'The
|
283 |
}
|
284 |
|
285 |
-
|
286 |
}
|
287 |
|
288 |
/**
|
@@ -291,9 +294,9 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
291 |
* Wbcr_FactoryTypes000_Type, а затем регистрирует его через этот метод. Метод выполняет
|
292 |
* подключение класса с новым типом записи и регистрирует его в модуле фреймворка types. *
|
293 |
*
|
294 |
-
* @param string $class_name
|
295 |
* Регистрируемый класс должен быть унаследован от класса Wbcr_FactoryTypes000_Type.
|
296 |
-
* @param string $file_path
|
297 |
*
|
298 |
* @throws Exception
|
299 |
* @deprecated 4.1.7 You cannot use it!
|
@@ -305,11 +308,11 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
305 |
/**
|
306 |
* Registers a class to activate the plugin.
|
307 |
*
|
308 |
-
* @
|
309 |
-
*
|
310 |
-
* @param string $className class name of the plugin activator.
|
311 |
*
|
312 |
* @return void
|
|
|
|
|
313 |
*/
|
314 |
public function registerActivation( $className ) {
|
315 |
$this->activator_class[] = $className;
|
@@ -321,24 +324,24 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
321 |
/**
|
322 |
* It's invoked on plugin activation. Don't excite it directly.
|
323 |
*
|
324 |
-
* @since 1.0.0
|
325 |
* @return void
|
|
|
326 |
*/
|
327 |
public function activation_hook() {
|
328 |
|
329 |
/**
|
330 |
* @since 4.1.1 - change hook name
|
331 |
*/
|
332 |
-
if ( apply_filters( "wbcr/
|
333 |
return;
|
334 |
}
|
335 |
|
336 |
/**
|
337 |
-
*
|
338 |
*
|
339 |
* @since 4.1.1 - deprecated
|
340 |
*/
|
341 |
-
|
342 |
$this
|
343 |
], '4.1.1', "wbcr/factory/plugin_activation" );
|
344 |
|
@@ -347,7 +350,7 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
347 |
*
|
348 |
* @since 4.1.2 - deprecated
|
349 |
*/
|
350 |
-
|
351 |
$this
|
352 |
], '4.1.2', "wbcr/factory/before_plugin_activation" );
|
353 |
|
@@ -363,16 +366,16 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
363 |
*
|
364 |
* @since 4.1.2 - deprecated
|
365 |
*/
|
366 |
-
|
367 |
$this
|
368 |
], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_activation" );
|
369 |
|
370 |
/**
|
371 |
-
*
|
372 |
*
|
373 |
* @since 4.1.1 - deprecated
|
374 |
*/
|
375 |
-
|
376 |
$this
|
377 |
], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_activation" );
|
378 |
|
@@ -404,24 +407,24 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
404 |
/**
|
405 |
* It's invoked on plugin deactionvation. Don't excite it directly.
|
406 |
*
|
407 |
-
* @since 1.0.0
|
408 |
* @return void
|
|
|
409 |
*/
|
410 |
public function deactivation_hook() {
|
411 |
|
412 |
/**
|
413 |
* @since 4.1.1 - change hook name
|
414 |
*/
|
415 |
-
if ( apply_filters( "wbcr/
|
416 |
return;
|
417 |
}
|
418 |
|
419 |
/**
|
420 |
-
*
|
421 |
*
|
422 |
* @since 4.1.1 - deprecated
|
423 |
*/
|
424 |
-
|
425 |
$this
|
426 |
], '4.1.1', "wbcr/factory/plugin_deactivation" );
|
427 |
|
@@ -430,7 +433,7 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
430 |
*
|
431 |
* @since 4.1.2 - deprecated
|
432 |
*/
|
433 |
-
|
434 |
$this
|
435 |
], '4.1.2', "wbcr/factory/before_plugin_deactivation" );
|
436 |
|
@@ -442,11 +445,11 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
442 |
do_action( 'wbcr/factory/plugin_deactivation', $this );
|
443 |
|
444 |
/**
|
445 |
-
*
|
446 |
*
|
447 |
* @since 4.1.1 - deprecated
|
448 |
*/
|
449 |
-
|
450 |
$this
|
451 |
], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation" );
|
452 |
|
@@ -455,7 +458,7 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
455 |
*
|
456 |
* @since 4.1.2 - deprecated
|
457 |
*/
|
458 |
-
|
459 |
$this
|
460 |
], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation" );
|
461 |
|
@@ -492,8 +495,8 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
492 |
* @throws Exception
|
493 |
*/
|
494 |
public function getPluginPageUrl( $page_id, $args = [] ) {
|
495 |
-
if ( ! class_exists( '
|
496 |
-
throw new Exception( 'The
|
497 |
}
|
498 |
|
499 |
if ( ! is_admin() ) {
|
@@ -502,7 +505,7 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
502 |
return null;
|
503 |
}
|
504 |
|
505 |
-
return
|
506 |
}
|
507 |
|
508 |
/**
|
@@ -544,14 +547,15 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
544 |
'plugin_dir' => constant( $prefix . 'PLUGIN_DIR' ),
|
545 |
'plugin_url' => constant( $prefix . 'PLUGIN_URL' ),
|
546 |
'plugin_base' => constant( $prefix . 'PLUGIN_BASE' ),
|
|
|
547 |
'plugin_version' => constant( $prefix . 'PLUGIN_VERSION' )
|
548 |
];
|
549 |
|
550 |
/**
|
551 |
* Оповещает внешние приложения, что компонент плагина был загружен
|
552 |
*
|
553 |
-
* @param array
|
554 |
-
* @param string $plugin_name
|
555 |
*/
|
556 |
do_action( "wbcr/factory/component_{$component_ID}_loaded", $this->loaded_plugin_components[ $component_ID ], $this->getPluginName() );
|
557 |
} else {
|
@@ -596,12 +600,12 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
596 |
/**
|
597 |
* @since 4.1.1 - deprecated
|
598 |
*/
|
599 |
-
|
600 |
|
601 |
/**
|
602 |
* @since 4.1.1 - add
|
603 |
*/
|
604 |
-
do_action( 'wbcr/
|
605 |
}
|
606 |
|
607 |
|
@@ -612,10 +616,22 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
612 |
*/
|
613 |
private function register_plugin_hooks() {
|
614 |
|
615 |
-
add_action( 'plugins_loaded',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
616 |
|
617 |
if ( is_admin() ) {
|
618 |
-
add_filter( '
|
619 |
|
620 |
register_activation_hook( $this->get_paths()->main_file, [ $this, 'activation_hook' ] );
|
621 |
register_deactivation_hook( $this->get_paths()->main_file, [ $this, 'deactivation_hook' ] );
|
@@ -625,37 +641,37 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
625 |
/**
|
626 |
* Инициализируем миграции плагина
|
627 |
*
|
628 |
-
* @since 4.1.1
|
629 |
* @return void
|
630 |
* @throws Exception
|
|
|
631 |
*/
|
632 |
protected function init_plugin_migrations() {
|
633 |
-
new WBCR\
|
634 |
}
|
635 |
|
636 |
/**
|
637 |
* Инициализируем уведомления плагина
|
638 |
*
|
639 |
-
* @since 4.1.1
|
640 |
* @return void
|
|
|
641 |
*/
|
642 |
protected function init_plugin_notices() {
|
643 |
-
new Wbcr\
|
644 |
}
|
645 |
|
646 |
/**
|
647 |
* Создает нового рабочего для проверки обновлений и апгрейда текущего плагина.
|
648 |
*
|
649 |
-
* @since 4.1.1
|
650 |
-
*
|
651 |
* @param array $data
|
652 |
*
|
653 |
* @return void
|
654 |
* @throws Exception
|
|
|
|
|
655 |
*/
|
656 |
protected function init_plugin_updates() {
|
657 |
if ( $this->has_updates ) {
|
658 |
-
new WBCR\
|
659 |
}
|
660 |
}
|
661 |
|
@@ -666,8 +682,8 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
666 |
* Дополнительно создает рабочего, чтобы совершить апгрейд до премиум версии
|
667 |
* и запустить проверку обновлений для этого модуля.
|
668 |
*
|
669 |
-
* @since 4.1.1
|
670 |
* @throws Exception
|
|
|
671 |
*/
|
672 |
protected function init_plugin_premium_features() {
|
673 |
if ( ! $this->has_premium || ! $this->license_settings ) {
|
@@ -677,11 +693,11 @@ abstract class Wbcr_Factory424_Plugin extends Wbcr_Factory424_Base {
|
|
677 |
}
|
678 |
|
679 |
// Создаем экземляр премиум менеджера, мы сможем к нему обращаться глобально.
|
680 |
-
$this->premium = WBCR\
|
681 |
|
682 |
// Подключаем премиум апгрейдер
|
683 |
if ( isset( $this->license_settings['has_updates'] ) && $this->license_settings['has_updates'] ) {
|
684 |
-
new WBCR\
|
685 |
}
|
686 |
}
|
687 |
}
|
24 |
* @package factory-core
|
25 |
*
|
26 |
*/
|
27 |
+
abstract class Wbcr_Factory425_Plugin extends Wbcr_Factory425_Base {
|
28 |
|
29 |
/**
|
30 |
+
* Instance class Wbcr_Factory425_Request, required manages http requests
|
31 |
*
|
32 |
* @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/390561806
|
33 |
+
* @var Wbcr_Factory425_Request
|
34 |
*/
|
35 |
public $request;
|
36 |
|
37 |
/**
|
38 |
* @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/393936924
|
39 |
+
* @var \WBCR\Factory_425\Premium\Provider
|
40 |
*/
|
41 |
public $premium;
|
42 |
|
43 |
/**
|
44 |
* The Bootstrap Manager class
|
45 |
*
|
46 |
+
* @var Wbcr_FactoryBootstrap426_Manager
|
47 |
*/
|
48 |
public $bootstrap;
|
49 |
|
50 |
/**
|
51 |
* The Bootstrap Manager class
|
52 |
*
|
53 |
+
* @var Wbcr_FactoryForms423_Manager
|
54 |
*/
|
55 |
public $forms;
|
56 |
|
57 |
/**
|
58 |
+
* Простой массив со списком зарегистрированных классов унаследованных от Wbcr_Factory425_Activator.
|
59 |
* Классы активации используются для упаковки набора функций, которые нужно выполнить во время
|
60 |
* активации плагина.
|
61 |
*
|
62 |
+
* @var array[] Wbcr_Factory425_Activator
|
63 |
*/
|
64 |
protected $activator_class = [];
|
65 |
|
93 |
/**
|
94 |
* Инициализирует компоненты фреймворка и плагина.
|
95 |
*
|
96 |
+
* @param array $data A set of plugin data.
|
|
|
|
|
97 |
*
|
98 |
+
* @param string $plugin_path A full path to the main plugin file.
|
99 |
*
|
100 |
* @throws Exception
|
101 |
+
* @since 1.0.0
|
102 |
+
*
|
103 |
*/
|
104 |
public function __construct( $plugin_path, $data ) {
|
105 |
|
106 |
parent::__construct( $plugin_path, $data );
|
107 |
|
108 |
+
$this->request = new Wbcr_Factory425_Request();
|
109 |
+
//$this->route = new Wbcr_Factory425_Route();
|
110 |
|
111 |
// INIT PLUGIN FRAMEWORK MODULES
|
112 |
// Framework modules should always be loaded first,
|
138 |
* Устанавливает класс менеджер, которому плагин будет делегировать подключение ресурсов (картинок,
|
139 |
* скриптов, стилей) фреймворка.
|
140 |
*
|
141 |
+
* @param Wbcr_FactoryBootstrap426_Manager $bootstrap
|
142 |
*/
|
143 |
+
public function setBootstap( Wbcr_FactoryBootstrap426_Manager $bootstrap ) {
|
144 |
$this->bootstrap = $bootstrap;
|
145 |
}
|
146 |
|
147 |
/**
|
148 |
* Устанавливает класс менеджер, которому будет делегирована работа с html формами фреймворка.
|
149 |
*
|
150 |
+
* @param Wbcr_FactoryForms423_Manager $forms
|
151 |
*/
|
152 |
+
public function setForms( Wbcr_FactoryForms423_Manager $forms ) {
|
153 |
$this->forms = $forms;
|
154 |
}
|
155 |
|
171 |
* С помощью этого класса, мы проверяем валидность лицензий и получаем дополнительную информацию
|
172 |
* о лицензии и ее покупателе. Класс используется в премиум менеджере.
|
173 |
*
|
174 |
+
* @param string $name Имя провайдер
|
175 |
+
* @param string $class_name Имя класса провайдера
|
176 |
+
*
|
177 |
* @since 4.1.6 - Добавлен
|
178 |
*
|
|
|
|
|
179 |
*/
|
180 |
public function set_license_provider( $name, $class_name ) {
|
181 |
+
if ( ! isset( WBCR\Factory_425\Premium\Manager::$providers[ $name ] ) ) {
|
182 |
+
WBCR\Factory_425\Premium\Manager::$providers[ $name ] = $class_name;
|
183 |
}
|
184 |
}
|
185 |
|
189 |
* С помощью этого класса мы реализиуем доставку и откат обновлений плагина, на сайт пользователя.
|
190 |
* Скачиваение премиум версий происходит по защенному каналу. Класс используется в менеджере обновлений.
|
191 |
*
|
192 |
+
* @param string $name Имя репозитория
|
193 |
+
* @param string $class_name Имя класса репозитория
|
194 |
+
*
|
195 |
* @since 4.1.7 - Добавлен
|
196 |
*
|
|
|
|
|
197 |
*/
|
198 |
public function set_update_repository( $name, $class_name ) {
|
199 |
+
if ( ! isset( WBCR\Factory_425\Updates\Upgrader::$repositories[ $name ] ) ) {
|
200 |
+
WBCR\Factory_425\Updates\Upgrader::$repositories[ $name ] = $class_name;
|
201 |
}
|
202 |
}
|
203 |
|
207 |
* Доступен глобально через метод app(), чаще всего используется для создания точек для ротации
|
208 |
* рекламных объявлений.
|
209 |
*
|
|
|
|
|
210 |
* @return \WBCR\Factory_Adverts_000\Base
|
211 |
+
* @since 1.1
|
212 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
213 |
*/
|
214 |
public function get_adverts_manager() {
|
215 |
return $this->adverts;
|
219 |
* Устанавливает текстовый домен для плагина. Текстовый домен берется из заголовка входного
|
220 |
* файла плагина.
|
221 |
*
|
222 |
+
* @since 4.2.5 - Добавлены 2 аргумента $text_domain, $plugin_dir. Теперь protected
|
223 |
* @since 4.0.8 - Добавлен
|
224 |
*
|
225 |
* @see https://codex.wordpress.org/I18n_for_WordPress_Developers
|
226 |
* @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/327828 - документация по входному файлу
|
227 |
*/
|
228 |
+
protected function set_text_domain( $text_domain, $plugin_dir ) {
|
229 |
+
if ( empty( $text_domain ) || empty( $plugin_dir ) ) {
|
230 |
return;
|
231 |
}
|
232 |
|
233 |
+
$locale = apply_filters( 'plugin_locale', is_admin() ? get_user_locale() : get_locale(), $text_domain );
|
234 |
|
235 |
+
$mofile = $text_domain . '-' . $locale . '.mo';
|
236 |
|
237 |
+
if ( ! load_textdomain( $text_domain, $plugin_dir . '/languages/' . $mofile ) ) {
|
238 |
+
load_muplugin_textdomain( $text_domain );
|
239 |
}
|
240 |
}
|
241 |
|
242 |
public function newScriptList() {
|
243 |
+
return new Wbcr_Factory425_ScriptList( $this );
|
244 |
}
|
245 |
|
246 |
public function newStyleList() {
|
247 |
+
return new Wbcr_Factory425_StyleList( $this );
|
248 |
}
|
249 |
|
250 |
/**
|
251 |
* Все страницы плагина создаются через специальную обертку, за которую отвечает модуль
|
252 |
* фреймворка pages. Разработчик создает собственный класс, унаследованный от
|
253 |
+
* Wbcr_FactoryPages425_AdminPage, а затем регистрирует его через этот метод.
|
254 |
* Метод выполняет подключение класса страницы и регистрирует его в модуле фреймворка
|
255 |
* pages.
|
256 |
*
|
259 |
*
|
260 |
* @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/222887949 - документация по созданию страниц
|
261 |
*
|
262 |
+
* @param string $class_name Имя регистрируемого класса страницы. Пример: WCL_Page_Name.
|
263 |
+
* Регистрируемый класс должен быть унаследован от класса Wbcr_FactoryPages425_AdminPage.
|
264 |
+
* @param string $file_path Абсолютный путь к файлу с классом страницы.
|
265 |
*
|
266 |
* @throws Exception
|
267 |
*/
|
281 |
throw new Exception( 'A class with this name {' . $class_name . '} does not exist.' );
|
282 |
}
|
283 |
|
284 |
+
if ( ! class_exists( 'Wbcr_FactoryPages425' ) ) {
|
285 |
+
throw new Exception( 'The factory_pages_425 module is not included.' );
|
286 |
}
|
287 |
|
288 |
+
Wbcr_FactoryPages425::register( $this, $class_name );
|
289 |
}
|
290 |
|
291 |
/**
|
294 |
* Wbcr_FactoryTypes000_Type, а затем регистрирует его через этот метод. Метод выполняет
|
295 |
* подключение класса с новым типом записи и регистрирует его в модуле фреймворка types. *
|
296 |
*
|
297 |
+
* @param string $class_name Имя регистрируемого класса страницы. Пример: WCL_Type_Name.
|
298 |
* Регистрируемый класс должен быть унаследован от класса Wbcr_FactoryTypes000_Type.
|
299 |
+
* @param string $file_path Абсолютный путь к файлу с классом страницы.
|
300 |
*
|
301 |
* @throws Exception
|
302 |
* @deprecated 4.1.7 You cannot use it!
|
308 |
/**
|
309 |
* Registers a class to activate the plugin.
|
310 |
*
|
311 |
+
* @param string $className class name of the plugin activator.
|
|
|
|
|
312 |
*
|
313 |
* @return void
|
314 |
+
* @since 1.0.0
|
315 |
+
*
|
316 |
*/
|
317 |
public function registerActivation( $className ) {
|
318 |
$this->activator_class[] = $className;
|
324 |
/**
|
325 |
* It's invoked on plugin activation. Don't excite it directly.
|
326 |
*
|
|
|
327 |
* @return void
|
328 |
+
* @since 1.0.0
|
329 |
*/
|
330 |
public function activation_hook() {
|
331 |
|
332 |
/**
|
333 |
* @since 4.1.1 - change hook name
|
334 |
*/
|
335 |
+
if ( apply_filters( "wbcr/factory_425/cancel_plugin_activation_{$this->plugin_name}", false ) ) {
|
336 |
return;
|
337 |
}
|
338 |
|
339 |
/**
|
340 |
+
* wbcr_factory_425_plugin_activation
|
341 |
*
|
342 |
* @since 4.1.1 - deprecated
|
343 |
*/
|
344 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_425_plugin_activation', [
|
345 |
$this
|
346 |
], '4.1.1', "wbcr/factory/plugin_activation" );
|
347 |
|
350 |
*
|
351 |
* @since 4.1.2 - deprecated
|
352 |
*/
|
353 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr/factory/plugin_activation', [
|
354 |
$this
|
355 |
], '4.1.2', "wbcr/factory/before_plugin_activation" );
|
356 |
|
366 |
*
|
367 |
* @since 4.1.2 - deprecated
|
368 |
*/
|
369 |
+
wbcr_factory_425_do_action_deprecated( "wbcr/factory/plugin_{$this->plugin_name}_activation", [
|
370 |
$this
|
371 |
], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_activation" );
|
372 |
|
373 |
/**
|
374 |
+
* wbcr_factory_425_plugin_activation_' . $this->plugin_name
|
375 |
*
|
376 |
* @since 4.1.1 - deprecated
|
377 |
*/
|
378 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_425_plugin_activation_' . $this->plugin_name, [
|
379 |
$this
|
380 |
], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_activation" );
|
381 |
|
407 |
/**
|
408 |
* It's invoked on plugin deactionvation. Don't excite it directly.
|
409 |
*
|
|
|
410 |
* @return void
|
411 |
+
* @since 1.0.0
|
412 |
*/
|
413 |
public function deactivation_hook() {
|
414 |
|
415 |
/**
|
416 |
* @since 4.1.1 - change hook name
|
417 |
*/
|
418 |
+
if ( apply_filters( "wbcr/factory_425/cancel_plugin_deactivation_{$this->plugin_name}", false ) ) {
|
419 |
return;
|
420 |
}
|
421 |
|
422 |
/**
|
423 |
+
* wbcr_factory_425_plugin_deactivation
|
424 |
*
|
425 |
* @since 4.1.1 - deprecated
|
426 |
*/
|
427 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_425_plugin_deactivation', [
|
428 |
$this
|
429 |
], '4.1.1', "wbcr/factory/plugin_deactivation" );
|
430 |
|
433 |
*
|
434 |
* @since 4.1.2 - deprecated
|
435 |
*/
|
436 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr/factory/plugin_deactivation', [
|
437 |
$this
|
438 |
], '4.1.2', "wbcr/factory/before_plugin_deactivation" );
|
439 |
|
445 |
do_action( 'wbcr/factory/plugin_deactivation', $this );
|
446 |
|
447 |
/**
|
448 |
+
* wbcr_factory_425_plugin_deactivation_ . $this->plugin_name
|
449 |
*
|
450 |
* @since 4.1.1 - deprecated
|
451 |
*/
|
452 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_425_plugin_deactivation_' . $this->plugin_name, [
|
453 |
$this
|
454 |
], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation" );
|
455 |
|
458 |
*
|
459 |
* @since 4.1.2 - deprecated
|
460 |
*/
|
461 |
+
wbcr_factory_425_do_action_deprecated( "wbcr/factory/plugin_{$this->plugin_name}_deactivation", [
|
462 |
$this
|
463 |
], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation" );
|
464 |
|
495 |
* @throws Exception
|
496 |
*/
|
497 |
public function getPluginPageUrl( $page_id, $args = [] ) {
|
498 |
+
if ( ! class_exists( 'Wbcr_FactoryPages425' ) ) {
|
499 |
+
throw new Exception( 'The factory_pages_425 module is not included.' );
|
500 |
}
|
501 |
|
502 |
if ( ! is_admin() ) {
|
505 |
return null;
|
506 |
}
|
507 |
|
508 |
+
return Wbcr_FactoryPages425::getPageUrl( $this, $page_id, $args );
|
509 |
}
|
510 |
|
511 |
/**
|
547 |
'plugin_dir' => constant( $prefix . 'PLUGIN_DIR' ),
|
548 |
'plugin_url' => constant( $prefix . 'PLUGIN_URL' ),
|
549 |
'plugin_base' => constant( $prefix . 'PLUGIN_BASE' ),
|
550 |
+
'text_domain' => constant( $prefix . 'TEXT_DOMAIN' ),
|
551 |
'plugin_version' => constant( $prefix . 'PLUGIN_VERSION' )
|
552 |
];
|
553 |
|
554 |
/**
|
555 |
* Оповещает внешние приложения, что компонент плагина был загружен
|
556 |
*
|
557 |
+
* @param array $load_plugin_components Информация о загруженном компоненте
|
558 |
+
* @param string $plugin_name Имя плагина
|
559 |
*/
|
560 |
do_action( "wbcr/factory/component_{$component_ID}_loaded", $this->loaded_plugin_components[ $component_ID ], $this->getPluginName() );
|
561 |
} else {
|
600 |
/**
|
601 |
* @since 4.1.1 - deprecated
|
602 |
*/
|
603 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_425_core_modules_loaded-' . $this->plugin_name, [], '4.1.1', "wbcr/factory_425/modules_loaded-" . $this->plugin_name );
|
604 |
|
605 |
/**
|
606 |
* @since 4.1.1 - add
|
607 |
*/
|
608 |
+
do_action( 'wbcr/factory_425/modules_loaded-' . $this->plugin_name );
|
609 |
}
|
610 |
|
611 |
|
616 |
*/
|
617 |
private function register_plugin_hooks() {
|
618 |
|
619 |
+
add_action( 'plugins_loaded', function () {
|
620 |
+
$this->set_text_domain( $this->plugin_text_domain, $this->paths->absolute );
|
621 |
+
|
622 |
+
if ( ! empty( $this->loaded_plugin_components ) ) {
|
623 |
+
foreach ( $this->loaded_plugin_components as $component ) {
|
624 |
+
if ( empty( $component['text_domain'] ) ) {
|
625 |
+
continue;
|
626 |
+
}
|
627 |
+
|
628 |
+
$this->set_text_domain( $component['text_domain'], $component['plugin_dir'] );
|
629 |
+
}
|
630 |
+
}
|
631 |
+
} );
|
632 |
|
633 |
if ( is_admin() ) {
|
634 |
+
add_filter( 'wbcr_factory_425_core_admin_allow_multisite', '__return_true' );
|
635 |
|
636 |
register_activation_hook( $this->get_paths()->main_file, [ $this, 'activation_hook' ] );
|
637 |
register_deactivation_hook( $this->get_paths()->main_file, [ $this, 'deactivation_hook' ] );
|
641 |
/**
|
642 |
* Инициализируем миграции плагина
|
643 |
*
|
|
|
644 |
* @return void
|
645 |
* @throws Exception
|
646 |
+
* @since 4.1.1
|
647 |
*/
|
648 |
protected function init_plugin_migrations() {
|
649 |
+
new WBCR\Factory_425\Migrations( $this );
|
650 |
}
|
651 |
|
652 |
/**
|
653 |
* Инициализируем уведомления плагина
|
654 |
*
|
|
|
655 |
* @return void
|
656 |
+
* @since 4.1.1
|
657 |
*/
|
658 |
protected function init_plugin_notices() {
|
659 |
+
new Wbcr\Factory_425\Notices( $this );
|
660 |
}
|
661 |
|
662 |
/**
|
663 |
* Создает нового рабочего для проверки обновлений и апгрейда текущего плагина.
|
664 |
*
|
|
|
|
|
665 |
* @param array $data
|
666 |
*
|
667 |
* @return void
|
668 |
* @throws Exception
|
669 |
+
* @since 4.1.1
|
670 |
+
*
|
671 |
*/
|
672 |
protected function init_plugin_updates() {
|
673 |
if ( $this->has_updates ) {
|
674 |
+
new WBCR\Factory_425\Updates\Upgrader( $this );
|
675 |
}
|
676 |
}
|
677 |
|
682 |
* Дополнительно создает рабочего, чтобы совершить апгрейд до премиум версии
|
683 |
* и запустить проверку обновлений для этого модуля.
|
684 |
*
|
|
|
685 |
* @throws Exception
|
686 |
+
* @since 4.1.1
|
687 |
*/
|
688 |
protected function init_plugin_premium_features() {
|
689 |
if ( ! $this->has_premium || ! $this->license_settings ) {
|
693 |
}
|
694 |
|
695 |
// Создаем экземляр премиум менеджера, мы сможем к нему обращаться глобально.
|
696 |
+
$this->premium = WBCR\Factory_425\Premium\Manager::instance( $this, $this->license_settings );
|
697 |
|
698 |
// Подключаем премиум апгрейдер
|
699 |
if ( isset( $this->license_settings['has_updates'] ) && $this->license_settings['has_updates'] ) {
|
700 |
+
new WBCR\Factory_425\Updates\Premium_Upgrader( $this );
|
701 |
}
|
702 |
}
|
703 |
}
|
libs/factory/core/includes/class-factory-plugin-base.php
CHANGED
@@ -5,7 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
5 |
}
|
6 |
|
7 |
/**
|
8 |
-
* Базовый класс для создания нового плагина. Полную реализацию класса смотрите в
|
9 |
*
|
10 |
* Документация по классу: https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/392724484
|
11 |
* Документация по созданию плагина: https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/327828
|
@@ -17,9 +17,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
17 |
* @since 1.0.0
|
18 |
* @package factory-core
|
19 |
*/
|
20 |
-
class
|
21 |
|
22 |
-
use WBCR\
|
23 |
|
24 |
/**
|
25 |
* Обязательное свойство. Префикс, используется для создания пространство имен.
|
@@ -81,7 +81,7 @@ class Wbcr_Factory424_Base {
|
|
81 |
* https://robin-image-optimizer.webcraftic.com/premium-features.
|
82 |
*
|
83 |
* Это свойство заполняется для того, чтобы в процессе разработки вы могли использовать
|
84 |
-
* экземпляр класса \WBCR\
|
85 |
* Тем самым вы избавляете себя от жесткого прописывания ссылок на лендинг плагина и
|
86 |
* можете изменить все ссылки в одном месте.
|
87 |
*
|
@@ -127,7 +127,7 @@ class Wbcr_Factory424_Base {
|
|
127 |
* к примеру: freemius, codecanyon, templatemonster, вам нужно указать только настройки для
|
128 |
* взаимодействия с выбранным вами провайдером. Каждая реализация провайдера лицензий может иметь
|
129 |
* индивидуальный настройки, в этом примере приведены настройки для freemius провайдера
|
130 |
-
* WBCR\
|
131 |
*
|
132 |
* На текущий момент существует только реализация для freemius провайдера.
|
133 |
*
|
@@ -177,9 +177,9 @@ class Wbcr_Factory424_Base {
|
|
177 |
* }
|
178 |
*/
|
179 |
protected $load_factory_modules = [
|
180 |
-
[ 'libs/factory/bootstrap', '
|
181 |
-
[ 'libs/factory/forms', '
|
182 |
-
[ 'libs/factory/pages', '
|
183 |
];
|
184 |
|
185 |
/**
|
@@ -209,20 +209,20 @@ class Wbcr_Factory424_Base {
|
|
209 |
|
210 |
|
211 |
/**
|
212 |
-
* Экземпляр класса \WBCR\
|
213 |
* о сайте плагина. Чаще всего используется для получения ссылки на страницу с тарифами или
|
214 |
* ссылки на форму обратной связи. Встроен механизм отслеживания по utm меткам.
|
215 |
*
|
216 |
-
* @var \WBCR\
|
217 |
*/
|
218 |
protected $support;
|
219 |
|
220 |
/**
|
221 |
-
* Экземпляр класса \WBCR\
|
222 |
* путях плагина. Часто используется для получения путей или ссылок на место хранения плагина
|
223 |
* или его входного файла.
|
224 |
*
|
225 |
-
* @var \WBCR\
|
226 |
*/
|
227 |
protected $paths;
|
228 |
|
@@ -270,8 +270,8 @@ class Wbcr_Factory424_Base {
|
|
270 |
throw new Exception( 'One of the required attributes has not been passed (prefix, plugin_title, plugin_name, plugin_version, plugin_text_domain).' );
|
271 |
}
|
272 |
|
273 |
-
$this->support = new \WBCR\
|
274 |
-
$this->paths = new \WBCR\
|
275 |
|
276 |
// used only in the module 'updates'
|
277 |
$this->plugin_slug = ! empty( $this->plugin_name ) ? $this->plugin_name : basename( $plugin_file );
|
@@ -391,7 +391,7 @@ class Wbcr_Factory424_Base {
|
|
391 |
* Проверяет, включен ли премиум для этого плагина или нет.
|
392 |
*
|
393 |
* @return bool Возвращает true, если премиум пакет включен для этого плагина.
|
394 |
-
* См.
|
395 |
*/
|
396 |
public function has_premium() {
|
397 |
return $this->has_premium;
|
@@ -400,7 +400,7 @@ class Wbcr_Factory424_Base {
|
|
400 |
/**
|
401 |
* Позволяет получить заголовок плагина.
|
402 |
*
|
403 |
-
* @return string Возвращает заголовок плагина. См.
|
404 |
*/
|
405 |
public function getPluginTitle() {
|
406 |
return $this->plugin_title;
|
@@ -409,7 +409,7 @@ class Wbcr_Factory424_Base {
|
|
409 |
/**
|
410 |
* Позволяет получить префикс плагина.
|
411 |
*
|
412 |
-
* @return string Возвращает префикс плагина.См.
|
413 |
*/
|
414 |
public function getPrefix() {
|
415 |
return $this->prefix;
|
@@ -418,7 +418,7 @@ class Wbcr_Factory424_Base {
|
|
418 |
/**
|
419 |
* Позволяет получить имя плагина.
|
420 |
*
|
421 |
-
* @return string Возвращает имя плагина. См.
|
422 |
*/
|
423 |
public function getPluginName() {
|
424 |
return $this->plugin_name;
|
@@ -427,7 +427,7 @@ class Wbcr_Factory424_Base {
|
|
427 |
/**
|
428 |
* Позволяет получить версию плагина.
|
429 |
*
|
430 |
-
* @return string Возвращает версию плагина. См.
|
431 |
*/
|
432 |
public function getPluginVersion() {
|
433 |
return $this->plugin_version;
|
@@ -449,7 +449,7 @@ class Wbcr_Factory424_Base {
|
|
449 |
* какие-то данные не описанные в интерфейсе этого плагина.
|
450 |
*
|
451 |
* @param string $attr_name Имя атрибута, который нужно получить. Идентично ключу в массиве
|
452 |
-
*
|
453 |
*
|
454 |
* @return null
|
455 |
*/
|
@@ -462,18 +462,18 @@ class Wbcr_Factory424_Base {
|
|
462 |
}
|
463 |
|
464 |
/**
|
465 |
-
* Предоставляет доступ к экземпляру класса \WBCR\
|
466 |
*
|
467 |
-
* @return \WBCR\
|
468 |
*/
|
469 |
public function get_support() {
|
470 |
return $this->support;
|
471 |
}
|
472 |
|
473 |
/**
|
474 |
-
* Предоставляет доступ к экземпляру класса \WBCR\
|
475 |
*
|
476 |
-
* @return \WBCR\
|
477 |
*/
|
478 |
public function get_paths() {
|
479 |
return $this->paths;
|
@@ -482,7 +482,7 @@ class Wbcr_Factory424_Base {
|
|
482 |
/**
|
483 |
* Позволяет получить сырые данные плагина в виде объекта StdClass.
|
484 |
*
|
485 |
-
* @return object Возвращает объект с сырыми данными плагина. См.
|
486 |
*/
|
487 |
public function getPluginInfo() {
|
488 |
return (object) $this->plugin_data;
|
5 |
}
|
6 |
|
7 |
/**
|
8 |
+
* Базовый класс для создания нового плагина. Полную реализацию класса смотрите в Wbcr_Factory425_Plugin
|
9 |
*
|
10 |
* Документация по классу: https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/392724484
|
11 |
* Документация по созданию плагина: https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/327828
|
17 |
* @since 1.0.0
|
18 |
* @package factory-core
|
19 |
*/
|
20 |
+
class Wbcr_Factory425_Base {
|
21 |
|
22 |
+
use WBCR\Factory_425\Options;
|
23 |
|
24 |
/**
|
25 |
* Обязательное свойство. Префикс, используется для создания пространство имен.
|
81 |
* https://robin-image-optimizer.webcraftic.com/premium-features.
|
82 |
*
|
83 |
* Это свойство заполняется для того, чтобы в процессе разработки вы могли использовать
|
84 |
+
* экземпляр класса \WBCR\Factory_425\Entities\Support, для получения информации о сайте плагина.
|
85 |
* Тем самым вы избавляете себя от жесткого прописывания ссылок на лендинг плагина и
|
86 |
* можете изменить все ссылки в одном месте.
|
87 |
*
|
127 |
* к примеру: freemius, codecanyon, templatemonster, вам нужно указать только настройки для
|
128 |
* взаимодействия с выбранным вами провайдером. Каждая реализация провайдера лицензий может иметь
|
129 |
* индивидуальный настройки, в этом примере приведены настройки для freemius провайдера
|
130 |
+
* WBCR\Factory_425\Premium\Provider > WBCR\Factory_Freemius_113\Premium\Provider
|
131 |
*
|
132 |
* На текущий момент существует только реализация для freemius провайдера.
|
133 |
*
|
177 |
* }
|
178 |
*/
|
179 |
protected $load_factory_modules = [
|
180 |
+
[ 'libs/factory/bootstrap', 'factory_bootstrap_426', 'admin' ],
|
181 |
+
[ 'libs/factory/forms', 'factory_forms_423', 'admin' ],
|
182 |
+
[ 'libs/factory/pages', 'factory_pages_425', 'admin' ],
|
183 |
];
|
184 |
|
185 |
/**
|
209 |
|
210 |
|
211 |
/**
|
212 |
+
* Экземпляр класса \WBCR\Factory_425\Entities\Support используется для получения информации
|
213 |
* о сайте плагина. Чаще всего используется для получения ссылки на страницу с тарифами или
|
214 |
* ссылки на форму обратной связи. Встроен механизм отслеживания по utm меткам.
|
215 |
*
|
216 |
+
* @var \WBCR\Factory_425\Entities\Support
|
217 |
*/
|
218 |
protected $support;
|
219 |
|
220 |
/**
|
221 |
+
* Экземпляр класса \WBCR\Factory_425\Entities\Paths используется для получения информации о
|
222 |
* путях плагина. Часто используется для получения путей или ссылок на место хранения плагина
|
223 |
* или его входного файла.
|
224 |
*
|
225 |
+
* @var \WBCR\Factory_425\Entities\Paths
|
226 |
*/
|
227 |
protected $paths;
|
228 |
|
270 |
throw new Exception( 'One of the required attributes has not been passed (prefix, plugin_title, plugin_name, plugin_version, plugin_text_domain).' );
|
271 |
}
|
272 |
|
273 |
+
$this->support = new \WBCR\Factory_425\Entities\Support( $this->support_details );
|
274 |
+
$this->paths = new \WBCR\Factory_425\Entities\Paths( $plugin_file );
|
275 |
|
276 |
// used only in the module 'updates'
|
277 |
$this->plugin_slug = ! empty( $this->plugin_name ) ? $this->plugin_name : basename( $plugin_file );
|
391 |
* Проверяет, включен ли премиум для этого плагина или нет.
|
392 |
*
|
393 |
* @return bool Возвращает true, если премиум пакет включен для этого плагина.
|
394 |
+
* См. Wbcr_Factory425_Base::has_premium
|
395 |
*/
|
396 |
public function has_premium() {
|
397 |
return $this->has_premium;
|
400 |
/**
|
401 |
* Позволяет получить заголовок плагина.
|
402 |
*
|
403 |
+
* @return string Возвращает заголовок плагина. См. Wbcr_Factory425_Base::plugin_title
|
404 |
*/
|
405 |
public function getPluginTitle() {
|
406 |
return $this->plugin_title;
|
409 |
/**
|
410 |
* Позволяет получить префикс плагина.
|
411 |
*
|
412 |
+
* @return string Возвращает префикс плагина.См. Wbcr_Factory425_Base::prefix
|
413 |
*/
|
414 |
public function getPrefix() {
|
415 |
return $this->prefix;
|
418 |
/**
|
419 |
* Позволяет получить имя плагина.
|
420 |
*
|
421 |
+
* @return string Возвращает имя плагина. См. Wbcr_Factory425_Base::plugin_name
|
422 |
*/
|
423 |
public function getPluginName() {
|
424 |
return $this->plugin_name;
|
427 |
/**
|
428 |
* Позволяет получить версию плагина.
|
429 |
*
|
430 |
+
* @return string Возвращает версию плагина. См. Wbcr_Factory425_Base::plugin_version
|
431 |
*/
|
432 |
public function getPluginVersion() {
|
433 |
return $this->plugin_version;
|
449 |
* какие-то данные не описанные в интерфейсе этого плагина.
|
450 |
*
|
451 |
* @param string $attr_name Имя атрибута, который нужно получить. Идентично ключу в массиве
|
452 |
+
* Wbcr_Factory425_Base::plugin_data
|
453 |
*
|
454 |
* @return null
|
455 |
*/
|
462 |
}
|
463 |
|
464 |
/**
|
465 |
+
* Предоставляет доступ к экземпляру класса \WBCR\Factory_425\Entities\Support.
|
466 |
*
|
467 |
+
* @return \WBCR\Factory_425\Entities\Support
|
468 |
*/
|
469 |
public function get_support() {
|
470 |
return $this->support;
|
471 |
}
|
472 |
|
473 |
/**
|
474 |
+
* Предоставляет доступ к экземпляру класса \WBCR\Factory_425\Entities\Paths.
|
475 |
*
|
476 |
+
* @return \WBCR\Factory_425\Entities\Paths
|
477 |
*/
|
478 |
public function get_paths() {
|
479 |
return $this->paths;
|
482 |
/**
|
483 |
* Позволяет получить сырые данные плагина в виде объекта StdClass.
|
484 |
*
|
485 |
+
* @return object Возвращает объект с сырыми данными плагина. См. Wbcr_Factory425_Base::plugin_data
|
486 |
*/
|
487 |
public function getPluginInfo() {
|
488 |
return (object) $this->plugin_data;
|
libs/factory/core/includes/class-factory-requests.php
CHANGED
@@ -11,7 +11,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
11 |
* @package factory-core
|
12 |
*/
|
13 |
|
14 |
-
class
|
15 |
|
16 |
/**
|
17 |
* @param null $param
|
11 |
* @package factory-core
|
12 |
*/
|
13 |
|
14 |
+
class Wbcr_Factory425_Request {
|
15 |
|
16 |
/**
|
17 |
* @param null $param
|
libs/factory/core/includes/class-factory-requirements.php
CHANGED
@@ -12,8 +12,8 @@
|
|
12 |
* @since 4.0.9
|
13 |
*/
|
14 |
// @formatter:off
|
15 |
-
if ( ! class_exists( '
|
16 |
-
class
|
17 |
|
18 |
/**
|
19 |
* Factory framework version
|
@@ -242,7 +242,7 @@ if ( ! class_exists( 'Wbcr_Factory424_Requirements' ) ) {
|
|
242 |
$notice_text = $notice_default_text = '';
|
243 |
$notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
|
244 |
|
245 |
-
$notice_default_text .= sprintf( __( 'The %s plugin has stopped.', '
|
246 |
$notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
|
247 |
|
248 |
$has_one = false;
|
@@ -273,21 +273,21 @@ if ( ! class_exists( 'Wbcr_Factory424_Requirements' ) ) {
|
|
273 |
* @return string
|
274 |
*/
|
275 |
protected function get_php_incompat_text() {
|
276 |
-
return sprintf( __( 'You need to update the PHP version to %s or higher!', '
|
277 |
}
|
278 |
|
279 |
/**
|
280 |
* @return string
|
281 |
*/
|
282 |
protected function get_wp_incompat_text() {
|
283 |
-
return sprintf( __( 'You need to update WordPress to %s or higher!', '
|
284 |
}
|
285 |
|
286 |
/**
|
287 |
* @return string
|
288 |
*/
|
289 |
protected function get_plugin_already_activate_text() {
|
290 |
-
return sprintf( __( 'Plugin %s is already activated, you are trying to activate it again.', '
|
291 |
}
|
292 |
}
|
293 |
}
|
12 |
* @since 4.0.9
|
13 |
*/
|
14 |
// @formatter:off
|
15 |
+
if ( ! class_exists( 'Wbcr_Factory425_Requirements' ) ) {
|
16 |
+
class Wbcr_Factory425_Requirements {
|
17 |
|
18 |
/**
|
19 |
* Factory framework version
|
242 |
$notice_text = $notice_default_text = '';
|
243 |
$notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
|
244 |
|
245 |
+
$notice_default_text .= sprintf( __( 'The %s plugin has stopped.', 'wbcr_factory_clearfy_217' ), $this->plugin_title ) . ' ';
|
246 |
$notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
|
247 |
|
248 |
$has_one = false;
|
273 |
* @return string
|
274 |
*/
|
275 |
protected function get_php_incompat_text() {
|
276 |
+
return sprintf( __( 'You need to update the PHP version to %s or higher!', 'wbcr_factory_425' ), $this->required_php_version );
|
277 |
}
|
278 |
|
279 |
/**
|
280 |
* @return string
|
281 |
*/
|
282 |
protected function get_wp_incompat_text() {
|
283 |
+
return sprintf( __( 'You need to update WordPress to %s or higher!', 'wbcr_factory_425' ), $this->required_wp_version );
|
284 |
}
|
285 |
|
286 |
/**
|
287 |
* @return string
|
288 |
*/
|
289 |
protected function get_plugin_already_activate_text() {
|
290 |
+
return sprintf( __( 'Plugin %s is already activated, you are trying to activate it again.', 'wbcr_factory_425' ), $this->plugin_title );
|
291 |
}
|
292 |
}
|
293 |
}
|
libs/factory/core/includes/entities/class-factory-paths.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
if ( ! defined( 'ABSPATH' ) ) {
|
6 |
exit;
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425\Entities;
|
4 |
|
5 |
if ( ! defined( 'ABSPATH' ) ) {
|
6 |
exit;
|
libs/factory/core/includes/entities/class-factory-support.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
if ( ! defined( 'ABSPATH' ) ) {
|
6 |
exit;
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425\Entities;
|
4 |
|
5 |
if ( ! defined( 'ABSPATH' ) ) {
|
6 |
exit;
|
libs/factory/core/includes/functions.php
CHANGED
@@ -53,17 +53,17 @@ if ( ! function_exists( 'get_user_locale' ) ) {
|
|
53 |
* @param string $message Optional. A message regarding the change.
|
54 |
*
|
55 |
* @return mixed
|
56 |
-
* @see
|
57 |
*
|
58 |
*/
|
59 |
-
function
|
60 |
if ( function_exists( 'apply_filters_deprecated' ) ) {
|
61 |
return apply_filters_deprecated( $tag, $args, $version, $replacement, $message );
|
62 |
}
|
63 |
if ( ! has_filter( $tag ) ) {
|
64 |
return $args[0];
|
65 |
}
|
66 |
-
|
67 |
|
68 |
return apply_filters_ref_array( $tag, $args );
|
69 |
}
|
@@ -89,7 +89,7 @@ function wbcr_factory_424_apply_filters_deprecated( $tag, $args, $version, $repl
|
|
89 |
* @see _deprecated_hook()
|
90 |
*
|
91 |
*/
|
92 |
-
function
|
93 |
if ( function_exists( 'do_action_deprecated' ) ) {
|
94 |
do_action_deprecated( $tag, $args, $version, $replacement, $message );
|
95 |
|
@@ -98,14 +98,14 @@ function wbcr_factory_424_do_action_deprecated( $tag, $args, $version, $replacem
|
|
98 |
if ( ! has_action( $tag ) ) {
|
99 |
return;
|
100 |
}
|
101 |
-
|
102 |
do_action_ref_array( $tag, $args );
|
103 |
}
|
104 |
|
105 |
/**
|
106 |
* Marks a deprecated action or filter hook as deprecated and throws a notice.
|
107 |
*
|
108 |
-
* Use the '
|
109 |
* deprecated hook was called.
|
110 |
*
|
111 |
* Default behavior is to trigger a user error if WP_DEBUG is true.
|
@@ -123,7 +123,7 @@ function wbcr_factory_424_do_action_deprecated( $tag, $args, $version, $replacem
|
|
123 |
* @param string $replacement Optional. The hook that should have been used.
|
124 |
* @param string $message Optional. A message regarding the change.
|
125 |
*/
|
126 |
-
function
|
127 |
/**
|
128 |
* Fires when a deprecated hook is called.
|
129 |
*
|
53 |
* @param string $message Optional. A message regarding the change.
|
54 |
*
|
55 |
* @return mixed
|
56 |
+
* @see wbcr_factory_425_deprecated_hook()
|
57 |
*
|
58 |
*/
|
59 |
+
function wbcr_factory_425_apply_filters_deprecated( $tag, $args, $version, $replacement = false, $message = null ) {
|
60 |
if ( function_exists( 'apply_filters_deprecated' ) ) {
|
61 |
return apply_filters_deprecated( $tag, $args, $version, $replacement, $message );
|
62 |
}
|
63 |
if ( ! has_filter( $tag ) ) {
|
64 |
return $args[0];
|
65 |
}
|
66 |
+
wbcr_factory_425_deprecated_hook( $tag, $version, $replacement, $message );
|
67 |
|
68 |
return apply_filters_ref_array( $tag, $args );
|
69 |
}
|
89 |
* @see _deprecated_hook()
|
90 |
*
|
91 |
*/
|
92 |
+
function wbcr_factory_425_do_action_deprecated( $tag, $args, $version, $replacement = false, $message = null ) {
|
93 |
if ( function_exists( 'do_action_deprecated' ) ) {
|
94 |
do_action_deprecated( $tag, $args, $version, $replacement, $message );
|
95 |
|
98 |
if ( ! has_action( $tag ) ) {
|
99 |
return;
|
100 |
}
|
101 |
+
wbcr_factory_425_deprecated_hook( $tag, $version, $replacement, $message );
|
102 |
do_action_ref_array( $tag, $args );
|
103 |
}
|
104 |
|
105 |
/**
|
106 |
* Marks a deprecated action or filter hook as deprecated and throws a notice.
|
107 |
*
|
108 |
+
* Use the 'wbcr_factory_425_deprecated_hook_run' action to get the backtrace describing where the
|
109 |
* deprecated hook was called.
|
110 |
*
|
111 |
* Default behavior is to trigger a user error if WP_DEBUG is true.
|
123 |
* @param string $replacement Optional. The hook that should have been used.
|
124 |
* @param string $message Optional. A message regarding the change.
|
125 |
*/
|
126 |
+
function wbcr_factory_425_deprecated_hook( $hook, $version, $replacement = null, $message = null ) {
|
127 |
/**
|
128 |
* Fires when a deprecated hook is called.
|
129 |
*
|
libs/factory/core/includes/premium/class-factory-license-interface.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425\Premium\Interfaces;
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
libs/factory/core/includes/premium/class-factory-manager.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use Exception;
|
6 |
-
use
|
7 |
|
8 |
// Exit if accessed directly
|
9 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -24,7 +24,7 @@ class Manager {
|
|
24 |
public static $providers;
|
25 |
|
26 |
/**
|
27 |
-
* @var
|
28 |
*/
|
29 |
protected $plugin;
|
30 |
|
@@ -36,24 +36,24 @@ class Manager {
|
|
36 |
/**
|
37 |
* Manager constructor.
|
38 |
*
|
39 |
-
* @param
|
40 |
* @param array $settings
|
41 |
*
|
42 |
* @throws Exception
|
43 |
*/
|
44 |
-
public function __construct(
|
45 |
$this->plugin = $plugin;
|
46 |
$this->settings = $settings;
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
-
* @param
|
51 |
* @param array $settings
|
52 |
*
|
53 |
-
* @return \WBCR\
|
54 |
* @throws Exception
|
55 |
*/
|
56 |
-
public static function instance(
|
57 |
$premium_manager = new Manager( $plugin, $settings );
|
58 |
|
59 |
return $premium_manager->instance_provider();
|
@@ -62,7 +62,7 @@ class Manager {
|
|
62 |
/**
|
63 |
* @param $provider_name
|
64 |
*
|
65 |
-
* @return \WBCR\
|
66 |
* @throws Exception
|
67 |
*/
|
68 |
public function instance_provider() {
|
@@ -70,7 +70,7 @@ class Manager {
|
|
70 |
|
71 |
if ( isset( self::$providers[ $provider_name ] ) && class_exists( self::$providers[ $provider_name ] ) ) {
|
72 |
if ( self::$providers[ $provider_name ] instanceof Provider ) {
|
73 |
-
throw new Exception( "Provider {$provider_name} must extend the class WBCR\
|
74 |
}
|
75 |
|
76 |
return new self::$providers[ $provider_name ]( $this->plugin, $this->settings );
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425\Premium;
|
4 |
|
5 |
use Exception;
|
6 |
+
use Wbcr_Factory425_Plugin;
|
7 |
|
8 |
// Exit if accessed directly
|
9 |
if ( ! defined( 'ABSPATH' ) ) {
|
24 |
public static $providers;
|
25 |
|
26 |
/**
|
27 |
+
* @var Wbcr_Factory425_Plugin
|
28 |
*/
|
29 |
protected $plugin;
|
30 |
|
36 |
/**
|
37 |
* Manager constructor.
|
38 |
*
|
39 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
40 |
* @param array $settings
|
41 |
*
|
42 |
* @throws Exception
|
43 |
*/
|
44 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin, array $settings ) {
|
45 |
$this->plugin = $plugin;
|
46 |
$this->settings = $settings;
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
51 |
* @param array $settings
|
52 |
*
|
53 |
+
* @return \WBCR\Factory_Freemius_113\Premium\Provider
|
54 |
* @throws Exception
|
55 |
*/
|
56 |
+
public static function instance( Wbcr_Factory425_Plugin $plugin, array $settings ) {
|
57 |
$premium_manager = new Manager( $plugin, $settings );
|
58 |
|
59 |
return $premium_manager->instance_provider();
|
62 |
/**
|
63 |
* @param $provider_name
|
64 |
*
|
65 |
+
* @return \WBCR\Factory_Freemius_113\Premium\Provider
|
66 |
* @throws Exception
|
67 |
*/
|
68 |
public function instance_provider() {
|
70 |
|
71 |
if ( isset( self::$providers[ $provider_name ] ) && class_exists( self::$providers[ $provider_name ] ) ) {
|
72 |
if ( self::$providers[ $provider_name ] instanceof Provider ) {
|
73 |
+
throw new Exception( "Provider {$provider_name} must extend the class WBCR\Factory_425\Premium\Provider interface!" );
|
74 |
}
|
75 |
|
76 |
return new self::$providers[ $provider_name ]( $this->plugin, $this->settings );
|
libs/factory/core/includes/premium/class-factory-provider-abstract.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use Exception;
|
6 |
-
use
|
7 |
|
8 |
// Exit if accessed directly
|
9 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -21,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
21 |
abstract class Provider {
|
22 |
|
23 |
/**
|
24 |
-
* @var
|
25 |
*/
|
26 |
protected $plugin;
|
27 |
|
@@ -38,10 +38,10 @@ abstract class Provider {
|
|
38 |
/**
|
39 |
* Provider constructor.
|
40 |
*
|
41 |
-
* @param
|
42 |
* @param array $settings
|
43 |
*/
|
44 |
-
public function __construct(
|
45 |
$this->plugin = $plugin;
|
46 |
$this->settings = $settings;
|
47 |
|
@@ -195,7 +195,7 @@ abstract class Provider {
|
|
195 |
abstract public function get_billing_cycle();
|
196 |
|
197 |
/**
|
198 |
-
* @return \WBCR\
|
199 |
*/
|
200 |
abstract public function get_license();
|
201 |
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425\Premium;
|
4 |
|
5 |
use Exception;
|
6 |
+
use Wbcr_Factory425_Plugin;
|
7 |
|
8 |
// Exit if accessed directly
|
9 |
if ( ! defined( 'ABSPATH' ) ) {
|
21 |
abstract class Provider {
|
22 |
|
23 |
/**
|
24 |
+
* @var Wbcr_Factory425_Plugin
|
25 |
*/
|
26 |
protected $plugin;
|
27 |
|
38 |
/**
|
39 |
* Provider constructor.
|
40 |
*
|
41 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
42 |
* @param array $settings
|
43 |
*/
|
44 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin, array $settings ) {
|
45 |
$this->plugin = $plugin;
|
46 |
$this->settings = $settings;
|
47 |
|
195 |
abstract public function get_billing_cycle();
|
196 |
|
197 |
/**
|
198 |
+
* @return \WBCR\Factory_425\Premium\Interfaces\License
|
199 |
*/
|
200 |
abstract public function get_license();
|
201 |
|
libs/factory/core/includes/updates/class-factory-premium-upgrader.php
CHANGED
@@ -1,12 +1,12 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use Exception;
|
6 |
use Plugin_Installer_Skin;
|
7 |
use Plugin_Upgrader;
|
8 |
-
use
|
9 |
-
use
|
10 |
use WP_Filesystem_Base;
|
11 |
use WP_Upgrader;
|
12 |
use WP_Upgrader_Skin;
|
@@ -39,11 +39,11 @@ class Premium_Upgrader extends Upgrader {
|
|
39 |
* @param $args
|
40 |
* @param bool $is_premium
|
41 |
*
|
42 |
-
* @param
|
43 |
*
|
44 |
* @throws Exception
|
45 |
*/
|
46 |
-
public function __construct(
|
47 |
parent::__construct( $plugin );
|
48 |
|
49 |
$this->plugin_basename = null;
|
@@ -228,9 +228,9 @@ class Premium_Upgrader extends Upgrader {
|
|
228 |
*
|
229 |
* @since 4.1.1
|
230 |
*
|
231 |
-
* @param
|
232 |
*
|
233 |
-
* @param
|
234 |
*
|
235 |
* @return void
|
236 |
*/
|
@@ -766,12 +766,12 @@ class Premium_Upgrader extends Upgrader {
|
|
766 |
$cancel_license_url = $this->get_action_url( 'cancel_license' );
|
767 |
|
768 |
$texts = [
|
769 |
-
'need_activate_license' => __( 'License activation required. A license is required to get premium plugin updates, as well as to get additional services.', '
|
770 |
-
'need_renew_license' => __( 'Your license has expired. You can no longer get premium plugin updates, premium support and your access to Webcraftic services has been suspended.', '
|
771 |
'please_install_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please install premium add-on to use pro features now.
|
772 |
-
<a href="%s">Install</a> premium add-on or <a href="%s">cancel</a> license.', '
|
773 |
'please_activate_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please activate premium add-on to use pro features now.
|
774 |
-
<a href="%s">Activate</a> premium add-on or <a href="%s">cancel</a> license.', '
|
775 |
];
|
776 |
|
777 |
if ( isset( $texts[ $type ] ) ) {
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425\Updates;
|
4 |
|
5 |
use Exception;
|
6 |
use Plugin_Installer_Skin;
|
7 |
use Plugin_Upgrader;
|
8 |
+
use Wbcr_Factory425_Plugin;
|
9 |
+
use Wbcr_FactoryPages425_ImpressiveThemplate;
|
10 |
use WP_Filesystem_Base;
|
11 |
use WP_Upgrader;
|
12 |
use WP_Upgrader_Skin;
|
39 |
* @param $args
|
40 |
* @param bool $is_premium
|
41 |
*
|
42 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
43 |
*
|
44 |
* @throws Exception
|
45 |
*/
|
46 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
47 |
parent::__construct( $plugin );
|
48 |
|
49 |
$this->plugin_basename = null;
|
228 |
*
|
229 |
* @since 4.1.1
|
230 |
*
|
231 |
+
* @param Wbcr_FactoryPages425_ImpressiveThemplate $obj
|
232 |
*
|
233 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
234 |
*
|
235 |
* @return void
|
236 |
*/
|
766 |
$cancel_license_url = $this->get_action_url( 'cancel_license' );
|
767 |
|
768 |
$texts = [
|
769 |
+
'need_activate_license' => __( 'License activation required. A license is required to get premium plugin updates, as well as to get additional services.', 'wbcr_factory_425' ),
|
770 |
+
'need_renew_license' => __( 'Your license has expired. You can no longer get premium plugin updates, premium support and your access to Webcraftic services has been suspended.', 'wbcr_factory_425' ),
|
771 |
'please_install_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please install premium add-on to use pro features now.
|
772 |
+
<a href="%s">Install</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_425' ), $upgrade_url, $cancel_license_url ),
|
773 |
'please_activate_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please activate premium add-on to use pro features now.
|
774 |
+
<a href="%s">Activate</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_425' ), $activate_plugin_url, $cancel_license_url )
|
775 |
];
|
776 |
|
777 |
if ( isset( $texts[ $type ] ) ) {
|
libs/factory/core/includes/updates/class-factory-upgrader.php
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use Exception;
|
6 |
use stdClass;
|
7 |
-
use
|
8 |
|
9 |
// Exit if accessed directly
|
10 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -28,8 +28,8 @@ class Upgrader {
|
|
28 |
* @since 4.1.7
|
29 |
* @var array хранит имя репозитория и его имя класса
|
30 |
* [
|
31 |
-
* 'wordpress' => 'WBCR\
|
32 |
-
* 'freemius' => '\WBCR\
|
33 |
* ]
|
34 |
*/
|
35 |
public static $repositories = [];
|
@@ -42,7 +42,7 @@ class Upgrader {
|
|
42 |
protected $type = 'default';
|
43 |
|
44 |
/**
|
45 |
-
* @var
|
46 |
*/
|
47 |
protected $plugin;
|
48 |
|
@@ -90,13 +90,13 @@ class Upgrader {
|
|
90 |
*
|
91 |
* @since 4.1.1
|
92 |
*
|
93 |
-
* @param
|
94 |
* @param $args
|
95 |
* @param bool $is_premium
|
96 |
*
|
97 |
* @throws Exception
|
98 |
*/
|
99 |
-
public function __construct(
|
100 |
|
101 |
$this->plugin = $plugin;
|
102 |
|
@@ -106,7 +106,7 @@ class Upgrader {
|
|
106 |
$this->is_debug = defined( 'FACTORY_UPDATES_DEBUG' ) && FACTORY_UPDATES_DEBUG;
|
107 |
|
108 |
# Добавляем Wordpress репозиторий в список доступных репозиториев по умолчанию
|
109 |
-
self::$repositories['wordpress'] = '\WBCR\
|
110 |
|
111 |
$settings = $this->get_settings();
|
112 |
|
@@ -287,7 +287,7 @@ class Upgrader {
|
|
287 |
|
288 |
if ( isset( self::$repositories[ $repository_name ] ) && class_exists( self::$repositories[ $repository_name ] ) ) {
|
289 |
if ( self::$repositories[ $repository_name ] instanceof Repository ) {
|
290 |
-
throw new Exception( "Repository {$repository_name} must extend the class WBCR\
|
291 |
}
|
292 |
|
293 |
return new self::$repositories[ $repository_name ]( $this->plugin );
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425\Updates;
|
4 |
|
5 |
use Exception;
|
6 |
use stdClass;
|
7 |
+
use Wbcr_Factory425_Plugin;
|
8 |
|
9 |
// Exit if accessed directly
|
10 |
if ( ! defined( 'ABSPATH' ) ) {
|
28 |
* @since 4.1.7
|
29 |
* @var array хранит имя репозитория и его имя класса
|
30 |
* [
|
31 |
+
* 'wordpress' => 'WBCR\Factory_Freemius_113\Updates\Freemius_Repository',
|
32 |
+
* 'freemius' => '\WBCR\Factory_425\Updates\Wordpress_Repository'
|
33 |
* ]
|
34 |
*/
|
35 |
public static $repositories = [];
|
42 |
protected $type = 'default';
|
43 |
|
44 |
/**
|
45 |
+
* @var Wbcr_Factory425_Plugin
|
46 |
*/
|
47 |
protected $plugin;
|
48 |
|
90 |
*
|
91 |
* @since 4.1.1
|
92 |
*
|
93 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
94 |
* @param $args
|
95 |
* @param bool $is_premium
|
96 |
*
|
97 |
* @throws Exception
|
98 |
*/
|
99 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
100 |
|
101 |
$this->plugin = $plugin;
|
102 |
|
106 |
$this->is_debug = defined( 'FACTORY_UPDATES_DEBUG' ) && FACTORY_UPDATES_DEBUG;
|
107 |
|
108 |
# Добавляем Wordpress репозиторий в список доступных репозиториев по умолчанию
|
109 |
+
self::$repositories['wordpress'] = '\WBCR\Factory_425\Updates\Wordpress_Repository';
|
110 |
|
111 |
$settings = $this->get_settings();
|
112 |
|
287 |
|
288 |
if ( isset( self::$repositories[ $repository_name ] ) && class_exists( self::$repositories[ $repository_name ] ) ) {
|
289 |
if ( self::$repositories[ $repository_name ] instanceof Repository ) {
|
290 |
+
throw new Exception( "Repository {$repository_name} must extend the class WBCR\Factory_425\Updates\Repository interface!" );
|
291 |
}
|
292 |
|
293 |
return new self::$repositories[ $repository_name ]( $this->plugin );
|
libs/factory/core/includes/updates/repositories/class-factory-repository-abstract.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
-
use
|
7 |
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
exit;
|
@@ -23,17 +23,17 @@ abstract class Repository {
|
|
23 |
protected $initialized = false;
|
24 |
|
25 |
/**
|
26 |
-
* @var
|
27 |
*/
|
28 |
protected $plugin;
|
29 |
|
30 |
/**
|
31 |
* Repository constructor.
|
32 |
*
|
33 |
-
* @param
|
34 |
* @param bool $is_premium
|
35 |
*/
|
36 |
-
abstract public function __construct(
|
37 |
|
38 |
/**
|
39 |
* @return void
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425\Updates;
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
+
use Wbcr_Factory425_Plugin;
|
7 |
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
exit;
|
23 |
protected $initialized = false;
|
24 |
|
25 |
/**
|
26 |
+
* @var Wbcr_Factory425_Plugin
|
27 |
*/
|
28 |
protected $plugin;
|
29 |
|
30 |
/**
|
31 |
* Repository constructor.
|
32 |
*
|
33 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
34 |
* @param bool $is_premium
|
35 |
*/
|
36 |
+
abstract public function __construct( Wbcr_Factory425_Plugin $plugin );
|
37 |
|
38 |
/**
|
39 |
* @return void
|
libs/factory/core/includes/updates/repositories/class-factory-wordpress.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
-
use
|
7 |
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
exit;
|
@@ -20,10 +20,10 @@ class Wordpress_Repository extends Repository {
|
|
20 |
/**
|
21 |
* Wordpress constructor.
|
22 |
*
|
23 |
-
* @param
|
24 |
* @param bool $is_premium
|
25 |
*/
|
26 |
-
public function __construct(
|
27 |
$this->plugin = $plugin;
|
28 |
}
|
29 |
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_425\Updates;
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
+
use Wbcr_Factory425_Plugin;
|
7 |
|
8 |
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
exit;
|
20 |
/**
|
21 |
* Wordpress constructor.
|
22 |
*
|
23 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
24 |
* @param bool $is_premium
|
25 |
*/
|
26 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
27 |
$this->plugin = $plugin;
|
28 |
}
|
29 |
|
libs/factory/core/langs/{wbcr_factory_424-ru_RU.mo → wbcr_factory_425-ru_RU.mo}
RENAMED
File without changes
|
libs/factory/core/langs/{wbcr_factory_424-ru_RU.po → wbcr_factory_425-ru_RU.po}
RENAMED
File without changes
|
libs/factory/feedback/README.md
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Установка
|
2 |
+
|
3 |
+
Добавить в главный файл плагина в раздел Отладочных констант
|
4 |
+
|
5 |
+
```php
|
6 |
+
//Включить режим отладки для модуля обратной связи. Если FACTORY_FEEDBACK_DEBUG true,
|
7 |
+
//то модуль обратной связи не будет отправлять данные о деактивации плагина
|
8 |
+
if ( ! defined( 'FACTORY_FEEDBACK_DEBUG' ) ) {
|
9 |
+
define( 'FACTORY_FEEDBACK_DEBUG', true );
|
10 |
+
}
|
11 |
+
|
12 |
+
//Остановить показ окна фидбэка для всех плагинов созданных на Factory фреймворке.
|
13 |
+
//Это может пригодиться, если есть проблемы с деактивацией плагина.
|
14 |
+
if ( ! defined( 'FACTORY_FEEDBACK_BLOCK' ) ) {
|
15 |
+
define( 'FACTORY_FEEDBACK_BLOCK', false );
|
16 |
+
}
|
17 |
+
```
|
18 |
+
|
19 |
+
Добавить в раздел подключения модулей
|
20 |
+
|
21 |
+
```php
|
22 |
+
array( 'libs/factory/feedback', 'factory_feedback_000', 'admin'), // Модуль для запроса обратной связи от пользователя
|
23 |
+
```
|
libs/factory/feedback/assets/css/dialog-boxes.css
ADDED
@@ -0,0 +1,674 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.wbcr-factory-feedback-102-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 |
+
|
12 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-dialog {
|
13 |
+
background: transparent;
|
14 |
+
position: absolute;
|
15 |
+
left: 50%;
|
16 |
+
margin-left: -298px;
|
17 |
+
padding-bottom: 30px;
|
18 |
+
top: -100%;
|
19 |
+
z-index: 100001;
|
20 |
+
width: 596px
|
21 |
+
}
|
22 |
+
|
23 |
+
@media (max-width: 650px) {
|
24 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-dialog {
|
25 |
+
margin-left: -50%;
|
26 |
+
box-sizing: border-box;
|
27 |
+
padding-left: 10px;
|
28 |
+
padding-right: 10px;
|
29 |
+
width: 100%
|
30 |
+
}
|
31 |
+
|
32 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-dialog .wbcr-factory-feedback-102-modal-panel > h3 > strong {
|
33 |
+
font-size: 1.3em
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
.wbcr-factory-feedback-102-modal.active {
|
38 |
+
display: block
|
39 |
+
}
|
40 |
+
|
41 |
+
.wbcr-factory-feedback-102-modal.active:before {
|
42 |
+
display: block
|
43 |
+
}
|
44 |
+
|
45 |
+
.wbcr-factory-feedback-102-modal.active .wbcr-factory-feedback-102-modal-dialog {
|
46 |
+
top: 10%
|
47 |
+
}
|
48 |
+
|
49 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-success .wbcr-factory-feedback-102-modal-header {
|
50 |
+
border-bottom-color: #46b450
|
51 |
+
}
|
52 |
+
|
53 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-success .wbcr-factory-feedback-102-modal-body {
|
54 |
+
background-color: #f7fff7
|
55 |
+
}
|
56 |
+
|
57 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-warn .wbcr-factory-feedback-102-modal-header {
|
58 |
+
border-bottom-color: #ffb900
|
59 |
+
}
|
60 |
+
|
61 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-warn .wbcr-factory-feedback-102-modal-body {
|
62 |
+
background-color: #fff8e5
|
63 |
+
}
|
64 |
+
|
65 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-error .wbcr-factory-feedback-102-modal-header {
|
66 |
+
border-bottom-color: #dc3232
|
67 |
+
}
|
68 |
+
|
69 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-error .wbcr-factory-feedback-102-modal-body {
|
70 |
+
background-color: #ffeaea
|
71 |
+
}
|
72 |
+
|
73 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-body, .wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-footer {
|
74 |
+
border: 0;
|
75 |
+
background: #fefefe;
|
76 |
+
padding: 20px
|
77 |
+
}
|
78 |
+
|
79 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-header {
|
80 |
+
border-bottom: #eeeeee solid 1px;
|
81 |
+
background: #fbfbfb;
|
82 |
+
padding: 15px 20px;
|
83 |
+
position: relative;
|
84 |
+
margin-bottom: -10px
|
85 |
+
}
|
86 |
+
|
87 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-header h4 {
|
88 |
+
margin: 0;
|
89 |
+
padding: 0;
|
90 |
+
text-transform: uppercase;
|
91 |
+
font-size: 1.2em;
|
92 |
+
font-weight: bold;
|
93 |
+
color: #cacaca;
|
94 |
+
text-shadow: 1px 1px 1px #fff;
|
95 |
+
letter-spacing: 0.6px;
|
96 |
+
-webkit-font-smoothing: antialiased
|
97 |
+
}
|
98 |
+
|
99 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-header .wbcr-factory-feedback-102-close {
|
100 |
+
position: absolute;
|
101 |
+
right: 10px;
|
102 |
+
top: 12px;
|
103 |
+
cursor: pointer;
|
104 |
+
color: #bbb;
|
105 |
+
-moz-border-radius: 20px;
|
106 |
+
-webkit-border-radius: 20px;
|
107 |
+
border-radius: 20px;
|
108 |
+
padding: 3px;
|
109 |
+
-moz-transition: all 0.2s ease-in-out;
|
110 |
+
-o-transition: all 0.2s ease-in-out;
|
111 |
+
-ms-transition: all 0.2s ease-in-out;
|
112 |
+
-webkit-transition: all 0.2s ease-in-out;
|
113 |
+
transition: all 0.2s ease-in-out
|
114 |
+
}
|
115 |
+
|
116 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-header .wbcr-factory-feedback-102-close:hover {
|
117 |
+
color: #fff;
|
118 |
+
background: #aaa
|
119 |
+
}
|
120 |
+
|
121 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-header .wbcr-factory-feedback-102-close .dashicons, .wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-header .wbcr-factory-feedback-102-close:hover .dashicons {
|
122 |
+
text-decoration: none
|
123 |
+
}
|
124 |
+
|
125 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-body {
|
126 |
+
border-bottom: 0
|
127 |
+
}
|
128 |
+
|
129 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-body p {
|
130 |
+
font-size: 14px
|
131 |
+
}
|
132 |
+
|
133 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-body h2 {
|
134 |
+
font-size: 20px;
|
135 |
+
line-height: 1.5em
|
136 |
+
}
|
137 |
+
|
138 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-body > div {
|
139 |
+
margin-top: 10px
|
140 |
+
}
|
141 |
+
|
142 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-body > div h2 {
|
143 |
+
font-weight: bold;
|
144 |
+
font-size: 20px;
|
145 |
+
margin-top: 0
|
146 |
+
}
|
147 |
+
|
148 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-footer {
|
149 |
+
border-top: #eeeeee solid 1px;
|
150 |
+
text-align: right
|
151 |
+
}
|
152 |
+
|
153 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-footer > .button {
|
154 |
+
margin: 0 7px
|
155 |
+
}
|
156 |
+
|
157 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-footer > .button:first-child {
|
158 |
+
margin: 0
|
159 |
+
}
|
160 |
+
|
161 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-panel > .notice.inline {
|
162 |
+
margin: 0;
|
163 |
+
display: none
|
164 |
+
}
|
165 |
+
|
166 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-panel:not(.active) {
|
167 |
+
display: none
|
168 |
+
}
|
169 |
+
|
170 |
+
.rtl .wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-header .wbcr-factory-feedback-102-close {
|
171 |
+
right: auto;
|
172 |
+
left: 20px
|
173 |
+
}
|
174 |
+
|
175 |
+
body.has-wbcr-factory-feedback-102-modal {
|
176 |
+
overflow: hidden
|
177 |
+
}
|
178 |
+
|
179 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback .reason-input, .wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback .internal-message {
|
180 |
+
margin: 3px 0 3px 22px
|
181 |
+
}
|
182 |
+
|
183 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback .reason-input input, .wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback .reason-input textarea, .wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback .internal-message input, .wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback .internal-message textarea {
|
184 |
+
width: 100%
|
185 |
+
}
|
186 |
+
|
187 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback li.reason.has-internal-message .internal-message {
|
188 |
+
border: 1px solid #ccc;
|
189 |
+
padding: 7px;
|
190 |
+
display: none
|
191 |
+
}
|
192 |
+
|
193 |
+
@media (max-width: 650px) {
|
194 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback li.reason li.reason {
|
195 |
+
margin-bottom: 10px
|
196 |
+
}
|
197 |
+
|
198 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback li.reason li.reason .reason-input, .wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback li.reason li.reason .internal-message {
|
199 |
+
margin-left: 29px
|
200 |
+
}
|
201 |
+
|
202 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback li.reason li.reason label {
|
203 |
+
display: table
|
204 |
+
}
|
205 |
+
|
206 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback li.reason li.reason label > span {
|
207 |
+
display: table-cell;
|
208 |
+
font-size: 1.3em
|
209 |
+
}
|
210 |
+
}
|
211 |
+
|
212 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback .wbcr-factory-feedback-102-anonymous-feedback-label {
|
213 |
+
float: left
|
214 |
+
}
|
215 |
+
|
216 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback .wbcr-factory-feedback-102-modal-panel {
|
217 |
+
margin-top: 0 !important
|
218 |
+
}
|
219 |
+
|
220 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-deactivation-feedback .wbcr-factory-feedback-102-modal-panel h3 {
|
221 |
+
margin-top: 0;
|
222 |
+
line-height: 1.5em
|
223 |
+
}
|
224 |
+
|
225 |
+
#the-list .deactivate > .wbcr-factory-feedback-102-slug {
|
226 |
+
display: none
|
227 |
+
}
|
228 |
+
|
229 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-subscription-cancellation .wbcr-factory-feedback-102-price-increase-warning {
|
230 |
+
color: red;
|
231 |
+
font-weight: bold;
|
232 |
+
padding: 0 25px;
|
233 |
+
margin-bottom: 0
|
234 |
+
}
|
235 |
+
|
236 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-subscription-cancellation ul.subscription-actions label input {
|
237 |
+
float: left;
|
238 |
+
top: 5px;
|
239 |
+
position: relative
|
240 |
+
}
|
241 |
+
|
242 |
+
.rtl .wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-subscription-cancellation ul.subscription-actions label input {
|
243 |
+
float: right
|
244 |
+
}
|
245 |
+
|
246 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-subscription-cancellation ul.subscription-actions label span {
|
247 |
+
display: block;
|
248 |
+
margin-left: 24px
|
249 |
+
}
|
250 |
+
|
251 |
+
.rtl .wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-subscription-cancellation ul.subscription-actions label span {
|
252 |
+
margin-left: 0;
|
253 |
+
margin-right: 24px
|
254 |
+
}
|
255 |
+
|
256 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-license-activation .wbcr-factory-feedback-102-modal-body input.wbcr-factory-feedback-102-license-key {
|
257 |
+
width: 100%
|
258 |
+
}
|
259 |
+
|
260 |
+
.wbcr-factory-feedback-102-license-options-container table, .wbcr-factory-feedback-102-license-options-container table select, .wbcr-factory-feedback-102-license-options-container table .wbcr-factory-feedback-102-available-license-key {
|
261 |
+
width: 100%
|
262 |
+
}
|
263 |
+
|
264 |
+
.wbcr-factory-feedback-102-license-options-container table td:first-child {
|
265 |
+
width: 1%
|
266 |
+
}
|
267 |
+
|
268 |
+
.wbcr-factory-feedback-102-license-options-container table .wbcr-factory-feedback-102-other-license-key-container label {
|
269 |
+
position: relative;
|
270 |
+
top: 6px;
|
271 |
+
float: left;
|
272 |
+
margin-right: 5px
|
273 |
+
}
|
274 |
+
|
275 |
+
.wbcr-factory-feedback-102-license-options-container table .wbcr-factory-feedback-102-other-license-key-container div {
|
276 |
+
overflow: hidden;
|
277 |
+
width: auto;
|
278 |
+
height: 30px;
|
279 |
+
display: block;
|
280 |
+
top: 2px;
|
281 |
+
position: relative
|
282 |
+
}
|
283 |
+
|
284 |
+
.wbcr-factory-feedback-102-license-options-container table .wbcr-factory-feedback-102-other-license-key-container div input {
|
285 |
+
margin: 0
|
286 |
+
}
|
287 |
+
|
288 |
+
.wbcr-factory-feedback-102-sites-list-container td {
|
289 |
+
cursor: pointer
|
290 |
+
}
|
291 |
+
|
292 |
+
.wbcr-factory-feedback-102-multisite-options-container {
|
293 |
+
margin-top: 10px;
|
294 |
+
border: 1px solid #ccc;
|
295 |
+
padding: 5px
|
296 |
+
}
|
297 |
+
|
298 |
+
.wbcr-factory-feedback-102-multisite-options-container a {
|
299 |
+
text-decoration: none
|
300 |
+
}
|
301 |
+
|
302 |
+
.wbcr-factory-feedback-102-multisite-options-container a:focus {
|
303 |
+
box-shadow: none
|
304 |
+
}
|
305 |
+
|
306 |
+
.wbcr-factory-feedback-102-multisite-options-container a.selected {
|
307 |
+
font-weight: bold
|
308 |
+
}
|
309 |
+
|
310 |
+
.wbcr-factory-feedback-102-multisite-options-container.wbcr-factory-feedback-102-apply-on-all-sites {
|
311 |
+
border: 0 none;
|
312 |
+
padding: 0
|
313 |
+
}
|
314 |
+
|
315 |
+
.wbcr-factory-feedback-102-multisite-options-container.wbcr-factory-feedback-102-apply-on-all-sites .wbcr-factory-feedback-102-all-sites-options {
|
316 |
+
border-spacing: 0
|
317 |
+
}
|
318 |
+
|
319 |
+
.wbcr-factory-feedback-102-multisite-options-container.wbcr-factory-feedback-102-apply-on-all-sites .wbcr-factory-feedback-102-all-sites-options td:not(:first-child) {
|
320 |
+
display: none
|
321 |
+
}
|
322 |
+
|
323 |
+
.wbcr-factory-feedback-102-multisite-options-container .wbcr-factory-feedback-102-sites-list-container {
|
324 |
+
display: none;
|
325 |
+
overflow: auto
|
326 |
+
}
|
327 |
+
|
328 |
+
.wbcr-factory-feedback-102-multisite-options-container .wbcr-factory-feedback-102-sites-list-container table td {
|
329 |
+
border-top: 1px solid #ccc;
|
330 |
+
padding: 4px 2px
|
331 |
+
}
|
332 |
+
|
333 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-license-key-resend .email-address-container {
|
334 |
+
overflow: hidden;
|
335 |
+
padding-right: 2px
|
336 |
+
}
|
337 |
+
|
338 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-license-key-resend.wbcr-factory-feedback-102-freemium input.email-address {
|
339 |
+
width: 300px
|
340 |
+
}
|
341 |
+
|
342 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-license-key-resend.wbcr-factory-feedback-102-freemium label {
|
343 |
+
display: block;
|
344 |
+
margin-bottom: 10px
|
345 |
+
}
|
346 |
+
|
347 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-license-key-resend.wbcr-factory-feedback-102-premium input.email-address {
|
348 |
+
width: 100%
|
349 |
+
}
|
350 |
+
|
351 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-license-key-resend.wbcr-factory-feedback-102-premium .button-container {
|
352 |
+
float: right;
|
353 |
+
margin-left: 7px
|
354 |
+
}
|
355 |
+
|
356 |
+
@media (max-width: 650px) {
|
357 |
+
.wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-license-key-resend.wbcr-factory-feedback-102-premium .button-container {
|
358 |
+
margin-top: 2px
|
359 |
+
}
|
360 |
+
}
|
361 |
+
|
362 |
+
.rtl .wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-license-key-resend .wbcr-factory-feedback-102-modal-body .input-container > .email-address-container {
|
363 |
+
padding-left: 2px;
|
364 |
+
padding-right: 0
|
365 |
+
}
|
366 |
+
|
367 |
+
.rtl .wbcr-factory-feedback-102-modal.wbcr-factory-feedback-102-modal-license-key-resend .wbcr-factory-feedback-102-modal-body .button-container {
|
368 |
+
float: left;
|
369 |
+
margin-right: 7px;
|
370 |
+
margin-left: 0
|
371 |
+
}
|
372 |
+
|
373 |
+
a.show-license-resend-modal {
|
374 |
+
margin-top: 4px;
|
375 |
+
display: inline-block
|
376 |
+
}
|
377 |
+
|
378 |
+
.wbcr-factory-feedback-102-ajax-loader {
|
379 |
+
position: relative;
|
380 |
+
width: 170px;
|
381 |
+
height: 20px;
|
382 |
+
margin: auto
|
383 |
+
}
|
384 |
+
|
385 |
+
.wbcr-factory-feedback-102-ajax-loader .wbcr-factory-feedback-102-ajax-loader-bar {
|
386 |
+
position: absolute;
|
387 |
+
top: 0;
|
388 |
+
background-color: #0074a3;
|
389 |
+
width: 20px;
|
390 |
+
height: 20px;
|
391 |
+
-webkit-animation-name: bounce_ajaxLoader;
|
392 |
+
-moz-animation-name: bounce_ajaxLoader;
|
393 |
+
-ms-animation-name: bounce_ajaxLoader;
|
394 |
+
-o-animation-name: bounce_ajaxLoader;
|
395 |
+
animation-name: bounce_ajaxLoader;
|
396 |
+
-webkit-animation-duration: 1.5s;
|
397 |
+
-moz-animation-duration: 1.5s;
|
398 |
+
-ms-animation-duration: 1.5s;
|
399 |
+
-o-animation-duration: 1.5s;
|
400 |
+
animation-duration: 1.5s;
|
401 |
+
animation-iteration-count: infinite;
|
402 |
+
-o-animation-iteration-count: infinite;
|
403 |
+
-ms-animation-iteration-count: infinite;
|
404 |
+
-webkit-animation-iteration-count: infinite;
|
405 |
+
-moz-animation-iteration-count: infinite;
|
406 |
+
-webkit-animation-direction: normal;
|
407 |
+
-moz-animation-direction: normal;
|
408 |
+
-ms-animation-direction: normal;
|
409 |
+
-o-animation-direction: normal;
|
410 |
+
animation-direction: normal;
|
411 |
+
-moz-transform: 0.3;
|
412 |
+
-o-transform: 0.3;
|
413 |
+
-ms-transform: 0.3;
|
414 |
+
-webkit-transform: 0.3;
|
415 |
+
transform: 0.3
|
416 |
+
}
|
417 |
+
|
418 |
+
.wbcr-factory-feedback-102-ajax-loader .wbcr-factory-feedback-102-ajax-loader-bar-1 {
|
419 |
+
left: 0px;
|
420 |
+
animation-delay: 0.6s;
|
421 |
+
-o-animation-delay: 0.6s;
|
422 |
+
-ms-animation-delay: 0.6s;
|
423 |
+
-webkit-animation-delay: 0.6s;
|
424 |
+
-moz-animation-delay: 0.6s
|
425 |
+
}
|
426 |
+
|
427 |
+
.wbcr-factory-feedback-102-ajax-loader .wbcr-factory-feedback-102-ajax-loader-bar-2 {
|
428 |
+
left: 19px;
|
429 |
+
animation-delay: 0.75s;
|
430 |
+
-o-animation-delay: 0.75s;
|
431 |
+
-ms-animation-delay: 0.75s;
|
432 |
+
-webkit-animation-delay: 0.75s;
|
433 |
+
-moz-animation-delay: 0.75s
|
434 |
+
}
|
435 |
+
|
436 |
+
.wbcr-factory-feedback-102-ajax-loader .wbcr-factory-feedback-102-ajax-loader-bar-3 {
|
437 |
+
left: 38px;
|
438 |
+
animation-delay: 0.9s;
|
439 |
+
-o-animation-delay: 0.9s;
|
440 |
+
-ms-animation-delay: 0.9s;
|
441 |
+
-webkit-animation-delay: 0.9s;
|
442 |
+
-moz-animation-delay: 0.9s
|
443 |
+
}
|
444 |
+
|
445 |
+
.wbcr-factory-feedback-102-ajax-loader .wbcr-factory-feedback-102-ajax-loader-bar-4 {
|
446 |
+
left: 57px;
|
447 |
+
animation-delay: 1.05s;
|
448 |
+
-o-animation-delay: 1.05s;
|
449 |
+
-ms-animation-delay: 1.05s;
|
450 |
+
-webkit-animation-delay: 1.05s;
|
451 |
+
-moz-animation-delay: 1.05s
|
452 |
+
}
|
453 |
+
|
454 |
+
.wbcr-factory-feedback-102-ajax-loader .wbcr-factory-feedback-102-ajax-loader-bar-5 {
|
455 |
+
left: 76px;
|
456 |
+
animation-delay: 1.2s;
|
457 |
+
-o-animation-delay: 1.2s;
|
458 |
+
-ms-animation-delay: 1.2s;
|
459 |
+
-webkit-animation-delay: 1.2s;
|
460 |
+
-moz-animation-delay: 1.2s
|
461 |
+
}
|
462 |
+
|
463 |
+
.wbcr-factory-feedback-102-ajax-loader .wbcr-factory-feedback-102-ajax-loader-bar-6 {
|
464 |
+
left: 95px;
|
465 |
+
animation-delay: 1.35s;
|
466 |
+
-o-animation-delay: 1.35s;
|
467 |
+
-ms-animation-delay: 1.35s;
|
468 |
+
-webkit-animation-delay: 1.35s;
|
469 |
+
-moz-animation-delay: 1.35s
|
470 |
+
}
|
471 |
+
|
472 |
+
.wbcr-factory-feedback-102-ajax-loader .wbcr-factory-feedback-102-ajax-loader-bar-7 {
|
473 |
+
left: 114px;
|
474 |
+
animation-delay: 1.5s;
|
475 |
+
-o-animation-delay: 1.5s;
|
476 |
+
-ms-animation-delay: 1.5s;
|
477 |
+
-webkit-animation-delay: 1.5s;
|
478 |
+
-moz-animation-delay: 1.5s
|
479 |
+
}
|
480 |
+
|
481 |
+
.wbcr-factory-feedback-102-ajax-loader .wbcr-factory-feedback-102-ajax-loader-bar-8 {
|
482 |
+
left: 133px;
|
483 |
+
animation-delay: 1.65s;
|
484 |
+
-o-animation-delay: 1.65s;
|
485 |
+
-ms-animation-delay: 1.65s;
|
486 |
+
-webkit-animation-delay: 1.65s;
|
487 |
+
-moz-animation-delay: 1.65s
|
488 |
+
}
|
489 |
+
|
490 |
+
@-moz-keyframes bounce_ajaxLoader {
|
491 |
+
0% {
|
492 |
+
-moz-transform: scale(1);
|
493 |
+
-o-transform: scale(1);
|
494 |
+
-ms-transform: scale(1);
|
495 |
+
-webkit-transform: scale(1);
|
496 |
+
transform: scale(1);
|
497 |
+
background-color: #0074a3
|
498 |
+
}
|
499 |
+
100% {
|
500 |
+
-moz-transform: scale(0.3);
|
501 |
+
-o-transform: scale(0.3);
|
502 |
+
-ms-transform: scale(0.3);
|
503 |
+
-webkit-transform: scale(0.3);
|
504 |
+
transform: scale(0.3);
|
505 |
+
background-color: #fff
|
506 |
+
}
|
507 |
+
}
|
508 |
+
|
509 |
+
@-ms-keyframes bounce_ajaxLoader {
|
510 |
+
0% {
|
511 |
+
-moz-transform: scale(1);
|
512 |
+
-o-transform: scale(1);
|
513 |
+
-ms-transform: scale(1);
|
514 |
+
-webkit-transform: scale(1);
|
515 |
+
transform: scale(1);
|
516 |
+
background-color: #0074a3
|
517 |
+
}
|
518 |
+
100% {
|
519 |
+
-moz-transform: scale(0.3);
|
520 |
+
-o-transform: scale(0.3);
|
521 |
+
-ms-transform: scale(0.3);
|
522 |
+
-webkit-transform: scale(0.3);
|
523 |
+
transform: scale(0.3);
|
524 |
+
background-color: #fff
|
525 |
+
}
|
526 |
+
}
|
527 |
+
|
528 |
+
@-o-keyframes bounce_ajaxLoader {
|
529 |
+
0% {
|
530 |
+
-moz-transform: scale(1);
|
531 |
+
-o-transform: scale(1);
|
532 |
+
-ms-transform: scale(1);
|
533 |
+
-webkit-transform: scale(1);
|
534 |
+
transform: scale(1);
|
535 |
+
background-color: #0074a3
|
536 |
+
}
|
537 |
+
100% {
|
538 |
+
-moz-transform: scale(0.3);
|
539 |
+
-o-transform: scale(0.3);
|
540 |
+
-ms-transform: scale(0.3);
|
541 |
+
-webkit-transform: scale(0.3);
|
542 |
+
transform: scale(0.3);
|
543 |
+
background-color: #fff
|
544 |
+
}
|
545 |
+
}
|
546 |
+
|
547 |
+
@-webkit-keyframes bounce_ajaxLoader {
|
548 |
+
0% {
|
549 |
+
-moz-transform: scale(1);
|
550 |
+
-o-transform: scale(1);
|
551 |
+
-ms-transform: scale(1);
|
552 |
+
-webkit-transform: scale(1);
|
553 |
+
transform: scale(1);
|
554 |
+
background-color: #0074a3
|
555 |
+
}
|
556 |
+
100% {
|
557 |
+
-moz-transform: scale(0.3);
|
558 |
+
-o-transform: scale(0.3);
|
559 |
+
-ms-transform: scale(0.3);
|
560 |
+
-webkit-transform: scale(0.3);
|
561 |
+
transform: scale(0.3);
|
562 |
+
background-color: #fff
|
563 |
+
}
|
564 |
+
}
|
565 |
+
|
566 |
+
@keyframes bounce_ajaxLoader {
|
567 |
+
0% {
|
568 |
+
-moz-transform: scale(1);
|
569 |
+
-o-transform: scale(1);
|
570 |
+
-ms-transform: scale(1);
|
571 |
+
-webkit-transform: scale(1);
|
572 |
+
transform: scale(1);
|
573 |
+
background-color: #0074a3
|
574 |
+
}
|
575 |
+
100% {
|
576 |
+
-moz-transform: scale(0.3);
|
577 |
+
-o-transform: scale(0.3);
|
578 |
+
-ms-transform: scale(0.3);
|
579 |
+
-webkit-transform: scale(0.3);
|
580 |
+
transform: scale(0.3);
|
581 |
+
background-color: #fff
|
582 |
+
}
|
583 |
+
}
|
584 |
+
|
585 |
+
.wbcr-factory-feedback-102-modal-auto-install #request-filesystem-credentials-form h2, .wbcr-factory-feedback-102-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons {
|
586 |
+
display: none
|
587 |
+
}
|
588 |
+
|
589 |
+
.wbcr-factory-feedback-102-modal-auto-install #request-filesystem-credentials-form input[type=password], .wbcr-factory-feedback-102-modal-auto-install #request-filesystem-credentials-form input[type=email], .wbcr-factory-feedback-102-modal-auto-install #request-filesystem-credentials-form input[type=text] {
|
590 |
+
-webkit-appearance: none;
|
591 |
+
padding: 10px 10px 5px 10px;
|
592 |
+
width: 300px;
|
593 |
+
max-width: 100%
|
594 |
+
}
|
595 |
+
|
596 |
+
.wbcr-factory-feedback-102-modal-auto-install #request-filesystem-credentials-form > div, .wbcr-factory-feedback-102-modal-auto-install #request-filesystem-credentials-form label, .wbcr-factory-feedback-102-modal-auto-install #request-filesystem-credentials-form fieldset {
|
597 |
+
width: 300px;
|
598 |
+
max-width: 100%;
|
599 |
+
margin: 0 auto;
|
600 |
+
display: block
|
601 |
+
}
|
602 |
+
|
603 |
+
.button-primary.warn {
|
604 |
+
box-shadow: 0 1px 0 #d2593c;
|
605 |
+
text-shadow: 0 -1px 1px #d2593c, 1px 0 1px #d2593c, 0 1px 1px #d2593c, -1px 0 1px #d2593c;
|
606 |
+
background: #f56a48;
|
607 |
+
border-color: #ec6544 #d2593c #d2593c
|
608 |
+
}
|
609 |
+
|
610 |
+
.button-primary.warn:hover {
|
611 |
+
background: #fd6d4a;
|
612 |
+
border-color: #d2593c
|
613 |
+
}
|
614 |
+
|
615 |
+
.button-primary.warn:focus {
|
616 |
+
box-shadow: 0 1px 0 #dd6041, 0 0 2px 1px #e4a796
|
617 |
+
}
|
618 |
+
|
619 |
+
.button-primary.warn:active {
|
620 |
+
background: #dd6041;
|
621 |
+
border-color: #d2593c;
|
622 |
+
box-shadow: inset 0 2px 0 #d2593c
|
623 |
+
}
|
624 |
+
|
625 |
+
.button-primary.warn.disabled {
|
626 |
+
color: #f5b3a1 !important;
|
627 |
+
background: #e76444 !important;
|
628 |
+
border-color: #d85e40 !important;
|
629 |
+
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1) !important
|
630 |
+
}
|
631 |
+
|
632 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-header {
|
633 |
+
background: black;
|
634 |
+
color: #fff;
|
635 |
+
}
|
636 |
+
|
637 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-header h4 {
|
638 |
+
text-shadow: none;
|
639 |
+
color: #fff;
|
640 |
+
}
|
641 |
+
|
642 |
+
.wbcr-factory-feedback-102-modal .wbcr-factory-feedback-102-modal-body {
|
643 |
+
padding-top: 35px;
|
644 |
+
}
|
645 |
+
|
646 |
+
.wbcr-factory-feedback-102-modal a.button-primary {
|
647 |
+
background-color: #9fbb1a !important;
|
648 |
+
color: #fff !important;
|
649 |
+
border: none !important;
|
650 |
+
box-shadow: none !important;
|
651 |
+
text-shadow: none !important;
|
652 |
+
height: 35px !important;
|
653 |
+
padding: 0 24px !important;
|
654 |
+
line-height: 35px;
|
655 |
+
width: auto !important;
|
656 |
+
border-radius: 0;
|
657 |
+
text-transform: uppercase;
|
658 |
+
letter-spacing: .5px;
|
659 |
+
font-family: Lato, sans-serif;
|
660 |
+
}
|
661 |
+
|
662 |
+
.wbcr-factory-feedback-102-modal a.button-secondary {
|
663 |
+
border: none !important;
|
664 |
+
box-shadow: none !important;
|
665 |
+
text-shadow: none !important;
|
666 |
+
height: 35px !important;
|
667 |
+
padding: 0 24px !important;
|
668 |
+
line-height: 35px;
|
669 |
+
width: auto !important;
|
670 |
+
border-radius: 0;
|
671 |
+
text-transform: uppercase;
|
672 |
+
letter-spacing: .5px;
|
673 |
+
font-family: Lato, sans-serif;
|
674 |
+
}
|
libs/factory/feedback/assets/js/deactivate-feedback.js
ADDED
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function($) {
|
2 |
+
'use strict';
|
3 |
+
|
4 |
+
var redirectLink = '';
|
5 |
+
var plugin_slug = '';
|
6 |
+
|
7 |
+
$(window).load(function() {
|
8 |
+
var modal = $('#wbcr-factory-feedback-102-deactivate-form');
|
9 |
+
var deact_button = $('#the-list .deactivate > .plugin-slug').prev();
|
10 |
+
var deact_button_close = modal.find('a.button-close');
|
11 |
+
var selectedReasonID = false;
|
12 |
+
|
13 |
+
deact_button.click(function(event) {
|
14 |
+
event.preventDefault();
|
15 |
+
redirectLink = $(this).attr('href');
|
16 |
+
plugin_slug = $(this).next().attr('data-plugin');
|
17 |
+
modal.addClass('active');
|
18 |
+
});
|
19 |
+
deact_button_close.click(function(event) {
|
20 |
+
event.preventDefault();
|
21 |
+
modal.removeClass('active');
|
22 |
+
});
|
23 |
+
|
24 |
+
// If the user has clicked outside the window, cancel it.
|
25 |
+
modal.click(function(evt) {
|
26 |
+
var $target = $(evt.target);
|
27 |
+
|
28 |
+
// If the user has clicked anywhere in the modal dialog, just return.
|
29 |
+
if( $target.hasClass('wbcr-factory-feedback-102-modal-body') || $target.hasClass('wbcr-factory-feedback-102-modal-footer') ) {
|
30 |
+
return;
|
31 |
+
}
|
32 |
+
|
33 |
+
// If the user has not clicked the close button and the clicked element is inside the modal dialog, just
|
34 |
+
// return.
|
35 |
+
if(
|
36 |
+
!$target.hasClass('button-close') &&
|
37 |
+
($target.parents('.wbcr-factory-feedback-102-modal-body').length > 0 || $target.parents('.wbcr-factory-feedback-102-modal-footer').length > 0)
|
38 |
+
) {
|
39 |
+
return;
|
40 |
+
}
|
41 |
+
|
42 |
+
modal.removeClass('active');
|
43 |
+
|
44 |
+
return false;
|
45 |
+
});
|
46 |
+
|
47 |
+
// Если кликнуть на одну из радиокнопок, изменится текст кнопки
|
48 |
+
modal.on('click', 'input[type="radio"]', function(e) {
|
49 |
+
var $selectedReasonOption = $(this);
|
50 |
+
$selectedReasonOption.attr('checked');
|
51 |
+
var $target = $(e.target);
|
52 |
+
$target.attr('checked');
|
53 |
+
|
54 |
+
// If the selection has not changed, do not proceed.
|
55 |
+
if( selectedReasonID === $selectedReasonOption.val() ) {
|
56 |
+
return;
|
57 |
+
}
|
58 |
+
|
59 |
+
selectedReasonID = $selectedReasonOption.val();
|
60 |
+
|
61 |
+
var _parent = $(this).parents('li:first');
|
62 |
+
|
63 |
+
modal.find('.reason-input').remove();
|
64 |
+
modal.find('.internal-message').hide();
|
65 |
+
modal.find('.button-deactivate').html('Send');
|
66 |
+
|
67 |
+
if( _parent.hasClass('has-internal-message') ) {
|
68 |
+
_parent.find('.internal-message').show();
|
69 |
+
}
|
70 |
+
|
71 |
+
if( _parent.hasClass('has-input') ) {
|
72 |
+
var inputType = _parent.data('input-type'),
|
73 |
+
inputPlaceholder = _parent.data('input-placeholder'),
|
74 |
+
reasonInputHtml = '<div class="reason-input"><span class="message"></span>' + (('textfield' === inputType)
|
75 |
+
? '<input type="text" maxlength="128" />'
|
76 |
+
: '<textarea rows="5" maxlength="128"></textarea>') + '</div>';
|
77 |
+
|
78 |
+
_parent.append($(reasonInputHtml));
|
79 |
+
_parent.find('input, textarea').attr('placeholder', inputPlaceholder).focus();
|
80 |
+
}
|
81 |
+
});
|
82 |
+
|
83 |
+
//-----------------------------------------------------------
|
84 |
+
|
85 |
+
modal.on('click', '.wbcr-factory-feedback-102-modal-footer .button', function(evt) {
|
86 |
+
evt.preventDefault();
|
87 |
+
if( $(this).hasClass('disabled') ) {
|
88 |
+
return;
|
89 |
+
}
|
90 |
+
|
91 |
+
var _parent = $(this).parents('.wbcr-factory-feedback-102-modal:first');
|
92 |
+
var _this = $(this);
|
93 |
+
|
94 |
+
if( _this.hasClass('allow-deactivate') ) {
|
95 |
+
var $radio = modal.find('input[type="radio"]:checked');
|
96 |
+
|
97 |
+
var $selected_reason = $radio.parents('li:first'),
|
98 |
+
$input = $selected_reason.find('textarea, input[type="text"]'),
|
99 |
+
userReason = (0 !== $input.length) ? $input.val().trim() : '';
|
100 |
+
|
101 |
+
if( '' === userReason ) {
|
102 |
+
//return;
|
103 |
+
}
|
104 |
+
|
105 |
+
if( $radio.val() ) {
|
106 |
+
$.ajax({
|
107 |
+
url: ajaxurl,
|
108 |
+
method: 'POST',
|
109 |
+
data: {
|
110 |
+
action: 'wbcr-factory-feedback-102-save',
|
111 |
+
plugin: plugin_slug,
|
112 |
+
reason_id: $radio.val(),
|
113 |
+
reason_more: userReason,
|
114 |
+
anonymous: modal.find('#wbcr-factory-feedback-102-anonymous-checkbox').is(':checked')
|
115 |
+
? 1
|
116 |
+
: 0,
|
117 |
+
_wpnonce: modal.data('nonce')
|
118 |
+
},
|
119 |
+
beforeSend: function() {
|
120 |
+
_parent.find('.wbcr-factory-feedback-102-modal-footer .button').addClass('disabled');
|
121 |
+
_parent.find('.wbcr-factory-feedback-102-modal-footer .button-secondary').text('Processing...');
|
122 |
+
},
|
123 |
+
error: function() {
|
124 |
+
window.location.href = redirectLink;
|
125 |
+
},
|
126 |
+
complete: function(d, status) {
|
127 |
+
window.location.href = redirectLink;
|
128 |
+
}
|
129 |
+
});
|
130 |
+
} else {
|
131 |
+
window.location.href = redirectLink;
|
132 |
+
}
|
133 |
+
} else if( _this.hasClass('button-deactivate') ) {
|
134 |
+
// Change the Deactivate button's text and show the reasons panel.
|
135 |
+
_parent.find('.button-deactivate').addClass('allow-deactivate');
|
136 |
+
}
|
137 |
+
});
|
138 |
+
});
|
139 |
+
|
140 |
+
})(jQuery);
|
libs/factory/feedback/boot.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Factory Feedback
|
4 |
+
*
|
5 |
+
* @author Artem Prihodko <webtemyk@yandex.ru>
|
6 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
7 |
+
* @since 1.0.0
|
8 |
+
*
|
9 |
+
* @package factory-feedback
|
10 |
+
* @copyright (c) 2019, Webcraftic Ltd
|
11 |
+
*
|
12 |
+
* @version 1.0.0
|
13 |
+
*/
|
14 |
+
|
15 |
+
// Exit if accessed directly
|
16 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
17 |
+
exit;
|
18 |
+
}
|
19 |
+
|
20 |
+
if ( defined( 'FACTORY_FEEDBACK_102_LOADED' ) || ( defined( 'FACTORY_FEEDBACK_BLOCK' ) && FACTORY_FEEDBACK_BLOCK ) ) {
|
21 |
+
return;
|
22 |
+
}
|
23 |
+
|
24 |
+
# Устанавливаем константу, что модуль уже загружен
|
25 |
+
define( 'FACTORY_FEEDBACK_102_LOADED', true );
|
26 |
+
|
27 |
+
# Устанавливаем версию модуля
|
28 |
+
define( 'FACTORY_FEEDBACK_102_VERSION', '1.0.2' );
|
29 |
+
|
30 |
+
# Регистрируем текстовый домен, для интернализации интерфейса модуля
|
31 |
+
load_plugin_textdomain( 'wbcr_factory_feedback_102', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
|
32 |
+
|
33 |
+
# Устанавливаем директорию модуля
|
34 |
+
define( 'FACTORY_FEEDBACK_102_DIR', dirname( __FILE__ ) );
|
35 |
+
|
36 |
+
# Устанавливаем url модуля
|
37 |
+
define( 'FACTORY_FEEDBACK_102_URL', plugins_url( null, __FILE__ ) );
|
38 |
+
|
39 |
+
require_once( FACTORY_FEEDBACK_102_DIR . '/includes/class-base.php' );
|
40 |
+
require_once( FACTORY_FEEDBACK_102_DIR . '/includes/class-rest-request.php' );
|
41 |
+
|
42 |
+
/**
|
43 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
44 |
+
*/
|
45 |
+
add_action( 'wbcr_factory_feedback_102_plugin_created', function ( $plugin ) {
|
46 |
+
new WBCR\Factory_Feedback_102\Base( $plugin );
|
47 |
+
} );
|
libs/factory/feedback/includes/class-base.php
ADDED
@@ -0,0 +1,162 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace WBCR\Factory_Feedback_102;
|
4 |
+
|
5 |
+
// Exit if accessed directly
|
6 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
7 |
+
exit;
|
8 |
+
}
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Base class for feedback module.
|
12 |
+
*
|
13 |
+
* Предназначен для обратной связи с пользователями.
|
14 |
+
* В первой версии при деактивации плагина появляется всплывающее окно с небольшим опросом:
|
15 |
+
* "Почему вы деактивировали плагин?"
|
16 |
+
* Данные отправляются на сайт CreativeMotion
|
17 |
+
*
|
18 |
+
* @author Artem Prihodko <webtemyk@yandex.ru>
|
19 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
20 |
+
*
|
21 |
+
* @since 1.0.0 Added
|
22 |
+
* @package factory-feedback
|
23 |
+
* @copyright (c) 2019 Webcraftic Ltd
|
24 |
+
*/
|
25 |
+
class Base {
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Plugin instance this module interacts with
|
29 |
+
*
|
30 |
+
* @since 1.0.0 Added
|
31 |
+
* @var \Wbcr_Factory425_Plugin
|
32 |
+
*/
|
33 |
+
private $plugin;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Экземпляр класса для работы API CreativeMotion
|
37 |
+
*
|
38 |
+
* @since 1.0.0
|
39 |
+
* @var \WBCR\Factory_Feedback_102\Creative_Motion_API
|
40 |
+
*/
|
41 |
+
private $api;
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Wbcr_Factory_Feedback constructor.
|
45 |
+
*
|
46 |
+
* @param \Wbcr_Factory425_Plugin $plugin
|
47 |
+
*
|
48 |
+
* @since 1.0.0 Added
|
49 |
+
*
|
50 |
+
*/
|
51 |
+
public function __construct( \Wbcr_Factory425_Plugin $plugin ) {
|
52 |
+
$this->plugin = $plugin;
|
53 |
+
|
54 |
+
$this->api = new Creative_Motion_API( $this->plugin );
|
55 |
+
|
56 |
+
// Plugin hook for adding CSS and JS files required for this plugin
|
57 |
+
add_action( 'admin_enqueue_scripts', [ $this, 'admin_assets' ], 10, 1 );
|
58 |
+
add_action( 'admin_footer-plugins.php', [ $this, 'render_deactivate_form' ] );
|
59 |
+
|
60 |
+
if ( $this->plugin->isNetworkActive() ) {
|
61 |
+
add_filter( 'network_admin_plugin_action_links', [ $this, 'plugin_deactivate_action_link' ], 10, 2 );
|
62 |
+
} else {
|
63 |
+
add_filter( 'plugin_action_links', [ $this, 'plugin_deactivate_action_link' ], 10, 2 );
|
64 |
+
}
|
65 |
+
|
66 |
+
if ( wp_doing_ajax() ) {
|
67 |
+
add_action( 'wp_ajax_wbcr-factory-feedback-102-save', [ $this, 'send_feedback' ] );
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Enqueues module assets for work feedback popup.
|
73 |
+
*
|
74 |
+
* @param $hook_suffix
|
75 |
+
*
|
76 |
+
* @return void
|
77 |
+
* @since 1.0.0 Added
|
78 |
+
*
|
79 |
+
*/
|
80 |
+
public function admin_assets( $hook_suffix ) {
|
81 |
+
if ( 'plugins.php' === $hook_suffix ) {
|
82 |
+
wp_enqueue_script( 'wbcr-factory-feedback-102-deactivate', FACTORY_FEEDBACK_102_URL . '/assets/js/deactivate-feedback.js', [ 'jquery' ], FACTORY_FEEDBACK_102_VERSION, true );
|
83 |
+
wp_enqueue_style( 'wbcr-factory-feedback-102-deactivate', FACTORY_FEEDBACK_102_URL . '/assets/css/dialog-boxes.css' );
|
84 |
+
}
|
85 |
+
}
|
86 |
+
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Render html form in footer on the plugins page.
|
90 |
+
*
|
91 |
+
* @since 1.0.0 Added
|
92 |
+
*/
|
93 |
+
public function render_deactivate_form() {
|
94 |
+
include FACTORY_FEEDBACK_102_DIR . "/views/deactivate-form.php";
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Adds invisible element to action link to able to listen js events.
|
99 |
+
*
|
100 |
+
* @param array $actions Links array under plugin title
|
101 |
+
* @param string $plugin_file Plugin basename: plugin-name/plugin-name.php
|
102 |
+
*
|
103 |
+
* @return array Links array
|
104 |
+
* @since 1.0.0 Added
|
105 |
+
*
|
106 |
+
*/
|
107 |
+
public function plugin_deactivate_action_link( $actions, $plugin_file ) {
|
108 |
+
if ( $plugin_file !== $this->plugin->get_paths()->basename ) {
|
109 |
+
return $actions;
|
110 |
+
}
|
111 |
+
$actions['deactivate'] .= '<i class="plugin-slug" data-plugin="' . $this->plugin->getPluginName() . '"></i>';
|
112 |
+
|
113 |
+
return $actions;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
*
|
118 |
+
* Ajax action sends request to remote server to register deactivation reason.
|
119 |
+
*
|
120 |
+
* @since 1.0.1 Refactoring, fixed minor bugs. Added new data attrs.
|
121 |
+
* @since 1.0.0 Added
|
122 |
+
*/
|
123 |
+
public function send_feedback() {
|
124 |
+
global $wp_version;
|
125 |
+
|
126 |
+
if ( defined( 'FACTORY_FEEDBACK_DEBUG' ) && FACTORY_FEEDBACK_DEBUG ) {
|
127 |
+
return;
|
128 |
+
}
|
129 |
+
|
130 |
+
check_ajax_referer( 'wbcr_factory_send_feedback' );
|
131 |
+
|
132 |
+
if ( ! current_user_can( 'manage_options' ) || ( $this->plugin->plugin_slug !== $_POST['plugin'] ) ) {
|
133 |
+
wp_send_json_error( [ 'error_message' => "You haven't permissions for the action." ] );
|
134 |
+
}
|
135 |
+
|
136 |
+
if ( isset( $_POST['reason_id'] ) && isset( $_POST['reason_more'] ) ) {
|
137 |
+
$anonymous = $this->plugin->request->post( 'anonymous', 0, 'intval' );
|
138 |
+
$license_key = $this->plugin->premium->is_activate() ? $this->plugin->premium->get_license()->get_key() : '';
|
139 |
+
|
140 |
+
$data = [
|
141 |
+
'uid' => md5( home_url() . get_bloginfo( 'admin_email' ) ),
|
142 |
+
'plugin_name' => $this->plugin->getPluginName(),
|
143 |
+
'plugin_title' => $this->plugin->getPluginTitle(),
|
144 |
+
'site_url' => $anonymous ? '' : site_url(),
|
145 |
+
'plugin_version' => $anonymous ? '' : $this->plugin->getPluginVersion(),
|
146 |
+
'php_version' => $anonymous ? '' : phpversion(),
|
147 |
+
'wp_version' => $anonymous ? '' : $wp_version,
|
148 |
+
'license_key' => $anonymous ? '' : $license_key,
|
149 |
+
'reason' => $this->plugin->request->post( 'reason_id', 0, 'intval' ),
|
150 |
+
'reason_more' => $this->plugin->request->post( 'reason_more', '', true )
|
151 |
+
];
|
152 |
+
|
153 |
+
$plugin = explode( '/', plugin_basename( __FILE__ ) )[0];
|
154 |
+
|
155 |
+
$response = $this->api->send_feedback( $plugin, $data );
|
156 |
+
|
157 |
+
wp_send_json_success();
|
158 |
+
}
|
159 |
+
|
160 |
+
wp_send_json_error( [ 'error_message' => '' ] );
|
161 |
+
}
|
162 |
+
}
|
libs/factory/feedback/includes/class-rest-request.php
ADDED
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace WBCR\Factory_Feedback_102;
|
4 |
+
|
5 |
+
// Exit if accessed directly
|
6 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
7 |
+
exit;
|
8 |
+
}
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Factory request class.
|
12 |
+
*
|
13 |
+
* Performs a server request, retrieves banner data and stores it in the cache.
|
14 |
+
*
|
15 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
|
16 |
+
* @author Artem Prihodko <webtemyk@yandex.ru>
|
17 |
+
*
|
18 |
+
* @since 1.0.0 Added
|
19 |
+
*
|
20 |
+
* @package factory-feedback
|
21 |
+
* @copyright (c) 2019 Webcraftic Ltd
|
22 |
+
*/
|
23 |
+
class Creative_Motion_API {
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Rest request url.
|
27 |
+
*
|
28 |
+
* Define rest request url for rest request to remote server.
|
29 |
+
*
|
30 |
+
* @since 1.2.1
|
31 |
+
*/
|
32 |
+
//const SERVER_URL = 'http://antispam.loc';
|
33 |
+
const SERVER_URL = 'https://api.cm-wp.com';
|
34 |
+
/**
|
35 |
+
* Rest route path.
|
36 |
+
*
|
37 |
+
* Define rest route path for rest request.
|
38 |
+
*
|
39 |
+
* @since 1.0.0
|
40 |
+
*/
|
41 |
+
const REST_ROUTE = '/feedback/v1/add';
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Plugin instance this module interacts with
|
45 |
+
*
|
46 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
47 |
+
* @since 1.0.0
|
48 |
+
* @var \Wbcr_Factory425_Plugin
|
49 |
+
*/
|
50 |
+
private $plugin;
|
51 |
+
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Request constructor.
|
55 |
+
*
|
56 |
+
* Variable initialization.
|
57 |
+
*
|
58 |
+
* @since 1.0.0 Added
|
59 |
+
*
|
60 |
+
* @param \Wbcr_Factory425_Plugin $plugin_name
|
61 |
+
*/
|
62 |
+
public function __construct( \Wbcr_Factory425_Plugin $plugin ) {
|
63 |
+
$this->plugin = $plugin;
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Get adverts content.
|
68 |
+
*
|
69 |
+
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
70 |
+
* @since 1.0.0
|
71 |
+
*
|
72 |
+
* @param $position
|
73 |
+
*
|
74 |
+
* @return string|\WP_Error
|
75 |
+
*/
|
76 |
+
public function send_feedback( $plugin, $data ) {
|
77 |
+
$resp = $this->do_api_request( $plugin, $data );
|
78 |
+
|
79 |
+
if ( is_wp_error( $resp ) ) {
|
80 |
+
return $resp;
|
81 |
+
}
|
82 |
+
|
83 |
+
return true;
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Performs rest api request.
|
88 |
+
*
|
89 |
+
* @since 1.0.0
|
90 |
+
*
|
91 |
+
* @return mixed
|
92 |
+
*/
|
93 |
+
private function do_api_request( $plugin, $data ) {
|
94 |
+
$default_result = [];
|
95 |
+
$data['plugin'] = $plugin;
|
96 |
+
|
97 |
+
$url = untrailingslashit( self::SERVER_URL ) . '/wp-json' . self::REST_ROUTE;
|
98 |
+
//$url = add_query_arg( $data, $url);
|
99 |
+
|
100 |
+
$response = wp_remote_post( $url, [ 'body' => $data ] );
|
101 |
+
|
102 |
+
$code = wp_remote_retrieve_response_code( $response );
|
103 |
+
$body = wp_remote_retrieve_body( $response );
|
104 |
+
|
105 |
+
$res_data = @json_decode( $body, true );
|
106 |
+
|
107 |
+
if ( is_wp_error( $response ) ) {
|
108 |
+
return $response;
|
109 |
+
}
|
110 |
+
|
111 |
+
if ( 200 !== $code ) {
|
112 |
+
return new \WP_Error( 'http_request_error', 'Failed request to the remote server. Code: ' . $code );
|
113 |
+
}
|
114 |
+
|
115 |
+
return wp_parse_args( $res_data, $default_result );
|
116 |
+
}
|
117 |
+
}
|
libs/factory/feedback/includes/index.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
libs/factory/feedback/index.php
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
libs/factory/feedback/views/deactivate-form.php
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="wbcr-factory-feedback-102-modal wbcr-factory-feedback-102-modal-deactivation-feedback no-confirmation-message" id="wbcr-factory-feedback-102-deactivate-form" data-nonce="<?php echo wp_create_nonce( 'wbcr_factory_send_feedback' ) ?>">
|
2 |
+
<div class="wbcr-factory-feedback-102-modal-dialog">
|
3 |
+
<div class="wbcr-factory-feedback-102-modal-header">
|
4 |
+
<h4><?php _e( 'Quick Feedback', 'wbcr_factory_feedback_102' ) ?></h4></div>
|
5 |
+
<div class="wbcr-factory-feedback-102-modal-body">
|
6 |
+
<div class="wbcr-factory-feedback-102-modal-panel active" data-panel-id="reasons">
|
7 |
+
<h3>
|
8 |
+
<strong><?php _e( 'If you have a moment, please let us know why you are deactivating', 'wbcr_factory_feedback_102' ) ?>
|
9 |
+
:</strong></h3>
|
10 |
+
<ul id="reasons-list">
|
11 |
+
<li class="reason has-input" data-input-type="textfield" data-input-placeholder="Название плагина">
|
12 |
+
<label>
|
13 |
+
<span>
|
14 |
+
<input type="radio" name="wbcr_factory_feedback_reason" value="2">
|
15 |
+
</span>
|
16 |
+
<span><?php _e( 'I found a better plugin', 'wbcr_factory_feedback_102' ) ?></span>
|
17 |
+
</label>
|
18 |
+
<div class="internal-message"></div>
|
19 |
+
</li>
|
20 |
+
<li class="reason" data-input-type="" data-input-placeholder="">
|
21 |
+
<label>
|
22 |
+
<span>
|
23 |
+
<input type="radio" name="wbcr_factory_feedback_reason" value="5">
|
24 |
+
</span>
|
25 |
+
<span><?php _e( 'The plugin suddenly stopped working', 'wbcr_factory_feedback_102' ) ?></span>
|
26 |
+
</label>
|
27 |
+
<div class="internal-message"></div>
|
28 |
+
</li>
|
29 |
+
<li class="reason" data-input-type="" data-input-placeholder="">
|
30 |
+
<label>
|
31 |
+
<span>
|
32 |
+
<input type="radio" name="wbcr_factory_feedback_reason" value="3">
|
33 |
+
</span>
|
34 |
+
<span><?php _e( 'I only needed the plugin for a short period', 'wbcr_factory_feedback_102' ) ?></span>
|
35 |
+
</label>
|
36 |
+
<div class="internal-message"></div>
|
37 |
+
</li>
|
38 |
+
<li class="reason" data-input-type="" data-input-placeholder="">
|
39 |
+
<label>
|
40 |
+
<span>
|
41 |
+
<input type="radio" name="wbcr_factory_feedback_reason" value="1">
|
42 |
+
</span>
|
43 |
+
<span><?php _e( 'I no longer need the plugin', 'wbcr_factory_feedback_102' ) ?></span>
|
44 |
+
</label>
|
45 |
+
<div class="internal-message"></div>
|
46 |
+
</li>
|
47 |
+
<li class="reason" data-input-type="" data-input-placeholder="">
|
48 |
+
<label>
|
49 |
+
<span>
|
50 |
+
<input type="radio" name="wbcr_factory_feedback_reason" value="4">
|
51 |
+
</span>
|
52 |
+
<span><?php _e( 'The plugin broke my site', 'wbcr_factory_feedback_102' ) ?></span>
|
53 |
+
</label>
|
54 |
+
<div class="internal-message"></div>
|
55 |
+
</li>
|
56 |
+
<li class="reason" data-input-type="" data-input-placeholder="">
|
57 |
+
<label>
|
58 |
+
<span>
|
59 |
+
<input type="radio" name="wbcr_factory_feedback_reason" value="15">
|
60 |
+
</span>
|
61 |
+
<span><?php _e( "It's a temporary deactivation. I'm just debugging an issue.", 'wbcr_factory_feedback_102' ) ?></span>
|
62 |
+
</label>
|
63 |
+
<div class="internal-message"></div>
|
64 |
+
</li>
|
65 |
+
<li class="reason has-input" data-input-type="textfield" data-input-placeholder="">
|
66 |
+
<label>
|
67 |
+
<span>
|
68 |
+
<input type="radio" name="wbcr_factory_feedback_reason" value="7">
|
69 |
+
</span>
|
70 |
+
<span><?php _e( 'Other', 'wbcr_factory_feedback_102' ) ?></span>
|
71 |
+
</label>
|
72 |
+
<div class="internal-message"></div>
|
73 |
+
</li>
|
74 |
+
</ul>
|
75 |
+
<p><?php _e( 'We will receive the following information from you: site address, php version, Wordpress version, version of our plugin, this will help us better understand the causes of the problem. If you don\'t want to send this data, click the "Anonymous" checkbox.', 'wbcr_factory_feedback_102' ) ?></p>
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
<div class="wbcr-factory-feedback-102-modal-footer">
|
79 |
+
<label for="wbcr-factory-feedback-102-anonymous-checkbox" class="wbcr-factory-feedback-102-anonymous-feedback-label" style="display: block;">
|
80 |
+
<input type="checkbox" id="wbcr-factory-feedback-102-anonymous-checkbox"> <?php _e( 'Anonymous feedback', 'wbcr_factory_feedback_102' ) ?>
|
81 |
+
</label>
|
82 |
+
<a href="#" class="button button-secondary button-deactivate allow-deactivate"><?php _e( 'Skip & Deactivate', 'wbcr_factory_feedback_102' ) ?></a>
|
83 |
+
<a href="#" class="button button-primary button-close"><?php _e( 'Cancel', 'wbcr_factory_feedback_102' ) ?></a>
|
84 |
+
</div>
|
85 |
+
</div>
|
86 |
+
</div>
|
libs/factory/forms/boot.php
CHANGED
@@ -22,252 +22,252 @@ if ( ! is_admin() ) {
|
|
22 |
|
23 |
// checks if the module is already loaded in order to
|
24 |
// prevent loading the same version of the module twice.
|
25 |
-
if ( defined( '
|
26 |
return;
|
27 |
}
|
28 |
|
29 |
-
define( '
|
30 |
|
31 |
-
define( '
|
32 |
|
33 |
// absolute path and URL to the files and resources of the module.
|
34 |
-
define( '
|
35 |
-
define( '
|
36 |
|
37 |
#comp merge
|
38 |
-
require_once(
|
39 |
-
require_once(
|
40 |
-
require_once(
|
41 |
|
42 |
-
require_once(
|
43 |
#endcomp
|
44 |
|
45 |
-
load_plugin_textdomain( '
|
46 |
|
47 |
/**
|
48 |
* We add this code into the hook because all these controls quite heavy. So in order to get better perfomance,
|
49 |
* we load the form controls only on pages where the forms are created.
|
50 |
*
|
51 |
* @since 3.0.7
|
52 |
-
* @see the '
|
53 |
*
|
54 |
*/
|
55 |
-
if ( ! function_exists( '
|
56 |
-
|
57 |
/**
|
58 |
-
* @param
|
59 |
*
|
60 |
* @throws Exception
|
61 |
*/
|
62 |
-
function
|
63 |
-
|
64 |
if ( $plugin && ! isset( $plugin->forms ) ) {
|
65 |
throw new Exception( "The module Factory Forms is not loaded for the plugin '{$plugin->getPluginName()}'." );
|
66 |
}
|
67 |
-
|
68 |
-
require_once(
|
69 |
-
require_once(
|
70 |
-
require_once(
|
71 |
-
require_once(
|
72 |
-
require_once(
|
73 |
-
require_once(
|
74 |
-
require_once(
|
75 |
-
require_once(
|
76 |
-
|
77 |
// registration of controls
|
78 |
$plugin->forms->registerControls( [
|
79 |
[
|
80 |
'type' => 'checkbox',
|
81 |
-
'class' => '
|
82 |
-
'include' =>
|
83 |
],
|
84 |
[
|
85 |
'type' => 'list',
|
86 |
-
'class' => '
|
87 |
-
'include' =>
|
88 |
],
|
89 |
[
|
90 |
'type' => 'dropdown',
|
91 |
-
'class' => '
|
92 |
-
'include' =>
|
93 |
],
|
94 |
[
|
95 |
'type' => 'dropdown-and-colors',
|
96 |
-
'class' => '
|
97 |
-
'include' =>
|
98 |
],
|
99 |
[
|
100 |
'type' => 'hidden',
|
101 |
-
'class' => '
|
102 |
-
'include' =>
|
103 |
],
|
104 |
[
|
105 |
'type' => 'hidden',
|
106 |
-
'class' => '
|
107 |
-
'include' =>
|
108 |
],
|
109 |
[
|
110 |
'type' => 'radio',
|
111 |
-
'class' => '
|
112 |
-
'include' =>
|
113 |
],
|
114 |
[
|
115 |
'type' => 'radio-colors',
|
116 |
-
'class' => '
|
117 |
-
'include' =>
|
118 |
],
|
119 |
[
|
120 |
'type' => 'textarea',
|
121 |
-
'class' => '
|
122 |
-
'include' =>
|
123 |
],
|
124 |
[
|
125 |
'type' => 'textbox',
|
126 |
-
'class' => '
|
127 |
-
'include' =>
|
128 |
],
|
129 |
[
|
130 |
'type' => 'multiple-textbox',
|
131 |
-
'class' => '
|
132 |
-
'include' =>
|
133 |
],
|
134 |
[
|
135 |
'type' => 'datetimepicker-range',
|
136 |
-
'class' => '
|
137 |
-
'include' =>
|
138 |
],
|
139 |
[
|
140 |
'type' => 'url',
|
141 |
-
'class' => '
|
142 |
-
'include' =>
|
143 |
],
|
144 |
[
|
145 |
'type' => 'wp-editor',
|
146 |
-
'class' => '
|
147 |
-
'include' =>
|
148 |
],
|
149 |
[
|
150 |
'type' => 'color',
|
151 |
-
'class' => '
|
152 |
-
'include' =>
|
153 |
],
|
154 |
[
|
155 |
'type' => 'color-and-opacity',
|
156 |
-
'class' => '
|
157 |
-
'include' =>
|
158 |
],
|
159 |
[
|
160 |
'type' => 'gradient',
|
161 |
-
'class' => '
|
162 |
-
'include' =>
|
163 |
],
|
164 |
[
|
165 |
'type' => 'font',
|
166 |
-
'class' => '
|
167 |
-
'include' =>
|
168 |
],
|
169 |
[
|
170 |
'type' => 'google-font',
|
171 |
-
'class' => '
|
172 |
-
'include' =>
|
173 |
],
|
174 |
[
|
175 |
'type' => 'pattern',
|
176 |
-
'class' => '
|
177 |
-
'include' =>
|
178 |
],
|
179 |
[
|
180 |
'type' => 'integer',
|
181 |
-
'class' => '
|
182 |
-
'include' =>
|
183 |
],
|
184 |
[
|
185 |
'type' => 'control-group',
|
186 |
-
'class' => '
|
187 |
-
'include' =>
|
188 |
],
|
189 |
[
|
190 |
'type' => 'paddings-editor',
|
191 |
-
'class' => '
|
192 |
-
'include' =>
|
193 |
],
|
194 |
] );
|
195 |
-
|
196 |
// registration of control holders
|
197 |
$plugin->forms->registerHolders( [
|
198 |
[
|
199 |
'type' => 'tab',
|
200 |
-
'class' => '
|
201 |
-
'include' =>
|
202 |
],
|
203 |
[
|
204 |
'type' => 'tab-item',
|
205 |
-
'class' => '
|
206 |
-
'include' =>
|
207 |
],
|
208 |
[
|
209 |
'type' => 'accordion',
|
210 |
-
'class' => '
|
211 |
-
'include' =>
|
212 |
],
|
213 |
[
|
214 |
'type' => 'accordion-item',
|
215 |
-
'class' => '
|
216 |
-
'include' =>
|
217 |
],
|
218 |
[
|
219 |
'type' => 'control-group',
|
220 |
-
'class' => '
|
221 |
-
'include' =>
|
222 |
],
|
223 |
[
|
224 |
'type' => 'control-group-item',
|
225 |
-
'class' => '
|
226 |
-
'include' =>
|
227 |
],
|
228 |
[
|
229 |
'type' => 'form-group',
|
230 |
-
'class' => '
|
231 |
-
'include' =>
|
232 |
],
|
233 |
[
|
234 |
'type' => 'more-link',
|
235 |
-
'class' => '
|
236 |
-
'include' =>
|
237 |
],
|
238 |
[
|
239 |
'type' => 'div',
|
240 |
-
'class' => '
|
241 |
-
'include' =>
|
242 |
],
|
243 |
[
|
244 |
'type' => 'columns',
|
245 |
-
'class' => '
|
246 |
-
'include' =>
|
247 |
]
|
248 |
] );
|
249 |
-
|
250 |
// registration custom form elements
|
251 |
$plugin->forms->registerCustomElements( [
|
252 |
[
|
253 |
'type' => 'html',
|
254 |
-
'class' => '
|
255 |
-
'include' =>
|
256 |
],
|
257 |
[
|
258 |
'type' => 'separator',
|
259 |
-
'class' => '
|
260 |
-
'include' =>
|
261 |
],
|
262 |
] );
|
263 |
-
|
264 |
// registration of form layouts
|
265 |
$plugin->forms->registerFormLayout( [
|
266 |
'name' => 'bootstrap-3',
|
267 |
-
'class' => '
|
268 |
-
'include' =>
|
269 |
] );
|
270 |
}
|
271 |
-
|
272 |
-
add_action( '
|
273 |
}
|
22 |
|
23 |
// checks if the module is already loaded in order to
|
24 |
// prevent loading the same version of the module twice.
|
25 |
+
if ( defined( 'FACTORY_FORMS_423_LOADED' ) ) {
|
26 |
return;
|
27 |
}
|
28 |
|
29 |
+
define( 'FACTORY_FORMS_423_LOADED', true );
|
30 |
|
31 |
+
define( 'FACTORY_FORMS_423_VERSION', '4.2.3' );
|
32 |
|
33 |
// absolute path and URL to the files and resources of the module.
|
34 |
+
define( 'FACTORY_FORMS_423_DIR', dirname( __FILE__ ) );
|
35 |
+
define( 'FACTORY_FORMS_423_URL', plugins_url( null, __FILE__ ) );
|
36 |
|
37 |
#comp merge
|
38 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/providers/value-provider.interface.php' );
|
39 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/providers/meta-value-provider.class.php' );
|
40 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/providers/options-value-provider.class.php' );
|
41 |
|
42 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/form.class.php' );
|
43 |
#endcomp
|
44 |
|
45 |
+
load_plugin_textdomain( 'wbcr_factory_forms_423', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
|
46 |
|
47 |
/**
|
48 |
* We add this code into the hook because all these controls quite heavy. So in order to get better perfomance,
|
49 |
* we load the form controls only on pages where the forms are created.
|
50 |
*
|
51 |
* @since 3.0.7
|
52 |
+
* @see the 'wbcr_factory_forms_423_register_controls' hook
|
53 |
*
|
54 |
*/
|
55 |
+
if ( ! function_exists( 'wbcr_factory_forms_423_register_default_controls' ) ) {
|
56 |
+
|
57 |
/**
|
58 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
59 |
*
|
60 |
* @throws Exception
|
61 |
*/
|
62 |
+
function wbcr_factory_forms_423_register_default_controls( Wbcr_Factory425_Plugin $plugin ) {
|
63 |
+
|
64 |
if ( $plugin && ! isset( $plugin->forms ) ) {
|
65 |
throw new Exception( "The module Factory Forms is not loaded for the plugin '{$plugin->getPluginName()}'." );
|
66 |
}
|
67 |
+
|
68 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/html-builder.class.php' );
|
69 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/form-element.class.php' );
|
70 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/control.class.php' );
|
71 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/complex-control.class.php' );
|
72 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/holder.class.php' );
|
73 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/control-holder.class.php' );
|
74 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/custom-element.class.php' );
|
75 |
+
require_once( FACTORY_FORMS_423_DIR . '/includes/form-layout.class.php' );
|
76 |
+
|
77 |
// registration of controls
|
78 |
$plugin->forms->registerControls( [
|
79 |
[
|
80 |
'type' => 'checkbox',
|
81 |
+
'class' => 'Wbcr_FactoryForms423_CheckboxControl',
|
82 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/checkbox.php'
|
83 |
],
|
84 |
[
|
85 |
'type' => 'list',
|
86 |
+
'class' => 'Wbcr_FactoryForms423_ListControl',
|
87 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/list.php'
|
88 |
],
|
89 |
[
|
90 |
'type' => 'dropdown',
|
91 |
+
'class' => 'Wbcr_FactoryForms423_DropdownControl',
|
92 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/dropdown.php'
|
93 |
],
|
94 |
[
|
95 |
'type' => 'dropdown-and-colors',
|
96 |
+
'class' => 'Wbcr_FactoryForms423_DropdownAndColorsControl',
|
97 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/dropdown-and-colors.php'
|
98 |
],
|
99 |
[
|
100 |
'type' => 'hidden',
|
101 |
+
'class' => 'Wbcr_FactoryForms423_HiddenControl',
|
102 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/hidden.php'
|
103 |
],
|
104 |
[
|
105 |
'type' => 'hidden',
|
106 |
+
'class' => 'Wbcr_FactoryForms423_HiddenControl',
|
107 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/hidden.php'
|
108 |
],
|
109 |
[
|
110 |
'type' => 'radio',
|
111 |
+
'class' => 'Wbcr_FactoryForms423_RadioControl',
|
112 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/radio.php'
|
113 |
],
|
114 |
[
|
115 |
'type' => 'radio-colors',
|
116 |
+
'class' => 'Wbcr_FactoryForms423_RadioColorsControl',
|
117 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/radio-colors.php'
|
118 |
],
|
119 |
[
|
120 |
'type' => 'textarea',
|
121 |
+
'class' => 'Wbcr_FactoryForms423_TextareaControl',
|
122 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/textarea.php'
|
123 |
],
|
124 |
[
|
125 |
'type' => 'textbox',
|
126 |
+
'class' => 'Wbcr_FactoryForms423_TextboxControl',
|
127 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/textbox.php'
|
128 |
],
|
129 |
[
|
130 |
'type' => 'multiple-textbox',
|
131 |
+
'class' => 'Wbcr_FactoryForms423_MultipleTextboxControl',
|
132 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/multiple-textbox.php'
|
133 |
],
|
134 |
[
|
135 |
'type' => 'datetimepicker-range',
|
136 |
+
'class' => 'Wbcr_FactoryForms423_DatepickerRangeControl',
|
137 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/datepicker-range.php'
|
138 |
],
|
139 |
[
|
140 |
'type' => 'url',
|
141 |
+
'class' => 'Wbcr_FactoryForms423_UrlControl',
|
142 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/url.php'
|
143 |
],
|
144 |
[
|
145 |
'type' => 'wp-editor',
|
146 |
+
'class' => 'Wbcr_FactoryForms423_WpEditorControl',
|
147 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/wp-editor.php'
|
148 |
],
|
149 |
[
|
150 |
'type' => 'color',
|
151 |
+
'class' => 'Wbcr_FactoryForms423_ColorControl',
|
152 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/color.php'
|
153 |
],
|
154 |
[
|
155 |
'type' => 'color-and-opacity',
|
156 |
+
'class' => 'Wbcr_FactoryForms423_ColorAndOpacityControl',
|
157 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/color-and-opacity.php'
|
158 |
],
|
159 |
[
|
160 |
'type' => 'gradient',
|
161 |
+
'class' => 'Wbcr_FactoryForms423_GradientControl',
|
162 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/gradient.php'
|
163 |
],
|
164 |
[
|
165 |
'type' => 'font',
|
166 |
+
'class' => 'Wbcr_FactoryForms423_FontControl',
|
167 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/font.php'
|
168 |
],
|
169 |
[
|
170 |
'type' => 'google-font',
|
171 |
+
'class' => 'Wbcr_FactoryForms423_GoogleFontControl',
|
172 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/google-font.php'
|
173 |
],
|
174 |
[
|
175 |
'type' => 'pattern',
|
176 |
+
'class' => 'Wbcr_FactoryForms423_PatternControl',
|
177 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/pattern.php'
|
178 |
],
|
179 |
[
|
180 |
'type' => 'integer',
|
181 |
+
'class' => 'Wbcr_FactoryForms423_IntegerControl',
|
182 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/integer.php'
|
183 |
],
|
184 |
[
|
185 |
'type' => 'control-group',
|
186 |
+
'class' => 'Wbcr_FactoryForms423_ControlGroupHolder',
|
187 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/control-group.php'
|
188 |
],
|
189 |
[
|
190 |
'type' => 'paddings-editor',
|
191 |
+
'class' => 'Wbcr_FactoryForms423_PaddingsEditorControl',
|
192 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/paddings-editor.php'
|
193 |
],
|
194 |
] );
|
195 |
+
|
196 |
// registration of control holders
|
197 |
$plugin->forms->registerHolders( [
|
198 |
[
|
199 |
'type' => 'tab',
|
200 |
+
'class' => 'Wbcr_FactoryForms423_TabHolder',
|
201 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/tab.php'
|
202 |
],
|
203 |
[
|
204 |
'type' => 'tab-item',
|
205 |
+
'class' => 'Wbcr_FactoryForms423_TabItemHolder',
|
206 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/tab-item.php'
|
207 |
],
|
208 |
[
|
209 |
'type' => 'accordion',
|
210 |
+
'class' => 'Wbcr_FactoryForms423_AccordionHolder',
|
211 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/accordion.php'
|
212 |
],
|
213 |
[
|
214 |
'type' => 'accordion-item',
|
215 |
+
'class' => 'Wbcr_FactoryForms423_AccordionItemHolder',
|
216 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/accordion-item.php'
|
217 |
],
|
218 |
[
|
219 |
'type' => 'control-group',
|
220 |
+
'class' => 'Wbcr_FactoryForms423_ControlGroupHolder',
|
221 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/control-group.php'
|
222 |
],
|
223 |
[
|
224 |
'type' => 'control-group-item',
|
225 |
+
'class' => 'Wbcr_FactoryForms423_ControlGroupItem',
|
226 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/control-group-item.php'
|
227 |
],
|
228 |
[
|
229 |
'type' => 'form-group',
|
230 |
+
'class' => 'Wbcr_FactoryForms423_FormGroupHolder',
|
231 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/form-group.php'
|
232 |
],
|
233 |
[
|
234 |
'type' => 'more-link',
|
235 |
+
'class' => 'Wbcr_FactoryForms423_MoreLinkHolder',
|
236 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/more-link.php'
|
237 |
],
|
238 |
[
|
239 |
'type' => 'div',
|
240 |
+
'class' => 'Wbcr_FactoryForms423_DivHolder',
|
241 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/div.php'
|
242 |
],
|
243 |
[
|
244 |
'type' => 'columns',
|
245 |
+
'class' => 'Wbcr_FactoryForms423_ColumnsHolder',
|
246 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/holders/columns.php'
|
247 |
]
|
248 |
] );
|
249 |
+
|
250 |
// registration custom form elements
|
251 |
$plugin->forms->registerCustomElements( [
|
252 |
[
|
253 |
'type' => 'html',
|
254 |
+
'class' => 'Wbcr_FactoryForms423_Html',
|
255 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/customs/html.php',
|
256 |
],
|
257 |
[
|
258 |
'type' => 'separator',
|
259 |
+
'class' => 'Wbcr_FactoryForms423_Separator',
|
260 |
+
'include' => FACTORY_FORMS_423_DIR . '/controls/customs/separator.php',
|
261 |
],
|
262 |
] );
|
263 |
+
|
264 |
// registration of form layouts
|
265 |
$plugin->forms->registerFormLayout( [
|
266 |
'name' => 'bootstrap-3',
|
267 |
+
'class' => 'Wbcr_FactoryForms423_Bootstrap3FormLayout',
|
268 |
+
'include' => FACTORY_FORMS_423_DIR . '/layouts/bootstrap-3/bootstrap-3.php'
|
269 |
] );
|
270 |
}
|
271 |
+
|
272 |
+
add_action( 'wbcr_factory_forms_423_register_controls', 'wbcr_factory_forms_423_register_default_controls' );
|
273 |
}
|
libs/factory/forms/controls/checkbox.php
CHANGED
@@ -20,9 +20,9 @@
|
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
-
if( !class_exists('
|
24 |
|
25 |
-
class
|
26 |
|
27 |
public $type = 'checkbox';
|
28 |
|
@@ -130,10 +130,10 @@
|
|
130 |
<div <?php $this->attrs() ?>>
|
131 |
<button type="button" class="btn btn-default btn-small btn-sm factory-on <?php if( $value ) {
|
132 |
echo 'active';
|
133 |
-
} ?>"><?php _e('On', '
|
134 |
<button type="button" class="btn btn-default btn-small btn-sm factory-off <?php if( !$value ) {
|
135 |
echo 'active';
|
136 |
-
} ?>" data-value="0"><?php _e('Off', '
|
137 |
<input type="checkbox" style="display: none" id="<?php echo $name_on_form ?>" class="factory-result" name="<?php echo $name_on_form ?>" value="<?= $value ?>" <?php if( $value ) {
|
138 |
echo 'checked="checked"';
|
139 |
} ?>" />
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
+
if( !class_exists('Wbcr_FactoryForms423_CheckboxControl') ) {
|
24 |
|
25 |
+
class Wbcr_FactoryForms423_CheckboxControl extends Wbcr_FactoryForms423_Control {
|
26 |
|
27 |
public $type = 'checkbox';
|
28 |
|
130 |
<div <?php $this->attrs() ?>>
|
131 |
<button type="button" class="btn btn-default btn-small btn-sm factory-on <?php if( $value ) {
|
132 |
echo 'active';
|
133 |
+
} ?>"><?php _e('On', 'wbcr_factory_forms_423') ?></button>
|
134 |
<button type="button" class="btn btn-default btn-small btn-sm factory-off <?php if( !$value ) {
|
135 |
echo 'active';
|
136 |
+
} ?>" data-value="0"><?php _e('Off', 'wbcr_factory_forms_423') ?></button>
|
137 |
<input type="checkbox" style="display: none" id="<?php echo $name_on_form ?>" class="factory-result" name="<?php echo $name_on_form ?>" value="<?= $value ?>" <?php if( $value ) {
|
138 |
echo 'checked="checked"';
|
139 |
} ?>" />
|
libs/factory/forms/controls/color-and-opacity.php
CHANGED
@@ -20,10 +20,10 @@
|
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
-
if( !class_exists('
|
24 |
}
|
25 |
|
26 |
-
class
|
27 |
|
28 |
public $type = 'color-and-opacity';
|
29 |
|
@@ -57,8 +57,8 @@
|
|
57 |
'way' => 'slider'
|
58 |
));
|
59 |
|
60 |
-
$this->color = new
|
61 |
-
$this->opacity = new
|
62 |
|
63 |
$this->innerControls = array($this->color, $this->opacity);
|
64 |
}
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
+
if( !class_exists('Wbcr_FactoryForms423_ColorAndOpacityControl') ) {
|
24 |
}
|
25 |
|
26 |
+
class Wbcr_FactoryForms423_ColorAndOpacityControl extends Wbcr_FactoryForms423_ComplexControl {
|
27 |
|
28 |
public $type = 'color-and-opacity';
|
29 |
|
57 |
'way' => 'slider'
|
58 |
));
|
59 |
|
60 |
+
$this->color = new Wbcr_FactoryForms423_ColorControl($options['color'], $form, $provider);
|
61 |
+
$this->opacity = new Wbcr_FactoryForms423_IntegerControl($options['opacity'], $form, $provider);
|
62 |
|
63 |
$this->innerControls = array($this->color, $this->opacity);
|
64 |
}
|
libs/factory/forms/controls/color.php
CHANGED
@@ -20,9 +20,9 @@
|
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
-
if( !class_exists('
|
24 |
|
25 |
-
class
|
26 |
|
27 |
public $type = 'color';
|
28 |
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
+
if( !class_exists('Wbcr_FactoryForms423_ColorControl') ) {
|
24 |
|
25 |
+
class Wbcr_FactoryForms423_ColorControl extends Wbcr_FactoryForms423_Control {
|
26 |
|
27 |
public $type = 'color';
|
28 |
|
libs/factory/forms/controls/customs/html.php
CHANGED
@@ -14,9 +14,9 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
-
class
|
20 |
|
21 |
public $type = 'html';
|
22 |
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_Html') ) {
|
18 |
|
19 |
+
class Wbcr_FactoryForms423_Html extends Wbcr_FactoryForms423_CustomElement {
|
20 |
|
21 |
public $type = 'html';
|
22 |
|
libs/factory/forms/controls/customs/separator.php
CHANGED
@@ -14,8 +14,8 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
-
class
|
19 |
|
20 |
public $type = 'separator';
|
21 |
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_Separator') ) {
|
18 |
+
class Wbcr_FactoryForms423_Separator extends Wbcr_FactoryForms423_CustomElement {
|
19 |
|
20 |
public $type = 'separator';
|
21 |
|
libs/factory/forms/controls/datepicker-range.php
CHANGED
@@ -29,9 +29,9 @@
|
|
29 |
exit;
|
30 |
}
|
31 |
|
32 |
-
if( !class_exists('
|
33 |
|
34 |
-
class
|
35 |
|
36 |
public $type = 'datetimepicker-range';
|
37 |
|
@@ -65,8 +65,8 @@
|
|
65 |
'default' => date('Y/m/d H:i', strtotime("+1 month"))
|
66 |
), $options['range_2']);
|
67 |
|
68 |
-
$this->range_1 = new
|
69 |
-
$this->range_2 = new
|
70 |
$this->inner_controls = array($this->range_1, $this->range_2);
|
71 |
|
72 |
foreach($this->inner_controls as $key => $control) {
|
29 |
exit;
|
30 |
}
|
31 |
|
32 |
+
if( !class_exists('Wbcr_FactoryForms423_DatepickerRangeControl') ) {
|
33 |
|
34 |
+
class Wbcr_FactoryForms423_DatepickerRangeControl extends Wbcr_FactoryForms423_ComplexControl {
|
35 |
|
36 |
public $type = 'datetimepicker-range';
|
37 |
|
65 |
'default' => date('Y/m/d H:i', strtotime("+1 month"))
|
66 |
), $options['range_2']);
|
67 |
|
68 |
+
$this->range_1 = new Wbcr_FactoryForms423_TextboxControl($options['range_1'], $form, $provider);
|
69 |
+
$this->range_2 = new Wbcr_FactoryForms423_TextboxControl($options['range_2'], $form, $provider);
|
70 |
$this->inner_controls = array($this->range_1, $this->range_2);
|
71 |
|
72 |
foreach($this->inner_controls as $key => $control) {
|
libs/factory/forms/controls/dropdown-and-colors.php
CHANGED
@@ -5,14 +5,14 @@
|
|
5 |
*
|
6 |
* Main options:
|
7 |
* name => a name of the control
|
8 |
-
* // see
|
9 |
* 'dropdown' => array(
|
10 |
* // a callback to return items or an array of items to select
|
11 |
* 'data' => OPanda_ThemeManager::getThemes(OPanda_Items::getCurrentItemName(), 'dropdown'),
|
12 |
* 'default' => 'default',
|
13 |
* 'value' => 'value' // a value to show in the control
|
14 |
* ),
|
15 |
-
* // see
|
16 |
* 'colors' => array(
|
17 |
* // a callback to return items or an array of items to select
|
18 |
* 'data' => array(
|
@@ -37,9 +37,9 @@
|
|
37 |
exit;
|
38 |
}
|
39 |
|
40 |
-
if( !class_exists('
|
41 |
|
42 |
-
class
|
43 |
|
44 |
public $type = 'dropdown-and-colors';
|
45 |
|
@@ -69,8 +69,8 @@
|
|
69 |
'name' => $this->options['name'] . '__colors',
|
70 |
));
|
71 |
|
72 |
-
$this->dropdown = new
|
73 |
-
$this->colors = new
|
74 |
$this->inner_controls = array($this->dropdown, $this->colors);
|
75 |
|
76 |
$colors = $this->colors->getOption('data');
|
5 |
*
|
6 |
* Main options:
|
7 |
* name => a name of the control
|
8 |
+
* // see FactoryForms423_DropdownControl
|
9 |
* 'dropdown' => array(
|
10 |
* // a callback to return items or an array of items to select
|
11 |
* 'data' => OPanda_ThemeManager::getThemes(OPanda_Items::getCurrentItemName(), 'dropdown'),
|
12 |
* 'default' => 'default',
|
13 |
* 'value' => 'value' // a value to show in the control
|
14 |
* ),
|
15 |
+
* // see FactoryForms423_RadioColorsControl
|
16 |
* 'colors' => array(
|
17 |
* // a callback to return items or an array of items to select
|
18 |
* 'data' => array(
|
37 |
exit;
|
38 |
}
|
39 |
|
40 |
+
if( !class_exists('Wbcr_FactoryForms423_DropdownAndColorsControl') ) {
|
41 |
|
42 |
+
class Wbcr_FactoryForms423_DropdownAndColorsControl extends Wbcr_FactoryForms423_ComplexControl {
|
43 |
|
44 |
public $type = 'dropdown-and-colors';
|
45 |
|
69 |
'name' => $this->options['name'] . '__colors',
|
70 |
));
|
71 |
|
72 |
+
$this->dropdown = new Wbcr_FactoryForms423_DropdownControl($options['dropdown'], $form, $provider);
|
73 |
+
$this->colors = new Wbcr_FactoryForms423_RadioColorsControl($options['colors'], $form, $provider);
|
74 |
$this->inner_controls = array($this->dropdown, $this->colors);
|
75 |
|
76 |
$colors = $this->colors->getOption('data');
|
libs/factory/forms/controls/dropdown.php
CHANGED
@@ -21,9 +21,9 @@
|
|
21 |
exit;
|
22 |
}
|
23 |
|
24 |
-
if ( ! class_exists( '
|
25 |
|
26 |
-
class
|
27 |
|
28 |
public $type = 'dropdown';
|
29 |
|
@@ -123,7 +123,7 @@
|
|
123 |
'url': '<?php echo $data['url'] ?>',
|
124 |
'data': <?php echo json_encode( $data['data'] ) ?>,
|
125 |
'selected': '<?php echo $value ?>',
|
126 |
-
'empty_list': '<?php echo $this->getOption( 'empty', __( 'The list is empty.', '
|
127 |
};
|
128 |
</script>
|
129 |
<?php
|
@@ -268,7 +268,7 @@
|
|
268 |
}
|
269 |
|
270 |
$is_empty = $this->isAjax() || empty( $items );
|
271 |
-
$empty_list = $this->getOption( 'empty', __( '- empty -', '
|
272 |
|
273 |
?>
|
274 |
<select <?php $this->attrs() ?>>
|
@@ -349,7 +349,7 @@
|
|
349 |
}
|
350 |
|
351 |
$value = isset( $item['value'] ) ? $item['value'] : '';
|
352 |
-
$title = isset( $item['title'] ) ? $item['title'] : __( '- empty -', '
|
353 |
|
354 |
$data = isset( $item['data'] ) ? $item['data'] : null;
|
355 |
} else {
|
21 |
exit;
|
22 |
}
|
23 |
|
24 |
+
if ( ! class_exists( 'Wbcr_FactoryForms423_DropdownControl' ) ) {
|
25 |
|
26 |
+
class Wbcr_FactoryForms423_DropdownControl extends Wbcr_FactoryForms423_Control {
|
27 |
|
28 |
public $type = 'dropdown';
|
29 |
|
123 |
'url': '<?php echo $data['url'] ?>',
|
124 |
'data': <?php echo json_encode( $data['data'] ) ?>,
|
125 |
'selected': '<?php echo $value ?>',
|
126 |
+
'empty_list': '<?php echo $this->getOption( 'empty', __( 'The list is empty.', 'wbcr_factory_forms_423' ) ) ?>'
|
127 |
};
|
128 |
</script>
|
129 |
<?php
|
268 |
}
|
269 |
|
270 |
$is_empty = $this->isAjax() || empty( $items );
|
271 |
+
$empty_list = $this->getOption( 'empty', __( '- empty -', 'wbcr_factory_forms_423' ) );
|
272 |
|
273 |
?>
|
274 |
<select <?php $this->attrs() ?>>
|
349 |
}
|
350 |
|
351 |
$value = isset( $item['value'] ) ? $item['value'] : '';
|
352 |
+
$title = isset( $item['title'] ) ? $item['title'] : __( '- empty -', 'wbcr_factory_forms_423' );
|
353 |
|
354 |
$data = isset( $item['data'] ) ? $item['data'] : null;
|
355 |
} else {
|
libs/factory/forms/controls/font.php
CHANGED
@@ -20,9 +20,9 @@
|
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
-
if( !class_exists('
|
24 |
|
25 |
-
class
|
26 |
|
27 |
public $type = 'font';
|
28 |
|
@@ -54,9 +54,9 @@
|
|
54 |
'pickerTarget' => '.factory-control-' . $this->options['name'] . ' .factory-picker-target'
|
55 |
);
|
56 |
|
57 |
-
$this->size = new
|
58 |
-
$this->family = new
|
59 |
-
$this->color = new
|
60 |
|
61 |
$this->innerControls = array($this->family, $this->size, $this->color);
|
62 |
}
|
@@ -66,8 +66,8 @@
|
|
66 |
|
67 |
$fonts = $this->getDefaultFonts();
|
68 |
|
69 |
-
$fonts = apply_filters('
|
70 |
-
$fonts = apply_filters('
|
71 |
|
72 |
return $fonts;
|
73 |
}
|
@@ -77,10 +77,10 @@
|
|
77 |
|
78 |
$fonts = array(
|
79 |
|
80 |
-
array('inherit', __('(use default website font)', '
|
81 |
array(
|
82 |
'group',
|
83 |
-
__('Sans Serif:', '
|
84 |
array(
|
85 |
array('Arial, "Helvetica Neue", Helvetica, sans-serif', 'Arial'),
|
86 |
array('"Arial Black", "Arial Bold", Gadget, sans-serif', 'Arial Black'),
|
@@ -131,7 +131,7 @@
|
|
131 |
),
|
132 |
array(
|
133 |
'group',
|
134 |
-
__('Serif:', '
|
135 |
array(
|
136 |
array(
|
137 |
'Baskerville, "Baskerville Old Face", "Hoefler Text", Garamond, "Times New Roman", serif',
|
@@ -187,7 +187,7 @@
|
|
187 |
),
|
188 |
array(
|
189 |
'group',
|
190 |
-
__('Monospaced:', '
|
191 |
array(
|
192 |
array('"Andale Mono", AndaleMono, monospace', 'Andale Mono'),
|
193 |
array('Consolas, monaco, monospace', 'Consolas'),
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
+
if( !class_exists('Wbcr_FactoryForms423_FontControl') ) {
|
24 |
|
25 |
+
class Wbcr_FactoryForms423_FontControl extends Wbcr_FactoryForms423_ComplexControl {
|
26 |
|
27 |
public $type = 'font';
|
28 |
|
54 |
'pickerTarget' => '.factory-control-' . $this->options['name'] . ' .factory-picker-target'
|
55 |
);
|
56 |
|
57 |
+
$this->size = new Wbcr_FactoryForms423_IntegerControl($option_font_size, $form, $provider);
|
58 |
+
$this->family = new Wbcr_FactoryForms423_DropdownControl($option_font_family, $form, $provider);
|
59 |
+
$this->color = new Wbcr_FactoryForms423_ColorControl($optionFontColor, $form, $provider);
|
60 |
|
61 |
$this->innerControls = array($this->family, $this->size, $this->color);
|
62 |
}
|
66 |
|
67 |
$fonts = $this->getDefaultFonts();
|
68 |
|
69 |
+
$fonts = apply_filters('wbcr_factory_forms_423_fonts', $fonts);
|
70 |
+
$fonts = apply_filters('wbcr_factory_forms_423_fonts-' . $this->options['name'], $fonts);
|
71 |
|
72 |
return $fonts;
|
73 |
}
|
77 |
|
78 |
$fonts = array(
|
79 |
|
80 |
+
array('inherit', __('(use default website font)', 'wbcr_factory_forms_423')),
|
81 |
array(
|
82 |
'group',
|
83 |
+
__('Sans Serif:', 'wbcr_factory_forms_423'),
|
84 |
array(
|
85 |
array('Arial, "Helvetica Neue", Helvetica, sans-serif', 'Arial'),
|
86 |
array('"Arial Black", "Arial Bold", Gadget, sans-serif', 'Arial Black'),
|
131 |
),
|
132 |
array(
|
133 |
'group',
|
134 |
+
__('Serif:', 'wbcr_factory_forms_423'),
|
135 |
array(
|
136 |
array(
|
137 |
'Baskerville, "Baskerville Old Face", "Hoefler Text", Garamond, "Times New Roman", serif',
|
187 |
),
|
188 |
array(
|
189 |
'group',
|
190 |
+
__('Monospaced:', 'wbcr_factory_forms_423'),
|
191 |
array(
|
192 |
array('"Andale Mono", AndaleMono, monospace', 'Andale Mono'),
|
193 |
array('Consolas, monaco, monospace', 'Consolas'),
|
libs/factory/forms/controls/google-font.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
* @package core
|
16 |
* @since 1.0.0
|
17 |
*/
|
18 |
-
class
|
19 |
|
20 |
public $type = 'google-font';
|
21 |
const APIKEY = 'AIzaSyB-3vazYv7Q-5QZA04bmSKFrWcw_VhC40w';
|
@@ -30,7 +30,7 @@
|
|
30 |
'cssClass' => 'factory-google-font-data'
|
31 |
);
|
32 |
|
33 |
-
$this->google_font_data = new
|
34 |
$this->inner_controls[] = $this->google_font_data;
|
35 |
}
|
36 |
|
@@ -49,12 +49,12 @@
|
|
49 |
$google_fonts = $this->getGoogleFonts();
|
50 |
|
51 |
$fonts = array(
|
52 |
-
array('inherit', __('(use default website font)', '
|
53 |
);
|
54 |
|
55 |
$fontsCommon = array(
|
56 |
'group',
|
57 |
-
__('Standard:', '
|
58 |
array(
|
59 |
|
60 |
array('Arial, "Helvetica Neue", Helvetica, sans-serif', 'Arial'),
|
@@ -65,7 +65,7 @@
|
|
65 |
)
|
66 |
);
|
67 |
|
68 |
-
$fontsGoogleFonts = array('group', __('Google Fonts:', '
|
69 |
|
70 |
foreach($google_fonts->items as $item) {
|
71 |
|
@@ -115,7 +115,7 @@
|
|
115 |
|
116 |
if( is_wp_error($response) ) {
|
117 |
|
118 |
-
$this->error = __('Unable to retrieve the list of Google Fonts.', '
|
119 |
$this->defailed_error = $response->get_error_message();
|
120 |
|
121 |
return $body;
|
@@ -123,7 +123,7 @@
|
|
123 |
|
124 |
if( !isset($response['body']) ) {
|
125 |
|
126 |
-
$this->error = __('Invalide response from the Google Fonts API.', '
|
127 |
$this->defailed_error = $response['body'];
|
128 |
|
129 |
return $body;
|
@@ -133,7 +133,7 @@
|
|
133 |
|
134 |
if( empty($body->items) ) {
|
135 |
|
136 |
-
$this->error = __('Unexpected error. The list of Google Fonts are empty.', '
|
137 |
|
138 |
return $body;
|
139 |
}
|
15 |
* @package core
|
16 |
* @since 1.0.0
|
17 |
*/
|
18 |
+
class Wbcr_FactoryForms423_GoogleFontControl extends Wbcr_FactoryForms423_FontControl {
|
19 |
|
20 |
public $type = 'google-font';
|
21 |
const APIKEY = 'AIzaSyB-3vazYv7Q-5QZA04bmSKFrWcw_VhC40w';
|
30 |
'cssClass' => 'factory-google-font-data'
|
31 |
);
|
32 |
|
33 |
+
$this->google_font_data = new Wbcr_FactoryForms423_HiddenControl($option_google_font_data, $form, $provider);
|
34 |
$this->inner_controls[] = $this->google_font_data;
|
35 |
}
|
36 |
|
49 |
$google_fonts = $this->getGoogleFonts();
|
50 |
|
51 |
$fonts = array(
|
52 |
+
array('inherit', __('(use default website font)', 'wbcr_factory_forms_423'))
|
53 |
);
|
54 |
|
55 |
$fontsCommon = array(
|
56 |
'group',
|
57 |
+
__('Standard:', 'wbcr_factory_forms_423'),
|
58 |
array(
|
59 |
|
60 |
array('Arial, "Helvetica Neue", Helvetica, sans-serif', 'Arial'),
|
65 |
)
|
66 |
);
|
67 |
|
68 |
+
$fontsGoogleFonts = array('group', __('Google Fonts:', 'wbcr_factory_forms_423'), array());
|
69 |
|
70 |
foreach($google_fonts->items as $item) {
|
71 |
|
115 |
|
116 |
if( is_wp_error($response) ) {
|
117 |
|
118 |
+
$this->error = __('Unable to retrieve the list of Google Fonts.', 'wbcr_factory_forms_423');
|
119 |
$this->defailed_error = $response->get_error_message();
|
120 |
|
121 |
return $body;
|
123 |
|
124 |
if( !isset($response['body']) ) {
|
125 |
|
126 |
+
$this->error = __('Invalide response from the Google Fonts API.', 'wbcr_factory_forms_423');
|
127 |
$this->defailed_error = $response['body'];
|
128 |
|
129 |
return $body;
|
133 |
|
134 |
if( empty($body->items) ) {
|
135 |
|
136 |
+
$this->error = __('Unexpected error. The list of Google Fonts are empty.', 'wbcr_factory_forms_423');
|
137 |
|
138 |
return $body;
|
139 |
}
|
libs/factory/forms/controls/gradient.php
CHANGED
@@ -25,8 +25,8 @@
|
|
25 |
exit;
|
26 |
}
|
27 |
|
28 |
-
if( !class_exists('
|
29 |
-
class
|
30 |
|
31 |
public $type = 'gradient';
|
32 |
|
@@ -66,8 +66,8 @@
|
|
66 |
if( !window.factory.res ) {
|
67 |
window.factory.res = {};
|
68 |
}
|
69 |
-
factory.res.resVertical = '<?php _e( 'vertical', '
|
70 |
-
factory.res.resHorizontal = '<?php _e( 'horizontal', '
|
71 |
</script>
|
72 |
<div <?php $this->attrs() ?>>
|
73 |
<div class="factory-gradient-picker">
|
25 |
exit;
|
26 |
}
|
27 |
|
28 |
+
if( !class_exists('Wbcr_FactoryForms423_GradientControl') ) {
|
29 |
+
class Wbcr_FactoryForms423_GradientControl extends Wbcr_FactoryForms423_Control {
|
30 |
|
31 |
public $type = 'gradient';
|
32 |
|
66 |
if( !window.factory.res ) {
|
67 |
window.factory.res = {};
|
68 |
}
|
69 |
+
factory.res.resVertical = '<?php _e( 'vertical', 'wbcr_factory_forms_423' ) ?>';
|
70 |
+
factory.res.resHorizontal = '<?php _e( 'horizontal', 'wbcr_factory_forms_423' ) ?>';
|
71 |
</script>
|
72 |
<div <?php $this->attrs() ?>>
|
73 |
<div class="factory-gradient-picker">
|
libs/factory/forms/controls/hidden.php
CHANGED
@@ -20,9 +20,9 @@
|
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
-
if( !class_exists('
|
24 |
|
25 |
-
class
|
26 |
|
27 |
public $type = 'hidden';
|
28 |
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
+
if( !class_exists('Wbcr_FactoryForms423_HiddenControl') ) {
|
24 |
|
25 |
+
class Wbcr_FactoryForms423_HiddenControl extends Wbcr_FactoryForms423_Control {
|
26 |
|
27 |
public $type = 'hidden';
|
28 |
|
libs/factory/forms/controls/holders/accordion-item.php
CHANGED
@@ -14,14 +14,14 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* Tab Control Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
-
class
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_AccordionItemHolder') ) {
|
18 |
|
19 |
/**
|
20 |
* Tab Control Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
+
class Wbcr_FactoryForms423_AccordionItemHolder extends Wbcr_FactoryForms423_Holder {
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
libs/factory/forms/controls/holders/accordion.php
CHANGED
@@ -13,13 +13,13 @@
|
|
13 |
if( !defined('ABSPATH') ) {
|
14 |
exit;
|
15 |
}
|
16 |
-
if( !class_exists('
|
17 |
/**
|
18 |
* Tab Control Holder
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
-
class
|
23 |
|
24 |
/**
|
25 |
* A holder type.
|
13 |
if( !defined('ABSPATH') ) {
|
14 |
exit;
|
15 |
}
|
16 |
+
if( !class_exists('Wbcr_FactoryForms423_AccordionHolder') ) {
|
17 |
/**
|
18 |
* Tab Control Holder
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
+
class Wbcr_FactoryForms423_AccordionHolder extends Wbcr_FactoryForms423_Holder {
|
23 |
|
24 |
/**
|
25 |
* A holder type.
|
libs/factory/forms/controls/holders/columns.php
CHANGED
@@ -14,13 +14,13 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
/**
|
19 |
* Columns Holder
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
/**
|
26 |
* A holder type.
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_ColumnsHolder') ) {
|
18 |
/**
|
19 |
* Columns Holder
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
class Wbcr_FactoryForms423_ColumnsHolder extends Wbcr_FactoryForms423_Holder {
|
24 |
|
25 |
/**
|
26 |
* A holder type.
|
libs/factory/forms/controls/holders/control-group-item.php
CHANGED
@@ -14,14 +14,14 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* Tab Control Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
-
class
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_ControlGroupItem') ) {
|
18 |
|
19 |
/**
|
20 |
* Tab Control Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
+
class Wbcr_FactoryForms423_ControlGroupItem extends Wbcr_FactoryForms423_Holder {
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
libs/factory/forms/controls/holders/control-group.php
CHANGED
@@ -14,14 +14,14 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* Tab Control Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
-
class
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
@@ -61,7 +61,7 @@
|
|
61 |
continue;
|
62 |
}
|
63 |
|
64 |
-
$builder = new
|
65 |
|
66 |
$builder->addCssClass('factory-control-group-nav-label');
|
67 |
$builder->addCssClass('factory-control-group-nav-label-' . $element->getOption('name'));
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_ControlGroupHolder') ) {
|
18 |
|
19 |
/**
|
20 |
* Tab Control Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
+
class Wbcr_FactoryForms423_ControlGroupHolder extends Wbcr_FactoryForms423_ControlHolder {
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
61 |
continue;
|
62 |
}
|
63 |
|
64 |
+
$builder = new Wbcr_FactoryForms423_HtmlAttributeBuilder();
|
65 |
|
66 |
$builder->addCssClass('factory-control-group-nav-label');
|
67 |
$builder->addCssClass('factory-control-group-nav-label-' . $element->getOption('name'));
|
libs/factory/forms/controls/holders/div.php
CHANGED
@@ -14,13 +14,13 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
/**
|
19 |
* Div Control Holder
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
/**
|
26 |
* A holder type.
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_DivHolder') ) {
|
18 |
/**
|
19 |
* Div Control Holder
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
class Wbcr_FactoryForms423_DivHolder extends Wbcr_FactoryForms423_Holder {
|
24 |
|
25 |
/**
|
26 |
* A holder type.
|
libs/factory/forms/controls/holders/form-group.php
CHANGED
@@ -14,13 +14,13 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
/**
|
19 |
* Group Holder
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
/**
|
26 |
* A holder type.
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_FormGroupHolder') ) {
|
18 |
/**
|
19 |
* Group Holder
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
class Wbcr_FactoryForms423_FormGroupHolder extends Wbcr_FactoryForms423_Holder {
|
24 |
|
25 |
/**
|
26 |
* A holder type.
|
libs/factory/forms/controls/holders/more-link.php
CHANGED
@@ -14,14 +14,14 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* Collapsed Group Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
-
class
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_MoreLinkHolder') ) {
|
18 |
|
19 |
/**
|
20 |
* Collapsed Group Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
+
class Wbcr_FactoryForms423_MoreLinkHolder extends Wbcr_FactoryForms423_Holder {
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
libs/factory/forms/controls/holders/tab-item.php
CHANGED
@@ -13,13 +13,13 @@
|
|
13 |
exit;
|
14 |
}
|
15 |
|
16 |
-
if( !class_exists('
|
17 |
/**
|
18 |
* Tab Item Control Holder
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
-
class
|
23 |
|
24 |
/**
|
25 |
* A holder type.
|
13 |
exit;
|
14 |
}
|
15 |
|
16 |
+
if( !class_exists('Wbcr_FactoryForms423_TabItemHolder') ) {
|
17 |
/**
|
18 |
* Tab Item Control Holder
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
+
class Wbcr_FactoryForms423_TabItemHolder extends Wbcr_FactoryForms423_Holder {
|
23 |
|
24 |
/**
|
25 |
* A holder type.
|
libs/factory/forms/controls/holders/tab.php
CHANGED
@@ -14,14 +14,14 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* Tab Control Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
-
class
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
@@ -44,7 +44,7 @@
|
|
44 |
*
|
45 |
* @since 1.0.0
|
46 |
* @param mixed[] $options A holder options.
|
47 |
-
* @param
|
48 |
*/
|
49 |
public function __construct($options, $form)
|
50 |
{
|
@@ -88,7 +88,7 @@
|
|
88 |
$tab_icon = $element->options['icon'];
|
89 |
}
|
90 |
|
91 |
-
$builder = new
|
92 |
|
93 |
$builder->addCssClass('factory-tab-item-header');
|
94 |
$builder->addCssClass('factory-tab-item-header-' . $element->getName());
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_TabHolder') ) {
|
18 |
|
19 |
/**
|
20 |
* Tab Control Holder
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
+
class Wbcr_FactoryForms423_TabHolder extends Wbcr_FactoryForms423_Holder {
|
25 |
|
26 |
/**
|
27 |
* A holder type.
|
44 |
*
|
45 |
* @since 1.0.0
|
46 |
* @param mixed[] $options A holder options.
|
47 |
+
* @param FactoryForms423_Form $form A parent form.
|
48 |
*/
|
49 |
public function __construct($options, $form)
|
50 |
{
|
88 |
$tab_icon = $element->options['icon'];
|
89 |
}
|
90 |
|
91 |
+
$builder = new Wbcr_FactoryForms423_HtmlAttributeBuilder();
|
92 |
|
93 |
$builder->addCssClass('factory-tab-item-header');
|
94 |
$builder->addCssClass('factory-tab-item-header-' . $element->getName());
|
libs/factory/forms/controls/integer.php
CHANGED
@@ -32,9 +32,9 @@
|
|
32 |
exit;
|
33 |
}
|
34 |
|
35 |
-
if( !class_exists('
|
36 |
|
37 |
-
class
|
38 |
|
39 |
public $type = 'integer';
|
40 |
|
32 |
exit;
|
33 |
}
|
34 |
|
35 |
+
if( !class_exists('Wbcr_FactoryForms423_IntegerControl') ) {
|
36 |
|
37 |
+
class Wbcr_FactoryForms423_IntegerControl extends Wbcr_FactoryForms423_Control {
|
38 |
|
39 |
public $type = 'integer';
|
40 |
|
libs/factory/forms/controls/list.php
CHANGED
@@ -21,9 +21,9 @@
|
|
21 |
exit;
|
22 |
}
|
23 |
|
24 |
-
if( !class_exists('
|
25 |
|
26 |
-
class
|
27 |
|
28 |
public $type = 'list';
|
29 |
|
@@ -93,7 +93,7 @@
|
|
93 |
'url': '<?php echo $data['url'] ?>',
|
94 |
'data': <?php echo json_encode( $data['data'] ) ?>,
|
95 |
'selected': <?php echo json_encode( $value ) ?>,
|
96 |
-
'emptyList': '<?php echo $this->getOption('empty', __('The list is empty.', '
|
97 |
};
|
98 |
</script>
|
99 |
<?php
|
@@ -136,7 +136,7 @@
|
|
136 |
: array();
|
137 |
|
138 |
$is_empty = $this->isAjax() || empty($items);
|
139 |
-
$emptyList = $this->getOption('empty', __('The list is empty.', '
|
140 |
|
141 |
if( $is_empty ) {
|
142 |
$this->addCssClass('factory-empty');
|
21 |
exit;
|
22 |
}
|
23 |
|
24 |
+
if( !class_exists('Wbcr_FactoryForms423_ListControl') ) {
|
25 |
|
26 |
+
class Wbcr_FactoryForms423_ListControl extends Wbcr_FactoryForms423_Control {
|
27 |
|
28 |
public $type = 'list';
|
29 |
|
93 |
'url': '<?php echo $data['url'] ?>',
|
94 |
'data': <?php echo json_encode( $data['data'] ) ?>,
|
95 |
'selected': <?php echo json_encode( $value ) ?>,
|
96 |
+
'emptyList': '<?php echo $this->getOption('empty', __('The list is empty.', 'wbcr_factory_forms_423') ) ?>'
|
97 |
};
|
98 |
</script>
|
99 |
<?php
|
136 |
: array();
|
137 |
|
138 |
$is_empty = $this->isAjax() || empty($items);
|
139 |
+
$emptyList = $this->getOption('empty', __('The list is empty.', 'wbcr_factory_forms_423'));
|
140 |
|
141 |
if( $is_empty ) {
|
142 |
$this->addCssClass('factory-empty');
|
libs/factory/forms/controls/multiple-textbox.php
CHANGED
@@ -15,9 +15,9 @@
|
|
15 |
exit;
|
16 |
}
|
17 |
|
18 |
-
if( !class_exists('
|
19 |
|
20 |
-
class
|
21 |
|
22 |
public $type = 'multiple-textbox';
|
23 |
|
@@ -86,7 +86,7 @@
|
|
86 |
<?php endif; ?>
|
87 |
</div>
|
88 |
<button class="btn btn-default btn-small factory-mtextbox-add-item">
|
89 |
-
<i class="fa fa-plus" aria-hidden="true"></i> <?php _e('Add new', '
|
90 |
</button>
|
91 |
</div>
|
92 |
|
15 |
exit;
|
16 |
}
|
17 |
|
18 |
+
if( !class_exists('Wbcr_FactoryForms423_MultipleTextboxControl') ) {
|
19 |
|
20 |
+
class Wbcr_FactoryForms423_MultipleTextboxControl extends Wbcr_FactoryForms423_Control {
|
21 |
|
22 |
public $type = 'multiple-textbox';
|
23 |
|
86 |
<?php endif; ?>
|
87 |
</div>
|
88 |
<button class="btn btn-default btn-small factory-mtextbox-add-item">
|
89 |
+
<i class="fa fa-plus" aria-hidden="true"></i> <?php _e('Add new', 'wbcr_factory_forms_423') ?>
|
90 |
</button>
|
91 |
</div>
|
92 |
|
libs/factory/forms/controls/paddings-editor.php
CHANGED
@@ -14,9 +14,9 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
-
class
|
20 |
|
21 |
public $type = 'paddings-editor';
|
22 |
|
@@ -67,7 +67,7 @@
|
|
67 |
</div>
|
68 |
<div class="factory-slider-container">
|
69 |
<label class="factory-title">
|
70 |
-
<?php _e('Select a side and move the slider to set up:', '
|
71 |
</label>
|
72 |
|
73 |
<div class="factory-slider">
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_PaddingsEditorControl') ) {
|
18 |
|
19 |
+
class Wbcr_FactoryForms423_PaddingsEditorControl extends Wbcr_FactoryForms423_Control {
|
20 |
|
21 |
public $type = 'paddings-editor';
|
22 |
|
67 |
</div>
|
68 |
<div class="factory-slider-container">
|
69 |
<label class="factory-title">
|
70 |
+
<?php _e('Select a side and move the slider to set up:', 'wbcr_factory_forms_423') ?>
|
71 |
</label>
|
72 |
|
73 |
<div class="factory-slider">
|
libs/factory/forms/controls/pattern.php
CHANGED
@@ -15,9 +15,9 @@
|
|
15 |
exit;
|
16 |
}
|
17 |
|
18 |
-
if( !class_exists('
|
19 |
|
20 |
-
class
|
21 |
|
22 |
public $type = 'pattern';
|
23 |
|
@@ -52,12 +52,12 @@
|
|
52 |
$name = $this->getOption('name');
|
53 |
|
54 |
// filters to get available patterns for the given background contols
|
55 |
-
$this->patterns = apply_filters('
|
56 |
-
$this->patterns = apply_filters('
|
57 |
|
58 |
$this->custom_patterns = $this->getOption('patterns', array());
|
59 |
|
60 |
-
$this->color = new
|
61 |
}
|
62 |
|
63 |
/**
|
@@ -102,19 +102,19 @@
|
|
102 |
</div>
|
103 |
<a href="#" class="button button-default factory-button factory-change-color-btn <?php if( $hasColor ) {
|
104 |
echo 'button-active';
|
105 |
-
} ?>" title="<?php _e('Change color', '
|
106 |
<i class="fa fa-flask"></i>
|
107 |
-
<span><?php _e('re-color', '
|
108 |
</a>
|
109 |
<input type="hidden" id="<?php echo $name[0]; ?>" name="<?php echo $name[0]; ?>" value="<?php echo esc_url($values['url']); ?>" class="factory-pattern-result">
|
110 |
<input type="hidden" id="<?php echo $name[1]; ?>" name="<?php echo $name[1]; ?>" value="<?php echo esc_attr($values['color']); ?>" class="factory-color-result">
|
111 |
</div>
|
112 |
<div class="factory-color-panel">
|
113 |
<div class="factory-color-wrap">
|
114 |
-
<span class="factory-color-label"><?php _e('Select color:', '
|
115 |
<?php $this->color->html() ?>
|
116 |
<div class="factory-hint">
|
117 |
-
<i><?php _e('Changing the color may takes a minute or more. Please be patient.', '
|
118 |
</div>
|
119 |
</div>
|
120 |
<div class="factory-picker-target"></div>
|
15 |
exit;
|
16 |
}
|
17 |
|
18 |
+
if( !class_exists('Wbcr_FactoryForms423_PatternControl') ) {
|
19 |
|
20 |
+
class Wbcr_FactoryForms423_PatternControl extends Wbcr_FactoryForms423_Control {
|
21 |
|
22 |
public $type = 'pattern';
|
23 |
|
52 |
$name = $this->getOption('name');
|
53 |
|
54 |
// filters to get available patterns for the given background contols
|
55 |
+
$this->patterns = apply_filters('wbcr_factory_forms_423_patterns', array());
|
56 |
+
$this->patterns = apply_filters('wbcr_factory_forms_423_patterns-' . $name, $this->patterns);
|
57 |
|
58 |
$this->custom_patterns = $this->getOption('patterns', array());
|
59 |
|
60 |
+
$this->color = new Wbcr_FactoryForms423_ColorControl($options['color'], $form, $provider);
|
61 |
}
|
62 |
|
63 |
/**
|
102 |
</div>
|
103 |
<a href="#" class="button button-default factory-button factory-change-color-btn <?php if( $hasColor ) {
|
104 |
echo 'button-active';
|
105 |
+
} ?>" title="<?php _e('Change color', 'wbcr_factory_forms_423') ?>">
|
106 |
<i class="fa fa-flask"></i>
|
107 |
+
<span><?php _e('re-color', 'wbcr_factory_forms_423') ?></span>
|
108 |
</a>
|
109 |
<input type="hidden" id="<?php echo $name[0]; ?>" name="<?php echo $name[0]; ?>" value="<?php echo esc_url($values['url']); ?>" class="factory-pattern-result">
|
110 |
<input type="hidden" id="<?php echo $name[1]; ?>" name="<?php echo $name[1]; ?>" value="<?php echo esc_attr($values['color']); ?>" class="factory-color-result">
|
111 |
</div>
|
112 |
<div class="factory-color-panel">
|
113 |
<div class="factory-color-wrap">
|
114 |
+
<span class="factory-color-label"><?php _e('Select color:', 'wbcr_factory_forms_423') ?></span>
|
115 |
<?php $this->color->html() ?>
|
116 |
<div class="factory-hint">
|
117 |
+
<i><?php _e('Changing the color may takes a minute or more. Please be patient.', 'wbcr_factory_forms_423') ?></i>
|
118 |
</div>
|
119 |
</div>
|
120 |
<div class="factory-picker-target"></div>
|
libs/factory/forms/controls/radio-colors.php
CHANGED
@@ -27,9 +27,9 @@
|
|
27 |
exit;
|
28 |
}
|
29 |
|
30 |
-
if( !class_exists('
|
31 |
|
32 |
-
class
|
33 |
|
34 |
public $type = 'radio-color';
|
35 |
|
27 |
exit;
|
28 |
}
|
29 |
|
30 |
+
if( !class_exists('Wbcr_FactoryForms423_RadioColorsControl') ) {
|
31 |
|
32 |
+
class Wbcr_FactoryForms423_RadioColorsControl extends Wbcr_FactoryForms423_Control {
|
33 |
|
34 |
public $type = 'radio-color';
|
35 |
|
libs/factory/forms/controls/radio.php
CHANGED
@@ -21,9 +21,9 @@
|
|
21 |
exit;
|
22 |
}
|
23 |
|
24 |
-
if( !class_exists('
|
25 |
|
26 |
-
class
|
27 |
|
28 |
public $type = 'radio';
|
29 |
|
21 |
exit;
|
22 |
}
|
23 |
|
24 |
+
if( !class_exists('Wbcr_FactoryForms423_RadioControl') ) {
|
25 |
|
26 |
+
class Wbcr_FactoryForms423_RadioControl extends Wbcr_FactoryForms423_Control {
|
27 |
|
28 |
public $type = 'radio';
|
29 |
|
libs/factory/forms/controls/textarea.php
CHANGED
@@ -20,9 +20,9 @@
|
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
-
if( !class_exists('
|
24 |
|
25 |
-
class
|
26 |
|
27 |
public $type = 'textarea';
|
28 |
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
+
if( !class_exists('Wbcr_FactoryForms423_TextareaControl') ) {
|
24 |
|
25 |
+
class Wbcr_FactoryForms423_TextareaControl extends Wbcr_FactoryForms423_Control {
|
26 |
|
27 |
public $type = 'textarea';
|
28 |
|
libs/factory/forms/controls/textbox.php
CHANGED
@@ -29,9 +29,9 @@
|
|
29 |
exit;
|
30 |
}
|
31 |
|
32 |
-
if( !class_exists('
|
33 |
|
34 |
-
class
|
35 |
|
36 |
public $type = 'textbox';
|
37 |
|
29 |
exit;
|
30 |
}
|
31 |
|
32 |
+
if( !class_exists('Wbcr_FactoryForms423_TextboxControl') ) {
|
33 |
|
34 |
+
class Wbcr_FactoryForms423_TextboxControl extends Wbcr_FactoryForms423_Control {
|
35 |
|
36 |
public $type = 'textbox';
|
37 |
|
libs/factory/forms/controls/url.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Url Control
|
5 |
*
|
6 |
* Main options:
|
7 |
-
* @see
|
8 |
*
|
9 |
* @author Alex Kovalev <alex.kovalevv@gmail.com>
|
10 |
* @copyright (c) 2018, Webcraftic Ltd
|
@@ -18,9 +18,9 @@
|
|
18 |
exit;
|
19 |
}
|
20 |
|
21 |
-
if( !class_exists('
|
22 |
|
23 |
-
class
|
24 |
|
25 |
public $type = 'url';
|
26 |
|
4 |
* Url Control
|
5 |
*
|
6 |
* Main options:
|
7 |
+
* @see FactoryForms423_TextboxControl
|
8 |
*
|
9 |
* @author Alex Kovalev <alex.kovalevv@gmail.com>
|
10 |
* @copyright (c) 2018, Webcraftic Ltd
|
18 |
exit;
|
19 |
}
|
20 |
|
21 |
+
if( !class_exists('Wbcr_FactoryForms423_UrlControl') ) {
|
22 |
|
23 |
+
class Wbcr_FactoryForms423_UrlControl extends Wbcr_FactoryForms423_TextboxControl {
|
24 |
|
25 |
public $type = 'url';
|
26 |
|
libs/factory/forms/controls/wp-editor.php
CHANGED
@@ -22,9 +22,9 @@
|
|
22 |
exit;
|
23 |
}
|
24 |
|
25 |
-
if( !class_exists('
|
26 |
|
27 |
-
class
|
28 |
|
29 |
public $type = 'wp-editor';
|
30 |
|
@@ -42,7 +42,7 @@
|
|
42 |
}
|
43 |
|
44 |
if( !isset($this->options['tinymce']['content_css']) ) {
|
45 |
-
$this->options['tinymce']['content_css'] =
|
46 |
}
|
47 |
}
|
48 |
|
22 |
exit;
|
23 |
}
|
24 |
|
25 |
+
if( !class_exists('Wbcr_FactoryForms423_WpEditorControl') ) {
|
26 |
|
27 |
+
class Wbcr_FactoryForms423_WpEditorControl extends Wbcr_FactoryForms423_Control {
|
28 |
|
29 |
public $type = 'wp-editor';
|
30 |
|
42 |
}
|
43 |
|
44 |
if( !isset($this->options['tinymce']['content_css']) ) {
|
45 |
+
$this->options['tinymce']['content_css'] = FACTORY_FORMS_423_URL . '/assets/css/editor.css';
|
46 |
}
|
47 |
}
|
48 |
|
libs/factory/forms/includes/complex-control.class.php
CHANGED
@@ -13,13 +13,13 @@
|
|
13 |
if( !defined('ABSPATH') ) {
|
14 |
exit;
|
15 |
}
|
16 |
-
if( !class_exists('
|
17 |
/**
|
18 |
* The base class for all controls.
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
-
abstract class
|
23 |
|
24 |
/**
|
25 |
* Is this element a complex control?
|
@@ -33,7 +33,7 @@
|
|
33 |
* Contains a set of internal controls.
|
34 |
*
|
35 |
* @since 1.0.0
|
36 |
-
* @var
|
37 |
*/
|
38 |
public $inner_controls = array();
|
39 |
|
@@ -41,7 +41,7 @@
|
|
41 |
* Sets a provider for the control.
|
42 |
*
|
43 |
* @since 1.0.0
|
44 |
-
* @param
|
45 |
* @return void
|
46 |
*/
|
47 |
public function setProvider($provider)
|
13 |
if( !defined('ABSPATH') ) {
|
14 |
exit;
|
15 |
}
|
16 |
+
if( !class_exists('Wbcr_FactoryForms423_ComplexControl') ) {
|
17 |
/**
|
18 |
* The base class for all controls.
|
19 |
*
|
20 |
* @since 1.0.0
|
21 |
*/
|
22 |
+
abstract class Wbcr_FactoryForms423_ComplexControl extends Wbcr_FactoryForms423_Control {
|
23 |
|
24 |
/**
|
25 |
* Is this element a complex control?
|
33 |
* Contains a set of internal controls.
|
34 |
*
|
35 |
* @since 1.0.0
|
36 |
+
* @var Wbcr_FactoryForms423_Control[]
|
37 |
*/
|
38 |
public $inner_controls = array();
|
39 |
|
41 |
* Sets a provider for the control.
|
42 |
*
|
43 |
* @since 1.0.0
|
44 |
+
* @param Wbcr_IFactoryForms423_ValueProvider $provider
|
45 |
* @return void
|
46 |
*/
|
47 |
public function setProvider($provider)
|
libs/factory/forms/includes/control-holder.class.php
CHANGED
@@ -14,19 +14,19 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
/**
|
19 |
* The base class for control holders.
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
abstract class
|
24 |
|
25 |
/**
|
26 |
* Holder Elements.
|
27 |
*
|
28 |
* @since 1.0.0
|
29 |
-
* @var
|
30 |
*/
|
31 |
protected $elements = array();
|
32 |
|
@@ -43,7 +43,7 @@
|
|
43 |
*
|
44 |
* @since 1.0.0
|
45 |
* @param mixed[] $options A holder options.
|
46 |
-
* @param
|
47 |
*/
|
48 |
public function __construct($options, $form)
|
49 |
{
|
@@ -60,7 +60,7 @@
|
|
60 |
* Returns holder elements.
|
61 |
*
|
62 |
* @since 1.0.0
|
63 |
-
* @return
|
64 |
*/
|
65 |
public function getElements()
|
66 |
{
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_ControlHolder') ) {
|
18 |
/**
|
19 |
* The base class for control holders.
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
abstract class Wbcr_FactoryForms423_ControlHolder extends Wbcr_FactoryForms423_Control {
|
24 |
|
25 |
/**
|
26 |
* Holder Elements.
|
27 |
*
|
28 |
* @since 1.0.0
|
29 |
+
* @var Wbcr_FactoryForms423_Control[]
|
30 |
*/
|
31 |
protected $elements = array();
|
32 |
|
43 |
*
|
44 |
* @since 1.0.0
|
45 |
* @param mixed[] $options A holder options.
|
46 |
+
* @param Wbcr_FactoryForms423_Form $form A parent form.
|
47 |
*/
|
48 |
public function __construct($options, $form)
|
49 |
{
|
60 |
* Returns holder elements.
|
61 |
*
|
62 |
* @since 1.0.0
|
63 |
+
* @return Wbcr_FactoryForms423_FormElement[].
|
64 |
*/
|
65 |
public function getElements()
|
66 |
{
|
libs/factory/forms/includes/control.class.php
CHANGED
@@ -14,14 +14,14 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* The base class for all controls.
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
-
abstract class
|
25 |
|
26 |
/**
|
27 |
* Is this element a control?
|
@@ -43,7 +43,7 @@
|
|
43 |
* A provider that is used to get values.
|
44 |
*
|
45 |
* @since 1.0.0
|
46 |
-
* @var
|
47 |
*/
|
48 |
protected $provider = null;
|
49 |
|
@@ -51,7 +51,7 @@
|
|
51 |
* Create a new instance of the control.
|
52 |
*
|
53 |
* @param mixed[] $options
|
54 |
-
* @param
|
55 |
* @param null $provider
|
56 |
* @since 1.0.0
|
57 |
* @return void
|
@@ -66,7 +66,7 @@
|
|
66 |
* Sets a provider for the control.
|
67 |
*
|
68 |
* @since 1.0.0
|
69 |
-
* @param
|
70 |
* @return void
|
71 |
*/
|
72 |
public function setProvider($provider)
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_Control') ) {
|
18 |
|
19 |
/**
|
20 |
* The base class for all controls.
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
+
abstract class Wbcr_FactoryForms423_Control extends Wbcr_FactoryForms423_FormElement {
|
25 |
|
26 |
/**
|
27 |
* Is this element a control?
|
43 |
* A provider that is used to get values.
|
44 |
*
|
45 |
* @since 1.0.0
|
46 |
+
* @var Wbcr_IFactoryForms423_ValueProvider
|
47 |
*/
|
48 |
protected $provider = null;
|
49 |
|
51 |
* Create a new instance of the control.
|
52 |
*
|
53 |
* @param mixed[] $options
|
54 |
+
* @param FactoryForms423_Form $form
|
55 |
* @param null $provider
|
56 |
* @since 1.0.0
|
57 |
* @return void
|
66 |
* Sets a provider for the control.
|
67 |
*
|
68 |
* @since 1.0.0
|
69 |
+
* @param IFactoryForms423_ValueProvider $provider
|
70 |
* @return void
|
71 |
*/
|
72 |
public function setProvider($provider)
|
libs/factory/forms/includes/custom-element.class.php
CHANGED
@@ -14,13 +14,13 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
/**
|
19 |
* The base class for all controls.
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
abstract class
|
24 |
|
25 |
/**
|
26 |
* Is this element a custom form element?
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_CustomElement') ) {
|
18 |
/**
|
19 |
* The base class for all controls.
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
abstract class Wbcr_FactoryForms423_CustomElement extends Wbcr_FactoryForms423_FormElement {
|
24 |
|
25 |
/**
|
26 |
* Is this element a custom form element?
|
libs/factory/forms/includes/form-element.class.php
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* The base class for all form element (controls, holders).
|
@@ -23,7 +23,7 @@
|
|
23 |
*
|
24 |
* @since 1.0.0
|
25 |
*/
|
26 |
-
abstract class
|
27 |
|
28 |
/**
|
29 |
* A type of an elemnt.
|
@@ -37,7 +37,7 @@
|
|
37 |
* An html attribute builder.
|
38 |
*
|
39 |
* @since 1.0.0
|
40 |
-
* @var
|
41 |
*/
|
42 |
private $html_builder;
|
43 |
|
@@ -53,7 +53,7 @@
|
|
53 |
* A parent form.
|
54 |
*
|
55 |
* @since 1.0.0
|
56 |
-
* @var
|
57 |
*/
|
58 |
protected $form;
|
59 |
|
@@ -61,7 +61,7 @@
|
|
61 |
* A form layout.
|
62 |
*
|
63 |
* @since 1.0.0
|
64 |
-
* @var
|
65 |
*/
|
66 |
protected $layout;
|
67 |
|
@@ -94,7 +94,7 @@
|
|
94 |
*
|
95 |
* @since 1.0.0
|
96 |
* @param mixed[] $options A holder options.
|
97 |
-
* @param
|
98 |
*/
|
99 |
public function __construct($options, $form)
|
100 |
{
|
@@ -102,7 +102,7 @@
|
|
102 |
$this->form = $form;
|
103 |
$this->layout = $form->layout;
|
104 |
|
105 |
-
$this->html_builder = new
|
106 |
|
107 |
if( isset($this->options['cssClass']) ) {
|
108 |
$this->html_builder->addCssClass($this->options['cssClass']);
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_FormElement') ) {
|
18 |
|
19 |
/**
|
20 |
* The base class for all form element (controls, holders).
|
23 |
*
|
24 |
* @since 1.0.0
|
25 |
*/
|
26 |
+
abstract class Wbcr_FactoryForms423_FormElement {
|
27 |
|
28 |
/**
|
29 |
* A type of an elemnt.
|
37 |
* An html attribute builder.
|
38 |
*
|
39 |
* @since 1.0.0
|
40 |
+
* @var Wbcr_FactoryForms423_HtmlAttributeBuilder
|
41 |
*/
|
42 |
private $html_builder;
|
43 |
|
53 |
* A parent form.
|
54 |
*
|
55 |
* @since 1.0.0
|
56 |
+
* @var Wbcr_FactoryForms423_Form
|
57 |
*/
|
58 |
protected $form;
|
59 |
|
61 |
* A form layout.
|
62 |
*
|
63 |
* @since 1.0.0
|
64 |
+
* @var Wbcr_FactoryForms423_FormLayout
|
65 |
*/
|
66 |
protected $layout;
|
67 |
|
94 |
*
|
95 |
* @since 1.0.0
|
96 |
* @param mixed[] $options A holder options.
|
97 |
+
* @param Wbcr_FactoryForms423_Form $form A parent form.
|
98 |
*/
|
99 |
public function __construct($options, $form)
|
100 |
{
|
102 |
$this->form = $form;
|
103 |
$this->layout = $form->layout;
|
104 |
|
105 |
+
$this->html_builder = new Wbcr_FactoryForms423_HtmlAttributeBuilder();
|
106 |
|
107 |
if( isset($this->options['cssClass']) ) {
|
108 |
$this->html_builder->addCssClass($this->options['cssClass']);
|
libs/factory/forms/includes/form-layout.class.php
CHANGED
@@ -14,12 +14,12 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* The base class for all form layouts.
|
21 |
*/
|
22 |
-
abstract class
|
23 |
|
24 |
/**
|
25 |
* A form layout name.
|
@@ -42,7 +42,7 @@
|
|
42 |
*
|
43 |
* @since 1.0.0
|
44 |
* @param mixed[] $options A holder options.
|
45 |
-
* @param
|
46 |
*/
|
47 |
public function __construct($options, $form)
|
48 |
{
|
@@ -52,8 +52,8 @@
|
|
52 |
|
53 |
parent::__construct($options, $form);
|
54 |
|
55 |
-
$this->addCssClass('factory-forms-
|
56 |
-
$this->addCssClass('factory-forms-
|
57 |
}
|
58 |
|
59 |
/**
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_FormLayout') ) {
|
18 |
|
19 |
/**
|
20 |
* The base class for all form layouts.
|
21 |
*/
|
22 |
+
abstract class Wbcr_FactoryForms423_FormLayout extends Wbcr_FactoryForms423_Holder {
|
23 |
|
24 |
/**
|
25 |
* A form layout name.
|
42 |
*
|
43 |
* @since 1.0.0
|
44 |
* @param mixed[] $options A holder options.
|
45 |
+
* @param Wbcr_FactoryForms423_Form $form A parent form.
|
46 |
*/
|
47 |
public function __construct($options, $form)
|
48 |
{
|
52 |
|
53 |
parent::__construct($options, $form);
|
54 |
|
55 |
+
$this->addCssClass('factory-forms-423-' . $this->type);
|
56 |
+
$this->addCssClass('factory-forms-423-' . $this->name);
|
57 |
}
|
58 |
|
59 |
/**
|
libs/factory/forms/includes/form.class.php
CHANGED
@@ -15,16 +15,16 @@
|
|
15 |
}
|
16 |
|
17 |
// creating a license manager for each plugin created via the factory
|
18 |
-
add_action('
|
19 |
|
20 |
-
function
|
21 |
{
|
22 |
-
$plugin->forms = new
|
23 |
}
|
24 |
|
25 |
-
if( !class_exists('
|
26 |
|
27 |
-
class
|
28 |
|
29 |
// ----------------------------------------------------
|
30 |
// Static fields and methods
|
@@ -57,7 +57,7 @@
|
|
57 |
/**
|
58 |
* Registers a set of new controls.
|
59 |
*
|
60 |
-
* @see
|
61 |
*
|
62 |
* @since 1.0.0
|
63 |
* @return void
|
@@ -95,7 +95,7 @@
|
|
95 |
/**
|
96 |
* Registers a set of new holder controls.
|
97 |
*
|
98 |
-
* @see
|
99 |
*
|
100 |
* @since 1.0.0
|
101 |
* @return void
|
@@ -129,7 +129,7 @@
|
|
129 |
/**
|
130 |
* Registers a set of new custom form elements.
|
131 |
*
|
132 |
-
* @see
|
133 |
*
|
134 |
* @since 1.0.0
|
135 |
* @return void
|
@@ -180,11 +180,11 @@
|
|
180 |
public static $controls_registered = false;
|
181 |
}
|
182 |
}
|
183 |
-
if( !class_exists('
|
184 |
/**
|
185 |
* An abstraction for forms.
|
186 |
*/
|
187 |
-
class
|
188 |
|
189 |
// ----------------------------------------------------
|
190 |
// Object fields and methods
|
@@ -194,7 +194,7 @@
|
|
194 |
* A value provider of the form that is used to save and load values.
|
195 |
*
|
196 |
* @since 1.0.0
|
197 |
-
* @var
|
198 |
*/
|
199 |
private $provider;
|
200 |
|
@@ -245,7 +245,7 @@
|
|
245 |
* A current form layout used to render a form.
|
246 |
*
|
247 |
* @since 1.0.0
|
248 |
-
* @var
|
249 |
*/
|
250 |
public $layout;
|
251 |
|
@@ -261,20 +261,20 @@
|
|
261 |
*
|
262 |
* @since 1.0.0
|
263 |
* @param array $options
|
264 |
-
* @param
|
265 |
*/
|
266 |
-
public function __construct(array $options = array(),
|
267 |
{
|
268 |
// register controls once, when the first form is created
|
269 |
-
if( !
|
270 |
|
271 |
-
do_action('
|
272 |
|
273 |
//if( !empty($plugin) ) {
|
274 |
-
do_action('
|
275 |
//}
|
276 |
|
277 |
-
|
278 |
}
|
279 |
|
280 |
$this->scope = isset($options['scope']) ? $options['scope'] : null;
|
@@ -289,14 +289,14 @@
|
|
289 |
$this->form_layout = 'bootstrap-3';
|
290 |
}
|
291 |
|
292 |
-
|
293 |
}
|
294 |
|
295 |
/**
|
296 |
* Sets a provider for the control.
|
297 |
*
|
298 |
* @since 1.0.0
|
299 |
-
* @param
|
300 |
* @return void
|
301 |
*/
|
302 |
public function setProvider($provider)
|
@@ -332,14 +332,14 @@
|
|
332 |
*/
|
333 |
public function getItems()
|
334 |
{
|
335 |
-
return apply_filters('
|
336 |
}
|
337 |
|
338 |
/**
|
339 |
* Returns form controls (control objects).
|
340 |
*
|
341 |
* @since 1.0.0
|
342 |
-
* @return
|
343 |
*/
|
344 |
public function getControls()
|
345 |
{
|
@@ -355,7 +355,7 @@
|
|
355 |
* Builds a form items to the control objects ready to use.
|
356 |
*
|
357 |
* @param null $holder
|
358 |
-
* @return
|
359 |
*/
|
360 |
|
361 |
public function createControls($holder = null)
|
@@ -395,7 +395,7 @@
|
|
395 |
*
|
396 |
* @since 1.0.0
|
397 |
* @param array $item Item data.
|
398 |
-
* @return
|
399 |
*/
|
400 |
public function createElement($item)
|
401 |
{
|
@@ -417,7 +417,7 @@
|
|
417 |
*
|
418 |
* @since 1.0.0
|
419 |
* @param mixed[] $item Data of items.
|
420 |
-
* @return
|
421 |
*/
|
422 |
public function createElements($items = array())
|
423 |
{
|
@@ -433,7 +433,7 @@
|
|
433 |
*
|
434 |
* @since 1.0.0
|
435 |
* @param array $item Item data.
|
436 |
-
* @return
|
437 |
*/
|
438 |
public function createControl($item)
|
439 |
{
|
@@ -441,7 +441,7 @@
|
|
441 |
|
442 |
if( is_array($item) ) {
|
443 |
|
444 |
-
$control_data =
|
445 |
|
446 |
require_once($control_data['include']);
|
447 |
|
@@ -465,7 +465,7 @@
|
|
465 |
*
|
466 |
* @since 1.0.0
|
467 |
* @param array $item Item data.
|
468 |
-
* @return
|
469 |
*/
|
470 |
public function createHolder($item)
|
471 |
{
|
@@ -473,7 +473,7 @@
|
|
473 |
|
474 |
if( is_array($item) ) {
|
475 |
|
476 |
-
$holderData =
|
477 |
require_once($holderData['include']);
|
478 |
|
479 |
$object = new $holderData['class']($item, $this);
|
@@ -491,7 +491,7 @@
|
|
491 |
*
|
492 |
* @since 1.0.0
|
493 |
* @param mixed $item Item data.
|
494 |
-
* @return
|
495 |
*/
|
496 |
public function createCustomElement($item)
|
497 |
{
|
@@ -499,7 +499,7 @@
|
|
499 |
|
500 |
if( is_array($item) ) {
|
501 |
|
502 |
-
$data =
|
503 |
require_once($data['include']);
|
504 |
|
505 |
$options = $item;
|
@@ -523,12 +523,12 @@
|
|
523 |
public function html($options = array())
|
524 |
{
|
525 |
|
526 |
-
if( !isset(
|
527 |
die(sprintf('[ERROR] The form layout %s was not found.', $this->form_layout));
|
528 |
}
|
529 |
|
530 |
// include a render code
|
531 |
-
$layout_data =
|
532 |
require_once($layout_data['include']);
|
533 |
|
534 |
$this->connectAssets();
|
@@ -552,7 +552,7 @@
|
|
552 |
{
|
553 |
|
554 |
$this->connectAssetsForItems();
|
555 |
-
$layout_data =
|
556 |
|
557 |
if( $layout_data['name'] == 'default' ) {
|
558 |
if( isset($layout_data['style']) ) {
|
@@ -602,9 +602,9 @@
|
|
602 |
|
603 |
$haystack = array();
|
604 |
if( self::isControl($type) ) {
|
605 |
-
$haystack =
|
606 |
} elseif( self::isControlHolder($type) ) {
|
607 |
-
$haystack =
|
608 |
}
|
609 |
|
610 |
if( isset($haystack[$type]) ) {
|
@@ -660,7 +660,7 @@
|
|
660 |
*/
|
661 |
public static function isControl($item)
|
662 |
{
|
663 |
-
return isset(
|
664 |
}
|
665 |
|
666 |
/**
|
@@ -672,7 +672,7 @@
|
|
672 |
*/
|
673 |
public static function isControlHolder($item)
|
674 |
{
|
675 |
-
return isset(
|
676 |
}
|
677 |
|
678 |
/**
|
@@ -684,7 +684,7 @@
|
|
684 |
*/
|
685 |
public static function isCustomElement($item)
|
686 |
{
|
687 |
-
return isset(
|
688 |
}
|
689 |
}
|
690 |
}
|
15 |
}
|
16 |
|
17 |
// creating a license manager for each plugin created via the factory
|
18 |
+
add_action('wbcr_factory_forms_423_plugin_created', 'wbcr_factory_forms_423_plugin_created');
|
19 |
|
20 |
+
function wbcr_factory_forms_423_plugin_created($plugin)
|
21 |
{
|
22 |
+
$plugin->forms = new Wbcr_FactoryForms423_Manager($plugin);
|
23 |
}
|
24 |
|
25 |
+
if( !class_exists('Wbcr_FactoryForms423_Manager') ) {
|
26 |
|
27 |
+
class Wbcr_FactoryForms423_Manager {
|
28 |
|
29 |
// ----------------------------------------------------
|
30 |
// Static fields and methods
|
57 |
/**
|
58 |
* Registers a set of new controls.
|
59 |
*
|
60 |
+
* @see FactoryForms423_Form::registerControl()
|
61 |
*
|
62 |
* @since 1.0.0
|
63 |
* @return void
|
95 |
/**
|
96 |
* Registers a set of new holder controls.
|
97 |
*
|
98 |
+
* @see FactoryForms423_Form::registerHolder()
|
99 |
*
|
100 |
* @since 1.0.0
|
101 |
* @return void
|
129 |
/**
|
130 |
* Registers a set of new custom form elements.
|
131 |
*
|
132 |
+
* @see FactoryForms423_Form::registerCustomElement()
|
133 |
*
|
134 |
* @since 1.0.0
|
135 |
* @return void
|
180 |
public static $controls_registered = false;
|
181 |
}
|
182 |
}
|
183 |
+
if( !class_exists('Wbcr_FactoryForms423_Form') ) {
|
184 |
/**
|
185 |
* An abstraction for forms.
|
186 |
*/
|
187 |
+
class Wbcr_FactoryForms423_Form {
|
188 |
|
189 |
// ----------------------------------------------------
|
190 |
// Object fields and methods
|
194 |
* A value provider of the form that is used to save and load values.
|
195 |
*
|
196 |
* @since 1.0.0
|
197 |
+
* @var Wbcr_IFactoryForms423_ValueProvider
|
198 |
*/
|
199 |
private $provider;
|
200 |
|
245 |
* A current form layout used to render a form.
|
246 |
*
|
247 |
* @since 1.0.0
|
248 |
+
* @var Wbcr_FactoryForms423_FormLayout
|
249 |
*/
|
250 |
public $layout;
|
251 |
|
261 |
*
|
262 |
* @since 1.0.0
|
263 |
* @param array $options
|
264 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
265 |
*/
|
266 |
+
public function __construct(array $options = array(), Wbcr_Factory425_Plugin $plugin)
|
267 |
{
|
268 |
// register controls once, when the first form is created
|
269 |
+
if( !Wbcr_FactoryForms423_Manager::$controls_registered ) {
|
270 |
|
271 |
+
do_action('wbcr_factory_forms_423_register_controls', $plugin);
|
272 |
|
273 |
//if( !empty($plugin) ) {
|
274 |
+
do_action('wbcr_factory_forms_423_register_controls_' . $plugin->getPluginName(), $plugin);
|
275 |
//}
|
276 |
|
277 |
+
Wbcr_FactoryForms423_Manager::$controls_registered = true;
|
278 |
}
|
279 |
|
280 |
$this->scope = isset($options['scope']) ? $options['scope'] : null;
|
289 |
$this->form_layout = 'bootstrap-3';
|
290 |
}
|
291 |
|
292 |
+
Wbcr_FactoryForms423_Manager::$temper = 'flat';
|
293 |
}
|
294 |
|
295 |
/**
|
296 |
* Sets a provider for the control.
|
297 |
*
|
298 |
* @since 1.0.0
|
299 |
+
* @param Wbcr_IFactoryForms423_ValueProvider $provider
|
300 |
* @return void
|
301 |
*/
|
302 |
public function setProvider($provider)
|
332 |
*/
|
333 |
public function getItems()
|
334 |
{
|
335 |
+
return apply_filters('wbcr_factory_425_form_items', $this->items, $this->name);
|
336 |
}
|
337 |
|
338 |
/**
|
339 |
* Returns form controls (control objects).
|
340 |
*
|
341 |
* @since 1.0.0
|
342 |
+
* @return Wbcr_FactoryForms423_Control[]
|
343 |
*/
|
344 |
public function getControls()
|
345 |
{
|
355 |
* Builds a form items to the control objects ready to use.
|
356 |
*
|
357 |
* @param null $holder
|
358 |
+
* @return Wbcr_FactoryForms423_Control[]
|
359 |
*/
|
360 |
|
361 |
public function createControls($holder = null)
|
395 |
*
|
396 |
* @since 1.0.0
|
397 |
* @param array $item Item data.
|
398 |
+
* @return Wbcr_FactoryForms423_FormElement|null A form element.
|
399 |
*/
|
400 |
public function createElement($item)
|
401 |
{
|
417 |
*
|
418 |
* @since 1.0.0
|
419 |
* @param mixed[] $item Data of items.
|
420 |
+
* @return Wbcr_FactoryForms423_FormElement[] Created elements.
|
421 |
*/
|
422 |
public function createElements($items = array())
|
423 |
{
|
433 |
*
|
434 |
* @since 1.0.0
|
435 |
* @param array $item Item data.
|
436 |
+
* @return Wbcr_FactoryForms423_Control A control object.
|
437 |
*/
|
438 |
public function createControl($item)
|
439 |
{
|
441 |
|
442 |
if( is_array($item) ) {
|
443 |
|
444 |
+
$control_data = Wbcr_FactoryForms423_Manager::$registered_controls[$item['type']];
|
445 |
|
446 |
require_once($control_data['include']);
|
447 |
|
465 |
*
|
466 |
* @since 1.0.0
|
467 |
* @param array $item Item data.
|
468 |
+
* @return Wbcr_FactoryForms423_Holder A control holder object.
|
469 |
*/
|
470 |
public function createHolder($item)
|
471 |
{
|
473 |
|
474 |
if( is_array($item) ) {
|
475 |
|
476 |
+
$holderData = Wbcr_FactoryForms423_Manager::$registered_holders[$item['type']];
|
477 |
require_once($holderData['include']);
|
478 |
|
479 |
$object = new $holderData['class']($item, $this);
|
491 |
*
|
492 |
* @since 1.0.0
|
493 |
* @param mixed $item Item data.
|
494 |
+
* @return Wbcr_FactoryForms423_FormElement A custom form element object.
|
495 |
*/
|
496 |
public function createCustomElement($item)
|
497 |
{
|
499 |
|
500 |
if( is_array($item) ) {
|
501 |
|
502 |
+
$data = Wbcr_FactoryForms423_Manager::$registered_custom_elements[$item['type']];
|
503 |
require_once($data['include']);
|
504 |
|
505 |
$options = $item;
|
523 |
public function html($options = array())
|
524 |
{
|
525 |
|
526 |
+
if( !isset(Wbcr_FactoryForms423_Manager::$form_layouts[$this->form_layout]) ) {
|
527 |
die(sprintf('[ERROR] The form layout %s was not found.', $this->form_layout));
|
528 |
}
|
529 |
|
530 |
// include a render code
|
531 |
+
$layout_data = Wbcr_FactoryForms423_Manager::$form_layouts[$this->form_layout];
|
532 |
require_once($layout_data['include']);
|
533 |
|
534 |
$this->connectAssets();
|
552 |
{
|
553 |
|
554 |
$this->connectAssetsForItems();
|
555 |
+
$layout_data = Wbcr_FactoryForms423_Manager::$form_layouts[$this->form_layout];
|
556 |
|
557 |
if( $layout_data['name'] == 'default' ) {
|
558 |
if( isset($layout_data['style']) ) {
|
602 |
|
603 |
$haystack = array();
|
604 |
if( self::isControl($type) ) {
|
605 |
+
$haystack = Wbcr_FactoryForms423_Manager::$registered_controls;
|
606 |
} elseif( self::isControlHolder($type) ) {
|
607 |
+
$haystack = Wbcr_FactoryForms423_Manager::$registered_holders;
|
608 |
}
|
609 |
|
610 |
if( isset($haystack[$type]) ) {
|
660 |
*/
|
661 |
public static function isControl($item)
|
662 |
{
|
663 |
+
return isset(Wbcr_FactoryForms423_Manager::$registered_controls[$item['type']]);
|
664 |
}
|
665 |
|
666 |
/**
|
672 |
*/
|
673 |
public static function isControlHolder($item)
|
674 |
{
|
675 |
+
return isset(Wbcr_FactoryForms423_Manager::$registered_holders[$item['type']]);
|
676 |
}
|
677 |
|
678 |
/**
|
684 |
*/
|
685 |
public static function isCustomElement($item)
|
686 |
{
|
687 |
+
return isset(Wbcr_FactoryForms423_Manager::$registered_custom_elements[$item['type']]);
|
688 |
}
|
689 |
}
|
690 |
}
|
libs/factory/forms/includes/holder.class.php
CHANGED
@@ -14,20 +14,20 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* The base class for control holders.
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
-
abstract class
|
25 |
|
26 |
/**
|
27 |
* Holder Elements.
|
28 |
*
|
29 |
* @since 1.0.0
|
30 |
-
* @var
|
31 |
*/
|
32 |
protected $elements = array();
|
33 |
|
@@ -44,7 +44,7 @@
|
|
44 |
*
|
45 |
* @since 1.0.0
|
46 |
* @param mixed[] $options A holder options.
|
47 |
-
* @param
|
48 |
*/
|
49 |
public function __construct($options, $form)
|
50 |
{
|
@@ -56,7 +56,7 @@
|
|
56 |
* Returns holder elements.
|
57 |
*
|
58 |
* @since 1.0.0
|
59 |
-
* @return
|
60 |
*/
|
61 |
public function getElements()
|
62 |
{
|
@@ -84,7 +84,7 @@
|
|
84 |
$is_first_item = false;
|
85 |
}
|
86 |
|
87 |
-
do_action('
|
88 |
|
89 |
// if a current item is a control holder
|
90 |
if( $element->is_holder ) {
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_Holder') ) {
|
18 |
|
19 |
/**
|
20 |
* The base class for control holders.
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
*/
|
24 |
+
abstract class Wbcr_FactoryForms423_Holder extends Wbcr_FactoryForms423_FormElement {
|
25 |
|
26 |
/**
|
27 |
* Holder Elements.
|
28 |
*
|
29 |
* @since 1.0.0
|
30 |
+
* @var Wbcr_FactoryForms423_Control[]
|
31 |
*/
|
32 |
protected $elements = array();
|
33 |
|
44 |
*
|
45 |
* @since 1.0.0
|
46 |
* @param mixed[] $options A holder options.
|
47 |
+
* @param Wbcr_FactoryForms423_Form $form A parent form.
|
48 |
*/
|
49 |
public function __construct($options, $form)
|
50 |
{
|
56 |
* Returns holder elements.
|
57 |
*
|
58 |
* @since 1.0.0
|
59 |
+
* @return Wbcr_FactoryForms423_Control[].
|
60 |
*/
|
61 |
public function getElements()
|
62 |
{
|
84 |
$is_first_item = false;
|
85 |
}
|
86 |
|
87 |
+
do_action('wbcr_factory_425_form_before_element_' . $element->getOption('name'));
|
88 |
|
89 |
// if a current item is a control holder
|
90 |
if( $element->is_holder ) {
|
libs/factory/forms/includes/html-builder.class.php
CHANGED
@@ -14,13 +14,13 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
/**
|
19 |
* Html Attribute Builder
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
class
|
24 |
|
25 |
/**
|
26 |
* An array to store css classes.
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_HtmlAttributeBuilder') ) {
|
18 |
/**
|
19 |
* Html Attribute Builder
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
class Wbcr_FactoryForms423_HtmlAttributeBuilder {
|
24 |
|
25 |
/**
|
26 |
* An array to store css classes.
|
libs/factory/forms/includes/providers/meta-value-provider.class.php
CHANGED
@@ -14,7 +14,7 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
|
19 |
/**
|
20 |
* Factory Meta Value Provider
|
@@ -24,7 +24,7 @@
|
|
24 |
*
|
25 |
* @since 1.0.0
|
26 |
*/
|
27 |
-
class
|
28 |
|
29 |
|
30 |
public $scope;
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_OptionsValueProvider') ) {
|
18 |
|
19 |
/**
|
20 |
* Factory Meta Value Provider
|
24 |
*
|
25 |
* @since 1.0.0
|
26 |
*/
|
27 |
+
class Wbcr_FactoryForms423_MetaValueProvider implements Wbcr_IFactoryForms423_ValueProvider {
|
28 |
|
29 |
|
30 |
public $scope;
|
libs/factory/forms/includes/providers/options-value-provider.class.php
CHANGED
@@ -13,7 +13,7 @@
|
|
13 |
exit;
|
14 |
}
|
15 |
|
16 |
-
if( !class_exists('
|
17 |
|
18 |
/**
|
19 |
* Factory Options Value Provider
|
@@ -22,7 +22,7 @@
|
|
22 |
*
|
23 |
* @since 1.0.0
|
24 |
*/
|
25 |
-
class
|
26 |
|
27 |
/**
|
28 |
* A prefix that will be added to all option names.
|
@@ -43,7 +43,7 @@
|
|
43 |
/**
|
44 |
* Creates a new instance of an options value provider.
|
45 |
*/
|
46 |
-
public function __construct(
|
47 |
{
|
48 |
$this->plugin = $plugin;
|
49 |
}
|
13 |
exit;
|
14 |
}
|
15 |
|
16 |
+
if( !class_exists('Wbcr_FactoryForms423_OptionsValueProvider') ) {
|
17 |
|
18 |
/**
|
19 |
* Factory Options Value Provider
|
22 |
*
|
23 |
* @since 1.0.0
|
24 |
*/
|
25 |
+
class Wbcr_FactoryForms423_OptionsValueProvider implements Wbcr_IFactoryForms423_ValueProvider {
|
26 |
|
27 |
/**
|
28 |
* A prefix that will be added to all option names.
|
43 |
/**
|
44 |
* Creates a new instance of an options value provider.
|
45 |
*/
|
46 |
+
public function __construct(Wbcr_Factory425_Plugin $plugin)
|
47 |
{
|
48 |
$this->plugin = $plugin;
|
49 |
}
|
libs/factory/forms/includes/providers/value-provider.interface.php
CHANGED
@@ -14,13 +14,13 @@
|
|
14 |
if( !defined('ABSPATH') ) {
|
15 |
exit;
|
16 |
}
|
17 |
-
if( !class_exists('
|
18 |
/**
|
19 |
* The interface for all value provides.
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
-
interface
|
24 |
|
25 |
/**
|
26 |
* Inits a form a provider to get data from a storage.
|
14 |
if( !defined('ABSPATH') ) {
|
15 |
exit;
|
16 |
}
|
17 |
+
if( !class_exists('Wbcr_IFactoryForms423_ValueProvider') ) {
|
18 |
/**
|
19 |
* The interface for all value provides.
|
20 |
*
|
21 |
* @since 1.0.0
|
22 |
*/
|
23 |
+
interface Wbcr_IFactoryForms423_ValueProvider {
|
24 |
|
25 |
/**
|
26 |
* Inits a form a provider to get data from a storage.
|
libs/factory/forms/langs/{wbcr_factory_forms_422-ru_RU.mo → wbcr_factory_forms_423-ru_RU.mo}
RENAMED
File without changes
|
libs/factory/forms/langs/{wbcr_factory_forms_422-ru_RU.po → wbcr_factory_forms_423-ru_RU.po}
RENAMED
File without changes
|
libs/factory/forms/layouts/bootstrap-3/bootstrap-3.php
CHANGED
@@ -14,11 +14,11 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if( !class_exists('
|
18 |
/**
|
19 |
* A form layout based on Twitter Bootstrap 3
|
20 |
*/
|
21 |
-
class
|
22 |
|
23 |
public $name = 'default';
|
24 |
|
@@ -27,7 +27,7 @@
|
|
27 |
*
|
28 |
* @since 1.0.0
|
29 |
* @param array $options A holder options.
|
30 |
-
* @param
|
31 |
*/
|
32 |
public function __construct($options, $form)
|
33 |
{
|
@@ -68,7 +68,7 @@
|
|
68 |
}
|
69 |
|
70 |
/**
|
71 |
-
* @param
|
72 |
*/
|
73 |
public function beforeControl($control)
|
74 |
{
|
@@ -116,7 +116,7 @@
|
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
-
* @param
|
120 |
*/
|
121 |
public function afterControl($control)
|
122 |
{
|
@@ -168,7 +168,7 @@
|
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
-
* @param
|
172 |
* @param int $index
|
173 |
* @param int $total
|
174 |
*/
|
@@ -193,7 +193,7 @@
|
|
193 |
}
|
194 |
|
195 |
/**
|
196 |
-
* @param
|
197 |
* @param int $index
|
198 |
* @param int $total
|
199 |
*/
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if( !class_exists('Wbcr_FactoryForms423_Bootstrap3FormLayout') ) {
|
18 |
/**
|
19 |
* A form layout based on Twitter Bootstrap 3
|
20 |
*/
|
21 |
+
class Wbcr_FactoryForms423_Bootstrap3FormLayout extends Wbcr_FactoryForms423_FormLayout {
|
22 |
|
23 |
public $name = 'default';
|
24 |
|
27 |
*
|
28 |
* @since 1.0.0
|
29 |
* @param array $options A holder options.
|
30 |
+
* @param Wbcr_FactoryForms423_Form $form A parent form.
|
31 |
*/
|
32 |
public function __construct($options, $form)
|
33 |
{
|
68 |
}
|
69 |
|
70 |
/**
|
71 |
+
* @param Wbcr_FactoryForms423_Control $control
|
72 |
*/
|
73 |
public function beforeControl($control)
|
74 |
{
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
+
* @param Wbcr_FactoryForms423_Control $control
|
120 |
*/
|
121 |
public function afterControl($control)
|
122 |
{
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
+
* @param Wbcr_FactoryForms423_Control $control
|
172 |
* @param int $index
|
173 |
* @param int $total
|
174 |
*/
|
193 |
}
|
194 |
|
195 |
/**
|
196 |
+
* @param Wbcr_FactoryForms423_Control $control
|
197 |
* @param int $index
|
198 |
* @param int $total
|
199 |
*/
|
libs/factory/freemius/boot.php
CHANGED
@@ -14,39 +14,39 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if ( defined( '
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
-
define( '
|
22 |
|
23 |
-
define( '
|
24 |
-
define( '
|
25 |
-
define( '
|
26 |
|
27 |
#comp merge
|
28 |
// Freemius
|
29 |
-
require_once(
|
30 |
-
require_once(
|
31 |
-
require_once(
|
32 |
-
require_once(
|
33 |
-
require_once(
|
34 |
-
require_once(
|
35 |
-
require_once(
|
36 |
|
37 |
if ( ! class_exists( 'Freemius_Api_WordPress' ) ) {
|
38 |
-
require_once
|
39 |
}
|
40 |
|
41 |
-
require_once(
|
42 |
|
43 |
/**
|
44 |
-
* @param
|
45 |
*/
|
46 |
-
add_action( '
|
47 |
# Устанавливаем класс провайдера лицензий для премиум менеджера
|
48 |
-
$plugin->set_license_provider( 'freemius', 'WBCR\
|
49 |
# Устанавливаем класс репозитория обновлений для менеджера обновлений
|
50 |
-
$plugin->set_update_repository( 'freemius', 'WBCR\
|
51 |
} );
|
52 |
#endcomp
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if ( defined( 'FACTORY_FREEMIUS_113_LOADED' ) ) {
|
18 |
return;
|
19 |
}
|
20 |
|
21 |
+
define( 'FACTORY_FREEMIUS_113_VERSION', '1.1.3' );
|
22 |
|
23 |
+
define( 'FACTORY_FREEMIUS_113_LOADED', true );
|
24 |
+
define( 'FACTORY_FREEMIUS_113_DIR', dirname( __FILE__ ) );
|
25 |
+
define( 'FACTORY_FREEMIUS_113_URL', plugins_url( null, __FILE__ ) );
|
26 |
|
27 |
#comp merge
|
28 |
// Freemius
|
29 |
+
require_once( FACTORY_FREEMIUS_113_DIR . '/includes/entities/class-freemius-entity.php' );
|
30 |
+
require_once( FACTORY_FREEMIUS_113_DIR . '/includes/entities/class-freemius-scope.php' );
|
31 |
+
require_once( FACTORY_FREEMIUS_113_DIR . '/includes/entities/class-freemius-user.php' );
|
32 |
+
require_once( FACTORY_FREEMIUS_113_DIR . '/includes/entities/class-freemius-site.php' );
|
33 |
+
require_once( FACTORY_FREEMIUS_113_DIR . '/includes/entities/class-freemius-license.php' );
|
34 |
+
require_once( FACTORY_FREEMIUS_113_DIR . '/includes/licensing/class-freemius-provider.php' );
|
35 |
+
require_once( FACTORY_FREEMIUS_113_DIR . '/includes/updates/class-freemius-repository.php' );
|
36 |
|
37 |
if ( ! class_exists( 'Freemius_Api_WordPress' ) ) {
|
38 |
+
require_once FACTORY_FREEMIUS_113_DIR . '/includes/sdk/FreemiusWordPress.php';
|
39 |
}
|
40 |
|
41 |
+
require_once( FACTORY_FREEMIUS_113_DIR . '/includes/class-freemius-api.php' );
|
42 |
|
43 |
/**
|
44 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
45 |
*/
|
46 |
+
add_action( 'wbcr_factory_freemius_113_plugin_created', function ( $plugin ) {
|
47 |
# Устанавливаем класс провайдера лицензий для премиум менеджера
|
48 |
+
$plugin->set_license_provider( 'freemius', 'WBCR\Factory_Freemius_113\Premium\Provider' );
|
49 |
# Устанавливаем класс репозитория обновлений для менеджера обновлений
|
50 |
+
$plugin->set_update_repository( 'freemius', 'WBCR\Factory_Freemius_113\Updates\Freemius_Repository' );
|
51 |
} );
|
52 |
#endcomp
|
libs/factory/freemius/includes/class-freemius-api.php
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use Freemius_Api_WordPress;
|
6 |
use Freemius_Exception;
|
7 |
-
use
|
8 |
|
9 |
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
exit;
|
@@ -33,7 +33,7 @@ final class Api {
|
|
33 |
private $api;
|
34 |
|
35 |
/**
|
36 |
-
* @var
|
37 |
*/
|
38 |
private $plugin;
|
39 |
|
@@ -48,14 +48,14 @@ final class Api {
|
|
48 |
private static $clock_diff;
|
49 |
|
50 |
/**
|
51 |
-
* @param
|
52 |
* @param string $scope 'app', 'developer', 'user' or 'install'.
|
53 |
* @param number $id Element's id.
|
54 |
* @param string $public_key Public key.
|
55 |
* @param bool|string $secret_key Element's secret key.
|
56 |
* @param bool $is_sandbox
|
57 |
*/
|
58 |
-
private function __construct(
|
59 |
if ( ! class_exists( 'Freemius_Api_WordPress' ) ) {
|
60 |
require_once WP_FS__DIR_SDK . '/FreemiusWordPress.php';
|
61 |
}
|
@@ -73,7 +73,7 @@ final class Api {
|
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
-
* @param
|
77 |
* @param string $scope 'app', 'developer', 'user' or 'install'.
|
78 |
* @param number $id Element's id.
|
79 |
* @param string $public_key Public key.
|
@@ -82,7 +82,7 @@ final class Api {
|
|
82 |
*
|
83 |
* @return Api
|
84 |
*/
|
85 |
-
public static function instance(
|
86 |
$identifier = md5( $plugin->getPluginName() . $scope . $id . $public_key . ( is_string( $secret_key ) ? $secret_key : '' ) . json_encode( $is_sandbox ) );
|
87 |
|
88 |
if ( ! isset( self::$instances[ $identifier ] ) ) {
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Freemius_113;
|
4 |
|
5 |
use Freemius_Api_WordPress;
|
6 |
use Freemius_Exception;
|
7 |
+
use Wbcr_Factory425_Plugin;
|
8 |
|
9 |
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
exit;
|
33 |
private $api;
|
34 |
|
35 |
/**
|
36 |
+
* @var Wbcr_Factory425_Plugin
|
37 |
*/
|
38 |
private $plugin;
|
39 |
|
48 |
private static $clock_diff;
|
49 |
|
50 |
/**
|
51 |
+
* @param Wbcr_Factory425_Plugin $slug
|
52 |
* @param string $scope 'app', 'developer', 'user' or 'install'.
|
53 |
* @param number $id Element's id.
|
54 |
* @param string $public_key Public key.
|
55 |
* @param bool|string $secret_key Element's secret key.
|
56 |
* @param bool $is_sandbox
|
57 |
*/
|
58 |
+
private function __construct( Wbcr_Factory425_Plugin $plugin, $scope, $id, $public_key, $secret_key, $is_sandbox ) {
|
59 |
if ( ! class_exists( 'Freemius_Api_WordPress' ) ) {
|
60 |
require_once WP_FS__DIR_SDK . '/FreemiusWordPress.php';
|
61 |
}
|
73 |
}
|
74 |
|
75 |
/**
|
76 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
77 |
* @param string $scope 'app', 'developer', 'user' or 'install'.
|
78 |
* @param number $id Element's id.
|
79 |
* @param string $public_key Public key.
|
82 |
*
|
83 |
* @return Api
|
84 |
*/
|
85 |
+
public static function instance( Wbcr_Factory425_Plugin $plugin, $scope, $id, $public_key, $is_sandbox, $secret_key = false ) {
|
86 |
$identifier = md5( $plugin->getPluginName() . $scope . $id . $public_key . ( is_string( $secret_key ) ? $secret_key : '' ) . json_encode( $is_sandbox ) );
|
87 |
|
88 |
if ( ! isset( self::$instances[ $identifier ] ) ) {
|
libs/factory/freemius/includes/entities/class-freemius-entity.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use stdClass;
|
6 |
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Freemius_113\Entities;
|
4 |
|
5 |
use stdClass;
|
6 |
|
libs/factory/freemius/includes/entities/class-freemius-license.php
CHANGED
@@ -1,369 +1,376 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
namespace WBCR\
|
4 |
-
|
5 |
-
use stdClass;
|
6 |
-
|
7 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
8 |
-
|
9 |
-
}
|
10 |
-
|
11 |
-
/**
|
12 |
-
* @author Webcraftic <wordpress.webraftic@gmail.com>, Alex Kovalev <alex.kovalevv@gmail.com>
|
13 |
-
* @link https://webcraftic.com
|
14 |
-
* @copyright (c) 2018 Webraftic Ltd, Freemius, Inc.
|
15 |
-
* @version 1.0
|
16 |
-
*/
|
17 |
-
class License extends Entity implements \WBCR\Factory_424\Premium\Interfaces\License {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* @var number
|
21 |
-
*/
|
22 |
-
public $plugin_id;
|
23 |
-
|
24 |
-
/**
|
25 |
-
* @var number
|
26 |
-
*/
|
27 |
-
public $user_id;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* @var number
|
31 |
-
*/
|
32 |
-
public $plan_id;
|
33 |
-
|
34 |
-
/**
|
35 |
-
* @var
|
36 |
-
*/
|
37 |
-
public $plan_title;
|
38 |
-
|
39 |
-
/**
|
40 |
-
* @var
|
41 |
-
*/
|
42 |
-
public $billing_cycle;
|
43 |
-
|
44 |
-
/**
|
45 |
-
* @var number
|
46 |
-
*/
|
47 |
-
public $pricing_id;
|
48 |
-
|
49 |
-
/**
|
50 |
-
* @var int|null
|
51 |
-
*/
|
52 |
-
public $quota;
|
53 |
-
|
54 |
-
/**
|
55 |
-
* @var int
|
56 |
-
*/
|
57 |
-
public $activated;
|
58 |
-
|
59 |
-
/**
|
60 |
-
* @var int
|
61 |
-
*/
|
62 |
-
public $activated_local;
|
63 |
-
|
64 |
-
/**
|
65 |
-
* @var string
|
66 |
-
*/
|
67 |
-
public $expiration;
|
68 |
-
|
69 |
-
/**
|
70 |
-
* @var string
|
71 |
-
*/
|
72 |
-
public $secret_key;
|
73 |
-
|
74 |
-
/**
|
75 |
-
* @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
|
76 |
-
* license.
|
77 |
-
*/
|
78 |
-
public $is_free_localhost;
|
79 |
-
|
80 |
-
/**
|
81 |
-
* @var bool $is_block_features Defaults to true. If false, don't block features after license expiry - only
|
82 |
-
* block updates and support.
|
83 |
-
*/
|
84 |
-
public $is_block_features;
|
85 |
-
|
86 |
-
/**
|
87 |
-
* @var bool
|
88 |
-
*/
|
89 |
-
public $is_cancelled;
|
90 |
-
|
91 |
-
/**
|
92 |
-
* @param stdClass|bool $license
|
93 |
-
*/
|
94 |
-
public function __construct( $license = false ) {
|
95 |
-
parent::__construct( $license );
|
96 |
-
}
|
97 |
-
|
98 |
-
/**
|
99 |
-
* Get entity type.
|
100 |
-
*
|
101 |
-
* @return string
|
102 |
-
*/
|
103 |
-
public static function get_type() {
|
104 |
-
return 'license';
|
105 |
-
}
|
106 |
-
|
107 |
-
/**
|
108 |
-
* Example: #sk_f=>}-5vuHp$3*wPQHxd(AD3<);1&i
|
109 |
-
*
|
110 |
-
* @return string|null
|
111 |
-
*/
|
112 |
-
public function get_key() {
|
113 |
-
return $this->secret_key;
|
114 |
-
}
|
115 |
-
|
116 |
-
/**
|
117 |
-
* Example: #sk_f=>}-5vuHp$3******d(AD3<);1&i
|
118 |
-
*
|
119 |
-
* @return mixed
|
120 |
-
*/
|
121 |
-
public function get_hidden_key() {
|
122 |
-
return substr_replace( $this->get_key(), '******', 15, 6 );
|
123 |
}
|
124 |
-
|
125 |
/**
|
126 |
-
* @
|
|
|
|
|
|
|
127 |
*/
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
165 |
-
|
166 |
-
|
167 |
-
|
|
|
|
|
|
|
|
|
|
|
168 |
}
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
return 999;
|
182 |
}
|
183 |
-
|
184 |
-
|
185 |
-
$days_remaining = floor( $remaining / 86400 );
|
186 |
-
|
187 |
-
return $days_remaining;
|
188 |
-
} else if ( $format == 'date' ) {
|
189 |
-
return date( 'Y-m-d', strtotime( $this->expiration ) );
|
190 |
}
|
191 |
-
|
192 |
-
return $this->expiration;
|
193 |
-
}
|
194 |
-
|
195 |
-
/**
|
196 |
-
* @param $actual_license_data
|
197 |
-
*/
|
198 |
-
/*public function sync( $actual_license_data ) {
|
199 |
-
$props = get_object_vars( $this );
|
200 |
|
201 |
-
|
202 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
}
|
204 |
-
|
205 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
}
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
*/
|
217 |
-
public function is_single_site() {
|
218 |
-
return ( is_numeric( $this->quota ) && 1 == $this->quota );
|
219 |
-
}
|
220 |
-
|
221 |
-
/**
|
222 |
-
* @author Vova Feldman (@svovaf)
|
223 |
-
* @since 1.0.5
|
224 |
-
*
|
225 |
-
* @return bool
|
226 |
-
*/
|
227 |
-
public function is_expired() {
|
228 |
-
return ! $this->is_lifetime() && ( strtotime( $this->expiration ) < date( 'U' ) );
|
229 |
-
}
|
230 |
-
|
231 |
-
/**
|
232 |
-
* Check if license is not expired.
|
233 |
-
*
|
234 |
-
* @author Vova Feldman (@svovaf)
|
235 |
-
* @since 1.2.1
|
236 |
-
*
|
237 |
-
* @return bool
|
238 |
-
*/
|
239 |
-
public function is_valid() {
|
240 |
-
return ! $this->is_expired();
|
241 |
-
}
|
242 |
-
|
243 |
-
/**
|
244 |
-
* @author Vova Feldman (@svovaf)
|
245 |
-
* @since 1.0.6
|
246 |
-
*
|
247 |
-
* @return bool
|
248 |
-
*/
|
249 |
-
public function is_lifetime() {
|
250 |
-
return is_null( $this->expiration );
|
251 |
-
}
|
252 |
-
|
253 |
-
/**
|
254 |
-
* @author Vova Feldman (@svovaf)
|
255 |
-
* @since 1.2.0
|
256 |
-
*
|
257 |
-
* @return bool
|
258 |
-
*/
|
259 |
-
public function is_unlimited() {
|
260 |
-
return is_null( $this->quota );
|
261 |
-
}
|
262 |
-
|
263 |
-
/**
|
264 |
-
* Check if license is fully utilized.
|
265 |
-
*
|
266 |
-
* @author Vova Feldman (@svovaf)
|
267 |
-
* @since 1.0.6
|
268 |
-
*
|
269 |
-
* @param bool|null $is_localhost
|
270 |
-
*
|
271 |
-
* @return bool
|
272 |
-
*/
|
273 |
-
public function is_utilized( $is_localhost = null ) {
|
274 |
-
if ( is_null( $is_localhost ) ) {
|
275 |
-
$is_localhost = false; // была WP_FS__IS_LOCALHOST_FOR_SERVER
|
276 |
}
|
277 |
-
|
278 |
-
|
279 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
280 |
}
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
return (
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
367 |
}
|
368 |
-
|
369 |
-
}
|
1 |
<?php
|
2 |
+
|
3 |
+
namespace WBCR\Factory_Freemius_113\Entities;
|
4 |
+
|
5 |
+
use stdClass;
|
6 |
+
|
7 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
8 |
+
exit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
}
|
10 |
+
|
11 |
/**
|
12 |
+
* @author Webcraftic <wordpress.webraftic@gmail.com>, Alex Kovalev <alex.kovalevv@gmail.com>
|
13 |
+
* @link https://webcraftic.com
|
14 |
+
* @copyright (c) 2018 Webraftic Ltd, Freemius, Inc.
|
15 |
+
* @version 1.0
|
16 |
*/
|
17 |
+
class License extends Entity implements \WBCR\Factory_425\Premium\Interfaces\License {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* @var number
|
21 |
+
*/
|
22 |
+
public $plugin_id;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @var number
|
26 |
+
*/
|
27 |
+
public $user_id;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @var number
|
31 |
+
*/
|
32 |
+
public $plan_id;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @var
|
36 |
+
*/
|
37 |
+
public $plan_title;
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @var
|
41 |
+
*/
|
42 |
+
public $billing_cycle;
|
43 |
+
|
44 |
+
/**
|
45 |
+
* @var number
|
46 |
+
*/
|
47 |
+
public $pricing_id;
|
48 |
+
|
49 |
+
/**
|
50 |
+
* @var int|null
|
51 |
+
*/
|
52 |
+
public $quota;
|
53 |
+
|
54 |
+
/**
|
55 |
+
* @var int
|
56 |
+
*/
|
57 |
+
public $activated;
|
58 |
+
|
59 |
+
/**
|
60 |
+
* @var int
|
61 |
+
*/
|
62 |
+
public $activated_local;
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @var string
|
66 |
+
*/
|
67 |
+
public $expiration;
|
68 |
+
|
69 |
+
/**
|
70 |
+
* @var string
|
71 |
+
*/
|
72 |
+
public $secret_key;
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
|
76 |
+
* license.
|
77 |
+
*/
|
78 |
+
public $is_free_localhost;
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @var bool $is_block_features Defaults to true. If false, don't block features after license expiry - only
|
82 |
+
* block updates and support.
|
83 |
+
*/
|
84 |
+
public $is_block_features;
|
85 |
+
|
86 |
+
/**
|
87 |
+
* @var bool
|
88 |
+
*/
|
89 |
+
public $is_cancelled;
|
90 |
+
|
91 |
+
/**
|
92 |
+
* @param stdClass|bool $license
|
93 |
+
*/
|
94 |
+
public function __construct( $license = false ) {
|
95 |
+
parent::__construct( $license );
|
96 |
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Get entity type.
|
100 |
+
*
|
101 |
+
* @return string
|
102 |
+
*/
|
103 |
+
public static function get_type() {
|
104 |
+
return 'license';
|
105 |
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* Example: #sk_f=>}-5vuHp$3*wPQHxd(AD3<);1&i
|
109 |
+
*
|
110 |
+
* @return string|null
|
111 |
+
*/
|
112 |
+
public function get_key() {
|
113 |
+
return $this->secret_key;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Example: #sk_f=>}-5vuHp$3******d(AD3<);1&i
|
118 |
+
*
|
119 |
+
* @return mixed
|
120 |
+
*/
|
121 |
+
public function get_hidden_key() {
|
122 |
+
return substr_replace( $this->get_key(), '******', 15, 6 );
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* @return string|null
|
127 |
+
*/
|
128 |
+
public function get_plan() {
|
129 |
+
return $this->plan_title;
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* @return integer|null
|
134 |
+
*/
|
135 |
+
public function get_plan_id() {
|
136 |
+
return $this->plan_id;
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* @return mixed
|
141 |
+
*/
|
142 |
+
public function get_billing_cycle() {
|
143 |
+
return $this->billing_cycle;
|
144 |
+
}
|
145 |
+
|
146 |
+
/**
|
147 |
+
* @return int
|
148 |
+
*/
|
149 |
+
public function get_sites_quota() {
|
150 |
+
return $this->quota;
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* @return int
|
155 |
+
*/
|
156 |
+
public function get_count_active_sites() {
|
157 |
+
return $this->activated;
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Check how many site activations left.
|
162 |
+
*
|
163 |
+
* @return int
|
164 |
+
* @since 1.0.5
|
165 |
+
*
|
166 |
+
* @author Vova Feldman (@svovaf)
|
167 |
+
*/
|
168 |
+
public function get_site_activations_left() {
|
169 |
+
if ( ! $this->is_active() || $this->is_expired() ) {
|
170 |
+
return 0;
|
171 |
+
}
|
172 |
+
|
173 |
+
if ( $this->is_unlimited() ) {
|
174 |
return 999;
|
175 |
}
|
176 |
+
|
177 |
+
return ( $this->quota - $this->activated - ( $this->is_free_localhost ? 0 : $this->activated_local ) );
|
|
|
|
|
|
|
|
|
|
|
178 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
179 |
|
180 |
+
/**
|
181 |
+
* @param string $format Return time in formats (time|days|date)
|
182 |
+
*
|
183 |
+
* @return float|int|string
|
184 |
+
*/
|
185 |
+
public function get_expiration_time( $format = 'time' ) {
|
186 |
+
if ( $format == 'days' ) {
|
187 |
+
if ( $this->is_lifetime() ) {
|
188 |
+
return 999;
|
189 |
+
}
|
190 |
+
|
191 |
+
$remaining = strtotime( $this->expiration ) - date( 'U' );
|
192 |
+
$days_remaining = floor( $remaining / 86400 );
|
193 |
+
|
194 |
+
return $days_remaining;
|
195 |
+
} else if ( $format == 'date' ) {
|
196 |
+
return date( 'Y-m-d', strtotime( $this->expiration ) );
|
197 |
+
}
|
198 |
+
|
199 |
+
return $this->expiration;
|
200 |
}
|
201 |
+
|
202 |
+
/**
|
203 |
+
* @param $actual_license_data
|
204 |
+
*/
|
205 |
+
/*public function sync( $actual_license_data ) {
|
206 |
+
$props = get_object_vars( $this );
|
207 |
+
|
208 |
+
foreach ( $props as $key => $def_value ) {
|
209 |
+
$this->{$key} = isset( $actual_license_data->{$key} ) ? $actual_license_data->{$key} : $def_value;
|
210 |
+
}
|
211 |
+
if ( isset( $actual_license_data->expiration ) and is_null( $actual_license_data->expiration ) ) {
|
212 |
+
$this->expiration = null;
|
213 |
+
}
|
214 |
+
}*/
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Check if single site license.
|
218 |
+
*
|
219 |
+
* @return bool
|
220 |
+
* @since 1.1.8.1
|
221 |
+
*
|
222 |
+
* @author Vova Feldman (@svovaf)
|
223 |
+
*/
|
224 |
+
public function is_single_site() {
|
225 |
+
return ( is_numeric( $this->quota ) && 1 == $this->quota );
|
226 |
}
|
227 |
+
|
228 |
+
/**
|
229 |
+
* @return bool
|
230 |
+
* @since 1.0.5
|
231 |
+
*
|
232 |
+
* @author Vova Feldman (@svovaf)
|
233 |
+
*/
|
234 |
+
public function is_expired() {
|
235 |
+
return ! $this->is_lifetime() && ( strtotime( $this->expiration ) < date( 'U' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* Check if license is not expired.
|
240 |
+
*
|
241 |
+
* @return bool
|
242 |
+
* @since 1.2.1
|
243 |
+
*
|
244 |
+
* @author Vova Feldman (@svovaf)
|
245 |
+
*/
|
246 |
+
public function is_valid() {
|
247 |
+
return ! $this->is_expired();
|
248 |
}
|
249 |
+
|
250 |
+
/**
|
251 |
+
* @return bool
|
252 |
+
* @since 1.0.6
|
253 |
+
*
|
254 |
+
* @author Vova Feldman (@svovaf)
|
255 |
+
*/
|
256 |
+
public function is_lifetime() {
|
257 |
+
return is_null( $this->expiration );
|
258 |
+
}
|
259 |
+
|
260 |
+
/**
|
261 |
+
* @return bool
|
262 |
+
* @since 1.2.0
|
263 |
+
*
|
264 |
+
* @author Vova Feldman (@svovaf)
|
265 |
+
*/
|
266 |
+
public function is_unlimited() {
|
267 |
+
return is_null( $this->quota );
|
268 |
+
}
|
269 |
+
|
270 |
+
/**
|
271 |
+
* Check if license is fully utilized.
|
272 |
+
*
|
273 |
+
* @param bool|null $is_localhost
|
274 |
+
*
|
275 |
+
* @return bool
|
276 |
+
* @author Vova Feldman (@svovaf)
|
277 |
+
* @since 1.0.6
|
278 |
+
*
|
279 |
+
*/
|
280 |
+
public function is_utilized( $is_localhost = null ) {
|
281 |
+
if ( is_null( $is_localhost ) ) {
|
282 |
+
$is_localhost = false; // была WP_FS__IS_LOCALHOST_FOR_SERVER
|
283 |
+
}
|
284 |
+
|
285 |
+
if ( $this->is_unlimited() ) {
|
286 |
+
return false;
|
287 |
+
}
|
288 |
+
|
289 |
+
return ! ( $this->is_free_localhost && $is_localhost ) && ( $this->quota <= $this->activated + ( $this->is_free_localhost ? 0 : $this->activated_local ) );
|
290 |
+
}
|
291 |
+
|
292 |
+
/**
|
293 |
+
* Check if license can be activated.
|
294 |
+
*
|
295 |
+
* @param bool|null $is_localhost
|
296 |
+
*
|
297 |
+
* @return bool
|
298 |
+
* @author Vova Feldman (@svovaf)
|
299 |
+
* @since 2.0.0
|
300 |
+
*
|
301 |
+
*/
|
302 |
+
public function can_activate( $is_localhost = null ) {
|
303 |
+
return ! $this->is_utilized( $is_localhost ) && $this->is_features_enabled();
|
304 |
+
}
|
305 |
+
|
306 |
+
/**
|
307 |
+
* Check if license can be activated on a given number of production and localhost sites.
|
308 |
+
*
|
309 |
+
* @param int $production_count
|
310 |
+
* @param int $localhost_count
|
311 |
+
*
|
312 |
+
* @return bool
|
313 |
+
* @since 2.0.0
|
314 |
+
*
|
315 |
+
* @author Vova Feldman (@svovaf)
|
316 |
+
*/
|
317 |
+
//public function can_activate_bulk( $production_count, $localhost_count ) {
|
318 |
+
//if ( $this->is_unlimited() ) {
|
319 |
+
//return true;
|
320 |
+
//}
|
321 |
+
|
322 |
+
/**
|
323 |
+
* For simplicity, the logic will work as following: when given X sites to activate the license on, if it's
|
324 |
+
* possible to activate on ALL of them, do the activation. If it's not possible to activate on ALL of them,
|
325 |
+
* do NOT activate on any of them.
|
326 |
+
*/
|
327 |
+
//return ( $this->quota >= $this->activated + $production_count + ( $this->is_free_localhost ? 0 : $this->activated_local + $localhost_count ) );
|
328 |
+
//}
|
329 |
+
|
330 |
+
/**
|
331 |
+
* @return bool
|
332 |
+
* @since 1.2.1
|
333 |
+
*
|
334 |
+
* @author Vova Feldman (@svovaf)
|
335 |
+
*/
|
336 |
+
public function is_active() {
|
337 |
+
return ( ! $this->is_cancelled );
|
338 |
+
}
|
339 |
+
|
340 |
+
/**
|
341 |
+
* Check if license's plan features are enabled.
|
342 |
+
*
|
343 |
+
* - Either if plan not expired
|
344 |
+
* - If expired, based on the configuration to block features or not.
|
345 |
+
*
|
346 |
+
* @return bool
|
347 |
+
* @since 1.0.6
|
348 |
+
*
|
349 |
+
* @author Vova Feldman (@svovaf)
|
350 |
+
*/
|
351 |
+
public function is_features_enabled() {
|
352 |
+
return $this->is_active() && ( ! $this->is_block_features || ! $this->is_expired() );
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Subscription considered to be new without any payments
|
357 |
+
* if the license expires in less than 24 hours
|
358 |
+
* from the license creation.
|
359 |
+
*
|
360 |
+
* @return bool
|
361 |
+
* @since 1.0.9
|
362 |
+
*
|
363 |
+
* @author Vova Feldman (@svovaf)
|
364 |
+
*/
|
365 |
+
public function is_first_payment_pending() {
|
366 |
+
return ( 86400 >= strtotime( $this->expiration ) - strtotime( $this->created ) );
|
367 |
+
}
|
368 |
+
|
369 |
+
/**
|
370 |
+
* @return int
|
371 |
+
*/
|
372 |
+
public function total_activations() {
|
373 |
+
return ( $this->activated + $this->activated_local );
|
374 |
+
}
|
375 |
+
|
376 |
}
|
|
|
|
libs/factory/freemius/includes/entities/class-freemius-plugin.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use stdClass;
|
6 |
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Freemius_113\Entities;
|
4 |
|
5 |
use stdClass;
|
6 |
|
libs/factory/freemius/includes/entities/class-freemius-scope.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use stdClass;
|
6 |
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Freemius_113\Entities;
|
4 |
|
5 |
use stdClass;
|
6 |
|
libs/factory/freemius/includes/entities/class-freemius-site.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
use stdClass;
|
6 |
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Freemius_113\Entities;
|
4 |
|
5 |
use stdClass;
|
6 |
|
libs/factory/freemius/includes/entities/class-freemius-user.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
if ( ! defined( 'ABSPATH' ) ) {
|
6 |
exit;
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Freemius_113\Entities;
|
4 |
|
5 |
if ( ! defined( 'ABSPATH' ) ) {
|
6 |
exit;
|
libs/factory/freemius/includes/licensing/class-freemius-provider.php
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
-
|
5 |
-
use WBCR\
|
6 |
-
use WBCR\
|
7 |
-
use WBCR\
|
8 |
-
use WBCR\
|
9 |
-
use WBCR\
|
10 |
-
use
|
11 |
-
use WBCR\
|
12 |
use WP_Error;
|
13 |
use Exception;
|
14 |
|
@@ -40,17 +40,17 @@ final class Provider extends License_Provider {
|
|
40 |
private $slug;
|
41 |
|
42 |
/**
|
43 |
-
* @var \WBCR\
|
44 |
*/
|
45 |
private $site_api;
|
46 |
|
47 |
/**
|
48 |
-
* @var \WBCR\
|
49 |
*/
|
50 |
private $plugin_api;
|
51 |
|
52 |
/**
|
53 |
-
* @var \WBCR\
|
54 |
*/
|
55 |
private $user_api;
|
56 |
|
@@ -82,11 +82,11 @@ final class Provider extends License_Provider {
|
|
82 |
/**
|
83 |
* Manager constructor.
|
84 |
*
|
85 |
-
* @param
|
86 |
*
|
87 |
* @throws Exception
|
88 |
*/
|
89 |
-
public function __construct(
|
90 |
parent::__construct( $plugin, $settings );
|
91 |
|
92 |
$this->plugin_id = $this->get_setting( 'plugin_id', null );
|
@@ -145,7 +145,7 @@ final class Provider extends License_Provider {
|
|
145 |
}
|
146 |
|
147 |
/**
|
148 |
-
* @return \WBCR\
|
149 |
* @throws Exception
|
150 |
*/
|
151 |
public function get_license() {
|
@@ -589,7 +589,7 @@ final class Provider extends License_Provider {
|
|
589 |
/**
|
590 |
* @param bool $flush
|
591 |
*
|
592 |
-
* @return \WBCR\
|
593 |
* @throws Exception
|
594 |
*/
|
595 |
private function get_api_user_scope( User $user, $flush = false ) {
|
@@ -603,7 +603,7 @@ final class Provider extends License_Provider {
|
|
603 |
/**
|
604 |
* @param bool $flush
|
605 |
*
|
606 |
-
* @return \WBCR\
|
607 |
* @throws Exception
|
608 |
*/
|
609 |
private function get_api_site_scope( Site $site, $flush = false ) {
|
@@ -617,7 +617,7 @@ final class Provider extends License_Provider {
|
|
617 |
/**
|
618 |
* Get plugin public API scope.
|
619 |
*
|
620 |
-
* @return \WBCR\
|
621 |
* @throws Exception
|
622 |
*/
|
623 |
private function get_api_plugin_scope() {
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Freemius_113\Premium;
|
4 |
+
|
5 |
+
use WBCR\Factory_Freemius_113\Entities\License;
|
6 |
+
use WBCR\Factory_Freemius_113\Entities\Plugin;
|
7 |
+
use WBCR\Factory_Freemius_113\Entities\Site;
|
8 |
+
use WBCR\Factory_Freemius_113\Entities\User;
|
9 |
+
use WBCR\Factory_425\Premium\Provider as License_Provider;
|
10 |
+
use Wbcr_Factory425_Plugin;
|
11 |
+
use WBCR\Factory_Freemius_113\Api;
|
12 |
use WP_Error;
|
13 |
use Exception;
|
14 |
|
40 |
private $slug;
|
41 |
|
42 |
/**
|
43 |
+
* @var \WBCR\Factory_Freemius_113\Api
|
44 |
*/
|
45 |
private $site_api;
|
46 |
|
47 |
/**
|
48 |
+
* @var \WBCR\Factory_Freemius_113\Api
|
49 |
*/
|
50 |
private $plugin_api;
|
51 |
|
52 |
/**
|
53 |
+
* @var \WBCR\Factory_Freemius_113\Api
|
54 |
*/
|
55 |
private $user_api;
|
56 |
|
82 |
/**
|
83 |
* Manager constructor.
|
84 |
*
|
85 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
86 |
*
|
87 |
* @throws Exception
|
88 |
*/
|
89 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin, array $settings ) {
|
90 |
parent::__construct( $plugin, $settings );
|
91 |
|
92 |
$this->plugin_id = $this->get_setting( 'plugin_id', null );
|
145 |
}
|
146 |
|
147 |
/**
|
148 |
+
* @return \WBCR\Factory_Freemius_113\Entities\License|null
|
149 |
* @throws Exception
|
150 |
*/
|
151 |
public function get_license() {
|
589 |
/**
|
590 |
* @param bool $flush
|
591 |
*
|
592 |
+
* @return \WBCR\Factory_Freemius_113\Api
|
593 |
* @throws Exception
|
594 |
*/
|
595 |
private function get_api_user_scope( User $user, $flush = false ) {
|
603 |
/**
|
604 |
* @param bool $flush
|
605 |
*
|
606 |
+
* @return \WBCR\Factory_Freemius_113\Api
|
607 |
* @throws Exception
|
608 |
*/
|
609 |
private function get_api_site_scope( Site $site, $flush = false ) {
|
617 |
/**
|
618 |
* Get plugin public API scope.
|
619 |
*
|
620 |
+
* @return \WBCR\Factory_Freemius_113\Api
|
621 |
* @throws Exception
|
622 |
*/
|
623 |
private function get_api_plugin_scope() {
|
libs/factory/freemius/includes/updates/class-freemius-repository.php
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
use Exception;
|
7 |
-
use
|
8 |
-
use WBCR\
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) {
|
11 |
exit;
|
@@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
20 |
class Freemius_Repository extends Repository {
|
21 |
|
22 |
/**
|
23 |
-
* @var \WBCR\
|
24 |
*/
|
25 |
private $premium;
|
26 |
|
@@ -28,11 +28,11 @@ class Freemius_Repository extends Repository {
|
|
28 |
* Freemius constructor.
|
29 |
* @since 4.0.0
|
30 |
*
|
31 |
-
* @param
|
32 |
*
|
33 |
* @throws Exception
|
34 |
*/
|
35 |
-
public function __construct(
|
36 |
$this->plugin = $plugin;
|
37 |
$this->premium = $this->plugin->premium;
|
38 |
}
|
@@ -41,7 +41,7 @@ class Freemius_Repository extends Repository {
|
|
41 |
* @throws Exception
|
42 |
*/
|
43 |
public function init() {
|
44 |
-
if ( ! $this->premium instanceof \WBCR\
|
45 |
throw new Exception( "This repository type requires Freemius premium provider." );
|
46 |
}
|
47 |
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Freemius_113\Updates;
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
use Exception;
|
7 |
+
use Wbcr_Factory425_Plugin;
|
8 |
+
use WBCR\Factory_425\Updates\Repository;
|
9 |
|
10 |
if ( ! defined( 'ABSPATH' ) ) {
|
11 |
exit;
|
20 |
class Freemius_Repository extends Repository {
|
21 |
|
22 |
/**
|
23 |
+
* @var \WBCR\Factory_Freemius_113\Premium\Provider
|
24 |
*/
|
25 |
private $premium;
|
26 |
|
28 |
* Freemius constructor.
|
29 |
* @since 4.0.0
|
30 |
*
|
31 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
32 |
*
|
33 |
* @throws Exception
|
34 |
*/
|
35 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
36 |
$this->plugin = $plugin;
|
37 |
$this->premium = $this->plugin->premium;
|
38 |
}
|
41 |
* @throws Exception
|
42 |
*/
|
43 |
public function init() {
|
44 |
+
if ( ! $this->premium instanceof \WBCR\Factory_Freemius_113\Premium\Provider ) {
|
45 |
throw new Exception( "This repository type requires Freemius premium provider." );
|
46 |
}
|
47 |
|
libs/factory/pages/boot.php
CHANGED
@@ -19,25 +19,25 @@ if ( ! is_admin() ) {
|
|
19 |
return;
|
20 |
}
|
21 |
|
22 |
-
if ( defined( '
|
23 |
return;
|
24 |
}
|
25 |
|
26 |
-
define( '
|
27 |
|
28 |
-
define( '
|
29 |
|
30 |
-
define( '
|
31 |
-
define( '
|
32 |
|
33 |
if ( ! defined( 'FACTORY_FLAT_ADMIN' ) ) {
|
34 |
define( 'FACTORY_FLAT_ADMIN', true );
|
35 |
}
|
36 |
|
37 |
-
load_plugin_textdomain( '
|
38 |
|
39 |
-
require(
|
40 |
-
require(
|
41 |
-
require(
|
42 |
-
require(
|
43 |
|
19 |
return;
|
20 |
}
|
21 |
|
22 |
+
if ( defined( 'FACTORY_PAGES_425_LOADED' ) ) {
|
23 |
return;
|
24 |
}
|
25 |
|
26 |
+
define( 'FACTORY_PAGES_425_LOADED', true );
|
27 |
|
28 |
+
define( 'FACTORY_PAGES_425_VERSION', '4.2.5' );
|
29 |
|
30 |
+
define( 'FACTORY_PAGES_425_DIR', dirname( __FILE__ ) );
|
31 |
+
define( 'FACTORY_PAGES_425_URL', plugins_url( null, __FILE__ ) );
|
32 |
|
33 |
if ( ! defined( 'FACTORY_FLAT_ADMIN' ) ) {
|
34 |
define( 'FACTORY_FLAT_ADMIN', true );
|
35 |
}
|
36 |
|
37 |
+
load_plugin_textdomain( 'wbcr_factory_pages_425', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
|
38 |
|
39 |
+
require( FACTORY_PAGES_425_DIR . '/pages.php' );
|
40 |
+
require( FACTORY_PAGES_425_DIR . '/includes/page.class.php' );
|
41 |
+
require( FACTORY_PAGES_425_DIR . '/includes/admin-page.class.php' );
|
42 |
+
require( FACTORY_PAGES_425_DIR . '/templates/impressive-page.class.php' );
|
43 |
|
libs/factory/pages/includes/admin-page.class.php
CHANGED
@@ -14,9 +14,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if ( ! class_exists( '
|
18 |
|
19 |
-
class
|
20 |
|
21 |
/**
|
22 |
* Visible page title.
|
@@ -209,7 +209,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_AdminPage' ) ) {
|
|
209 |
*/
|
210 |
public $add_link_to_plugin_actions = false;
|
211 |
|
212 |
-
public function __construct(
|
213 |
parent::__construct( $plugin );
|
214 |
$this->configure();
|
215 |
|
@@ -316,13 +316,13 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_AdminPage' ) ) {
|
|
316 |
public function connect() {
|
317 |
$result_id = $this->getResultId();
|
318 |
|
319 |
-
$this->hidden = apply_filters( '
|
320 |
|
321 |
if ( $this->hidden ) {
|
322 |
return;
|
323 |
}
|
324 |
|
325 |
-
$this->internal = apply_filters( '
|
326 |
|
327 |
if ( $this->internal ) {
|
328 |
$this->menu_target = null;
|
@@ -361,7 +361,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_AdminPage' ) ) {
|
|
361 |
$this->assets( $this->scripts, $this->styles );
|
362 |
|
363 |
if ( ! $this->scripts->isEmpty( 'bootstrap' ) || ! $this->styles->isEmpty( 'bootstrap' ) ) {
|
364 |
-
add_action( '
|
365 |
$this,
|
366 |
'actionAdminBootstrapScripts'
|
367 |
] );
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if ( ! class_exists( 'Wbcr_FactoryPages425_AdminPage' ) ) {
|
18 |
|
19 |
+
class Wbcr_FactoryPages425_AdminPage extends Wbcr_FactoryPages425_Page {
|
20 |
|
21 |
/**
|
22 |
* Visible page title.
|
209 |
*/
|
210 |
public $add_link_to_plugin_actions = false;
|
211 |
|
212 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
213 |
parent::__construct( $plugin );
|
214 |
$this->configure();
|
215 |
|
316 |
public function connect() {
|
317 |
$result_id = $this->getResultId();
|
318 |
|
319 |
+
$this->hidden = apply_filters( 'wbcr_factory_425_page_is_hidden_' . $result_id, $this->hidden );
|
320 |
|
321 |
if ( $this->hidden ) {
|
322 |
return;
|
323 |
}
|
324 |
|
325 |
+
$this->internal = apply_filters( 'wbcr_factory_425_page_is_internal_' . $result_id, $this->internal );
|
326 |
|
327 |
if ( $this->internal ) {
|
328 |
$this->menu_target = null;
|
361 |
$this->assets( $this->scripts, $this->styles );
|
362 |
|
363 |
if ( ! $this->scripts->isEmpty( 'bootstrap' ) || ! $this->styles->isEmpty( 'bootstrap' ) ) {
|
364 |
+
add_action( 'wbcr_factory_425_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), [
|
365 |
$this,
|
366 |
'actionAdminBootstrapScripts'
|
367 |
] );
|
libs/factory/pages/includes/page.class.php
CHANGED
@@ -14,9 +14,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if ( ! class_exists( '
|
18 |
|
19 |
-
class
|
20 |
|
21 |
|
22 |
/**
|
@@ -30,7 +30,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_Page' ) ) {
|
|
30 |
* Чтобы не было конфликтов с другими плагинами, используйте префиксы.
|
31 |
*
|
32 |
* @since 1.0.0
|
33 |
-
* @see
|
34 |
*
|
35 |
* @var string
|
36 |
*/
|
@@ -39,7 +39,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_Page' ) ) {
|
|
39 |
/**
|
40 |
* Current Factory Plugin.
|
41 |
*
|
42 |
-
* @var
|
43 |
*/
|
44 |
public $plugin;
|
45 |
|
@@ -51,11 +51,11 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_Page' ) ) {
|
|
51 |
//private $default_actions = array();
|
52 |
|
53 |
/**
|
54 |
-
* @param
|
55 |
*
|
56 |
* @throws Exception
|
57 |
*/
|
58 |
-
public function __construct(
|
59 |
$this->plugin = $plugin;
|
60 |
|
61 |
if ( $plugin ) {
|
@@ -111,7 +111,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_Page' ) ) {
|
|
111 |
|
112 |
if ( ! method_exists( $this, $actionFunction ) ) {
|
113 |
// todo: продумать и доработать выполнение произвольных и глобальных дейтсвия для всех страниц
|
114 |
-
/*$custom_actions = apply_filters('wbcr/
|
115 |
|
116 |
if(isset($custom_actions[$raw_action_name])) {
|
117 |
$custom_actions[$raw_action_name]();
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if ( ! class_exists( 'Wbcr_FactoryPages425_Page' ) ) {
|
18 |
|
19 |
+
class Wbcr_FactoryPages425_Page {
|
20 |
|
21 |
|
22 |
/**
|
30 |
* Чтобы не было конфликтов с другими плагинами, используйте префиксы.
|
31 |
*
|
32 |
* @since 1.0.0
|
33 |
+
* @see FactoryPages425_AdminPage
|
34 |
*
|
35 |
* @var string
|
36 |
*/
|
39 |
/**
|
40 |
* Current Factory Plugin.
|
41 |
*
|
42 |
+
* @var Wbcr_Factory425_Plugin
|
43 |
*/
|
44 |
public $plugin;
|
45 |
|
51 |
//private $default_actions = array();
|
52 |
|
53 |
/**
|
54 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
55 |
*
|
56 |
* @throws Exception
|
57 |
*/
|
58 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
59 |
$this->plugin = $plugin;
|
60 |
|
61 |
if ( $plugin ) {
|
111 |
|
112 |
if ( ! method_exists( $this, $actionFunction ) ) {
|
113 |
// todo: продумать и доработать выполнение произвольных и глобальных дейтсвия для всех страниц
|
114 |
+
/*$custom_actions = apply_filters('wbcr/factory_pages_425/custom_actions', array(), $raw_action_name);
|
115 |
|
116 |
if(isset($custom_actions[$raw_action_name])) {
|
117 |
$custom_actions[$raw_action_name]();
|
libs/factory/pages/langs/{wbcr_factory_pages_424-fr_FR.mo → wbcr_factory_pages_425-fr_FR.mo}
RENAMED
File without changes
|
libs/factory/pages/langs/{wbcr_factory_pages_424-fr_FR.po → wbcr_factory_pages_425-fr_FR.po}
RENAMED
File without changes
|
libs/factory/pages/langs/{wbcr_factory_pages_424-ru_RU.mo → wbcr_factory_pages_425-ru_RU.mo}
RENAMED
File without changes
|
libs/factory/pages/langs/{wbcr_factory_pages_424-ru_RU.po → wbcr_factory_pages_425-ru_RU.po}
RENAMED
File without changes
|
libs/factory/pages/pages.php
CHANGED
@@ -14,24 +14,24 @@
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
add_action('admin_menu', '
|
18 |
-
add_action('network_admin_menu', '
|
19 |
|
20 |
-
if( !class_exists('
|
21 |
/**
|
22 |
* A base class to manage pages.
|
23 |
*
|
24 |
* @since 1.0.0
|
25 |
*/
|
26 |
-
class
|
27 |
|
28 |
/**
|
29 |
-
* @var
|
30 |
*/
|
31 |
private static $pages = array();
|
32 |
|
33 |
/**
|
34 |
-
* @param
|
35 |
* @param $class_name
|
36 |
*/
|
37 |
public static function register($plugin, $class_name)
|
@@ -59,7 +59,7 @@
|
|
59 |
}
|
60 |
}
|
61 |
|
62 |
-
public static function getPageUrl(
|
63 |
{
|
64 |
if( isset(self::$pages[$plugin->getPluginName()]) ) {
|
65 |
$pages = self::$pages[$plugin->getPluginName()];
|
@@ -75,7 +75,7 @@
|
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
-
* @param
|
79 |
* @return array
|
80 |
*/
|
81 |
public static function getIds($plugin)
|
@@ -93,14 +93,14 @@
|
|
93 |
}
|
94 |
}
|
95 |
|
96 |
-
if( !function_exists('
|
97 |
/**
|
98 |
*
|
99 |
-
* @param
|
100 |
* @param string $page_id
|
101 |
* @return string
|
102 |
*/
|
103 |
-
function
|
104 |
{
|
105 |
return $page_id . '-' . $plugin->getPluginName();
|
106 |
}
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
add_action('admin_menu', 'Wbcr_FactoryPages425::actionAdminMenu');
|
18 |
+
add_action('network_admin_menu', 'Wbcr_FactoryPages425::actionAdminMenu');
|
19 |
|
20 |
+
if( !class_exists('Wbcr_FactoryPages425') ) {
|
21 |
/**
|
22 |
* A base class to manage pages.
|
23 |
*
|
24 |
* @since 1.0.0
|
25 |
*/
|
26 |
+
class Wbcr_FactoryPages425 {
|
27 |
|
28 |
/**
|
29 |
+
* @var Wbcr_FactoryPages425_Page[]
|
30 |
*/
|
31 |
private static $pages = array();
|
32 |
|
33 |
/**
|
34 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
35 |
* @param $class_name
|
36 |
*/
|
37 |
public static function register($plugin, $class_name)
|
59 |
}
|
60 |
}
|
61 |
|
62 |
+
public static function getPageUrl(Wbcr_Factory425_Plugin $plugin, $page_id, $args = array())
|
63 |
{
|
64 |
if( isset(self::$pages[$plugin->getPluginName()]) ) {
|
65 |
$pages = self::$pages[$plugin->getPluginName()];
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
79 |
* @return array
|
80 |
*/
|
81 |
public static function getIds($plugin)
|
93 |
}
|
94 |
}
|
95 |
|
96 |
+
if( !function_exists('wbcr_factory_pages_425_get_page_id') ) {
|
97 |
/**
|
98 |
*
|
99 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
100 |
* @param string $page_id
|
101 |
* @return string
|
102 |
*/
|
103 |
+
function wbcr_factory_pages_425_get_page_id($plugin, $page_id)
|
104 |
{
|
105 |
return $page_id . '-' . $plugin->getPluginName();
|
106 |
}
|
libs/factory/pages/templates/assets/css/impressive.page.template.css
CHANGED
@@ -1,508 +1,508 @@
|
|
1 |
-
/**
|
2 |
-
* General styles
|
3 |
-
* @author Alex Kovalev <alex.kovalevv@gmail.com>
|
4 |
-
* @copyright Alex Kovalev 23.08.2017
|
5 |
-
*/
|
6 |
-
#WBCR .updated,
|
7 |
-
#WBCR .notice,
|
8 |
-
#WBCR .error {
|
9 |
-
display: none !important;
|
10 |
-
}
|
11 |
-
#WBCR .wbcr-factory-pages-
|
12 |
-
position: relative;
|
13 |
-
/**
|
14 |
-
Content sections
|
15 |
-
*/
|
16 |
-
/**
|
17 |
-
Widget in the sidebar of the plugin
|
18 |
-
*/
|
19 |
-
}
|
20 |
-
#WBCR .wbcr-factory-pages-
|
21 |
-
color: #9a9a9a;
|
22 |
-
}
|
23 |
-
#WBCR .wbcr-factory-pages-
|
24 |
-
color: #ffc107;
|
25 |
-
}
|
26 |
-
#WBCR .wbcr-factory-pages-
|
27 |
-
color: #ffeb3b;
|
28 |
-
}
|
29 |
-
#WBCR .wbcr-factory-pages-
|
30 |
-
padding: 0 20px;
|
31 |
-
}
|
32 |
-
#WBCR .wbcr-factory-pages-
|
33 |
-
font-weight: normal;
|
34 |
-
}
|
35 |
-
#WBCR .wbcr-factory-pages-
|
36 |
-
max-width: 300px;
|
37 |
-
}
|
38 |
-
#WBCR .wbcr-factory-pages-
|
39 |
-
text-align: right;
|
40 |
-
padding-right: 20px;
|
41 |
-
}
|
42 |
-
#WBCR .wbcr-factory-pages-
|
43 |
-
display: inline-block;
|
44 |
-
vertical-align: bottom;
|
45 |
-
}
|
46 |
-
#WBCR .wbcr-factory-pages-
|
47 |
-
#WBCR .wbcr-factory-pages-
|
48 |
-
outline: none;
|
49 |
-
}
|
50 |
-
#WBCR .wbcr-factory-pages-
|
51 |
-
font-weight: bold;
|
52 |
-
margin: 0 !important;
|
53 |
-
border: 0;
|
54 |
-
border-radius: 0;
|
55 |
-
padding: 15px;
|
56 |
-
}
|
57 |
-
#WBCR .wbcr-factory-pages-
|
58 |
-
margin-top: 0 !important;
|
59 |
-
}
|
60 |
-
#WBCR .wbcr-factory-pages-
|
61 |
-
background: #fff3d0;
|
62 |
-
}
|
63 |
-
#WBCR .wbcr-factory-pages-
|
64 |
-
background: #fffde9;
|
65 |
-
}
|
66 |
-
#WBCR .wbcr-factory-pages-
|
67 |
-
background: #de716d;
|
68 |
-
}
|
69 |
-
#WBCR .wbcr-factory-pages-
|
70 |
-
background: #ec8c89;
|
71 |
-
}
|
72 |
-
#WBCR .wbcr-factory-pages-
|
73 |
-
background: #d0ecc4;
|
74 |
-
}
|
75 |
-
#WBCR .wbcr-factory-pages-
|
76 |
-
background: #e0eadb;
|
77 |
-
}
|
78 |
-
#WBCR .wbcr-factory-pages-
|
79 |
-
padding: 20px 20px 40px;
|
80 |
-
}
|
81 |
-
#WBCR .wbcr-factory-pages-
|
82 |
-
display: block;
|
83 |
-
font-size: 11px;
|
84 |
-
font-weight: lighter;
|
85 |
-
color: #179347;
|
86 |
-
}
|
87 |
-
#WBCR .wbcr-factory-pages-
|
88 |
-
#WBCR .wbcr-factory-pages-
|
89 |
-
position: relative;
|
90 |
-
background: #e6e6e6;
|
91 |
-
overflow: hidden;
|
92 |
-
}
|
93 |
-
#WBCR .wbcr-factory-pages-
|
94 |
-
#WBCR .wbcr-factory-pages-
|
95 |
-
display: block;
|
96 |
-
content: '';
|
97 |
-
clear: both;
|
98 |
-
}
|
99 |
-
#WBCR .wbcr-factory-pages-
|
100 |
-
background: #efefef;
|
101 |
-
padding: 20px 0 10px 20px;
|
102 |
-
margin: 30px 0;
|
103 |
-
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
|
104 |
-
}
|
105 |
-
#WBCR .wbcr-factory-pages-
|
106 |
-
margin-top: 0;
|
107 |
-
}
|
108 |
-
#WBCR .wbcr-factory-pages-
|
109 |
-
font-size: 15px;
|
110 |
-
}
|
111 |
-
#WBCR .wbcr-factory-pages-
|
112 |
-
color: #8c8888;
|
113 |
-
font-size: 12px;
|
114 |
-
}
|
115 |
-
#WBCR .wbcr-factory-pages-
|
116 |
-
margin-left: 230px;
|
117 |
-
padding: 80px 0 0 0;
|
118 |
-
vertical-align: top;
|
119 |
-
background: #fff;
|
120 |
-
}
|
121 |
-
#WBCR .wbcr-factory-pages-
|
122 |
-
#WBCR .wbcr-factory-pages-
|
123 |
-
#WBCR .wbcr-factory-pages-
|
124 |
-
border: 0;
|
125 |
-
}
|
126 |
-
#WBCR .wbcr-factory-pages-
|
127 |
-
background: #efefef !important;
|
128 |
-
margin-bottom: -2px !important;
|
129 |
-
border-bottom: 1px solid #efefef !important;
|
130 |
-
}
|
131 |
-
#WBCR .wbcr-factory-pages-
|
132 |
-
margin: 0;
|
133 |
-
}
|
134 |
-
#WBCR .wbcr-factory-pages-
|
135 |
-
background: #f7f7f7;
|
136 |
-
}
|
137 |
-
#WBCR .wbcr-factory-pages-
|
138 |
-
border: 2px solid #dedede;
|
139 |
-
border-bottom: 0;
|
140 |
-
box-shadow: -1px 0 0 rgba(0, 0, 0, 0.1);
|
141 |
-
}
|
142 |
-
#WBCR .wbcr-factory-pages-
|
143 |
-
#WBCR .wbcr-factory-pages-
|
144 |
-
box-shadow: none;
|
145 |
-
outline: none;
|
146 |
-
}
|
147 |
-
#WBCR .wbcr-factory-pages-
|
148 |
-
position: absolute;
|
149 |
-
z-index: 13;
|
150 |
-
top: 0;
|
151 |
-
left: 0;
|
152 |
-
right: 0;
|
153 |
-
overflow: hidden;
|
154 |
-
background-color: #32373c;
|
155 |
-
color: #fff;
|
156 |
-
border-radius: 5px 5px 0 0;
|
157 |
-
}
|
158 |
-
#WBCR .wbcr-factory-pages-
|
159 |
-
float: left;
|
160 |
-
padding: 25px 0;
|
161 |
-
font-size: 20px;
|
162 |
-
line-height: 30px;
|
163 |
-
font-weight: 400;
|
164 |
-
text-align: center;
|
165 |
-
background-color: #464b50;
|
166 |
-
color: #ccc;
|
167 |
-
padding-left: 25px;
|
168 |
-
margin-right: 10px;
|
169 |
-
background: none;
|
170 |
-
}
|
171 |
-
#WBCR .wbcr-factory-pages-
|
172 |
-
display: inline-block;
|
173 |
-
vertical-align: middle;
|
174 |
-
}
|
175 |
-
#WBCR .wbcr-factory-pages-
|
176 |
-
font-size: 18px;
|
177 |
-
line-height: 30px;
|
178 |
-
font-weight: 300;
|
179 |
-
margin-top: 26px;
|
180 |
-
padding: 0 !important;
|
181 |
-
overflow: hidden;
|
182 |
-
white-space: nowrap;
|
183 |
-
text-overflow: ellipsis;
|
184 |
-
color: #fff;
|
185 |
-
}
|
186 |
-
#WBCR .wbcr-factory-pages-
|
187 |
-
position: relative;
|
188 |
-
float: right;
|
189 |
-
margin: 12px;
|
190 |
-
}
|
191 |
-
#WBCR .wbcr-factory-pages-
|
192 |
-
display: inline-block;
|
193 |
-
vertical-align: top;
|
194 |
-
font-size: 13px;
|
195 |
-
font-weight: 600;
|
196 |
-
line-height: 20px;
|
197 |
-
text-transform: uppercase;
|
198 |
-
margin: 10px 0 0;
|
199 |
-
padding: 8px 30px;
|
200 |
-
cursor: pointer;
|
201 |
-
position: relative;
|
202 |
-
overflow: hidden;
|
203 |
-
border: none;
|
204 |
-
border-radius: 50px;
|
205 |
-
box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.08) inset;
|
206 |
-
background-color: #f1f1f1;
|
207 |
-
color: inherit;
|
208 |
-
transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
|
209 |
-
text-align: center;
|
210 |
-
outline: none;
|
211 |
-
text-decoration: none;
|
212 |
-
z-index: 3;
|
213 |
-
}
|
214 |
-
#WBCR .wbcr-factory-pages-
|
215 |
-
box-shadow: none;
|
216 |
-
min-width: 100px;
|
217 |
-
background-color: #8bc34a;
|
218 |
-
color: #fff;
|
219 |
-
}
|
220 |
-
#WBCR .wbcr-factory-pages-
|
221 |
-
background: #9dbb7b;
|
222 |
-
color: #fff;
|
223 |
-
}
|
224 |
-
#WBCR .wbcr-factory-pages-
|
225 |
-
box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
|
226 |
-
}
|
227 |
-
#WBCR .wbcr-factory-pages-
|
228 |
-
box-shadow: none;
|
229 |
-
min-width: 200px;
|
230 |
-
background-color: #9e9e9e;
|
231 |
-
color: #fff;
|
232 |
-
}
|
233 |
-
#WBCR .wbcr-factory-pages-
|
234 |
-
background: #797979;
|
235 |
-
color: #fff;
|
236 |
-
}
|
237 |
-
#WBCR .wbcr-factory-pages-
|
238 |
-
box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
|
239 |
-
}
|
240 |
-
#WBCR .wbcr-factory-pages-
|
241 |
-
float: left;
|
242 |
-
vertical-align: top;
|
243 |
-
width: 230px;
|
244 |
-
background: #e6e6e6;
|
245 |
-
}
|
246 |
-
#WBCR .wbcr-factory-pages-
|
247 |
-
padding: 0;
|
248 |
-
margin-bottom: 0;
|
249 |
-
margin-top: 80px;
|
250 |
-
}
|
251 |
-
#WBCR .wbcr-factory-pages-
|
252 |
-
display: block;
|
253 |
-
background: #efefef;
|
254 |
-
margin: 1px 0;
|
255 |
-
}
|
256 |
-
#WBCR .wbcr-factory-pages-
|
257 |
-
display: block;
|
258 |
-
width: 100%;
|
259 |
-
padding: 20px 20px;
|
260 |
-
font-size: 12px;
|
261 |
-
color: #585858;
|
262 |
-
text-decoration: none;
|
263 |
-
text-transform: uppercase;
|
264 |
-
text-align: left;
|
265 |
-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
266 |
-
}
|
267 |
-
#WBCR .wbcr-factory-pages-
|
268 |
-
display: block;
|
269 |
-
font-weight: bold;
|
270 |
-
}
|
271 |
-
#WBCR .wbcr-factory-pages-
|
272 |
-
display: block;
|
273 |
-
font-size: 13px;
|
274 |
-
font-weight: normal;
|
275 |
-
text-transform: none;
|
276 |
-
color: #9a9a9a;
|
277 |
-
}
|
278 |
-
#WBCR .wbcr-factory-pages-
|
279 |
-
float: right;
|
280 |
-
color: #ccc;
|
281 |
-
}
|
282 |
-
#WBCR .wbcr-factory-pages-
|
283 |
-
clear: both;
|
284 |
-
}
|
285 |
-
#WBCR .wbcr-factory-pages-
|
286 |
-
background: #f7f6f6;
|
287 |
-
}
|
288 |
-
#WBCR .wbcr-factory-pages-
|
289 |
-
color: #9a9a9a;
|
290 |
-
}
|
291 |
-
#WBCR .wbcr-factory-pages-
|
292 |
-
#WBCR .wbcr-factory-pages-
|
293 |
-
#WBCR .wbcr-factory-pages-
|
294 |
-
#WBCR .wbcr-factory-pages-
|
295 |
-
#WBCR .wbcr-factory-pages-
|
296 |
-
outline: 0 !important;
|
297 |
-
box-shadow: none !important;
|
298 |
-
}
|
299 |
-
#WBCR .wbcr-factory-pages-
|
300 |
-
background: #fff;
|
301 |
-
}
|
302 |
-
#WBCR .wbcr-factory-pages-
|
303 |
-
color: #ff5722;
|
304 |
-
font-weight: bold;
|
305 |
-
border-left: 5px solid #ff5722;
|
306 |
-
}
|
307 |
-
#WBCR .wbcr-factory-pages-
|
308 |
-
color: #9a9a9a;
|
309 |
-
}
|
310 |
-
#WBCR .wbcr-factory-pages-
|
311 |
-
#WBCR .wbcr-factory-pages-
|
312 |
-
display: inline-block;
|
313 |
-
vertical-align: top;
|
314 |
-
}
|
315 |
-
#WBCR .wbcr-factory-pages-
|
316 |
-
width: 74.6%;
|
317 |
-
}
|
318 |
-
#WBCR .wbcr-factory-pages-
|
319 |
-
width: 100%;
|
320 |
-
}
|
321 |
-
#WBCR .wbcr-factory-pages-
|
322 |
-
margin-top: 15px;
|
323 |
-
}
|
324 |
-
#WBCR .wbcr-factory-pages-
|
325 |
-
background: #f7f7f7;
|
326 |
-
padding: 0 0 20px 0;
|
327 |
-
border: 1px solid #dad8d8;
|
328 |
-
box-shadow: -1px 0px 1px rgba(0, 0, 0, 0.1);
|
329 |
-
}
|
330 |
-
#WBCR .wbcr-factory-pages-
|
331 |
-
padding-top: 0 !important;
|
332 |
-
}
|
333 |
-
#WBCR .wbcr-factory-pages-
|
334 |
-
width: 25%;
|
335 |
-
padding: 10px;
|
336 |
-
margin: 0 0 -20px;
|
337 |
-
background-color: #f9f9f9;
|
338 |
-
box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.1);
|
339 |
-
}
|
340 |
-
#WBCR .wbcr-factory-pages-
|
341 |
-
margin: 0 0 20px;
|
342 |
-
}
|
343 |
-
#WBCR .wbcr-factory-pages-
|
344 |
-
display: inline-block;
|
345 |
-
min-height: 230px;
|
346 |
-
width: 100%;
|
347 |
-
margin-top: 20px;
|
348 |
-
background-color: #fff;
|
349 |
-
padding: 20px 15px;
|
350 |
-
vertical-align: top;
|
351 |
-
}
|
352 |
-
#WBCR .wbcr-factory-pages-
|
353 |
-
display: none;
|
354 |
-
}
|
355 |
-
#WBCR .wbcr-factory-pages-
|
356 |
-
background: #fff4d0;
|
357 |
-
}
|
358 |
-
#WBCR .wbcr-factory-pages-
|
359 |
-
background: #e2ffc0;
|
360 |
-
}
|
361 |
-
#WBCR .wbcr-factory-pages-
|
362 |
-
background: #ffebe9;
|
363 |
-
}
|
364 |
-
#WBCR .wbcr-factory-pages-
|
365 |
-
display: inline-block;
|
366 |
-
width: 16px;
|
367 |
-
height: 16px;
|
368 |
-
line-height: 13px;
|
369 |
-
padding: 0;
|
370 |
-
font-size: 11px;
|
371 |
-
text-align: center;
|
372 |
-
color: #fff;
|
373 |
-
background: #E91E63;
|
374 |
-
border-radius: 3px;
|
375 |
-
}
|
376 |
-
#WBCR .wbcr-factory-pages-
|
377 |
-
background: #E91E63;
|
378 |
-
}
|
379 |
-
#WBCR .wbcr-factory-pages-
|
380 |
-
background: #9e9e9e;
|
381 |
-
}
|
382 |
-
#WBCR .wbcr-factory-pages-
|
383 |
-
background: #8bc34a;
|
384 |
-
}
|
385 |
-
#WBCR .wbcr-factory-pages-
|
386 |
-
display: block;
|
387 |
-
width: 80px;
|
388 |
-
height: 17px;
|
389 |
-
background: url('../img/5-stars22.png') no-repeat;
|
390 |
-
vertical-align: middle;
|
391 |
-
margin-bottom: 5px;
|
392 |
-
}
|
393 |
-
#WBCR .wbcr-factory-pages-
|
394 |
-
display: block;
|
395 |
-
margin: 30px auto 0;
|
396 |
-
outline: none;
|
397 |
-
}
|
398 |
-
#WBCR .wbcr-factory-pages-
|
399 |
-
#WBCR .wbcr-factory-pages-
|
400 |
-
box-shadow: none;
|
401 |
-
}
|
402 |
-
#WBCR .wbcr-factory-pages-
|
403 |
-
font-size: 50px;
|
404 |
-
margin-top: 30px;
|
405 |
-
text-align: center;
|
406 |
-
font-weight: 600;
|
407 |
-
color: #8BC34A;
|
408 |
-
}
|
409 |
-
#WBCR .wbcr-factory-pages-
|
410 |
-
min-height: 240px;
|
411 |
-
margin-bottom: 20px;
|
412 |
-
text-align: center;
|
413 |
-
background: #fdfcf7;
|
414 |
-
padding: 30px;
|
415 |
-
border: 1px solid #f3f1e7;
|
416 |
-
}
|
417 |
-
#WBCR .wbcr-factory-pages-
|
418 |
-
width: 50px;
|
419 |
-
height: 50px;
|
420 |
-
font-size: 50px;
|
421 |
-
color: #FFC107;
|
422 |
-
line-height: normal;
|
423 |
-
}
|
424 |
-
#WBCR .wbcr-factory-pages-
|
425 |
-
color: #7b6111;
|
426 |
-
}
|
427 |
-
#WBCR .wbcr-factory-pages-
|
428 |
-
color: #9e9e9e;
|
429 |
-
}
|
430 |
-
#WBCR .wbcr-factory-pages-
|
431 |
-
margin-top: 20px;
|
432 |
-
text-align: center;
|
433 |
-
}
|
434 |
-
#WBCR .wbcr-factory-pages-
|
435 |
-
display: inline-block;
|
436 |
-
padding: 20px 60px;
|
437 |
-
background-color: #FFC107;
|
438 |
-
color: #866605;
|
439 |
-
text-decoration: none;
|
440 |
-
text-transform: uppercase;
|
441 |
-
font-weight: bold;
|
442 |
-
transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
|
443 |
-
}
|
444 |
-
#WBCR .wbcr-factory-pages-
|
445 |
-
background-color: #ffce3a;
|
446 |
-
}
|
447 |
-
#WBCR .wbcr-factory-pages-
|
448 |
-
padding: 20px;
|
449 |
-
background: #ffffff;
|
450 |
-
}
|
451 |
-
#WBCR .wbcr-factory-pages-
|
452 |
-
#WBCR .wbcr-factory-pages-
|
453 |
-
display: none;
|
454 |
-
}
|
455 |
-
#WBCR .wbcr-factory-pages-
|
456 |
-
font-size: 18px;
|
457 |
-
margin-top: 10px;
|
458 |
-
}
|
459 |
-
#WBCR .wbcr-factory-pages-
|
460 |
-
padding: 10px;
|
461 |
-
background: #ffedeb;
|
462 |
-
border: 1px solid #ffdfdc;
|
463 |
-
margin: 15px 0;
|
464 |
-
}
|
465 |
-
#WBCR .wbcr-factory-pages-
|
466 |
-
margin-bottom: 15px;
|
467 |
-
color: #7b7b7b;
|
468 |
-
}
|
469 |
-
@media screen and (max-width: 1367px) {
|
470 |
-
#WBCR .wbcr-factory-pages-
|
471 |
-
width: 69.6%;
|
472 |
-
}
|
473 |
-
#WBCR .wbcr-factory-pages-
|
474 |
-
width: 30%;
|
475 |
-
}
|
476 |
-
}
|
477 |
-
@media screen and (max-width: 1320px) {
|
478 |
-
#WBCR .wbcr-factory-pages-
|
479 |
-
width: 100%;
|
480 |
-
}
|
481 |
-
#WBCR .wbcr-factory-pages-
|
482 |
-
display: none !important;
|
483 |
-
}
|
484 |
-
#WBCR .wbcr-factory-pages-
|
485 |
-
display: none !important;
|
486 |
-
}
|
487 |
-
#WBCR .wbcr-factory-pages-
|
488 |
-
display: none !important;
|
489 |
-
}
|
490 |
-
}
|
491 |
-
@media screen and (max-width: 950px) {
|
492 |
-
#WBCR .wbcr-factory-pages-
|
493 |
-
width: 70px;
|
494 |
-
}
|
495 |
-
#WBCR .wbcr-factory-pages-
|
496 |
-
font-size: 0;
|
497 |
-
}
|
498 |
-
#WBCR .wbcr-factory-pages-
|
499 |
-
font-size: 0;
|
500 |
-
}
|
501 |
-
#WBCR .wbcr-factory-pages-
|
502 |
-
display: none !important;
|
503 |
-
}
|
504 |
-
#WBCR .wbcr-factory-pages-
|
505 |
-
margin-left: 70px;
|
506 |
-
}
|
507 |
-
}
|
508 |
/*# sourceMappingURL=impressive.page.template.css.map */
|
1 |
+
/**
|
2 |
+
* General styles
|
3 |
+
* @author Alex Kovalev <alex.kovalevv@gmail.com>
|
4 |
+
* @copyright Alex Kovalev 23.08.2017
|
5 |
+
*/
|
6 |
+
#WBCR .updated,
|
7 |
+
#WBCR .notice,
|
8 |
+
#WBCR .error {
|
9 |
+
display: none !important;
|
10 |
+
}
|
11 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template {
|
12 |
+
position: relative;
|
13 |
+
/**
|
14 |
+
Content sections
|
15 |
+
*/
|
16 |
+
/**
|
17 |
+
Widget in the sidebar of the plugin
|
18 |
+
*/
|
19 |
+
}
|
20 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-color-grey {
|
21 |
+
color: #9a9a9a;
|
22 |
+
}
|
23 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-orange-color {
|
24 |
+
color: #ffc107;
|
25 |
+
}
|
26 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-light-orange-color {
|
27 |
+
color: #ffeb3b;
|
28 |
+
}
|
29 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .form-group {
|
30 |
+
padding: 0 20px;
|
31 |
+
}
|
32 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .form-group label {
|
33 |
+
font-weight: normal;
|
34 |
+
}
|
35 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .form-horizontal .control-label {
|
36 |
+
max-width: 300px;
|
37 |
+
}
|
38 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .factory-control-buttons {
|
39 |
+
text-align: right;
|
40 |
+
padding-right: 20px;
|
41 |
+
}
|
42 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .factory-from-control-list label span {
|
43 |
+
display: inline-block;
|
44 |
+
vertical-align: bottom;
|
45 |
+
}
|
46 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .factory-from-control-list label span input[type="checkbox"],
|
47 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .factory-from-control-list label span input[type="checkbox"]:focus {
|
48 |
+
outline: none;
|
49 |
+
}
|
50 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .alert {
|
51 |
+
font-weight: bold;
|
52 |
+
margin: 0 !important;
|
53 |
+
border: 0;
|
54 |
+
border-radius: 0;
|
55 |
+
padding: 15px;
|
56 |
+
}
|
57 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .alert + .wbcr-factory-page-group-header {
|
58 |
+
margin-top: 0 !important;
|
59 |
+
}
|
60 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .alert.alert-warning {
|
61 |
+
background: #fff3d0;
|
62 |
+
}
|
63 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .alert.alert-warning:nth-child(2n+1) {
|
64 |
+
background: #fffde9;
|
65 |
+
}
|
66 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .alert.alert-danger {
|
67 |
+
background: #de716d;
|
68 |
+
}
|
69 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .alert.alert-danger:nth-child(2n+1) {
|
70 |
+
background: #ec8c89;
|
71 |
+
}
|
72 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .alert.alert-success {
|
73 |
+
background: #d0ecc4;
|
74 |
+
}
|
75 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .alert.alert-success:nth-child(2n+1) {
|
76 |
+
background: #e0eadb;
|
77 |
+
}
|
78 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-header {
|
79 |
+
padding: 20px 20px 40px;
|
80 |
+
}
|
81 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-recomended-text {
|
82 |
+
display: block;
|
83 |
+
font-size: 11px;
|
84 |
+
font-weight: lighter;
|
85 |
+
color: #179347;
|
86 |
+
}
|
87 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-options,
|
88 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page {
|
89 |
+
position: relative;
|
90 |
+
background: #e6e6e6;
|
91 |
+
overflow: hidden;
|
92 |
+
}
|
93 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-options:after,
|
94 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page:after {
|
95 |
+
display: block;
|
96 |
+
content: '';
|
97 |
+
clear: both;
|
98 |
+
}
|
99 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-group-header {
|
100 |
+
background: #efefef;
|
101 |
+
padding: 20px 0 10px 20px;
|
102 |
+
margin: 30px 0;
|
103 |
+
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
|
104 |
+
}
|
105 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-group-header:first-child {
|
106 |
+
margin-top: 0;
|
107 |
+
}
|
108 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-group-header strong {
|
109 |
+
font-size: 15px;
|
110 |
+
}
|
111 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-group-header p {
|
112 |
+
color: #8c8888;
|
113 |
+
font-size: 12px;
|
114 |
+
}
|
115 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap {
|
116 |
+
margin-left: 230px;
|
117 |
+
padding: 80px 0 0 0;
|
118 |
+
vertical-align: top;
|
119 |
+
background: #fff;
|
120 |
+
}
|
121 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-wrapper,
|
122 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap h2.nav-tab-wrapper,
|
123 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap h1.nav-tab-wrapper {
|
124 |
+
border: 0;
|
125 |
+
}
|
126 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-active {
|
127 |
+
background: #efefef !important;
|
128 |
+
margin-bottom: -2px !important;
|
129 |
+
border-bottom: 1px solid #efefef !important;
|
130 |
+
}
|
131 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:first-child {
|
132 |
+
margin: 0;
|
133 |
+
}
|
134 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:hover {
|
135 |
+
background: #f7f7f7;
|
136 |
+
}
|
137 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab {
|
138 |
+
border: 2px solid #dedede;
|
139 |
+
border-bottom: 0;
|
140 |
+
box-shadow: -1px 0 0 rgba(0, 0, 0, 0.1);
|
141 |
+
}
|
142 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:active,
|
143 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:focus {
|
144 |
+
box-shadow: none;
|
145 |
+
outline: none;
|
146 |
+
}
|
147 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header {
|
148 |
+
position: absolute;
|
149 |
+
z-index: 13;
|
150 |
+
top: 0;
|
151 |
+
left: 0;
|
152 |
+
right: 0;
|
153 |
+
overflow: hidden;
|
154 |
+
background-color: #32373c;
|
155 |
+
color: #fff;
|
156 |
+
border-radius: 5px 5px 0 0;
|
157 |
+
}
|
158 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo {
|
159 |
+
float: left;
|
160 |
+
padding: 25px 0;
|
161 |
+
font-size: 20px;
|
162 |
+
line-height: 30px;
|
163 |
+
font-weight: 400;
|
164 |
+
text-align: center;
|
165 |
+
background-color: #464b50;
|
166 |
+
color: #ccc;
|
167 |
+
padding-left: 25px;
|
168 |
+
margin-right: 10px;
|
169 |
+
background: none;
|
170 |
+
}
|
171 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title {
|
172 |
+
display: inline-block;
|
173 |
+
vertical-align: middle;
|
174 |
+
}
|
175 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title h2 {
|
176 |
+
font-size: 18px;
|
177 |
+
line-height: 30px;
|
178 |
+
font-weight: 300;
|
179 |
+
margin-top: 26px;
|
180 |
+
padding: 0 !important;
|
181 |
+
overflow: hidden;
|
182 |
+
white-space: nowrap;
|
183 |
+
text-overflow: ellipsis;
|
184 |
+
color: #fff;
|
185 |
+
}
|
186 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control {
|
187 |
+
position: relative;
|
188 |
+
float: right;
|
189 |
+
margin: 12px;
|
190 |
+
}
|
191 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button {
|
192 |
+
display: inline-block;
|
193 |
+
vertical-align: top;
|
194 |
+
font-size: 13px;
|
195 |
+
font-weight: 600;
|
196 |
+
line-height: 20px;
|
197 |
+
text-transform: uppercase;
|
198 |
+
margin: 10px 0 0;
|
199 |
+
padding: 8px 30px;
|
200 |
+
cursor: pointer;
|
201 |
+
position: relative;
|
202 |
+
overflow: hidden;
|
203 |
+
border: none;
|
204 |
+
border-radius: 50px;
|
205 |
+
box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.08) inset;
|
206 |
+
background-color: #f1f1f1;
|
207 |
+
color: inherit;
|
208 |
+
transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
|
209 |
+
text-align: center;
|
210 |
+
outline: none;
|
211 |
+
text-decoration: none;
|
212 |
+
z-index: 3;
|
213 |
+
}
|
214 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save {
|
215 |
+
box-shadow: none;
|
216 |
+
min-width: 100px;
|
217 |
+
background-color: #8bc34a;
|
218 |
+
color: #fff;
|
219 |
+
}
|
220 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:hover {
|
221 |
+
background: #9dbb7b;
|
222 |
+
color: #fff;
|
223 |
+
}
|
224 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:active {
|
225 |
+
box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
|
226 |
+
}
|
227 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings {
|
228 |
+
box-shadow: none;
|
229 |
+
min-width: 200px;
|
230 |
+
background-color: #9e9e9e;
|
231 |
+
color: #fff;
|
232 |
+
}
|
233 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:hover {
|
234 |
+
background: #797979;
|
235 |
+
color: #fff;
|
236 |
+
}
|
237 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:active {
|
238 |
+
box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
|
239 |
+
}
|
240 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar {
|
241 |
+
float: left;
|
242 |
+
vertical-align: top;
|
243 |
+
width: 230px;
|
244 |
+
background: #e6e6e6;
|
245 |
+
}
|
246 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul {
|
247 |
+
padding: 0;
|
248 |
+
margin-bottom: 0;
|
249 |
+
margin-top: 80px;
|
250 |
+
}
|
251 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab {
|
252 |
+
display: block;
|
253 |
+
background: #efefef;
|
254 |
+
margin: 1px 0;
|
255 |
+
}
|
256 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link {
|
257 |
+
display: block;
|
258 |
+
width: 100%;
|
259 |
+
padding: 20px 20px;
|
260 |
+
font-size: 12px;
|
261 |
+
color: #585858;
|
262 |
+
text-decoration: none;
|
263 |
+
text-transform: uppercase;
|
264 |
+
text-align: left;
|
265 |
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
266 |
+
}
|
267 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__title {
|
268 |
+
display: block;
|
269 |
+
font-weight: bold;
|
270 |
+
}
|
271 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__short-description {
|
272 |
+
display: block;
|
273 |
+
font-size: 13px;
|
274 |
+
font-weight: normal;
|
275 |
+
text-transform: none;
|
276 |
+
color: #9a9a9a;
|
277 |
+
}
|
278 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .dashicons {
|
279 |
+
float: right;
|
280 |
+
color: #ccc;
|
281 |
+
}
|
282 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link::after {
|
283 |
+
clear: both;
|
284 |
+
}
|
285 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover {
|
286 |
+
background: #f7f6f6;
|
287 |
+
}
|
288 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover .dashicons {
|
289 |
+
color: #9a9a9a;
|
290 |
+
}
|
291 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link,
|
292 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
|
293 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover,
|
294 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
|
295 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:focus {
|
296 |
+
outline: 0 !important;
|
297 |
+
box-shadow: none !important;
|
298 |
+
}
|
299 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab {
|
300 |
+
background: #fff;
|
301 |
+
}
|
302 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a {
|
303 |
+
color: #ff5722;
|
304 |
+
font-weight: bold;
|
305 |
+
border-left: 5px solid #ff5722;
|
306 |
+
}
|
307 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a .dashicons {
|
308 |
+
color: #9a9a9a;
|
309 |
+
}
|
310 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-content-section,
|
311 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section {
|
312 |
+
display: inline-block;
|
313 |
+
vertical-align: top;
|
314 |
+
}
|
315 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-content-section {
|
316 |
+
width: 74.6%;
|
317 |
+
}
|
318 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-content-section.wbcr-fullwidth {
|
319 |
+
width: 100%;
|
320 |
+
}
|
321 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-content-section .nav-tab-wrapper {
|
322 |
+
margin-top: 15px;
|
323 |
+
}
|
324 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content {
|
325 |
+
background: #f7f7f7;
|
326 |
+
padding: 0 0 20px 0;
|
327 |
+
border: 1px solid #dad8d8;
|
328 |
+
box-shadow: -1px 0px 1px rgba(0, 0, 0, 0.1);
|
329 |
+
}
|
330 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content > form {
|
331 |
+
padding-top: 0 !important;
|
332 |
+
}
|
333 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section {
|
334 |
+
width: 25%;
|
335 |
+
padding: 10px;
|
336 |
+
margin: 0 0 -20px;
|
337 |
+
background-color: #f9f9f9;
|
338 |
+
box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.1);
|
339 |
+
}
|
340 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-sidebar-widget {
|
341 |
+
margin: 0 0 20px;
|
342 |
+
}
|
343 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget {
|
344 |
+
display: inline-block;
|
345 |
+
min-height: 230px;
|
346 |
+
width: 100%;
|
347 |
+
margin-top: 20px;
|
348 |
+
background-color: #fff;
|
349 |
+
padding: 20px 15px;
|
350 |
+
vertical-align: top;
|
351 |
+
}
|
352 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-hide {
|
353 |
+
display: none;
|
354 |
+
}
|
355 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-warning {
|
356 |
+
background: #fff4d0;
|
357 |
+
}
|
358 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-danger {
|
359 |
+
background: #e2ffc0;
|
360 |
+
}
|
361 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-success {
|
362 |
+
background: #ffebe9;
|
363 |
+
}
|
364 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-hint-icon-simple {
|
365 |
+
display: inline-block;
|
366 |
+
width: 16px;
|
367 |
+
height: 16px;
|
368 |
+
line-height: 13px;
|
369 |
+
padding: 0;
|
370 |
+
font-size: 11px;
|
371 |
+
text-align: center;
|
372 |
+
color: #fff;
|
373 |
+
background: #E91E63;
|
374 |
+
border-radius: 3px;
|
375 |
+
}
|
376 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-grey {
|
377 |
+
background: #E91E63;
|
378 |
+
}
|
379 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-red {
|
380 |
+
background: #9e9e9e;
|
381 |
+
}
|
382 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-green {
|
383 |
+
background: #8bc34a;
|
384 |
+
}
|
385 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-icon-5stars {
|
386 |
+
display: block;
|
387 |
+
width: 80px;
|
388 |
+
height: 17px;
|
389 |
+
background: url('../img/5-stars22.png') no-repeat;
|
390 |
+
vertical-align: middle;
|
391 |
+
margin-bottom: 5px;
|
392 |
+
}
|
393 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] {
|
394 |
+
display: block;
|
395 |
+
margin: 30px auto 0;
|
396 |
+
outline: none;
|
397 |
+
}
|
398 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :focus,
|
399 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :active {
|
400 |
+
box-shadow: none;
|
401 |
+
}
|
402 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form .wbcr-factory-donation-price {
|
403 |
+
font-size: 50px;
|
404 |
+
margin-top: 30px;
|
405 |
+
text-align: center;
|
406 |
+
font-weight: 600;
|
407 |
+
color: #8BC34A;
|
408 |
+
}
|
409 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box {
|
410 |
+
min-height: 240px;
|
411 |
+
margin-bottom: 20px;
|
412 |
+
text-align: center;
|
413 |
+
background: #fdfcf7;
|
414 |
+
padding: 30px;
|
415 |
+
border: 1px solid #f3f1e7;
|
416 |
+
}
|
417 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box .dashicons {
|
418 |
+
width: 50px;
|
419 |
+
height: 50px;
|
420 |
+
font-size: 50px;
|
421 |
+
color: #FFC107;
|
422 |
+
line-height: normal;
|
423 |
+
}
|
424 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box h3 {
|
425 |
+
color: #7b6111;
|
426 |
+
}
|
427 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box p {
|
428 |
+
color: #9e9e9e;
|
429 |
+
}
|
430 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-buttons-wrap {
|
431 |
+
margin-top: 20px;
|
432 |
+
text-align: center;
|
433 |
+
}
|
434 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button {
|
435 |
+
display: inline-block;
|
436 |
+
padding: 20px 60px;
|
437 |
+
background-color: #FFC107;
|
438 |
+
color: #866605;
|
439 |
+
text-decoration: none;
|
440 |
+
text-transform: uppercase;
|
441 |
+
font-weight: bold;
|
442 |
+
transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
|
443 |
+
}
|
444 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button:hover {
|
445 |
+
background-color: #ffce3a;
|
446 |
+
}
|
447 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template #wbcr-factory-confirm-dialog {
|
448 |
+
padding: 20px;
|
449 |
+
background: #ffffff;
|
450 |
+
}
|
451 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template #wbcr-factory-confirm-dialog .updated,
|
452 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template #wbcr-factory-confirm-dialog .alert {
|
453 |
+
display: none;
|
454 |
+
}
|
455 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template #wbcr-factory-confirm-dialog h2 {
|
456 |
+
font-size: 18px;
|
457 |
+
margin-top: 10px;
|
458 |
+
}
|
459 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-description {
|
460 |
+
padding: 10px;
|
461 |
+
background: #ffedeb;
|
462 |
+
border: 1px solid #ffdfdc;
|
463 |
+
margin: 15px 0;
|
464 |
+
}
|
465 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-hint {
|
466 |
+
margin-bottom: 15px;
|
467 |
+
color: #7b7b7b;
|
468 |
+
}
|
469 |
+
@media screen and (max-width: 1367px) {
|
470 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-content-section {
|
471 |
+
width: 69.6%;
|
472 |
+
}
|
473 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section {
|
474 |
+
width: 30%;
|
475 |
+
}
|
476 |
+
}
|
477 |
+
@media screen and (max-width: 1320px) {
|
478 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-content-section {
|
479 |
+
width: 100%;
|
480 |
+
}
|
481 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-right-sidebar-section {
|
482 |
+
display: none !important;
|
483 |
+
}
|
484 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-header-logo .dash {
|
485 |
+
display: none !important;
|
486 |
+
}
|
487 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-header-title {
|
488 |
+
display: none !important;
|
489 |
+
}
|
490 |
+
}
|
491 |
+
@media screen and (max-width: 950px) {
|
492 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar {
|
493 |
+
width: 70px;
|
494 |
+
}
|
495 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a {
|
496 |
+
font-size: 0;
|
497 |
+
}
|
498 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__title {
|
499 |
+
font-size: 0;
|
500 |
+
}
|
501 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__short-description {
|
502 |
+
display: none !important;
|
503 |
+
}
|
504 |
+
#WBCR .wbcr-factory-pages-425-impressive-page-template .wbcr-factory-page-inner-wrap {
|
505 |
+
margin-left: 70px;
|
506 |
+
}
|
507 |
+
}
|
508 |
/*# sourceMappingURL=impressive.page.template.css.map */
|
libs/factory/pages/templates/assets/css/impressive.page.template.css.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"sources":["impressive.page.template.less"],"names":[],"mappings":";;;;;AAMA,KACE;AADF,KACY;AADZ,KACqB;EACjB,wBAAA;;AAFJ,KAKE;EACE,kBAAA;;;;;;;;AANJ,KAKE,iDAGE;EACE,cAAA;;AATN,KAKE,iDAOE;EACE,cAAA;;AAbN,KAKE,iDAWE;EACE,cAAA;;AAjBN,KAKE,iDAeE;EACE,eAAA;;AArBN,KAKE,iDAeE,YAEE;EACE,mBAAA;;AAvBR,KAKE,iDAsBE,iBAAiB;EACf,gBAAA;;AA5BN,KAKE,iDA0BE;EACE,iBAAA;EACA,mBAAA;;AAjCN,KAKE,iDA+BE,2BACE,MACE;EACE,qBAAA;EACA,sBAAA;;AAxCV,KAKE,iDA+BE,2BACE,MACE,KAGE,MAAK;AAzCf,KAKE,iDA+BE,2BACE,MACE,KAG0B,MAAK,iBAAiB;EAC5C,aAAA;;AA1CZ,KAKE,iDA2CE;EACE,iBAAA;EACA,oBAAA;EACA,SAAA;EACA,gBAAA;EACA,aAAA;;AAEA,KAlDJ,iDA2CE,OAOI;EACA,wBAAA;;AAGF,KAtDJ,iDA2CE,OAWG;EACC,mBAAA;;AAGF,KA1DJ,iDA2CE,OAeG,cAAc,UAAU;EACvB,mBAAA;;AAGF,KA9DJ,iDA2CE,OAmBG;EACC,mBAAA;;AAGF,KAlEJ,iDA2CE,OAuBG,aAAa,UAAU;EACtB,mBAAA;;AAGF,KAtEJ,iDA2CE,OA2BG;EACC,mBAAA;;AAGF,KA1EJ,iDA2CE,OA+BG,cAAc,UAAU;EACvB,mBAAA;;AAhFR,KAKE,iDA+EE;EACE,uBAAA;;AArFN,KAKE,iDAmFE;EACE,cAAA;EACA,eAAA;EACA,oBAAA;EACA,cAAA;;AA5FN,KAKE,iDA0FE;AA/FJ,KAKE,iDA0FyB;EACrB,kBAAA;EACA,mBAAA;EACA,gBAAA;;AASA,KAtGJ,iDA0FE,sBAYG;AAAD,KAtGJ,iDA0FyB,mBAYpB;EACC,cAAA;EACA,SAAS,EAAT;EACA,WAAA;;AA9GR,KAKE,iDA6GE;EACE,mBAAA;EACA,yBAAA;EACA,cAAA;EACA,sCAAA;;AACA,KAlHJ,iDA6GE,gCAKG;EACC,aAAA;;AAxHR,KAKE,iDA6GE,gCAQE;EACE,eAAA;;AA3HR,KAKE,iDA6GE,gCAWE;EACE,cAAA;EACA,eAAA;;AA/HR,KAKE,iDAmIE;EAIE,kBAAA;EAEA,mBAAA;EACA,mBAAA;EACA,gBAAA;;AAhJN,KAKE,iDAmIE,8BAUE;AAlJN,KAKE,iDAmIE,8BAUoB,GAAE;AAlJ1B,KAKE,iDAmIE,8BAUwC,GAAE;EACtC,SAAA;;AAnJR,KAKE,iDAmIE,8BAaE;EACE,mBAAA;EACA,mBAAA;EACA,gCAAA;;AAxJR,KAKE,iDAmIE,8BAkBE,SAAQ;EACN,SAAA;;AA3JR,KAKE,iDAmIE,8BAqBE,SAAQ;EACN,mBAAA;;AA9JR,KAKE,iDAmIE,8BAwBE;EACE,yBAAA;EACA,gBAAA;EACA,uCAAA;;AACA,KA/JN,iDAmIE,8BAwBE,SAIG;AAAS,KA/JhB,iDAmIE,8BAwBE,SAIa;EACT,gBAAA;EACA,aAAA;;AAtKV,KAKE,iDAsKE;EACE,kBAAA;EACA,WAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,gBAAA;EACA,yBAAA;EACA,WAAA;EACA,0BAAA;;AApLN,KAKE,iDAsKE,0BAWE;EACE,WAAA;EACA,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EAEA,yBAAA;EACA,WAAA;EACA,kBAAA;EACA,kBAAA;EACA,gBAAA;;AAlMR,KAKE,iDAsKE,0BA0BE;EACE,qBAAA;EACA,sBAAA;;AAvMR,KAKE,iDAsKE,0BA0BE,2BAGE;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,gBAAA;EACA,qBAAA;EAEA,gBAAA;EACA,mBAAA;EACA,uBAAA;EACA,WAAA;;AAlNV,KAKE,iDAsKE,0BA2CE;EACE,kBAAA;EACA,YAAA;EACA,YAAA;;AAzNR,KAKE,iDAsKE,0BAiDE;EACE,qBAAA;EACA,mBAAA;EACA,eAAA;EACA,gBAAA;EACA,iBAAA;EACA,yBAAA;EACA,gBAAA;EACA,iBAAA;EACA,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,YAAA;EACA,mBAAA;EACA,8CAAA;EACA,yBAAA;EACA,cAAA;EACA,8EAAA;EACA,kBAAA;EACA,aAAA;EACA,qBAAA;EACA,UAAA;;AAEA,KA9ON,iDAsKE,0BAiDE,qBAuBG;EACC,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,WAAA;;AACA,KAnPR,iDAsKE,0BAiDE,qBAuBG,uBAKE;EACC,mBAAA;EACA,WAAA;;AAEF,KAvPR,iDAsKE,0BAiDE,qBAuBG,uBASE;EACC,iDAAA;;AAIJ,KA5PN,iDAsKE,0BAiDE,qBAqCG;EACC,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,WAAA;;AACA,KAjQR,iDAsKE,0BAiDE,qBAqCG,2BAKE;EACC,mBAAA;EACA,WAAA;;AAEF,KArQR,iDAsKE,0BAiDE,qBAqCG,2BASE;EACC,iDAAA;;AA3QZ,KAKE,iDA4QE;EAEE,WAAA;EACA,mBAAA;EACA,YAAA;EACA,mBAAA;;AAtRN,KAKE,iDA4QE,kCAOE;EACE,UAAA;EACA,gBAAA;EACA,gBAAA;;AA3RR,KAKE,iDA4QE,kCAOE,GAIE;EACE,cAAA;EACA,mBAAA;EAEA,aAAA;;AAhSV,KAKE,iDA4QE,kCAOE,GAIE,sBAKE;EACE,cAAA;EACA,WAAA;EACA,kBAAA;EACA,eAAA;EACA,cAAA;EACA,qBAAA;EACA,yBAAA;EACA,gBAAA;EACA,gDAAgD,oDAAoD,4BAApG;;AA1SZ,KAKE,iDA4QE,kCAOE,GAIE,sBAKE,wBAWE;EACE,cAAA;EACA,iBAAA;;AA9Sd,KAKE,iDA4QE,kCAOE,GAIE,sBAKE,wBAgBE;EACE,cAAA;EACA,eAAA;EACA,mBAAA;EACA,oBAAA;EACA,cAAA;;AAtTd,KAKE,iDA4QE,kCAOE,GAIE,sBAKE,wBAwBE;EACE,YAAA;EAEA,WAAA;;AAGF,KA1TV,iDA4QE,kCAOE,GAIE,sBAKE,wBA8BG;EACC,WAAA;;AAGF,KA9TV,iDA4QE,kCAOE,GAIE,sBAKE,wBAkCG;EACC,mBAAA;;AADF,KA9TV,iDA4QE,kCAOE,GAIE,sBAKE,wBAkCG,MAEC;EACE,cAAA;;AAGJ,KApUV,iDA4QE,kCAOE,GAIE,sBAKE;AAwCK,KApUb,iDA4QE,kCAOE,GAIE,sBAKE,wBAwCM;AAAS,KApUvB,iDA4QE,kCAOE,GAIE,sBAKE,wBAwCgB;AAAQ,KApUhC,iDA4QE,kCAOE,GAIE,sBAKE,wBAwCyB;AAAS,KApU1C,iDA4QE,kCAOE,GAIE,sBAKE,wBAwCmC;EAC/B,qBAAA;EACA,2BAAA;;AAIJ,KA1UR,iDA4QE,kCAOE,GAIE,sBAmDG;EACC,gBAAA;;AADF,KA1UR,iDA4QE,kCAOE,GAIE,sBAmDG,wBAEC;EACE,cAAA;EACA,iBAAA;EACA,8BAAA;;AALJ,KA1UR,iDA4QE,kCAOE,GAIE,sBAmDG,wBAEC,EAIE;EACE,cAAA;;AAtVhB,KAKE,iDA4VE;AAjWJ,KAKE,iDA4ViC;EAC7B,qBAAA;EACA,mBAAA;;AAnWN,KAKE,iDAiWE;EACE,YAAA;;AACA,KAnWJ,iDAiWE,8BAEG;EACC,WAAA;;AAzWR,KAKE,iDAiWE,8BAKE;EACE,gBAAA;;AA5WR,KAKE,iDAiWE,8BAQE;EACE,mBAAA;EACA,mBAAA;EACA,yBAAA;EACA,2CAAA;;AACA,KA9WN,iDAiWE,8BAQE,sBAKI;EACA,yBAAA;;AApXV,KAKE,iDAoXE;EACE,UAAA;EACA,aAAA;EACA,iBAAA;EACA,yBAAA;EACA,2CAAA;;AA9XN,KAKE,iDAoXE,oCAOE;EACE,gBAAA;;AAjYR,KAKE,iDAmYE;EACE,qBAAA;EACA,iBAAA;EACA,WAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;EACA,mBAAA;;AAEA,KA5YJ,iDAmYE,6BASG;EACC,aAAA;;AAGF,KAhZJ,iDAmYE,6BAaG;EACC,mBAAA;;AAGF,KApZJ,iDAmYE,6BAiBG;EACC,mBAAA;;AAGF,KAxZJ,iDAmYE,6BAqBG;EACC,mBAAA;;AA9ZR,KAKE,iDAmYE,6BAyBE;EACE,qBAAA;EACA,WAAA;EACA,YAAA;EACA,iBAAA;EACA,UAAA;EACA,eAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,kBAAA;;AA3aR,KAKE,iDAmYE,6BAqCE;EACE,mBAAA;;AA9aR,KAKE,iDAmYE,6BAwCE;EACE,mBAAA;;AAjbR,KAKE,iDAmYE,6BA2CE;EACE,mBAAA;;AApbR,KAKE,iDAmYE,6BA+CE;EACE,cAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAgB,iCAAhB;EACA,sBAAA;EACA,kBAAA;;AA7bR,KAKE,iDAmYE,6BAwDE,mCACE,MAAK;EACH,cAAA;EACA,mBAAA;EACA,aAAA;;AApcV,KAKE,iDAmYE,6BAwDE,mCACE,MAAK,cAIH;AArcV,KAKE,iDAmYE,6BAwDE,mCACE,MAAK,cAIK;EACN,gBAAA;;AAtcZ,KAKE,iDAmYE,6BAwDE,mCASE;EACE,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,gBAAA;EACA,cAAA;;AA9cV,KAKE,iDA8cE,iCACE;EAEE,iBAAA;EACA,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,aAAA;EACA,yBAAA;;AA3dR,KAKE,iDA8cE,iCACE,0BAQE;EACE,WAAA;EACA,YAAA;EACA,eAAA;EACA,cAAA;EACA,mBAAA;;AAjeV,KAKE,iDA8cE,iCACE,0BAeE;EACE,cAAA;;AApeV,KAKE,iDA8cE,iCACE,0BAkBE;EACE,cAAA;;AAveV,KAKE,iDA8cE,iCAwBE;EACE,gBAAA;EACA,kBAAA;;AA7eR,KAKE,iDA8cE,iCA6BE;EACE,qBAAA;EACA,kBAAA;EACA,yBAAA;EACA,cAAA;EACA,qBAAA;EACA,yBAAA;EACA,iBAAA;EACA,8EAAA;;AACA,KApfN,iDA8cE,iCA6BE,6BASG;EACC,yBAAA;;AA1fV,KAKE,iDA0fE;EACE,aAAA;EACA,mBAAA;;AAjgBN,KAKE,iDA0fE,6BAIE;AAngBN,KAKE,iDA0fE,6BAIY;EACR,aAAA;;AApgBR,KAKE,iDA0fE,6BAOE;EACE,eAAA;EACA,gBAAA;;AAxgBR,KAKE,iDA0fE,6BAWE;EACE,aAAA;EACA,mBAAA;EACA,yBAAA;EACA,cAAA;;AA9gBR,KAKE,iDA0fE,6BAiBE;EACE,mBAAA;EACA,cAAA;;AAMR,mBAAsC;EACpC,KACE,iDACE;IACE,YAAA;;EAHN,KACE,iDAKE;IACE,UAAA;;;AAMR,mBAAsC;EACpC,KACE,iDACE;IACE,WAAA;;EAHN,KACE,iDAIE;IACE,wBAAA;;EANN,KACE,iDAOE,0BACE;IACE,wBAAA;;EAVR,KACE,iDAYE;IACE,wBAAA;;;AAMR,mBAAqC;EACnC,KACE,iDACE;IACE,WAAA;;EAHN,KACE,iDACE,kCAGE,GACE,sBACE;IACE,YAAA;;EARZ,KACE,iDACE,kCAGE,GACE,sBAIE;IACE,YAAA;;EAXZ,KACE,iDACE,kCAGE,GACE,sBAOE;IACE,wBAAA;;EAdZ,KACE,iDAkBE;IACE,iBAAA","file":"impressive.page.template.css"}
|
|
libs/factory/pages/templates/impressive-page.class.php
CHANGED
@@ -14,11 +14,11 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
if ( ! class_exists( '
|
18 |
/**
|
19 |
-
* Class
|
20 |
*/
|
21 |
-
abstract class
|
22 |
|
23 |
/**
|
24 |
* Тип страницы:
|
@@ -112,11 +112,11 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
112 |
public $page_menu = [];
|
113 |
|
114 |
/**
|
115 |
-
* @param
|
116 |
*/
|
117 |
-
public function __construct(
|
118 |
-
$this->menuIcon =
|
119 |
-
//$allow_multisite = apply_filters('
|
120 |
|
121 |
if ( is_multisite() && $this->available_for_multisite && $plugin->isNetworkActive() ) {
|
122 |
$this->network = true;
|
@@ -126,7 +126,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
126 |
|
127 |
parent::__construct( $plugin );
|
128 |
|
129 |
-
$this->title_plugin_action_link = __( 'Settings', '
|
130 |
|
131 |
$this->setPageMenu();
|
132 |
}
|
@@ -170,7 +170,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
170 |
*
|
171 |
* @since 1.0.0
|
172 |
* @return void
|
173 |
-
* @see
|
174 |
*
|
175 |
*/
|
176 |
public function assets( $scripts, $styles ) {
|
@@ -191,7 +191,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
191 |
'control.checkbox'
|
192 |
], 'bootstrap' );
|
193 |
|
194 |
-
$this->styles->add(
|
195 |
}
|
196 |
|
197 |
/**
|
@@ -204,7 +204,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
204 |
* @since 4.0.8 - добавлен
|
205 |
* @since 4.0.9 - является устаревшим
|
206 |
*/
|
207 |
-
$plugin_title =
|
208 |
$this->plugin->getPluginTitle(),
|
209 |
$this->plugin->getPluginName()
|
210 |
], '4.0.9', 'wbcr/factory/pages/impressive/plugin_title' );
|
@@ -280,22 +280,22 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
280 |
public function flushCacheAndRulesAction() {
|
281 |
check_admin_referer( 'wbcr_factory_' . $this->getResultId() . '_flush_action' );
|
282 |
|
283 |
-
if ( class_exists( '
|
284 |
-
|
285 |
}
|
286 |
|
287 |
/**
|
288 |
* @since 4.0.1 - является устаревшим
|
289 |
*/
|
290 |
-
|
291 |
$this->plugin->getPluginName(),
|
292 |
$this->getResultId()
|
293 |
-
], '4.0.1', '
|
294 |
|
295 |
/**
|
296 |
* @since 4.0.9 - является устаревшим
|
297 |
*/
|
298 |
-
|
299 |
$this->plugin,
|
300 |
$this
|
301 |
], '4.0.9', 'wbcr/factory/pages/impressive/after_form_save' );
|
@@ -314,7 +314,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
314 |
/**
|
315 |
* @since 4.0.9 - является устаревшим
|
316 |
*/
|
317 |
-
$redirect_args =
|
318 |
|
319 |
/**
|
320 |
* @since 4.0.1 - добавлен
|
@@ -331,7 +331,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
331 |
*/
|
332 |
protected function warningNotice() {
|
333 |
/*if( WP_CACHE ) {
|
334 |
-
$this->printWarningNotice(__("It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", '
|
335 |
}*/
|
336 |
// Метод предназначен для вызова в дочернем классе
|
337 |
}
|
@@ -403,7 +403,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
403 |
/**
|
404 |
* @since 4.0.9 - является устаревшим
|
405 |
*/
|
406 |
-
|
407 |
$this->plugin,
|
408 |
$this
|
409 |
], '4.0.9', 'wbcr/factory/pages/impressive/print_all_notices' );
|
@@ -422,14 +422,14 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
422 |
$this->plugin->getPluginName() . '_saved' => '1'
|
423 |
],
|
424 |
'type' => 'success',
|
425 |
-
'message' => __( 'The settings have been updated successfully!', '
|
426 |
]
|
427 |
];
|
428 |
|
429 |
/**
|
430 |
* @since 4.0.9 - является устаревшим
|
431 |
*/
|
432 |
-
$notices =
|
433 |
$notices,
|
434 |
$this->plugin,
|
435 |
$this->id
|
@@ -601,7 +601,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
601 |
<?php do_action( 'wbcr/factory/pages/impressive/header', $this->plugin->getPluginName() ) ?>
|
602 |
|
603 |
<?php if ( $this->type == 'options' ): ?>
|
604 |
-
<input name="<?= $this->plugin->getPluginName() ?>_save_action" class="wbcr-factory-button wbcr-factory-type-save" type="submit" value="<?php _e( 'Save', '
|
605 |
<?php wp_nonce_field( 'wbcr_factory_' . $this->getResultId() . '_save_action' ); ?>
|
606 |
<?php endif; ?>
|
607 |
</div>
|
@@ -656,7 +656,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
656 |
/**
|
657 |
* @since 4.0.9 - является устаревшим
|
658 |
*/
|
659 |
-
$widgets =
|
660 |
$widgets,
|
661 |
$position,
|
662 |
$this->plugin,
|
@@ -673,12 +673,12 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
673 |
}
|
674 |
|
675 |
protected function showOptions() {
|
676 |
-
$form = new
|
677 |
'scope' => rtrim( $this->plugin->getPrefix(), '_' ),
|
678 |
'name' => $this->getResultId() . "-options"
|
679 |
], $this->plugin );
|
680 |
|
681 |
-
$form->setProvider( new
|
682 |
|
683 |
$options = $this->getPageOptions();
|
684 |
|
@@ -718,14 +718,14 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
718 |
check_admin_referer( 'wbcr_factory_' . $this->getResultId() . '_save_action' );
|
719 |
|
720 |
if ( ! current_user_can( 'administrator' ) && ! current_user_can( $this->capabilitiy ) ) {
|
721 |
-
wp_die( __( 'You do not have permission to edit page.', '
|
722 |
exit;
|
723 |
}
|
724 |
|
725 |
/**
|
726 |
* @since 4.0.9 - является устаревшим
|
727 |
*/
|
728 |
-
|
729 |
$form,
|
730 |
$this->plugin,
|
731 |
$this
|
@@ -744,7 +744,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
744 |
/**
|
745 |
* @since 4.0.9 - является устаревшим
|
746 |
*/
|
747 |
-
|
748 |
$form,
|
749 |
$this->plugin,
|
750 |
$this
|
@@ -765,7 +765,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
765 |
|
766 |
?>
|
767 |
<div id="WBCR" class="wrap">
|
768 |
-
<div class="wbcr-factory-pages-
|
769 |
<div class="wbcr-factory-options wbcr-factory-options-<?= esc_attr( $this->id ) ?>">
|
770 |
<div class="wbcr-factory-left-navigation-bar">
|
771 |
<?php $this->showPageMenu() ?>
|
@@ -810,7 +810,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
810 |
|
811 |
protected function showPage( $content = null ) { ?>
|
812 |
<div id="WBCR" class="wrap">
|
813 |
-
<div class="wbcr-factory-pages-
|
814 |
<div class="wbcr-factory-page wbcr-factory-page-<?= $this->id ?>">
|
815 |
<?php $this->showHeader(); ?>
|
816 |
<div class="wbcr-factory-left-navigation-bar">
|
@@ -873,7 +873,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages424_ImpressiveThemplate' ) ) {
|
|
873 |
public function confirmPageTemplate( $data ) {
|
874 |
?>
|
875 |
<div id="WBCR" class="wrap">
|
876 |
-
<div class="wbcr-factory-pages-
|
877 |
<div id="wbcr-factory-confirm-dialog">
|
878 |
<h2><?php echo $data['title'] ?></h2>
|
879 |
<p class="wbcr-factory-confirm-description"><?php echo $data['description'] ?></p>
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
if ( ! class_exists( 'Wbcr_FactoryPages425_ImpressiveThemplate' ) ) {
|
18 |
/**
|
19 |
+
* Class Wbcr_FactoryPages425_ImpressiveThemplate
|
20 |
*/
|
21 |
+
abstract class Wbcr_FactoryPages425_ImpressiveThemplate extends Wbcr_FactoryPages425_AdminPage {
|
22 |
|
23 |
/**
|
24 |
* Тип страницы:
|
112 |
public $page_menu = [];
|
113 |
|
114 |
/**
|
115 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
116 |
*/
|
117 |
+
public function __construct( Wbcr_Factory425_Plugin $plugin ) {
|
118 |
+
$this->menuIcon = FACTORY_PAGES_425_URL . '/templates/assets/img/webcraftic-plugin-icon.png';
|
119 |
+
//$allow_multisite = apply_filters('wbcr_factory_425_core_admin_allow_multisite', false);
|
120 |
|
121 |
if ( is_multisite() && $this->available_for_multisite && $plugin->isNetworkActive() ) {
|
122 |
$this->network = true;
|
126 |
|
127 |
parent::__construct( $plugin );
|
128 |
|
129 |
+
$this->title_plugin_action_link = __( 'Settings', 'wbcr_factory_pages_425' );
|
130 |
|
131 |
$this->setPageMenu();
|
132 |
}
|
170 |
*
|
171 |
* @since 1.0.0
|
172 |
* @return void
|
173 |
+
* @see FactoryPages425_AdminPage
|
174 |
*
|
175 |
*/
|
176 |
public function assets( $scripts, $styles ) {
|
191 |
'control.checkbox'
|
192 |
], 'bootstrap' );
|
193 |
|
194 |
+
$this->styles->add( FACTORY_PAGES_425_URL . '/templates/assets/css/impressive.page.template.css' );
|
195 |
}
|
196 |
|
197 |
/**
|
204 |
* @since 4.0.8 - добавлен
|
205 |
* @since 4.0.9 - является устаревшим
|
206 |
*/
|
207 |
+
$plugin_title = wbcr_factory_425_apply_filters_deprecated( 'wbcr/factory/imppage/plugin_title', [
|
208 |
$this->plugin->getPluginTitle(),
|
209 |
$this->plugin->getPluginName()
|
210 |
], '4.0.9', 'wbcr/factory/pages/impressive/plugin_title' );
|
280 |
public function flushCacheAndRulesAction() {
|
281 |
check_admin_referer( 'wbcr_factory_' . $this->getResultId() . '_flush_action' );
|
282 |
|
283 |
+
if ( class_exists( 'WbcrFactoryClearfy217_Helpers' ) ) {
|
284 |
+
WbcrFactoryClearfy217_Helpers::flushPageCache();
|
285 |
}
|
286 |
|
287 |
/**
|
288 |
* @since 4.0.1 - является устаревшим
|
289 |
*/
|
290 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_425_imppage_flush_cache', [
|
291 |
$this->plugin->getPluginName(),
|
292 |
$this->getResultId()
|
293 |
+
], '4.0.1', 'wbcr_factory_425_imppage_after_form_save' );
|
294 |
|
295 |
/**
|
296 |
* @since 4.0.9 - является устаревшим
|
297 |
*/
|
298 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_425_imppage_after_form_save', [
|
299 |
$this->plugin,
|
300 |
$this
|
301 |
], '4.0.9', 'wbcr/factory/pages/impressive/after_form_save' );
|
314 |
/**
|
315 |
* @since 4.0.9 - является устаревшим
|
316 |
*/
|
317 |
+
$redirect_args = wbcr_factory_425_apply_filters_deprecated( 'wbcr_factory_425_imppage_after_form_save_redirect_args', [ $redirect_args ], '4.0.9', 'wbcr/factory/pages/impressive/save_redirect_args' );
|
318 |
|
319 |
/**
|
320 |
* @since 4.0.1 - добавлен
|
331 |
*/
|
332 |
protected function warningNotice() {
|
333 |
/*if( WP_CACHE ) {
|
334 |
+
$this->printWarningNotice(__("It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_425'));
|
335 |
}*/
|
336 |
// Метод предназначен для вызова в дочернем классе
|
337 |
}
|
403 |
/**
|
404 |
* @since 4.0.9 - является устаревшим
|
405 |
*/
|
406 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_pages_425_imppage_print_all_notices', [
|
407 |
$this->plugin,
|
408 |
$this
|
409 |
], '4.0.9', 'wbcr/factory/pages/impressive/print_all_notices' );
|
422 |
$this->plugin->getPluginName() . '_saved' => '1'
|
423 |
],
|
424 |
'type' => 'success',
|
425 |
+
'message' => __( 'The settings have been updated successfully!', 'wbcr_factory_pages_425' ) . ( WP_CACHE ? '<br>' . __( "It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_425' ) : '' )
|
426 |
]
|
427 |
];
|
428 |
|
429 |
/**
|
430 |
* @since 4.0.9 - является устаревшим
|
431 |
*/
|
432 |
+
$notices = wbcr_factory_425_apply_filters_deprecated( 'wbcr_factory_pages_425_imppage_actions_notice', [
|
433 |
$notices,
|
434 |
$this->plugin,
|
435 |
$this->id
|
601 |
<?php do_action( 'wbcr/factory/pages/impressive/header', $this->plugin->getPluginName() ) ?>
|
602 |
|
603 |
<?php if ( $this->type == 'options' ): ?>
|
604 |
+
<input name="<?= $this->plugin->getPluginName() ?>_save_action" class="wbcr-factory-button wbcr-factory-type-save" type="submit" value="<?php _e( 'Save', 'wbcr_factory_pages_425' ); ?>">
|
605 |
<?php wp_nonce_field( 'wbcr_factory_' . $this->getResultId() . '_save_action' ); ?>
|
606 |
<?php endif; ?>
|
607 |
</div>
|
656 |
/**
|
657 |
* @since 4.0.9 - является устаревшим
|
658 |
*/
|
659 |
+
$widgets = wbcr_factory_425_apply_filters_deprecated( 'wbcr_factory_pages_425_imppage_get_widgets', [
|
660 |
$widgets,
|
661 |
$position,
|
662 |
$this->plugin,
|
673 |
}
|
674 |
|
675 |
protected function showOptions() {
|
676 |
+
$form = new Wbcr_FactoryForms423_Form( [
|
677 |
'scope' => rtrim( $this->plugin->getPrefix(), '_' ),
|
678 |
'name' => $this->getResultId() . "-options"
|
679 |
], $this->plugin );
|
680 |
|
681 |
+
$form->setProvider( new Wbcr_FactoryForms423_OptionsValueProvider( $this->plugin ) );
|
682 |
|
683 |
$options = $this->getPageOptions();
|
684 |
|
718 |
check_admin_referer( 'wbcr_factory_' . $this->getResultId() . '_save_action' );
|
719 |
|
720 |
if ( ! current_user_can( 'administrator' ) && ! current_user_can( $this->capabilitiy ) ) {
|
721 |
+
wp_die( __( 'You do not have permission to edit page.', 'wbcr_factory_pages_425' ) );
|
722 |
exit;
|
723 |
}
|
724 |
|
725 |
/**
|
726 |
* @since 4.0.9 - является устаревшим
|
727 |
*/
|
728 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_425_imppage_before_form_save', [
|
729 |
$form,
|
730 |
$this->plugin,
|
731 |
$this
|
744 |
/**
|
745 |
* @since 4.0.9 - является устаревшим
|
746 |
*/
|
747 |
+
wbcr_factory_425_do_action_deprecated( 'wbcr_factory_425_imppage_form_saved', [
|
748 |
$form,
|
749 |
$this->plugin,
|
750 |
$this
|
765 |
|
766 |
?>
|
767 |
<div id="WBCR" class="wrap">
|
768 |
+
<div class="wbcr-factory-pages-425-impressive-page-template factory-bootstrap-426 factory-fontawesome-000">
|
769 |
<div class="wbcr-factory-options wbcr-factory-options-<?= esc_attr( $this->id ) ?>">
|
770 |
<div class="wbcr-factory-left-navigation-bar">
|
771 |
<?php $this->showPageMenu() ?>
|
810 |
|
811 |
protected function showPage( $content = null ) { ?>
|
812 |
<div id="WBCR" class="wrap">
|
813 |
+
<div class="wbcr-factory-pages-425-impressive-page-template factory-bootstrap-426 factory-fontawesome-000">
|
814 |
<div class="wbcr-factory-page wbcr-factory-page-<?= $this->id ?>">
|
815 |
<?php $this->showHeader(); ?>
|
816 |
<div class="wbcr-factory-left-navigation-bar">
|
873 |
public function confirmPageTemplate( $data ) {
|
874 |
?>
|
875 |
<div id="WBCR" class="wrap">
|
876 |
+
<div class="wbcr-factory-pages-425-impressive-page-template factory-bootstrap-426 factory-fontawesome-000">
|
877 |
<div id="wbcr-factory-confirm-dialog">
|
878 |
<h2><?php echo $data['title'] ?></h2>
|
879 |
<p class="wbcr-factory-confirm-description"><?php echo $data['description'] ?></p>
|
migrations/060500.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Updates for altering the table used to store statistics data.
|
5 |
* Adds new columns and renames existing ones in order to add support for the new social buttons.
|
6 |
*/
|
7 |
-
class WANTISPAMUpdate060500 extends
|
8 |
|
9 |
public function install() {
|
10 |
if ( $this->plugin->isNetworkAdmin() ) {
|
4 |
* Updates for altering the table used to store statistics data.
|
5 |
* Adds new columns and renames existing ones in order to add support for the new social buttons.
|
6 |
*/
|
7 |
+
class WANTISPAMUpdate060500 extends Wbcr_Factory425_Update {
|
8 |
|
9 |
public function install() {
|
10 |
if ( $this->plugin->isNetworkAdmin() ) {
|
migrations/index.php
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
<?php
|
2 |
-
// Silence is golden.
|
1 |
+
<?php
|
2 |
+
// Silence is golden.
|
readme.txt
CHANGED
@@ -11,7 +11,7 @@ License URI: http://www.gnu.org/licenses/gpl.html
|
|
11 |
Anti-spam plugin blocks automatic spam in comments section. No captcha.
|
12 |
|
13 |
== Description ==
|
14 |
-
= Anti-spam checks your comments
|
15 |
|
16 |
### Features ###
|
17 |
* Imperceptible spam protection on your site helps you give visitors a convenient and easy way to create an account or post a comment. You'll be able to get growth of comments, registrations and increase conversion rates. Have a think about the user experience of your product because users do not like to fill out the captcha.
|
@@ -31,6 +31,21 @@ In the Pro version, you can:
|
|
31 |
* Antispam Pro a transparent anti-spam protection. We provide detailed statistics of all entered comments and logins. You can always be sure that there are no errors. We have developed a mobile app for you to see anti-spam statistics, wherever and whenever.
|
32 |
* We regularly release updates to the anti-spam module. Our modules always meet new versions of CMS and we are constantly expanding supported CMS.
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
== Installation ==
|
35 |
|
36 |
1. Install and activate the plugin on the Plugins page
|
@@ -115,6 +130,16 @@ The plugin is pretty small and easy to read.
|
|
115 |
|
116 |
|
117 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
= 6.5.1 - 16.12.2019 =
|
119 |
* Added: Multisite support.
|
120 |
* Fixed: Bug with redirection loop in multisite mode.
|
11 |
Anti-spam plugin blocks automatic spam in comments section. No captcha.
|
12 |
|
13 |
== Description ==
|
14 |
+
= Anti-spam checks your comments against our global database, Once comments are checked on the spam database, a self-learning neural network re-checks unfiltered comments, of spam to prevent your site from publishing malicious content. =
|
15 |
|
16 |
### Features ###
|
17 |
* Imperceptible spam protection on your site helps you give visitors a convenient and easy way to create an account or post a comment. You'll be able to get growth of comments, registrations and increase conversion rates. Have a think about the user experience of your product because users do not like to fill out the captcha.
|
31 |
* Antispam Pro a transparent anti-spam protection. We provide detailed statistics of all entered comments and logins. You can always be sure that there are no errors. We have developed a mobile app for you to see anti-spam statistics, wherever and whenever.
|
32 |
* We regularly release updates to the anti-spam module. Our modules always meet new versions of CMS and we are constantly expanding supported CMS.
|
33 |
|
34 |
+
New 6.6 Release of our plugin
|
35 |
+
* Firewall (WAF)
|
36 |
+
Antispam includes a Web Application Firewall (WAF) that identifies and blocks malicious traffic. It runs at the endpoint, enabling deep integration with WordPress. Unlike cloud alternatives it does not break encryption, cannot be bypassed and cannot leak data.
|
37 |
+
* Malware scanner
|
38 |
+
An integrated malware scanner blocks requests that include malicious code or content. Defends against brute force attacks by limiting login attempts, enforcing strong passwords and other login security measures.
|
39 |
+
* Real-time IP Blacklist
|
40 |
+
Real-time IP Blacklist, which blocks all requests from the most malicious IPs, protecting your site while reducing load.
|
41 |
+
* WordPress Security Scanner
|
42 |
+
The scanner checks core files, themes and plugins for malware, bad URLs, backdoors, SEO spam, malicious redirects and code injections.
|
43 |
+
* Repier Files
|
44 |
+
It also compares your files with what is in the WordPress.org repository, checking their integrity and reporting any changes to you.Repair files that have changed by overwriting them with a pristine, original version and easily delete any files that don't belong.
|
45 |
+
* Detect Malicious Code in WordPress Themes and Plugins
|
46 |
+
It also checks your site for known security vulnerabilities, abandoned and closed plugins. Content safety checks ensure that your files, posts and comments don't contain dangerous URLs or suspicious content.
|
47 |
+
|
48 |
+
|
49 |
== Installation ==
|
50 |
|
51 |
1. Install and activate the plugin on the Plugins page
|
130 |
|
131 |
|
132 |
== Changelog ==
|
133 |
+
= 6.5.4 - 24.01.2020 =
|
134 |
+
* Fixed: Minor bugs.
|
135 |
+
* Fixed: Compatibility Anti-spam Pro.
|
136 |
+
|
137 |
+
= 6.5.3 - 08.01.2020 =
|
138 |
+
* Removed: Admin redirect to the premium page.
|
139 |
+
* Updated: Premium page.
|
140 |
+
* Added: Activate trial suggestion.
|
141 |
+
* Fixed: Minor bugs.
|
142 |
+
|
143 |
= 6.5.1 - 16.12.2019 =
|
144 |
* Added: Multisite support.
|
145 |
* Fixed: Bug with redirection loop in multisite mode.
|