Version Description
- Added: Automatically generation an image for each post from the post title and sets it as the featured image
- Added: Settings for featured image generation
- Added: Support for Wordpress mobile apps (automatic add featured image when creating/updating a post)
- Redesigned Settings page
- Fixed: "Metadata error" when trying to download an image from photobank
- Fixed: In some cases the plugin did not find images in the post text
- Fixed: (PRO) In the automatic generation filter, you can select a custom post type if it is displayed on the frontend
- Many other minor changes and bugfixes
Download this release
Release Info
Developer | webtemyk |
Plugin | Auto Post Thumbnail |
Version | 3.7.0 |
Comparing to | |
See all releases |
Code changes from version 3.5.1 to 3.7.0
- admin/assets/css/settings.css +128 -0
- admin/assets/css/style.css +71 -12
- admin/assets/css/tabs.css +221 -0
- admin/assets/img/api-icon.png +0 -0
- admin/assets/img/apt.svg +13 -13
- admin/assets/img/bg.jpg +0 -0
- admin/assets/img/image-icon.png +0 -0
- admin/assets/img/premium_filter.png +0 -0
- admin/assets/img/selected.png +0 -0
- admin/assets/img/settings-icon.png +0 -0
- admin/assets/img/transparent.png +0 -0
- admin/assets/jquery-ui/jquery-ui.min.css +6 -6
- admin/assets/jquery-ui/jquery-ui.progressbar.min.js +5 -5
- admin/assets/js/admin-thumbnail.js +18 -5
- admin/assets/js/check-api.js +48 -0
- admin/assets/js/jscolor.js +1855 -0
- admin/assets/js/settings.js +11 -0
- admin/assets/js/upload-font.js +68 -0
- admin/class-wapt-activation.php +10 -2
- admin/class-wapt-page.php +8 -3
- admin/pages/generate.php +1 -1
- admin/pages/license.php +4 -4
- admin/pages/settings.php +365 -10
- admin/views/pro.php +1 -1
- admin/views/pro_column.php +1 -1
- admin/views/sources/google.php +40 -27
- admin/views/tab-about.php +198 -34
- admin/views/tab-license.php +23 -23
- admin/views/tab-main.php +159 -56
- admin/views/tab-settings.php +137 -39
- auto-post-thumbnail.php +9 -7
- fonts/Arial.ttf +0 -0
- fonts/Segoeui.ttf +0 -0
- fonts/Tahoma.ttf +0 -0
- includes/class-wapt-base.php +621 -75
- includes/class-wapt-image.php +450 -0
- includes/class-wapt-plugin.php +43 -33
- includes/controls/class.color.php +56 -0
- includes/controls/class.fonts.php +93 -0
- includes/controls/class.mediabutton.php +109 -0
- languages/apt-en_US.mo +0 -0
- languages/apt-en_US.po +407 -165
- languages/apt-ru_RU.mo +0 -0
- languages/apt-ru_RU.po +624 -249
- languages/apt.pot +602 -166
- libs/factory/adverts/boot.php +12 -12
- libs/factory/adverts/includes/class-base.php +6 -6
- libs/factory/adverts/includes/class-dashboard-widget.php +4 -4
- libs/factory/adverts/includes/class-rest-request.php +8 -8
- libs/factory/adverts/langs/wbcr_factory_adverts_106-ru_RU.mo +0 -0
- libs/factory/adverts/langs/wbcr_factory_adverts_106-ru_RU.po +83 -0
- 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.datetimepicker.min.css +1 -1
- 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.form-metabox.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/bootstrap.tab.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/bootstrap.wp-editor.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.checkbox.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.color-and-opacity.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.color.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.dropdown-and-colors.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.dropdown.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.fonts.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.list.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.pattern.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/control.radio-colors.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/holder.more-link.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/plugin.gradient-picker.min.css +1 -1
- libs/factory/bootstrap/assets/css-min/plugin.paddings-editor.min.css +1 -1
- libs/factory/bootstrap/assets/js-min/bootstrap.accordion.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/bootstrap.collapse.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/bootstrap.datetimepicker.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/bootstrap.modal.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.checkbox.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.color-and-opacity.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.color.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.dropdown-and-colors.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.dropdown.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.fonts.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.gradient.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/control.integer.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/assets/js-min/control.pattern.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/holder.more-link.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/plugin.gradient-picker.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/plugin.iris.min.js +1 -1
- libs/factory/bootstrap/assets/js-min/plugin.paddings-editor.min.js +1 -1
- libs/factory/bootstrap/boot.php +9 -9
- libs/factory/bootstrap/includes/functions.php +13 -63
- 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 +2 -2
- 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 +100 -84
- 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 +5 -5
- 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 +36 -22
- 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_425-ru_RU.mo +0 -0
- libs/factory/core/langs/wbcr_factory_425-ru_RU.po +128 -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 +4 -4
admin/assets/css/settings.css
ADDED
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.wapt-footer
|
2 |
+
{
|
3 |
+
padding: 0px 30px;
|
4 |
+
}
|
5 |
+
.factory-bootstrap-426 .factory-ajax-loader {
|
6 |
+
width: 120px !important;
|
7 |
+
background: url("../img/ajax-loader-line.gif") no-repeat center center !important;
|
8 |
+
background-size: contain !important;
|
9 |
+
display: block;
|
10 |
+
position: absolute;
|
11 |
+
left: 20px;
|
12 |
+
top: 5px;
|
13 |
+
}
|
14 |
+
.factory-bootstrap-426 select.form-control
|
15 |
+
{
|
16 |
+
display: inline;
|
17 |
+
background: #fff url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E) no-repeat right 5px top 55%;
|
18 |
+
background-size: 16px 16px !important;
|
19 |
+
}
|
20 |
+
|
21 |
+
.factory-from-control-integer input
|
22 |
+
{
|
23 |
+
width: 80px;
|
24 |
+
font-size: 16px !important;
|
25 |
+
}
|
26 |
+
.factory-bootstrap-426 .btn-default.active, .factory-bootstrap-426 .btn-default:active
|
27 |
+
{
|
28 |
+
text-shadow: none;
|
29 |
+
color: #fff !important;
|
30 |
+
background-color: #33aad5 !important;
|
31 |
+
-webkit-box-shadow: 0 1px 1px #0074a2 !important;
|
32 |
+
box-shadow: 0 1px 3px #0074a2 !important;
|
33 |
+
border-top: 1px solid;
|
34 |
+
border-bottom: 1px solid;
|
35 |
+
border-left: 1px solid;
|
36 |
+
border-color: #0074a2 !important;
|
37 |
+
}
|
38 |
+
div.control-group input, div.control-group select
|
39 |
+
{
|
40 |
+
box-shadow: 1px 1px 5px -2px #8e8d8d !important;
|
41 |
+
border: 1px solid #ccc !important;
|
42 |
+
}
|
43 |
+
select#wapt_font {border-radius: 3px 0px 0px 3px !important;}
|
44 |
+
div.control-group select optgroup
|
45 |
+
{
|
46 |
+
background-color: #e4e4e4;
|
47 |
+
}
|
48 |
+
|
49 |
+
div.control-group .btn-group
|
50 |
+
{
|
51 |
+
border: 0 !important;
|
52 |
+
}
|
53 |
+
.factory-control-text-align-vertical .btn
|
54 |
+
{
|
55 |
+
width: 60%;
|
56 |
+
display: block !important;
|
57 |
+
border-radius: 0 !important;
|
58 |
+
}
|
59 |
+
|
60 |
+
.wapt-image-preview-title
|
61 |
+
{
|
62 |
+
text-align: center;
|
63 |
+
vertical-align: middle;
|
64 |
+
}
|
65 |
+
.wapt-image-preview
|
66 |
+
{
|
67 |
+
background-color: #e8e8e8;
|
68 |
+
padding: 10px 20px 30px 20px;
|
69 |
+
}
|
70 |
+
.wapt-image-preview img
|
71 |
+
{
|
72 |
+
padding: 5px;
|
73 |
+
border: 1px solid #ccc !important;
|
74 |
+
border-radius: 5px !important;
|
75 |
+
box-shadow: 1px 1px 5px -2px #8e8d8d !important;
|
76 |
+
}
|
77 |
+
.wapt-form-color
|
78 |
+
{
|
79 |
+
background-color: #f1f1f1;
|
80 |
+
}
|
81 |
+
span.wapt-icon-pro,
|
82 |
+
.wapt-icon-pro input[class*="factory-"]:before,
|
83 |
+
.wapt-icon-pro button.factory-image:after,
|
84 |
+
.wapt-icon-pro ~ div.wapt-upload-div button.wapt-upload-button:after
|
85 |
+
{
|
86 |
+
display: inline-block;
|
87 |
+
position: absolute;
|
88 |
+
content: 'PRO';
|
89 |
+
background: #ff5722;
|
90 |
+
border-radius: 4px;
|
91 |
+
color: #fff;
|
92 |
+
font-size: 10px;
|
93 |
+
line-height: 1;
|
94 |
+
font-style: normal;
|
95 |
+
padding: 4px 6px;
|
96 |
+
margin-left: 4px;
|
97 |
+
vertical-align: top;
|
98 |
+
top: -10px;
|
99 |
+
left: auto;
|
100 |
+
right: -15px;
|
101 |
+
z-index: 11;
|
102 |
+
}
|
103 |
+
.wapt-icon-pro ~ div.wapt-upload-div button.wapt-upload-button:after
|
104 |
+
{
|
105 |
+
position: initial;
|
106 |
+
}
|
107 |
+
.wapt-icon-pro input[class*="factory-"] ~ span.factory-units:before
|
108 |
+
{
|
109 |
+
right: auto;
|
110 |
+
left: 0;
|
111 |
+
}
|
112 |
+
span.wapt-icon-pro
|
113 |
+
{
|
114 |
+
position: initial;
|
115 |
+
}
|
116 |
+
.wapt-icon-pro input[class*="factory-"],
|
117 |
+
.wapt-icon-pro button[class*="factory-"],
|
118 |
+
.wapt-icon-pro button[class*="wapt"],
|
119 |
+
.wapt-icon-pro img,
|
120 |
+
.wapt-icon-pro ~ div.wapt-upload-div button.wapt-upload-button
|
121 |
+
{
|
122 |
+
pointer-events: none;
|
123 |
+
cursor: not-allowed;
|
124 |
+
opacity: .65;
|
125 |
+
filter: alpha(opacity=65);
|
126 |
+
-webkit-box-shadow: none !important;
|
127 |
+
box-shadow: none !important;
|
128 |
+
}
|
admin/assets/css/style.css
CHANGED
@@ -69,29 +69,53 @@
|
|
69 |
{
|
70 |
width: 100px;
|
71 |
}
|
72 |
-
|
73 |
{
|
74 |
float: left;
|
75 |
margin: 5px;
|
76 |
-
cursor: pointer;
|
77 |
-
border-radius: 5px;
|
78 |
}
|
79 |
.column-apt
|
80 |
{
|
81 |
float: left;
|
82 |
margin: 5px;
|
83 |
}
|
84 |
-
.
|
85 |
{
|
|
|
|
|
|
|
|
|
86 |
border-radius: 5px;
|
87 |
-
box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
input
|
96 |
{
|
97 |
padding:7px 7px 7px 9px;
|
@@ -151,4 +175,39 @@ input
|
|
151 |
{
|
152 |
font-weight: bold;
|
153 |
color: red;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
}
|
69 |
{
|
70 |
width: 100px;
|
71 |
}
|
72 |
+
.apt_thumbs
|
73 |
{
|
74 |
float: left;
|
75 |
margin: 5px;
|
|
|
|
|
76 |
}
|
77 |
.column-apt
|
78 |
{
|
79 |
float: left;
|
80 |
margin: 5px;
|
81 |
}
|
82 |
+
.wapt-image-box
|
83 |
{
|
84 |
+
overflow: hidden;
|
85 |
+
display: flex;
|
86 |
+
width: 100%;
|
87 |
+
height: 100%;
|
88 |
border-radius: 5px;
|
89 |
+
box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.2);
|
90 |
+
border: 1px solid #ccc;
|
91 |
+
}
|
92 |
+
.wapt-item-generated
|
93 |
+
{
|
94 |
+
color: #000000;
|
95 |
+
font-weight: 500;
|
96 |
+
font-size: 16px;
|
97 |
+
text-align: center;
|
98 |
+
margin: auto;
|
99 |
+
padding: 0 15px;
|
100 |
+
line-height: 1.3;
|
101 |
+
}
|
102 |
+
|
103 |
+
li.wapt-grid-item
|
104 |
+
{
|
105 |
+
width: 180px;
|
106 |
+
height: 180px;
|
107 |
+
cursor: pointer;
|
108 |
+
}
|
109 |
+
.wapt-grid-item {
|
110 |
+
float: left;
|
111 |
+
margin: 5px;
|
112 |
+
}
|
113 |
+
.wapt-image-box-checked
|
114 |
+
{
|
115 |
+
opacity: 0.5;
|
116 |
+
filter: alpha(opacity=50); /* For IE8 and earlier */
|
117 |
+
box-shadow: inset 0 0 1px 5px #0073aa, inset 0 0 2px 7px #fff;
|
118 |
+
}
|
119 |
input
|
120 |
{
|
121 |
padding:7px 7px 7px 9px;
|
175 |
{
|
176 |
font-weight: bold;
|
177 |
color: red;
|
178 |
+
}
|
179 |
+
/*Filters block*/
|
180 |
+
.apt-filter-row
|
181 |
+
{
|
182 |
+
background: #ffffff;
|
183 |
+
padding: 20px 10px 20px 10px;
|
184 |
+
margin: 10px 0px 10px 0px !important;
|
185 |
+
border: 1px solid #0085ba;
|
186 |
+
border-radius: 10px;
|
187 |
+
}
|
188 |
+
|
189 |
+
.apt-filter-input
|
190 |
+
{
|
191 |
+
width: 150px;
|
192 |
+
}
|
193 |
+
|
194 |
+
.apt-filter-label
|
195 |
+
{
|
196 |
+
font-size: 15px;
|
197 |
+
margin-top: 5px;
|
198 |
+
margin-left: 5px;
|
199 |
+
margin-right: 5px;
|
200 |
+
}
|
201 |
+
|
202 |
+
.checked_api_key_ok
|
203 |
+
{
|
204 |
+
border: 2px solid green !important;
|
205 |
+
}
|
206 |
+
.checked_api_key_fail
|
207 |
+
{
|
208 |
+
border: 2px solid red !important;
|
209 |
+
}
|
210 |
+
.checked_api_key_proccess
|
211 |
+
{
|
212 |
+
background: #fff url('../img/ajax-loader.gif') 98%/25px no-repeat !important;
|
213 |
}
|
admin/assets/css/tabs.css
ADDED
@@ -0,0 +1,221 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#wpcontent
|
2 |
+
{
|
3 |
+
padding-left: 0 !important;
|
4 |
+
background-color: white !important;
|
5 |
+
}
|
6 |
+
#wpbody-content
|
7 |
+
{
|
8 |
+
/*height: 100vh;*/
|
9 |
+
}
|
10 |
+
a:active, a:focus {
|
11 |
+
outline: none !important;
|
12 |
+
box-shadow: none !important;
|
13 |
+
}
|
14 |
+
.wis-container {
|
15 |
+
/*padding: 0px 30px 0px 10px;*/
|
16 |
+
padding: 1px 0 0 0;
|
17 |
+
background-color: #ffffff;
|
18 |
+
}
|
19 |
+
.tabs {
|
20 |
+
position: relative;
|
21 |
+
width: 100%;
|
22 |
+
overflow: hidden;
|
23 |
+
margin: 1em 0 2em;
|
24 |
+
font-weight: 400;
|
25 |
+
}
|
26 |
+
|
27 |
+
/* Nav */
|
28 |
+
.tabs nav {
|
29 |
+
text-align: left;
|
30 |
+
margin-bottom: -4px;
|
31 |
+
}
|
32 |
+
|
33 |
+
.tabs nav ul {
|
34 |
+
padding: 0;
|
35 |
+
margin: 0;
|
36 |
+
list-style: none;
|
37 |
+
display: inline-block;
|
38 |
+
margin-left: 25px;
|
39 |
+
}
|
40 |
+
|
41 |
+
.tabs nav ul li {
|
42 |
+
border: 1px solid #ccc;
|
43 |
+
border-bottom: none;
|
44 |
+
border-top-left-radius: 10px;
|
45 |
+
border-top-right-radius: 10px;
|
46 |
+
border-bottom-right-radius: 0px;
|
47 |
+
border-bottom-left-radius: 0px;
|
48 |
+
margin: 0 0.25em;
|
49 |
+
display: block;
|
50 |
+
float: left;
|
51 |
+
position: relative;
|
52 |
+
width: 20em;
|
53 |
+
background-color: #f1f1f1;
|
54 |
+
}
|
55 |
+
.tabs nav ul li:hover {
|
56 |
+
background-color: white;
|
57 |
+
}
|
58 |
+
.tabs nav li.tab-current {
|
59 |
+
border: 1px solid #006303;
|
60 |
+
box-shadow: inset 0px 5px 4px -3px #ff7600;
|
61 |
+
border-top-left-radius: 10px;
|
62 |
+
border-top-right-radius: 10px;
|
63 |
+
border-bottom-right-radius: 0px;
|
64 |
+
border-bottom-left-radius: 0px;
|
65 |
+
border-bottom: none;
|
66 |
+
z-index: 100;
|
67 |
+
background-color: #f1f1f1;
|
68 |
+
}
|
69 |
+
|
70 |
+
.tabs nav li.tab-current:before,
|
71 |
+
.tabs nav li.tab-current:after {
|
72 |
+
content: '';
|
73 |
+
position: absolute;
|
74 |
+
height: 1px;
|
75 |
+
right: 100%;
|
76 |
+
bottom: 0;
|
77 |
+
width: 1000px;
|
78 |
+
background: #006303;
|
79 |
+
}
|
80 |
+
|
81 |
+
.tabs nav li.tab-current:after {
|
82 |
+
right: auto;
|
83 |
+
left: 100%;
|
84 |
+
width: 4000px;
|
85 |
+
}
|
86 |
+
|
87 |
+
.tabs nav a {
|
88 |
+
color: #becbd2;
|
89 |
+
display: block;
|
90 |
+
font-size: 1.45em;
|
91 |
+
line-height: 2.5;
|
92 |
+
padding: 0 1.25em;
|
93 |
+
white-space: nowrap;
|
94 |
+
}
|
95 |
+
|
96 |
+
.tabs nav a:hover {
|
97 |
+
color: #006303;
|
98 |
+
}
|
99 |
+
|
100 |
+
.tabs nav li.tab-current a {
|
101 |
+
color: #006303;
|
102 |
+
font-weight: bold;
|
103 |
+
outline: none !important;
|
104 |
+
}
|
105 |
+
|
106 |
+
/* Icons */
|
107 |
+
.tabs nav a:before {
|
108 |
+
display: inline-block;
|
109 |
+
vertical-align: middle;
|
110 |
+
text-transform: none;
|
111 |
+
font-weight: normal;
|
112 |
+
font-variant: normal;
|
113 |
+
line-height: 1;
|
114 |
+
speak: none;
|
115 |
+
-webkit-font-smoothing: antialiased;
|
116 |
+
margin: -0.25em 0.4em 0 0;
|
117 |
+
}
|
118 |
+
|
119 |
+
.icon-general:before {
|
120 |
+
content: url(../img/settings-icon.png);
|
121 |
+
}
|
122 |
+
.icon-image:before {
|
123 |
+
content: url(../img/image-icon.png);
|
124 |
+
}
|
125 |
+
.icon-api:before {
|
126 |
+
content: url(../img/api-icon.png);
|
127 |
+
}
|
128 |
+
|
129 |
+
|
130 |
+
/* Content */
|
131 |
+
.content
|
132 |
+
{
|
133 |
+
border-bottom: 1px solid #006303;
|
134 |
+
border-top: 0;
|
135 |
+
background-color: #f1f1f1;
|
136 |
+
padding: 10px 30px;
|
137 |
+
/*height: 100vh;*/
|
138 |
+
}
|
139 |
+
.content section {
|
140 |
+
|
141 |
+
/*padding: 1em 2em;*/
|
142 |
+
max-width: 1230px;
|
143 |
+
margin: 0 auto;
|
144 |
+
}
|
145 |
+
|
146 |
+
.content section:before,
|
147 |
+
.content section:after {
|
148 |
+
content: '';
|
149 |
+
display: table;
|
150 |
+
}
|
151 |
+
|
152 |
+
.content section:after {
|
153 |
+
clear: both;
|
154 |
+
}
|
155 |
+
|
156 |
+
/* Fallback example */
|
157 |
+
.no-js .content section {
|
158 |
+
display: block;
|
159 |
+
padding-bottom: 2em;
|
160 |
+
border-bottom: 1px solid #006303;
|
161 |
+
}
|
162 |
+
|
163 |
+
.content section.content-current {
|
164 |
+
display: block;
|
165 |
+
}
|
166 |
+
|
167 |
+
/* Example media queries */
|
168 |
+
|
169 |
+
@media screen and (max-width: 52.375em) {
|
170 |
+
.tabs nav a span {
|
171 |
+
display: none;
|
172 |
+
}
|
173 |
+
|
174 |
+
.tabs nav a:before {
|
175 |
+
margin-right: 0;
|
176 |
+
}
|
177 |
+
}
|
178 |
+
|
179 |
+
@media screen and (max-width: 32em) {
|
180 |
+
.tabs nav ul,
|
181 |
+
.tabs nav ul li a {
|
182 |
+
width: 100%;
|
183 |
+
padding: 0;
|
184 |
+
}
|
185 |
+
|
186 |
+
.tabs nav ul li {
|
187 |
+
width: 20%;
|
188 |
+
width: calc(20% + 1px);
|
189 |
+
margin: 0 0 0 -1px;
|
190 |
+
}
|
191 |
+
|
192 |
+
.tabs nav ul li:last-child {
|
193 |
+
border-right: none;
|
194 |
+
}
|
195 |
+
}
|
196 |
+
|
197 |
+
.tabs nav li a {
|
198 |
+
color: #006303;
|
199 |
+
text-decoration: none;
|
200 |
+
outline: none !important;
|
201 |
+
}
|
202 |
+
|
203 |
+
.tabs nav li a:hover {
|
204 |
+
font-weight: bold;
|
205 |
+
}
|
206 |
+
|
207 |
+
p.info {
|
208 |
+
text-align: center;
|
209 |
+
padding: 20px;
|
210 |
+
}
|
211 |
+
.wapt-page-title
|
212 |
+
{
|
213 |
+
text-align: center;
|
214 |
+
padding: 10px 0;
|
215 |
+
}
|
216 |
+
.wapt-page-title h1
|
217 |
+
{
|
218 |
+
vertical-align: middle;
|
219 |
+
color: #000000;
|
220 |
+
text-shadow: 1px 1px 1px #ccc;
|
221 |
+
}
|
admin/assets/img/api-icon.png
ADDED
Binary file
|
admin/assets/img/apt.svg
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
-
<?xml version="1.0" standalone="no"?>
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
3 |
-
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
4 |
-
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
5 |
-
width="99.000000pt" height="95.000000pt" viewBox="0 0 99.000000 95.000000"
|
6 |
-
preserveAspectRatio="xMidYMid meet">
|
7 |
-
<metadata>
|
8 |
-
Created by potrace 1.15, written by Peter Selinger 2001-2017
|
9 |
-
</metadata>
|
10 |
-
<g transform="translate(0.000000,95.000000) scale(0.100000,-0.100000)"
|
11 |
-
fill="#000000" stroke="none">
|
12 |
-
</g>
|
13 |
-
</svg>
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
3 |
+
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
4 |
+
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
5 |
+
width="99.000000pt" height="95.000000pt" viewBox="0 0 99.000000 95.000000"
|
6 |
+
preserveAspectRatio="xMidYMid meet">
|
7 |
+
<metadata>
|
8 |
+
Created by potrace 1.15, written by Peter Selinger 2001-2017
|
9 |
+
</metadata>
|
10 |
+
<g transform="translate(0.000000,95.000000) scale(0.100000,-0.100000)"
|
11 |
+
fill="#000000" stroke="none">
|
12 |
+
</g>
|
13 |
+
</svg>
|
admin/assets/img/bg.jpg
ADDED
Binary file
|
admin/assets/img/image-icon.png
ADDED
Binary file
|
admin/assets/img/premium_filter.png
ADDED
Binary file
|
admin/assets/img/selected.png
ADDED
Binary file
|
admin/assets/img/settings-icon.png
ADDED
Binary file
|
admin/assets/img/transparent.png
ADDED
Binary file
|
admin/assets/jquery-ui/jquery-ui.min.css
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
/*! jQuery UI - v1.12.1 - 2019-07-26
|
2 |
-
* http://jqueryui.com
|
3 |
-
* Includes: core.css, progressbar.css, theme.css
|
4 |
-
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=start&cornerRadiusShadow=5px&offsetLeftShadow=5px&offsetTopShadow=5px&thicknessShadow=0px&opacityShadow=45&bgImgOpacityShadow=55&bgTextureShadow=flat&bgColorShadow=999999&opacityOverlay=30&bgImgOpacityOverlay=75&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=fcd113&fcError=ffffff&borderColorError=cd0a0a&bgImgOpacityError=45&bgTextureError=gloss_wave&bgColorError=e14f1c&iconColorHighlight=f7a50d&fcHighlight=915608&borderColorHighlight=fcd113&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=f8da4e&iconColorActive=f5e175&fcActive=ffffff&borderColorActive=acdd4a&bgImgOpacityActive=50&bgTextureActive=gloss_wave&bgColorActive=6eac2c&iconColorHover=056b93&fcHover=026890&borderColorHover=448dae&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=79c9ec&iconColorDefault=e0fdff&fcDefault=ffffff&borderColorDefault=77d5f7&bgImgOpacityDefault=45&bgTextureDefault=glass&bgColorDefault=0078ae&iconColorContent=0078ae&fcContent=222222&borderColorContent=a6c9e2&bgImgOpacityContent=100&bgTextureContent=inset_hard&bgColorContent=fcfdfd&iconColorHeader=d8e7f3&fcHeader=eaf5f7&borderColorHeader=4297d7&bgImgOpacityHeader=75&bgTextureHeader=gloss_wave&bgColorHeader=2191c0&cornerRadius=5px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif
|
5 |
-
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
6 |
-
|
7 |
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #77d5f7}.ui-widget-content{border:1px solid #a6c9e2;background:#fcfdfd url("images/ui-bg_inset-hard_100_fcfdfd_1x100.png") 50% bottom repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #4297d7;background:#2191c0 url("images/ui-bg_gloss-wave_75_2191c0_500x100.png") 50% 50% repeat-x;color:#eaf5f7;font-weight:bold}.ui-widget-header a{color:#eaf5f7}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #77d5f7;background:#0078ae url("images/ui-bg_glass_45_0078ae_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#fff;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #448dae;background:#79c9ec url("images/ui-bg_glass_75_79c9ec_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#026890}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#026890;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #acdd4a;background:#6eac2c url("images/ui-bg_gloss-wave_50_6eac2c_500x100.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#acdd4a;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcd113;background:#f8da4e url("images/ui-bg_glass_55_f8da4e_1x400.png") 50% 50% repeat-x;color:#915608}.ui-state-checked{border:1px solid #fcd113;background:#f8da4e}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#915608}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#e14f1c url("images/ui-bg_gloss-wave_45_e14f1c_500x100.png") 50% top repeat-x;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_0078ae_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_d8e7f3_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_056b93_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_f5e175_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_f7a50d_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_fcd113_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_e0fdff_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:5px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:5px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:5px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:5px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:5px 5px 0 #999;box-shadow:5px 5px 0 #999}
|
1 |
+
/*! jQuery UI - v1.12.1 - 2019-07-26
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: core.css, progressbar.css, theme.css
|
4 |
+
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=start&cornerRadiusShadow=5px&offsetLeftShadow=5px&offsetTopShadow=5px&thicknessShadow=0px&opacityShadow=45&bgImgOpacityShadow=55&bgTextureShadow=flat&bgColorShadow=999999&opacityOverlay=30&bgImgOpacityOverlay=75&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=fcd113&fcError=ffffff&borderColorError=cd0a0a&bgImgOpacityError=45&bgTextureError=gloss_wave&bgColorError=e14f1c&iconColorHighlight=f7a50d&fcHighlight=915608&borderColorHighlight=fcd113&bgImgOpacityHighlight=55&bgTextureHighlight=glass&bgColorHighlight=f8da4e&iconColorActive=f5e175&fcActive=ffffff&borderColorActive=acdd4a&bgImgOpacityActive=50&bgTextureActive=gloss_wave&bgColorActive=6eac2c&iconColorHover=056b93&fcHover=026890&borderColorHover=448dae&bgImgOpacityHover=75&bgTextureHover=glass&bgColorHover=79c9ec&iconColorDefault=e0fdff&fcDefault=ffffff&borderColorDefault=77d5f7&bgImgOpacityDefault=45&bgTextureDefault=glass&bgColorDefault=0078ae&iconColorContent=0078ae&fcContent=222222&borderColorContent=a6c9e2&bgImgOpacityContent=100&bgTextureContent=inset_hard&bgColorContent=fcfdfd&iconColorHeader=d8e7f3&fcHeader=eaf5f7&borderColorHeader=4297d7&bgImgOpacityHeader=75&bgTextureHeader=gloss_wave&bgColorHeader=2191c0&cornerRadius=5px&fsDefault=1.1em&fwDefault=normal&ffDefault=Verdana%2CArial%2Csans-serif
|
5 |
+
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
6 |
+
|
7 |
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #77d5f7}.ui-widget-content{border:1px solid #a6c9e2;background:#fcfdfd url("images/ui-bg_inset-hard_100_fcfdfd_1x100.png") 50% bottom repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #4297d7;background:#2191c0 url("images/ui-bg_gloss-wave_75_2191c0_500x100.png") 50% 50% repeat-x;color:#eaf5f7;font-weight:bold}.ui-widget-header a{color:#eaf5f7}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #77d5f7;background:#0078ae url("images/ui-bg_glass_45_0078ae_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#fff;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #448dae;background:#79c9ec url("images/ui-bg_glass_75_79c9ec_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#026890}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#026890;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #acdd4a;background:#6eac2c url("images/ui-bg_gloss-wave_50_6eac2c_500x100.png") 50% 50% repeat-x;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#acdd4a;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcd113;background:#f8da4e url("images/ui-bg_glass_55_f8da4e_1x400.png") 50% 50% repeat-x;color:#915608}.ui-state-checked{border:1px solid #fcd113;background:#f8da4e}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#915608}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#e14f1c url("images/ui-bg_gloss-wave_45_e14f1c_500x100.png") 50% top repeat-x;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_0078ae_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_d8e7f3_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_056b93_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_f5e175_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_f7a50d_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_fcd113_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_e0fdff_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:5px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:5px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:5px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:5px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:5px 5px 0 #999;box-shadow:5px 5px 0 #999}
|
admin/assets/jquery-ui/jquery-ui.progressbar.min.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
/*! jQuery UI - v1.12.1 - 2019-07-26
|
2 |
-
* http://jqueryui.com
|
3 |
-
* Includes: widget.js, widgets/progressbar.js
|
4 |
-
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
5 |
-
|
6 |
(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}})});
|
1 |
+
/*! jQuery UI - v1.12.1 - 2019-07-26
|
2 |
+
* http://jqueryui.com
|
3 |
+
* Includes: widget.js, widgets/progressbar.js
|
4 |
+
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
5 |
+
|
6 |
(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,t.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}})});
|
admin/assets/js/admin-thumbnail.js
CHANGED
@@ -9,10 +9,22 @@
|
|
9 |
*
|
10 |
* global ajaxurl, apt_thumb - language array
|
11 |
*/
|
12 |
-
|
13 |
//Отображение окна со всеми картинками в тексте поста
|
14 |
jQuery(document).ready(function($){
|
15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
window.aptModalShow = function(that, postid, wpnonce){
|
17 |
|
18 |
var $modal = $('#post_imgs_'+postid).find('> p');
|
@@ -20,7 +32,7 @@ jQuery(document).ready(function($){
|
|
20 |
//$modal.html('');
|
21 |
$('.imgs').find('> p').html(''); //очистка всех модальных окон, чтобы исключить конфликты
|
22 |
|
23 |
-
tb_show( apt_thumb.modal_title, '/?TB_inline&inlineId=post_imgs_'+postid+'&width=
|
24 |
|
25 |
$ajaximg.show();
|
26 |
// AJAX запрос для загрузки контента окна
|
@@ -32,13 +44,14 @@ jQuery(document).ready(function($){
|
|
32 |
}).done( function( html ) {
|
33 |
$ajaximg.hide();
|
34 |
$modal.html(html);
|
35 |
-
$('#
|
36 |
columns: 3,
|
37 |
-
classname: '
|
38 |
min: 1
|
39 |
});
|
40 |
});
|
41 |
|
42 |
//return false; // для ссылки
|
43 |
}
|
44 |
-
});
|
|
9 |
*
|
10 |
* global ajaxurl, apt_thumb - language array
|
11 |
*/
|
12 |
+
(function($){
|
13 |
//Отображение окна со всеми картинками в тексте поста
|
14 |
jQuery(document).ready(function($){
|
15 |
|
16 |
+
jQuery(document).on('click', '#hide_notice_auto_generation', function(e) {
|
17 |
+
e.preventDefault();
|
18 |
+
jQuery('#notice_auto_generation').animate({opacity: 'hide' , height: 'hide'}, 200);
|
19 |
+
jQuery.post ( ajaxurl, {
|
20 |
+
action: 'hide_notice_auto_generation',
|
21 |
+
}).done( function( html ) {
|
22 |
+
console.log('Hided');
|
23 |
+
});
|
24 |
+
|
25 |
+
});
|
26 |
+
|
27 |
+
|
28 |
window.aptModalShow = function(that, postid, wpnonce){
|
29 |
|
30 |
var $modal = $('#post_imgs_'+postid).find('> p');
|
32 |
//$modal.html('');
|
33 |
$('.imgs').find('> p').html(''); //очистка всех модальных окон, чтобы исключить конфликты
|
34 |
|
35 |
+
tb_show( apt_thumb.modal_title, '/?TB_inline&inlineId=post_imgs_'+postid+'&width=620&height=500' );
|
36 |
|
37 |
$ajaximg.show();
|
38 |
// AJAX запрос для загрузки контента окна
|
44 |
}).done( function( html ) {
|
45 |
$ajaximg.hide();
|
46 |
$modal.html(html);
|
47 |
+
$('#wapt_thumbs').autocolumnlist({
|
48 |
columns: 3,
|
49 |
+
classname: 'wapt-grid-item',
|
50 |
min: 1
|
51 |
});
|
52 |
});
|
53 |
|
54 |
//return false; // для ссылки
|
55 |
}
|
56 |
+
});
|
57 |
+
})(jQuery);
|
admin/assets/js/check-api.js
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
function check_api_google(provider)
|
2 |
+
{
|
3 |
+
provider_input = jQuery('#wapt_'+provider+'_apikey');
|
4 |
+
provider_input2 = jQuery('#wapt_'+provider+'_cse');
|
5 |
+
if(provider_input.val() !== "" || provider_input2.val() !== "") {
|
6 |
+
provider_input.addClass("checked_api_key_proccess");
|
7 |
+
provider_input2.addClass("checked_api_key_proccess");
|
8 |
+
jQuery.post(ajaxurl, {
|
9 |
+
action: 'apt_check_api_key',
|
10 |
+
provider: provider,
|
11 |
+
key: provider_input.val(),
|
12 |
+
key2: provider_input2.val(),
|
13 |
+
nonce: jQuery('#wapt_ajax_nonce').val(),
|
14 |
+
}).done(function (html) {
|
15 |
+
console.log(html);
|
16 |
+
provider_input.removeClass("checked_api_key_proccess");
|
17 |
+
provider_input2.removeClass("checked_api_key_proccess");
|
18 |
+
if (html) {
|
19 |
+
provider_input.removeClass("checked_api_key_fail");
|
20 |
+
provider_input2.removeClass("checked_api_key_fail");
|
21 |
+
provider_input.addClass("checked_api_key_ok");
|
22 |
+
provider_input2.addClass("checked_api_key_ok");
|
23 |
+
} else {
|
24 |
+
provider_input.removeClass("checked_api_key_ok");
|
25 |
+
provider_input2.removeClass("checked_api_key_ok");
|
26 |
+
provider_input.addClass("checked_api_key_fail");
|
27 |
+
provider_input2.addClass("checked_api_key_fail");
|
28 |
+
}
|
29 |
+
});
|
30 |
+
}
|
31 |
+
else if (provider_input.val() === "" && provider_input2.val() === "")
|
32 |
+
{
|
33 |
+
provider_input.removeClass("checked_api_key_proccess");
|
34 |
+
provider_input2.removeClass("checked_api_key_proccess");
|
35 |
+
provider_input.removeClass("checked_api_key_fail");
|
36 |
+
provider_input2.removeClass("checked_api_key_fail");
|
37 |
+
provider_input.removeClass("checked_api_key_ok");
|
38 |
+
provider_input2.removeClass("checked_api_key_ok");
|
39 |
+
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
jQuery(document).on('change', '#wapt_google_apikey', function(event) {
|
44 |
+
check_api_google('google');
|
45 |
+
});
|
46 |
+
jQuery(document).on('change', '#wapt_google_cse', function(event) {
|
47 |
+
check_api_google('google');
|
48 |
+
});
|
admin/assets/js/jscolor.js
ADDED
@@ -0,0 +1,1855 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* jscolor - JavaScript Color Picker
|
3 |
+
*
|
4 |
+
* @link http://jscolor.com
|
5 |
+
* @license For open source use: GPLv3
|
6 |
+
* For commercial use: JSColor Commercial License
|
7 |
+
* @author Jan Odvarko
|
8 |
+
* @version 2.0.5
|
9 |
+
*
|
10 |
+
* See usage examples at http://jscolor.com/examples/
|
11 |
+
*/
|
12 |
+
|
13 |
+
|
14 |
+
"use strict";
|
15 |
+
|
16 |
+
|
17 |
+
if (!window.jscolor) { window.jscolor = (function () {
|
18 |
+
|
19 |
+
|
20 |
+
var jsc = {
|
21 |
+
|
22 |
+
|
23 |
+
register : function () {
|
24 |
+
jsc.attachDOMReadyEvent(jsc.init);
|
25 |
+
jsc.attachEvent(document, 'mousedown', jsc.onDocumentMouseDown);
|
26 |
+
jsc.attachEvent(document, 'touchstart', jsc.onDocumentTouchStart);
|
27 |
+
jsc.attachEvent(window, 'resize', jsc.onWindowResize);
|
28 |
+
},
|
29 |
+
|
30 |
+
|
31 |
+
init : function () {
|
32 |
+
if (jsc.jscolor.lookupClass) {
|
33 |
+
jsc.jscolor.installByClassName(jsc.jscolor.lookupClass);
|
34 |
+
}
|
35 |
+
},
|
36 |
+
|
37 |
+
|
38 |
+
tryInstallOnElements : function (elms, className) {
|
39 |
+
var matchClass = new RegExp('(^|\\s)(' + className + ')(\\s*(\\{[^}]*\\})|\\s|$)', 'i');
|
40 |
+
|
41 |
+
for (var i = 0; i < elms.length; i += 1) {
|
42 |
+
if (elms[i].type !== undefined && elms[i].type.toLowerCase() == 'color') {
|
43 |
+
if (jsc.isColorAttrSupported) {
|
44 |
+
// skip inputs of type 'color' if supported by the browser
|
45 |
+
continue;
|
46 |
+
}
|
47 |
+
}
|
48 |
+
var m;
|
49 |
+
if (!elms[i].jscolor && elms[i].className && (m = elms[i].className.match(matchClass))) {
|
50 |
+
var targetElm = elms[i];
|
51 |
+
var optsStr = null;
|
52 |
+
|
53 |
+
var dataOptions = jsc.getDataAttr(targetElm, 'jscolor');
|
54 |
+
if (dataOptions !== null) {
|
55 |
+
optsStr = dataOptions;
|
56 |
+
} else if (m[4]) {
|
57 |
+
optsStr = m[4];
|
58 |
+
}
|
59 |
+
|
60 |
+
var opts = {};
|
61 |
+
if (optsStr) {
|
62 |
+
try {
|
63 |
+
opts = (new Function ('return (' + optsStr + ')'))();
|
64 |
+
} catch(eParseError) {
|
65 |
+
jsc.warn('Error parsing jscolor options: ' + eParseError + ':\n' + optsStr);
|
66 |
+
}
|
67 |
+
}
|
68 |
+
targetElm.jscolor = new jsc.jscolor(targetElm, opts);
|
69 |
+
}
|
70 |
+
}
|
71 |
+
},
|
72 |
+
|
73 |
+
|
74 |
+
isColorAttrSupported : (function () {
|
75 |
+
var elm = document.createElement('input');
|
76 |
+
if (elm.setAttribute) {
|
77 |
+
elm.setAttribute('type', 'color');
|
78 |
+
if (elm.type.toLowerCase() == 'color') {
|
79 |
+
return true;
|
80 |
+
}
|
81 |
+
}
|
82 |
+
return false;
|
83 |
+
})(),
|
84 |
+
|
85 |
+
|
86 |
+
isCanvasSupported : (function () {
|
87 |
+
var elm = document.createElement('canvas');
|
88 |
+
return !!(elm.getContext && elm.getContext('2d'));
|
89 |
+
})(),
|
90 |
+
|
91 |
+
|
92 |
+
fetchElement : function (mixed) {
|
93 |
+
return typeof mixed === 'string' ? document.getElementById(mixed) : mixed;
|
94 |
+
},
|
95 |
+
|
96 |
+
|
97 |
+
isElementType : function (elm, type) {
|
98 |
+
return elm.nodeName.toLowerCase() === type.toLowerCase();
|
99 |
+
},
|
100 |
+
|
101 |
+
|
102 |
+
getDataAttr : function (el, name) {
|
103 |
+
var attrName = 'data-' + name;
|
104 |
+
var attrValue = el.getAttribute(attrName);
|
105 |
+
if (attrValue !== null) {
|
106 |
+
return attrValue;
|
107 |
+
}
|
108 |
+
return null;
|
109 |
+
},
|
110 |
+
|
111 |
+
|
112 |
+
attachEvent : function (el, evnt, func) {
|
113 |
+
if (el.addEventListener) {
|
114 |
+
el.addEventListener(evnt, func, false);
|
115 |
+
} else if (el.attachEvent) {
|
116 |
+
el.attachEvent('on' + evnt, func);
|
117 |
+
}
|
118 |
+
},
|
119 |
+
|
120 |
+
|
121 |
+
detachEvent : function (el, evnt, func) {
|
122 |
+
if (el.removeEventListener) {
|
123 |
+
el.removeEventListener(evnt, func, false);
|
124 |
+
} else if (el.detachEvent) {
|
125 |
+
el.detachEvent('on' + evnt, func);
|
126 |
+
}
|
127 |
+
},
|
128 |
+
|
129 |
+
|
130 |
+
_attachedGroupEvents : {},
|
131 |
+
|
132 |
+
|
133 |
+
attachGroupEvent : function (groupName, el, evnt, func) {
|
134 |
+
if (!jsc._attachedGroupEvents.hasOwnProperty(groupName)) {
|
135 |
+
jsc._attachedGroupEvents[groupName] = [];
|
136 |
+
}
|
137 |
+
jsc._attachedGroupEvents[groupName].push([el, evnt, func]);
|
138 |
+
jsc.attachEvent(el, evnt, func);
|
139 |
+
},
|
140 |
+
|
141 |
+
|
142 |
+
detachGroupEvents : function (groupName) {
|
143 |
+
if (jsc._attachedGroupEvents.hasOwnProperty(groupName)) {
|
144 |
+
for (var i = 0; i < jsc._attachedGroupEvents[groupName].length; i += 1) {
|
145 |
+
var evt = jsc._attachedGroupEvents[groupName][i];
|
146 |
+
jsc.detachEvent(evt[0], evt[1], evt[2]);
|
147 |
+
}
|
148 |
+
delete jsc._attachedGroupEvents[groupName];
|
149 |
+
}
|
150 |
+
},
|
151 |
+
|
152 |
+
|
153 |
+
attachDOMReadyEvent : function (func) {
|
154 |
+
var fired = false;
|
155 |
+
var fireOnce = function () {
|
156 |
+
if (!fired) {
|
157 |
+
fired = true;
|
158 |
+
func();
|
159 |
+
}
|
160 |
+
};
|
161 |
+
|
162 |
+
if (document.readyState === 'complete') {
|
163 |
+
setTimeout(fireOnce, 1); // async
|
164 |
+
return;
|
165 |
+
}
|
166 |
+
|
167 |
+
if (document.addEventListener) {
|
168 |
+
document.addEventListener('DOMContentLoaded', fireOnce, false);
|
169 |
+
|
170 |
+
// Fallback
|
171 |
+
window.addEventListener('load', fireOnce, false);
|
172 |
+
|
173 |
+
} else if (document.attachEvent) {
|
174 |
+
// IE
|
175 |
+
document.attachEvent('onreadystatechange', function () {
|
176 |
+
if (document.readyState === 'complete') {
|
177 |
+
document.detachEvent('onreadystatechange', attachDOMReadyEvent);
|
178 |
+
fireOnce();
|
179 |
+
}
|
180 |
+
})
|
181 |
+
|
182 |
+
// Fallback
|
183 |
+
window.attachEvent('onload', fireOnce);
|
184 |
+
|
185 |
+
// IE7/8
|
186 |
+
if (document.documentElement.doScroll && window == window.top) {
|
187 |
+
var tryScroll = function () {
|
188 |
+
if (!document.body) { return; }
|
189 |
+
try {
|
190 |
+
document.documentElement.doScroll('left');
|
191 |
+
fireOnce();
|
192 |
+
} catch (e) {
|
193 |
+
setTimeout(tryScroll, 1);
|
194 |
+
}
|
195 |
+
};
|
196 |
+
tryScroll();
|
197 |
+
}
|
198 |
+
}
|
199 |
+
},
|
200 |
+
|
201 |
+
|
202 |
+
warn : function (msg) {
|
203 |
+
if (window.console && window.console.warn) {
|
204 |
+
window.console.warn(msg);
|
205 |
+
}
|
206 |
+
},
|
207 |
+
|
208 |
+
|
209 |
+
preventDefault : function (e) {
|
210 |
+
if (e.preventDefault) { e.preventDefault(); }
|
211 |
+
e.returnValue = false;
|
212 |
+
},
|
213 |
+
|
214 |
+
|
215 |
+
captureTarget : function (target) {
|
216 |
+
// IE
|
217 |
+
if (target.setCapture) {
|
218 |
+
jsc._capturedTarget = target;
|
219 |
+
jsc._capturedTarget.setCapture();
|
220 |
+
}
|
221 |
+
},
|
222 |
+
|
223 |
+
|
224 |
+
releaseTarget : function () {
|
225 |
+
// IE
|
226 |
+
if (jsc._capturedTarget) {
|
227 |
+
jsc._capturedTarget.releaseCapture();
|
228 |
+
jsc._capturedTarget = null;
|
229 |
+
}
|
230 |
+
},
|
231 |
+
|
232 |
+
|
233 |
+
fireEvent : function (el, evnt) {
|
234 |
+
if (!el) {
|
235 |
+
return;
|
236 |
+
}
|
237 |
+
if (document.createEvent) {
|
238 |
+
var ev = document.createEvent('HTMLEvents');
|
239 |
+
ev.initEvent(evnt, true, true);
|
240 |
+
el.dispatchEvent(ev);
|
241 |
+
} else if (document.createEventObject) {
|
242 |
+
var ev = document.createEventObject();
|
243 |
+
el.fireEvent('on' + evnt, ev);
|
244 |
+
} else if (el['on' + evnt]) { // alternatively use the traditional event model
|
245 |
+
el['on' + evnt]();
|
246 |
+
}
|
247 |
+
},
|
248 |
+
|
249 |
+
|
250 |
+
classNameToList : function (className) {
|
251 |
+
return className.replace(/^\s+|\s+$/g, '').split(/\s+/);
|
252 |
+
},
|
253 |
+
|
254 |
+
|
255 |
+
// The className parameter (str) can only contain a single class name
|
256 |
+
hasClass : function (elm, className) {
|
257 |
+
if (!className) {
|
258 |
+
return false;
|
259 |
+
}
|
260 |
+
return -1 != (' ' + elm.className.replace(/\s+/g, ' ') + ' ').indexOf(' ' + className + ' ');
|
261 |
+
},
|
262 |
+
|
263 |
+
|
264 |
+
// The className parameter (str) can contain multiple class names separated by whitespace
|
265 |
+
setClass : function (elm, className) {
|
266 |
+
var classList = jsc.classNameToList(className);
|
267 |
+
for (var i = 0; i < classList.length; i += 1) {
|
268 |
+
if (!jsc.hasClass(elm, classList[i])) {
|
269 |
+
elm.className += (elm.className ? ' ' : '') + classList[i];
|
270 |
+
}
|
271 |
+
}
|
272 |
+
},
|
273 |
+
|
274 |
+
|
275 |
+
// The className parameter (str) can contain multiple class names separated by whitespace
|
276 |
+
unsetClass : function (elm, className) {
|
277 |
+
var classList = jsc.classNameToList(className);
|
278 |
+
for (var i = 0; i < classList.length; i += 1) {
|
279 |
+
var repl = new RegExp(
|
280 |
+
'^\\s*' + classList[i] + '\\s*|' +
|
281 |
+
'\\s*' + classList[i] + '\\s*$|' +
|
282 |
+
'\\s+' + classList[i] + '(\\s+)',
|
283 |
+
'g'
|
284 |
+
);
|
285 |
+
elm.className = elm.className.replace(repl, '$1');
|
286 |
+
}
|
287 |
+
},
|
288 |
+
|
289 |
+
|
290 |
+
getStyle : function (elm) {
|
291 |
+
return window.getComputedStyle ? window.getComputedStyle(elm) : elm.currentStyle;
|
292 |
+
},
|
293 |
+
|
294 |
+
|
295 |
+
setStyle : (function () {
|
296 |
+
var helper = document.createElement('div');
|
297 |
+
var getSupportedProp = function (names) {
|
298 |
+
for (var i = 0; i < names.length; i += 1) {
|
299 |
+
if (names[i] in helper.style) {
|
300 |
+
return names[i];
|
301 |
+
}
|
302 |
+
}
|
303 |
+
};
|
304 |
+
var props = {
|
305 |
+
borderRadius: getSupportedProp(['borderRadius', 'MozBorderRadius', 'webkitBorderRadius']),
|
306 |
+
boxShadow: getSupportedProp(['boxShadow', 'MozBoxShadow', 'webkitBoxShadow'])
|
307 |
+
};
|
308 |
+
return function (elm, prop, value) {
|
309 |
+
switch (prop.toLowerCase()) {
|
310 |
+
case 'opacity':
|
311 |
+
var alphaOpacity = Math.round(parseFloat(value) * 100);
|
312 |
+
elm.style.opacity = value;
|
313 |
+
elm.style.filter = 'alpha(opacity=' + alphaOpacity + ')';
|
314 |
+
break;
|
315 |
+
default:
|
316 |
+
elm.style[props[prop]] = value;
|
317 |
+
break;
|
318 |
+
}
|
319 |
+
};
|
320 |
+
})(),
|
321 |
+
|
322 |
+
|
323 |
+
setBorderRadius : function (elm, value) {
|
324 |
+
jsc.setStyle(elm, 'borderRadius', value || '0');
|
325 |
+
},
|
326 |
+
|
327 |
+
|
328 |
+
setBoxShadow : function (elm, value) {
|
329 |
+
jsc.setStyle(elm, 'boxShadow', value || 'none');
|
330 |
+
},
|
331 |
+
|
332 |
+
|
333 |
+
getElementPos : function (e, relativeToViewport) {
|
334 |
+
var x=0, y=0;
|
335 |
+
var rect = e.getBoundingClientRect();
|
336 |
+
x = rect.left;
|
337 |
+
y = rect.top;
|
338 |
+
if (!relativeToViewport) {
|
339 |
+
var viewPos = jsc.getViewPos();
|
340 |
+
x += viewPos[0];
|
341 |
+
y += viewPos[1];
|
342 |
+
}
|
343 |
+
return [x, y];
|
344 |
+
},
|
345 |
+
|
346 |
+
|
347 |
+
getElementSize : function (e) {
|
348 |
+
return [e.offsetWidth, e.offsetHeight];
|
349 |
+
},
|
350 |
+
|
351 |
+
|
352 |
+
// get pointer's X/Y coordinates relative to viewport
|
353 |
+
getAbsPointerPos : function (e) {
|
354 |
+
if (!e) { e = window.event; }
|
355 |
+
var x = 0, y = 0;
|
356 |
+
if (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {
|
357 |
+
// touch devices
|
358 |
+
x = e.changedTouches[0].clientX;
|
359 |
+
y = e.changedTouches[0].clientY;
|
360 |
+
} else if (typeof e.clientX === 'number') {
|
361 |
+
x = e.clientX;
|
362 |
+
y = e.clientY;
|
363 |
+
}
|
364 |
+
return { x: x, y: y };
|
365 |
+
},
|
366 |
+
|
367 |
+
|
368 |
+
// get pointer's X/Y coordinates relative to target element
|
369 |
+
getRelPointerPos : function (e) {
|
370 |
+
if (!e) { e = window.event; }
|
371 |
+
var target = e.target || e.srcElement;
|
372 |
+
var targetRect = target.getBoundingClientRect();
|
373 |
+
|
374 |
+
var x = 0, y = 0;
|
375 |
+
|
376 |
+
var clientX = 0, clientY = 0;
|
377 |
+
if (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {
|
378 |
+
// touch devices
|
379 |
+
clientX = e.changedTouches[0].clientX;
|
380 |
+
clientY = e.changedTouches[0].clientY;
|
381 |
+
} else if (typeof e.clientX === 'number') {
|
382 |
+
clientX = e.clientX;
|
383 |
+
clientY = e.clientY;
|
384 |
+
}
|
385 |
+
|
386 |
+
x = clientX - targetRect.left;
|
387 |
+
y = clientY - targetRect.top;
|
388 |
+
return { x: x, y: y };
|
389 |
+
},
|
390 |
+
|
391 |
+
|
392 |
+
getViewPos : function () {
|
393 |
+
var doc = document.documentElement;
|
394 |
+
return [
|
395 |
+
(window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0),
|
396 |
+
(window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)
|
397 |
+
];
|
398 |
+
},
|
399 |
+
|
400 |
+
|
401 |
+
getViewSize : function () {
|
402 |
+
var doc = document.documentElement;
|
403 |
+
return [
|
404 |
+
(window.innerWidth || doc.clientWidth),
|
405 |
+
(window.innerHeight || doc.clientHeight),
|
406 |
+
];
|
407 |
+
},
|
408 |
+
|
409 |
+
|
410 |
+
redrawPosition : function () {
|
411 |
+
|
412 |
+
if (jsc.picker && jsc.picker.owner) {
|
413 |
+
var thisObj = jsc.picker.owner;
|
414 |
+
|
415 |
+
var tp, vp;
|
416 |
+
|
417 |
+
if (thisObj.fixed) {
|
418 |
+
// Fixed elements are positioned relative to viewport,
|
419 |
+
// therefore we can ignore the scroll offset
|
420 |
+
tp = jsc.getElementPos(thisObj.targetElement, true); // target pos
|
421 |
+
vp = [0, 0]; // view pos
|
422 |
+
} else {
|
423 |
+
tp = jsc.getElementPos(thisObj.targetElement); // target pos
|
424 |
+
vp = jsc.getViewPos(); // view pos
|
425 |
+
}
|
426 |
+
|
427 |
+
var ts = jsc.getElementSize(thisObj.targetElement); // target size
|
428 |
+
var vs = jsc.getViewSize(); // view size
|
429 |
+
var ps = jsc.getPickerOuterDims(thisObj); // picker size
|
430 |
+
var a, b, c;
|
431 |
+
switch (thisObj.position.toLowerCase()) {
|
432 |
+
case 'left': a=1; b=0; c=-1; break;
|
433 |
+
case 'right':a=1; b=0; c=1; break;
|
434 |
+
case 'top': a=0; b=1; c=-1; break;
|
435 |
+
default: a=0; b=1; c=1; break;
|
436 |
+
}
|
437 |
+
var l = (ts[b]+ps[b])/2;
|
438 |
+
|
439 |
+
// compute picker position
|
440 |
+
if (!thisObj.smartPosition) {
|
441 |
+
var pp = [
|
442 |
+
tp[a],
|
443 |
+
tp[b]+ts[b]-l+l*c
|
444 |
+
];
|
445 |
+
} else {
|
446 |
+
var pp = [
|
447 |
+
-vp[a]+tp[a]+ps[a] > vs[a] ?
|
448 |
+
(-vp[a]+tp[a]+ts[a]/2 > vs[a]/2 && tp[a]+ts[a]-ps[a] >= 0 ? tp[a]+ts[a]-ps[a] : tp[a]) :
|
449 |
+
tp[a],
|
450 |
+
-vp[b]+tp[b]+ts[b]+ps[b]-l+l*c > vs[b] ?
|
451 |
+
(-vp[b]+tp[b]+ts[b]/2 > vs[b]/2 && tp[b]+ts[b]-l-l*c >= 0 ? tp[b]+ts[b]-l-l*c : tp[b]+ts[b]-l+l*c) :
|
452 |
+
(tp[b]+ts[b]-l+l*c >= 0 ? tp[b]+ts[b]-l+l*c : tp[b]+ts[b]-l-l*c)
|
453 |
+
];
|
454 |
+
}
|
455 |
+
|
456 |
+
var x = pp[a];
|
457 |
+
var y = pp[b];
|
458 |
+
var positionValue = thisObj.fixed ? 'fixed' : 'absolute';
|
459 |
+
var contractShadow =
|
460 |
+
(pp[0] + ps[0] > tp[0] || pp[0] < tp[0] + ts[0]) &&
|
461 |
+
(pp[1] + ps[1] < tp[1] + ts[1]);
|
462 |
+
|
463 |
+
jsc._drawPosition(thisObj, x, y, positionValue, contractShadow);
|
464 |
+
}
|
465 |
+
},
|
466 |
+
|
467 |
+
|
468 |
+
_drawPosition : function (thisObj, x, y, positionValue, contractShadow) {
|
469 |
+
var vShadow = contractShadow ? 0 : thisObj.shadowBlur; // px
|
470 |
+
|
471 |
+
jsc.picker.wrap.style.position = positionValue;
|
472 |
+
jsc.picker.wrap.style.left = x + 'px';
|
473 |
+
jsc.picker.wrap.style.top = y + 'px';
|
474 |
+
|
475 |
+
jsc.setBoxShadow(
|
476 |
+
jsc.picker.boxS,
|
477 |
+
thisObj.shadow ?
|
478 |
+
new jsc.BoxShadow(0, vShadow, thisObj.shadowBlur, 0, thisObj.shadowColor) :
|
479 |
+
null);
|
480 |
+
},
|
481 |
+
|
482 |
+
|
483 |
+
getPickerDims : function (thisObj) {
|
484 |
+
var displaySlider = !!jsc.getSliderComponent(thisObj);
|
485 |
+
var dims = [
|
486 |
+
2 * thisObj.insetWidth + 2 * thisObj.padding + thisObj.width +
|
487 |
+
(displaySlider ? 2 * thisObj.insetWidth + jsc.getPadToSliderPadding(thisObj) + thisObj.sliderSize : 0),
|
488 |
+
2 * thisObj.insetWidth + 2 * thisObj.padding + thisObj.height +
|
489 |
+
(thisObj.closable ? 2 * thisObj.insetWidth + thisObj.padding + thisObj.buttonHeight : 0)
|
490 |
+
];
|
491 |
+
return dims;
|
492 |
+
},
|
493 |
+
|
494 |
+
|
495 |
+
getPickerOuterDims : function (thisObj) {
|
496 |
+
var dims = jsc.getPickerDims(thisObj);
|
497 |
+
return [
|
498 |
+
dims[0] + 2 * thisObj.borderWidth,
|
499 |
+
dims[1] + 2 * thisObj.borderWidth
|
500 |
+
];
|
501 |
+
},
|
502 |
+
|
503 |
+
|
504 |
+
getPadToSliderPadding : function (thisObj) {
|
505 |
+
return Math.max(thisObj.padding, 1.5 * (2 * thisObj.pointerBorderWidth + thisObj.pointerThickness));
|
506 |
+
},
|
507 |
+
|
508 |
+
|
509 |
+
getPadYComponent : function (thisObj) {
|
510 |
+
switch (thisObj.mode.charAt(1).toLowerCase()) {
|
511 |
+
case 'v': return 'v'; break;
|
512 |
+
}
|
513 |
+
return 's';
|
514 |
+
},
|
515 |
+
|
516 |
+
|
517 |
+
getSliderComponent : function (thisObj) {
|
518 |
+
if (thisObj.mode.length > 2) {
|
519 |
+
switch (thisObj.mode.charAt(2).toLowerCase()) {
|
520 |
+
case 's': return 's'; break;
|
521 |
+
case 'v': return 'v'; break;
|
522 |
+
}
|
523 |
+
}
|
524 |
+
return null;
|
525 |
+
},
|
526 |
+
|
527 |
+
|
528 |
+
onDocumentMouseDown : function (e) {
|
529 |
+
if (!e) { e = window.event; }
|
530 |
+
var target = e.target || e.srcElement;
|
531 |
+
|
532 |
+
if (target._jscLinkedInstance) {
|
533 |
+
if (target._jscLinkedInstance.showOnClick) {
|
534 |
+
target._jscLinkedInstance.show();
|
535 |
+
}
|
536 |
+
} else if (target._jscControlName) {
|
537 |
+
jsc.onControlPointerStart(e, target, target._jscControlName, 'mouse');
|
538 |
+
} else {
|
539 |
+
// Mouse is outside the picker controls -> hide the color picker!
|
540 |
+
if (jsc.picker && jsc.picker.owner) {
|
541 |
+
jsc.picker.owner.hide();
|
542 |
+
}
|
543 |
+
}
|
544 |
+
},
|
545 |
+
|
546 |
+
|
547 |
+
onDocumentTouchStart : function (e) {
|
548 |
+
if (!e) { e = window.event; }
|
549 |
+
var target = e.target || e.srcElement;
|
550 |
+
|
551 |
+
if (target._jscLinkedInstance) {
|
552 |
+
if (target._jscLinkedInstance.showOnClick) {
|
553 |
+
target._jscLinkedInstance.show();
|
554 |
+
}
|
555 |
+
} else if (target._jscControlName) {
|
556 |
+
jsc.onControlPointerStart(e, target, target._jscControlName, 'touch');
|
557 |
+
} else {
|
558 |
+
if (jsc.picker && jsc.picker.owner) {
|
559 |
+
jsc.picker.owner.hide();
|
560 |
+
}
|
561 |
+
}
|
562 |
+
},
|
563 |
+
|
564 |
+
|
565 |
+
onWindowResize : function (e) {
|
566 |
+
jsc.redrawPosition();
|
567 |
+
},
|
568 |
+
|
569 |
+
|
570 |
+
onParentScroll : function (e) {
|
571 |
+
// hide the picker when one of the parent elements is scrolled
|
572 |
+
if (jsc.picker && jsc.picker.owner) {
|
573 |
+
jsc.picker.owner.hide();
|
574 |
+
}
|
575 |
+
},
|
576 |
+
|
577 |
+
|
578 |
+
_pointerMoveEvent : {
|
579 |
+
mouse: 'mousemove',
|
580 |
+
touch: 'touchmove'
|
581 |
+
},
|
582 |
+
_pointerEndEvent : {
|
583 |
+
mouse: 'mouseup',
|
584 |
+
touch: 'touchend'
|
585 |
+
},
|
586 |
+
|
587 |
+
|
588 |
+
_pointerOrigin : null,
|
589 |
+
_capturedTarget : null,
|
590 |
+
|
591 |
+
|
592 |
+
onControlPointerStart : function (e, target, controlName, pointerType) {
|
593 |
+
var thisObj = target._jscInstance;
|
594 |
+
|
595 |
+
jsc.preventDefault(e);
|
596 |
+
jsc.captureTarget(target);
|
597 |
+
|
598 |
+
var registerDragEvents = function (doc, offset) {
|
599 |
+
jsc.attachGroupEvent('drag', doc, jsc._pointerMoveEvent[pointerType],
|
600 |
+
jsc.onDocumentPointerMove(e, target, controlName, pointerType, offset));
|
601 |
+
jsc.attachGroupEvent('drag', doc, jsc._pointerEndEvent[pointerType],
|
602 |
+
jsc.onDocumentPointerEnd(e, target, controlName, pointerType));
|
603 |
+
};
|
604 |
+
|
605 |
+
registerDragEvents(document, [0, 0]);
|
606 |
+
|
607 |
+
if (window.parent && window.frameElement) {
|
608 |
+
var rect = window.frameElement.getBoundingClientRect();
|
609 |
+
var ofs = [-rect.left, -rect.top];
|
610 |
+
registerDragEvents(window.parent.window.document, ofs);
|
611 |
+
}
|
612 |
+
|
613 |
+
var abs = jsc.getAbsPointerPos(e);
|
614 |
+
var rel = jsc.getRelPointerPos(e);
|
615 |
+
jsc._pointerOrigin = {
|
616 |
+
x: abs.x - rel.x,
|
617 |
+
y: abs.y - rel.y
|
618 |
+
};
|
619 |
+
|
620 |
+
switch (controlName) {
|
621 |
+
case 'pad':
|
622 |
+
// if the slider is at the bottom, move it up
|
623 |
+
switch (jsc.getSliderComponent(thisObj)) {
|
624 |
+
case 's': if (thisObj.hsv[1] === 0) { thisObj.fromHSV(null, 100, null); }; break;
|
625 |
+
case 'v': if (thisObj.hsv[2] === 0) { thisObj.fromHSV(null, null, 100); }; break;
|
626 |
+
}
|
627 |
+
jsc.setPad(thisObj, e, 0, 0);
|
628 |
+
break;
|
629 |
+
|
630 |
+
case 'sld':
|
631 |
+
jsc.setSld(thisObj, e, 0);
|
632 |
+
break;
|
633 |
+
}
|
634 |
+
|
635 |
+
jsc.dispatchFineChange(thisObj);
|
636 |
+
},
|
637 |
+
|
638 |
+
|
639 |
+
onDocumentPointerMove : function (e, target, controlName, pointerType, offset) {
|
640 |
+
return function (e) {
|
641 |
+
var thisObj = target._jscInstance;
|
642 |
+
switch (controlName) {
|
643 |
+
case 'pad':
|
644 |
+
if (!e) { e = window.event; }
|
645 |
+
jsc.setPad(thisObj, e, offset[0], offset[1]);
|
646 |
+
jsc.dispatchFineChange(thisObj);
|
647 |
+
break;
|
648 |
+
|
649 |
+
case 'sld':
|
650 |
+
if (!e) { e = window.event; }
|
651 |
+
jsc.setSld(thisObj, e, offset[1]);
|
652 |
+
jsc.dispatchFineChange(thisObj);
|
653 |
+
break;
|
654 |
+
}
|
655 |
+
}
|
656 |
+
},
|
657 |
+
|
658 |
+
|
659 |
+
onDocumentPointerEnd : function (e, target, controlName, pointerType) {
|
660 |
+
return function (e) {
|
661 |
+
var thisObj = target._jscInstance;
|
662 |
+
jsc.detachGroupEvents('drag');
|
663 |
+
jsc.releaseTarget();
|
664 |
+
// Always dispatch changes after detaching outstanding mouse handlers,
|
665 |
+
// in case some user interaction will occur in user's onchange callback
|
666 |
+
// that would intrude with current mouse events
|
667 |
+
jsc.dispatchChange(thisObj);
|
668 |
+
};
|
669 |
+
},
|
670 |
+
|
671 |
+
|
672 |
+
dispatchChange : function (thisObj) {
|
673 |
+
if (thisObj.valueElement) {
|
674 |
+
if (jsc.isElementType(thisObj.valueElement, 'input')) {
|
675 |
+
jsc.fireEvent(thisObj.valueElement, 'change');
|
676 |
+
}
|
677 |
+
}
|
678 |
+
},
|
679 |
+
|
680 |
+
|
681 |
+
dispatchFineChange : function (thisObj) {
|
682 |
+
if (thisObj.onFineChange) {
|
683 |
+
var callback;
|
684 |
+
if (typeof thisObj.onFineChange === 'string') {
|
685 |
+
callback = new Function (thisObj.onFineChange);
|
686 |
+
} else {
|
687 |
+
callback = thisObj.onFineChange;
|
688 |
+
}
|
689 |
+
callback.call(thisObj);
|
690 |
+
}
|
691 |
+
},
|
692 |
+
|
693 |
+
|
694 |
+
setPad : function (thisObj, e, ofsX, ofsY) {
|
695 |
+
var pointerAbs = jsc.getAbsPointerPos(e);
|
696 |
+
var x = ofsX + pointerAbs.x - jsc._pointerOrigin.x - thisObj.padding - thisObj.insetWidth;
|
697 |
+
var y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.insetWidth;
|
698 |
+
|
699 |
+
var xVal = x * (360 / (thisObj.width - 1));
|
700 |
+
var yVal = 100 - (y * (100 / (thisObj.height - 1)));
|
701 |
+
|
702 |
+
switch (jsc.getPadYComponent(thisObj)) {
|
703 |
+
case 's': thisObj.fromHSV(xVal, yVal, null, jsc.leaveSld); break;
|
704 |
+
case 'v': thisObj.fromHSV(xVal, null, yVal, jsc.leaveSld); break;
|
705 |
+
}
|
706 |
+
},
|
707 |
+
|
708 |
+
|
709 |
+
setSld : function (thisObj, e, ofsY) {
|
710 |
+
var pointerAbs = jsc.getAbsPointerPos(e);
|
711 |
+
var y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.insetWidth;
|
712 |
+
|
713 |
+
var yVal = 100 - (y * (100 / (thisObj.height - 1)));
|
714 |
+
|
715 |
+
switch (jsc.getSliderComponent(thisObj)) {
|
716 |
+
case 's': thisObj.fromHSV(null, yVal, null, jsc.leavePad); break;
|
717 |
+
case 'v': thisObj.fromHSV(null, null, yVal, jsc.leavePad); break;
|
718 |
+
}
|
719 |
+
},
|
720 |
+
|
721 |
+
|
722 |
+
_vmlNS : 'jsc_vml_',
|
723 |
+
_vmlCSS : 'jsc_vml_css_',
|
724 |
+
_vmlReady : false,
|
725 |
+
|
726 |
+
|
727 |
+
initVML : function () {
|
728 |
+
if (!jsc._vmlReady) {
|
729 |
+
// init VML namespace
|
730 |
+
var doc = document;
|
731 |
+
if (!doc.namespaces[jsc._vmlNS]) {
|
732 |
+
doc.namespaces.add(jsc._vmlNS, 'urn:schemas-microsoft-com:vml');
|
733 |
+
}
|
734 |
+
if (!doc.styleSheets[jsc._vmlCSS]) {
|
735 |
+
var tags = ['shape', 'shapetype', 'group', 'background', 'path', 'formulas', 'handles', 'fill', 'stroke', 'shadow', 'textbox', 'textpath', 'imagedata', 'line', 'polyline', 'curve', 'rect', 'roundrect', 'oval', 'arc', 'image'];
|
736 |
+
var ss = doc.createStyleSheet();
|
737 |
+
ss.owningElement.id = jsc._vmlCSS;
|
738 |
+
for (var i = 0; i < tags.length; i += 1) {
|
739 |
+
ss.addRule(jsc._vmlNS + '\\:' + tags[i], 'behavior:url(#default#VML);');
|
740 |
+
}
|
741 |
+
}
|
742 |
+
jsc._vmlReady = true;
|
743 |
+
}
|
744 |
+
},
|
745 |
+
|
746 |
+
|
747 |
+
createPalette : function () {
|
748 |
+
|
749 |
+
var paletteObj = {
|
750 |
+
elm: null,
|
751 |
+
draw: null
|
752 |
+
};
|
753 |
+
|
754 |
+
if (jsc.isCanvasSupported) {
|
755 |
+
// Canvas implementation for modern browsers
|
756 |
+
|
757 |
+
var canvas = document.createElement('canvas');
|
758 |
+
var ctx = canvas.getContext('2d');
|
759 |
+
|
760 |
+
var drawFunc = function (width, height, type) {
|
761 |
+
canvas.width = width;
|
762 |
+
canvas.height = height;
|
763 |
+
|
764 |
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
765 |
+
|
766 |
+
var hGrad = ctx.createLinearGradient(0, 0, canvas.width, 0);
|
767 |
+
hGrad.addColorStop(0 / 6, '#F00');
|
768 |
+
hGrad.addColorStop(1 / 6, '#FF0');
|
769 |
+
hGrad.addColorStop(2 / 6, '#0F0');
|
770 |
+
hGrad.addColorStop(3 / 6, '#0FF');
|
771 |
+
hGrad.addColorStop(4 / 6, '#00F');
|
772 |
+
hGrad.addColorStop(5 / 6, '#F0F');
|
773 |
+
hGrad.addColorStop(6 / 6, '#F00');
|
774 |
+
|
775 |
+
ctx.fillStyle = hGrad;
|
776 |
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
777 |
+
|
778 |
+
var vGrad = ctx.createLinearGradient(0, 0, 0, canvas.height);
|
779 |
+
switch (type.toLowerCase()) {
|
780 |
+
case 's':
|
781 |
+
vGrad.addColorStop(0, 'rgba(255,255,255,0)');
|
782 |
+
vGrad.addColorStop(1, 'rgba(255,255,255,1)');
|
783 |
+
break;
|
784 |
+
case 'v':
|
785 |
+
vGrad.addColorStop(0, 'rgba(0,0,0,0)');
|
786 |
+
vGrad.addColorStop(1, 'rgba(0,0,0,1)');
|
787 |
+
break;
|
788 |
+
}
|
789 |
+
ctx.fillStyle = vGrad;
|
790 |
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
791 |
+
};
|
792 |
+
|
793 |
+
paletteObj.elm = canvas;
|
794 |
+
paletteObj.draw = drawFunc;
|
795 |
+
|
796 |
+
} else {
|
797 |
+
// VML fallback for IE 7 and 8
|
798 |
+
|
799 |
+
jsc.initVML();
|
800 |
+
|
801 |
+
var vmlContainer = document.createElement('div');
|
802 |
+
vmlContainer.style.position = 'relative';
|
803 |
+
vmlContainer.style.overflow = 'hidden';
|
804 |
+
|
805 |
+
var hGrad = document.createElement(jsc._vmlNS + ':fill');
|
806 |
+
hGrad.type = 'gradient';
|
807 |
+
hGrad.method = 'linear';
|
808 |
+
hGrad.angle = '90';
|
809 |
+
hGrad.colors = '16.67% #F0F, 33.33% #00F, 50% #0FF, 66.67% #0F0, 83.33% #FF0'
|
810 |
+
|
811 |
+
var hRect = document.createElement(jsc._vmlNS + ':rect');
|
812 |
+
hRect.style.position = 'absolute';
|
813 |
+
hRect.style.left = -1 + 'px';
|
814 |
+
hRect.style.top = -1 + 'px';
|
815 |
+
hRect.stroked = false;
|
816 |
+
hRect.appendChild(hGrad);
|
817 |
+
vmlContainer.appendChild(hRect);
|
818 |
+
|
819 |
+
var vGrad = document.createElement(jsc._vmlNS + ':fill');
|
820 |
+
vGrad.type = 'gradient';
|
821 |
+
vGrad.method = 'linear';
|
822 |
+
vGrad.angle = '180';
|
823 |
+
vGrad.opacity = '0';
|
824 |
+
|
825 |
+
var vRect = document.createElement(jsc._vmlNS + ':rect');
|
826 |
+
vRect.style.position = 'absolute';
|
827 |
+
vRect.style.left = -1 + 'px';
|
828 |
+
vRect.style.top = -1 + 'px';
|
829 |
+
vRect.stroked = false;
|
830 |
+
vRect.appendChild(vGrad);
|
831 |
+
vmlContainer.appendChild(vRect);
|
832 |
+
|
833 |
+
var drawFunc = function (width, height, type) {
|
834 |
+
vmlContainer.style.width = width + 'px';
|
835 |
+
vmlContainer.style.height = height + 'px';
|
836 |
+
|
837 |
+
hRect.style.width =
|
838 |
+
vRect.style.width =
|
839 |
+
(width + 1) + 'px';
|
840 |
+
hRect.style.height =
|
841 |
+
vRect.style.height =
|
842 |
+
(height + 1) + 'px';
|
843 |
+
|
844 |
+
// Colors must be specified during every redraw, otherwise IE won't display
|
845 |
+
// a full gradient during a subsequential redraw
|
846 |
+
hGrad.color = '#F00';
|
847 |
+
hGrad.color2 = '#F00';
|
848 |
+
|
849 |
+
switch (type.toLowerCase()) {
|
850 |
+
case 's':
|
851 |
+
vGrad.color = vGrad.color2 = '#FFF';
|
852 |
+
break;
|
853 |
+
case 'v':
|
854 |
+
vGrad.color = vGrad.color2 = '#000';
|
855 |
+
break;
|
856 |
+
}
|
857 |
+
};
|
858 |
+
|
859 |
+
paletteObj.elm = vmlContainer;
|
860 |
+
paletteObj.draw = drawFunc;
|
861 |
+
}
|
862 |
+
|
863 |
+
return paletteObj;
|
864 |
+
},
|
865 |
+
|
866 |
+
|
867 |
+
createSliderGradient : function () {
|
868 |
+
|
869 |
+
var sliderObj = {
|
870 |
+
elm: null,
|
871 |
+
draw: null
|
872 |
+
};
|
873 |
+
|
874 |
+
if (jsc.isCanvasSupported) {
|
875 |
+
// Canvas implementation for modern browsers
|
876 |
+
|
877 |
+
var canvas = document.createElement('canvas');
|
878 |
+
var ctx = canvas.getContext('2d');
|
879 |
+
|
880 |
+
var drawFunc = function (width, height, color1, color2) {
|
881 |
+
canvas.width = width;
|
882 |
+
canvas.height = height;
|
883 |
+
|
884 |
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
885 |
+
|
886 |
+
var grad = ctx.createLinearGradient(0, 0, 0, canvas.height);
|
887 |
+
grad.addColorStop(0, color1);
|
888 |
+
grad.addColorStop(1, color2);
|
889 |
+
|
890 |
+
ctx.fillStyle = grad;
|
891 |
+
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
892 |
+
};
|
893 |
+
|
894 |
+
sliderObj.elm = canvas;
|
895 |
+
sliderObj.draw = drawFunc;
|
896 |
+
|
897 |
+
} else {
|
898 |
+
// VML fallback for IE 7 and 8
|
899 |
+
|
900 |
+
jsc.initVML();
|
901 |
+
|
902 |
+
var vmlContainer = document.createElement('div');
|
903 |
+
vmlContainer.style.position = 'relative';
|
904 |
+
vmlContainer.style.overflow = 'hidden';
|
905 |
+
|
906 |
+
var grad = document.createElement(jsc._vmlNS + ':fill');
|
907 |
+
grad.type = 'gradient';
|
908 |
+
grad.method = 'linear';
|
909 |
+
grad.angle = '180';
|
910 |
+
|
911 |
+
var rect = document.createElement(jsc._vmlNS + ':rect');
|
912 |
+
rect.style.position = 'absolute';
|
913 |
+
rect.style.left = -1 + 'px';
|
914 |
+
rect.style.top = -1 + 'px';
|
915 |
+
rect.stroked = false;
|
916 |
+
rect.appendChild(grad);
|
917 |
+
vmlContainer.appendChild(rect);
|
918 |
+
|
919 |
+
var drawFunc = function (width, height, color1, color2) {
|
920 |
+
vmlContainer.style.width = width + 'px';
|
921 |
+
vmlContainer.style.height = height + 'px';
|
922 |
+
|
923 |
+
rect.style.width = (width + 1) + 'px';
|
924 |
+
rect.style.height = (height + 1) + 'px';
|
925 |
+
|
926 |
+
grad.color = color1;
|
927 |
+
grad.color2 = color2;
|
928 |
+
};
|
929 |
+
|
930 |
+
sliderObj.elm = vmlContainer;
|
931 |
+
sliderObj.draw = drawFunc;
|
932 |
+
}
|
933 |
+
|
934 |
+
return sliderObj;
|
935 |
+
},
|
936 |
+
|
937 |
+
|
938 |
+
leaveValue : 1<<0,
|
939 |
+
leaveStyle : 1<<1,
|
940 |
+
leavePad : 1<<2,
|
941 |
+
leaveSld : 1<<3,
|
942 |
+
|
943 |
+
|
944 |
+
BoxShadow : (function () {
|
945 |
+
var BoxShadow = function (hShadow, vShadow, blur, spread, color, inset) {
|
946 |
+
this.hShadow = hShadow;
|
947 |
+
this.vShadow = vShadow;
|
948 |
+
this.blur = blur;
|
949 |
+
this.spread = spread;
|
950 |
+
this.color = color;
|
951 |
+
this.inset = !!inset;
|
952 |
+
};
|
953 |
+
|
954 |
+
BoxShadow.prototype.toString = function () {
|
955 |
+
var vals = [
|
956 |
+
Math.round(this.hShadow) + 'px',
|
957 |
+
Math.round(this.vShadow) + 'px',
|
958 |
+
Math.round(this.blur) + 'px',
|
959 |
+
Math.round(this.spread) + 'px',
|
960 |
+
this.color
|
961 |
+
];
|
962 |
+
if (this.inset) {
|
963 |
+
vals.push('inset');
|
964 |
+
}
|
965 |
+
return vals.join(' ');
|
966 |
+
};
|
967 |
+
|
968 |
+
return BoxShadow;
|
969 |
+
})(),
|
970 |
+
|
971 |
+
|
972 |
+
//
|
973 |
+
// Usage:
|
974 |
+
// var myColor = new jscolor(<targetElement> [, <options>])
|
975 |
+
//
|
976 |
+
|
977 |
+
jscolor : function (targetElement, options) {
|
978 |
+
|
979 |
+
// General options
|
980 |
+
//
|
981 |
+
this.value = null; // initial HEX color. To change it later, use methods fromString(), fromHSV() and fromRGB()
|
982 |
+
this.valueElement = targetElement; // element that will be used to display and input the color code
|
983 |
+
this.styleElement = targetElement; // element that will preview the picked color using CSS backgroundColor
|
984 |
+
this.required = true; // whether the associated text <input> can be left empty
|
985 |
+
this.refine = true; // whether to refine the entered color code (e.g. uppercase it and remove whitespace)
|
986 |
+
this.hash = true; // whether to prefix the HEX color code with # symbol
|
987 |
+
this.uppercase = true; // whether to show the color code in upper case
|
988 |
+
this.onFineChange = null; // called instantly every time the color changes (value can be either a function or a string with javascript code)
|
989 |
+
this.activeClass = 'jscolor-active'; // class to be set to the target element when a picker window is open on it
|
990 |
+
this.overwriteImportant = false; // whether to overwrite colors of styleElement using !important
|
991 |
+
this.minS = 0; // min allowed saturation (0 - 100)
|
992 |
+
this.maxS = 100; // max allowed saturation (0 - 100)
|
993 |
+
this.minV = 0; // min allowed value (brightness) (0 - 100)
|
994 |
+
this.maxV = 100; // max allowed value (brightness) (0 - 100)
|
995 |
+
|
996 |
+
// Accessing the picked color
|
997 |
+
//
|
998 |
+
this.hsv = [0, 0, 100]; // read-only [0-360, 0-100, 0-100]
|
999 |
+
this.rgb = [255, 255, 255]; // read-only [0-255, 0-255, 0-255]
|
1000 |
+
|
1001 |
+
// Color Picker options
|
1002 |
+
//
|
1003 |
+
this.width = 200; // width of color palette (in px)
|
1004 |
+
this.height = 200; // height of color palette (in px)
|
1005 |
+
this.showOnClick = true; // whether to display the color picker when user clicks on its target element
|
1006 |
+
this.mode = 'HSV'; // HSV | HVS | HS | HV - layout of the color picker controls
|
1007 |
+
this.position = 'right'; // left | right | top | bottom - position relative to the target element
|
1008 |
+
this.smartPosition = true; // automatically change picker position when there is not enough space for it
|
1009 |
+
this.sliderSize = 16; // px
|
1010 |
+
this.crossSize = 8; // px
|
1011 |
+
this.closable = false; // whether to display the Close button
|
1012 |
+
this.closeText = 'Close';
|
1013 |
+
this.buttonColor = '#000000'; // CSS color
|
1014 |
+
this.buttonHeight = 18; // px
|
1015 |
+
this.padding = 12; // px
|
1016 |
+
this.backgroundColor = '#FFFFFF'; // CSS color
|
1017 |
+
this.borderWidth = 1; // px
|
1018 |
+
this.borderColor = '#BBBBBB'; // CSS color
|
1019 |
+
this.borderRadius = 8; // px
|
1020 |
+
this.insetWidth = 1; // px
|
1021 |
+
this.insetColor = '#BBBBBB'; // CSS color
|
1022 |
+
this.shadow = true; // whether to display shadow
|
1023 |
+
this.shadowBlur = 15; // px
|
1024 |
+
this.shadowColor = 'rgba(0,0,0,0.2)'; // CSS color
|
1025 |
+
this.pointerColor = '#4C4C4C'; // px
|
1026 |
+
this.pointerBorderColor = '#FFFFFF'; // px
|
1027 |
+
this.pointerBorderWidth = 1; // px
|
1028 |
+
this.pointerThickness = 2; // px
|
1029 |
+
this.zIndex = 1000;
|
1030 |
+
this.container = null; // where to append the color picker (BODY element by default)
|
1031 |
+
|
1032 |
+
|
1033 |
+
for (var opt in options) {
|
1034 |
+
if (options.hasOwnProperty(opt)) {
|
1035 |
+
this[opt] = options[opt];
|
1036 |
+
}
|
1037 |
+
}
|
1038 |
+
|
1039 |
+
|
1040 |
+
this.hide = function () {
|
1041 |
+
if (isPickerOwner()) {
|
1042 |
+
detachPicker();
|
1043 |
+
}
|
1044 |
+
};
|
1045 |
+
|
1046 |
+
|
1047 |
+
this.show = function () {
|
1048 |
+
drawPicker();
|
1049 |
+
};
|
1050 |
+
|
1051 |
+
|
1052 |
+
this.redraw = function () {
|
1053 |
+
if (isPickerOwner()) {
|
1054 |
+
drawPicker();
|
1055 |
+
}
|
1056 |
+
};
|
1057 |
+
|
1058 |
+
|
1059 |
+
this.importColor = function () {
|
1060 |
+
if (!this.valueElement) {
|
1061 |
+
this.exportColor();
|
1062 |
+
} else {
|
1063 |
+
if (jsc.isElementType(this.valueElement, 'input')) {
|
1064 |
+
if (!this.refine) {
|
1065 |
+
if (!this.fromString(this.valueElement.value, jsc.leaveValue)) {
|
1066 |
+
if (this.styleElement) {
|
1067 |
+
this.styleElement.style.backgroundImage = this.styleElement._jscOrigStyle.backgroundImage;
|
1068 |
+
this.styleElement.style.backgroundColor = this.styleElement._jscOrigStyle.backgroundColor;
|
1069 |
+
this.styleElement.style.color = this.styleElement._jscOrigStyle.color;
|
1070 |
+
}
|
1071 |
+
this.exportColor(jsc.leaveValue | jsc.leaveStyle);
|
1072 |
+
}
|
1073 |
+
} else if (!this.required && /^\s*$/.test(this.valueElement.value)) {
|
1074 |
+
this.valueElement.value = '';
|
1075 |
+
if (this.styleElement) {
|
1076 |
+
this.styleElement.style.backgroundImage = this.styleElement._jscOrigStyle.backgroundImage;
|
1077 |
+
this.styleElement.style.backgroundColor = this.styleElement._jscOrigStyle.backgroundColor;
|
1078 |
+
this.styleElement.style.color = this.styleElement._jscOrigStyle.color;
|
1079 |
+
}
|
1080 |
+
this.exportColor(jsc.leaveValue | jsc.leaveStyle);
|
1081 |
+
|
1082 |
+
} else if (this.fromString(this.valueElement.value)) {
|
1083 |
+
// managed to import color successfully from the value -> OK, don't do anything
|
1084 |
+
} else {
|
1085 |
+
this.exportColor();
|
1086 |
+
}
|
1087 |
+
} else {
|
1088 |
+
// not an input element -> doesn't have any value
|
1089 |
+
this.exportColor();
|
1090 |
+
}
|
1091 |
+
}
|
1092 |
+
};
|
1093 |
+
|
1094 |
+
|
1095 |
+
this.exportColor = function (flags) {
|
1096 |
+
if (!(flags & jsc.leaveValue) && this.valueElement) {
|
1097 |
+
var value = this.toString();
|
1098 |
+
if (this.uppercase) { value = value.toUpperCase(); }
|
1099 |
+
if (this.hash) { value = '#' + value; }
|
1100 |
+
|
1101 |
+
if (jsc.isElementType(this.valueElement, 'input')) {
|
1102 |
+
this.valueElement.value = value;
|
1103 |
+
} else {
|
1104 |
+
this.valueElement.innerHTML = value;
|
1105 |
+
}
|
1106 |
+
}
|
1107 |
+
if (!(flags & jsc.leaveStyle)) {
|
1108 |
+
if (this.styleElement) {
|
1109 |
+
var bgColor = '#' + this.toString();
|
1110 |
+
var fgColor = this.isLight() ? '#000' : '#FFF';
|
1111 |
+
|
1112 |
+
this.styleElement.style.backgroundImage = 'none';
|
1113 |
+
this.styleElement.style.backgroundColor = bgColor;
|
1114 |
+
this.styleElement.style.color = fgColor;
|
1115 |
+
|
1116 |
+
if (this.overwriteImportant) {
|
1117 |
+
this.styleElement.setAttribute('style',
|
1118 |
+
'background: ' + bgColor + ' !important; ' +
|
1119 |
+
'color: ' + fgColor + ' !important;'
|
1120 |
+
);
|
1121 |
+
}
|
1122 |
+
}
|
1123 |
+
}
|
1124 |
+
if (!(flags & jsc.leavePad) && isPickerOwner()) {
|
1125 |
+
redrawPad();
|
1126 |
+
}
|
1127 |
+
if (!(flags & jsc.leaveSld) && isPickerOwner()) {
|
1128 |
+
redrawSld();
|
1129 |
+
}
|
1130 |
+
};
|
1131 |
+
|
1132 |
+
|
1133 |
+
// h: 0-360
|
1134 |
+
// s: 0-100
|
1135 |
+
// v: 0-100
|
1136 |
+
//
|
1137 |
+
this.fromHSV = function (h, s, v, flags) { // null = don't change
|
1138 |
+
if (h !== null) {
|
1139 |
+
if (isNaN(h)) { return false; }
|
1140 |
+
h = Math.max(0, Math.min(360, h));
|
1141 |
+
}
|
1142 |
+
if (s !== null) {
|
1143 |
+
if (isNaN(s)) { return false; }
|
1144 |
+
s = Math.max(0, Math.min(100, this.maxS, s), this.minS);
|
1145 |
+
}
|
1146 |
+
if (v !== null) {
|
1147 |
+
if (isNaN(v)) { return false; }
|
1148 |
+
v = Math.max(0, Math.min(100, this.maxV, v), this.minV);
|
1149 |
+
}
|
1150 |
+
|
1151 |
+
this.rgb = HSV_RGB(
|
1152 |
+
h===null ? this.hsv[0] : (this.hsv[0]=h),
|
1153 |
+
s===null ? this.hsv[1] : (this.hsv[1]=s),
|
1154 |
+
v===null ? this.hsv[2] : (this.hsv[2]=v)
|
1155 |
+
);
|
1156 |
+
|
1157 |
+
this.exportColor(flags);
|
1158 |
+
};
|
1159 |
+
|
1160 |
+
|
1161 |
+
// r: 0-255
|
1162 |
+
// g: 0-255
|
1163 |
+
// b: 0-255
|
1164 |
+
//
|
1165 |
+
this.fromRGB = function (r, g, b, flags) { // null = don't change
|
1166 |
+
if (r !== null) {
|
1167 |
+
if (isNaN(r)) { return false; }
|
1168 |
+
r = Math.max(0, Math.min(255, r));
|
1169 |
+
}
|
1170 |
+
if (g !== null) {
|
1171 |
+
if (isNaN(g)) { return false; }
|
1172 |
+
g = Math.max(0, Math.min(255, g));
|
1173 |
+
}
|
1174 |
+
if (b !== null) {
|
1175 |
+
if (isNaN(b)) { return false; }
|
1176 |
+
b = Math.max(0, Math.min(255, b));
|
1177 |
+
}
|
1178 |
+
|
1179 |
+
var hsv = RGB_HSV(
|
1180 |
+
r===null ? this.rgb[0] : r,
|
1181 |
+
g===null ? this.rgb[1] : g,
|
1182 |
+
b===null ? this.rgb[2] : b
|
1183 |
+
);
|
1184 |
+
if (hsv[0] !== null) {
|
1185 |
+
this.hsv[0] = Math.max(0, Math.min(360, hsv[0]));
|
1186 |
+
}
|
1187 |
+
if (hsv[2] !== 0) {
|
1188 |
+
this.hsv[1] = hsv[1]===null ? null : Math.max(0, this.minS, Math.min(100, this.maxS, hsv[1]));
|
1189 |
+
}
|
1190 |
+
this.hsv[2] = hsv[2]===null ? null : Math.max(0, this.minV, Math.min(100, this.maxV, hsv[2]));
|
1191 |
+
|
1192 |
+
// update RGB according to final HSV, as some values might be trimmed
|
1193 |
+
var rgb = HSV_RGB(this.hsv[0], this.hsv[1], this.hsv[2]);
|
1194 |
+
this.rgb[0] = rgb[0];
|
1195 |
+
this.rgb[1] = rgb[1];
|
1196 |
+
this.rgb[2] = rgb[2];
|
1197 |
+
|
1198 |
+
this.exportColor(flags);
|
1199 |
+
};
|
1200 |
+
|
1201 |
+
|
1202 |
+
this.fromString = function (str, flags) {
|
1203 |
+
var m;
|
1204 |
+
if (m = str.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i)) {
|
1205 |
+
// HEX notation
|
1206 |
+
//
|
1207 |
+
|
1208 |
+
if (m[1].length === 6) {
|
1209 |
+
// 6-char notation
|
1210 |
+
this.fromRGB(
|
1211 |
+
parseInt(m[1].substr(0,2),16),
|
1212 |
+
parseInt(m[1].substr(2,2),16),
|
1213 |
+
parseInt(m[1].substr(4,2),16),
|
1214 |
+
flags
|
1215 |
+
);
|
1216 |
+
} else {
|
1217 |
+
// 3-char notation
|
1218 |
+
this.fromRGB(
|
1219 |
+
parseInt(m[1].charAt(0) + m[1].charAt(0),16),
|
1220 |
+
parseInt(m[1].charAt(1) + m[1].charAt(1),16),
|
1221 |
+
parseInt(m[1].charAt(2) + m[1].charAt(2),16),
|
1222 |
+
flags
|
1223 |
+
);
|
1224 |
+
}
|
1225 |
+
return true;
|
1226 |
+
|
1227 |
+
} else if (m = str.match(/^\W*rgba?\(([^)]*)\)\W*$/i)) {
|
1228 |
+
var params = m[1].split(',');
|
1229 |
+
var re = /^\s*(\d*)(\.\d+)?\s*$/;
|
1230 |
+
var mR, mG, mB;
|
1231 |
+
if (
|
1232 |
+
params.length >= 3 &&
|
1233 |
+
(mR = params[0].match(re)) &&
|
1234 |
+
(mG = params[1].match(re)) &&
|
1235 |
+
(mB = params[2].match(re))
|
1236 |
+
) {
|
1237 |
+
var r = parseFloat((mR[1] || '0') + (mR[2] || ''));
|
1238 |
+
var g = parseFloat((mG[1] || '0') + (mG[2] || ''));
|
1239 |
+
var b = parseFloat((mB[1] || '0') + (mB[2] || ''));
|
1240 |
+
this.fromRGB(r, g, b, flags);
|
1241 |
+
return true;
|
1242 |
+
}
|
1243 |
+
}
|
1244 |
+
return false;
|
1245 |
+
};
|
1246 |
+
|
1247 |
+
|
1248 |
+
this.toString = function () {
|
1249 |
+
return (
|
1250 |
+
(0x100 | Math.round(this.rgb[0])).toString(16).substr(1) +
|
1251 |
+
(0x100 | Math.round(this.rgb[1])).toString(16).substr(1) +
|
1252 |
+
(0x100 | Math.round(this.rgb[2])).toString(16).substr(1)
|
1253 |
+
);
|
1254 |
+
};
|
1255 |
+
|
1256 |
+
|
1257 |
+
this.toHEXString = function () {
|
1258 |
+
return '#' + this.toString().toUpperCase();
|
1259 |
+
};
|
1260 |
+
|
1261 |
+
|
1262 |
+
this.toRGBString = function () {
|
1263 |
+
return ('rgb(' +
|
1264 |
+
Math.round(this.rgb[0]) + ',' +
|
1265 |
+
Math.round(this.rgb[1]) + ',' +
|
1266 |
+
Math.round(this.rgb[2]) + ')'
|
1267 |
+
);
|
1268 |
+
};
|
1269 |
+
|
1270 |
+
|
1271 |
+
this.isLight = function () {
|
1272 |
+
return (
|
1273 |
+
0.213 * this.rgb[0] +
|
1274 |
+
0.715 * this.rgb[1] +
|
1275 |
+
0.072 * this.rgb[2] >
|
1276 |
+
255 / 2
|
1277 |
+
);
|
1278 |
+
};
|
1279 |
+
|
1280 |
+
|
1281 |
+
this._processParentElementsInDOM = function () {
|
1282 |
+
if (this._linkedElementsProcessed) { return; }
|
1283 |
+
this._linkedElementsProcessed = true;
|
1284 |
+
|
1285 |
+
var elm = this.targetElement;
|
1286 |
+
do {
|
1287 |
+
// If the target element or one of its parent nodes has fixed position,
|
1288 |
+
// then use fixed positioning instead
|
1289 |
+
//
|
1290 |
+
// Note: In Firefox, getComputedStyle returns null in a hidden iframe,
|
1291 |
+
// that's why we need to check if the returned style object is non-empty
|
1292 |
+
var currStyle = jsc.getStyle(elm);
|
1293 |
+
if (currStyle && currStyle.position.toLowerCase() === 'fixed') {
|
1294 |
+
this.fixed = true;
|
1295 |
+
}
|
1296 |
+
|
1297 |
+
if (elm !== this.targetElement) {
|
1298 |
+
// Ensure to attach onParentScroll only once to each parent element
|
1299 |
+
// (multiple targetElements can share the same parent nodes)
|
1300 |
+
//
|
1301 |
+
// Note: It's not just offsetParents that can be scrollable,
|
1302 |
+
// that's why we loop through all parent nodes
|
1303 |
+
if (!elm._jscEventsAttached) {
|
1304 |
+
jsc.attachEvent(elm, 'scroll', jsc.onParentScroll);
|
1305 |
+
elm._jscEventsAttached = true;
|
1306 |
+
}
|
1307 |
+
}
|
1308 |
+
} while ((elm = elm.parentNode) && !jsc.isElementType(elm, 'body'));
|
1309 |
+
};
|
1310 |
+
|
1311 |
+
|
1312 |
+
// r: 0-255
|
1313 |
+
// g: 0-255
|
1314 |
+
// b: 0-255
|
1315 |
+
//
|
1316 |
+
// returns: [ 0-360, 0-100, 0-100 ]
|
1317 |
+
//
|
1318 |
+
function RGB_HSV (r, g, b) {
|
1319 |
+
r /= 255;
|
1320 |
+
g /= 255;
|
1321 |
+
b /= 255;
|
1322 |
+
var n = Math.min(Math.min(r,g),b);
|
1323 |
+
var v = Math.max(Math.max(r,g),b);
|
1324 |
+
var m = v - n;
|
1325 |
+
if (m === 0) { return [ null, 0, 100 * v ]; }
|
1326 |
+
var h = r===n ? 3+(b-g)/m : (g===n ? 5+(r-b)/m : 1+(g-r)/m);
|
1327 |
+
return [
|
1328 |
+
60 * (h===6?0:h),
|
1329 |
+
100 * (m/v),
|
1330 |
+
100 * v
|
1331 |
+
];
|
1332 |
+
}
|
1333 |
+
|
1334 |
+
|
1335 |
+
// h: 0-360
|
1336 |
+
// s: 0-100
|
1337 |
+
// v: 0-100
|
1338 |
+
//
|
1339 |
+
// returns: [ 0-255, 0-255, 0-255 ]
|
1340 |
+
//
|
1341 |
+
function HSV_RGB (h, s, v) {
|
1342 |
+
var u = 255 * (v / 100);
|
1343 |
+
|
1344 |
+
if (h === null) {
|
1345 |
+
return [ u, u, u ];
|
1346 |
+
}
|
1347 |
+
|
1348 |
+
h /= 60;
|
1349 |
+
s /= 100;
|
1350 |
+
|
1351 |
+
var i = Math.floor(h);
|
1352 |
+
var f = i%2 ? h-i : 1-(h-i);
|
1353 |
+
var m = u * (1 - s);
|
1354 |
+
var n = u * (1 - s * f);
|
1355 |
+
switch (i) {
|
1356 |
+
case 6:
|
1357 |
+
case 0: return [u,n,m];
|
1358 |
+
case 1: return [n,u,m];
|
1359 |
+
case 2: return [m,u,n];
|
1360 |
+
case 3: return [m,n,u];
|
1361 |
+
case 4: return [n,m,u];
|
1362 |
+
case 5: return [u,m,n];
|
1363 |
+
}
|
1364 |
+
}
|
1365 |
+
|
1366 |
+
|
1367 |
+
function detachPicker () {
|
1368 |
+
jsc.unsetClass(THIS.targetElement, THIS.activeClass);
|
1369 |
+
jsc.picker.wrap.parentNode.removeChild(jsc.picker.wrap);
|
1370 |
+
delete jsc.picker.owner;
|
1371 |
+
}
|
1372 |
+
|
1373 |
+
|
1374 |
+
function drawPicker () {
|
1375 |
+
|
1376 |
+
// At this point, when drawing the picker, we know what the parent elements are
|
1377 |
+
// and we can do all related DOM operations, such as registering events on them
|
1378 |
+
// or checking their positioning
|
1379 |
+
THIS._processParentElementsInDOM();
|
1380 |
+
|
1381 |
+
if (!jsc.picker) {
|
1382 |
+
jsc.picker = {
|
1383 |
+
owner: null,
|
1384 |
+
wrap : document.createElement('div'),
|
1385 |
+
box : document.createElement('div'),
|
1386 |
+
boxS : document.createElement('div'), // shadow area
|
1387 |
+
boxB : document.createElement('div'), // border
|
1388 |
+
pad : document.createElement('div'),
|
1389 |
+
padB : document.createElement('div'), // border
|
1390 |
+
padM : document.createElement('div'), // mouse/touch area
|
1391 |
+
padPal : jsc.createPalette(),
|
1392 |
+
cross : document.createElement('div'),
|
1393 |
+
crossBY : document.createElement('div'), // border Y
|
1394 |
+
crossBX : document.createElement('div'), // border X
|
1395 |
+
crossLY : document.createElement('div'), // line Y
|
1396 |
+
crossLX : document.createElement('div'), // line X
|
1397 |
+
sld : document.createElement('div'),
|
1398 |
+
sldB : document.createElement('div'), // border
|
1399 |
+
sldM : document.createElement('div'), // mouse/touch area
|
1400 |
+
sldGrad : jsc.createSliderGradient(),
|
1401 |
+
sldPtrS : document.createElement('div'), // slider pointer spacer
|
1402 |
+
sldPtrIB : document.createElement('div'), // slider pointer inner border
|
1403 |
+
sldPtrMB : document.createElement('div'), // slider pointer middle border
|
1404 |
+
sldPtrOB : document.createElement('div'), // slider pointer outer border
|
1405 |
+
btn : document.createElement('div'),
|
1406 |
+
btnT : document.createElement('span') // text
|
1407 |
+
};
|
1408 |
+
|
1409 |
+
jsc.picker.pad.appendChild(jsc.picker.padPal.elm);
|
1410 |
+
jsc.picker.padB.appendChild(jsc.picker.pad);
|
1411 |
+
jsc.picker.cross.appendChild(jsc.picker.crossBY);
|
1412 |
+
jsc.picker.cross.appendChild(jsc.picker.crossBX);
|
1413 |
+
jsc.picker.cross.appendChild(jsc.picker.crossLY);
|
1414 |
+
jsc.picker.cross.appendChild(jsc.picker.crossLX);
|
1415 |
+
jsc.picker.padB.appendChild(jsc.picker.cross);
|
1416 |
+
jsc.picker.box.appendChild(jsc.picker.padB);
|
1417 |
+
jsc.picker.box.appendChild(jsc.picker.padM);
|
1418 |
+
|
1419 |
+
jsc.picker.sld.appendChild(jsc.picker.sldGrad.elm);
|
1420 |
+
jsc.picker.sldB.appendChild(jsc.picker.sld);
|
1421 |
+
jsc.picker.sldB.appendChild(jsc.picker.sldPtrOB);
|
1422 |
+
jsc.picker.sldPtrOB.appendChild(jsc.picker.sldPtrMB);
|
1423 |
+
jsc.picker.sldPtrMB.appendChild(jsc.picker.sldPtrIB);
|
1424 |
+
jsc.picker.sldPtrIB.appendChild(jsc.picker.sldPtrS);
|
1425 |
+
jsc.picker.box.appendChild(jsc.picker.sldB);
|
1426 |
+
jsc.picker.box.appendChild(jsc.picker.sldM);
|
1427 |
+
|
1428 |
+
jsc.picker.btn.appendChild(jsc.picker.btnT);
|
1429 |
+
jsc.picker.box.appendChild(jsc.picker.btn);
|
1430 |
+
|
1431 |
+
jsc.picker.boxB.appendChild(jsc.picker.box);
|
1432 |
+
jsc.picker.wrap.appendChild(jsc.picker.boxS);
|
1433 |
+
jsc.picker.wrap.appendChild(jsc.picker.boxB);
|
1434 |
+
}
|
1435 |
+
|
1436 |
+
var p = jsc.picker;
|
1437 |
+
|
1438 |
+
var displaySlider = !!jsc.getSliderComponent(THIS);
|
1439 |
+
var dims = jsc.getPickerDims(THIS);
|
1440 |
+
var crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);
|
1441 |
+
var padToSliderPadding = jsc.getPadToSliderPadding(THIS);
|
1442 |
+
var borderRadius = Math.min(
|
1443 |
+
THIS.borderRadius,
|
1444 |
+
Math.round(THIS.padding * Math.PI)); // px
|
1445 |
+
var padCursor = 'crosshair';
|
1446 |
+
|
1447 |
+
// wrap
|
1448 |
+
p.wrap.style.clear = 'both';
|
1449 |
+
p.wrap.style.width = (dims[0] + 2 * THIS.borderWidth) + 'px';
|
1450 |
+
p.wrap.style.height = (dims[1] + 2 * THIS.borderWidth) + 'px';
|
1451 |
+
p.wrap.style.zIndex = THIS.zIndex;
|
1452 |
+
|
1453 |
+
// picker
|
1454 |
+
p.box.style.width = dims[0] + 'px';
|
1455 |
+
p.box.style.height = dims[1] + 'px';
|
1456 |
+
|
1457 |
+
p.boxS.style.position = 'absolute';
|
1458 |
+
p.boxS.style.left = '0';
|
1459 |
+
p.boxS.style.top = '0';
|
1460 |
+
p.boxS.style.width = '100%';
|
1461 |
+
p.boxS.style.height = '100%';
|
1462 |
+
jsc.setBorderRadius(p.boxS, borderRadius + 'px');
|
1463 |
+
|
1464 |
+
// picker border
|
1465 |
+
p.boxB.style.position = 'relative';
|
1466 |
+
p.boxB.style.border = THIS.borderWidth + 'px solid';
|
1467 |
+
p.boxB.style.borderColor = THIS.borderColor;
|
1468 |
+
p.boxB.style.background = THIS.backgroundColor;
|
1469 |
+
jsc.setBorderRadius(p.boxB, borderRadius + 'px');
|
1470 |
+
|
1471 |
+
// IE hack:
|
1472 |
+
// If the element is transparent, IE will trigger the event on the elements under it,
|
1473 |
+
// e.g. on Canvas or on elements with border
|
1474 |
+
p.padM.style.background =
|
1475 |
+
p.sldM.style.background =
|
1476 |
+
'#FFF';
|
1477 |
+
jsc.setStyle(p.padM, 'opacity', '0');
|
1478 |
+
jsc.setStyle(p.sldM, 'opacity', '0');
|
1479 |
+
|
1480 |
+
// pad
|
1481 |
+
p.pad.style.position = 'relative';
|
1482 |
+
p.pad.style.width = THIS.width + 'px';
|
1483 |
+
p.pad.style.height = THIS.height + 'px';
|
1484 |
+
|
1485 |
+
// pad palettes (HSV and HVS)
|
1486 |
+
p.padPal.draw(THIS.width, THIS.height, jsc.getPadYComponent(THIS));
|
1487 |
+
|
1488 |
+
// pad border
|
1489 |
+
p.padB.style.position = 'absolute';
|
1490 |
+
p.padB.style.left = THIS.padding + 'px';
|
1491 |
+
p.padB.style.top = THIS.padding + 'px';
|
1492 |
+
p.padB.style.border = THIS.insetWidth + 'px solid';
|
1493 |
+
p.padB.style.borderColor = THIS.insetColor;
|
1494 |
+
|
1495 |
+
// pad mouse area
|
1496 |
+
p.padM._jscInstance = THIS;
|
1497 |
+
p.padM._jscControlName = 'pad';
|
1498 |
+
p.padM.style.position = 'absolute';
|
1499 |
+
p.padM.style.left = '0';
|
1500 |
+
p.padM.style.top = '0';
|
1501 |
+
p.padM.style.width = (THIS.padding + 2 * THIS.insetWidth + THIS.width + padToSliderPadding / 2) + 'px';
|
1502 |
+
p.padM.style.height = dims[1] + 'px';
|
1503 |
+
p.padM.style.cursor = padCursor;
|
1504 |
+
|
1505 |
+
// pad cross
|
1506 |
+
p.cross.style.position = 'absolute';
|
1507 |
+
p.cross.style.left =
|
1508 |
+
p.cross.style.top =
|
1509 |
+
'0';
|
1510 |
+
p.cross.style.width =
|
1511 |
+
p.cross.style.height =
|
1512 |
+
crossOuterSize + 'px';
|
1513 |
+
|
1514 |
+
// pad cross border Y and X
|
1515 |
+
p.crossBY.style.position =
|
1516 |
+
p.crossBX.style.position =
|
1517 |
+
'absolute';
|
1518 |
+
p.crossBY.style.background =
|
1519 |
+
p.crossBX.style.background =
|
1520 |
+
THIS.pointerBorderColor;
|
1521 |
+
p.crossBY.style.width =
|
1522 |
+
p.crossBX.style.height =
|
1523 |
+
(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';
|
1524 |
+
p.crossBY.style.height =
|
1525 |
+
p.crossBX.style.width =
|
1526 |
+
crossOuterSize + 'px';
|
1527 |
+
p.crossBY.style.left =
|
1528 |
+
p.crossBX.style.top =
|
1529 |
+
(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2) - THIS.pointerBorderWidth) + 'px';
|
1530 |
+
p.crossBY.style.top =
|
1531 |
+
p.crossBX.style.left =
|
1532 |
+
'0';
|
1533 |
+
|
1534 |
+
// pad cross line Y and X
|
1535 |
+
p.crossLY.style.position =
|
1536 |
+
p.crossLX.style.position =
|
1537 |
+
'absolute';
|
1538 |
+
p.crossLY.style.background =
|
1539 |
+
p.crossLX.style.background =
|
1540 |
+
THIS.pointerColor;
|
1541 |
+
p.crossLY.style.height =
|
1542 |
+
p.crossLX.style.width =
|
1543 |
+
(crossOuterSize - 2 * THIS.pointerBorderWidth) + 'px';
|
1544 |
+
p.crossLY.style.width =
|
1545 |
+
p.crossLX.style.height =
|
1546 |
+
THIS.pointerThickness + 'px';
|
1547 |
+
p.crossLY.style.left =
|
1548 |
+
p.crossLX.style.top =
|
1549 |
+
(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2)) + 'px';
|
1550 |
+
p.crossLY.style.top =
|
1551 |
+
p.crossLX.style.left =
|
1552 |
+
THIS.pointerBorderWidth + 'px';
|
1553 |
+
|
1554 |
+
// slider
|
1555 |
+
p.sld.style.overflow = 'hidden';
|
1556 |
+
p.sld.style.width = THIS.sliderSize + 'px';
|
1557 |
+
p.sld.style.height = THIS.height + 'px';
|
1558 |
+
|
1559 |
+
// slider gradient
|
1560 |
+
p.sldGrad.draw(THIS.sliderSize, THIS.height, '#000', '#000');
|
1561 |
+
|
1562 |
+
// slider border
|
1563 |
+
p.sldB.style.display = displaySlider ? 'block' : 'none';
|
1564 |
+
p.sldB.style.position = 'absolute';
|
1565 |
+
p.sldB.style.right = THIS.padding + 'px';
|
1566 |
+
p.sldB.style.top = THIS.padding + 'px';
|
1567 |
+
p.sldB.style.border = THIS.insetWidth + 'px solid';
|
1568 |
+
p.sldB.style.borderColor = THIS.insetColor;
|
1569 |
+
|
1570 |
+
// slider mouse area
|
1571 |
+
p.sldM._jscInstance = THIS;
|
1572 |
+
p.sldM._jscControlName = 'sld';
|
1573 |
+
p.sldM.style.display = displaySlider ? 'block' : 'none';
|
1574 |
+
p.sldM.style.position = 'absolute';
|
1575 |
+
p.sldM.style.right = '0';
|
1576 |
+
p.sldM.style.top = '0';
|
1577 |
+
p.sldM.style.width = (THIS.sliderSize + padToSliderPadding / 2 + THIS.padding + 2 * THIS.insetWidth) + 'px';
|
1578 |
+
p.sldM.style.height = dims[1] + 'px';
|
1579 |
+
p.sldM.style.cursor = 'default';
|
1580 |
+
|
1581 |
+
// slider pointer inner and outer border
|
1582 |
+
p.sldPtrIB.style.border =
|
1583 |
+
p.sldPtrOB.style.border =
|
1584 |
+
THIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor;
|
1585 |
+
|
1586 |
+
// slider pointer outer border
|
1587 |
+
p.sldPtrOB.style.position = 'absolute';
|
1588 |
+
p.sldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';
|
1589 |
+
p.sldPtrOB.style.top = '0';
|
1590 |
+
|
1591 |
+
// slider pointer middle border
|
1592 |
+
p.sldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor;
|
1593 |
+
|
1594 |
+
// slider pointer spacer
|
1595 |
+
p.sldPtrS.style.width = THIS.sliderSize + 'px';
|
1596 |
+
p.sldPtrS.style.height = sliderPtrSpace + 'px';
|
1597 |
+
|
1598 |
+
// the Close button
|
1599 |
+
function setBtnBorder () {
|
1600 |
+
var insetColors = THIS.insetColor.split(/\s+/);
|
1601 |
+
var outsetColor = insetColors.length < 2 ? insetColors[0] : insetColors[1] + ' ' + insetColors[0] + ' ' + insetColors[0] + ' ' + insetColors[1];
|
1602 |
+
p.btn.style.borderColor = outsetColor;
|
1603 |
+
}
|
1604 |
+
p.btn.style.display = THIS.closable ? 'block' : 'none';
|
1605 |
+
p.btn.style.position = 'absolute';
|
1606 |
+
p.btn.style.left = THIS.padding + 'px';
|
1607 |
+
p.btn.style.bottom = THIS.padding + 'px';
|
1608 |
+
p.btn.style.padding = '0 15px';
|
1609 |
+
p.btn.style.height = THIS.buttonHeight + 'px';
|
1610 |
+
p.btn.style.border = THIS.insetWidth + 'px solid';
|
1611 |
+
setBtnBorder();
|
1612 |
+
p.btn.style.color = THIS.buttonColor;
|
1613 |
+
p.btn.style.font = '12px sans-serif';
|
1614 |
+
p.btn.style.textAlign = 'center';
|
1615 |
+
try {
|
1616 |
+
p.btn.style.cursor = 'pointer';
|
1617 |
+
} catch(eOldIE) {
|
1618 |
+
p.btn.style.cursor = 'hand';
|
1619 |
+
}
|
1620 |
+
p.btn.onmousedown = function () {
|
1621 |
+
THIS.hide();
|
1622 |
+
};
|
1623 |
+
p.btnT.style.lineHeight = THIS.buttonHeight + 'px';
|
1624 |
+
p.btnT.innerHTML = '';
|
1625 |
+
p.btnT.appendChild(document.createTextNode(THIS.closeText));
|
1626 |
+
|
1627 |
+
// place pointers
|
1628 |
+
redrawPad();
|
1629 |
+
redrawSld();
|
1630 |
+
|
1631 |
+
// If we are changing the owner without first closing the picker,
|
1632 |
+
// make sure to first deal with the old owner
|
1633 |
+
if (jsc.picker.owner && jsc.picker.owner !== THIS) {
|
1634 |
+
jsc.unsetClass(jsc.picker.owner.targetElement, THIS.activeClass);
|
1635 |
+
}
|
1636 |
+
|
1637 |
+
// Set the new picker owner
|
1638 |
+
jsc.picker.owner = THIS;
|
1639 |
+
|
1640 |
+
// The redrawPosition() method needs picker.owner to be set, that's why we call it here,
|
1641 |
+
// after setting the owner
|
1642 |
+
if (jsc.isElementType(container, 'body')) {
|
1643 |
+
jsc.redrawPosition();
|
1644 |
+
} else {
|
1645 |
+
jsc._drawPosition(THIS, 0, 0, 'relative', false);
|
1646 |
+
}
|
1647 |
+
|
1648 |
+
if (p.wrap.parentNode != container) {
|
1649 |
+
container.appendChild(p.wrap);
|
1650 |
+
}
|
1651 |
+
|
1652 |
+
jsc.setClass(THIS.targetElement, THIS.activeClass);
|
1653 |
+
}
|
1654 |
+
|
1655 |
+
|
1656 |
+
function redrawPad () {
|
1657 |
+
// redraw the pad pointer
|
1658 |
+
switch (jsc.getPadYComponent(THIS)) {
|
1659 |
+
case 's': var yComponent = 1; break;
|
1660 |
+
case 'v': var yComponent = 2; break;
|
1661 |
+
}
|
1662 |
+
var x = Math.round((THIS.hsv[0] / 360) * (THIS.width - 1));
|
1663 |
+
var y = Math.round((1 - THIS.hsv[yComponent] / 100) * (THIS.height - 1));
|
1664 |
+
var crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);
|
1665 |
+
var ofs = -Math.floor(crossOuterSize / 2);
|
1666 |
+
jsc.picker.cross.style.left = (x + ofs) + 'px';
|
1667 |
+
jsc.picker.cross.style.top = (y + ofs) + 'px';
|
1668 |
+
|
1669 |
+
// redraw the slider
|
1670 |
+
switch (jsc.getSliderComponent(THIS)) {
|
1671 |
+
case 's':
|
1672 |
+
var rgb1 = HSV_RGB(THIS.hsv[0], 100, THIS.hsv[2]);
|
1673 |
+
var rgb2 = HSV_RGB(THIS.hsv[0], 0, THIS.hsv[2]);
|
1674 |
+
var color1 = 'rgb(' +
|
1675 |
+
Math.round(rgb1[0]) + ',' +
|
1676 |
+
Math.round(rgb1[1]) + ',' +
|
1677 |
+
Math.round(rgb1[2]) + ')';
|
1678 |
+
var color2 = 'rgb(' +
|
1679 |
+
Math.round(rgb2[0]) + ',' +
|
1680 |
+
Math.round(rgb2[1]) + ',' +
|
1681 |
+
Math.round(rgb2[2]) + ')';
|
1682 |
+
jsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);
|
1683 |
+
break;
|
1684 |
+
case 'v':
|
1685 |
+
var rgb = HSV_RGB(THIS.hsv[0], THIS.hsv[1], 100);
|
1686 |
+
var color1 = 'rgb(' +
|
1687 |
+
Math.round(rgb[0]) + ',' +
|
1688 |
+
Math.round(rgb[1]) + ',' +
|
1689 |
+
Math.round(rgb[2]) + ')';
|
1690 |
+
var color2 = '#000';
|
1691 |
+
jsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);
|
1692 |
+
break;
|
1693 |
+
}
|
1694 |
+
}
|
1695 |
+
|
1696 |
+
|
1697 |
+
function redrawSld () {
|
1698 |
+
var sldComponent = jsc.getSliderComponent(THIS);
|
1699 |
+
if (sldComponent) {
|
1700 |
+
// redraw the slider pointer
|
1701 |
+
switch (sldComponent) {
|
1702 |
+
case 's': var yComponent = 1; break;
|
1703 |
+
case 'v': var yComponent = 2; break;
|
1704 |
+
}
|
1705 |
+
var y = Math.round((1 - THIS.hsv[yComponent] / 100) * (THIS.height - 1));
|
1706 |
+
jsc.picker.sldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(sliderPtrSpace / 2)) + 'px';
|
1707 |
+
}
|
1708 |
+
}
|
1709 |
+
|
1710 |
+
|
1711 |
+
function isPickerOwner () {
|
1712 |
+
return jsc.picker && jsc.picker.owner === THIS;
|
1713 |
+
}
|
1714 |
+
|
1715 |
+
|
1716 |
+
function blurValue () {
|
1717 |
+
THIS.importColor();
|
1718 |
+
}
|
1719 |
+
|
1720 |
+
|
1721 |
+
// Find the target element
|
1722 |
+
if (typeof targetElement === 'string') {
|
1723 |
+
var id = targetElement;
|
1724 |
+
var elm = document.getElementById(id);
|
1725 |
+
if (elm) {
|
1726 |
+
this.targetElement = elm;
|
1727 |
+
} else {
|
1728 |
+
jsc.warn('Could not find target element with ID \'' + id + '\'');
|
1729 |
+
}
|
1730 |
+
} else if (targetElement) {
|
1731 |
+
this.targetElement = targetElement;
|
1732 |
+
} else {
|
1733 |
+
jsc.warn('Invalid target element: \'' + targetElement + '\'');
|
1734 |
+
}
|
1735 |
+
|
1736 |
+
if (this.targetElement._jscLinkedInstance) {
|
1737 |
+
jsc.warn('Cannot link jscolor twice to the same element. Skipping.');
|
1738 |
+
return;
|
1739 |
+
}
|
1740 |
+
this.targetElement._jscLinkedInstance = this;
|
1741 |
+
|
1742 |
+
// Find the value element
|
1743 |
+
this.valueElement = jsc.fetchElement(this.valueElement);
|
1744 |
+
// Find the style element
|
1745 |
+
this.styleElement = jsc.fetchElement(this.styleElement);
|
1746 |
+
|
1747 |
+
var THIS = this;
|
1748 |
+
var container =
|
1749 |
+
this.container ?
|
1750 |
+
jsc.fetchElement(this.container) :
|
1751 |
+
document.getElementsByTagName('body')[0];
|
1752 |
+
var sliderPtrSpace = 3; // px
|
1753 |
+
|
1754 |
+
// For BUTTON elements it's important to stop them from sending the form when clicked
|
1755 |
+
// (e.g. in Safari)
|
1756 |
+
if (jsc.isElementType(this.targetElement, 'button')) {
|
1757 |
+
if (this.targetElement.onclick) {
|
1758 |
+
var origCallback = this.targetElement.onclick;
|
1759 |
+
this.targetElement.onclick = function (evt) {
|
1760 |
+
origCallback.call(this, evt);
|
1761 |
+
return false;
|
1762 |
+
};
|
1763 |
+
} else {
|
1764 |
+
this.targetElement.onclick = function () { return false; };
|
1765 |
+
}
|
1766 |
+
}
|
1767 |
+
|
1768 |
+
/*
|
1769 |
+
var elm = this.targetElement;
|
1770 |
+
do {
|
1771 |
+
// If the target element or one of its offsetParents has fixed position,
|
1772 |
+
// then use fixed positioning instead
|
1773 |
+
//
|
1774 |
+
// Note: In Firefox, getComputedStyle returns null in a hidden iframe,
|
1775 |
+
// that's why we need to check if the returned style object is non-empty
|
1776 |
+
var currStyle = jsc.getStyle(elm);
|
1777 |
+
if (currStyle && currStyle.position.toLowerCase() === 'fixed') {
|
1778 |
+
this.fixed = true;
|
1779 |
+
}
|
1780 |
+
|
1781 |
+
if (elm !== this.targetElement) {
|
1782 |
+
// attach onParentScroll so that we can recompute the picker position
|
1783 |
+
// when one of the offsetParents is scrolled
|
1784 |
+
if (!elm._jscEventsAttached) {
|
1785 |
+
jsc.attachEvent(elm, 'scroll', jsc.onParentScroll);
|
1786 |
+
elm._jscEventsAttached = true;
|
1787 |
+
}
|
1788 |
+
}
|
1789 |
+
} while ((elm = elm.offsetParent) && !jsc.isElementType(elm, 'body'));
|
1790 |
+
*/
|
1791 |
+
|
1792 |
+
// valueElement
|
1793 |
+
if (this.valueElement) {
|
1794 |
+
if (jsc.isElementType(this.valueElement, 'input')) {
|
1795 |
+
var updateField = function () {
|
1796 |
+
THIS.fromString(THIS.valueElement.value, jsc.leaveValue);
|
1797 |
+
jsc.dispatchFineChange(THIS);
|
1798 |
+
};
|
1799 |
+
jsc.attachEvent(this.valueElement, 'keyup', updateField);
|
1800 |
+
jsc.attachEvent(this.valueElement, 'input', updateField);
|
1801 |
+
jsc.attachEvent(this.valueElement, 'blur', blurValue);
|
1802 |
+
this.valueElement.setAttribute('autocomplete', 'off');
|
1803 |
+
}
|
1804 |
+
}
|
1805 |
+
|
1806 |
+
// styleElement
|
1807 |
+
if (this.styleElement) {
|
1808 |
+
this.styleElement._jscOrigStyle = {
|
1809 |
+
backgroundImage : this.styleElement.style.backgroundImage,
|
1810 |
+
backgroundColor : this.styleElement.style.backgroundColor,
|
1811 |
+
color : this.styleElement.style.color
|
1812 |
+
};
|
1813 |
+
}
|
1814 |
+
|
1815 |
+
if (this.value) {
|
1816 |
+
// Try to set the color from the .value option and if unsuccessful,
|
1817 |
+
// export the current color
|
1818 |
+
this.fromString(this.value) || this.exportColor();
|
1819 |
+
} else {
|
1820 |
+
this.importColor();
|
1821 |
+
}
|
1822 |
+
}
|
1823 |
+
|
1824 |
+
};
|
1825 |
+
|
1826 |
+
|
1827 |
+
//================================
|
1828 |
+
// Public properties and methods
|
1829 |
+
//================================
|
1830 |
+
|
1831 |
+
|
1832 |
+
// By default, search for all elements with class="jscolor" and install a color picker on them.
|
1833 |
+
//
|
1834 |
+
// You can change what class name will be looked for by setting the property jscolor.lookupClass
|
1835 |
+
// anywhere in your HTML document. To completely disable the automatic lookup, set it to null.
|
1836 |
+
//
|
1837 |
+
jsc.jscolor.lookupClass = 'jscolor';
|
1838 |
+
|
1839 |
+
|
1840 |
+
jsc.jscolor.installByClassName = function (className) {
|
1841 |
+
var inputElms = document.getElementsByTagName('input');
|
1842 |
+
var buttonElms = document.getElementsByTagName('button');
|
1843 |
+
|
1844 |
+
jsc.tryInstallOnElements(inputElms, className);
|
1845 |
+
jsc.tryInstallOnElements(buttonElms, className);
|
1846 |
+
};
|
1847 |
+
|
1848 |
+
|
1849 |
+
jsc.register();
|
1850 |
+
|
1851 |
+
|
1852 |
+
return jsc.jscolor;
|
1853 |
+
|
1854 |
+
|
1855 |
+
})(); }
|
admin/assets/js/settings.js
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
(function($){
|
2 |
+
$(document).ready(function(){
|
3 |
+
$('input#wapt_text-line-spacing').attr('step', '0.1');
|
4 |
+
$('input#wapt_text-line-spacing').attr('min', '0');
|
5 |
+
|
6 |
+
//Чтобы при клике на label не открывались закрытые опции
|
7 |
+
$("label[for*='wapt_']").on('click', function (e) {
|
8 |
+
e.preventDefault();
|
9 |
+
})
|
10 |
+
});
|
11 |
+
})(jQuery);
|
admin/assets/js/upload-font.js
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(function ( $ ) {
|
2 |
+
|
3 |
+
var $element = $(".factory-bootstrap-426 .factory-wapt-fonts");
|
4 |
+
var upload_button = $('#wapt-upload-button');
|
5 |
+
var upload_loader = $('#wapt-upload-loader');
|
6 |
+
|
7 |
+
$element.factoryBootstrap426_dropdownControl();
|
8 |
+
|
9 |
+
upload_button.on('click', function(e){
|
10 |
+
e.preventDefault();
|
11 |
+
$('#wapt-font-file').trigger('click');
|
12 |
+
});
|
13 |
+
|
14 |
+
$('#wapt-font-file').on('change', function(event){
|
15 |
+
upload_button.attr('disabled', 'disabled');
|
16 |
+
upload_loader.toggleClass('wapt-loader-invisible');
|
17 |
+
files = this.files;
|
18 |
+
//event.stopPropagation(); // остановка всех текущих JS событий
|
19 |
+
|
20 |
+
// ничего не делаем если files пустой
|
21 |
+
if( typeof files == 'undefined' || files.length < 1) return;
|
22 |
+
|
23 |
+
var data = new FormData();
|
24 |
+
|
25 |
+
// заполняем объект данных файлами в подходящем для отправки формате
|
26 |
+
$.each( files, function( key, value ){
|
27 |
+
data.append( key, value );
|
28 |
+
});
|
29 |
+
|
30 |
+
data.append( 'action', 'wapt_upload_font' );
|
31 |
+
data.append( 'wpnonce', wapt_upload_font.nonce );
|
32 |
+
data.append( 'is_font_upload', 1 );
|
33 |
+
|
34 |
+
$.ajax({
|
35 |
+
url : ajaxurl,
|
36 |
+
type : 'POST',
|
37 |
+
data : data,
|
38 |
+
cache : false,
|
39 |
+
dataType : 'json',
|
40 |
+
processData : false,
|
41 |
+
contentType : false,
|
42 |
+
success : function( respond, status, jqXHR ){
|
43 |
+
if( typeof respond.error === 'undefined' ){
|
44 |
+
$('#wapt-font-file').val([]);
|
45 |
+
console.log(respond.files);
|
46 |
+
file = respond.files;
|
47 |
+
var $option = $('<option />')
|
48 |
+
.attr('value', file.name)
|
49 |
+
.text(file.name)
|
50 |
+
.appendTo($element);
|
51 |
+
}
|
52 |
+
else {
|
53 |
+
alert('ERROR: ' + respond.error );
|
54 |
+
console.log('ERROR: ' + respond.error );
|
55 |
+
}
|
56 |
+
},
|
57 |
+
error: function( jqXHR, status, errorThrown ){
|
58 |
+
console.log( 'AJAX error: ' + status, jqXHR );
|
59 |
+
},
|
60 |
+
complete: function( ){
|
61 |
+
upload_button.removeAttr('disabled');
|
62 |
+
upload_loader.toggleClass('wapt-loader-invisible');
|
63 |
+
}
|
64 |
+
|
65 |
+
});
|
66 |
+
});
|
67 |
+
|
68 |
+
});
|
admin/class-wapt-activation.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
6 |
* @copyright (c) 02.12.2018, Webcraftic
|
7 |
-
* @see
|
8 |
*
|
9 |
* @version 1.0.1
|
10 |
*/
|
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
class WAPT_Activation extends
|
18 |
|
19 |
/**
|
20 |
* Method is executed during the activation of the plugin.
|
@@ -23,6 +23,14 @@ class WAPT_Activation extends Wbcr_Factory421_Activator {
|
|
23 |
*/
|
24 |
public function activate() {
|
25 |
// Code to be executed during plugin activation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
|
28 |
/**
|
4 |
*
|
5 |
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
6 |
* @copyright (c) 02.12.2018, Webcraftic
|
7 |
+
* @see Wbcr_Factory425_Activator
|
8 |
*
|
9 |
* @version 1.0.1
|
10 |
*/
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
class WAPT_Activation extends Wbcr_Factory425_Activator {
|
18 |
|
19 |
/**
|
20 |
* Method is executed during the activation of the plugin.
|
23 |
*/
|
24 |
public function activate() {
|
25 |
// Code to be executed during plugin activation
|
26 |
+
$limit = array(
|
27 |
+
'count' => 10,
|
28 |
+
'expires' => time(),
|
29 |
+
);
|
30 |
+
$google_limit = WAPT_Plugin::app()->getOption('google_limit');
|
31 |
+
if(!$google_limit) WAPT_Plugin::app()->updateOption('google_limit', $limit);
|
32 |
+
|
33 |
+
//update_option( $this->plugin->getOptionName( 'whats_new_v360' ), 1 );
|
34 |
}
|
35 |
|
36 |
/**
|
admin/class-wapt-page.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
6 |
* @copyright (c) 02.12.2018, Webcraftic
|
7 |
-
* @see
|
8 |
*
|
9 |
* @version 1.0.0
|
10 |
*/
|
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
-
class WAPT_Page extends
|
18 |
|
19 |
/**
|
20 |
* Name of the template to get content of. It will be based on plugins /admin/views/ dir.
|
@@ -59,7 +59,10 @@ class WAPT_Page extends Wbcr_FactoryPages421_AdminPage {
|
|
59 |
|
60 |
$this->scripts->request( [
|
61 |
'control.checkbox',
|
62 |
-
'control.dropdown'
|
|
|
|
|
|
|
63 |
], 'bootstrap' );
|
64 |
|
65 |
$this->styles->request( [
|
@@ -68,6 +71,8 @@ class WAPT_Page extends Wbcr_FactoryPages421_AdminPage {
|
|
68 |
'bootstrap.separator',
|
69 |
'control.dropdown',
|
70 |
'control.checkbox',
|
|
|
|
|
71 |
], 'bootstrap' );
|
72 |
}
|
73 |
|
4 |
*
|
5 |
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
6 |
* @copyright (c) 02.12.2018, Webcraftic
|
7 |
+
* @see Wbcr_FactoryPages425_AdminPage
|
8 |
*
|
9 |
* @version 1.0.0
|
10 |
*/
|
14 |
exit;
|
15 |
}
|
16 |
|
17 |
+
class WAPT_Page extends Wbcr_FactoryPages425_AdminPage {
|
18 |
|
19 |
/**
|
20 |
* Name of the template to get content of. It will be based on plugins /admin/views/ dir.
|
59 |
|
60 |
$this->scripts->request( [
|
61 |
'control.checkbox',
|
62 |
+
'control.dropdown',
|
63 |
+
'control.integer',
|
64 |
+
'plugin.nouislider',
|
65 |
+
'bootstrap.dropdown'
|
66 |
], 'bootstrap' );
|
67 |
|
68 |
$this->styles->request( [
|
71 |
'bootstrap.separator',
|
72 |
'control.dropdown',
|
73 |
'control.checkbox',
|
74 |
+
'control.integer',
|
75 |
+
'plugin.nouislider',
|
76 |
], 'bootstrap' );
|
77 |
}
|
78 |
|
admin/pages/generate.php
CHANGED
@@ -20,7 +20,7 @@ class WAPT_Generate extends WAPT_Page {
|
|
20 |
* Mainly used to navigate between pages.
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
-
* @see
|
24 |
*
|
25 |
* @var string
|
26 |
*/
|
20 |
* Mainly used to navigate between pages.
|
21 |
*
|
22 |
* @since 1.0.0
|
23 |
+
* @see FactoryPages425_AdminPage
|
24 |
*
|
25 |
* @var string
|
26 |
*/
|
admin/pages/license.php
CHANGED
@@ -52,7 +52,7 @@ class WAPT_License extends WAPT_Page {
|
|
52 |
|
53 |
/**
|
54 |
* @since 2.0.7
|
55 |
-
* @var \WBCR\
|
56 |
*/
|
57 |
protected $premium;
|
58 |
|
@@ -70,7 +70,7 @@ class WAPT_License extends WAPT_Page {
|
|
70 |
|
71 |
/**
|
72 |
* @since 2.0.7
|
73 |
-
* @var \WBCR\
|
74 |
*/
|
75 |
protected $premium_license;
|
76 |
|
@@ -79,9 +79,9 @@ class WAPT_License extends WAPT_Page {
|
|
79 |
|
80 |
/**
|
81 |
* {@inheritdoc}
|
82 |
-
* @param
|
83 |
*/
|
84 |
-
public function __construct (
|
85 |
$this->plugin = $plugin;
|
86 |
|
87 |
parent::__construct( $plugin );
|
52 |
|
53 |
/**
|
54 |
* @since 2.0.7
|
55 |
+
* @var \WBCR\Factory_425\Premium\Provider
|
56 |
*/
|
57 |
protected $premium;
|
58 |
|
70 |
|
71 |
/**
|
72 |
* @since 2.0.7
|
73 |
+
* @var \WBCR\Factory_425\Premium\Interfaces\License
|
74 |
*/
|
75 |
protected $premium_license;
|
76 |
|
79 |
|
80 |
/**
|
81 |
* {@inheritdoc}
|
82 |
+
* @param WAPT_Plugin $plugin
|
83 |
*/
|
84 |
+
public function __construct ( $plugin ) {
|
85 |
$this->plugin = $plugin;
|
86 |
|
87 |
parent::__construct( $plugin );
|
admin/pages/settings.php
CHANGED
@@ -48,18 +48,39 @@ class WAPT_Settings extends WAPT_Page {
|
|
48 |
$this->capabilitiy = "manage_options";
|
49 |
$this->template_name = "settings";
|
50 |
|
51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
53 |
$this->plugin = $plugin;
|
|
|
|
|
54 |
}
|
55 |
|
56 |
/**
|
57 |
* Returns options for the Basic Settings screen.
|
58 |
*
|
59 |
-
* @since
|
60 |
* @return array
|
61 |
*/
|
62 |
-
public function
|
63 |
|
64 |
$options = [];
|
65 |
|
@@ -76,9 +97,26 @@ class WAPT_Settings extends WAPT_Page {
|
|
76 |
'type' => 'checkbox',
|
77 |
'way' => 'buttons',
|
78 |
'name' => 'auto_generation',
|
79 |
-
'title' => __( '
|
80 |
-
'default' =>
|
81 |
-
'hint' => __( '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
];
|
83 |
|
84 |
$options[] = [
|
@@ -89,6 +127,300 @@ class WAPT_Settings extends WAPT_Page {
|
|
89 |
'default' => false,
|
90 |
'hint' => __( 'Delete settings when removing the plugin', 'apt' )
|
91 |
];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
/* GOOGLE */
|
93 |
$options[] = [
|
94 |
'type' => 'html',
|
@@ -99,6 +431,12 @@ class WAPT_Settings extends WAPT_Page {
|
|
99 |
'type' => 'separator'
|
100 |
];
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
// Текстовое поле
|
103 |
$options[] = [
|
104 |
'type' => 'textbox',
|
@@ -126,17 +464,34 @@ class WAPT_Settings extends WAPT_Page {
|
|
126 |
}
|
127 |
|
128 |
public function indexAction() {
|
129 |
-
|
|
|
|
|
130 |
// creating a form
|
131 |
global $form;
|
132 |
-
$form = new
|
133 |
'scope' => substr( $this->plugin->getPrefix(), 0, - 1 ),
|
134 |
'name' => 'setting'
|
135 |
], $this->plugin );
|
136 |
|
137 |
-
$form->setProvider( new
|
138 |
|
139 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
|
141 |
$wapt_saved = WAPT_Plugin::app()->request->post( $this->plugin->getPrefix() . 'saved', '' );
|
142 |
if ( ! empty( $wapt_saved ) ) {
|
48 |
$this->capabilitiy = "manage_options";
|
49 |
$this->template_name = "settings";
|
50 |
|
51 |
+
add_action( 'wbcr_factory_forms_423_register_controls', function(){
|
52 |
+
$colorControls = array(
|
53 |
+
[
|
54 |
+
'type' => 'wapt-color',
|
55 |
+
'class' => 'Wapt_FactoryForms_ColorControl',
|
56 |
+
'include' => WAPT_PLUGIN_DIR . '/includes/controls/class.color.php'
|
57 |
+
],
|
58 |
+
[
|
59 |
+
'type' => 'wapt-mediabutton',
|
60 |
+
'class' => 'Wapt_FactoryForms_MediaButtonControl',
|
61 |
+
'include' => WAPT_PLUGIN_DIR . '/includes/controls/class.mediabutton.php'
|
62 |
+
],
|
63 |
+
[
|
64 |
+
'type' => 'wapt-fonts',
|
65 |
+
'class' => 'Wapt_FactoryForms_FontsControl',
|
66 |
+
'include' => WAPT_PLUGIN_DIR . '/includes/controls/class.fonts.php'
|
67 |
+
],
|
68 |
+
);
|
69 |
+
$this->plugin->forms->registerControls( $colorControls );
|
70 |
+
});
|
71 |
|
72 |
$this->plugin = $plugin;
|
73 |
+
|
74 |
+
parent::__construct( $plugin );
|
75 |
}
|
76 |
|
77 |
/**
|
78 |
* Returns options for the Basic Settings screen.
|
79 |
*
|
80 |
+
* @since 3.6.2
|
81 |
* @return array
|
82 |
*/
|
83 |
+
public function getOptions_general() {
|
84 |
|
85 |
$options = [];
|
86 |
|
97 |
'type' => 'checkbox',
|
98 |
'way' => 'buttons',
|
99 |
'name' => 'auto_generation',
|
100 |
+
'title' => __( 'Add featured image when saving a post', 'apt' ),
|
101 |
+
'default' => true,
|
102 |
+
'hint' => __( 'Automatically add featured image when saving a post', 'apt' )
|
103 |
+
];
|
104 |
+
|
105 |
+
$options[] = [
|
106 |
+
'type' => 'dropdown',
|
107 |
+
'way' => 'buttons',
|
108 |
+
'name' => 'generate_autoimage',
|
109 |
+
'data' => [
|
110 |
+
[ 'find', __( 'Find in post', 'apt' ) ],
|
111 |
+
[ 'generate', __( 'Generate from title', 'apt' ) ],
|
112 |
+
[ 'both', __( 'Both', 'apt' ) ],
|
113 |
+
],
|
114 |
+
'default' => 'find',
|
115 |
+
'title' => __( 'Featured image', 'apt' ),
|
116 |
+
'hint' => __( "How to generate featured image:
|
117 |
+
<br> <b>Find in post:</b> search for the first image in the post text
|
118 |
+
<br> <b>Generate from title:</b> created from the title on a colored background
|
119 |
+
<br> <b>Both:</b> find an image in the post text, if it is not present, generate it from the title", 'apt' ),
|
120 |
];
|
121 |
|
122 |
$options[] = [
|
127 |
'default' => false,
|
128 |
'hint' => __( 'Delete settings when removing the plugin', 'apt' )
|
129 |
];
|
130 |
+
|
131 |
+
return $options;
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Returns options for the Basic Settings screen.
|
136 |
+
*
|
137 |
+
* @since 3.6.2
|
138 |
+
* @return array
|
139 |
+
*/
|
140 |
+
public function getOptions_image() {
|
141 |
+
|
142 |
+
$is_premium = AutoPostThumbnails::instance()->is_premium();
|
143 |
+
$pro = $is_premium ? '' : "<br><span class='wapt-icon-pro wapt-icon-pro-span'>PRO</span>";
|
144 |
+
|
145 |
+
$options = [];
|
146 |
+
|
147 |
+
$options[] = [
|
148 |
+
'type' => 'html',
|
149 |
+
'html' => '<h3 style="margin-left:0">'.__( 'Background settings', 'apt' ).'</h3>'
|
150 |
+
];
|
151 |
+
|
152 |
+
$options[] = [
|
153 |
+
'type' => 'separator'
|
154 |
+
];
|
155 |
+
|
156 |
+
$options[] = [
|
157 |
+
'type' => 'dropdown',
|
158 |
+
'way' => 'buttons',
|
159 |
+
'name' => 'background-type',
|
160 |
+
'data' => [
|
161 |
+
[ 'color', __( 'Color', 'apt' ) ],
|
162 |
+
[ 'image', __( 'Image', 'apt' ) ],
|
163 |
+
],
|
164 |
+
'default' => 'color',
|
165 |
+
'title' => __( 'Background type', 'apt' ),
|
166 |
+
'hint' => __( 'Select the background type for the featured image', 'apt' ),
|
167 |
+
'cssClass' => ( !$is_premium) ? [ 'wapt-icon-pro' ] : [],
|
168 |
+
];
|
169 |
+
|
170 |
+
$options[] = [
|
171 |
+
'type' => 'wapt-color',
|
172 |
+
'name' => 'background-color',
|
173 |
+
'default' => '#ff6262',
|
174 |
+
'title' => __( 'Background color for the image', 'apt' ),
|
175 |
+
'hint' => __( 'Set the background color for the featured image', 'apt' )
|
176 |
+
];
|
177 |
+
|
178 |
+
if($is_premium) {
|
179 |
+
$options[] = [
|
180 |
+
'type' => 'wapt-mediabutton',
|
181 |
+
'name' => 'background-image',
|
182 |
+
'text' => __( 'Select image', 'apt' ),
|
183 |
+
'title' => __( 'Background image', 'apt' ),
|
184 |
+
'hint' => __( 'Set the background image. Only JPG or PNG', 'apt' ),
|
185 |
+
'cssClass' => ( ! $is_premium ) ? [ 'wapt-icon-pro' ] : [],
|
186 |
+
];
|
187 |
+
}
|
188 |
+
|
189 |
+
$options[] = [
|
190 |
+
'type' => 'dropdown',
|
191 |
+
'way' => 'buttons',
|
192 |
+
'name' => 'image-type',
|
193 |
+
'data' => [
|
194 |
+
[ 'jpg', __( 'JPEG', 'apt' ) ],
|
195 |
+
[ 'png', __( 'PNG', 'apt' ) ],
|
196 |
+
],
|
197 |
+
'default' => 'jpg',
|
198 |
+
'title' => __( 'Image format', 'apt' ),
|
199 |
+
'hint' => __( 'Set format to save images', 'apt' ),
|
200 |
+
];
|
201 |
+
//----------------------------------------------------------------------
|
202 |
+
$options[] = [
|
203 |
+
'type' => 'html',
|
204 |
+
'html' => '<h3 style="margin-left:0">'.__( 'Font settings', 'apt' ).'</h3>'
|
205 |
+
];
|
206 |
+
|
207 |
+
$options[] = [
|
208 |
+
'type' => 'separator'
|
209 |
+
];
|
210 |
+
|
211 |
+
$options[] = [
|
212 |
+
'type' => 'wapt-fonts',
|
213 |
+
'name' => 'font',
|
214 |
+
'data' => AutoPostThumbnails::get_fonts(),
|
215 |
+
'empty' => '',
|
216 |
+
'title' => __( 'Font name', 'apt' ),
|
217 |
+
'hint' => __( 'Select a font for the text in the featured image', 'apt' ),
|
218 |
+
'cssClass' => ( !$is_premium) ? [ 'wapt-icon-pro' ] : [],
|
219 |
+
];
|
220 |
+
|
221 |
+
$options[] = [
|
222 |
+
'type' => 'integer',
|
223 |
+
'way' => 'text',
|
224 |
+
'name' => 'font-size',
|
225 |
+
'units' => 'pt',
|
226 |
+
'default' => 25,
|
227 |
+
'title' => __( 'Font size', 'apt' ),
|
228 |
+
'hint' => __( 'Set the font size for the featured image', 'apt' )
|
229 |
+
];
|
230 |
+
|
231 |
+
$options[] = [
|
232 |
+
'type' => 'wapt-color',
|
233 |
+
'name' => 'font-color',
|
234 |
+
'title' => __( 'Font color', 'apt' ),
|
235 |
+
'hint' => __( 'Set the font color for the featured image', 'apt' )
|
236 |
+
];
|
237 |
+
|
238 |
+
//----------------------------------------------------------------------
|
239 |
+
$options[] = [
|
240 |
+
'type' => 'html',
|
241 |
+
'html' => '<h3 style="margin-left:0">'.__( 'Text settings', 'apt' ).'</h3>'
|
242 |
+
];
|
243 |
+
|
244 |
+
$options[] = [
|
245 |
+
'type' => 'separator'
|
246 |
+
];
|
247 |
+
|
248 |
+
$options[] = [
|
249 |
+
'type' => 'checkbox',
|
250 |
+
'way' => 'buttons',
|
251 |
+
'name' => 'shadow',
|
252 |
+
'default' => '0',
|
253 |
+
'title' => __( 'Text shadow', 'apt' ),
|
254 |
+
'hint' => __( 'Use text shadow?', 'apt' ),
|
255 |
+
'eventsOn' => [
|
256 |
+
'show' => '.factory-control-shadow-color'
|
257 |
+
],
|
258 |
+
'eventsOff' => [
|
259 |
+
'hide' => '.factory-control-shadow-color'
|
260 |
+
],
|
261 |
+
];
|
262 |
+
|
263 |
+
$options[] = [
|
264 |
+
'type' => 'wapt-color',
|
265 |
+
'name' => 'shadow-color',
|
266 |
+
'title' => __( 'Shadow color', 'apt' ),
|
267 |
+
'hint' => __( 'Set the shadow color for the text', 'apt' )
|
268 |
+
];
|
269 |
+
|
270 |
+
$options[] = [
|
271 |
+
'type' => 'dropdown',
|
272 |
+
'way' => 'buttons',
|
273 |
+
'name' => 'text-transform',
|
274 |
+
'data' => [
|
275 |
+
[ 'no', __( 'No transform', 'apt' ) ],
|
276 |
+
[ 'upper', __( 'Uppercase', 'apt' ) ],
|
277 |
+
[ 'lower', __( 'Lowercase', 'apt' ) ],
|
278 |
+
],
|
279 |
+
'default' => 'no',
|
280 |
+
'title' => __( 'Text transform', 'apt' ),
|
281 |
+
'hint' => __( 'Select type of text transformation', 'apt' )
|
282 |
+
];
|
283 |
+
|
284 |
+
$options[] = [
|
285 |
+
'type' => 'integer',
|
286 |
+
'way' => 'text',
|
287 |
+
'name' => 'text-crop',
|
288 |
+
'units' => __( 'chars', 'apt' ),
|
289 |
+
'default' => 50,
|
290 |
+
'title' => __( 'Text length', 'apt' ),
|
291 |
+
'hint' => __( 'Set the maximum text length', 'apt' )
|
292 |
+
];
|
293 |
+
|
294 |
+
$options[] = [
|
295 |
+
'type' => 'integer',
|
296 |
+
'way' => 'text',
|
297 |
+
'name' => 'text-line-spacing',
|
298 |
+
'range' => array(0,3),
|
299 |
+
'default' => 1.5,
|
300 |
+
'title' => __( 'Line spacing', 'apt' ),
|
301 |
+
'hint' => __( 'Set the line spacing', 'apt' )
|
302 |
+
];
|
303 |
+
|
304 |
+
//----------------------------------------------------------------------
|
305 |
+
$options[] = [
|
306 |
+
'type' => 'html',
|
307 |
+
'html' => '<h3 style="margin-left:0">'.__( 'Alignment', 'apt' ).'</h3>'
|
308 |
+
];
|
309 |
+
|
310 |
+
$options[] = [
|
311 |
+
'type' => 'separator'
|
312 |
+
];
|
313 |
+
|
314 |
+
$options[] = [
|
315 |
+
'type' => 'dropdown',
|
316 |
+
'way' => 'buttons',
|
317 |
+
'name' => 'text-align-horizontal',
|
318 |
+
'data' => [
|
319 |
+
[ 'left', __( 'Left', 'apt' ) ],
|
320 |
+
[ 'center', __( 'Center', 'apt' ) ],
|
321 |
+
[ 'right', __( 'Right', 'apt' ) ],
|
322 |
+
],
|
323 |
+
'default' => 'center',
|
324 |
+
'title' => __( 'Horizontal text alignment', 'apt' ).$pro,
|
325 |
+
'hint' => __( 'Select how to horizontally align the text on the image', 'apt' ),
|
326 |
+
'cssClass' => ( ! $is_premium ) ? [ 'wapt-icon-pro' ] : [],
|
327 |
+
];
|
328 |
+
|
329 |
+
$options[] = [
|
330 |
+
'type' => 'dropdown',
|
331 |
+
'way' => 'buttons',
|
332 |
+
'name' => 'text-align-vertical',
|
333 |
+
'data' => [
|
334 |
+
[ 'top', __( 'Top', 'apt' ) ],
|
335 |
+
[ 'center', __( 'Center', 'apt' ) ],
|
336 |
+
[ 'bottom', __( 'Bottom', 'apt' ) ],
|
337 |
+
],
|
338 |
+
'default' => 'center',
|
339 |
+
'title' => __( 'Vertical text alignment', 'apt' ).$pro,
|
340 |
+
'hint' => __( 'Select how to vertically align the text on the image', 'apt' ),
|
341 |
+
'cssClass' => ( ! $is_premium ) ? [ 'wapt-icon-pro' ] : [],
|
342 |
+
];
|
343 |
+
|
344 |
+
//----------------------------------------------------------------------
|
345 |
+
$options[] = [
|
346 |
+
'type' => 'html',
|
347 |
+
'html' => '<h3 style="margin-left:0">'.__( 'Padding', 'apt' ).'</h3>'
|
348 |
+
];
|
349 |
+
|
350 |
+
$options[] = [
|
351 |
+
'type' => 'separator'
|
352 |
+
];
|
353 |
+
|
354 |
+
$options[] = [
|
355 |
+
'type' => 'integer',
|
356 |
+
'way' => 'text',
|
357 |
+
'name' => 'text-padding-tb',
|
358 |
+
'units' => __( 'px', 'apt' ),
|
359 |
+
'default' => 15,
|
360 |
+
'title' => __( 'Top/bottom text padding', 'apt' ).$pro,
|
361 |
+
'hint' => __( 'Padding at the top and bottom of the text', 'apt' ),
|
362 |
+
'cssClass' => ( !$is_premium) ? [ 'wapt-icon-pro' ] : [],
|
363 |
+
];
|
364 |
+
|
365 |
+
$options[] = [
|
366 |
+
'type' => 'integer',
|
367 |
+
'way' => 'text',
|
368 |
+
'name' => 'text-padding-lr',
|
369 |
+
'units' => __( 'px', 'apt' ),
|
370 |
+
'default' => 15,
|
371 |
+
'title' => __( 'Left/right text padding', 'apt' ).$pro,
|
372 |
+
'hint' => __( 'Padding at the left and right of the text', 'apt' ),
|
373 |
+
'cssClass' => ( !$is_premium) ? [ 'wapt-icon-pro' ] : [],
|
374 |
+
];
|
375 |
+
|
376 |
+
//----------------------------------------------------------------------
|
377 |
+
$options[] = [
|
378 |
+
'type' => 'html',
|
379 |
+
'html' => '<h3 style="margin-left:0">'.__( 'Addition of text', 'apt' ).'</h3>'
|
380 |
+
];
|
381 |
+
|
382 |
+
$options[] = [
|
383 |
+
'type' => 'separator'
|
384 |
+
];
|
385 |
+
|
386 |
+
$options[] = [
|
387 |
+
'type' => 'textbox',
|
388 |
+
'name' => 'before-text',
|
389 |
+
'default' => '',
|
390 |
+
'title' => __( 'String before text', 'apt' ).$pro,
|
391 |
+
'hint' => __( 'Additional string before text. For a line break, use <b>[br]</b>', 'apt' ),
|
392 |
+
'cssClass' => ( !$is_premium) ? [ 'wapt-icon-pro' ] : [],
|
393 |
+
'htmlAttrs' => ( !$is_premium ) ? [ 'disabled' => 'disabled' ] : [],
|
394 |
+
];
|
395 |
+
|
396 |
+
$options[] = [
|
397 |
+
'type' => 'textbox',
|
398 |
+
'name' => 'after-text',
|
399 |
+
'default' => '',
|
400 |
+
'title' => __( 'String after text', 'apt' ).$pro,
|
401 |
+
'hint' => __( 'Additional string after text. For a line break, use <b>[br]</b>', 'apt' ),
|
402 |
+
'cssClass' => ( !$is_premium) ? [ 'wapt-icon-pro' ] : [],
|
403 |
+
'htmlAttrs' => ( !$is_premium ) ? [ 'disabled' => 'disabled' ] : [],
|
404 |
+
];
|
405 |
+
|
406 |
+
return $options;
|
407 |
+
}
|
408 |
+
|
409 |
+
/**
|
410 |
+
* Returns options for the Basic Settings screen.
|
411 |
+
*
|
412 |
+
* @since 3.6.2
|
413 |
+
* @return array
|
414 |
+
*/
|
415 |
+
public function getOptions_api() {
|
416 |
+
|
417 |
+
$options = [];
|
418 |
+
|
419 |
+
$options[] = [
|
420 |
+
'type' => 'html',
|
421 |
+
'html' => '<h3 style="margin-left:0">API Settings</h3>'
|
422 |
+
];
|
423 |
+
|
424 |
/* GOOGLE */
|
425 |
$options[] = [
|
426 |
'type' => 'html',
|
431 |
'type' => 'separator'
|
432 |
];
|
433 |
|
434 |
+
$options[] = [
|
435 |
+
'type' => 'hidden',
|
436 |
+
'name' => 'ajax_nonce',
|
437 |
+
'value' => wp_create_nonce( 'check-api-key' )
|
438 |
+
];
|
439 |
+
|
440 |
// Текстовое поле
|
441 |
$options[] = [
|
442 |
'type' => 'textbox',
|
464 |
}
|
465 |
|
466 |
public function indexAction() {
|
467 |
+
wp_enqueue_style( 'wapt-tabs-style', WAPT_PLUGIN_URL.'/admin/assets/css/tabs.css', array(), WAPT_PLUGIN_VERSION );
|
468 |
+
wp_enqueue_style( 'wapt-settings-style', WAPT_PLUGIN_URL.'/admin/assets/css/settings.css', array(), WAPT_PLUGIN_VERSION );
|
469 |
+
wp_enqueue_script( 'wapt-settings-script', WAPT_PLUGIN_URL . '/admin/assets/js/settings.js', [], WAPT_PLUGIN_VERSION, true );
|
470 |
// creating a form
|
471 |
global $form;
|
472 |
+
$form = new Wbcr_FactoryForms423_Form( [
|
473 |
'scope' => substr( $this->plugin->getPrefix(), 0, - 1 ),
|
474 |
'name' => 'setting'
|
475 |
], $this->plugin );
|
476 |
|
477 |
+
$form->setProvider( new Wbcr_FactoryForms423_OptionsValueProvider( $this->plugin ) );
|
478 |
|
479 |
+
$wapt_tab = WAPT_Plugin::app()->request->get( 'apt_tab', '' );
|
480 |
+
switch ($wapt_tab)
|
481 |
+
{
|
482 |
+
case 'general':
|
483 |
+
$form->add( $this->getOptions_general() );
|
484 |
+
break;
|
485 |
+
case 'img_generation':
|
486 |
+
$form->add( $this->getOptions_image() );
|
487 |
+
break;
|
488 |
+
case 'api':
|
489 |
+
$form->add( $this->getOptions_api() );
|
490 |
+
break;
|
491 |
+
default:
|
492 |
+
$form->add( $this->getOptions_general() );
|
493 |
+
break;
|
494 |
+
}
|
495 |
|
496 |
$wapt_saved = WAPT_Plugin::app()->request->post( $this->plugin->getPrefix() . 'saved', '' );
|
497 |
if ( ! empty( $wapt_saved ) ) {
|
admin/views/pro.php
CHANGED
@@ -6,7 +6,7 @@ if(!WAPT_Plugin::app()->premium->is_activate())
|
|
6 |
<a href="<?php echo WAPT_Plugin::app()->get_support()->get_pricing_url( true, 'license_page' ); ?>"
|
7 |
class="purchase-premium" target="_blank" rel="noopener">
|
8 |
<span class="btn btn-gold">
|
9 |
-
<?php printf( __( 'Upgrade to Premium
|
10 |
</span><br>
|
11 |
</a>
|
12 |
<?php
|
6 |
<a href="<?php echo WAPT_Plugin::app()->get_support()->get_pricing_url( true, 'license_page' ); ?>"
|
7 |
class="purchase-premium" target="_blank" rel="noopener">
|
8 |
<span class="btn btn-gold">
|
9 |
+
<?php printf( __( 'Upgrade to Premium', 'insert-php' ), WAPT_Plugin::app()->premium->get_price() ) ?>
|
10 |
</span><br>
|
11 |
</a>
|
12 |
<?php
|
admin/views/pro_column.php
CHANGED
@@ -4,7 +4,7 @@ echo __( "Thumbnails of posts available in the PRO version" );
|
|
4 |
<a href="<?php echo WAPT_Plugin::app()->get_support()->get_pricing_url( true, 'license_page' ); ?>"
|
5 |
class="purchase-premium" target="_blank" rel="noopener">
|
6 |
<span class="btn btn-gold">
|
7 |
-
<?php printf( __( 'Upgrade to Premium
|
8 |
</span>
|
9 |
</a>
|
10 |
|
4 |
<a href="<?php echo WAPT_Plugin::app()->get_support()->get_pricing_url( true, 'license_page' ); ?>"
|
5 |
class="purchase-premium" target="_blank" rel="noopener">
|
6 |
<span class="btn btn-gold">
|
7 |
+
<?php printf( __( 'Upgrade to Premium', 'insert-php' ), WAPT_Plugin::app()->premium->get_price() ) ?>
|
8 |
</span>
|
9 |
</a>
|
10 |
|
admin/views/sources/google.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php $ajaxloader = WAPT_PLUGIN_URL."/admin/assets/img/ajax-loader-line.gif";
|
2 |
-
$apt_google_nonce = wp_create_nonce( '
|
3 |
|
4 |
$apt_google_key = WAPT_Plugin::app()->getOption('google_apikey');
|
5 |
$apt_google_cse = WAPT_Plugin::app()->getOption('google_cse');
|
@@ -11,30 +11,50 @@ if($apt_google_key && $apt_google_cse)
|
|
11 |
{
|
12 |
?>
|
13 |
<script type="text/javascript">
|
14 |
-
|
15 |
-
var API_KEY = '<?php echo $apt_google_key;?>';
|
16 |
-
var CSE = '<?php echo $apt_google_cse;?>';
|
17 |
function call_api(query, page = 1) {
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
}
|
34 |
|
35 |
function show_images(data, page) {
|
36 |
var s = '';
|
37 |
-
var totalhits =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
jQuery.each(data.items, function (k, v) {
|
39 |
descr = v.title;
|
40 |
if(!descr) descr = "google_image";
|
@@ -57,13 +77,6 @@ if($apt_google_key && $apt_google_cse)
|
|
57 |
jQuery('#google_results').html(jQuery('#google_results').html() + s);
|
58 |
jQuery('.flex-images').flexImages({rowHeight: 160});
|
59 |
jQuery('#loader_flex').hide();
|
60 |
-
|
61 |
-
if (page > 1) jQuery('#prev_page').show();
|
62 |
-
else jQuery('#prev_page').hide();
|
63 |
-
if (page < parseInt(totalhits, 10) / 20) jQuery('#next_page').show();
|
64 |
-
|
65 |
-
jQuery('#page_num_div').html(page);
|
66 |
-
jQuery('#page_num_div').show();
|
67 |
}
|
68 |
|
69 |
function do_submit() {
|
1 |
<?php $ajaxloader = WAPT_PLUGIN_URL."/admin/assets/img/ajax-loader-line.gif";
|
2 |
+
$apt_google_nonce = wp_create_nonce( 'apt_api' );
|
3 |
|
4 |
$apt_google_key = WAPT_Plugin::app()->getOption('google_apikey');
|
5 |
$apt_google_cse = WAPT_Plugin::app()->getOption('google_cse');
|
11 |
{
|
12 |
?>
|
13 |
<script type="text/javascript">
|
14 |
+
|
|
|
|
|
15 |
function call_api(query, page = 1) {
|
16 |
+
jQuery.post(ajaxurl,
|
17 |
+
{
|
18 |
+
action: 'apt_api_google',
|
19 |
+
query: query,
|
20 |
+
page: page,
|
21 |
+
nonce: '<?php echo $apt_google_nonce; ?>'
|
22 |
+
},
|
23 |
+
function (data) {
|
24 |
+
try {
|
25 |
+
data = JSON.parse(data);
|
26 |
+
} catch (e) {
|
27 |
+
jQuery('#loader_flex').hide();
|
28 |
+
jQuery('#page_num_div').hide();
|
29 |
+
jQuery('#prev_page').hide();
|
30 |
+
jQuery('#next_page').hide();
|
31 |
+
jQuery('#google_results').html(data);
|
32 |
+
return false;
|
33 |
+
}
|
34 |
+
|
35 |
+
if (!parseInt(data.searchInformation.totalResults) > 0) {
|
36 |
+
jQuery('#loader_flex').hide();
|
37 |
+
jQuery('#page_num_div').hide();
|
38 |
+
jQuery('#prev_page').hide();
|
39 |
+
jQuery('#next_page').hide();
|
40 |
+
jQuery('#google_results').html('<?php echo __( 'No hits', 'apt' ); ?>');
|
41 |
+
return false;
|
42 |
+
}
|
43 |
+
show_images(data, page);
|
44 |
+
});
|
45 |
}
|
46 |
|
47 |
function show_images(data, page) {
|
48 |
var s = '';
|
49 |
+
var totalhits = 100; //google limit
|
50 |
+
if (page > 1) jQuery('#prev_page').show();
|
51 |
+
else jQuery('#prev_page').hide();
|
52 |
+
if (page < parseInt(totalhits, 10) / 10) jQuery('#next_page').show();
|
53 |
+
else jQuery('#next_page').hide();
|
54 |
+
|
55 |
+
jQuery('#page_num_div').html(page);
|
56 |
+
jQuery('#page_num_div').show();
|
57 |
+
|
58 |
jQuery.each(data.items, function (k, v) {
|
59 |
descr = v.title;
|
60 |
if(!descr) descr = "google_image";
|
77 |
jQuery('#google_results').html(jQuery('#google_results').html() + s);
|
78 |
jQuery('.flex-images').flexImages({rowHeight: 160});
|
79 |
jQuery('#loader_flex').hide();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
}
|
81 |
|
82 |
function do_submit() {
|
admin/views/tab-about.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
}
|
8 |
|
9 |
.apt-section {
|
10 |
-
padding: 29px 29px
|
11 |
}
|
12 |
|
13 |
.apt-section .container {
|
@@ -79,6 +79,58 @@
|
|
79 |
#wpfooter {
|
80 |
position: relative !important;
|
81 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
|
83 |
@media screen and (max-width: 1500px) {
|
84 |
.apt-section .container {
|
@@ -101,38 +153,150 @@
|
|
101 |
}
|
102 |
}
|
103 |
</style>
|
104 |
-
<div class="apt-section
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
<
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
</div>
|
136 |
</div>
|
137 |
-
</
|
138 |
-
</div>
|
7 |
}
|
8 |
|
9 |
.apt-section {
|
10 |
+
padding: 29px 29px 0px 29px;
|
11 |
}
|
12 |
|
13 |
.apt-section .container {
|
79 |
#wpfooter {
|
80 |
position: relative !important;
|
81 |
}
|
82 |
+
.heading-title
|
83 |
+
{
|
84 |
+
text-align: center;
|
85 |
+
}
|
86 |
+
.heading-container
|
87 |
+
{
|
88 |
+
text-align: center;
|
89 |
+
margin-top: 20px;
|
90 |
+
}
|
91 |
+
.heading-container > p > a
|
92 |
+
{
|
93 |
+
font-size: 2em;
|
94 |
+
}
|
95 |
+
h1.heading-title
|
96 |
+
{
|
97 |
+
font-size: 1.8em;
|
98 |
+
line-height: 1.2em;
|
99 |
+
|
100 |
+
}
|
101 |
+
h2.image-box-title
|
102 |
+
{
|
103 |
+
font-size: 2em;
|
104 |
+
line-height: 1.2em;
|
105 |
+
margin: 0;
|
106 |
+
}
|
107 |
+
p.image-box-description
|
108 |
+
{
|
109 |
+
font-size: 1.15em;
|
110 |
+
line-height: 1.2em;
|
111 |
+
margin: 5px;
|
112 |
+
margin-bottom: 20px;
|
113 |
+
font-weight: bold;
|
114 |
+
}
|
115 |
+
div.text-editor > p
|
116 |
+
{
|
117 |
+
font-size: 1.2em;
|
118 |
+
line-height: 1.5em;
|
119 |
+
margin: 10px;
|
120 |
+
}
|
121 |
+
div.image > img{
|
122 |
+
box-sizing: border-box;
|
123 |
+
/*border: 1px solid black;*/
|
124 |
+
box-shadow: 0px 0px 24px rgba(107, 107, 107, 0.5);
|
125 |
+
text-align: center;
|
126 |
+
display:block;
|
127 |
+
margin:auto;
|
128 |
+
margin-bottom: 30px;
|
129 |
+
}
|
130 |
+
hr
|
131 |
+
{
|
132 |
+
border: 1px solid black;
|
133 |
+
}
|
134 |
|
135 |
@media screen and (max-width: 1500px) {
|
136 |
.apt-section .container {
|
153 |
}
|
154 |
}
|
155 |
</style>
|
156 |
+
<div class="apt-section">
|
157 |
+
<div class="row">
|
158 |
+
<div class="widget-container">
|
159 |
+
<h1 class="heading-title size-default">
|
160 |
+
We suppose you’ve noticed the changes which happened with Auto Post Thumbnail.
|
161 |
+
<br>Reading this tutorial you can get more information about new features.</h1>
|
162 |
+
</div>
|
163 |
+
|
164 |
+
<div class="widget-container">
|
165 |
+
<div class="divider">
|
166 |
+
<hr>
|
167 |
+
</div>
|
168 |
+
</div>
|
169 |
+
|
170 |
+
<div class="heading-container">
|
171 |
+
<img width="70" height="70" src="https://cm-wp.com/wp-content/uploads/2019/09/icon-6-150x150.png" class="attachment-thumbnail size-thumbnail" alt="">
|
172 |
+
<h2 class="image-box-title">New image generation tools</h2>
|
173 |
+
<p class="image-box-description">You can generate featured images by single click as you did in the past. But comparing with last release here appeared some new additional tools, so you can:</p>
|
174 |
+
</div>
|
175 |
+
<div class="widget-container">
|
176 |
+
<div class="text-editor clearfix">
|
177 |
+
<p>Bulk generate or delete featured images.</p>
|
178 |
+
</div>
|
179 |
+
</div>
|
180 |
+
<div class="widget-container">
|
181 |
+
<div class="image">
|
182 |
+
<img width="1024" src="https://cm-wp.com/wp-content/uploads/2019/10/2019-10-03_16-42-43.png" class="attachment-full size-full" alt="" >
|
183 |
+
</div>
|
184 |
+
</div>
|
185 |
+
<div class="widget-container">
|
186 |
+
<div class="text-editor clearfix"><p>Selective generation and deletion of featured images using filters <a href="https://cm-wp.com/apt/pricing/?utm_source=wordpress.org&utm_content=license_page">(PRO)</a>.</p></div>
|
187 |
+
</div>
|
188 |
+
<div class="widget-container">
|
189 |
+
<div class="image">
|
190 |
+
<img width="1024" height="320" src="https://cm-wp.com/wp-content/uploads/2019/10/Sequence-01.gif" class="attachment-large size-large" alt="" >
|
191 |
+
</div>
|
192 |
+
</div>
|
193 |
+
<div class="widget-container">
|
194 |
+
<div class="text-editor clearfix"><p>Disable automatic post thumbnail generation.</p></div>
|
195 |
+
</div>
|
196 |
+
<div class="widget-container">
|
197 |
+
<div class="image">
|
198 |
+
<img width="500" src="https://cm-wp.com/wp-content/uploads/2019/09/2.png" class="attachment-large size-large" alt="" >
|
199 |
+
</div>
|
200 |
+
</div>
|
201 |
+
<div class="widget-container">
|
202 |
+
<div class="text-editor clearfix"><p>If you do not want the plug-in settings to be saved, after uninstalling, click “delete settings”</p></div>
|
203 |
+
</div>
|
204 |
+
<div class="widget-container">
|
205 |
+
<div class="image">
|
206 |
+
<img width="500" height="145" src="https://cm-wp.com/wp-content/uploads/2019/09/3.png" class="attachment-large size-large" alt="" >
|
207 |
+
</div>
|
208 |
+
</div>
|
209 |
+
|
210 |
+
<div class="widget-container">
|
211 |
+
<div class="divider">
|
212 |
+
<hr>
|
213 |
+
</div>
|
214 |
+
</div>
|
215 |
+
|
216 |
+
<div class="heading-container">
|
217 |
+
<div class="image-box-wrapper"><img width="70" height="70" src="https://cm-wp.com/wp-content/uploads/2019/09/icon-2-150x150.png" class="attachment-thumbnail size-thumbnail" alt=""><div class="image-box-content"><h2 class="image-box-title">Bulk featured Images generation or unset in post list</h2><p class="image-box-description">Use bulk actions when you set featured images. For example Generate or Unset all of them.</p></div></div> </div>
|
218 |
+
<div class="widget-container">
|
219 |
+
<div class="text-editor clearfix"><p>Also we changed the Posts list interface in dashboard and added a Column for displaying featured images. If any post stays without any featured image you’ll see this from the posts list. Opening post is unnecessary, that’s why It makes the process easier.</p></div>
|
220 |
+
</div>
|
221 |
+
<div class="widget-container">
|
222 |
+
<div class="image">
|
223 |
+
<img width="1024" src="https://cm-wp.com/wp-content/uploads/2019/10/03.gif" class="attachment-full size-full" alt=""> </div>
|
224 |
+
</div>
|
225 |
+
|
226 |
+
<div class="widget-container">
|
227 |
+
<div class="divider">
|
228 |
+
<hr>
|
229 |
+
</div>
|
230 |
+
</div>
|
231 |
+
|
232 |
+
<div class="heading-container">
|
233 |
+
<div class="image-box-wrapper"><img width="70" height="70" src="https://cm-wp.com/wp-content/uploads/2019/09/icon-3-150x150.png" class="attachment-thumbnail size-thumbnail" alt=""><div class="image-box-content"><h2 class="image-box-title">Featured Images selective generation </h2><p class="image-box-description">Execute custom generation or unset featured images applying this tool for single or some posts.</p></div></div> </div>
|
234 |
+
<div class="widget-container">
|
235 |
+
<div class="image">
|
236 |
+
<img width="500" src="https://cm-wp.com/wp-content/uploads/2019/09/7.png" class="attachment-large size-large" alt="" >
|
237 |
+
</div>
|
238 |
+
</div>
|
239 |
+
|
240 |
+
<div class="widget-container">
|
241 |
+
<div class="divider">
|
242 |
+
<hr>
|
243 |
+
</div>
|
244 |
+
</div>
|
245 |
+
|
246 |
+
<div class="heading-container">
|
247 |
+
<div class="image-box-wrapper"><a href="http://cm-wp.com/apt/pricing/"><img width="70" height="70" src="https://cm-wp.com/wp-content/uploads/2019/09/icon-4-150x150.png" class="attachment-thumbnail size-thumbnail" alt=""></a><div class="image-box-content"><h2 class="image-box-title">Manual Featured Images Selection</h2><p class="image-box-description">Select featured images from the post images when you are in dashboard’s Posts list. This feature is available for users who have PRO account.</p></div></div> </div>
|
248 |
+
<div class="widget-container">
|
249 |
+
<div class="image">
|
250 |
+
<img width="1024" src="https://cm-wp.com/wp-content/uploads/2019/10/04.gif" class="attachment-full size-full" alt=""> </div>
|
251 |
+
</div>
|
252 |
+
<div class="widget-container">
|
253 |
+
<div class="text-editor clearfix"><p>You can add featured images even if the picture is not uploaded to the medialibrary but inserted into the post using an external link or shortcode.</p></div>
|
254 |
+
</div>
|
255 |
+
|
256 |
+
<div class="widget-container">
|
257 |
+
<div class="divider">
|
258 |
+
<hr>
|
259 |
+
</div>
|
260 |
+
</div>
|
261 |
+
|
262 |
+
<div class="heading-container">
|
263 |
+
<div class="image-box-wrapper"><img width="70" height="70" src="https://cm-wp.com/wp-content/uploads/2019/09/icon1-150x150.png" class="attachment-thumbnail size-thumbnail" alt=""><div class="image-box-content"><h2 class="image-box-title">Image search in Google, Unsplash, Pixabay</h2><p class="image-box-description">Search for images with Creative Commons license.</p></div></div> </div>
|
264 |
+
<div class="widget-container">
|
265 |
+
<div class="text-editor clearfix"><p><span style="font-weight: 400;">It appeared new tab in the Media Library => </span><i><span style="font-weight: 400;">Add from APT. </span></i><span style="font-weight: 400;">There you can find images using popular free stock sites: Google, Pixabay <a href="https://cm-wp.com/apt/pricing/?utm_source=wordpress.org&utm_content=license_page">(pro)</a>, Unsplash <a href="https://cm-wp.com/apt/pricing/?utm_source=wordpress.org&utm_content=license_page">(pro)</a>. Just enter a search query, choose the image and insert it into the Media library by single click.</span></p></div>
|
266 |
+
</div>
|
267 |
+
<div class="widget-container">
|
268 |
+
<div class="image">
|
269 |
+
<img width="1024" src="https://cm-wp.com/wp-content/uploads/2019/10/05.gif" class="attachment-large size-large" alt="" >
|
270 |
+
</div>
|
271 |
+
</div>
|
272 |
+
|
273 |
+
<div class="widget-container">
|
274 |
+
<div class="divider">
|
275 |
+
<hr>
|
276 |
+
</div>
|
277 |
+
</div>
|
278 |
+
|
279 |
+
<div class="heading-container">
|
280 |
+
<div class="image-box-wrapper"><img width="70" height="70" src="https://cm-wp.com/wp-content/uploads/2019/09/icon-5-150x150.png" class="attachment-thumbnail size-thumbnail" alt=""><div class="image-box-content"><h2 class="image-box-title">Compatibility with Elementor and Gutenberg</h2><p class="image-box-description">Auto Post Thumbnail is compatible with Classic Editor, Gutenberg and Elementor plugins.</p></div></div> </div>
|
281 |
+
<div class="widget-container">
|
282 |
+
<div class="image">
|
283 |
+
<img width="1024" src="https://cm-wp.com/wp-content/uploads/2019/10/007.gif" class="attachment-large size-large" alt="">
|
284 |
+
</div>
|
285 |
+
</div>
|
286 |
+
|
287 |
+
<div class="widget-container">
|
288 |
+
<div class="divider">
|
289 |
+
<hr>
|
290 |
+
</div>
|
291 |
+
</div>
|
292 |
+
|
293 |
+
<div class="heading-container">
|
294 |
+
<p>
|
295 |
+
<a href="https://cm-wp.com/apt/apt-f-a-q/?utm_medium=right_banner&utm_campaign=apt&utm_content=link" target="_blank" rel="noopener">F.A.Q.</a>
|
296 |
+
</p>
|
297 |
+
<p>
|
298 |
+
<a href="https://forum.webcraftic.com/" target="_blank" rel="noopener">Get starting free support</a>
|
299 |
+
</p>
|
300 |
</div>
|
301 |
</div>
|
302 |
+
</div>
|
|
admin/views/tab-license.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<div class="wrap">
|
2 |
-
<div class="factory-bootstrap-
|
3 |
<?php wp_nonce_field( 'license' ); ?>
|
4 |
<div id="wapt-license-wrapper"
|
5 |
data-loader="<?php echo WAPT_PLUGIN_URL . '/admin/assets/img/loader.gif'; ?>"
|
@@ -8,7 +8,7 @@
|
|
8 |
<div class="factory-bootstrap-413 onp-page-wrap <?php echo $this->get_license_type() ?>-license-manager-content"
|
9 |
id="license-manager">
|
10 |
<div>
|
11 |
-
<h3><?php printf( __( 'Activate %s', '
|
12 |
<?php echo $this->get_plan_description() ?>
|
13 |
</div>
|
14 |
<br>
|
@@ -19,20 +19,20 @@
|
|
19 |
<a href="<?php echo $this->plugin->get_support()->get_pricing_url( true, 'license_page' ); ?>"
|
20 |
class="purchase-premium" target="_blank" rel="noopener">
|
21 |
<span class="btn btn-gold btn-inner-wrap">
|
22 |
-
<?php printf( __( 'Upgrade to Premium
|
23 |
</span>
|
24 |
</a>
|
25 |
-
<p><?php printf( __( 'Your current license for %1$s:', '
|
26 |
<?php endif; ?>
|
27 |
<div class="license-details-block <?php echo $this->get_license_type() ?>-details-block">
|
28 |
<?php if ( $this->is_premium ): ?>
|
29 |
<a data-action="deactivate" href="#"
|
30 |
class="btn btn-default btn-small license-delete-button wapt-control-btn">
|
31 |
-
<?php _e( 'Delete Key', '
|
32 |
</a>
|
33 |
<a data-action="sync" href="#"
|
34 |
class="btn btn-default btn-small license-synchronization-button wapt-control-btn">
|
35 |
-
<?php _e( 'Synchronization', '
|
36 |
</a>
|
37 |
<?php endif; ?>
|
38 |
<h3>
|
@@ -51,17 +51,17 @@
|
|
51 |
</div>
|
52 |
<?php endif; ?>
|
53 |
<div class="license-key-description">
|
54 |
-
<p><?php _e( 'Public License is a GPLv2 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.', '
|
55 |
</p>
|
56 |
<?php if ( $this->is_premium && $this->premium_has_subscription ): ?>
|
57 |
<p class="activate-trial-hint">
|
58 |
-
<?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="wapt-control-btn" href="#">cancel subscription</a>', '
|
59 |
</p>
|
60 |
<?php endif; ?>
|
61 |
|
62 |
<?php if ( $this->get_license_type() == 'trial' ): ?>
|
63 |
<p class="activate-error-hint">
|
64 |
-
<?php printf( __( 'Your license has expired, please extend the license to get updates and support.', '
|
65 |
</p>
|
66 |
<?php endif; ?>
|
67 |
</div>
|
@@ -69,30 +69,30 @@
|
|
69 |
<tr>
|
70 |
<!--<td class="license-param license-param-domain">
|
71 |
<span class="license-value"><?php echo esc_attr( $_SERVER['SERVER_NAME'] ); ?></span>
|
72 |
-
<span class="license-value-name"><?php _e( 'domain', '
|
73 |
</td>-->
|
74 |
<td class="license-param license-param-days">
|
75 |
<span class="license-value"><?php echo $this->get_plan() ?></span>
|
76 |
-
<span class="license-value-name"><?php _e( 'plan', '
|
77 |
</td>
|
78 |
<?php if ( $this->is_premium ) : ?>
|
79 |
<td class="license-param license-param-sites">
|
80 |
<span class="license-value">
|
81 |
<?php echo esc_attr( $this->premium_license->get_count_active_sites() ); ?>
|
82 |
-
<?php _e( 'of', '
|
83 |
<?php echo esc_attr( $this->premium_license->get_sites_quota() ); ?></span>
|
84 |
-
<span class="license-value-name"><?php _e( 'active sites', '
|
85 |
</td>
|
86 |
<?php endif; ?>
|
87 |
<td class="license-param license-param-version">
|
88 |
<span class="license-value"><?php echo $this->plugin->getPluginVersion() ?></span>
|
89 |
-
<span class="license-value-name"><span><?php _e( 'version', '
|
90 |
</td>
|
91 |
<?php if ( $this->is_premium ): ?>
|
92 |
<td class="license-param license-param-days">
|
93 |
<?php if ( $this->get_license_type() == 'trial' ): ?>
|
94 |
-
<span class="license-value"><?php _e( 'EXPIRED!', '
|
95 |
-
<span class="license-value-name"><?php _e( 'please update the key', '
|
96 |
<?php else: ?>
|
97 |
<span class="license-value">
|
98 |
<?php
|
@@ -102,9 +102,9 @@
|
|
102 |
echo $this->get_expiration_days();
|
103 |
}
|
104 |
?>
|
105 |
-
<small> <?php _e( 'day(s)', '
|
106 |
</span>
|
107 |
-
<span class="license-value-name"><?php _e( 'remained', '
|
108 |
<?php endif; ?>
|
109 |
</td>
|
110 |
<?php endif; ?>
|
@@ -115,15 +115,15 @@
|
|
115 |
<div class="license-input">
|
116 |
<form action="" method="post">
|
117 |
<?php if ( $this->is_premium ): ?>
|
118 |
-
<p><?php _e( 'Have a key to activate the premium version? Paste it here:', '
|
119 |
<?php else: ?>
|
120 |
-
<p><?php _e( 'Have a key to activate the plugin? Paste it here:', '
|
121 |
<p>
|
122 |
<?php endif; ?>
|
123 |
<button data-action="activate" class="btn btn-default wapt-control-btn"
|
124 |
type="button"
|
125 |
id="license-submit">
|
126 |
-
<?php _e( 'Submit Key', '
|
127 |
</button>
|
128 |
<div class="license-key-wrap">
|
129 |
<input type="text" id="license-key" name="licensekey" value=""
|
@@ -131,11 +131,11 @@
|
|
131 |
</div>
|
132 |
<?php if ( $this->is_premium ): ?>
|
133 |
<p style="margin-top: 10px;">
|
134 |
-
<?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!', '
|
135 |
</p>
|
136 |
<?php else: ?>
|
137 |
<p style="margin-top: 10px;">
|
138 |
-
<?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.', '
|
139 |
</p>
|
140 |
<?php endif; ?>
|
141 |
</form>
|
1 |
<div class="wrap">
|
2 |
+
<div class="factory-bootstrap-426 factory-fontawesome-000">
|
3 |
<?php wp_nonce_field( 'license' ); ?>
|
4 |
<div id="wapt-license-wrapper"
|
5 |
data-loader="<?php echo WAPT_PLUGIN_URL . '/admin/assets/img/loader.gif'; ?>"
|
8 |
<div class="factory-bootstrap-413 onp-page-wrap <?php echo $this->get_license_type() ?>-license-manager-content"
|
9 |
id="license-manager">
|
10 |
<div>
|
11 |
+
<h3><?php printf( __( 'Activate %s', 'apt' ), $this->plan_name ) ?></h3>
|
12 |
<?php echo $this->get_plan_description() ?>
|
13 |
</div>
|
14 |
<br>
|
19 |
<a href="<?php echo $this->plugin->get_support()->get_pricing_url( true, 'license_page' ); ?>"
|
20 |
class="purchase-premium" target="_blank" rel="noopener">
|
21 |
<span class="btn btn-gold btn-inner-wrap">
|
22 |
+
<?php printf( __( 'Upgrade to Premium', 'apt' ), $this->premium->get_price() ) ?>
|
23 |
</span>
|
24 |
</a>
|
25 |
+
<p><?php printf( __( 'Your current license for %1$s:', 'apt' ), $this->plugin->getPluginTitle() ) ?></p>
|
26 |
<?php endif; ?>
|
27 |
<div class="license-details-block <?php echo $this->get_license_type() ?>-details-block">
|
28 |
<?php if ( $this->is_premium ): ?>
|
29 |
<a data-action="deactivate" href="#"
|
30 |
class="btn btn-default btn-small license-delete-button wapt-control-btn">
|
31 |
+
<?php _e( 'Delete Key', 'apt' ) ?>
|
32 |
</a>
|
33 |
<a data-action="sync" href="#"
|
34 |
class="btn btn-default btn-small license-synchronization-button wapt-control-btn">
|
35 |
+
<?php _e( 'Synchronization', 'apt' ) ?>
|
36 |
</a>
|
37 |
<?php endif; ?>
|
38 |
<h3>
|
51 |
</div>
|
52 |
<?php endif; ?>
|
53 |
<div class="license-key-description">
|
54 |
+
<p><?php _e( 'Public License is a GPLv2 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.', 'apt' ) ?>
|
55 |
</p>
|
56 |
<?php if ( $this->is_premium && $this->premium_has_subscription ): ?>
|
57 |
<p class="activate-trial-hint">
|
58 |
+
<?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="wapt-control-btn" href="#">cancel subscription</a>', 'apt' ) ?>
|
59 |
</p>
|
60 |
<?php endif; ?>
|
61 |
|
62 |
<?php if ( $this->get_license_type() == 'trial' ): ?>
|
63 |
<p class="activate-error-hint">
|
64 |
+
<?php printf( __( 'Your license has expired, please extend the license to get updates and support.', 'apt' ), '' ) ?>
|
65 |
</p>
|
66 |
<?php endif; ?>
|
67 |
</div>
|
69 |
<tr>
|
70 |
<!--<td class="license-param license-param-domain">
|
71 |
<span class="license-value"><?php echo esc_attr( $_SERVER['SERVER_NAME'] ); ?></span>
|
72 |
+
<span class="license-value-name"><?php _e( 'domain', 'apt' ) ?></span>
|
73 |
</td>-->
|
74 |
<td class="license-param license-param-days">
|
75 |
<span class="license-value"><?php echo $this->get_plan() ?></span>
|
76 |
+
<span class="license-value-name"><?php _e( 'plan', 'apt' ) ?></span>
|
77 |
</td>
|
78 |
<?php if ( $this->is_premium ) : ?>
|
79 |
<td class="license-param license-param-sites">
|
80 |
<span class="license-value">
|
81 |
<?php echo esc_attr( $this->premium_license->get_count_active_sites() ); ?>
|
82 |
+
<?php _e( 'of', 'apt' ) ?>
|
83 |
<?php echo esc_attr( $this->premium_license->get_sites_quota() ); ?></span>
|
84 |
+
<span class="license-value-name"><?php _e( 'active sites', 'apt' ) ?></span>
|
85 |
</td>
|
86 |
<?php endif; ?>
|
87 |
<td class="license-param license-param-version">
|
88 |
<span class="license-value"><?php echo $this->plugin->getPluginVersion() ?></span>
|
89 |
+
<span class="license-value-name"><span><?php _e( 'version', 'apt' ) ?></span></span>
|
90 |
</td>
|
91 |
<?php if ( $this->is_premium ): ?>
|
92 |
<td class="license-param license-param-days">
|
93 |
<?php if ( $this->get_license_type() == 'trial' ): ?>
|
94 |
+
<span class="license-value"><?php _e( 'EXPIRED!', 'apt' ) ?></span>
|
95 |
+
<span class="license-value-name"><?php _e( 'please update the key', 'apt' ) ?></span>
|
96 |
<?php else: ?>
|
97 |
<span class="license-value">
|
98 |
<?php
|
102 |
echo $this->get_expiration_days();
|
103 |
}
|
104 |
?>
|
105 |
+
<small> <?php _e( 'day(s)', 'apt' ) ?></small>
|
106 |
</span>
|
107 |
+
<span class="license-value-name"><?php _e( 'remained', 'apt' ) ?></span>
|
108 |
<?php endif; ?>
|
109 |
</td>
|
110 |
<?php endif; ?>
|
115 |
<div class="license-input">
|
116 |
<form action="" method="post">
|
117 |
<?php if ( $this->is_premium ): ?>
|
118 |
+
<p><?php _e( 'Have a key to activate the premium version? Paste it here:', 'apt' ) ?><p>
|
119 |
<?php else: ?>
|
120 |
+
<p><?php _e( 'Have a key to activate the plugin? Paste it here:', 'apt' ) ?>
|
121 |
<p>
|
122 |
<?php endif; ?>
|
123 |
<button data-action="activate" class="btn btn-default wapt-control-btn"
|
124 |
type="button"
|
125 |
id="license-submit">
|
126 |
+
<?php _e( 'Submit Key', 'apt' ) ?>
|
127 |
</button>
|
128 |
<div class="license-key-wrap">
|
129 |
<input type="text" id="license-key" name="licensekey" value=""
|
131 |
</div>
|
132 |
<?php if ( $this->is_premium ): ?>
|
133 |
<p style="margin-top: 10px;">
|
134 |
+
<?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!', 'apt' ), $this->plugin->get_support()->get_pricing_url( true, 'license_page' ) ); ?>
|
135 |
</p>
|
136 |
<?php else: ?>
|
137 |
<p style="margin-top: 10px;">
|
138 |
+
<?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.', 'apt' ), 'https://users.freemius.com/password/recover' ) ?>
|
139 |
</p>
|
140 |
<?php endif; ?>
|
141 |
</form>
|
admin/views/tab-main.php
CHANGED
@@ -1,74 +1,177 @@
|
|
1 |
<div class="wrap">
|
2 |
-
<h2><?php esc_html_e( 'Generate Featured images for
|
3 |
-
<div class="factory-bootstrap-
|
4 |
<div class="row">
|
5 |
<div class="col-md-9">
|
6 |
-
|
7 |
-
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
<button class="button button-primary button-large hide-if-no-js" name="generate-post-thumbnails" id="generate-post-thumbnails">
|
10 |
-
|
|
|
|
|
|
|
11 |
</button>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
<div id="message" class="updated fade" style="display:none"></div>
|
13 |
</p>
|
|
|
14 |
<noscript><p>
|
15 |
<em><?php esc_html_e( 'You must enable Javascript in order to proceed!', 'apt' ) ?></em>
|
16 |
</p>
|
17 |
</noscript>
|
18 |
-
<div id="genpostthumbsbar" style="position:relative;height:25px;">
|
19 |
-
<div id="genpostthumbsbar-percent"
|
20 |
-
style="position:absolute;left:50%;top:50%;width:50px;margin-left:-25px;height:25px;margin-top:-9px;font-weight:bold;text-align:center;"></div>
|
21 |
-
</div>
|
22 |
<!-- esc_html_e( 'We are generating post thumbnails. Please be patient!', 'apt' ); -->
|
23 |
<script type="text/javascript">
|
24 |
// <![CDATA[
|
25 |
jQuery(document).ready(function($) {
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
});
|
73 |
// ]]>
|
74 |
</script>
|
1 |
<div class="wrap">
|
2 |
+
<h2><?php esc_html_e( 'Generate Featured images for posts', 'apt' ) ?></h2>
|
3 |
+
<div class="factory-bootstrap-426 factory-fontawesome-000">
|
4 |
<div class="row">
|
5 |
<div class="col-md-9">
|
6 |
+
|
7 |
+
<div class="row wrap apt-filter-row">
|
8 |
+
<?php
|
9 |
+
if(auto_post_thumbnails()->is_premium())
|
10 |
+
do_action( 'wapt/filter_form_print');
|
11 |
+
else {
|
12 |
+
echo '<div class="col-md-12">';
|
13 |
+
echo '<a target="_blank" href="'.WAPT_Plugin::app()->get_support()->get_pricing_url( true, 'license_page' ).'"><img src="'.WAPT_PLUGIN_URL.'/admin/assets/img/premium_filter.png"></a><br />';
|
14 |
+
printf( __( 'Advanced filter form available in <a href="%s">Premium version</a>', 'aptp' ), WAPT_Plugin::app()->get_support()->get_pricing_url( true, 'license_page' ) );
|
15 |
+
echo '</div>';
|
16 |
+
}
|
17 |
+
?>
|
18 |
+
<div class="col-md-12"> </div>
|
19 |
+
|
20 |
+
<div class="col-md-12">
|
21 |
<button class="button button-primary button-large hide-if-no-js" name="generate-post-thumbnails" id="generate-post-thumbnails">
|
22 |
+
<?php esc_attr_e( 'Generate Featured images', 'apt' ) ?>
|
23 |
+
</button>
|
24 |
+
<button class="button button-danger button-large hide-if-no-js" name="delete-post-thumbnails" id="delete-post-thumbnails">
|
25 |
+
<?php esc_attr_e( 'Delete Featured images', 'apt' ) ?>
|
26 |
</button>
|
27 |
+
</div>
|
28 |
+
|
29 |
+
<div class="col-md-12"> </div>
|
30 |
+
|
31 |
+
<div class="col-md-12">
|
32 |
+
<div id="genpostthumbsbar" style="position:relative;height:40px;display: none;">
|
33 |
+
<div id="genpostthumbsbar-percent"
|
34 |
+
style="position:absolute;left:50%;top:50%;margin-left:-25px;height:25px;margin-top:-9px;font-weight:bold;text-align:center;"></div>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
<div class="wrap genpostthumbs">
|
39 |
+
<p>
|
40 |
<div id="message" class="updated fade" style="display:none"></div>
|
41 |
</p>
|
42 |
+
<p><?php _e( 'Note: Thumbnails won\'t be generated for posts that already have post thumbnail or <strong><em>skip_post_thumb</em></strong> custom meta field.', 'apt' ) ?></p>
|
43 |
<noscript><p>
|
44 |
<em><?php esc_html_e( 'You must enable Javascript in order to proceed!', 'apt' ) ?></em>
|
45 |
</p>
|
46 |
</noscript>
|
|
|
|
|
|
|
|
|
47 |
<!-- esc_html_e( 'We are generating post thumbnails. Please be patient!', 'apt' ); -->
|
48 |
<script type="text/javascript">
|
49 |
// <![CDATA[
|
50 |
jQuery(document).ready(function($) {
|
51 |
+
jQuery('#generate-post-thumbnails').on('click', function(event) {
|
52 |
+
rt_images = [];
|
53 |
+
|
54 |
+
$("#generate-post-thumbnails").attr('disabled','');
|
55 |
+
$("#delete-post-thumbnails").attr('disabled','');
|
56 |
+
$("#message").hide();
|
57 |
+
$("#genpostthumbsbar").show();
|
58 |
+
$("#genpostthumbsbar").progressbar();
|
59 |
+
$("#genpostthumbsbar-percent").html("1%");
|
60 |
+
|
61 |
+
$.post("admin-ajax.php", {
|
62 |
+
action: "get-posts-ids",
|
63 |
+
withThumb: 0,
|
64 |
+
<?php
|
65 |
+
if(auto_post_thumbnails()->is_premium()) { ?>
|
66 |
+
poststatus: $("#filter_poststatus").val(),
|
67 |
+
posttype: $("#filter_posttype").val(),
|
68 |
+
date_start: $("#filter_startdate").val(),
|
69 |
+
date_end: $("#filter_enddate").val(),
|
70 |
+
category: $("#filter_postcategory").val(),
|
71 |
+
<?php } ?>
|
72 |
+
_ajax_nonce: '<?php echo wp_create_nonce( 'get-posts' ); ?>'
|
73 |
+
}, function(ids) {
|
74 |
+
rt_images = JSON.parse("[" + ids + "]");
|
75 |
+
|
76 |
+
var rt_total = rt_images.length;
|
77 |
+
var rt_count = 1;
|
78 |
+
var rt_percent = 0;
|
79 |
+
var posted_count = 0;
|
80 |
+
|
81 |
+
function genPostThumb(id) {
|
82 |
+
$.post("admin-ajax.php", {
|
83 |
+
action: "generatepostthumbnail",
|
84 |
+
id: id,
|
85 |
+
_ajax_nonce: '<?php echo wp_create_nonce( 'generate-post-thumbnails' ); ?>'
|
86 |
+
}, function(posted) {
|
87 |
+
if( Number(posted) !== 0 ) {
|
88 |
+
posted_count++;
|
89 |
+
}
|
90 |
+
rt_percent = (rt_count / rt_total) * 100;
|
91 |
+
$("#genpostthumbsbar").progressbar("value", rt_percent);
|
92 |
+
$("#genpostthumbsbar-percent").html(Math.round(rt_percent) + "% ("+ rt_count + "/" + rt_total +")");
|
93 |
+
rt_count = rt_count + 1;
|
94 |
+
|
95 |
+
if( rt_images.length ) {
|
96 |
+
genPostThumb(rt_images.shift());
|
97 |
+
} else {
|
98 |
+
setTimeout(function(){
|
99 |
+
$("#genpostthumbsbar").hide();
|
100 |
+
$("#genpostthumbsbar").progressbar("value", 0);
|
101 |
+
$("#generate-post-thumbnails").removeAttr('disabled');
|
102 |
+
$("#delete-post-thumbnails").removeAttr('disabled');
|
103 |
+
$("#message").html("<p><strong><?php echo esc_html__( 'All done! Processed posts:', 'apt' ); ?> " + rt_total + "<br><?php echo esc_html__( 'Set featured image in posts:', 'apt' ); ?> " + posted_count + "</strong></p>");
|
104 |
+
$("#message").show();
|
105 |
+
}, 500);
|
106 |
+
}
|
107 |
+
});
|
108 |
+
}
|
109 |
+
|
110 |
+
genPostThumb(rt_images.shift());
|
111 |
+
});
|
112 |
+
});
|
113 |
+
//delete thumbnails
|
114 |
+
jQuery('#delete-post-thumbnails').on('click', function(event) {
|
115 |
+
if(!confirm('Are sure to delete thumbnails from posts?'))
|
116 |
+
return;
|
117 |
+
|
118 |
+
rt_images = [];
|
119 |
+
|
120 |
+
$("#generate-post-thumbnails").hide();
|
121 |
+
$("#delete-post-thumbnails").hide();
|
122 |
+
$("#genpostthumbsbar").show();
|
123 |
+
$("#genpostthumbsbar").progressbar();
|
124 |
+
$("#genpostthumbsbar-percent").html("1%");
|
125 |
+
|
126 |
+
$.post("admin-ajax.php", {
|
127 |
+
action: "get-posts-ids",
|
128 |
+
withThumb: 1,
|
129 |
+
<?php
|
130 |
+
if(auto_post_thumbnails()->is_premium()) { ?>
|
131 |
+
poststatus: $("#filter_poststatus").val(),
|
132 |
+
posttype: $("#filter_posttype").val(),
|
133 |
+
date_start: $("#filter_startdate").val(),
|
134 |
+
date_end: $("#filter_enddate").val(),
|
135 |
+
category: $("#filter_postcategory").val(),
|
136 |
+
<?php } ?>
|
137 |
+
_ajax_nonce: '<?php echo wp_create_nonce( 'get-posts' ); ?>'
|
138 |
+
}, function(ids) {
|
139 |
+
rt_images = JSON.parse("[" + ids + "]");
|
140 |
+
|
141 |
+
var rt_total = rt_images.length;
|
142 |
+
var rt_count = 1;
|
143 |
+
var rt_percent = 0;
|
144 |
+
var posted_count = 0;
|
145 |
+
|
146 |
+
function delPostThumb(id) {
|
147 |
+
$.post("admin-ajax.php", {
|
148 |
+
action: "delete_post_thumbnails",
|
149 |
+
id: id,
|
150 |
+
_ajax_nonce: '<?php echo wp_create_nonce( 'delete-post-thumbnails' ); ?>'
|
151 |
+
}, function(posted) {
|
152 |
+
if( Boolean(posted) ) {
|
153 |
+
posted_count++;
|
154 |
+
}
|
155 |
+
rt_percent = (rt_count / rt_total) * 100;
|
156 |
+
$("#genpostthumbsbar").progressbar("value", rt_percent);
|
157 |
+
$("#genpostthumbsbar-percent").html(Math.round(rt_percent) + "%");
|
158 |
+
rt_count = rt_count + 1;
|
159 |
+
|
160 |
+
if( rt_images.length ) {
|
161 |
+
delPostThumb(rt_images.shift());
|
162 |
+
} else {
|
163 |
+
$("#genpostthumbsbar").hide();
|
164 |
+
$("#generate-post-thumbnails").removeAttr('disabled');
|
165 |
+
$("#delete-post-thumbnails").removeAttr('disabled');
|
166 |
+
$("#message").html("<p><strong><?php echo esc_html__( 'All done! Processed posts:', 'apt' ); ?> " + rt_total + "<br><?php echo esc_html__( 'Delete featured image in posts:', 'apt' ); ?> " + posted_count + "</strong></p>");
|
167 |
+
$("#message").show();
|
168 |
+
}
|
169 |
+
});
|
170 |
+
}
|
171 |
+
|
172 |
+
delPostThumb(rt_images.shift());
|
173 |
+
});
|
174 |
+
});
|
175 |
});
|
176 |
// ]]>
|
177 |
</script>
|
admin/views/tab-settings.php
CHANGED
@@ -1,47 +1,145 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
</div>
|
22 |
</div>
|
23 |
-
</form>
|
24 |
-
</div>
|
25 |
-
<div class="col-md-3">
|
26 |
-
<div id="wapt-dashboard-widget" class="wapt-right-widget">
|
27 |
-
<div style="padding:20px">
|
28 |
-
<?php WAPT_Plugin::app()->get_adverts_manager()->render_placement( 'right_sidebar'); ?>
|
29 |
-
</div>
|
30 |
</div>
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
</
|
41 |
-
|
|
|
|
|
|
|
|
|
42 |
</div>
|
43 |
-
|
44 |
</div>
|
45 |
</div>
|
46 |
</div>
|
|
|
47 |
</div>
|
1 |
+
<?php
|
2 |
+
global $form;
|
3 |
+
|
4 |
+
$current_url = admin_url( 'admin.php?page=wapt_settings-' . WAPT_Plugin::app()->getPluginName() );
|
5 |
+
$current_tab = 'general';
|
6 |
+
$TABS = array(
|
7 |
+
'general' => array(
|
8 |
+
'current' => false,
|
9 |
+
'caption' => 'General',
|
10 |
+
'icon' => 'icon-general',
|
11 |
+
'url' => $current_url."&apt_tab=general",
|
12 |
+
),
|
13 |
+
'img_generation' => array(
|
14 |
+
'current' => false,
|
15 |
+
'caption' => 'Image generation',
|
16 |
+
'icon' => 'icon-image',
|
17 |
+
'url' => $current_url."&apt_tab=img_generation",
|
18 |
+
),
|
19 |
+
'api' => array(
|
20 |
+
'current' => false,
|
21 |
+
'caption' => 'API',
|
22 |
+
'icon' => 'icon-api',
|
23 |
+
'url' => $current_url."&apt_tab=api",
|
24 |
+
),
|
25 |
+
);
|
26 |
+
if(isset($_GET['apt_tab']) && !empty($_GET['apt_tab']))
|
27 |
+
{
|
28 |
+
$current_tab = htmlspecialchars( $_GET['apt_tab']);
|
29 |
+
$current_url .= "&apt_tab={$current_tab}";
|
30 |
+
$TABS[$current_tab]['current'] = true;
|
31 |
+
}
|
32 |
+
else
|
33 |
+
{
|
34 |
+
$current_tab = 'general';
|
35 |
+
$current_url .= "&apt_tab={$current_tab}";
|
36 |
+
$TABS[$current_tab]['current'] = true;
|
37 |
+
}
|
38 |
+
?>
|
39 |
+
<div class="wis-container">
|
40 |
+
<div class="wapt-page-title"><h1><?php _e( 'Settings', 'apt' ) ?> <?php echo WAPT_Plugin::app()->getPluginTitle()." ".WAPT_Plugin::app()->getPluginVersion(); ?></h1></div>
|
41 |
+
<div id="tabs" class="tabs">
|
42 |
+
<nav>
|
43 |
+
<ul>
|
44 |
+
<?php
|
45 |
+
foreach ($TABS as $key => $tab)
|
46 |
+
{
|
47 |
+
if($tab['current']) {
|
48 |
+
echo "<li class='tab-current'>";
|
49 |
+
}
|
50 |
+
else {
|
51 |
+
echo "<li>";
|
52 |
+
}
|
53 |
+
echo "<a href='{$tab['url']}' class='{$tab['icon']}'><span>{$tab['caption']}</span></a>";
|
54 |
+
echo "</li>";
|
55 |
+
}
|
56 |
+
?>
|
57 |
+
</ul>
|
58 |
+
</nav>
|
59 |
+
<div class="content">
|
60 |
+
<section id="section-<?php echo $current_tab;?>">
|
61 |
+
<div class="wrap">
|
62 |
+
<div class="factory-bootstrap-426 factory-fontawesome-000">
|
63 |
+
<div class="row">
|
64 |
+
<div class="col-md-8">
|
65 |
+
<form method="post" class="form-horizontal">
|
66 |
+
<?php if ( ! empty( $wbcr_saved ) ) { ?>
|
67 |
+
<div id="message" class="alert alert-success">
|
68 |
+
<p><?php _e( 'The settings have been updated successfully!', 'insert-php' ) ?></p>
|
69 |
+
</div>
|
70 |
+
<?php } ?>
|
71 |
+
<div>
|
72 |
+
<?php $form->html(); ?>
|
73 |
+
</div>
|
74 |
+
<div class="form-group form-horizontal">
|
75 |
+
|
76 |
+
<div class="control-group controls col-sm-10">
|
77 |
+
<?php wp_nonce_field( $this->plugin->getPrefix() . 'settings_form', $this->plugin->getPrefix() . 'nonce' ); ?>
|
78 |
+
<input name="<?php echo $this->plugin->getPrefix() . 'saved' ?>" class="btn btn-primary" type="submit" value="<?php _e( 'Save settings', 'insert-php' ) ?>"/>
|
79 |
+
</div>
|
80 |
+
</div>
|
81 |
+
</form>
|
82 |
+
</div>
|
83 |
+
<div class="col-md-4">
|
84 |
+
<?php if($current_tab == 'img_generation') { ?>
|
85 |
+
<div id="wapt-image-preview" class="wapt-image-preview">
|
86 |
+
<div class="wapt-image-preview-title"><h3>Post thumbnail preview</h3></div>
|
87 |
+
<?php
|
88 |
+
$format = WAPT_Plugin::app()->getOption( "image-type", "jpg" );
|
89 |
+
switch($format)
|
90 |
+
{
|
91 |
+
case 'png':
|
92 |
+
$format = 'png';
|
93 |
+
break;
|
94 |
+
case 'jpg':
|
95 |
+
case 'jpeg':
|
96 |
+
default:
|
97 |
+
$format = 'jpg';
|
98 |
+
break;
|
99 |
+
}
|
100 |
+
|
101 |
+
$posts = get_posts( array( 'numberposts' => 0, ) );
|
102 |
+
$id = rand(0, count($posts)-1);
|
103 |
+
if(count($posts) !== 0) $txt = $posts[$id]->post_title;
|
104 |
+
else $txt = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas aliquet turpis quis ex elementum malesuada';
|
105 |
+
|
106 |
+
$image = apply_filters('wapt/generate/image', AutoPostThumbnails::generate_image_with_text($txt), $txt);
|
107 |
+
|
108 |
+
$image->save( WAPT_PLUGIN_DIR . "/preview.{$format}", 100, $format);
|
109 |
+
?>
|
110 |
+
<img src="<?php echo WAPT_PLUGIN_URL . "/preview.{$format}?".time(); ?>" width="100%" alt="">
|
111 |
+
</div>
|
112 |
+
<?php } ?>
|
113 |
+
|
114 |
+
<?php if(!WAPT_Plugin::app()->is_premium()) { ?>
|
115 |
+
<div id="wapt-dashboard-widget" class="wapt-right-widget">
|
116 |
+
<div style="padding:20px">
|
117 |
+
<?php WAPT_Plugin::app()->get_adverts_manager()->render_placement( 'right_sidebar'); ?>
|
118 |
+
</div>
|
119 |
+
</div>
|
120 |
+
<?php } ?>
|
121 |
+
</div>
|
122 |
</div>
|
123 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
</div>
|
125 |
+
</section>
|
126 |
+
</div><!-- /content -->
|
127 |
+
</div><!-- /tabs -->
|
128 |
+
<div class="row wapt-footer">
|
129 |
+
<div class="col-md-6">
|
130 |
+
<div id="wbcr-clr-support-widget" class="wbcr-factory-sidebar-widget">
|
131 |
+
<p><strong>Having Issues?</strong></p>
|
132 |
+
<div class="wbcr-clr-support-widget-body">
|
133 |
+
<p>
|
134 |
+
We provide free support for this plugin. If you are pushed with a problem, just create a new ticket. We will definitely help you! </p>
|
135 |
+
<ul>
|
136 |
+
<li><span class="dashicons dashicons-sos"></span>
|
137 |
+
<a href="https://forum.webcraftic.com" target="_blank" rel="noopener">Get starting free support</a>
|
138 |
+
</li>
|
139 |
+
</ul>
|
140 |
</div>
|
|
|
141 |
</div>
|
142 |
</div>
|
143 |
</div>
|
144 |
+
|
145 |
</div>
|
auto-post-thumbnail.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Auto Post Thumbnail
|
4 |
Plugin URI: https://cm-wp.com/apt
|
5 |
Description: Automatically generate the Post Thumbnail (Featured Thumbnail) from the first image in post (or any custom post type) only if Post Thumbnail is not set manually.
|
6 |
-
Version: 3.
|
7 |
Author: Creativemotion <support@cm-wp.com>
|
8 |
Author URI: cm-wp.com
|
9 |
Text Domain: apt
|
@@ -101,15 +101,16 @@ $plugin_info = array(
|
|
101 |
// Подключаемые модуль фреймворка
|
102 |
// Необходимые для ускоренной разработки продуктов Webcrfatic
|
103 |
'load_factory_modules' => array(
|
104 |
-
array( 'libs/factory/bootstrap', '
|
105 |
-
array( 'libs/factory/forms', '
|
106 |
-
array( 'libs/factory/pages', '
|
107 |
-
array( 'libs/factory/freemius', '
|
108 |
-
array( 'libs/factory/adverts', '
|
|
|
109 |
)
|
110 |
);
|
111 |
|
112 |
-
$wapt_compatibility = new
|
113 |
'plugin_already_activate' => defined( 'WAPT_PLUGIN_ACTIVE' ),
|
114 |
'required_php_version' => '5.4',
|
115 |
'required_wp_version' => '4.2.0',
|
@@ -182,6 +183,7 @@ try {
|
|
182 |
*/
|
183 |
function auto_post_thumbnails() {
|
184 |
require_once( WAPT_PLUGIN_DIR . '/includes/class-wapt-base.php' );
|
|
|
185 |
|
186 |
return AutoPostThumbnails::instance();
|
187 |
}
|
3 |
Plugin Name: Auto Post Thumbnail
|
4 |
Plugin URI: https://cm-wp.com/apt
|
5 |
Description: Automatically generate the Post Thumbnail (Featured Thumbnail) from the first image in post (or any custom post type) only if Post Thumbnail is not set manually.
|
6 |
+
Version: 3.7.0
|
7 |
Author: Creativemotion <support@cm-wp.com>
|
8 |
Author URI: cm-wp.com
|
9 |
Text Domain: apt
|
101 |
// Подключаемые модуль фреймворка
|
102 |
// Необходимые для ускоренной разработки продуктов Webcrfatic
|
103 |
'load_factory_modules' => array(
|
104 |
+
array( 'libs/factory/bootstrap', 'factory_bootstrap_426', 'admin' ), // Модуль позволяет использовать различные js виджеты и стили оформление форм.
|
105 |
+
array( 'libs/factory/forms', 'factory_forms_423', 'admin' ), // Модуль позволяет быстро создавать формы и готовые поля настроек
|
106 |
+
array( 'libs/factory/pages', 'factory_pages_425', 'admin' ), // Модуль позволяет создавать страницы плагина, в том числе шаблонизированные страницы
|
107 |
+
array( 'libs/factory/freemius', 'factory_freemius_113', 'all' ), // Модуль для работы с freemius.com, содержит api библиотеку и провайдеры для премиум менеджера
|
108 |
+
array( 'libs/factory/adverts', 'factory_adverts_106', 'admin'), // Модуль для показа рекламы в админпанели Wordpress, вся реклама вытягивается через API Creative Motion
|
109 |
+
array( 'libs/factory/feedback', 'factory_feedback_102', 'admin'),
|
110 |
)
|
111 |
);
|
112 |
|
113 |
+
$wapt_compatibility = new Wbcr_Factory425_Requirements( __FILE__, array_merge( $plugin_info, array(
|
114 |
'plugin_already_activate' => defined( 'WAPT_PLUGIN_ACTIVE' ),
|
115 |
'required_php_version' => '5.4',
|
116 |
'required_wp_version' => '4.2.0',
|
183 |
*/
|
184 |
function auto_post_thumbnails() {
|
185 |
require_once( WAPT_PLUGIN_DIR . '/includes/class-wapt-base.php' );
|
186 |
+
require_once( WAPT_PLUGIN_DIR . '/includes/class-wapt-image.php' );
|
187 |
|
188 |
return AutoPostThumbnails::instance();
|
189 |
}
|
fonts/Arial.ttf
ADDED
Binary file
|
fonts/Segoeui.ttf
ADDED
Binary file
|
fonts/Tahoma.ttf
ADDED
Binary file
|
includes/class-wapt-base.php
CHANGED
@@ -3,8 +3,8 @@
|
|
3 |
/**
|
4 |
* Class AutoPostThumbnails
|
5 |
*
|
6 |
-
* @author
|
7 |
-
* @copyright (c)
|
8 |
*/
|
9 |
class AutoPostThumbnails {
|
10 |
|
@@ -81,18 +81,29 @@ class AutoPostThumbnails {
|
|
81 |
* Initiate all required hooks.
|
82 |
*/
|
83 |
private function init() {
|
|
|
|
|
84 |
add_action( 'admin_menu', [ $this, 'my_custom_submenu_page' ] );
|
85 |
|
86 |
$apt_ag = WAPT_Plugin::app()->getOption( 'auto_generation' );
|
87 |
|
88 |
if ( $apt_ag ) {
|
89 |
-
add_action( 'publish_post', [ $this, 'publish_post' ], 10, 1 );
|
90 |
-
|
|
|
|
|
91 |
// This hook will now handle all sort publishing including posts, custom types, scheduled posts, etc.
|
92 |
add_action( 'transition_post_status', [ $this, 'check_required_transition' ], 10, 3 );
|
93 |
}
|
|
|
|
|
|
|
|
|
|
|
94 |
|
95 |
add_action( 'admin_notices', [ $this, 'check_perms' ] );
|
|
|
|
|
96 |
//add_action( 'admin_menu', [ $this, 'init_admin_menu' ] );
|
97 |
|
98 |
// Plugin hook for adding CSS and JS files required for this plugin
|
@@ -121,11 +132,21 @@ class AutoPostThumbnails {
|
|
121 |
$this,
|
122 |
'ajax_process_post',
|
123 |
] );
|
|
|
|
|
|
|
|
|
124 |
add_action( 'wp_ajax_get-posts-ids', [ $this, 'get_posts_ids' ] );
|
125 |
add_action( 'wp_ajax_apt_replace_thumbnail', [ $this, 'apt_replace_thumbnail' ] );
|
126 |
add_action( 'wp_ajax_apt_get_thumbnail', [ $this, 'apt_get_thumbnail' ] );
|
127 |
add_action( 'wp_ajax_source_content', [ $this, 'source_content' ] );
|
128 |
add_action( 'wp_ajax_upload_to_library', [ $this, 'upload_to_library' ] );
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
130 |
|
131 |
/**
|
@@ -179,20 +200,6 @@ class AutoPostThumbnails {
|
|
179 |
$action_column_get_thumbnails = apply_filters( 'wapt/get-thumbnails/action', $action_column_get_thumbnails );
|
180 |
wp_localize_script( 'apt-admin-script-thumbnail', 'action_column_get_thumbnails', $action_column_get_thumbnails );
|
181 |
|
182 |
-
/*
|
183 |
-
wp_enqueue_script(
|
184 |
-
'apt-media-views',
|
185 |
-
plugins_url( 'admin/assets/js/media.js', __FILE__ ),
|
186 |
-
array( 'jquery' ),
|
187 |
-
false,
|
188 |
-
true
|
189 |
-
);
|
190 |
-
*/
|
191 |
-
/*
|
192 |
-
//global $post;
|
193 |
-
$aptIframeSrc = get_admin_url(get_current_blog_id(), 'media-upload.php?chromeless=1&post_id=' . $_REQUEST['post'] . '&tab=apttab');
|
194 |
-
wp_localize_script('apt-media-views', 'aptIframeSrc', $aptIframeSrc);
|
195 |
-
*/
|
196 |
if ( is_admin() ) {
|
197 |
wp_enqueue_script( 'jquery-progress', WAPT_PLUGIN_URL . '/admin/assets/jquery-ui/jquery-ui.progressbar.min.js', [], false, true );
|
198 |
wp_enqueue_script( 'jquery-autocolumnlist', WAPT_PLUGIN_URL . '/admin/assets/jquery-ui/jquery.autocolumnlist.js', [], false, true );
|
@@ -207,12 +214,62 @@ class AutoPostThumbnails {
|
|
207 |
//wp_enqueue_style( 'jquery-ui-genpostthumbs', plugins_url( 'admin/assets/jquery-ui/redmond/jquery-ui-1.7.2.custom.css', __FILE__ ), array(), '1.7.2' );
|
208 |
}
|
209 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
210 |
//-----------------------------------
|
211 |
if ( 'settings_page_generate-post-thumbnails' != $hook_suffix ) {
|
212 |
return;
|
213 |
}
|
214 |
}
|
215 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
216 |
/**
|
217 |
* Get posts id's
|
218 |
*
|
@@ -224,23 +281,46 @@ class AutoPostThumbnails {
|
|
224 |
}
|
225 |
check_ajax_referer( 'get-posts' );
|
226 |
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
$
|
231 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
|
233 |
-
if ( ! empty( $posts ) ) {
|
234 |
// Generate the list of IDs
|
235 |
$ids = [];
|
236 |
-
foreach ( $posts as $post ) {
|
237 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
}
|
239 |
$ids = implode( ',', $ids );
|
240 |
echo $ids;
|
241 |
} else {
|
242 |
echo "0";
|
243 |
-
//esc_html_e( 'Currently there are no published posts available to generate thumbnails.', 'apt' );
|
244 |
}
|
245 |
die( - 1 );
|
246 |
}
|
@@ -272,6 +352,57 @@ class AutoPostThumbnails {
|
|
272 |
die( - 1 );
|
273 |
}
|
274 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
/**
|
276 |
* Check whether the required directory structure is available so that the plugin can create thumbnails if needed.
|
277 |
* If not, don't allow plugin activation.
|
@@ -311,17 +442,48 @@ class AutoPostThumbnails {
|
|
311 |
/**
|
312 |
* Return sql query, which allows to receive all the posts without thumbnails
|
313 |
*
|
314 |
-
* @return
|
315 |
*/
|
316 |
-
public function get_posts_query() {
|
317 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
318 |
|
319 |
-
return
|
320 |
-
p.ID NOT IN (
|
321 |
-
SELECT DISTINCT post_id FROM {$wpdb->postmeta} WHERE meta_key IN ('_thumbnail_id', 'skip_post_thumb')
|
322 |
-
) OR
|
323 |
-
NOT EXISTS (SELECT p2.ID FROM {$wpdb->posts} p2 WHERE p2.ID = (SELECT meta_value FROM {$wpdb->postmeta} WHERE meta_key = '_thumbnail_id' AND post_id = p.ID) AND p2.post_type = 'attachment')
|
324 |
-
)";
|
325 |
}
|
326 |
|
327 |
/**
|
@@ -338,8 +500,11 @@ class AutoPostThumbnails {
|
|
338 |
$matches = [];
|
339 |
$images = [];
|
340 |
|
|
|
|
|
|
|
341 |
// Get all images from post's body
|
342 |
-
preg_match_all( '/<\s*img
|
343 |
|
344 |
if ( count( $matches ) ) {
|
345 |
foreach ( $matches[0] as $key => $image ) {
|
@@ -361,14 +526,12 @@ class AutoPostThumbnails {
|
|
361 |
/**
|
362 |
* Get thumbnail id for image
|
363 |
*
|
364 |
-
* @param
|
365 |
-
* @param
|
366 |
-
* @param $key
|
367 |
-
* @param array $images_urls
|
368 |
*
|
369 |
* @return bool|int
|
370 |
*/
|
371 |
-
public function get_thumbnail_id( $image, $
|
372 |
global $wpdb;
|
373 |
|
374 |
/**
|
@@ -387,8 +550,8 @@ class AutoPostThumbnails {
|
|
387 |
|
388 |
// If thumb id is not found, try to look for the image in DB. Thanks to "Erwin Vrolijk" for providing this code.
|
389 |
if ( ! $thumb_id ) {
|
390 |
-
|
391 |
-
$result = $wpdb->get_results( "SELECT ID FROM {$wpdb->posts} WHERE guid = '" . $
|
392 |
if ( $result ) {
|
393 |
$thumb_id = $result[0]->ID;
|
394 |
}
|
@@ -396,8 +559,8 @@ class AutoPostThumbnails {
|
|
396 |
|
397 |
// Still no id found? Try found by post_name
|
398 |
if ( ! $thumb_id ) {
|
399 |
-
if ( isset( $
|
400 |
-
$image_url = trim( $
|
401 |
$_parts = explode( '/', $image_url );
|
402 |
$image_url = array_pop( $_parts );
|
403 |
$_parts = explode( '.', $image_url );
|
@@ -432,21 +595,41 @@ class AutoPostThumbnails {
|
|
432 |
}
|
433 |
|
434 |
$thumb_id = 0;
|
435 |
-
|
436 |
$images = $this->get_images_from_post( $post_id );
|
437 |
-
if ( isset( $images['tags'] ) && count( $images['tags'] ) ) {
|
|
|
438 |
foreach ( $images['tags'] as $key => $image ) {
|
439 |
-
$thumb_id = $this->get_thumbnail_id( $image, $key );
|
440 |
// If we succeed in generating thumb, let's update post meta
|
441 |
if ( $thumb_id ) {
|
442 |
update_post_meta( $post_id, '_thumbnail_id', $thumb_id );
|
443 |
-
|
444 |
return $thumb_id;
|
445 |
} else {
|
446 |
$thumb_id = $wpdb->get_var( "SELECT ID FROM {$wpdb->posts} WHERE guid LIKE '" . $images['urls'][ $key ] . "'" );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
447 |
update_post_meta( $post_id, '_thumbnail_id', $thumb_id );
|
448 |
|
449 |
-
return $thumb_id
|
450 |
}
|
451 |
}
|
452 |
}
|
@@ -512,18 +695,17 @@ class AutoPostThumbnails {
|
|
512 |
*
|
513 |
* @return int|WP_Error|null
|
514 |
*/
|
515 |
-
public function generate_post_thumb( $
|
516 |
// Get the URL now for further processing
|
517 |
//$imageUrl = $matches[1][ $key ];
|
518 |
-
$imageUrl = $
|
519 |
-
|
520 |
-
$imageTitle = $titles[ $key ];
|
521 |
-
} else {
|
522 |
-
$imageTitle = '';
|
523 |
-
}
|
524 |
|
525 |
// Get the file name
|
526 |
$filename = substr( $imageUrl, ( strrpos( $imageUrl, '/' ) ) + 1 );
|
|
|
|
|
|
|
527 |
|
528 |
if ( ! ( ( $uploads = wp_upload_dir( current_time( 'mysql' ) ) ) && false === $uploads['error'] ) ) {
|
529 |
return null;
|
@@ -538,9 +720,16 @@ class AutoPostThumbnails {
|
|
538 |
if ( ! ini_get( 'allow_url_fopen' ) ) {
|
539 |
$file_data = $this->curl_get_file_contents( $imageUrl );
|
540 |
} else {
|
541 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
542 |
}
|
543 |
|
|
|
544 |
if ( ! $file_data ) {
|
545 |
return null;
|
546 |
}
|
@@ -548,7 +737,7 @@ class AutoPostThumbnails {
|
|
548 |
//Fix for checking file extensions
|
549 |
$exts = explode( ".", $filename );
|
550 |
if ( count( $exts ) > 2 ) {
|
551 |
-
return null;
|
552 |
}
|
553 |
|
554 |
$allowed = get_allowed_mime_types();
|
@@ -611,6 +800,8 @@ class AutoPostThumbnails {
|
|
611 |
$c = curl_init();
|
612 |
curl_setopt( $c, CURLOPT_RETURNTRANSFER, 1 );
|
613 |
curl_setopt( $c, CURLOPT_URL, $URL );
|
|
|
|
|
614 |
$contents = curl_exec( $c );
|
615 |
curl_close( $c );
|
616 |
|
@@ -629,8 +820,10 @@ class AutoPostThumbnails {
|
|
629 |
* @return array
|
630 |
*/
|
631 |
public function add_image_column( $columns ) {
|
|
|
|
|
632 |
$new_columns = [
|
633 |
-
'apt-image' => __( 'Image', 'apt' ) .
|
634 |
];
|
635 |
|
636 |
return array_slice( $columns, 0, $this->numberOfColumn ) + $new_columns + array_slice( $columns, $this->numberOfColumn );
|
@@ -667,23 +860,35 @@ class AutoPostThumbnails {
|
|
667 |
check_ajax_referer( 'set_post_thumbnail-' . $post_id );
|
668 |
if ( isset( $_POST['thumbnail_id'] ) && ! empty( $_POST['thumbnail_id'] ) ) {
|
669 |
$thumb_id = intval( $_POST['thumbnail_id'] );
|
670 |
-
|
671 |
-
if
|
672 |
-
|
|
|
673 |
}
|
674 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
675 |
|
676 |
-
if ( $thumb_id ) {
|
677 |
-
update_post_meta( $post_id, '_thumbnail_id', $thumb_id );
|
678 |
-
} else {
|
679 |
global $wpdb;
|
680 |
-
$thumb_id = $wpdb->get_var( "SELECT ID FROM {$wpdb->posts} WHERE guid LIKE '" . $
|
681 |
-
if (
|
682 |
-
|
683 |
-
|
684 |
-
$thumb_id =
|
|
|
|
|
|
|
685 |
}
|
686 |
}
|
|
|
|
|
|
|
|
|
|
|
687 |
echo $this->apt_getThumbHtml( $post_id, $thumb_id );
|
688 |
}
|
689 |
}
|
@@ -810,7 +1015,7 @@ class AutoPostThumbnails {
|
|
810 |
*/
|
811 |
public function upload_to_library() {
|
812 |
|
813 |
-
if ( ! wp_verify_nonce( $_POST['wpnonce'], '
|
814 |
die( 'Error: Invalid request.' );
|
815 |
}
|
816 |
if ( isset( $_POST['is_upload'] ) ) {
|
@@ -890,8 +1095,8 @@ class AutoPostThumbnails {
|
|
890 |
|
891 |
$attach_data = wp_generate_attachment_metadata( $attach_id, $target_file_name );
|
892 |
$result = wp_update_attachment_metadata( $attach_id, $attach_data );
|
893 |
-
if ( $result
|
894 |
-
die( 'Error: File attachment metadata error' );
|
895 |
}
|
896 |
|
897 |
$image_data = [];
|
@@ -904,4 +1109,345 @@ class AutoPostThumbnails {
|
|
904 |
exit;
|
905 |
}
|
906 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
907 |
}
|
3 |
/**
|
4 |
* Class AutoPostThumbnails
|
5 |
*
|
6 |
+
* @author Artem Prihodko <webtemyk@yandex.ru>, Github: https://github.com/temyk
|
7 |
+
* @copyright (c) 2019, Webcraftic Ltd
|
8 |
*/
|
9 |
class AutoPostThumbnails {
|
10 |
|
81 |
* Initiate all required hooks.
|
82 |
*/
|
83 |
private function init() {
|
84 |
+
add_action( 'admin_init', [ $this, 'redirect_to_about_page' ] );
|
85 |
+
|
86 |
add_action( 'admin_menu', [ $this, 'my_custom_submenu_page' ] );
|
87 |
|
88 |
$apt_ag = WAPT_Plugin::app()->getOption( 'auto_generation' );
|
89 |
|
90 |
if ( $apt_ag ) {
|
91 |
+
//add_action( 'publish_post', [ $this, 'publish_post' ], 10, 1 );
|
92 |
+
add_action( 'save_post', [ $this, 'publish_post' ], 10, 1 );
|
93 |
+
// This hook handle update post via rest api. for example Wordpress mobile apps
|
94 |
+
add_action( 'rest_api_inserted_post', [ $this, 'publish_post' ], 10, 1 );
|
95 |
// This hook will now handle all sort publishing including posts, custom types, scheduled posts, etc.
|
96 |
add_action( 'transition_post_status', [ $this, 'check_required_transition' ], 10, 3 );
|
97 |
}
|
98 |
+
else {
|
99 |
+
if(WAPT_Plugin::app()->getOption( 'auto_generation_notice', 1 )) {
|
100 |
+
add_action( 'admin_notices', [ $this, 'notice_auto_generation' ] );
|
101 |
+
}
|
102 |
+
}
|
103 |
|
104 |
add_action( 'admin_notices', [ $this, 'check_perms' ] );
|
105 |
+
add_action( 'wbcr/factory/admin_notices', [ $this, 'check_api_notice' ], 10, 2 );
|
106 |
+
add_action( 'wbcr/factory/admin_notices', [ $this, 'show_about_notice' ], 10, 2 );
|
107 |
//add_action( 'admin_menu', [ $this, 'init_admin_menu' ] );
|
108 |
|
109 |
// Plugin hook for adding CSS and JS files required for this plugin
|
132 |
$this,
|
133 |
'ajax_process_post',
|
134 |
] );
|
135 |
+
add_action( 'wp_ajax_delete_post_thumbnails', [
|
136 |
+
$this,
|
137 |
+
'ajax_delete_post_thumbnails',
|
138 |
+
] );
|
139 |
add_action( 'wp_ajax_get-posts-ids', [ $this, 'get_posts_ids' ] );
|
140 |
add_action( 'wp_ajax_apt_replace_thumbnail', [ $this, 'apt_replace_thumbnail' ] );
|
141 |
add_action( 'wp_ajax_apt_get_thumbnail', [ $this, 'apt_get_thumbnail' ] );
|
142 |
add_action( 'wp_ajax_source_content', [ $this, 'source_content' ] );
|
143 |
add_action( 'wp_ajax_upload_to_library', [ $this, 'upload_to_library' ] );
|
144 |
+
add_action( 'wp_ajax_wapt_upload_font', [ $this, 'upload_font' ] );
|
145 |
+
|
146 |
+
//APIs
|
147 |
+
add_action( 'wp_ajax_apt_api_google', [ $this, 'apt_api_google' ] );
|
148 |
+
add_action( 'wp_ajax_apt_check_api_key', [ $this, 'apt_check_api_key' ] );
|
149 |
+
add_action( 'wp_ajax_hide_notice_auto_generation', [ $this, 'hide_notice_auto_generation' ] );
|
150 |
}
|
151 |
|
152 |
/**
|
200 |
$action_column_get_thumbnails = apply_filters( 'wapt/get-thumbnails/action', $action_column_get_thumbnails );
|
201 |
wp_localize_script( 'apt-admin-script-thumbnail', 'action_column_get_thumbnails', $action_column_get_thumbnails );
|
202 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
if ( is_admin() ) {
|
204 |
wp_enqueue_script( 'jquery-progress', WAPT_PLUGIN_URL . '/admin/assets/jquery-ui/jquery-ui.progressbar.min.js', [], false, true );
|
205 |
wp_enqueue_script( 'jquery-autocolumnlist', WAPT_PLUGIN_URL . '/admin/assets/jquery-ui/jquery.autocolumnlist.js', [], false, true );
|
214 |
//wp_enqueue_style( 'jquery-ui-genpostthumbs', plugins_url( 'admin/assets/jquery-ui/redmond/jquery-ui-1.7.2.custom.css', __FILE__ ), array(), '1.7.2' );
|
215 |
}
|
216 |
|
217 |
+
wp_enqueue_script(
|
218 |
+
'apt-admin-check_api',
|
219 |
+
WAPT_PLUGIN_URL.'/admin/assets/js/check-api.js',
|
220 |
+
array(),
|
221 |
+
false,
|
222 |
+
true
|
223 |
+
);
|
224 |
+
|
225 |
//-----------------------------------
|
226 |
if ( 'settings_page_generate-post-thumbnails' != $hook_suffix ) {
|
227 |
return;
|
228 |
}
|
229 |
}
|
230 |
|
231 |
+
/**
|
232 |
+
* Этот хук реализует условную логику, при которой пользователь переодически будет
|
233 |
+
* видет страницу "О плагине", а конкретно при активации и обновлении плагина.
|
234 |
+
*/
|
235 |
+
public function redirect_to_about_page()
|
236 |
+
{
|
237 |
+
$plugin = WAPT_Plugin::app();
|
238 |
+
|
239 |
+
// If the user has updated the plugin or activated it for the first time,
|
240 |
+
// you need to show the page "What's new?"
|
241 |
+
if ( ! $plugin->isNetworkAdmin() ) {
|
242 |
+
$about_page_viewed = $plugin->request->get( 'wapt_about_page_viewed', null );
|
243 |
+
$need_show_about = get_option( $plugin->getOptionName( 'whats_new_v360' ) );
|
244 |
+
if ( is_null( $about_page_viewed ) ) {
|
245 |
+
if ( $need_show_about && !(defined( 'DOING_AJAX' ) && DOING_AJAX) && !(defined( 'DOING_CRON' ) && DOING_CRON) ) {
|
246 |
+
try {
|
247 |
+
$redirect_url = '';
|
248 |
+
if ( class_exists( 'Wbcr_FactoryPages425' ) ) {
|
249 |
+
$redirect_url = admin_url("admin.php?page=wapt_about-wbcr_apt&wapt_about_page_viewed=1");
|
250 |
+
}
|
251 |
+
if ( $redirect_url ) {
|
252 |
+
wp_safe_redirect( $redirect_url );
|
253 |
+
die();
|
254 |
+
}
|
255 |
+
} catch( Exception $e ) {
|
256 |
+
}
|
257 |
+
}
|
258 |
+
} else {
|
259 |
+
if ( $need_show_about && !(defined( 'DOING_AJAX' ) && DOING_AJAX) && !(defined( 'DOING_CRON' ) && DOING_CRON) ) {
|
260 |
+
delete_option( $plugin->getOptionName( 'whats_new_v360' ) );
|
261 |
+
}
|
262 |
+
}
|
263 |
+
}
|
264 |
+
}
|
265 |
+
|
266 |
+
/**
|
267 |
+
* Метод проверяет активацию премиум плагина и наличие действующего лицензионнного ключа
|
268 |
+
*/
|
269 |
+
public function is_premium()
|
270 |
+
{
|
271 |
+
return WAPT_Plugin::app()->is_premium();
|
272 |
+
}
|
273 |
/**
|
274 |
* Get posts id's
|
275 |
*
|
281 |
}
|
282 |
check_ajax_referer( 'get-posts' );
|
283 |
|
284 |
+
$generate = WAPT_Plugin::app()->getOption( "generate_autoimage", 'find' );
|
285 |
+
if($generate == 'find') $auto_generate = false;
|
286 |
+
else if($generate == 'generate' || $generate == 'both') $auto_generate = true;
|
287 |
+
else $auto_generate = false;
|
288 |
+
|
289 |
+
|
290 |
+
$has_thumb = (bool) $_POST['withThumb'];
|
291 |
+
if(auto_post_thumbnails()->is_premium()) {
|
292 |
+
$status = $_POST['poststatus'];
|
293 |
+
$type = $_POST['posttype'];
|
294 |
+
$category = $_POST['category'];
|
295 |
+
$date_start = $_POST['date_start'] ? DateTime::createFromFormat( get_option( 'date_format ' ), $_POST['date_start'] )->format( 'Y-m-d' ) : 0;
|
296 |
+
$date_end = $_POST['date_end'] ? DateTime::createFromFormat( get_option( 'date_format ' ), $_POST['date_end'] )->format( 'Y-m-d' ) : 0;
|
297 |
+
// Get id's of the posts that satisfy the filters
|
298 |
+
$query = $this->get_posts_query( $has_thumb,$status, $type, $category, $date_start, $date_end );
|
299 |
+
}
|
300 |
+
else
|
301 |
+
{
|
302 |
+
// Get id's of all the published posts for which post thumbnails exist or does not exist
|
303 |
+
$query = $this->get_posts_query($has_thumb);
|
304 |
+
}
|
305 |
|
306 |
+
if ( ! empty( $query->posts ) ) {
|
307 |
// Generate the list of IDs
|
308 |
$ids = [];
|
309 |
+
foreach ( $query->posts as $post ) {
|
310 |
+
//если запрошены посты без тамбнеила, значит пользователь хочет сгенерировать их
|
311 |
+
if(!$has_thumb) {
|
312 |
+
$images = $this->get_images_from_post( $post->ID );
|
313 |
+
if ( (isset( $images['urls'] ) && count( $images['urls'] )) || $auto_generate ) {
|
314 |
+
$ids[] = $post->ID;
|
315 |
+
}
|
316 |
+
}
|
317 |
+
else //иначе он хочет удалить тамбнэйлы
|
318 |
+
$ids[] = $post->ID;
|
319 |
}
|
320 |
$ids = implode( ',', $ids );
|
321 |
echo $ids;
|
322 |
} else {
|
323 |
echo "0";
|
|
|
324 |
}
|
325 |
die( - 1 );
|
326 |
}
|
352 |
die( - 1 );
|
353 |
}
|
354 |
|
355 |
+
/**
|
356 |
+
* Process single post to delete the post thumbnail
|
357 |
+
*
|
358 |
+
* @return void
|
359 |
+
*/
|
360 |
+
public function ajax_delete_post_thumbnails() {
|
361 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
362 |
+
die( '-1' );
|
363 |
+
}
|
364 |
+
check_ajax_referer( 'delete-post-thumbnails' );
|
365 |
+
if ( isset( $_POST['id'] ) && ! empty( $_POST['id'] ) ) {
|
366 |
+
$id = intval( $_POST['id'] );
|
367 |
+
|
368 |
+
if ( empty( $id ) ) {
|
369 |
+
die( '-1' );
|
370 |
+
}
|
371 |
+
|
372 |
+
set_time_limit( 60 );
|
373 |
+
|
374 |
+
// Pass on the id to our 'publish' callback function.
|
375 |
+
echo delete_post_thumbnail($id);
|
376 |
+
|
377 |
+
die( - 1 );
|
378 |
+
}
|
379 |
+
die( - 1 );
|
380 |
+
}
|
381 |
+
|
382 |
+
/**
|
383 |
+
*
|
384 |
+
*/
|
385 |
+
public function notice_auto_generation() {
|
386 |
+
?>
|
387 |
+
<div class="notice notice-warning is-dismissible" id="notice_auto_generation">
|
388 |
+
<p><b>Auto Post Thumbnail:</b> Do you want to enable automatic post thumbnail generation? Enable this option in
|
389 |
+
<a href="<?php echo admin_url('admin.php?page=wapt_settings-wbcr_apt&tab=general'); ?>">settings</a><br>
|
390 |
+
<a href="#" id="hide_notice_auto_generation">Don't ask again</a>
|
391 |
+
</p>
|
392 |
+
</div>
|
393 |
+
<?php
|
394 |
+
}
|
395 |
+
|
396 |
+
/**
|
397 |
+
*
|
398 |
+
*/
|
399 |
+
public function hide_notice_auto_generation() {
|
400 |
+
if( isset($_POST['action']) && $_POST['action'] === 'hide_notice_auto_generation')
|
401 |
+
{
|
402 |
+
WAPT_Plugin::app()->updateOption( 'auto_generation_notice', 0 );
|
403 |
+
}
|
404 |
+
}
|
405 |
+
|
406 |
/**
|
407 |
* Check whether the required directory structure is available so that the plugin can create thumbnails if needed.
|
408 |
* If not, don't allow plugin activation.
|
442 |
/**
|
443 |
* Return sql query, which allows to receive all the posts without thumbnails
|
444 |
*
|
445 |
+
* @return WP_Query
|
446 |
*/
|
447 |
+
public function get_posts_query($has_thumb = false, $status = 'publish', $type = 'post', $category = 0, $date_start = 0, $date_end = 0) {
|
448 |
+
|
449 |
+
$q_status = $status ? $status : 'any';
|
450 |
+
$q_type = $type ? $type : 'any';
|
451 |
+
$q_has_thumb = $has_thumb ? "EXISTS" : "NOT EXISTS";
|
452 |
+
|
453 |
+
$args = array(
|
454 |
+
'posts_per_page' => -1,
|
455 |
+
'post_status' => $q_status,
|
456 |
+
'post_type' => $q_type,
|
457 |
+
'meta_query' => array(
|
458 |
+
'relation' => 'AND',
|
459 |
+
array(
|
460 |
+
'key' => '_thumbnail_id',
|
461 |
+
'compare' => $q_has_thumb
|
462 |
+
),
|
463 |
+
array(
|
464 |
+
'key' => 'skip_post_thumb',
|
465 |
+
'compare' => 'NOT EXISTS'
|
466 |
+
),
|
467 |
+
),
|
468 |
+
);
|
469 |
+
if($category) $args['cat'] = $category;
|
470 |
+
if($date_start && $date_start)
|
471 |
+
{
|
472 |
+
$args['date_query'][] = array(
|
473 |
+
'after' => $date_start,
|
474 |
+
'before' => $date_end,
|
475 |
+
'inclusive' => true,
|
476 |
+
);
|
477 |
+
}
|
478 |
+
$query = new WP_Query( $args);
|
479 |
+
|
480 |
+
// $query = "SELECT * FROM {$wpdb->posts} p WHERE {$q_status_type}
|
481 |
+
// {$q_date} AND (
|
482 |
+
// p.ID NOT IN (
|
483 |
+
// SELECT DISTINCT post_id FROM {$wpdb->postmeta} WHERE meta_key IN ('_thumbnail_id', 'skip_post_thumb')
|
484 |
+
// ) OR {$q_without_thumb} EXISTS (SELECT p2.ID FROM {$wpdb->posts} p2 WHERE p2.ID = (SELECT meta_value FROM {$wpdb->postmeta} WHERE meta_key = '_thumbnail_id' AND post_id = p.ID) AND p2.post_type = 'attachment'))";
|
485 |
|
486 |
+
return $query;
|
|
|
|
|
|
|
|
|
|
|
487 |
}
|
488 |
|
489 |
/**
|
500 |
$matches = [];
|
501 |
$images = [];
|
502 |
|
503 |
+
//do shortcodes before search images
|
504 |
+
$post_content = do_shortcode( $post->post_content);
|
505 |
+
|
506 |
// Get all images from post's body
|
507 |
+
preg_match_all( '/<\s*img .*src\s*=\s*[\""\']?([^\""\'>]*).*?>/i', $post_content, $matches );
|
508 |
|
509 |
if ( count( $matches ) ) {
|
510 |
foreach ( $matches[0] as $key => $image ) {
|
526 |
/**
|
527 |
* Get thumbnail id for image
|
528 |
*
|
529 |
+
* @param string $image
|
530 |
+
* @param string $url
|
|
|
|
|
531 |
*
|
532 |
* @return bool|int
|
533 |
*/
|
534 |
+
public function get_thumbnail_id( $image, $url ) {
|
535 |
global $wpdb;
|
536 |
|
537 |
/**
|
550 |
|
551 |
// If thumb id is not found, try to look for the image in DB. Thanks to "Erwin Vrolijk" for providing this code.
|
552 |
if ( ! $thumb_id ) {
|
553 |
+
//$image = substr( $image, strpos( $image, '"' ) + 1 );
|
554 |
+
$result = $wpdb->get_results( "SELECT ID FROM {$wpdb->posts} WHERE guid = '" . $url . "'" );
|
555 |
if ( $result ) {
|
556 |
$thumb_id = $result[0]->ID;
|
557 |
}
|
559 |
|
560 |
// Still no id found? Try found by post_name
|
561 |
if ( ! $thumb_id ) {
|
562 |
+
if ( isset( $image ) && ! empty( $image ) ) {
|
563 |
+
$image_url = trim( $image );
|
564 |
$_parts = explode( '/', $image_url );
|
565 |
$image_url = array_pop( $_parts );
|
566 |
$_parts = explode( '.', $image_url );
|
595 |
}
|
596 |
|
597 |
$thumb_id = 0;
|
598 |
+
$autoimage = WAPT_Plugin::app()->getOption( "generate_autoimage", 'find' );
|
599 |
$images = $this->get_images_from_post( $post_id );
|
600 |
+
if ( (isset( $images['tags'] ) && count( $images['tags'] )) && $autoimage !== 'generate') {
|
601 |
+
|
602 |
foreach ( $images['tags'] as $key => $image ) {
|
603 |
+
$thumb_id = $this->get_thumbnail_id( $image, $images['urls'][$key] );
|
604 |
// If we succeed in generating thumb, let's update post meta
|
605 |
if ( $thumb_id ) {
|
606 |
update_post_meta( $post_id, '_thumbnail_id', $thumb_id );
|
|
|
607 |
return $thumb_id;
|
608 |
} else {
|
609 |
$thumb_id = $wpdb->get_var( "SELECT ID FROM {$wpdb->posts} WHERE guid LIKE '" . $images['urls'][ $key ] . "'" );
|
610 |
+
if($thumb_id) {
|
611 |
+
update_post_meta( $post_id, '_thumbnail_id', $thumb_id );
|
612 |
+
return $thumb_id ? $thumb_id : 0;
|
613 |
+
}
|
614 |
+
else {
|
615 |
+
if(auto_post_thumbnails()->is_premium()) $thumb_id = apply_filters( 'wapt/generate_post_thumb', $images['urls'][ $key ], $post_id );
|
616 |
+
if($thumb_id) {
|
617 |
+
update_post_meta( $post_id, '_thumbnail_id', $thumb_id );
|
618 |
+
return $thumb_id;
|
619 |
+
}
|
620 |
+
}
|
621 |
+
}
|
622 |
+
}
|
623 |
+
}
|
624 |
+
else {
|
625 |
+
// создаём свою картинку с заголовком на цветном фоне
|
626 |
+
if ( $autoimage == 'generate' || $autoimage == 'both' ) {
|
627 |
+
|
628 |
+
$thumb_id = $this->generate_and_attachment($post_id);
|
629 |
+
if ( $thumb_id ) {
|
630 |
update_post_meta( $post_id, '_thumbnail_id', $thumb_id );
|
631 |
|
632 |
+
return $thumb_id;
|
633 |
}
|
634 |
}
|
635 |
}
|
695 |
*
|
696 |
* @return int|WP_Error|null
|
697 |
*/
|
698 |
+
public function generate_post_thumb( $image_url, $title, $post_id ) {
|
699 |
// Get the URL now for further processing
|
700 |
//$imageUrl = $matches[1][ $key ];
|
701 |
+
$imageUrl = $image_url;
|
702 |
+
$imageTitle = $title;
|
|
|
|
|
|
|
|
|
703 |
|
704 |
// Get the file name
|
705 |
$filename = substr( $imageUrl, ( strrpos( $imageUrl, '/' ) ) + 1 );
|
706 |
+
//исключаем параметры после имени файла
|
707 |
+
if(strrpos( $filename, '?' ))
|
708 |
+
$filename = substr( $filename, 0, strrpos( $filename, '?' ) );
|
709 |
|
710 |
if ( ! ( ( $uploads = wp_upload_dir( current_time( 'mysql' ) ) ) && false === $uploads['error'] ) ) {
|
711 |
return null;
|
720 |
if ( ! ini_get( 'allow_url_fopen' ) ) {
|
721 |
$file_data = $this->curl_get_file_contents( $imageUrl );
|
722 |
} else {
|
723 |
+
$arrContextOptions = array (
|
724 |
+
"ssl" => array(
|
725 |
+
"verify_peer" => false,
|
726 |
+
"verify_peer_name" => false,
|
727 |
+
),
|
728 |
+
);
|
729 |
+
$file_data = file_get_contents( $imageUrl, false, stream_context_create($arrContextOptions) );
|
730 |
}
|
731 |
|
732 |
+
|
733 |
if ( ! $file_data ) {
|
734 |
return null;
|
735 |
}
|
737 |
//Fix for checking file extensions
|
738 |
$exts = explode( ".", $filename );
|
739 |
if ( count( $exts ) > 2 ) {
|
740 |
+
//return null;
|
741 |
}
|
742 |
|
743 |
$allowed = get_allowed_mime_types();
|
800 |
$c = curl_init();
|
801 |
curl_setopt( $c, CURLOPT_RETURNTRANSFER, 1 );
|
802 |
curl_setopt( $c, CURLOPT_URL, $URL );
|
803 |
+
curl_setopt( $c, CURLOPT_SSL_VERIFYHOST, 0 );
|
804 |
+
curl_setopt( $c, CURLOPT_SSL_VERIFYPEER, false );
|
805 |
$contents = curl_exec( $c );
|
806 |
curl_close( $c );
|
807 |
|
820 |
* @return array
|
821 |
*/
|
822 |
public function add_image_column( $columns ) {
|
823 |
+
$pro = $this->is_premium() ? '' : ' <sup class="wapt-sup-pro">(PRO)<sup>';
|
824 |
+
|
825 |
$new_columns = [
|
826 |
+
'apt-image' => __( 'Image', 'apt' ) . $pro,
|
827 |
];
|
828 |
|
829 |
return array_slice( $columns, 0, $this->numberOfColumn ) + $new_columns + array_slice( $columns, $this->numberOfColumn );
|
860 |
check_ajax_referer( 'set_post_thumbnail-' . $post_id );
|
861 |
if ( isset( $_POST['thumbnail_id'] ) && ! empty( $_POST['thumbnail_id'] ) ) {
|
862 |
$thumb_id = intval( $_POST['thumbnail_id'] );
|
863 |
+
|
864 |
+
if($thumb_id == -1) //generate image
|
865 |
+
{
|
866 |
+
$thumb_id = $this->generate_and_attachment($post_id);
|
867 |
}
|
868 |
}
|
869 |
+
else if ( isset( $_POST['image'] ) && ! empty( $_POST['image'] ) )
|
870 |
+
{
|
871 |
+
$img = $_POST['image'];
|
872 |
+
|
873 |
+
//Совместимость с NexGen
|
874 |
+
$img = preg_replace('/(thumbs\/thumbs_)/', '.', $img);
|
875 |
|
|
|
|
|
|
|
876 |
global $wpdb;
|
877 |
+
$thumb_id = $wpdb->get_var( "SELECT ID FROM {$wpdb->posts} WHERE guid LIKE '" . $img . "'" );
|
878 |
+
if ( !$thumb_id ) {
|
879 |
+
//если ссылка на миниатюру, то регулярка сделает ссылку на оригинал. убирает в конце названия файла -150x150
|
880 |
+
$img = preg_replace('/-[0-9]{1,}x[0-9]{1,}\./', '.', $img);
|
881 |
+
$thumb_id = $wpdb->get_var( "SELECT ID FROM {$wpdb->posts} WHERE guid LIKE '" . $img . "'" );
|
882 |
+
}
|
883 |
+
if ( !$thumb_id ) {
|
884 |
+
$thumb_id = $this->generate_post_thumb( $img, '', $post_id );
|
885 |
}
|
886 |
}
|
887 |
+
else {
|
888 |
+
$thumb_id = 0;
|
889 |
+
}
|
890 |
+
if($thumb_id) update_post_meta( $post_id, '_thumbnail_id', $thumb_id );
|
891 |
+
|
892 |
echo $this->apt_getThumbHtml( $post_id, $thumb_id );
|
893 |
}
|
894 |
}
|
1015 |
*/
|
1016 |
public function upload_to_library() {
|
1017 |
|
1018 |
+
if ( ! wp_verify_nonce( $_POST['wpnonce'], 'apt_api' ) ) {
|
1019 |
die( 'Error: Invalid request.' );
|
1020 |
}
|
1021 |
if ( isset( $_POST['is_upload'] ) ) {
|
1095 |
|
1096 |
$attach_data = wp_generate_attachment_metadata( $attach_id, $target_file_name );
|
1097 |
$result = wp_update_attachment_metadata( $attach_id, $attach_data );
|
1098 |
+
if (! $result ) {
|
1099 |
+
//die( 'Error: File attachment metadata error' );
|
1100 |
}
|
1101 |
|
1102 |
$image_data = [];
|
1109 |
exit;
|
1110 |
}
|
1111 |
}
|
1112 |
+
|
1113 |
+
/**
|
1114 |
+
* AJAX загрузка шрифта
|
1115 |
+
*
|
1116 |
+
*/
|
1117 |
+
public function upload_font() {
|
1118 |
+
if ( ! wp_verify_nonce( $_POST['wpnonce'], 'wapt_upload_font' ) ) {
|
1119 |
+
die( 'Error: Invalid request.' );
|
1120 |
+
}
|
1121 |
+
|
1122 |
+
if( isset( $_POST['is_font_upload'] ) && count($_FILES) > 0){
|
1123 |
+
$file = $_FILES[0];
|
1124 |
+
$upload_dir = wp_upload_dir();
|
1125 |
+
$upload_dir = $upload_dir['basedir']."/apt_fonts";
|
1126 |
+
if( ! is_dir( $upload_dir ) ) mkdir( $upload_dir, 0777 );
|
1127 |
+
|
1128 |
+
$done_files = array();
|
1129 |
+
$file_name = $file['name'];
|
1130 |
+
|
1131 |
+
// Проверка, что файл является шрифтом TrueType
|
1132 |
+
$header = file_get_contents($file['tmp_name'], false, null, null, 4);
|
1133 |
+
if( $header !== "\x00\x01\x00\x00" && $header !== "true" && $header !== "typ1" )
|
1134 |
+
die( json_encode( array('error' => "The uploaded file is not a TrueType font") ) );
|
1135 |
+
//-----
|
1136 |
+
|
1137 |
+
if( move_uploaded_file( $file['tmp_name'], "$upload_dir/$file_name" ) ){
|
1138 |
+
if(realpath( "$upload_dir/$file_name" ))
|
1139 |
+
$data = array('files' => $file );
|
1140 |
+
else
|
1141 |
+
$data = array('error' => "Unable to copy the file to the font folder: $upload_dir");
|
1142 |
+
}
|
1143 |
+
|
1144 |
+
die( json_encode( $data ) );
|
1145 |
+
}
|
1146 |
+
}
|
1147 |
+
|
1148 |
+
/**
|
1149 |
+
* AJAX загрузка google
|
1150 |
+
*
|
1151 |
+
*/
|
1152 |
+
public function apt_api_google() {
|
1153 |
+
|
1154 |
+
if ( ! wp_verify_nonce( $_POST['nonce'], 'apt_api' ) ) {
|
1155 |
+
die( 'Error: Invalid request.' );
|
1156 |
+
}
|
1157 |
+
if ( isset( $_POST['query'] ) )
|
1158 |
+
{
|
1159 |
+
$query = $_POST['query'];
|
1160 |
+
$google_key = WAPT_Plugin::app()->getOption('google_apikey');
|
1161 |
+
$google_cse = WAPT_Plugin::app()->getOption('google_cse');
|
1162 |
+
|
1163 |
+
if ( isset( $_POST['page'] ) )
|
1164 |
+
$page = $_POST['page'];
|
1165 |
+
else
|
1166 |
+
$page = 1;
|
1167 |
+
|
1168 |
+
$start = (($page-1)*10) + 1;
|
1169 |
+
$url = "https://www.googleapis.com/customsearch/v1?searchType=image&start={$start}&q=".urlencode($query)."&key={$google_key}&cx={$google_cse}";
|
1170 |
+
|
1171 |
+
// Check limits
|
1172 |
+
$limit = WAPT_Plugin::app()->getOption('google_limit');
|
1173 |
+
if(!$limit) WAPT_Plugin::app()->updateOption('google_limit', array('expires'=>time(), 'count'=>10));
|
1174 |
+
if(time()-$limit['expires'] > 3600) //1 hour - 3600 sec
|
1175 |
+
{
|
1176 |
+
$limit['expires'] = time();
|
1177 |
+
$limit['count'] = 10;
|
1178 |
+
WAPT_Plugin::app()->updateOption('google_limit', $limit);
|
1179 |
+
}
|
1180 |
+
|
1181 |
+
if(!WAPT_Plugin::app()->premium->is_active() && !WAPT_Plugin::app()->premium->is_activate()) {
|
1182 |
+
if ( $limit['count'] < 1 ) {
|
1183 |
+
die( sprintf( __( 'You have reached the limit at the moment. Try again in an 1 hour or <a href="%s">Upgrade to Premium</a>', 'apt' ), WAPT_Plugin::app()->get_support()->get_pricing_url( true, 'license_page' ) ) );
|
1184 |
+
}
|
1185 |
+
$limit['count'] --;
|
1186 |
+
}
|
1187 |
+
|
1188 |
+
if($start === 1) WAPT_Plugin::app()->updateOption('google_limit', $limit);
|
1189 |
+
|
1190 |
+
$response = wp_remote_get( $url, [ 'timeout' => 100 ] );
|
1191 |
+
if ( is_wp_error( $response ) ) {
|
1192 |
+
die( 'Error: ' . $response->get_error_message() );
|
1193 |
+
}
|
1194 |
+
|
1195 |
+
echo $response['body'];
|
1196 |
+
|
1197 |
+
exit;
|
1198 |
+
}
|
1199 |
+
}
|
1200 |
+
|
1201 |
+
/**
|
1202 |
+
* Проверка API ключей
|
1203 |
+
*
|
1204 |
+
*/
|
1205 |
+
public function apt_check_api_key() {
|
1206 |
+
|
1207 |
+
if ( ! wp_verify_nonce( $_POST['nonce'], 'check-api-key' ) ) {
|
1208 |
+
die( 'Error: Invalid request.' );
|
1209 |
+
}
|
1210 |
+
if ( isset( $_POST['provider'] ) && isset( $_POST['key'] ) && isset( $_POST['key2'] ) )
|
1211 |
+
{
|
1212 |
+
$provider = $_POST['provider'];
|
1213 |
+
$key = $_POST['key'];
|
1214 |
+
$cx = $_POST['key2'];
|
1215 |
+
switch ($provider){
|
1216 |
+
case "google":
|
1217 |
+
$url = "https://www.googleapis.com/customsearch/v1?q=cat&key={$key}&cx={$cx}";
|
1218 |
+
|
1219 |
+
$response = wp_remote_get( $url, [ 'timeout' => 100 ] );
|
1220 |
+
if ( is_wp_error( $response ) ) {
|
1221 |
+
die( 'Error: ' . $response->get_error_message() );
|
1222 |
+
}
|
1223 |
+
$result = json_decode( $response['body']);
|
1224 |
+
echo !isset($result->error->errors) ? true : false;
|
1225 |
+
break;
|
1226 |
+
}
|
1227 |
+
exit;
|
1228 |
+
}
|
1229 |
+
}
|
1230 |
+
|
1231 |
+
public function check_api_notice($notices, $plugin_name)
|
1232 |
+
{
|
1233 |
+
// Если экшен вызывал не этот плагин, то не выводим это уведомления
|
1234 |
+
if ( $plugin_name != WAPT_Plugin::app()->getPluginName() ) {
|
1235 |
+
return $notices;
|
1236 |
+
}
|
1237 |
+
// Получаем заголовок плагина
|
1238 |
+
$plugin_title = WAPT_Plugin::app()->getPluginTitle();
|
1239 |
+
|
1240 |
+
if(!WAPT_Plugin::app()->getOption( 'google_apikey') && !WAPT_Plugin::app()->getOption( 'google_cse') )
|
1241 |
+
{
|
1242 |
+
// Задаем текст уведомления
|
1243 |
+
$notice_text = '<p><b>'.$plugin_title.':</b> <br>' . sprintf(__( "To download images from Google, specify Google API keys in the <a href='%s'>settings</a>.", 'apt' ), admin_url('admin.php?page=wapt_settings-wbcr_apt'))."</p>";
|
1244 |
+
|
1245 |
+
// Задаем настройки уведомления
|
1246 |
+
$notices[] = [
|
1247 |
+
'id' => 'apt_check_api',
|
1248 |
+
//error, success, warning
|
1249 |
+
'type' => 'warning',
|
1250 |
+
'dismissible' => true,
|
1251 |
+
// На каких страницах показывать уведомление ('plugins', 'dashboard', 'edit')
|
1252 |
+
'where' => array('plugins', 'dashboard', 'edit'),
|
1253 |
+
// Через какое время уведомление снова появится?
|
1254 |
+
'dismiss_expires' => 0,
|
1255 |
+
'text' => $notice_text,
|
1256 |
+
'classes' => array()
|
1257 |
+
];
|
1258 |
+
}
|
1259 |
+
return $notices;
|
1260 |
+
}
|
1261 |
+
|
1262 |
+
public function show_about_notice($notices, $plugin_name)
|
1263 |
+
{
|
1264 |
+
// Если экшен вызывал не этот плагин, то не выводим это уведомления
|
1265 |
+
if ( $plugin_name != WAPT_Plugin::app()->getPluginName() ) {
|
1266 |
+
return $notices;
|
1267 |
+
}
|
1268 |
+
// Получаем заголовок плагина
|
1269 |
+
$plugin_title = WAPT_Plugin::app()->getPluginTitle();
|
1270 |
+
|
1271 |
+
$notice_text = '<p><b>'.$plugin_title.':</b> ' .
|
1272 |
+
sprintf(__( "What's new in version 3.7.0? Find out from <a href='%s'>the article</a> on our website.", 'apt' ), 'https://cm-wp.com/auto-featured-image-from-title/')."</p>";
|
1273 |
+
$notices[] = [
|
1274 |
+
'id' => 'apt_show_about_370',
|
1275 |
+
//error, success, warning
|
1276 |
+
'type' => 'info',
|
1277 |
+
'dismissible' => true,
|
1278 |
+
// На каких страницах показывать уведомление ('plugins', 'dashboard', 'edit')
|
1279 |
+
'where' => array('plugins', 'dashboard', 'edit'),
|
1280 |
+
// Через какое время уведомление снова появится?
|
1281 |
+
'dismiss_expires' => 0,
|
1282 |
+
'text' => $notice_text,
|
1283 |
+
'classes' => array()
|
1284 |
+
];
|
1285 |
+
return $notices;
|
1286 |
+
}
|
1287 |
+
/**
|
1288 |
+
* Получение списка шрифтов из папок
|
1289 |
+
*
|
1290 |
+
* @return array
|
1291 |
+
*/
|
1292 |
+
public static function get_fonts() {
|
1293 |
+
$upload_dir = wp_upload_dir();
|
1294 |
+
$upload_dir_fonts = $upload_dir['basedir']."/apt_fonts";
|
1295 |
+
$plugin_dir_fonts = WAPT_PLUGIN_DIR."/fonts";
|
1296 |
+
$fonts = array();
|
1297 |
+
|
1298 |
+
$fonts[] = array( 'title' => __('Standard','apt'), 'type' => 'group');
|
1299 |
+
$files = scandir($plugin_dir_fonts);
|
1300 |
+
foreach ( $files as $file ) {
|
1301 |
+
if($file == '.' || $file == '..') continue;
|
1302 |
+
$name = pathinfo($plugin_dir_fonts.'/'.$file);
|
1303 |
+
$name = $name['filename'];
|
1304 |
+
$fonts[] = array( 'value' => $file, 'title' => $name);
|
1305 |
+
}
|
1306 |
+
|
1307 |
+
if(is_dir( $upload_dir_fonts )) $files = scandir($upload_dir_fonts);
|
1308 |
+
if(count($files) && AutoPostThumbnails::instance()->is_premium()) {
|
1309 |
+
$fonts[] = array( 'title' => __('Uploaded','apt'), 'type' => 'group');
|
1310 |
+
foreach ( $files as $file ) {
|
1311 |
+
if ( $file == '.' || $file == '..' ) {
|
1312 |
+
continue;
|
1313 |
+
}
|
1314 |
+
$name = pathinfo( $upload_dir_fonts . '/' . $file );
|
1315 |
+
$name = $name['filename'];
|
1316 |
+
$fonts[] = array( 'value' => $file, 'title' => $name );
|
1317 |
+
}
|
1318 |
+
}
|
1319 |
+
|
1320 |
+
return $fonts;
|
1321 |
+
|
1322 |
+
}
|
1323 |
+
|
1324 |
+
/**
|
1325 |
+
* Генерация изображения с текстом.
|
1326 |
+
* Если $pathToSave задан, то файл сохранится по этому пути.
|
1327 |
+
*
|
1328 |
+
* @param string $text
|
1329 |
+
* @param string $pathToSave
|
1330 |
+
* @param string $format
|
1331 |
+
* @param int $width
|
1332 |
+
* @param int $height
|
1333 |
+
*
|
1334 |
+
* @return WAPT_Image
|
1335 |
+
*/
|
1336 |
+
public static function generate_image_with_text($text, $pathToSave = '', $format = 'jpg', $width = 800, $height = 600) {
|
1337 |
+
$font = WAPT_PLUGIN_DIR."/fonts/Arial.ttf";
|
1338 |
+
$font_size = WAPT_Plugin::app()->getOption( 'font-size', 25);
|
1339 |
+
$font_color = WAPT_Plugin::app()->getOption( 'font-color', "#ffffff");
|
1340 |
+
$before_text = '';
|
1341 |
+
$after_text = '';
|
1342 |
+
$shadow = WAPT_Plugin::app()->getOption( 'shadow', 0);
|
1343 |
+
if(!$shadow)
|
1344 |
+
$shadow_color = '';
|
1345 |
+
else
|
1346 |
+
$shadow_color = WAPT_Plugin::app()->getOption( 'shadow-color', "#ffffff");
|
1347 |
+
|
1348 |
+
$background_type = "color";
|
1349 |
+
$background = WAPT_Plugin::app()->getOption( 'background-color', "#ff6262");
|
1350 |
+
|
1351 |
+
$text_transform = WAPT_Plugin::app()->getOption( 'text-transform', "no");;
|
1352 |
+
switch($text_transform) {
|
1353 |
+
case 'upper':
|
1354 |
+
$text = strtoupper( $text );
|
1355 |
+
break;
|
1356 |
+
case 'lower':
|
1357 |
+
$text = strtolower( $text );
|
1358 |
+
break;
|
1359 |
+
}
|
1360 |
+
|
1361 |
+
$text_crop = WAPT_Plugin::app()->getOption( 'text-crop', 100);
|
1362 |
+
if($text_crop > 0) {
|
1363 |
+
if ( strlen($text) > $text_crop) {
|
1364 |
+
$temp = substr( $text, 0, $text_crop);
|
1365 |
+
$text = substr( $temp, 0, strrpos( $temp, ' ' ) );
|
1366 |
+
}
|
1367 |
+
|
1368 |
+
}
|
1369 |
+
|
1370 |
+
$align = 'center';
|
1371 |
+
$valign = 'center';
|
1372 |
+
$padding_tb = 15;
|
1373 |
+
$padding_lr = 15;
|
1374 |
+
$line_spacing = WAPT_Plugin::app()->getOption( 'text-line-spacing', 1.5);
|
1375 |
+
|
1376 |
+
$params = array(
|
1377 |
+
'text' => $text,
|
1378 |
+
'pathToSave' => $pathToSave,
|
1379 |
+
'format' => $format,
|
1380 |
+
'width' => $width,
|
1381 |
+
'height' => $height,
|
1382 |
+
);
|
1383 |
+
$image = new WAPT_Image( $width, $height, $background, $font, $font_size, $font_color );
|
1384 |
+
$image->params = $params;
|
1385 |
+
$image->setPadding( $padding_lr, $padding_tb );
|
1386 |
+
$image->write_text( $before_text.$text.$after_text, '', '', '', $align, $valign,$line_spacing, $shadow_color );
|
1387 |
+
if(!empty($pathToSave)) $image->save( $pathToSave, 100, $format );
|
1388 |
+
|
1389 |
+
return $image;
|
1390 |
+
|
1391 |
+
}
|
1392 |
+
/**
|
1393 |
+
* Генерация изображения с текстом.
|
1394 |
+
* Если $pathToSave задан, то файл сохранится по этому пути.
|
1395 |
+
*
|
1396 |
+
* @param integer $post_id
|
1397 |
+
*
|
1398 |
+
* @return integer $thumb_id
|
1399 |
+
*/
|
1400 |
+
public function generate_and_attachment($post_id) {
|
1401 |
+
$format = WAPT_Plugin::app()->getOption( "image-type", "jpg" );
|
1402 |
+
switch($format)
|
1403 |
+
{
|
1404 |
+
case 'png':
|
1405 |
+
$extension = 'png';
|
1406 |
+
$mime_type = "image/png";
|
1407 |
+
break;
|
1408 |
+
case 'jpg':
|
1409 |
+
case 'jpeg':
|
1410 |
+
default:
|
1411 |
+
$extension = 'jpg';
|
1412 |
+
$mime_type = "image/jpeg";
|
1413 |
+
break;
|
1414 |
+
}
|
1415 |
+
$post = get_post( $post_id, 'OBJECT' );
|
1416 |
+
|
1417 |
+
$uploads = wp_upload_dir( current_time( 'mysql' ) );
|
1418 |
+
|
1419 |
+
// Generate unique file name
|
1420 |
+
$filename = "wapt_image_{$post_id}.{$extension}";
|
1421 |
+
$filename = wp_unique_filename( $uploads['path'], $filename );
|
1422 |
+
|
1423 |
+
// Move the file to the uploads dir
|
1424 |
+
$image = apply_filters('wapt/generate/image', $this->generate_image_with_text($post->post_title, $uploads['path'] . "/$filename", $extension), $post->post_title, $uploads['path'] . "/$filename", $extension);
|
1425 |
+
|
1426 |
+
if(file_exists( $uploads['path'] . "/$filename")) {
|
1427 |
+
// Compute the URL
|
1428 |
+
$file_url = $uploads['url'] . "/$filename";
|
1429 |
+
$file_path = $uploads['path'] . "/$filename";
|
1430 |
+
|
1431 |
+
// Construct the attachment array
|
1432 |
+
$attachment = [
|
1433 |
+
'post_mime_type' => $mime_type,
|
1434 |
+
'guid' => $file_url,
|
1435 |
+
'post_parent' => $post_id,
|
1436 |
+
'post_title' => $post->post_title,
|
1437 |
+
'post_content' => '',
|
1438 |
+
];
|
1439 |
+
|
1440 |
+
$thumb_id = wp_insert_attachment( $attachment, $file_path, $post_id );
|
1441 |
+
if ( ! is_wp_error( $thumb_id ) ) {
|
1442 |
+
require_once( ABSPATH . '/wp-admin/includes/image.php' );
|
1443 |
+
|
1444 |
+
// Added fix by misthero as suggested
|
1445 |
+
wp_update_attachment_metadata( $thumb_id, wp_generate_attachment_metadata( $thumb_id, $file_path ) );
|
1446 |
+
update_attached_file( $thumb_id, $file_path );
|
1447 |
+
return $thumb_id;
|
1448 |
+
}
|
1449 |
+
}
|
1450 |
+
return 0;
|
1451 |
+
|
1452 |
+
}
|
1453 |
}
|
includes/class-wapt-image.php
ADDED
@@ -0,0 +1,450 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Exit if accessed directly
|
4 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
5 |
+
exit;
|
6 |
+
}
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Class for image processing
|
10 |
+
*
|
11 |
+
* @author Artem Prikhodko <webtemyk@yandex.ru>
|
12 |
+
* @copyright (c) 2020 Webraftic Ltd
|
13 |
+
* @version 1.0
|
14 |
+
*/
|
15 |
+
|
16 |
+
class WAPT_Image {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @see self::app()
|
20 |
+
* @var WAPT_Image
|
21 |
+
*/
|
22 |
+
private static $app;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* @var integer
|
26 |
+
*/
|
27 |
+
public $width;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* @var integer
|
31 |
+
*/
|
32 |
+
public $height;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @var string
|
36 |
+
*/
|
37 |
+
private $font_path = WAPT_PLUGIN_DIR."/fonts/arial.ttf";
|
38 |
+
|
39 |
+
/**
|
40 |
+
* @var integer
|
41 |
+
*/
|
42 |
+
public $font_size;
|
43 |
+
|
44 |
+
/**
|
45 |
+
* @var string|array
|
46 |
+
*/
|
47 |
+
public $font_color;
|
48 |
+
|
49 |
+
/**
|
50 |
+
* @var string
|
51 |
+
*/
|
52 |
+
public $text;
|
53 |
+
|
54 |
+
/**
|
55 |
+
* @var string
|
56 |
+
*/
|
57 |
+
public $background;
|
58 |
+
|
59 |
+
/**
|
60 |
+
* @var string
|
61 |
+
*/
|
62 |
+
private $reference_text = 'abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ-!?.,_"[]';
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @var Resource
|
66 |
+
*/
|
67 |
+
private $image;
|
68 |
+
|
69 |
+
/**
|
70 |
+
* @var string
|
71 |
+
*/
|
72 |
+
public $padding_left = 0;
|
73 |
+
|
74 |
+
/**
|
75 |
+
* @var string
|
76 |
+
*/
|
77 |
+
public $padding_top = 0;
|
78 |
+
|
79 |
+
/**
|
80 |
+
* @var string
|
81 |
+
*/
|
82 |
+
public $line_spacing = 1;
|
83 |
+
|
84 |
+
/**
|
85 |
+
* @var array
|
86 |
+
*/
|
87 |
+
public $params = array();
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @return
|
91 |
+
*/
|
92 |
+
public function getImage() {
|
93 |
+
return $this->image;
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* @param string $padding_left
|
98 |
+
* @param string $padding_top
|
99 |
+
*/
|
100 |
+
public function setPadding( $padding_left, $padding_top ) {
|
101 |
+
$this->padding_left = $padding_left;
|
102 |
+
$this->padding_top = $padding_top;
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* @param int $width
|
107 |
+
*/
|
108 |
+
public function setWidth( $width ) {
|
109 |
+
$this->width = $width;
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* @param int $height
|
114 |
+
*/
|
115 |
+
public function setHeight( $height ) {
|
116 |
+
$this->height = $height;
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* @param string $font_path
|
121 |
+
*/
|
122 |
+
public function setFontPath( $font_path ) {
|
123 |
+
if(file_exists( $font_path)) $this->font_path = $font_path;
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* {PLUGIN_DIR}/fonts/{font}.ttf
|
128 |
+
*
|
129 |
+
* @param string $font
|
130 |
+
*/
|
131 |
+
public function setFont( $font ) {
|
132 |
+
$this->font_path = WAPT_PLUGIN_DIR."/fonts/{$font}.ttf";
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* @param int $font_size
|
137 |
+
*/
|
138 |
+
public function setFontSize( $font_size ) {
|
139 |
+
$this->font_size = $font_size;
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* @param array|string $font_color
|
144 |
+
*/
|
145 |
+
public function setFontColor( $font_color ) {
|
146 |
+
$this->font_color = $font_color;
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* @param string $text
|
151 |
+
*/
|
152 |
+
public function setText($text) {
|
153 |
+
$this->text = $text;
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* @param array|string $background
|
158 |
+
*/
|
159 |
+
public function setBackground( $background ) {
|
160 |
+
$this->background = $background;
|
161 |
+
}
|
162 |
+
|
163 |
+
/**
|
164 |
+
* Конструктор
|
165 |
+
*
|
166 |
+
* @param string $width
|
167 |
+
* @param string $height
|
168 |
+
* @param array|string $background = '#ffffff'
|
169 |
+
* @param string $font = ''
|
170 |
+
* @param integer $font_size = 0
|
171 |
+
* @param string $font_color = '#000000'
|
172 |
+
*
|
173 |
+
*/
|
174 |
+
public function __construct( $width, $height, $background = '#ffffff', $font = '', $font_size = 0, $font_color = '#000000' ) {
|
175 |
+
self::$app = $this;
|
176 |
+
|
177 |
+
$this->width = $width;
|
178 |
+
$this->height = $height;
|
179 |
+
$this->background = $background;
|
180 |
+
$this->font_path = $font;
|
181 |
+
$this->font_size = $font_size;
|
182 |
+
$this->font_color = $font_color;
|
183 |
+
|
184 |
+
$this->image = $this->create($width, $height, $background);
|
185 |
+
}
|
186 |
+
|
187 |
+
/**
|
188 |
+
* Статический метод для быстрого доступа к интерфейсу плагина.
|
189 |
+
*
|
190 |
+
* @return WAPT_Image
|
191 |
+
*/
|
192 |
+
public static function app() {
|
193 |
+
return self::$app;
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Create image
|
198 |
+
*
|
199 |
+
* @return Resource
|
200 |
+
*/
|
201 |
+
public function create($width, $height, $background = '#ffffff') {
|
202 |
+
if(is_numeric( $background)) //image
|
203 |
+
{
|
204 |
+
$image = wp_get_attachment_metadata( $background);
|
205 |
+
if($image) {
|
206 |
+
$upload_dir = wp_upload_dir();
|
207 |
+
$file_path = $upload_dir['basedir'].'/'.$image['file'];
|
208 |
+
$file_type = wp_check_filetype( $file_path );
|
209 |
+
switch ( $file_type['type'] ) {
|
210 |
+
case 'image/jpeg':
|
211 |
+
$im = imagecreatefromjpeg( $file_path );
|
212 |
+
$this->setWidth( $image['width']);
|
213 |
+
$this->setHeight( $image['height']);
|
214 |
+
break;
|
215 |
+
|
216 |
+
case 'image/png':
|
217 |
+
$im = imagecreatefrompng( $file_path );
|
218 |
+
imagesavealpha($im, true);
|
219 |
+
$this->setWidth( $image['width']);
|
220 |
+
$this->setHeight( $image['height']);
|
221 |
+
break;
|
222 |
+
|
223 |
+
default:
|
224 |
+
$im = $this->create( $width, $height);
|
225 |
+
break;
|
226 |
+
}
|
227 |
+
}
|
228 |
+
else {
|
229 |
+
$im = $this->create( $width, $height);
|
230 |
+
}
|
231 |
+
}
|
232 |
+
else { //color
|
233 |
+
$im = imagecreatetruecolor($width, $height);
|
234 |
+
$color = $this->color_hex_to_rgb( $background);
|
235 |
+
$bg_color = imagecolorallocate($im, $color['r'], $color['g'], $color['b']);
|
236 |
+
imagefill($im, 0, 0, $bg_color);
|
237 |
+
}
|
238 |
+
|
239 |
+
return $im;
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* Convert hex color to RGB
|
244 |
+
*
|
245 |
+
* @param string $hex
|
246 |
+
* @return array
|
247 |
+
*/
|
248 |
+
private function color_hex_to_rgb($hex = '') {
|
249 |
+
if(empty($hex)) $hex = $this->font_color;
|
250 |
+
list($r, $g, $b) = sscanf($hex, "#%02x%02x%02x");
|
251 |
+
return array(
|
252 |
+
'r' => $r,
|
253 |
+
'g' => $g,
|
254 |
+
'b' => $b,
|
255 |
+
);
|
256 |
+
}
|
257 |
+
|
258 |
+
/**
|
259 |
+
* Get width of the letter in the font.
|
260 |
+
*
|
261 |
+
* return array(
|
262 |
+
* 'width' => int
|
263 |
+
* 'height' => int
|
264 |
+
* );
|
265 |
+
* OR false
|
266 |
+
*
|
267 |
+
* @return array|false
|
268 |
+
*/
|
269 |
+
public function get_font_char_size()
|
270 |
+
{
|
271 |
+
if($this->font_path !== '' && $this->font_size !== 0) {
|
272 |
+
|
273 |
+
$text = !empty($this->text) ? $this->text : $this->reference_text;
|
274 |
+
//$txt_image = $this->create( 500, 500 );
|
275 |
+
$box = imagettfbbox($this->font_size, 0, $this->font_path, $text);
|
276 |
+
$width = $box[2]-$box[0];
|
277 |
+
$height = $box[1]-$box[7];
|
278 |
+
$result = array(
|
279 |
+
'width' => ceil($width / strlen( $text )), //средняя ширина одного символа
|
280 |
+
'height' => $height, //высота одного символа
|
281 |
+
);
|
282 |
+
|
283 |
+
return $result;
|
284 |
+
}
|
285 |
+
else {
|
286 |
+
return false;
|
287 |
+
}
|
288 |
+
}
|
289 |
+
|
290 |
+
/**
|
291 |
+
* Write text on the image
|
292 |
+
*
|
293 |
+
* @param string $text
|
294 |
+
* @param string $font = ''
|
295 |
+
* @param integer $font_size = 0
|
296 |
+
* @param string $font_color = '#000000'
|
297 |
+
* @param string $align
|
298 |
+
* @param string $valign
|
299 |
+
* @param float $line_spacing
|
300 |
+
* @param string $shadow_color
|
301 |
+
*
|
302 |
+
* @return bool
|
303 |
+
*/
|
304 |
+
public function write_text($text, $font = '', $font_size = '', $font_color = '', $align = 'left', $valign = 'top', $line_spacing = '1.5', $shadow_color = '')
|
305 |
+
{
|
306 |
+
if(!empty($text)) {
|
307 |
+
if(empty($font)) $font = $this->font_path;
|
308 |
+
if(empty($font_size)) $font_size = $this->font_size;
|
309 |
+
if(empty($font_color)) $font_color = $this->font_color;
|
310 |
+
$this->setText( $text);
|
311 |
+
$char_size = $this->get_font_char_size();
|
312 |
+
|
313 |
+
$pad_left = (int)$this->padding_left;
|
314 |
+
$pad_top = (int)$this->padding_top;
|
315 |
+
|
316 |
+
$color = $this->color_hex_to_rgb($font_color);
|
317 |
+
$font_color = imagecolorallocate($this->image, $color['r'], $color['g'], $color['b']);
|
318 |
+
if(!empty($shadow_color)) {
|
319 |
+
$color = $this->color_hex_to_rgb( $shadow_color );
|
320 |
+
$shadow_color = imagecolorallocate( $this->image, $color['r'], $color['g'], $color['b'] );
|
321 |
+
}
|
322 |
+
$line_spacing = (float)$line_spacing;
|
323 |
+
|
324 |
+
$width = $this->width - $pad_left*2;
|
325 |
+
$height = $this->height - $pad_top*2;
|
326 |
+
|
327 |
+
$chars_per_line = ceil($width/$char_size['width'] *0.9); //count of chars per line
|
328 |
+
$text2 = wordwrap ($text, $chars_per_line, "\n", false);
|
329 |
+
$text2 = str_replace( "[br]", "\n", $text2);
|
330 |
+
$line_count = count(explode("\n",$text2));
|
331 |
+
$lines = explode("\n",$text2);
|
332 |
+
for ($i=0; $i<$line_count; $i++) {
|
333 |
+
$box = imagettfbbox( $font_size, 0, $font, $this->commas_cut( $lines[$i] ) );
|
334 |
+
$w = $box[4] - $box[6];
|
335 |
+
if($w > $width) { $font_size--; $i=0; }
|
336 |
+
|
337 |
+
}
|
338 |
+
|
339 |
+
$text_height = $line_count * $char_size['height'];
|
340 |
+
while ( $text_height > $height || ($height-$text_height <= (2*$pad_left))) {
|
341 |
+
$this->font_size--;
|
342 |
+
$font_size--;
|
343 |
+
$char_size = $this->get_font_char_size();
|
344 |
+
if(!$char_size) break;
|
345 |
+
$line_width = ceil($width/$char_size['width'] * 0.9); //count of chars per line
|
346 |
+
$text2 = wordwrap ( $text, (int)$line_width, "\n", false);
|
347 |
+
$text2 = str_replace( "[br]", "\n", $text2);
|
348 |
+
$line_count = count(explode("\n",$text2));
|
349 |
+
$text_height = $line_count * ($char_size['height']*$line_spacing);
|
350 |
+
}
|
351 |
+
$width = $this->width;
|
352 |
+
$height = $this->height;
|
353 |
+
|
354 |
+
$lines = explode("\n",$text2);
|
355 |
+
if($valign == "bottom") $lines = array_reverse( $lines);
|
356 |
+
|
357 |
+
foreach ( $lines as $key => $line ) {
|
358 |
+
$box = imagettfbbox( $font_size, 0, $font, $this->commas_cut( $line ) );
|
359 |
+
$h = $char_size['height'] * count( $lines ) + ($line_spacing-1)*$char_size['height'] * count( $lines );
|
360 |
+
$w = $box[4] - $box[6];
|
361 |
+
$num = $line_spacing*$key;
|
362 |
+
|
363 |
+
switch ($align.'-'.$valign)
|
364 |
+
{
|
365 |
+
case 'left-top':
|
366 |
+
$x = $pad_left;
|
367 |
+
$y = ceil($pad_top + $char_size['height'] + ($char_size['height']*$num));
|
368 |
+
break;
|
369 |
+
case 'left-center':
|
370 |
+
$x = $pad_left;
|
371 |
+
$y = ceil(($height/2 - $h/2) + $char_size['height'] + ($char_size['height']*$num));
|
372 |
+
break;
|
373 |
+
case 'left-bottom':
|
374 |
+
$x = $pad_left;
|
375 |
+
$y = ceil(($height-$pad_top)-($char_size['height']*$num));
|
376 |
+
break;
|
377 |
+
//-------------------------
|
378 |
+
case 'center-top':
|
379 |
+
$x = ceil($width/2-$w/2);
|
380 |
+
$y = ceil($pad_top + $char_size['height'] + ($char_size['height']*$num));
|
381 |
+
break;
|
382 |
+
case 'center-center':
|
383 |
+
$x = ceil($width/2-$w/2);
|
384 |
+
$y = ceil(($height/2 - $h/2) + $char_size['height'] + ($char_size['height']*$num));
|
385 |
+
break;
|
386 |
+
case 'center-bottom':
|
387 |
+
$x = ceil($width/2-$w/2);
|
388 |
+
$y = ceil(($height-$pad_top)-($char_size['height']*$num));
|
389 |
+
break;
|
390 |
+
//-------------------------
|
391 |
+
case 'right-top':
|
392 |
+
$x = $width - $w - $pad_left;
|
393 |
+
$y = ceil($pad_top + $char_size['height'] + ($char_size['height']*$num));
|
394 |
+
break;
|
395 |
+
case 'right-center':
|
396 |
+
$x = $width - $w - $pad_left;
|
397 |
+
$y = ceil(($height/2 - $h/2) + $char_size['height'] + ($char_size['height']*$num));
|
398 |
+
break;
|
399 |
+
case 'right-bottom':
|
400 |
+
$x = $width - $w - $pad_left;
|
401 |
+
$y = ceil(($height-$pad_top)-($char_size['height']*$num));
|
402 |
+
break;
|
403 |
+
}
|
404 |
+
//shadow
|
405 |
+
if(!empty($shadow_color)) imagettftext($this->image, $font_size, 0, $x+2, $y+2, $shadow_color, $font, trim($line));
|
406 |
+
|
407 |
+
//text
|
408 |
+
imagettftext($this->image, $font_size, 0, (int)$x, (int)$y, $font_color, $font, trim($line));
|
409 |
+
//imagerectangle($this->image, 0,$y,$width,$y, 1);
|
410 |
+
//imagerectangle($this->image, 0,$height/2,$width,$height/2, 2);
|
411 |
+
}
|
412 |
+
|
413 |
+
return true;
|
414 |
+
}
|
415 |
+
else {
|
416 |
+
return false;
|
417 |
+
}
|
418 |
+
}
|
419 |
+
/**
|
420 |
+
* Save image
|
421 |
+
*
|
422 |
+
* @param string $text
|
423 |
+
*
|
424 |
+
* @return string
|
425 |
+
*/
|
426 |
+
public function commas_cut($text) {
|
427 |
+
return str_replace( ',', '', $text);
|
428 |
+
}
|
429 |
+
|
430 |
+
/**
|
431 |
+
* Save image
|
432 |
+
*
|
433 |
+
* @param string $path
|
434 |
+
* @param integer $quality
|
435 |
+
* @param string $format
|
436 |
+
*/
|
437 |
+
public function save($path, $quality = 100, $format = 'jpg') {
|
438 |
+
switch (strtolower( $format))
|
439 |
+
{
|
440 |
+
case 'jpg':
|
441 |
+
case 'jpeg':
|
442 |
+
imagejpeg($this->image, $path, $quality);
|
443 |
+
break;
|
444 |
+
case 'png':
|
445 |
+
imagepng($this->image, $path);
|
446 |
+
break;
|
447 |
+
}
|
448 |
+
}
|
449 |
+
|
450 |
+
}
|
includes/class-wapt-plugin.php
CHANGED
@@ -13,11 +13,11 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
13 |
* @version 1.0
|
14 |
*/
|
15 |
|
16 |
-
class WAPT_Plugin extends
|
17 |
|
18 |
/**
|
19 |
* @see self::app()
|
20 |
-
* @var
|
21 |
*/
|
22 |
private static $app;
|
23 |
|
@@ -58,6 +58,7 @@ class WAPT_Plugin extends Wbcr_Factory421_Plugin {
|
|
58 |
add_filter( 'bulk_actions-edit-post', [ $this, 'register_bulk_action_generate'] );
|
59 |
add_filter( 'handle_bulk_actions-edit-post', [ $this, 'bulk_action_generate_handler'], 10, 3 );
|
60 |
add_action( 'admin_notices', [ $this, 'apt_bulk_action_admin_notice'] );
|
|
|
61 |
}
|
62 |
$this->global_scripts();
|
63 |
}
|
@@ -71,12 +72,30 @@ class WAPT_Plugin extends Wbcr_Factory421_Plugin {
|
|
71 |
* Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
|
72 |
* классам.
|
73 |
*
|
74 |
-
* @return
|
75 |
*/
|
76 |
public static function app() {
|
77 |
return self::$app;
|
78 |
}
|
79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
/**
|
81 |
* Регистрации класса активации/деактивации плагина
|
82 |
*/
|
@@ -138,7 +157,7 @@ class WAPT_Plugin extends Wbcr_Factory421_Plugin {
|
|
138 |
switch($doaction)
|
139 |
{
|
140 |
case 'apt_generate_thumb':
|
141 |
-
auto_post_thumbnails()->publish_post($post_id);
|
142 |
break;
|
143 |
case 'apt_delete_thumb':
|
144 |
delete_post_thumbnail($post_id);
|
@@ -146,7 +165,11 @@ class WAPT_Plugin extends Wbcr_Factory421_Plugin {
|
|
146 |
}
|
147 |
}
|
148 |
|
149 |
-
$redirect_to = add_query_arg(
|
|
|
|
|
|
|
|
|
150 |
|
151 |
return $redirect_to;
|
152 |
}
|
@@ -163,6 +186,17 @@ class WAPT_Plugin extends Wbcr_Factory421_Plugin {
|
|
163 |
$msg = __('Processed posts: ','apt').intval($data);
|
164 |
echo '<div id="message" class="updated"><p>'. $msg .'</p></div>';
|
165 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
/**
|
167 |
* Add filter on the Posts list tables.
|
168 |
*
|
@@ -216,37 +250,13 @@ class WAPT_Plugin extends Wbcr_Factory421_Plugin {
|
|
216 |
*/
|
217 |
public function add_filter_link($views)
|
218 |
{
|
219 |
-
$
|
220 |
-
|
221 |
-
|
222 |
-
array(
|
223 |
-
'key' => '_thumbnail_id',
|
224 |
-
'compare' => 'NOT EXISTS',
|
225 |
-
),
|
226 |
-
),
|
227 |
-
);
|
228 |
-
$my = new WP_Query($args);
|
229 |
$q = add_query_arg( array('apt_is_image' => '0', 'post_type' => 'post'), 'edit.php' );
|
230 |
-
$views['apt_filter'] = '<a href="'.$q.'">'.__('Without featured image','apt').'</a> ('.$
|
231 |
unset($my);
|
232 |
return $views;
|
233 |
|
234 |
}
|
235 |
-
|
236 |
-
/**
|
237 |
-
* Adding button fields
|
238 |
-
* @param \Elementor\Widget_Base $button
|
239 |
-
* @param array $args
|
240 |
-
*/
|
241 |
-
public function elementor_gallery_custom_button($button, $args)
|
242 |
-
{
|
243 |
-
$button->add_control( 'custom_button_type',
|
244 |
-
[
|
245 |
-
'label' => __( 'Add image from APT', 'apt' ),
|
246 |
-
'type' => \Elementor\Controls_Manager::BUTTON,
|
247 |
-
'text' => 'Add image',
|
248 |
-
'event' => 'apt:editor:gallery'
|
249 |
-
]
|
250 |
-
);
|
251 |
-
}
|
252 |
}
|
13 |
* @version 1.0
|
14 |
*/
|
15 |
|
16 |
+
class WAPT_Plugin extends Wbcr_Factory425_Plugin {
|
17 |
|
18 |
/**
|
19 |
* @see self::app()
|
20 |
+
* @var Wbcr_Factory425_Plugin
|
21 |
*/
|
22 |
private static $app;
|
23 |
|
58 |
add_filter( 'bulk_actions-edit-post', [ $this, 'register_bulk_action_generate'] );
|
59 |
add_filter( 'handle_bulk_actions-edit-post', [ $this, 'bulk_action_generate_handler'], 10, 3 );
|
60 |
add_action( 'admin_notices', [ $this, 'apt_bulk_action_admin_notice'] );
|
61 |
+
add_action( 'admin_notices', [ $this, 'update_admin_notice'] );
|
62 |
}
|
63 |
$this->global_scripts();
|
64 |
}
|
72 |
* Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
|
73 |
* классам.
|
74 |
*
|
75 |
+
* @return Wbcr_Factory425_Plugin
|
76 |
*/
|
77 |
public static function app() {
|
78 |
return self::$app;
|
79 |
}
|
80 |
|
81 |
+
/**
|
82 |
+
* Метод проверяет активацию премиум плагина и наличие действующего лицензионнного ключа
|
83 |
+
*
|
84 |
+
* @return bool
|
85 |
+
*/
|
86 |
+
public function is_premium()
|
87 |
+
{
|
88 |
+
if(
|
89 |
+
$this->premium->is_active() &&
|
90 |
+
$this->premium->is_activate() &&
|
91 |
+
is_plugin_active( "{$this->premium->get_setting('slug')}/{$this->premium->get_setting('slug')}.php" )
|
92 |
+
//$this->premium->is_install_package()
|
93 |
+
)
|
94 |
+
return true;
|
95 |
+
else
|
96 |
+
return false;
|
97 |
+
}
|
98 |
+
|
99 |
/**
|
100 |
* Регистрации класса активации/деактивации плагина
|
101 |
*/
|
157 |
switch($doaction)
|
158 |
{
|
159 |
case 'apt_generate_thumb':
|
160 |
+
$thumb = auto_post_thumbnails()->publish_post($post_id);
|
161 |
break;
|
162 |
case 'apt_delete_thumb':
|
163 |
delete_post_thumbnail($post_id);
|
165 |
}
|
166 |
}
|
167 |
|
168 |
+
$redirect_to = add_query_arg(
|
169 |
+
array(
|
170 |
+
'apt_bulk_action' => count( $post_ids ),
|
171 |
+
),
|
172 |
+
$redirect_to );
|
173 |
|
174 |
return $redirect_to;
|
175 |
}
|
186 |
$msg = __('Processed posts: ','apt').intval($data);
|
187 |
echo '<div id="message" class="updated"><p>'. $msg .'</p></div>';
|
188 |
}
|
189 |
+
/**
|
190 |
+
* Admin notice
|
191 |
+
*
|
192 |
+
*/
|
193 |
+
public function update_admin_notice()
|
194 |
+
{
|
195 |
+
if( defined( 'WAPTP_PLUGIN_VERSION') && str_replace( '.', '', WAPTP_PLUGIN_VERSION) < 130 ) {
|
196 |
+
$msg = __( 'To use premium features, update the <b>Auto Post Thumbnail Premium</b> plugin!', 'apt' );
|
197 |
+
echo '<div id="message" class="notice notice-warning is-dismissible"><p>' . $msg . '</p></div>';
|
198 |
+
}
|
199 |
+
}
|
200 |
/**
|
201 |
* Add filter on the Posts list tables.
|
202 |
*
|
250 |
*/
|
251 |
public function add_filter_link($views)
|
252 |
{
|
253 |
+
$query = auto_post_thumbnails()->get_posts_query(false, 'publish','post');
|
254 |
+
$posts = $query->post_count;
|
255 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
$q = add_query_arg( array('apt_is_image' => '0', 'post_type' => 'post'), 'edit.php' );
|
257 |
+
$views['apt_filter'] = '<a href="'.$q.'">'.__('Without featured image','apt').'</a> ('.$posts.')';
|
258 |
unset($my);
|
259 |
return $views;
|
260 |
|
261 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
}
|
includes/controls/class.color.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Color
|
4 |
+
*
|
5 |
+
* Main options:
|
6 |
+
* name => a name of the control
|
7 |
+
* value => a value to show in the control
|
8 |
+
* default => a default value of the control if the "value" option is not specified
|
9 |
+
*
|
10 |
+
* @author Artem Prihodko <webtemyk@yandex.ru>
|
11 |
+
* @copyright (c) 2020, Webcraftic Ltd
|
12 |
+
*
|
13 |
+
*/
|
14 |
+
|
15 |
+
// Exit if accessed directly
|
16 |
+
if( !defined('ABSPATH') ) {
|
17 |
+
exit;
|
18 |
+
}
|
19 |
+
|
20 |
+
if( !class_exists('Wapt_FactoryForms_ColorControl') ) {
|
21 |
+
|
22 |
+
class Wapt_FactoryForms_ColorControl extends Wbcr_FactoryForms423_Control {
|
23 |
+
|
24 |
+
public $type = 'wapt-color';
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Shows the html markup of the control.
|
28 |
+
*
|
29 |
+
* @since 1.0.0
|
30 |
+
* @return void
|
31 |
+
*/
|
32 |
+
public function html()
|
33 |
+
{
|
34 |
+
$name = $this->getNameOnForm();
|
35 |
+
$value = esc_attr($this->getValue());
|
36 |
+
|
37 |
+
if( !$value ) {
|
38 |
+
$value = '#ffffff';
|
39 |
+
}
|
40 |
+
?>
|
41 |
+
<script src="<?php echo WAPT_PLUGIN_URL;?>/admin/assets/js/jscolor.js"></script>
|
42 |
+
<style>
|
43 |
+
.wapt-jscolor
|
44 |
+
{
|
45 |
+
padding: 15px !important;
|
46 |
+
font-size: 16px !important;
|
47 |
+
cursor: pointer;
|
48 |
+
}
|
49 |
+
</style>
|
50 |
+
<div <?php $this->attrs() ?>>
|
51 |
+
<input type="text" readonly id="<?php echo $name; ?>" name="<?php echo $name; ?>" class="factory-input-text jscolor wapt-jscolor" value="<?php echo $value; ?>">
|
52 |
+
</div>
|
53 |
+
<?php
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
includes/controls/class.fonts.php
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Dropdown List of fonts and upload Control
|
5 |
+
*
|
6 |
+
* Main options:
|
7 |
+
* name => a name of the control
|
8 |
+
* value => a value to show in the control
|
9 |
+
* default => a default value of the control if the "value" option is not specified
|
10 |
+
* items => a callback to return items or an array of items to select
|
11 |
+
*
|
12 |
+
* @author Artem Prihodko <webtemyk@yandex.ru>
|
13 |
+
* @copyright (c) 2020, Webcraftic Ltd
|
14 |
+
*
|
15 |
+
* @package factory-forms
|
16 |
+
*/
|
17 |
+
|
18 |
+
// Exit if accessed directly
|
19 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
20 |
+
exit;
|
21 |
+
}
|
22 |
+
|
23 |
+
if ( ! class_exists( 'Wapt_FactoryForms_FontsControl' ) ) {
|
24 |
+
|
25 |
+
class Wapt_FactoryForms_FontsControl extends Wbcr_FactoryForms423_DropdownControl {
|
26 |
+
|
27 |
+
public $type = 'wapt-fonts';
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Shows the assets
|
31 |
+
*
|
32 |
+
* @since 1.0.0
|
33 |
+
* @return void
|
34 |
+
*/
|
35 |
+
public function assets() {
|
36 |
+
wp_enqueue_script( 'apt-upload-font', WAPT_PLUGIN_URL . '/admin/assets/js/upload-font.js', [], false, true );
|
37 |
+
wp_localize_script( 'apt-upload-font', 'wapt_upload_font', [ 'nonce' => wp_create_nonce( 'wapt_upload_font' ) ] );
|
38 |
+
?>
|
39 |
+
<style>
|
40 |
+
.wapt-upload-div
|
41 |
+
{
|
42 |
+
margin: 10px 0px;
|
43 |
+
display: inline;
|
44 |
+
vertical-align: middle;
|
45 |
+
margin-left: -5px !important;
|
46 |
+
}
|
47 |
+
.wapt-upload-button
|
48 |
+
{
|
49 |
+
height: 34px;
|
50 |
+
box-shadow: 1px 1px 5px -2px #8e8d8d;
|
51 |
+
border: 1px solid #ccc;
|
52 |
+
border-radius: 0px 3px 3px 0px;
|
53 |
+
}
|
54 |
+
.wapt-upload-loader
|
55 |
+
{
|
56 |
+
height: 34px;
|
57 |
+
display: inline;
|
58 |
+
margin-left: 5px !important;
|
59 |
+
}
|
60 |
+
.wapt-loader-invisible
|
61 |
+
{
|
62 |
+
display: none !important;
|
63 |
+
}
|
64 |
+
|
65 |
+
|
66 |
+
</style>
|
67 |
+
<?php
|
68 |
+
}
|
69 |
+
/**
|
70 |
+
* Shows the html markup of the control.
|
71 |
+
*
|
72 |
+
* @since 1.0.0
|
73 |
+
* @return void
|
74 |
+
*/
|
75 |
+
public function html() {
|
76 |
+
|
77 |
+
parent::addCssClass( 'factory-hidden');
|
78 |
+
parent::addCssClass( 'wapt-form-control');
|
79 |
+
parent::html();
|
80 |
+
|
81 |
+
$this->assets();
|
82 |
+
?>
|
83 |
+
<div class="wapt-upload-div">
|
84 |
+
<input type="file" accept=".ttf" id="wapt-font-file" style="display: none;">
|
85 |
+
<button id="wapt-upload-button" class="wapt-upload-button">Upload custom font</button>
|
86 |
+
<div id="wapt-upload-loader" class="wapt-upload-loader wapt-loader-invisible"><img src="<?php echo WAPT_PLUGIN_URL;?>/admin/assets/img/ajax-loader.gif" alt="" height="34"></div>
|
87 |
+
</div>
|
88 |
+
<?php
|
89 |
+
|
90 |
+
}
|
91 |
+
|
92 |
+
}
|
93 |
+
}
|
includes/controls/class.mediabutton.php
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Media Button
|
4 |
+
*
|
5 |
+
* Main options:
|
6 |
+
* name => a name of the control
|
7 |
+
* value => a value to show in the control
|
8 |
+
* default => a default value of the control if the "value" option is not specified
|
9 |
+
* text => a text to button
|
10 |
+
*
|
11 |
+
* @author Artem Prihodko <webtemyk@yandex.ru>
|
12 |
+
* @copyright (c) 2020, Webcraftic Ltd
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
|
16 |
+
// Exit if accessed directly
|
17 |
+
if( !defined('ABSPATH') ) {
|
18 |
+
exit;
|
19 |
+
}
|
20 |
+
|
21 |
+
if( !class_exists('Wapt_FactoryForms_MediaButtonControl') ) {
|
22 |
+
|
23 |
+
class Wapt_FactoryForms_MediaButtonControl extends Wbcr_FactoryForms423_Control {
|
24 |
+
|
25 |
+
public $type = 'wapt-mediabutton';
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Shows the html markup of the control.
|
29 |
+
*
|
30 |
+
* @since 1.0.0
|
31 |
+
* @return void
|
32 |
+
*/
|
33 |
+
public function html()
|
34 |
+
{
|
35 |
+
wp_enqueue_media();
|
36 |
+
|
37 |
+
$name = $this->getNameOnForm();
|
38 |
+
$value = esc_attr($this->getValue());
|
39 |
+
$button_text = esc_attr($this->options['text']);
|
40 |
+
$thumbnail_url = '';
|
41 |
+
$image_class = 'wapt-invisible';
|
42 |
+
|
43 |
+
if( !$value ) {
|
44 |
+
$value = 0;
|
45 |
+
$thumbnail_url = '';
|
46 |
+
}
|
47 |
+
else {
|
48 |
+
$thumbnail = wp_get_attachment_image_src((int)$value, 'thumbnail');
|
49 |
+
if(is_array( $thumbnail)) {
|
50 |
+
$thumbnail_url = $thumbnail[0];
|
51 |
+
$image_class = 'wapt-visible';
|
52 |
+
}
|
53 |
+
}
|
54 |
+
?>
|
55 |
+
<style>
|
56 |
+
.wapt-bg-image-thumb
|
57 |
+
{
|
58 |
+
margin: 10px 0px;
|
59 |
+
border-radius: 10px;
|
60 |
+
box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.5);
|
61 |
+
}
|
62 |
+
.wapt-invisible
|
63 |
+
{
|
64 |
+
display: none;
|
65 |
+
}
|
66 |
+
.wapt-visible
|
67 |
+
{
|
68 |
+
display: block;
|
69 |
+
}
|
70 |
+
</style>
|
71 |
+
<script lang="js">
|
72 |
+
jQuery(function ( $ ) {
|
73 |
+
|
74 |
+
var frame;
|
75 |
+
$(document).on('click', '#wapt-select-image', function ( event ) {
|
76 |
+
event.preventDefault();
|
77 |
+
if( frame ) {
|
78 |
+
frame.open();
|
79 |
+
return;
|
80 |
+
}
|
81 |
+
|
82 |
+
frame = wp.media({
|
83 |
+
//title : 'Выберите файл',
|
84 |
+
button : {
|
85 |
+
//text: 'Использовать этот файл'
|
86 |
+
},
|
87 |
+
multiple: false
|
88 |
+
});
|
89 |
+
frame.on('select', function () {
|
90 |
+
var attachment = frame.state().get('selection').first().toJSON();
|
91 |
+
var thumb = $('#wapt-bg-image-thumb');
|
92 |
+
$('#<?php echo $name; ?>').val(attachment.id);
|
93 |
+
thumb.attr('src', attachment.sizes.thumbnail.url);
|
94 |
+
thumb.removeClass('wapt-bg-image-invisible').addClass('wapt-visible');
|
95 |
+
|
96 |
+
});
|
97 |
+
frame.open();
|
98 |
+
});
|
99 |
+
});
|
100 |
+
</script>
|
101 |
+
<div <?php $this->attrs() ?>>
|
102 |
+
<img src="<?php echo $thumbnail_url?>" alt="" class="wapt-bg-image-thumb <?php echo $image_class; ?>" id="wapt-bg-image-thumb">
|
103 |
+
<button class="button button-primary button-large <?php echo $name; ?>" id="wapt-select-image"><?php echo $button_text; ?></button>
|
104 |
+
<input type="hidden" id="<?php echo $name; ?>" name="<?php echo $name; ?>" class="factory-input-text" value="<?php echo $value; ?>">
|
105 |
+
</div>
|
106 |
+
<?php
|
107 |
+
}
|
108 |
+
}
|
109 |
+
}
|
languages/apt-en_US.mo
CHANGED
Binary file
|
languages/apt-en_US.po
CHANGED
@@ -1,165 +1,407 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Auto Post Thumbnail\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2019-
|
6 |
-
"PO-Revision-Date: 2019-
|
7 |
-
"Last-Translator: admin <
|
8 |
-
"Language-Team: English (United States)\n"
|
9 |
-
"Language: en_US\n"
|
10 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
11 |
-
"MIME-Version: 1.0\n"
|
12 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
-
"Content-Transfer-Encoding: 8bit\n"
|
14 |
-
"X-Generator: Loco https://localise.biz/\n"
|
15 |
-
"X-Loco-Version: 2.
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
msgid "
|
37 |
-
msgstr ""
|
38 |
-
|
39 |
-
#:
|
40 |
-
msgid ""
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
"
|
49 |
-
msgstr ""
|
50 |
-
|
51 |
-
#:
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
"
|
71 |
-
msgstr ""
|
72 |
-
|
73 |
-
#:
|
74 |
-
msgid ""
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
"
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
"
|
95 |
-
msgstr ""
|
96 |
-
|
97 |
-
#:
|
98 |
-
msgid ""
|
99 |
-
"
|
100 |
-
"
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
"
|
105 |
-
msgstr ""
|
106 |
-
|
107 |
-
#:
|
108 |
-
msgid ""
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
"
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
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 |
-
msgstr ""
|
158 |
-
|
159 |
-
|
160 |
-
msgid "
|
161 |
-
msgstr ""
|
162 |
-
|
163 |
-
|
164 |
-
msgid "
|
165 |
-
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Auto Post Thumbnail\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2019-10-03 11:05+0000\n"
|
6 |
+
"PO-Revision-Date: 2019-10-03 11:05+0000\n"
|
7 |
+
"Last-Translator: admin <webtemyk@yandex.ru>\n"
|
8 |
+
"Language-Team: English (United States)\n"
|
9 |
+
"Language: en_US\n"
|
10 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
11 |
+
"MIME-Version: 1.0\n"
|
12 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
+
"Content-Transfer-Encoding: 8bit\n"
|
14 |
+
"X-Generator: Loco https://localise.biz/\n"
|
15 |
+
"X-Loco-Version: 2.3.0; wp-5.2.3"
|
16 |
+
|
17 |
+
#. Name of the plugin
|
18 |
+
#: auto-post-thumbnail.php:48 includes/class-wapt-base.php:908
|
19 |
+
#: admin/pages/generate.php:100
|
20 |
+
msgid "Auto Post Thumbnail"
|
21 |
+
msgstr ""
|
22 |
+
|
23 |
+
#: includes/class-wapt-base.php:200
|
24 |
+
msgid "Use as thumbnail"
|
25 |
+
msgstr ""
|
26 |
+
|
27 |
+
#: includes/class-wapt-base.php:201 includes/class-wapt-base.php:865
|
28 |
+
msgid "Change featured image"
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: includes/class-wapt-base.php:385
|
32 |
+
msgid "This plugin has been automatically deactivated."
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: includes/class-wapt-base.php:773
|
36 |
+
msgid "Image"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: includes/class-wapt-base.php:862
|
40 |
+
msgid "No image"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#: includes/class-wapt-base.php:882
|
44 |
+
msgid "Auto Post Thumbnails"
|
45 |
+
msgstr ""
|
46 |
+
|
47 |
+
#: includes/class-wapt-base.php:882
|
48 |
+
msgid "Add from APT"
|
49 |
+
msgstr ""
|
50 |
+
|
51 |
+
#: includes/class-wapt-base.php:1090
|
52 |
+
#, php-format
|
53 |
+
msgid ""
|
54 |
+
"You have reached the limit at the moment. Try again in an 1 hour or <a "
|
55 |
+
"href=\"%s\">Upgrade to Premium</a>"
|
56 |
+
msgstr ""
|
57 |
+
|
58 |
+
#: includes/class-wapt-base.php:1150
|
59 |
+
#, php-format
|
60 |
+
msgid ""
|
61 |
+
"To download images from Google, specify Google API keys in the <a href='%s'>"
|
62 |
+
"settings</a>."
|
63 |
+
msgstr ""
|
64 |
+
|
65 |
+
#: includes/class-wapt-plugin.php:122
|
66 |
+
msgid "Generate featured image"
|
67 |
+
msgstr ""
|
68 |
+
|
69 |
+
#: includes/class-wapt-plugin.php:123
|
70 |
+
msgid "Unset featured image"
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: includes/class-wapt-plugin.php:167
|
74 |
+
msgid "Processed posts: "
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: includes/class-wapt-plugin.php:186
|
78 |
+
msgid "Featured Image"
|
79 |
+
msgstr ""
|
80 |
+
|
81 |
+
#: includes/class-wapt-plugin.php:187
|
82 |
+
msgid "With image"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: includes/class-wapt-plugin.php:188
|
86 |
+
msgid "Without image"
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: includes/class-wapt-plugin.php:227
|
90 |
+
msgid "Without featured image"
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: admin/ajax/check-license.php:27
|
94 |
+
msgid "Licensing action not passed or this action is prohibited!"
|
95 |
+
msgstr ""
|
96 |
+
|
97 |
+
#: admin/ajax/check-license.php:39
|
98 |
+
msgid ""
|
99 |
+
"License key is empty or license key too long (license key is 32 characters "
|
100 |
+
"long)"
|
101 |
+
msgstr ""
|
102 |
+
|
103 |
+
#: admin/ajax/check-license.php:42
|
104 |
+
msgid "Your license has been successfully activated"
|
105 |
+
msgstr ""
|
106 |
+
|
107 |
+
#: admin/ajax/check-license.php:47
|
108 |
+
msgid "The license is deactivated"
|
109 |
+
msgstr ""
|
110 |
+
|
111 |
+
#: admin/ajax/check-license.php:51
|
112 |
+
msgid "The license has been updated"
|
113 |
+
msgstr ""
|
114 |
+
|
115 |
+
#: admin/ajax/check-license.php:55
|
116 |
+
msgid "Subscription success cancelled"
|
117 |
+
msgstr ""
|
118 |
+
|
119 |
+
#: admin/pages/about.php:45
|
120 |
+
msgid "About APT"
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
+
#: admin/pages/about.php:46
|
124 |
+
msgid "About"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: admin/pages/generate.php:101
|
128 |
+
msgid "Generate featured images"
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: admin/pages/license.php:91
|
132 |
+
msgid "License of APT"
|
133 |
+
msgstr ""
|
134 |
+
|
135 |
+
#: admin/pages/settings.php:46
|
136 |
+
msgid "Settings of APT"
|
137 |
+
msgstr ""
|
138 |
+
|
139 |
+
#: admin/pages/settings.php:47
|
140 |
+
msgid "Settings"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: admin/pages/settings.php:79
|
144 |
+
msgid "Automatic post thumbnail generation"
|
145 |
+
msgstr ""
|
146 |
+
|
147 |
+
#: admin/pages/settings.php:81
|
148 |
+
msgid "Enable automatic post thumbnail generation"
|
149 |
+
msgstr ""
|
150 |
+
|
151 |
+
#: admin/pages/settings.php:88 admin/pages/settings.php:90
|
152 |
+
msgid "Delete settings when removing the plugin"
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: admin/pages/settings.php:95
|
156 |
+
msgid "How to get google api key & custom search engine id"
|
157 |
+
msgstr ""
|
158 |
+
|
159 |
+
#: admin/pages/settings.php:112
|
160 |
+
msgid "API key for Google"
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
#: admin/pages/settings.php:120
|
164 |
+
msgid "Google Custom Search Engine ID"
|
165 |
+
msgstr ""
|
166 |
+
|
167 |
+
#: admin/pages/settings.php:121
|
168 |
+
msgid "You can get API key after registration on the site"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: admin/views/tab-about.php:110
|
172 |
+
#, php-format
|
173 |
+
msgid ""
|
174 |
+
"We suppose you’ve noticed the changes which happened with <a href=\"%s\" "
|
175 |
+
"target=\"_blank\" rel=\"noopener\">Auto Post Thumbnail</a>. In this tutorial "
|
176 |
+
"you can get more information about new features."
|
177 |
+
msgstr ""
|
178 |
+
|
179 |
+
#: admin/views/tab-about.php:118
|
180 |
+
msgid ""
|
181 |
+
"As you’ve already noticed, we haven’t updated the plugin for more than 2 "
|
182 |
+
"years. This new version fixes existing problems. APT becomes a fully "
|
183 |
+
"functional plugin."
|
184 |
+
msgstr ""
|
185 |
+
|
186 |
+
#: admin/views/tab-about.php:120
|
187 |
+
msgid ""
|
188 |
+
"Starting from this version, the APT plugin evolves from being an aiding tool "
|
189 |
+
"to the full-featured search & image editing system with a Creative Commons "
|
190 |
+
"license for your website. It means that you get:"
|
191 |
+
msgstr ""
|
192 |
+
|
193 |
+
#: admin/views/tab-about.php:122
|
194 |
+
msgid "Search and download images from Google"
|
195 |
+
msgstr ""
|
196 |
+
|
197 |
+
#: admin/views/tab-about.php:123
|
198 |
+
msgid "Auto generate feature image in editor"
|
199 |
+
msgstr ""
|
200 |
+
|
201 |
+
#: admin/views/tab-about.php:124
|
202 |
+
msgid ""
|
203 |
+
"Image search through the 3 popular stock services from the plugin interface. "
|
204 |
+
"Just enter a search query and choose an image (images) you like."
|
205 |
+
msgstr ""
|
206 |
+
|
207 |
+
#: admin/views/tab-about.php:128
|
208 |
+
msgid ""
|
209 |
+
"Upload images from the external URL to your post or product (for Woocommerce)"
|
210 |
+
"."
|
211 |
+
msgstr ""
|
212 |
+
|
213 |
+
#: admin/views/tab-about.php:129
|
214 |
+
msgid "Compatibility with the most popular builders."
|
215 |
+
msgstr ""
|
216 |
+
|
217 |
+
#: admin/views/tab-about.php:133
|
218 |
+
msgid ""
|
219 |
+
"Advanced APT editor. You can edit images using layers. It means that you can "
|
220 |
+
"overlay text, logo, or mask, adjust color, brightness, and contract and use "
|
221 |
+
"other great features. Save presets and apply them on any image in one click. "
|
222 |
+
"The editor doesn’t replace the default WordPress editor."
|
223 |
+
msgstr ""
|
224 |
+
|
225 |
+
#: admin/views/tab-license.php:11
|
226 |
+
#, php-format
|
227 |
+
msgid "Activate %s"
|
228 |
+
msgstr ""
|
229 |
+
|
230 |
+
#: admin/views/tab-license.php:22
|
231 |
+
#, php-format
|
232 |
+
msgid "Upgrade to Premium for $%s"
|
233 |
+
msgstr ""
|
234 |
+
|
235 |
+
#: admin/views/tab-license.php:25
|
236 |
+
#, php-format
|
237 |
+
msgid "Your current license for %1$s:"
|
238 |
+
msgstr ""
|
239 |
+
|
240 |
+
#: admin/views/tab-license.php:31
|
241 |
+
msgid "Delete Key"
|
242 |
+
msgstr ""
|
243 |
+
|
244 |
+
#: admin/views/tab-license.php:35
|
245 |
+
msgid "Synchronization"
|
246 |
+
msgstr ""
|
247 |
+
|
248 |
+
#: admin/views/tab-license.php:54
|
249 |
+
msgid ""
|
250 |
+
"Public License is a GPLv2 compatible license allowing you to change and use "
|
251 |
+
"this version of the plugin for free. Please keep in mind this license covers "
|
252 |
+
"only free edition of the plugin. Premium versions are distributed with other "
|
253 |
+
"type of a license."
|
254 |
+
msgstr ""
|
255 |
+
|
256 |
+
#: admin/views/tab-license.php:58
|
257 |
+
msgid ""
|
258 |
+
"You use a paid subscription for the plugin updates. In case you don’t want "
|
259 |
+
"to receive paid updates, please, click <a data-action=\"unsubscribe\" "
|
260 |
+
"class=\"wapt-control-btn\" href=\"#\">cancel subscription</a>"
|
261 |
+
msgstr ""
|
262 |
+
|
263 |
+
#: admin/views/tab-license.php:64
|
264 |
+
msgid ""
|
265 |
+
"Your license has expired, please extend the license to get updates and "
|
266 |
+
"support."
|
267 |
+
msgstr ""
|
268 |
+
|
269 |
+
#: admin/views/tab-license.php:72
|
270 |
+
msgid "domain"
|
271 |
+
msgstr ""
|
272 |
+
|
273 |
+
#: admin/views/tab-license.php:76
|
274 |
+
msgid "plan"
|
275 |
+
msgstr ""
|
276 |
+
|
277 |
+
#: admin/views/tab-license.php:82
|
278 |
+
msgid "of"
|
279 |
+
msgstr ""
|
280 |
+
|
281 |
+
#: admin/views/tab-license.php:84
|
282 |
+
msgid "active sites"
|
283 |
+
msgstr ""
|
284 |
+
|
285 |
+
#: admin/views/tab-license.php:89
|
286 |
+
msgid "version"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: admin/views/tab-license.php:94
|
290 |
+
msgid "EXPIRED!"
|
291 |
+
msgstr ""
|
292 |
+
|
293 |
+
#: admin/views/tab-license.php:95
|
294 |
+
msgid "please update the key"
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: admin/views/tab-license.php:105
|
298 |
+
msgid "day(s)"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: admin/views/tab-license.php:107
|
302 |
+
msgid "remained"
|
303 |
+
msgstr ""
|
304 |
+
|
305 |
+
#: admin/views/tab-license.php:118
|
306 |
+
msgid "Have a key to activate the premium version? Paste it here:"
|
307 |
+
msgstr ""
|
308 |
+
|
309 |
+
#: admin/views/tab-license.php:120
|
310 |
+
msgid "Have a key to activate the plugin? Paste it here:"
|
311 |
+
msgstr ""
|
312 |
+
|
313 |
+
#: admin/views/tab-license.php:126
|
314 |
+
msgid "Submit Key"
|
315 |
+
msgstr ""
|
316 |
+
|
317 |
+
#: admin/views/tab-license.php:134
|
318 |
+
#, php-format
|
319 |
+
msgid ""
|
320 |
+
"<a href=\"%s\" target=\"_blank\" rel=\"noopener\">Lean more</a> about the "
|
321 |
+
"premium version and get the license key to activate it now!"
|
322 |
+
msgstr ""
|
323 |
+
|
324 |
+
#: admin/views/tab-license.php:138
|
325 |
+
#, php-format
|
326 |
+
msgid ""
|
327 |
+
"Can’t find your key? Go to <a href=\"%s\" target=\"_blank\" rel=\"noopener\">"
|
328 |
+
"this page</a> and login using the e-mail address associated with your "
|
329 |
+
"purchase."
|
330 |
+
msgstr ""
|
331 |
+
|
332 |
+
#: admin/views/tab-main.php:2
|
333 |
+
msgid "Generate Featured images for posts"
|
334 |
+
msgstr ""
|
335 |
+
|
336 |
+
#: admin/views/tab-main.php:22
|
337 |
+
msgid "Generate Featured images"
|
338 |
+
msgstr ""
|
339 |
+
|
340 |
+
#: admin/views/tab-main.php:25
|
341 |
+
msgid "Delete Featured images"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: admin/views/tab-main.php:42
|
345 |
+
msgid ""
|
346 |
+
"Note: Thumbnails won't be generated for posts that already have post "
|
347 |
+
"thumbnail or <strong><em>skip_post_thumb</em></strong> custom meta field."
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: admin/views/tab-main.php:44
|
351 |
+
msgid "You must enable Javascript in order to proceed!"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: admin/views/tab-main.php:103 admin/views/tab-main.php:164
|
355 |
+
msgid "All done! Processed posts:"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: admin/views/tab-main.php:103
|
359 |
+
msgid "Set featured image in posts:"
|
360 |
+
msgstr ""
|
361 |
+
|
362 |
+
#: admin/views/tab-main.php:164
|
363 |
+
msgid "Delete featured image in posts:"
|
364 |
+
msgstr ""
|
365 |
+
|
366 |
+
#: admin/views/sources/google.php:40
|
367 |
+
msgid "No hits"
|
368 |
+
msgstr ""
|
369 |
+
|
370 |
+
#: admin/views/sources/google.php:156
|
371 |
+
msgid "Search..."
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: admin/views/sources/google.php:158
|
375 |
+
msgid "Search"
|
376 |
+
msgstr ""
|
377 |
+
|
378 |
+
#: admin/views/sources/google.php:165
|
379 |
+
msgid "Prev"
|
380 |
+
msgstr ""
|
381 |
+
|
382 |
+
#: admin/views/sources/google.php:168
|
383 |
+
msgid "Next"
|
384 |
+
msgstr ""
|
385 |
+
|
386 |
+
#: admin/views/sources/google.php:177
|
387 |
+
msgid "API key is missing. Add it in APT settings"
|
388 |
+
msgstr ""
|
389 |
+
|
390 |
+
#. Description of the plugin
|
391 |
+
msgid ""
|
392 |
+
"Automatically generate the Post Thumbnail (Featured Thumbnail) from the "
|
393 |
+
"first image in post (or any custom post type) only if Post Thumbnail is not "
|
394 |
+
"set manually."
|
395 |
+
msgstr ""
|
396 |
+
|
397 |
+
#. URI of the plugin
|
398 |
+
msgid "https://cm-wp.com/apt"
|
399 |
+
msgstr ""
|
400 |
+
|
401 |
+
#. Author of the plugin
|
402 |
+
msgid "Creativemotion <support@cm-wp.com>"
|
403 |
+
msgstr ""
|
404 |
+
|
405 |
+
#. Author URI of the plugin
|
406 |
+
msgid "cm-wp.com"
|
407 |
+
msgstr ""
|
languages/apt-ru_RU.mo
CHANGED
Binary file
|
languages/apt-ru_RU.po
CHANGED
@@ -1,249 +1,624 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Auto Post Thumbnail\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date:
|
6 |
-
"PO-Revision-Date:
|
7 |
-
"Last-Translator: admin <
|
8 |
-
"Language-Team: Русский\n"
|
9 |
-
"Language: ru_RU\n"
|
10 |
-
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 &&
|
11 |
-
"%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2);\n"
|
12 |
-
"MIME-Version: 1.0\n"
|
13 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
-
"Content-Transfer-Encoding: 8bit\n"
|
15 |
-
"X-Generator:
|
16 |
-
"X-Loco-Version: 2.
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
"
|
27 |
-
|
28 |
-
#:
|
29 |
-
msgid "
|
30 |
-
msgstr "
|
31 |
-
|
32 |
-
#:
|
33 |
-
msgid "
|
34 |
-
msgstr "
|
35 |
-
|
36 |
-
#:
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
"
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
"
|
56 |
-
"
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
msgid ""
|
64 |
-
"
|
65 |
-
"
|
66 |
-
msgstr ""
|
67 |
-
"
|
68 |
-
"
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
#:
|
86 |
-
msgid ""
|
87 |
-
"
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
"
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
"
|
99 |
-
msgstr ""
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
"
|
111 |
-
"
|
112 |
-
|
113 |
-
|
114 |
-
"
|
115 |
-
"
|
116 |
-
|
117 |
-
#:
|
118 |
-
msgid ""
|
119 |
-
"
|
120 |
-
"
|
121 |
-
|
122 |
-
"
|
123 |
-
"
|
124 |
-
|
125 |
-
|
126 |
-
"
|
127 |
-
"
|
128 |
-
|
129 |
-
|
130 |
-
"
|
131 |
-
"
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
"
|
139 |
-
msgstr ""
|
140 |
-
|
141 |
-
|
142 |
-
"
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
"
|
148 |
-
|
149 |
-
|
150 |
-
"
|
151 |
-
"
|
152 |
-
|
153 |
-
#:
|
154 |
-
msgid ""
|
155 |
-
"
|
156 |
-
|
157 |
-
|
158 |
-
"
|
159 |
-
msgstr ""
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
#:
|
167 |
-
msgid ""
|
168 |
-
"
|
169 |
-
|
170 |
-
|
171 |
-
"
|
172 |
-
"
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
"
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
"
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
"
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Auto Post Thumbnail\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2020-02-10 11:21+0000\n"
|
6 |
+
"PO-Revision-Date: 2020-02-10 12:05+0000\n"
|
7 |
+
"Last-Translator: admin <webtemyk@yandex.ru>\n"
|
8 |
+
"Language-Team: Русский\n"
|
9 |
+
"Language: ru_RU\n"
|
10 |
+
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10 >= 2 && "
|
11 |
+
"n%10<=4 &&(n%100<10||n%100 >= 20)? 1 : 2);\n"
|
12 |
+
"MIME-Version: 1.0\n"
|
13 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
+
"Content-Transfer-Encoding: 8bit\n"
|
15 |
+
"X-Generator: Loco https://localise.biz/\n"
|
16 |
+
"X-Loco-Version: 2.3.1; wp-5.3.2"
|
17 |
+
|
18 |
+
#. Name of the plugin
|
19 |
+
#: auto-post-thumbnail.php:48 includes/class-wapt-base.php:959
|
20 |
+
#: admin/pages/generate.php:100
|
21 |
+
msgid "Auto Post Thumbnail"
|
22 |
+
msgstr "Auto Post Thumbnail"
|
23 |
+
|
24 |
+
#: includes/class-wapt-base.php:207
|
25 |
+
msgid "Use as thumbnail"
|
26 |
+
msgstr "Применить изображение"
|
27 |
+
|
28 |
+
#: includes/class-wapt-base.php:208 includes/class-wapt-base.php:916
|
29 |
+
msgid "Change featured image"
|
30 |
+
msgstr "Изменить изображение"
|
31 |
+
|
32 |
+
#: includes/class-wapt-base.php:411
|
33 |
+
msgid "This plugin has been automatically deactivated."
|
34 |
+
msgstr "Этот плагин был автоматически деактивирован."
|
35 |
+
|
36 |
+
#: includes/class-wapt-base.php:819 admin/pages/settings.php:154
|
37 |
+
msgid "Image"
|
38 |
+
msgstr "Изображение"
|
39 |
+
|
40 |
+
#: includes/class-wapt-base.php:913
|
41 |
+
msgid "No image"
|
42 |
+
msgstr "Нет изображений"
|
43 |
+
|
44 |
+
#: includes/class-wapt-base.php:933
|
45 |
+
msgid "Auto Post Thumbnails"
|
46 |
+
msgstr "Auto Post Thumbnails"
|
47 |
+
|
48 |
+
#: includes/class-wapt-base.php:933
|
49 |
+
msgid "Add from APT"
|
50 |
+
msgstr "Добавить через APT"
|
51 |
+
|
52 |
+
#: includes/class-wapt-base.php:1176
|
53 |
+
#, php-format
|
54 |
+
msgid ""
|
55 |
+
"You have reached the limit at the moment. Try again in an 1 hour or <a "
|
56 |
+
"href=\"%s\">Upgrade to Premium</a>"
|
57 |
+
msgstr ""
|
58 |
+
"На данный момент Вы достигли лимита запросов. Повторите попытку через 1 час "
|
59 |
+
"или <a href=\"%s\">обновите до Premium</a>"
|
60 |
+
|
61 |
+
#: includes/class-wapt-base.php:1236
|
62 |
+
#, php-format
|
63 |
+
msgid ""
|
64 |
+
"To download images from Google, specify Google API keys in the <a href='%s'>"
|
65 |
+
"settings</a>."
|
66 |
+
msgstr ""
|
67 |
+
"Чтобы загружать изображения из Google, укажите ключи API Google в <a "
|
68 |
+
"href='%s'>настройках</a>."
|
69 |
+
|
70 |
+
#: includes/class-wapt-base.php:1265
|
71 |
+
#, php-format
|
72 |
+
msgid ""
|
73 |
+
"What's new in version 3.7.0? Find out from <a href='%s'>the article</a> on "
|
74 |
+
"our website."
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: includes/class-wapt-base.php:1291
|
78 |
+
msgid "Standard"
|
79 |
+
msgstr ""
|
80 |
+
|
81 |
+
#: includes/class-wapt-base.php:1302
|
82 |
+
msgid "Uploaded"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: includes/class-wapt-plugin.php:140
|
86 |
+
msgid "Generate featured image"
|
87 |
+
msgstr "Генерировать изображение"
|
88 |
+
|
89 |
+
#: includes/class-wapt-plugin.php:141
|
90 |
+
msgid "Unset featured image"
|
91 |
+
msgstr "Убрать изображение"
|
92 |
+
|
93 |
+
#: includes/class-wapt-plugin.php:185
|
94 |
+
msgid "Processed posts: "
|
95 |
+
msgstr "Обработано постов:"
|
96 |
+
|
97 |
+
#: includes/class-wapt-plugin.php:204
|
98 |
+
msgid "Featured Image"
|
99 |
+
msgstr "Изображение"
|
100 |
+
|
101 |
+
#: includes/class-wapt-plugin.php:205
|
102 |
+
msgid "With image"
|
103 |
+
msgstr "С изображением"
|
104 |
+
|
105 |
+
#: includes/class-wapt-plugin.php:206
|
106 |
+
msgid "Without image"
|
107 |
+
msgstr "Без изображения"
|
108 |
+
|
109 |
+
#: includes/class-wapt-plugin.php:245
|
110 |
+
msgid "Without featured image"
|
111 |
+
msgstr "Без изображения"
|
112 |
+
|
113 |
+
#: admin/ajax/check-license.php:27
|
114 |
+
msgid "Licensing action not passed or this action is prohibited!"
|
115 |
+
msgstr "Licensing action not passed or this action is prohibited!"
|
116 |
+
|
117 |
+
#: admin/ajax/check-license.php:39
|
118 |
+
msgid ""
|
119 |
+
"License key is empty or license key too long (license key is 32 characters "
|
120 |
+
"long)"
|
121 |
+
msgstr ""
|
122 |
+
"Лицензионный ключ пуст или слишком длинный (длина лицензионного ключа "
|
123 |
+
"составляет 32 символа)"
|
124 |
+
|
125 |
+
#: admin/ajax/check-license.php:42
|
126 |
+
msgid "Your license has been successfully activated"
|
127 |
+
msgstr "Ваша лицензия успешно активирована"
|
128 |
+
|
129 |
+
#: admin/ajax/check-license.php:47
|
130 |
+
msgid "The license is deactivated"
|
131 |
+
msgstr "Ваша лицензия деактивирована"
|
132 |
+
|
133 |
+
#: admin/ajax/check-license.php:51
|
134 |
+
msgid "The license has been updated"
|
135 |
+
msgstr "Ваша лицензия была обновлена"
|
136 |
+
|
137 |
+
#: admin/ajax/check-license.php:55
|
138 |
+
msgid "Subscription success cancelled"
|
139 |
+
msgstr "Подписка успешно отменена"
|
140 |
+
|
141 |
+
#: admin/pages/about.php:45
|
142 |
+
msgid "About APT"
|
143 |
+
msgstr "О плагине Auto Post Thumbnail"
|
144 |
+
|
145 |
+
#: admin/pages/about.php:46
|
146 |
+
msgid "About"
|
147 |
+
msgstr "О плагине"
|
148 |
+
|
149 |
+
#: admin/pages/generate.php:101
|
150 |
+
msgid "Generate featured images"
|
151 |
+
msgstr "Генератор изображений"
|
152 |
+
|
153 |
+
#: admin/pages/license.php:91
|
154 |
+
msgid "License of APT"
|
155 |
+
msgstr "Лицензия Auto Post Thumbnail"
|
156 |
+
|
157 |
+
#: admin/pages/settings.php:46
|
158 |
+
msgid "Settings of APT"
|
159 |
+
msgstr "Настройки Auto Post Thumbnail"
|
160 |
+
|
161 |
+
#. text
|
162 |
+
#: admin/pages/settings.php:47 admin/views/tab-settings.php:40
|
163 |
+
msgid "Settings"
|
164 |
+
msgstr "Настройки"
|
165 |
+
|
166 |
+
#: admin/pages/settings.php:100
|
167 |
+
msgid "Automatic set featured image on save"
|
168 |
+
msgstr "Автодобавление изображения записи"
|
169 |
+
|
170 |
+
#: admin/pages/settings.php:102
|
171 |
+
msgid "Set the first image in a post as the featured image"
|
172 |
+
msgstr "При сохранении, первое изображение станет изображением поста"
|
173 |
+
|
174 |
+
#. text
|
175 |
+
#: admin/pages/settings.php:109 admin/pages/settings.php:111
|
176 |
+
msgid "Delete settings when removing the plugin"
|
177 |
+
msgstr "Удалять настройки при удалении плагина"
|
178 |
+
|
179 |
+
#: admin/pages/settings.php:118
|
180 |
+
msgid "Generate featured image from title"
|
181 |
+
msgstr "Генерировать изображение поста из заголовка"
|
182 |
+
|
183 |
+
#: admin/pages/settings.php:120
|
184 |
+
msgid ""
|
185 |
+
"A featured image will be created automatically from the title on a colored "
|
186 |
+
"background"
|
187 |
+
msgstr ""
|
188 |
+
"Изображение поста будет создано автоматически из заголовка на цветном фоне"
|
189 |
+
|
190 |
+
#: admin/pages/settings.php:141
|
191 |
+
msgid "Background settings"
|
192 |
+
msgstr "Настройки фона"
|
193 |
+
|
194 |
+
#: admin/pages/settings.php:153
|
195 |
+
msgid "Color"
|
196 |
+
msgstr "Цвет"
|
197 |
+
|
198 |
+
#: admin/pages/settings.php:157
|
199 |
+
msgid "Background type"
|
200 |
+
msgstr "Тип фона"
|
201 |
+
|
202 |
+
#: admin/pages/settings.php:158
|
203 |
+
msgid "Select the background type for the featured image"
|
204 |
+
msgstr "Тип фона для изображения поста"
|
205 |
+
|
206 |
+
#: admin/pages/settings.php:166
|
207 |
+
msgid "Background color for the image"
|
208 |
+
msgstr "Цвет фона"
|
209 |
+
|
210 |
+
#: admin/pages/settings.php:167
|
211 |
+
msgid "Set the background color for the featured image"
|
212 |
+
msgstr "Цвет фона для изображения поста"
|
213 |
+
|
214 |
+
#: admin/pages/settings.php:174
|
215 |
+
msgid "Select image"
|
216 |
+
msgstr "Выбрать изображение"
|
217 |
+
|
218 |
+
#: admin/pages/settings.php:175
|
219 |
+
msgid "Background image"
|
220 |
+
msgstr "Фоновое изображение"
|
221 |
+
|
222 |
+
#: admin/pages/settings.php:176
|
223 |
+
msgid "Set the background image. Only JPG or PNG"
|
224 |
+
msgstr "Изображение для фона. Только JPG или PNG"
|
225 |
+
|
226 |
+
#: admin/pages/settings.php:186
|
227 |
+
msgid "JPEG"
|
228 |
+
msgstr "JPEG"
|
229 |
+
|
230 |
+
#: admin/pages/settings.php:187
|
231 |
+
msgid "PNG"
|
232 |
+
msgstr "PNG"
|
233 |
+
|
234 |
+
#: admin/pages/settings.php:190
|
235 |
+
msgid "Image format"
|
236 |
+
msgstr "Формат изображения"
|
237 |
+
|
238 |
+
#: admin/pages/settings.php:191
|
239 |
+
msgid "Set format to save images"
|
240 |
+
msgstr "В каком формате сохранять изображения поста"
|
241 |
+
|
242 |
+
#: admin/pages/settings.php:196
|
243 |
+
msgid "Font settings"
|
244 |
+
msgstr "Настройки шрифта"
|
245 |
+
|
246 |
+
#: admin/pages/settings.php:208
|
247 |
+
msgid "Font name"
|
248 |
+
msgstr "Шрифт"
|
249 |
+
|
250 |
+
#: admin/pages/settings.php:209
|
251 |
+
msgid "Select a font for the text in the featured image"
|
252 |
+
msgstr "Шрифт текста на изображении поста"
|
253 |
+
|
254 |
+
#: admin/pages/settings.php:219
|
255 |
+
msgid "Font size"
|
256 |
+
msgstr "Размер шрифта"
|
257 |
+
|
258 |
+
#: admin/pages/settings.php:220
|
259 |
+
msgid "Set the font size for the featured image"
|
260 |
+
msgstr "Размер шрифта на изображении поста"
|
261 |
+
|
262 |
+
#: admin/pages/settings.php:226
|
263 |
+
msgid "Font color"
|
264 |
+
msgstr "Цвет шрифта"
|
265 |
+
|
266 |
+
#: admin/pages/settings.php:227
|
267 |
+
msgid "Set the font color for the featured image"
|
268 |
+
msgstr "Цвет шрифта на изображении поста"
|
269 |
+
|
270 |
+
#: admin/pages/settings.php:233
|
271 |
+
msgid "Text settings"
|
272 |
+
msgstr "Настройки текста"
|
273 |
+
|
274 |
+
#: admin/pages/settings.php:245
|
275 |
+
msgid "Text shadow"
|
276 |
+
msgstr "Тень"
|
277 |
+
|
278 |
+
#: admin/pages/settings.php:246
|
279 |
+
msgid "Use text shadow?"
|
280 |
+
msgstr "Рисовать тень для текста?"
|
281 |
+
|
282 |
+
#: admin/pages/settings.php:258
|
283 |
+
msgid "Shadow color"
|
284 |
+
msgstr "Цвет тени"
|
285 |
+
|
286 |
+
#: admin/pages/settings.php:259
|
287 |
+
msgid "Set the shadow color for the text"
|
288 |
+
msgstr "Цвет тени для текста"
|
289 |
+
|
290 |
+
#: admin/pages/settings.php:267
|
291 |
+
msgid "No transform"
|
292 |
+
msgstr "Нет"
|
293 |
+
|
294 |
+
#: admin/pages/settings.php:268
|
295 |
+
msgid "Uppercase"
|
296 |
+
msgstr "ЗАГЛАВНЫЕ"
|
297 |
+
|
298 |
+
#: admin/pages/settings.php:269
|
299 |
+
msgid "Lowercase"
|
300 |
+
msgstr "строчные"
|
301 |
+
|
302 |
+
#: admin/pages/settings.php:272
|
303 |
+
msgid "Text transform"
|
304 |
+
msgstr "Преобразование текста"
|
305 |
+
|
306 |
+
#: admin/pages/settings.php:273
|
307 |
+
msgid "Select type of text transformation"
|
308 |
+
msgstr "Выберите тип преобразования текста"
|
309 |
+
|
310 |
+
#: admin/pages/settings.php:280
|
311 |
+
msgid "chars"
|
312 |
+
msgstr "символов"
|
313 |
+
|
314 |
+
#: admin/pages/settings.php:282
|
315 |
+
msgid "Text length"
|
316 |
+
msgstr "Длина текста"
|
317 |
+
|
318 |
+
#: admin/pages/settings.php:283
|
319 |
+
msgid "Set the maximum text length"
|
320 |
+
msgstr "Максимальная длинна текста (обрезается по словам)"
|
321 |
+
|
322 |
+
#: admin/pages/settings.php:292
|
323 |
+
msgid "Line spacing"
|
324 |
+
msgstr "Межстрочный интервал"
|
325 |
+
|
326 |
+
#: admin/pages/settings.php:293
|
327 |
+
msgid "Set the line spacing"
|
328 |
+
msgstr "Интервал между строками текста (коэффициент от размера шрифта)"
|
329 |
+
|
330 |
+
#: admin/pages/settings.php:299
|
331 |
+
msgid "Alignment"
|
332 |
+
msgstr "Выравнивание"
|
333 |
+
|
334 |
+
#: admin/pages/settings.php:311
|
335 |
+
msgid "Left"
|
336 |
+
msgstr "Слева"
|
337 |
+
|
338 |
+
#: admin/pages/settings.php:312 admin/pages/settings.php:327
|
339 |
+
msgid "Center"
|
340 |
+
msgstr "По центру"
|
341 |
+
|
342 |
+
#: admin/pages/settings.php:313
|
343 |
+
msgid "Right"
|
344 |
+
msgstr "Справа"
|
345 |
+
|
346 |
+
#: admin/pages/settings.php:316
|
347 |
+
msgid "Horizontal text alignment"
|
348 |
+
msgstr "Горизонтальное выравнивание"
|
349 |
+
|
350 |
+
#: admin/pages/settings.php:317
|
351 |
+
msgid "Select how to horizontally align the text on the image"
|
352 |
+
msgstr "Горизонтальное выравнивание текста на изображении поста"
|
353 |
+
|
354 |
+
#: admin/pages/settings.php:326
|
355 |
+
msgid "Top"
|
356 |
+
msgstr "Вверху"
|
357 |
+
|
358 |
+
#: admin/pages/settings.php:328
|
359 |
+
msgid "Bottom"
|
360 |
+
msgstr "Внизу"
|
361 |
+
|
362 |
+
#: admin/pages/settings.php:331
|
363 |
+
msgid "Vertical text alignment"
|
364 |
+
msgstr "Вертикальное выравнивание"
|
365 |
+
|
366 |
+
#: admin/pages/settings.php:332
|
367 |
+
msgid "Select how to vertically align the text on the image"
|
368 |
+
msgstr "Вертикальное выравнивание текста на изображении поста"
|
369 |
+
|
370 |
+
#: admin/pages/settings.php:339
|
371 |
+
msgid "Padding"
|
372 |
+
msgstr "Отступы"
|
373 |
+
|
374 |
+
#: admin/pages/settings.php:350 admin/pages/settings.php:361
|
375 |
+
msgid "px"
|
376 |
+
msgstr "px"
|
377 |
+
|
378 |
+
#: admin/pages/settings.php:352
|
379 |
+
msgid "Top/bottom text padding"
|
380 |
+
msgstr "Верхний/нижний отступ"
|
381 |
+
|
382 |
+
#: admin/pages/settings.php:353
|
383 |
+
msgid "Padding at the top and bottom of the text"
|
384 |
+
msgstr "Отступ сверху и снизу от текста"
|
385 |
+
|
386 |
+
#: admin/pages/settings.php:363
|
387 |
+
msgid "Left/right text padding"
|
388 |
+
msgstr "Левый/правый отступ"
|
389 |
+
|
390 |
+
#: admin/pages/settings.php:364
|
391 |
+
msgid "Padding at the left and right of the text"
|
392 |
+
msgstr "Отступ слева и справа от текста"
|
393 |
+
|
394 |
+
#: admin/pages/settings.php:371
|
395 |
+
msgid "Addition of text"
|
396 |
+
msgstr "Добавление текста"
|
397 |
+
|
398 |
+
#: admin/pages/settings.php:382
|
399 |
+
msgid "String before text"
|
400 |
+
msgstr "Текст до"
|
401 |
+
|
402 |
+
#: admin/pages/settings.php:383
|
403 |
+
msgid "Additional string before text. For a line break, use <b>[br]</b>"
|
404 |
+
msgstr ""
|
405 |
+
"Дополнительный текст перед текстом. Для переноса строки используйте <b>[br]"
|
406 |
+
"</b>"
|
407 |
+
|
408 |
+
#: admin/pages/settings.php:392
|
409 |
+
msgid "String after text"
|
410 |
+
msgstr "Текст после"
|
411 |
+
|
412 |
+
#: admin/pages/settings.php:393
|
413 |
+
msgid "Additional string after text. For a line break, use <b>[br]</b>"
|
414 |
+
msgstr ""
|
415 |
+
"Дополнительный текст после текста. Для переноса строки используйте <b>[br]"
|
416 |
+
"</b>"
|
417 |
+
|
418 |
+
#: admin/pages/settings.php:419
|
419 |
+
msgid "How to get google api key & custom search engine id"
|
420 |
+
msgstr "Как получить Google API key и Custom Search Engine ID"
|
421 |
+
|
422 |
+
#: admin/pages/settings.php:436
|
423 |
+
msgid "API key for Google"
|
424 |
+
msgstr "API ключ Google"
|
425 |
+
|
426 |
+
#: admin/pages/settings.php:444
|
427 |
+
msgid "Google Custom Search Engine ID"
|
428 |
+
msgstr "Google Custom Search Engine ID"
|
429 |
+
|
430 |
+
#: admin/pages/settings.php:445
|
431 |
+
msgid "You can get API key after registration on the site"
|
432 |
+
msgstr "Вы можете получить API ключ на сайте"
|
433 |
+
|
434 |
+
#: admin/views/tab-license.php:11
|
435 |
+
#, php-format
|
436 |
+
msgid "Activate %s"
|
437 |
+
msgstr ""
|
438 |
+
|
439 |
+
#: admin/views/tab-license.php:22
|
440 |
+
msgid "Upgrade to Premium"
|
441 |
+
msgstr ""
|
442 |
+
|
443 |
+
#: admin/views/tab-license.php:25
|
444 |
+
#, php-format
|
445 |
+
msgid "Your current license for %1$s:"
|
446 |
+
msgstr ""
|
447 |
+
|
448 |
+
#: admin/views/tab-license.php:31
|
449 |
+
msgid "Delete Key"
|
450 |
+
msgstr "Удалить ключ"
|
451 |
+
|
452 |
+
#: admin/views/tab-license.php:35
|
453 |
+
msgid "Synchronization"
|
454 |
+
msgstr "Синхронизация"
|
455 |
+
|
456 |
+
#: admin/views/tab-license.php:54
|
457 |
+
msgid ""
|
458 |
+
"Public License is a GPLv2 compatible license allowing you to change and use "
|
459 |
+
"this version of the plugin for free. Please keep in mind this license covers "
|
460 |
+
"only free edition of the plugin. Premium versions are distributed with other "
|
461 |
+
"type of a license."
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: admin/views/tab-license.php:58
|
465 |
+
msgid ""
|
466 |
+
"You use a paid subscription for the plugin updates. In case you don’t want "
|
467 |
+
"to receive paid updates, please, click <a data-action=\"unsubscribe\" "
|
468 |
+
"class=\"wapt-control-btn\" href=\"#\">cancel subscription</a>"
|
469 |
+
msgstr ""
|
470 |
+
|
471 |
+
#: admin/views/tab-license.php:64
|
472 |
+
msgid ""
|
473 |
+
"Your license has expired, please extend the license to get updates and "
|
474 |
+
"support."
|
475 |
+
msgstr ""
|
476 |
+
"Ваша лицензия истекла, пожалуйста, продлите лицензию, чтобы продолжить "
|
477 |
+
"пользоваться премиум функциями"
|
478 |
+
|
479 |
+
#: admin/views/tab-license.php:72
|
480 |
+
msgid "domain"
|
481 |
+
msgstr ""
|
482 |
+
|
483 |
+
#: admin/views/tab-license.php:76
|
484 |
+
msgid "plan"
|
485 |
+
msgstr "тариф"
|
486 |
+
|
487 |
+
#: admin/views/tab-license.php:82
|
488 |
+
msgid "of"
|
489 |
+
msgstr "из"
|
490 |
+
|
491 |
+
#: admin/views/tab-license.php:84
|
492 |
+
msgid "active sites"
|
493 |
+
msgstr "активных сайтов"
|
494 |
+
|
495 |
+
#: admin/views/tab-license.php:89
|
496 |
+
msgid "version"
|
497 |
+
msgstr "версия"
|
498 |
+
|
499 |
+
#: admin/views/tab-license.php:94
|
500 |
+
msgid "EXPIRED!"
|
501 |
+
msgstr ""
|
502 |
+
|
503 |
+
#: admin/views/tab-license.php:95
|
504 |
+
msgid "please update the key"
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: admin/views/tab-license.php:105
|
508 |
+
msgid "day(s)"
|
509 |
+
msgstr "дней"
|
510 |
+
|
511 |
+
#: admin/views/tab-license.php:107
|
512 |
+
msgid "remained"
|
513 |
+
msgstr "осталось"
|
514 |
+
|
515 |
+
#: admin/views/tab-license.php:118
|
516 |
+
msgid "Have a key to activate the premium version? Paste it here:"
|
517 |
+
msgstr "Есть ключ для активации премиум версии? Вставьте его сюда:"
|
518 |
+
|
519 |
+
#: admin/views/tab-license.php:120
|
520 |
+
msgid "Have a key to activate the plugin? Paste it here:"
|
521 |
+
msgstr "Есть ключ для активации плагина? Вставьте его сюда:"
|
522 |
+
|
523 |
+
#: admin/views/tab-license.php:126
|
524 |
+
msgid "Submit Key"
|
525 |
+
msgstr "Отправить ключ"
|
526 |
+
|
527 |
+
#: admin/views/tab-license.php:134
|
528 |
+
#, php-format
|
529 |
+
msgid ""
|
530 |
+
"<a href=\"%s\" target=\"_blank\" rel=\"noopener\">Lean more</a> about the "
|
531 |
+
"premium version and get the license key to activate it now!"
|
532 |
+
msgstr ""
|
533 |
+
"<a href=\"%s\" target=\"_blank\" rel=\"noopener\">Узнать больше</a> о "
|
534 |
+
"премиум версии и получить лицензионный ключ!"
|
535 |
+
|
536 |
+
#: admin/views/tab-license.php:138
|
537 |
+
#, php-format
|
538 |
+
msgid ""
|
539 |
+
"Can’t find your key? Go to <a href=\"%s\" target=\"_blank\" rel=\"noopener\">"
|
540 |
+
"this page</a> and login using the e-mail address associated with your "
|
541 |
+
"purchase."
|
542 |
+
msgstr ""
|
543 |
+
|
544 |
+
#: admin/views/tab-main.php:2
|
545 |
+
msgid "Generate Featured images for posts"
|
546 |
+
msgstr "Генератор изображений для постов"
|
547 |
+
|
548 |
+
#: admin/views/tab-main.php:22
|
549 |
+
msgid "Generate Featured images"
|
550 |
+
msgstr "Сгенерировать изображения"
|
551 |
+
|
552 |
+
#: admin/views/tab-main.php:25
|
553 |
+
msgid "Delete Featured images"
|
554 |
+
msgstr "Убрать изображения"
|
555 |
+
|
556 |
+
#: admin/views/tab-main.php:42
|
557 |
+
msgid ""
|
558 |
+
"Note: Thumbnails won't be generated for posts that already have post "
|
559 |
+
"thumbnail or <strong><em>skip_post_thumb</em></strong> custom meta field."
|
560 |
+
msgstr ""
|
561 |
+
"Обратите внимание: Изображения не будут сгенерированы для записей у которых "
|
562 |
+
"уже есть изображение или имеют заполненное мета поле <strong><em>"
|
563 |
+
"skip_post_thumb</em></strong>."
|
564 |
+
|
565 |
+
#: admin/views/tab-main.php:44
|
566 |
+
msgid "You must enable Javascript in order to proceed!"
|
567 |
+
msgstr "Вам нужно включить JavaScript чтобы продолжить!"
|
568 |
+
|
569 |
+
#: admin/views/tab-main.php:103 admin/views/tab-main.php:164
|
570 |
+
msgid "All done! Processed posts:"
|
571 |
+
msgstr "Завершено! Обработано постов: "
|
572 |
+
|
573 |
+
#: admin/views/tab-main.php:103
|
574 |
+
msgid "Set featured image in posts:"
|
575 |
+
msgstr "Добавлены изображения в посты:"
|
576 |
+
|
577 |
+
#: admin/views/tab-main.php:164
|
578 |
+
msgid "Delete featured image in posts:"
|
579 |
+
msgstr "Убраны изображения из постов:"
|
580 |
+
|
581 |
+
#: admin/views/sources/google.php:40
|
582 |
+
msgid "No hits"
|
583 |
+
msgstr "Нет результатов"
|
584 |
+
|
585 |
+
#: admin/views/sources/google.php:156
|
586 |
+
msgid "Search..."
|
587 |
+
msgstr "Запрос для поиска"
|
588 |
+
|
589 |
+
#: admin/views/sources/google.php:158
|
590 |
+
msgid "Search"
|
591 |
+
msgstr "Поиск"
|
592 |
+
|
593 |
+
#: admin/views/sources/google.php:165
|
594 |
+
msgid "Prev"
|
595 |
+
msgstr "Предыдущая"
|
596 |
+
|
597 |
+
#: admin/views/sources/google.php:168
|
598 |
+
msgid "Next"
|
599 |
+
msgstr "Следующая"
|
600 |
+
|
601 |
+
#: admin/views/sources/google.php:177
|
602 |
+
msgid "API key is missing. Add it in APT settings"
|
603 |
+
msgstr "Ключ API не задан. Добавьте его в настройках Auto Post Thumbnail"
|
604 |
+
|
605 |
+
#. Description of the plugin
|
606 |
+
msgid ""
|
607 |
+
"Automatically generate the Post Thumbnail (Featured Thumbnail) from the "
|
608 |
+
"first image in post (or any custom post type) only if Post Thumbnail is not "
|
609 |
+
"set manually."
|
610 |
+
msgstr ""
|
611 |
+
"Автоматически генерировать изображения для записи из ее первой картинки, "
|
612 |
+
"только если изображение не установлено вручную."
|
613 |
+
|
614 |
+
#. URI of the plugin
|
615 |
+
msgid "https://cm-wp.com/apt"
|
616 |
+
msgstr "https://cm-wp.com/apt"
|
617 |
+
|
618 |
+
#. Author of the plugin
|
619 |
+
msgid "Creativemotion <support@cm-wp.com>"
|
620 |
+
msgstr "Creativemotion <support@cm-wp.com>"
|
621 |
+
|
622 |
+
#. Author URI of the plugin
|
623 |
+
msgid "cm-wp.com"
|
624 |
+
msgstr "cm-wp.com"
|
languages/apt.pot
CHANGED
@@ -1,166 +1,602 @@
|
|
1 |
-
#, fuzzy
|
2 |
-
msgid ""
|
3 |
-
msgstr ""
|
4 |
-
"Project-Id-Version: Auto Post Thumbnail\n"
|
5 |
-
"Report-Msgid-Bugs-To: \n"
|
6 |
-
"POT-Creation-Date:
|
7 |
-
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
8 |
-
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
9 |
-
"Language-Team: \n"
|
10 |
-
"Language: \n"
|
11 |
-
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
12 |
-
"MIME-Version: 1.0\n"
|
13 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
-
"Content-Transfer-Encoding: 8bit\n"
|
15 |
-
"X-Generator: Loco https://localise.biz/\n"
|
16 |
-
"X-Loco-Version: 2.2.0; wp-4.9.8"
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
msgid "
|
38 |
-
msgstr ""
|
39 |
-
|
40 |
-
#:
|
41 |
-
msgid ""
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
"
|
50 |
-
msgstr ""
|
51 |
-
|
52 |
-
#:
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
msgid ""
|
69 |
-
"
|
70 |
-
"
|
71 |
-
"
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
msgstr ""
|
80 |
-
|
81 |
-
#:
|
82 |
-
msgid ""
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
"
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
"
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
"
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
"
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
"
|
133 |
-
msgstr ""
|
134 |
-
|
135 |
-
#:
|
136 |
-
msgid "
|
137 |
-
msgstr ""
|
138 |
-
|
139 |
-
#:
|
140 |
-
msgid "
|
141 |
-
msgstr ""
|
142 |
-
|
143 |
-
#:
|
144 |
-
msgid "
|
145 |
-
msgstr ""
|
146 |
-
|
147 |
-
|
148 |
-
msgid ""
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
"
|
157 |
-
"
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#, fuzzy
|
2 |
+
msgid ""
|
3 |
+
msgstr ""
|
4 |
+
"Project-Id-Version: Auto Post Thumbnail\n"
|
5 |
+
"Report-Msgid-Bugs-To: \n"
|
6 |
+
"POT-Creation-Date: 2020-02-10 11:21+0000\n"
|
7 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
8 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
9 |
+
"Language-Team: \n"
|
10 |
+
"Language: \n"
|
11 |
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
12 |
+
"MIME-Version: 1.0\n"
|
13 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
14 |
+
"Content-Transfer-Encoding: 8bit\n"
|
15 |
+
"X-Generator: Loco https://localise.biz/\n"
|
16 |
+
"X-Loco-Version: 2.2.0; wp-4.9.8"
|
17 |
+
|
18 |
+
#. Name of the plugin
|
19 |
+
#: auto-post-thumbnail.php:48 includes/class-wapt-base.php:959
|
20 |
+
#: admin/pages/generate.php:100
|
21 |
+
msgid "Auto Post Thumbnail"
|
22 |
+
msgstr ""
|
23 |
+
|
24 |
+
#: includes/class-wapt-base.php:207
|
25 |
+
msgid "Use as thumbnail"
|
26 |
+
msgstr ""
|
27 |
+
|
28 |
+
#: includes/class-wapt-base.php:208 includes/class-wapt-base.php:916
|
29 |
+
msgid "Change featured image"
|
30 |
+
msgstr ""
|
31 |
+
|
32 |
+
#: includes/class-wapt-base.php:411
|
33 |
+
msgid "This plugin has been automatically deactivated."
|
34 |
+
msgstr ""
|
35 |
+
|
36 |
+
#: includes/class-wapt-base.php:819 admin/pages/settings.php:154
|
37 |
+
msgid "Image"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: includes/class-wapt-base.php:913
|
41 |
+
msgid "No image"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: includes/class-wapt-base.php:933
|
45 |
+
msgid "Auto Post Thumbnails"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: includes/class-wapt-base.php:933
|
49 |
+
msgid "Add from APT"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: includes/class-wapt-base.php:1176
|
53 |
+
#, php-format
|
54 |
+
msgid ""
|
55 |
+
"You have reached the limit at the moment. Try again in an 1 hour or <a "
|
56 |
+
"href=\"%s\">Upgrade to Premium</a>"
|
57 |
+
msgstr ""
|
58 |
+
|
59 |
+
#: includes/class-wapt-base.php:1236
|
60 |
+
#, php-format
|
61 |
+
msgid ""
|
62 |
+
"To download images from Google, specify Google API keys in the <a href='%s'>"
|
63 |
+
"settings</a>."
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: includes/class-wapt-base.php:1265
|
67 |
+
#, php-format
|
68 |
+
msgid ""
|
69 |
+
"What's new in version 3.7.0? Find out from <a href='%s'>the article</a> on "
|
70 |
+
"our website."
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: includes/class-wapt-base.php:1291
|
74 |
+
msgid "Standard"
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: includes/class-wapt-base.php:1302
|
78 |
+
msgid "Uploaded"
|
79 |
+
msgstr ""
|
80 |
+
|
81 |
+
#: includes/class-wapt-plugin.php:140
|
82 |
+
msgid "Generate featured image"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: includes/class-wapt-plugin.php:141
|
86 |
+
msgid "Unset featured image"
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: includes/class-wapt-plugin.php:185
|
90 |
+
msgid "Processed posts: "
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: includes/class-wapt-plugin.php:204
|
94 |
+
msgid "Featured Image"
|
95 |
+
msgstr ""
|
96 |
+
|
97 |
+
#: includes/class-wapt-plugin.php:205
|
98 |
+
msgid "With image"
|
99 |
+
msgstr ""
|
100 |
+
|
101 |
+
#: includes/class-wapt-plugin.php:206
|
102 |
+
msgid "Without image"
|
103 |
+
msgstr ""
|
104 |
+
|
105 |
+
#: includes/class-wapt-plugin.php:245
|
106 |
+
msgid "Without featured image"
|
107 |
+
msgstr ""
|
108 |
+
|
109 |
+
#: admin/ajax/check-license.php:27
|
110 |
+
msgid "Licensing action not passed or this action is prohibited!"
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
+
#: admin/ajax/check-license.php:39
|
114 |
+
msgid ""
|
115 |
+
"License key is empty or license key too long (license key is 32 characters "
|
116 |
+
"long)"
|
117 |
+
msgstr ""
|
118 |
+
|
119 |
+
#: admin/ajax/check-license.php:42
|
120 |
+
msgid "Your license has been successfully activated"
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
+
#: admin/ajax/check-license.php:47
|
124 |
+
msgid "The license is deactivated"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: admin/ajax/check-license.php:51
|
128 |
+
msgid "The license has been updated"
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: admin/ajax/check-license.php:55
|
132 |
+
msgid "Subscription success cancelled"
|
133 |
+
msgstr ""
|
134 |
+
|
135 |
+
#: admin/pages/about.php:45
|
136 |
+
msgid "About APT"
|
137 |
+
msgstr ""
|
138 |
+
|
139 |
+
#: admin/pages/about.php:46
|
140 |
+
msgid "About"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: admin/pages/generate.php:101
|
144 |
+
msgid "Generate featured images"
|
145 |
+
msgstr ""
|
146 |
+
|
147 |
+
#: admin/pages/license.php:91
|
148 |
+
msgid "License of APT"
|
149 |
+
msgstr ""
|
150 |
+
|
151 |
+
#: admin/pages/settings.php:46
|
152 |
+
msgid "Settings of APT"
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: admin/pages/settings.php:47 admin/views/tab-settings.php:40
|
156 |
+
msgid "Settings"
|
157 |
+
msgstr ""
|
158 |
+
|
159 |
+
#: admin/pages/settings.php:100
|
160 |
+
msgid "Automatic set featured image on save"
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
#: admin/pages/settings.php:102
|
164 |
+
msgid "Set the first image in a post as the featured image"
|
165 |
+
msgstr ""
|
166 |
+
|
167 |
+
#: admin/pages/settings.php:109 admin/pages/settings.php:111
|
168 |
+
msgid "Delete settings when removing the plugin"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: admin/pages/settings.php:118
|
172 |
+
msgid "Generate featured image from title"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
#: admin/pages/settings.php:120
|
176 |
+
msgid ""
|
177 |
+
"A featured image will be created automatically from the title on a colored "
|
178 |
+
"background"
|
179 |
+
msgstr ""
|
180 |
+
|
181 |
+
#: admin/pages/settings.php:141
|
182 |
+
msgid "Background settings"
|
183 |
+
msgstr ""
|
184 |
+
|
185 |
+
#: admin/pages/settings.php:153
|
186 |
+
msgid "Color"
|
187 |
+
msgstr ""
|
188 |
+
|
189 |
+
#: admin/pages/settings.php:157
|
190 |
+
msgid "Background type"
|
191 |
+
msgstr ""
|
192 |
+
|
193 |
+
#: admin/pages/settings.php:158
|
194 |
+
msgid "Select the background type for the featured image"
|
195 |
+
msgstr ""
|
196 |
+
|
197 |
+
#: admin/pages/settings.php:166
|
198 |
+
msgid "Background color for the image"
|
199 |
+
msgstr ""
|
200 |
+
|
201 |
+
#: admin/pages/settings.php:167
|
202 |
+
msgid "Set the background color for the featured image"
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
#: admin/pages/settings.php:174
|
206 |
+
msgid "Select image"
|
207 |
+
msgstr ""
|
208 |
+
|
209 |
+
#: admin/pages/settings.php:175
|
210 |
+
msgid "Background image"
|
211 |
+
msgstr ""
|
212 |
+
|
213 |
+
#: admin/pages/settings.php:176
|
214 |
+
msgid "Set the background image. Only JPG or PNG"
|
215 |
+
msgstr ""
|
216 |
+
|
217 |
+
#: admin/pages/settings.php:186
|
218 |
+
msgid "JPEG"
|
219 |
+
msgstr ""
|
220 |
+
|
221 |
+
#: admin/pages/settings.php:187
|
222 |
+
msgid "PNG"
|
223 |
+
msgstr ""
|
224 |
+
|
225 |
+
#: admin/pages/settings.php:190
|
226 |
+
msgid "Image format"
|
227 |
+
msgstr ""
|
228 |
+
|
229 |
+
#: admin/pages/settings.php:191
|
230 |
+
msgid "Set format to save images"
|
231 |
+
msgstr ""
|
232 |
+
|
233 |
+
#: admin/pages/settings.php:196
|
234 |
+
msgid "Font settings"
|
235 |
+
msgstr ""
|
236 |
+
|
237 |
+
#: admin/pages/settings.php:208
|
238 |
+
msgid "Font name"
|
239 |
+
msgstr ""
|
240 |
+
|
241 |
+
#: admin/pages/settings.php:209
|
242 |
+
msgid "Select a font for the text in the featured image"
|
243 |
+
msgstr ""
|
244 |
+
|
245 |
+
#: admin/pages/settings.php:219
|
246 |
+
msgid "Font size"
|
247 |
+
msgstr ""
|
248 |
+
|
249 |
+
#: admin/pages/settings.php:220
|
250 |
+
msgid "Set the font size for the featured image"
|
251 |
+
msgstr ""
|
252 |
+
|
253 |
+
#: admin/pages/settings.php:226
|
254 |
+
msgid "Font color"
|
255 |
+
msgstr ""
|
256 |
+
|
257 |
+
#: admin/pages/settings.php:227
|
258 |
+
msgid "Set the font color for the featured image"
|
259 |
+
msgstr ""
|
260 |
+
|
261 |
+
#: admin/pages/settings.php:233
|
262 |
+
msgid "Text settings"
|
263 |
+
msgstr ""
|
264 |
+
|
265 |
+
#: admin/pages/settings.php:245
|
266 |
+
msgid "Text shadow"
|
267 |
+
msgstr ""
|
268 |
+
|
269 |
+
#: admin/pages/settings.php:246
|
270 |
+
msgid "Use text shadow?"
|
271 |
+
msgstr ""
|
272 |
+
|
273 |
+
#: admin/pages/settings.php:258
|
274 |
+
msgid "Shadow color"
|
275 |
+
msgstr ""
|
276 |
+
|
277 |
+
#: admin/pages/settings.php:259
|
278 |
+
msgid "Set the shadow color for the text"
|
279 |
+
msgstr ""
|
280 |
+
|
281 |
+
#: admin/pages/settings.php:267
|
282 |
+
msgid "No transform"
|
283 |
+
msgstr ""
|
284 |
+
|
285 |
+
#: admin/pages/settings.php:268
|
286 |
+
msgid "Uppercase"
|
287 |
+
msgstr ""
|
288 |
+
|
289 |
+
#: admin/pages/settings.php:269
|
290 |
+
msgid "Lowercase"
|
291 |
+
msgstr ""
|
292 |
+
|
293 |
+
#: admin/pages/settings.php:272
|
294 |
+
msgid "Text transform"
|
295 |
+
msgstr ""
|
296 |
+
|
297 |
+
#: admin/pages/settings.php:273
|
298 |
+
msgid "Select type of text transformation"
|
299 |
+
msgstr ""
|
300 |
+
|
301 |
+
#: admin/pages/settings.php:280
|
302 |
+
msgid "chars"
|
303 |
+
msgstr ""
|
304 |
+
|
305 |
+
#: admin/pages/settings.php:282
|
306 |
+
msgid "Text length"
|
307 |
+
msgstr ""
|
308 |
+
|
309 |
+
#: admin/pages/settings.php:283
|
310 |
+
msgid "Set the maximum text length"
|
311 |
+
msgstr ""
|
312 |
+
|
313 |
+
#: admin/pages/settings.php:292
|
314 |
+
msgid "Line spacing"
|
315 |
+
msgstr ""
|
316 |
+
|
317 |
+
#: admin/pages/settings.php:293
|
318 |
+
msgid "Set the line spacing"
|
319 |
+
msgstr ""
|
320 |
+
|
321 |
+
#: admin/pages/settings.php:299
|
322 |
+
msgid "Alignment"
|
323 |
+
msgstr ""
|
324 |
+
|
325 |
+
#: admin/pages/settings.php:311
|
326 |
+
msgid "Left"
|
327 |
+
msgstr ""
|
328 |
+
|
329 |
+
#: admin/pages/settings.php:312 admin/pages/settings.php:327
|
330 |
+
msgid "Center"
|
331 |
+
msgstr ""
|
332 |
+
|
333 |
+
#: admin/pages/settings.php:313
|
334 |
+
msgid "Right"
|
335 |
+
msgstr ""
|
336 |
+
|
337 |
+
#: admin/pages/settings.php:316
|
338 |
+
msgid "Horizontal text alignment"
|
339 |
+
msgstr ""
|
340 |
+
|
341 |
+
#: admin/pages/settings.php:317
|
342 |
+
msgid "Select how to horizontally align the text on the image"
|
343 |
+
msgstr ""
|
344 |
+
|
345 |
+
#: admin/pages/settings.php:326
|
346 |
+
msgid "Top"
|
347 |
+
msgstr ""
|
348 |
+
|
349 |
+
#: admin/pages/settings.php:328
|
350 |
+
msgid "Bottom"
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#: admin/pages/settings.php:331
|
354 |
+
msgid "Vertical text alignment"
|
355 |
+
msgstr ""
|
356 |
+
|
357 |
+
#: admin/pages/settings.php:332
|
358 |
+
msgid "Select how to vertically align the text on the image"
|
359 |
+
msgstr ""
|
360 |
+
|
361 |
+
#: admin/pages/settings.php:339
|
362 |
+
msgid "Padding"
|
363 |
+
msgstr ""
|
364 |
+
|
365 |
+
#: admin/pages/settings.php:350 admin/pages/settings.php:361
|
366 |
+
msgid "px"
|
367 |
+
msgstr ""
|
368 |
+
|
369 |
+
#: admin/pages/settings.php:352
|
370 |
+
msgid "Top/bottom text padding"
|
371 |
+
msgstr ""
|
372 |
+
|
373 |
+
#: admin/pages/settings.php:353
|
374 |
+
msgid "Padding at the top and bottom of the text"
|
375 |
+
msgstr ""
|
376 |
+
|
377 |
+
#: admin/pages/settings.php:363
|
378 |
+
msgid "Left/right text padding"
|
379 |
+
msgstr ""
|
380 |
+
|
381 |
+
#: admin/pages/settings.php:364
|
382 |
+
msgid "Padding at the left and right of the text"
|
383 |
+
msgstr ""
|
384 |
+
|
385 |
+
#: admin/pages/settings.php:371
|
386 |
+
msgid "Addition of text"
|
387 |
+
msgstr ""
|
388 |
+
|
389 |
+
#: admin/pages/settings.php:382
|
390 |
+
msgid "String before text"
|
391 |
+
msgstr ""
|
392 |
+
|
393 |
+
#: admin/pages/settings.php:383
|
394 |
+
msgid "Additional string before text. For a line break, use <b>[br]</b>"
|
395 |
+
msgstr ""
|
396 |
+
|
397 |
+
#: admin/pages/settings.php:392
|
398 |
+
msgid "String after text"
|
399 |
+
msgstr ""
|
400 |
+
|
401 |
+
#: admin/pages/settings.php:393
|
402 |
+
msgid "Additional string after text. For a line break, use <b>[br]</b>"
|
403 |
+
msgstr ""
|
404 |
+
|
405 |
+
#: admin/pages/settings.php:419
|
406 |
+
msgid "How to get google api key & custom search engine id"
|
407 |
+
msgstr ""
|
408 |
+
|
409 |
+
#: admin/pages/settings.php:436
|
410 |
+
msgid "API key for Google"
|
411 |
+
msgstr ""
|
412 |
+
|
413 |
+
#: admin/pages/settings.php:444
|
414 |
+
msgid "Google Custom Search Engine ID"
|
415 |
+
msgstr ""
|
416 |
+
|
417 |
+
#: admin/pages/settings.php:445
|
418 |
+
msgid "You can get API key after registration on the site"
|
419 |
+
msgstr ""
|
420 |
+
|
421 |
+
#: admin/views/tab-license.php:11
|
422 |
+
#, php-format
|
423 |
+
msgid "Activate %s"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: admin/views/tab-license.php:22
|
427 |
+
msgid "Upgrade to Premium"
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: admin/views/tab-license.php:25
|
431 |
+
#, php-format
|
432 |
+
msgid "Your current license for %1$s:"
|
433 |
+
msgstr ""
|
434 |
+
|
435 |
+
#: admin/views/tab-license.php:31
|
436 |
+
msgid "Delete Key"
|
437 |
+
msgstr ""
|
438 |
+
|
439 |
+
#: admin/views/tab-license.php:35
|
440 |
+
msgid "Synchronization"
|
441 |
+
msgstr ""
|
442 |
+
|
443 |
+
#: admin/views/tab-license.php:54
|
444 |
+
msgid ""
|
445 |
+
"Public License is a GPLv2 compatible license allowing you to change and use "
|
446 |
+
"this version of the plugin for free. Please keep in mind this license covers "
|
447 |
+
"only free edition of the plugin. Premium versions are distributed with other "
|
448 |
+
"type of a license."
|
449 |
+
msgstr ""
|
450 |
+
|
451 |
+
#: admin/views/tab-license.php:58
|
452 |
+
msgid ""
|
453 |
+
"You use a paid subscription for the plugin updates. In case you don’t want "
|
454 |
+
"to receive paid updates, please, click <a data-action=\"unsubscribe\" "
|
455 |
+
"class=\"wapt-control-btn\" href=\"#\">cancel subscription</a>"
|
456 |
+
msgstr ""
|
457 |
+
|
458 |
+
#: admin/views/tab-license.php:64
|
459 |
+
msgid ""
|
460 |
+
"Your license has expired, please extend the license to get updates and "
|
461 |
+
"support."
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: admin/views/tab-license.php:72
|
465 |
+
msgid "domain"
|
466 |
+
msgstr ""
|
467 |
+
|
468 |
+
#: admin/views/tab-license.php:76
|
469 |
+
msgid "plan"
|
470 |
+
msgstr ""
|
471 |
+
|
472 |
+
#: admin/views/tab-license.php:82
|
473 |
+
msgid "of"
|
474 |
+
msgstr ""
|
475 |
+
|
476 |
+
#: admin/views/tab-license.php:84
|
477 |
+
msgid "active sites"
|
478 |
+
msgstr ""
|
479 |
+
|
480 |
+
#: admin/views/tab-license.php:89
|
481 |
+
msgid "version"
|
482 |
+
msgstr ""
|
483 |
+
|
484 |
+
#: admin/views/tab-license.php:94
|
485 |
+
msgid "EXPIRED!"
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: admin/views/tab-license.php:95
|
489 |
+
msgid "please update the key"
|
490 |
+
msgstr ""
|
491 |
+
|
492 |
+
#: admin/views/tab-license.php:105
|
493 |
+
msgid "day(s)"
|
494 |
+
msgstr ""
|
495 |
+
|
496 |
+
#: admin/views/tab-license.php:107
|
497 |
+
msgid "remained"
|
498 |
+
msgstr ""
|
499 |
+
|
500 |
+
#: admin/views/tab-license.php:118
|
501 |
+
msgid "Have a key to activate the premium version? Paste it here:"
|
502 |
+
msgstr ""
|
503 |
+
|
504 |
+
#: admin/views/tab-license.php:120
|
505 |
+
msgid "Have a key to activate the plugin? Paste it here:"
|
506 |
+
msgstr ""
|
507 |
+
|
508 |
+
#: admin/views/tab-license.php:126
|
509 |
+
msgid "Submit Key"
|
510 |
+
msgstr ""
|
511 |
+
|
512 |
+
#: admin/views/tab-license.php:134
|
513 |
+
#, php-format
|
514 |
+
msgid ""
|
515 |
+
"<a href=\"%s\" target=\"_blank\" rel=\"noopener\">Lean more</a> about the "
|
516 |
+
"premium version and get the license key to activate it now!"
|
517 |
+
msgstr ""
|
518 |
+
|
519 |
+
#: admin/views/tab-license.php:138
|
520 |
+
#, php-format
|
521 |
+
msgid ""
|
522 |
+
"Can’t find your key? Go to <a href=\"%s\" target=\"_blank\" rel=\"noopener\">"
|
523 |
+
"this page</a> and login using the e-mail address associated with your "
|
524 |
+
"purchase."
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: admin/views/tab-main.php:2
|
528 |
+
msgid "Generate Featured images for posts"
|
529 |
+
msgstr ""
|
530 |
+
|
531 |
+
#: admin/views/tab-main.php:22
|
532 |
+
msgid "Generate Featured images"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: admin/views/tab-main.php:25
|
536 |
+
msgid "Delete Featured images"
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: admin/views/tab-main.php:42
|
540 |
+
msgid ""
|
541 |
+
"Note: Thumbnails won't be generated for posts that already have post "
|
542 |
+
"thumbnail or <strong><em>skip_post_thumb</em></strong> custom meta field."
|
543 |
+
msgstr ""
|
544 |
+
|
545 |
+
#: admin/views/tab-main.php:44
|
546 |
+
msgid "You must enable Javascript in order to proceed!"
|
547 |
+
msgstr ""
|
548 |
+
|
549 |
+
#: admin/views/tab-main.php:103 admin/views/tab-main.php:164
|
550 |
+
msgid "All done! Processed posts:"
|
551 |
+
msgstr ""
|
552 |
+
|
553 |
+
#: admin/views/tab-main.php:103
|
554 |
+
msgid "Set featured image in posts:"
|
555 |
+
msgstr ""
|
556 |
+
|
557 |
+
#: admin/views/tab-main.php:164
|
558 |
+
msgid "Delete featured image in posts:"
|
559 |
+
msgstr ""
|
560 |
+
|
561 |
+
#: admin/views/sources/google.php:40
|
562 |
+
msgid "No hits"
|
563 |
+
msgstr ""
|
564 |
+
|
565 |
+
#: admin/views/sources/google.php:156
|
566 |
+
msgid "Search..."
|
567 |
+
msgstr ""
|
568 |
+
|
569 |
+
#: admin/views/sources/google.php:158
|
570 |
+
msgid "Search"
|
571 |
+
msgstr ""
|
572 |
+
|
573 |
+
#: admin/views/sources/google.php:165
|
574 |
+
msgid "Prev"
|
575 |
+
msgstr ""
|
576 |
+
|
577 |
+
#: admin/views/sources/google.php:168
|
578 |
+
msgid "Next"
|
579 |
+
msgstr ""
|
580 |
+
|
581 |
+
#: admin/views/sources/google.php:177
|
582 |
+
msgid "API key is missing. Add it in APT settings"
|
583 |
+
msgstr ""
|
584 |
+
|
585 |
+
#. Description of the plugin
|
586 |
+
msgid ""
|
587 |
+
"Automatically generate the Post Thumbnail (Featured Thumbnail) from the "
|
588 |
+
"first image in post (or any custom post type) only if Post Thumbnail is not "
|
589 |
+
"set manually."
|
590 |
+
msgstr ""
|
591 |
+
|
592 |
+
#. URI of the plugin
|
593 |
+
msgid "https://cm-wp.com/apt"
|
594 |
+
msgstr ""
|
595 |
+
|
596 |
+
#. Author of the plugin
|
597 |
+
msgid "Creativemotion <support@cm-wp.com>"
|
598 |
+
msgstr ""
|
599 |
+
|
600 |
+
#. Author URI of the plugin
|
601 |
+
msgid "cm-wp.com"
|
602 |
+
msgstr ""
|
libs/factory/adverts/boot.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
use WBCR\
|
4 |
|
5 |
/**
|
6 |
* Factory Adverts
|
@@ -20,31 +20,31 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
-
if ( defined( '
|
24 |
return;
|
25 |
}
|
26 |
|
27 |
# Устанавливаем константу, что модуль уже загружен
|
28 |
-
define( '
|
29 |
|
30 |
# Устанавливаем версию модуля
|
31 |
-
define( '
|
32 |
|
33 |
# Регистрируем тектовый домен, для интернализации интерфейса модуля
|
34 |
-
load_plugin_textdomain( '
|
35 |
|
36 |
# Устанавливаем директорию модуля
|
37 |
-
define( '
|
38 |
|
39 |
# Устанавливаем url модуля
|
40 |
-
define( '
|
41 |
|
42 |
-
require_once(
|
43 |
-
require_once(
|
44 |
|
45 |
/**
|
46 |
-
* @param
|
47 |
*/
|
48 |
-
add_action( '
|
49 |
-
$plugin->set_adverts_manager( "WBCR\
|
50 |
} );
|
1 |
<?php
|
2 |
|
3 |
+
use WBCR\Factory_Adverts_106\Base;
|
4 |
|
5 |
/**
|
6 |
* Factory Adverts
|
20 |
exit;
|
21 |
}
|
22 |
|
23 |
+
if ( defined( 'FACTORY_ADVERTS_106_LOADED' ) || ( defined( 'FACTORY_ADVERTS_BLOCK' ) && FACTORY_ADVERTS_BLOCK ) ) {
|
24 |
return;
|
25 |
}
|
26 |
|
27 |
# Устанавливаем константу, что модуль уже загружен
|
28 |
+
define( 'FACTORY_ADVERTS_106_LOADED', true );
|
29 |
|
30 |
# Устанавливаем версию модуля
|
31 |
+
define( 'FACTORY_ADVERTS_106_VERSION', '1.0.6' );
|
32 |
|
33 |
# Регистрируем тектовый домен, для интернализации интерфейса модуля
|
34 |
+
load_plugin_textdomain( 'wbcr_factory_adverts_106', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
|
35 |
|
36 |
# Устанавливаем директорию модуля
|
37 |
+
define( 'FACTORY_ADVERTS_106_DIR', dirname( __FILE__ ) );
|
38 |
|
39 |
# Устанавливаем url модуля
|
40 |
+
define( 'FACTORY_ADVERTS_106_URL', plugins_url( null, __FILE__ ) );
|
41 |
|
42 |
+
require_once( FACTORY_ADVERTS_106_DIR . '/includes/class-rest-request.php' );
|
43 |
+
require_once( FACTORY_ADVERTS_106_DIR . '/includes/class-base.php' );
|
44 |
|
45 |
/**
|
46 |
+
* @param Wbcr_Factory425_Plugin $plugin
|
47 |
*/
|
48 |
+
add_action( 'wbcr_factory_adverts_106_plugin_created', function ( $plugin ) {
|
49 |
+
$plugin->set_adverts_manager( "WBCR\Factory_Adverts_106\Base" );
|
50 |
} );
|
libs/factory/adverts/includes/class-base.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -28,7 +28,7 @@ class Base {
|
|
28 |
*
|
29 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
30 |
* @since 1.0.1
|
31 |
-
* @var \
|
32 |
*/
|
33 |
private $plugin;
|
34 |
|
@@ -53,7 +53,7 @@ class Base {
|
|
53 |
*
|
54 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
55 |
* @since 1.0.1
|
56 |
-
* @var \WBCR\
|
57 |
*/
|
58 |
private $api;
|
59 |
|
@@ -82,9 +82,9 @@ class Base {
|
|
82 |
*
|
83 |
* @since 1.0.0 Added
|
84 |
*
|
85 |
-
* @param \
|
86 |
*/
|
87 |
-
public function __construct( \
|
88 |
$this->plugin = $plugin;
|
89 |
|
90 |
$this->settings = wp_parse_args( $settings, [
|
@@ -257,7 +257,7 @@ class Base {
|
|
257 |
$content = $this->get_debug_message( 'dashboard_widget' );
|
258 |
}
|
259 |
|
260 |
-
require_once
|
261 |
new Dashboard_Widget( $this->plugin, $content );
|
262 |
}
|
263 |
}
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Adverts_106;
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
28 |
*
|
29 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
30 |
* @since 1.0.1
|
31 |
+
* @var \Wbcr_Factory425_Plugin
|
32 |
*/
|
33 |
private $plugin;
|
34 |
|
53 |
*
|
54 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
55 |
* @since 1.0.1
|
56 |
+
* @var \WBCR\Factory_Adverts_106\Creative_Motion_API
|
57 |
*/
|
58 |
private $api;
|
59 |
|
82 |
*
|
83 |
* @since 1.0.0 Added
|
84 |
*
|
85 |
+
* @param \Wbcr_Factory425_Plugin $plugin
|
86 |
*/
|
87 |
+
public function __construct( \Wbcr_Factory425_Plugin $plugin, $settings ) {
|
88 |
$this->plugin = $plugin;
|
89 |
|
90 |
$this->settings = wp_parse_args( $settings, [
|
257 |
$content = $this->get_debug_message( 'dashboard_widget' );
|
258 |
}
|
259 |
|
260 |
+
require_once FACTORY_ADVERTS_106_DIR . '/includes/class-dashboard-widget.php';
|
261 |
new Dashboard_Widget( $this->plugin, $content );
|
262 |
}
|
263 |
}
|
libs/factory/adverts/includes/class-dashboard-widget.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -35,7 +35,7 @@ class Dashboard_Widget {
|
|
35 |
*
|
36 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
37 |
* @since 1.0.1
|
38 |
-
* @var \
|
39 |
*/
|
40 |
private $plugin;
|
41 |
|
@@ -46,10 +46,10 @@ class Dashboard_Widget {
|
|
46 |
*
|
47 |
* @since 1.0.0 Added
|
48 |
*
|
49 |
-
* @param \
|
50 |
* @param string $content
|
51 |
*/
|
52 |
-
public function __construct( \
|
53 |
|
54 |
$this->plugin = $plugin;
|
55 |
$this->content = $content;
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Adverts_106;
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
35 |
*
|
36 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
37 |
* @since 1.0.1
|
38 |
+
* @var \Wbcr_Factory425_Plugin
|
39 |
*/
|
40 |
private $plugin;
|
41 |
|
46 |
*
|
47 |
* @since 1.0.0 Added
|
48 |
*
|
49 |
+
* @param \Wbcr_Factory425_Plugin $plugin
|
50 |
* @param string $content
|
51 |
*/
|
52 |
+
public function __construct( \Wbcr_Factory425_Plugin $plugin, $content ) {
|
53 |
|
54 |
$this->plugin = $plugin;
|
55 |
$this->content = $content;
|
libs/factory/adverts/includes/class-rest-request.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
namespace WBCR\
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -65,7 +65,7 @@ class Creative_Motion_API {
|
|
65 |
*
|
66 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
67 |
* @since 1.0.1
|
68 |
-
* @var \
|
69 |
*/
|
70 |
private $plugin;
|
71 |
|
@@ -77,9 +77,9 @@ class Creative_Motion_API {
|
|
77 |
*
|
78 |
* @since 1.0.0 Added
|
79 |
*
|
80 |
-
* @param \
|
81 |
*/
|
82 |
-
public function __construct( \
|
83 |
$this->plugin = $plugin;
|
84 |
}
|
85 |
|
@@ -125,7 +125,7 @@ class Creative_Motion_API {
|
|
125 |
return $this->do_api_request( $position );
|
126 |
}
|
127 |
|
128 |
-
$key = $this->plugin->getPrefix() . md5( $position . '
|
129 |
|
130 |
$cached = get_transient( $key );
|
131 |
|
@@ -133,7 +133,7 @@ class Creative_Motion_API {
|
|
133 |
if ( isset( $cached['error_code'] ) && isset( $cached['error'] ) ) {
|
134 |
return new \WP_Error( $cached['error_code'], $cached['error'] );
|
135 |
}
|
136 |
-
|
137 |
return $cached;
|
138 |
}
|
139 |
|
@@ -147,8 +147,8 @@ class Creative_Motion_API {
|
|
147 |
|
148 |
return $data;
|
149 |
}
|
150 |
-
|
151 |
-
set_transient( $key, $data,
|
152 |
|
153 |
return $data;
|
154 |
}
|
1 |
<?php
|
2 |
|
3 |
+
namespace WBCR\Factory_Adverts_106;
|
4 |
|
5 |
// Exit if accessed directly
|
6 |
if ( ! defined( 'ABSPATH' ) ) {
|
65 |
*
|
66 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
67 |
* @since 1.0.1
|
68 |
+
* @var \Wbcr_Factory425_Plugin
|
69 |
*/
|
70 |
private $plugin;
|
71 |
|
77 |
*
|
78 |
* @since 1.0.0 Added
|
79 |
*
|
80 |
+
* @param \Wbcr_Factory425_Plugin $plugin_name
|
81 |
*/
|
82 |
+
public function __construct( \Wbcr_Factory425_Plugin $plugin ) {
|
83 |
$this->plugin = $plugin;
|
84 |
}
|
85 |
|
125 |
return $this->do_api_request( $position );
|
126 |
}
|
127 |
|
128 |
+
$key = $this->plugin->getPrefix() . md5( $position . 'adverts_transient_' );
|
129 |
|
130 |
$cached = get_transient( $key );
|
131 |
|
133 |
if ( isset( $cached['error_code'] ) && isset( $cached['error'] ) ) {
|
134 |
return new \WP_Error( $cached['error_code'], $cached['error'] );
|
135 |
}
|
136 |
+
|
137 |
return $cached;
|
138 |
}
|
139 |
|
147 |
|
148 |
return $data;
|
149 |
}
|
150 |
+
|
151 |
+
set_transient( $key, $data, self::DEFAULT_REQUESTS_INTERVAL * HOUR_IN_SECONDS );
|
152 |
|
153 |
return $data;
|
154 |
}
|
libs/factory/adverts/langs/wbcr_factory_adverts_106-ru_RU.mo
ADDED
Binary file
|
libs/factory/adverts/langs/wbcr_factory_adverts_106-ru_RU.po
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: factory_forms\n"
|
4 |
+
"POT-Creation-Date: 2018-10-16 22:44+0300\n"
|
5 |
+
"PO-Revision-Date: 2018-10-16 22:45+0300\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\n"
|
8 |
+
"Language: ru_RU\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 2.1.1\n"
|
13 |
+
"X-Poedit-Basepath: ..\n"
|
14 |
+
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
15 |
+
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
16 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
|
18 |
+
"X-Poedit-SearchPath-0: .\n"
|
19 |
+
|
20 |
+
#: includes/check-compatibility.php:80
|
21 |
+
msgid "warning"
|
22 |
+
msgstr "предупреждение"
|
23 |
+
|
24 |
+
#: includes/check-compatibility.php:82
|
25 |
+
#, php-format
|
26 |
+
msgid "The %s plugin has stopped."
|
27 |
+
msgstr "Работа плагина %s была остановлена."
|
28 |
+
|
29 |
+
#: includes/check-compatibility.php:83
|
30 |
+
msgid "Possible reasons:"
|
31 |
+
msgstr "Возможные причины:"
|
32 |
+
|
33 |
+
#: includes/check-compatibility.php:89
|
34 |
+
#, php-format
|
35 |
+
msgid "You need to update the PHP version to %s or higher!"
|
36 |
+
msgstr "Вам нужно обновить версию PHP до %s или выше!"
|
37 |
+
|
38 |
+
#: includes/check-compatibility.php:94
|
39 |
+
#, php-format
|
40 |
+
msgid "You need to update WordPress to %s or higher!"
|
41 |
+
msgstr "Вам нужно обновить WordPress до %s или выше!"
|
42 |
+
|
43 |
+
#: includes/functions.php:132
|
44 |
+
#, php-format
|
45 |
+
msgid ""
|
46 |
+
"%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead."
|
47 |
+
msgstr ""
|
48 |
+
"%1$s является <strong>устаревшим,</strong> начиная с версии %2$s в "
|
49 |
+
"Wordpress! Используйте %3$s."
|
50 |
+
|
51 |
+
#: includes/functions.php:134
|
52 |
+
#, php-format
|
53 |
+
msgid ""
|
54 |
+
"%1$s is <strong>deprecated</strong> since version %2$s with no alternative "
|
55 |
+
"available."
|
56 |
+
msgstr ""
|
57 |
+
"%1$s был вызван с параметром, который является <strong>устаревшими</strong> "
|
58 |
+
"начиная с версии %2$s , в настоящее время доступных альтернатив нет."
|
59 |
+
|
60 |
+
#: includes/plugin.class.php:202 includes/plugin.class.php:237
|
61 |
+
msgid ""
|
62 |
+
"You are trying to call this earlier than the plugin menu will be registered."
|
63 |
+
msgstr ""
|
64 |
+
"Вы пытаетесь вызвать это раньше, чем будет зарегистрировано меню плагина."
|
65 |
+
|
66 |
+
#: includes/plugin.class.php:220
|
67 |
+
msgid ""
|
68 |
+
"You are trying to get a link to a page that does not have multisite mode. "
|
69 |
+
"Clicking this link will lead the user to a non-existent page."
|
70 |
+
msgstr ""
|
71 |
+
"Вы пытаетесь получить ссылку на страницу, которая не имеет "
|
72 |
+
"многопользовательского режима. Щелчок по этой ссылке приведет пользователя "
|
73 |
+
"к несуществующей странице."
|
74 |
+
|
75 |
+
#: includes/plugin.class.php:222
|
76 |
+
msgid ""
|
77 |
+
"Trying to get a link to an unregistered page. You are trying to call this "
|
78 |
+
"earlier than the plugin menu will be registered."
|
79 |
+
msgstr ""
|
80 |
+
"Попытка получить ссылку на незарегистрированную страницу. Вы пытаетесь "
|
81 |
+
"вызвать это раньше, чем будет зарегистрировано меню плагина."
|
82 |
+
|
83 |
+
|
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-422 article,.factory-bootstrap-422 aside,.factory-bootstrap-422 details,.factory-bootstrap-422 figcaption,.factory-bootstrap-422 figure,.factory-bootstrap-422 footer,.factory-bootstrap-422 header,.factory-bootstrap-422 hgroup,.factory-bootstrap-422 main,.factory-bootstrap-422 nav,.factory-bootstrap-422 section,.factory-bootstrap-422 summary{display:block}.factory-bootstrap-422 audio,.factory-bootstrap-422 canvas,.factory-bootstrap-422 video{display:inline-block}.factory-bootstrap-422 audio:not([controls]){display:none;height:0}.factory-bootstrap-422 [hidden],.factory-bootstrap-422 template{display:none}.factory-bootstrap-422 body{margin:0}.factory-bootstrap-422 a{background:0 0}.factory-bootstrap-422 a:focus{outline:thin dotted}.factory-bootstrap-422 a:active,.factory-bootstrap-422 a:hover{outline:0}.factory-bootstrap-422 h1{margin:.67em 0}.factory-bootstrap-422 b,.factory-bootstrap-422 strong{font-weight:700}.factory-bootstrap-422 dfn{font-style:italic}.factory-bootstrap-422 hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-422 mark{color:#000;background:#ff0}.factory-bootstrap-422 code,.factory-bootstrap-422 kbd,.factory-bootstrap-422 pre,.factory-bootstrap-422 samp{font-size:1em}.factory-bootstrap-422 pre{white-space:pre-wrap}.factory-bootstrap-422 q{quotes:"\201C" "\201D" "\2018" "\2019"}.factory-bootstrap-422 sub,.factory-bootstrap-422 sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.factory-bootstrap-422 sup{top:-.5em}.factory-bootstrap-422 sub{bottom:-.25em}.factory-bootstrap-422 img{border:0}.factory-bootstrap-422 svg:not(:root){overflow:hidden}.factory-bootstrap-422 figure{margin:0}.factory-bootstrap-422 button,.factory-bootstrap-422 input,.factory-bootstrap-422 select,.factory-bootstrap-422 textarea{margin:0}.factory-bootstrap-422 button,.factory-bootstrap-422 select{text-transform:none}.factory-bootstrap-422 select{padding-right:4px!important}.factory-bootstrap-422 button,.factory-bootstrap-422 input[type=reset],.factory-bootstrap-422 input[type=submit],html .factory-bootstrap-422 input[type=button]{cursor:pointer;-webkit-appearance:button}.factory-bootstrap-422 button[disabled],html .factory-bootstrap-422 input[disabled]{cursor:default}.factory-bootstrap-422 input[type=checkbox],.factory-bootstrap-422 input[type=radio]{padding:0;box-sizing:border-box}.factory-bootstrap-422 input[type=search]{-webkit-appearance:textfield}.factory-bootstrap-422 input[type=search]::-webkit-search-cancel-button,.factory-bootstrap-422 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.factory-bootstrap-422 button::-moz-focus-inner,.factory-bootstrap-422 input::-moz-focus-inner{padding:0;border:0}.factory-bootstrap-422 textarea{overflow:auto;vertical-align:top}.factory-bootstrap-422 table{border-collapse:collapse;border-spacing:0}@media print{.factory-bootstrap-422 *{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}.factory-bootstrap-422 a,.factory-bootstrap-422 a:visited{text-decoration:underline}.factory-bootstrap-422 a[href]:after{content:" (" attr(href) ")"}.factory-bootstrap-422 abbr[title]:after{content:" (" attr(title) ")"}.factory-bootstrap-422 a[href^="javascript:"]:after,.factory-bootstrap-422 a[href^="#"]:after{content:""}.factory-bootstrap-422 blockquote,.factory-bootstrap-422 pre{border:1px solid #999;page-break-inside:avoid}.factory-bootstrap-422 thead{display:table-header-group}.factory-bootstrap-422 img,.factory-bootstrap-422 tr{page-break-inside:avoid}.factory-bootstrap-422 img{max-width:100%!important}@page{margin:2cm .5cm}.factory-bootstrap-422 h2,.factory-bootstrap-422 h3,.factory-bootstrap-422 p{orphans:3;widows:3}.factory-bootstrap-422 h2,.factory-bootstrap-422 h3{page-break-after:avoid}.factory-bootstrap-422 select{background:#fff!important}.factory-bootstrap-422 .navbar{display:none}.factory-bootstrap-422 .table td,.factory-bootstrap-422 .table th{background-color:#fff!important}.factory-bootstrap-422 .btn>.caret,.factory-bootstrap-422 .dropup>.btn>.caret{border-top-color:#000!important}.factory-bootstrap-422 .label{border:1px solid #000}.factory-bootstrap-422 .table{border-collapse:collapse!important}.factory-bootstrap-422 .table-bordered td,.factory-bootstrap-422 .table-bordered th{border:1px solid #ddd!important}}.factory-bootstrap-422 *,.factory-bootstrap-422 :after,.factory-bootstrap-422 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html .factory-bootstrap-422{-webkit-tap-highlight-color:rgba(0,0,0,0)}.factory-bootstrap-422 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.factory-bootstrap-422 button,.factory-bootstrap-422 input,.factory-bootstrap-422 select,.factory-bootstrap-422 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.factory-bootstrap-422 img{vertical-align:middle}.factory-bootstrap-422 .img-responsive{display:block;height:auto;max-width:100%}.factory-bootstrap-422 .img-rounded{border-radius:6px}.factory-bootstrap-422 .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-422 .img-circle{border-radius:50%}.factory-bootstrap-422 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.factory-bootstrap-422 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.factory-bootstrap-422 .h1,.factory-bootstrap-422 .h2,.factory-bootstrap-422 .h3,.factory-bootstrap-422 .h4,.factory-bootstrap-422 .h5,.factory-bootstrap-422 .h6,.factory-bootstrap-422 h1,.factory-bootstrap-422 h2,.factory-bootstrap-422 h3,.factory-bootstrap-422 h4,.factory-bootstrap-422 h5,.factory-bootstrap-422 h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.factory-bootstrap-422 .h1 .small,.factory-bootstrap-422 .h1 small,.factory-bootstrap-422 .h2 .small,.factory-bootstrap-422 .h2 small,.factory-bootstrap-422 .h3 .small,.factory-bootstrap-422 .h3 small,.factory-bootstrap-422 .h4 .small,.factory-bootstrap-422 .h4 small,.factory-bootstrap-422 .h5 .small,.factory-bootstrap-422 .h5 small,.factory-bootstrap-422 .h6 .small,.factory-bootstrap-422 .h6 small,.factory-bootstrap-422 h1 .small,.factory-bootstrap-422 h1 small,.factory-bootstrap-422 h2 .small,.factory-bootstrap-422 h2 small,.factory-bootstrap-422 h3 .small,.factory-bootstrap-422 h3 small,.factory-bootstrap-422 h4 .small,.factory-bootstrap-422 h4 small,.factory-bootstrap-422 h5 .small,.factory-bootstrap-422 h5 small,.factory-bootstrap-422 h6 .small,.factory-bootstrap-422 h6 small{font-weight:400;line-height:1;color:#999}.factory-bootstrap-422 h1,.factory-bootstrap-422 h2,.factory-bootstrap-422 h3{margin-top:20px;margin-bottom:10px}.factory-bootstrap-422 h1 .small,.factory-bootstrap-422 h1 small,.factory-bootstrap-422 h2 .small,.factory-bootstrap-422 h2 small,.factory-bootstrap-422 h3 .small,.factory-bootstrap-422 h3 small{font-size:65%}.factory-bootstrap-422 h4,.factory-bootstrap-422 h5,.factory-bootstrap-422 h6{margin-top:10px;margin-bottom:10px}.factory-bootstrap-422 h4 .small,.factory-bootstrap-422 h4 small,.factory-bootstrap-422 h5 .small,.factory-bootstrap-422 h5 small,.factory-bootstrap-422 h6 .small,.factory-bootstrap-422 h6 small{font-size:75%}.factory-bootstrap-422 .h1,.factory-bootstrap-422 h1{font-size:36px}.factory-bootstrap-422 .h2,.factory-bootstrap-422 h2{font-size:30px}.factory-bootstrap-422 .h3,.factory-bootstrap-422 h3{font-size:24px}.factory-bootstrap-422 .h4,.factory-bootstrap-422 h4{font-size:18px}.factory-bootstrap-422 .h5,.factory-bootstrap-422 h5{font-size:14px}.factory-bootstrap-422 .h6,.factory-bootstrap-422 h6{font-size:12px}.factory-bootstrap-422 p{margin:0 0 10px}.factory-bootstrap-422 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.factory-bootstrap-422 .small,.factory-bootstrap-422 small{font-size:85%}.factory-bootstrap-422 cite{font-style:normal}.factory-bootstrap-422 .text-muted{color:#999}.factory-bootstrap-422 .text-primary{color:#428bca}.factory-bootstrap-422 .text-primary:hover{color:#3071a9}.factory-bootstrap-422 .text-warning{color:#8a6d3b}.factory-bootstrap-422 .text-warning:hover{color:#66512c}.factory-bootstrap-422 .text-danger{color:#a94442}.factory-bootstrap-422 .text-danger:hover{color:#843534}.factory-bootstrap-422 .text-success{color:#3c763d}.factory-bootstrap-422 .text-success:hover{color:#2b542c}.factory-bootstrap-422 .text-info{color:#31708f}.factory-bootstrap-422 .text-info:hover{color:#245269}.factory-bootstrap-422 .text-left{text-align:left}.factory-bootstrap-422 .text-right{text-align:right}.factory-bootstrap-422 .text-center{text-align:center}.factory-bootstrap-422 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.factory-bootstrap-422 ol,.factory-bootstrap-422 ul{margin-top:0;margin-bottom:10px}.factory-bootstrap-422 ol ol,.factory-bootstrap-422 ol ul,.factory-bootstrap-422 ul ol,.factory-bootstrap-422 ul ul{margin-bottom:0}.factory-bootstrap-422 .list-inline,.factory-bootstrap-422 .list-unstyled{padding-left:0;list-style:none}.factory-bootstrap-422 .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.factory-bootstrap-422 .list-inline>li:first-child{padding-left:0}.factory-bootstrap-422 dl{margin-top:0;margin-bottom:20px}.factory-bootstrap-422 dd,.factory-bootstrap-422 dt{line-height:1.428571429}.factory-bootstrap-422 dt{font-weight:700}.factory-bootstrap-422 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-422 abbr[data-original-title],.factory-bootstrap-422 abbr[title]{cursor:help;border-bottom:1px dotted #999}.factory-bootstrap-422 .initialism{font-size:90%;text-transform:uppercase}.factory-bootstrap-422 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.factory-bootstrap-422 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.factory-bootstrap-422 blockquote p:last-child{margin-bottom:0}.factory-bootstrap-422 blockquote .small,.factory-bootstrap-422 blockquote small{display:block;line-height:1.428571429;color:#999}.factory-bootstrap-422 blockquote .small:before,.factory-bootstrap-422 blockquote small:before{content:'\2014 \00A0'}.factory-bootstrap-422 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.factory-bootstrap-422 blockquote.pull-right .small,.factory-bootstrap-422 blockquote.pull-right p,.factory-bootstrap-422 blockquote.pull-right small{text-align:right}.factory-bootstrap-422 blockquote.pull-right .small:before,.factory-bootstrap-422 blockquote.pull-right small:before{content:''}.factory-bootstrap-422 blockquote.pull-right .small:after,.factory-bootstrap-422 blockquote.pull-right small:after{content:'\00A0 \2014'}.factory-bootstrap-422 blockquote:after,.factory-bootstrap-422 blockquote:before{content:""}.factory-bootstrap-422 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.factory-bootstrap-422 code,.factory-bootstrap-422 kbd,.factory-bootstrap-422 pre,.factory-bootstrap-422 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.factory-bootstrap-422 code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}.factory-bootstrap-422 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-422 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.factory-bootstrap-422 .pre-scrollable{max-height:340px;overflow-y:scroll}.factory-bootstrap-422 .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.factory-bootstrap-422 .container:after,.factory-bootstrap-422 .container:before{display:table;content:" "}.factory-bootstrap-422 .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-422 .row{margin-right:-15px;margin-left:-15px}.factory-bootstrap-422 .row:after,.factory-bootstrap-422 .row:before{display:table;content:" "}.factory-bootstrap-422 .row:after{clear:both}.factory-bootstrap-422 .col-lg-1,.factory-bootstrap-422 .col-lg-10,.factory-bootstrap-422 .col-lg-11,.factory-bootstrap-422 .col-lg-12,.factory-bootstrap-422 .col-lg-2,.factory-bootstrap-422 .col-lg-3,.factory-bootstrap-422 .col-lg-4,.factory-bootstrap-422 .col-lg-5,.factory-bootstrap-422 .col-lg-6,.factory-bootstrap-422 .col-lg-7,.factory-bootstrap-422 .col-lg-8,.factory-bootstrap-422 .col-lg-9,.factory-bootstrap-422 .col-md-1,.factory-bootstrap-422 .col-md-10,.factory-bootstrap-422 .col-md-11,.factory-bootstrap-422 .col-md-12,.factory-bootstrap-422 .col-md-2,.factory-bootstrap-422 .col-md-3,.factory-bootstrap-422 .col-md-4,.factory-bootstrap-422 .col-md-5,.factory-bootstrap-422 .col-md-6,.factory-bootstrap-422 .col-md-7,.factory-bootstrap-422 .col-md-8,.factory-bootstrap-422 .col-md-9,.factory-bootstrap-422 .col-sm-1,.factory-bootstrap-422 .col-sm-10,.factory-bootstrap-422 .col-sm-11,.factory-bootstrap-422 .col-sm-12,.factory-bootstrap-422 .col-sm-2,.factory-bootstrap-422 .col-sm-3,.factory-bootstrap-422 .col-sm-4,.factory-bootstrap-422 .col-sm-5,.factory-bootstrap-422 .col-sm-6,.factory-bootstrap-422 .col-sm-7,.factory-bootstrap-422 .col-sm-8,.factory-bootstrap-422 .col-sm-9,.factory-bootstrap-422 .col-xs-1,.factory-bootstrap-422 .col-xs-10,.factory-bootstrap-422 .col-xs-11,.factory-bootstrap-422 .col-xs-12,.factory-bootstrap-422 .col-xs-2,.factory-bootstrap-422 .col-xs-3,.factory-bootstrap-422 .col-xs-4,.factory-bootstrap-422 .col-xs-5,.factory-bootstrap-422 .col-xs-6,.factory-bootstrap-422 .col-xs-7,.factory-bootstrap-422 .col-xs-8,.factory-bootstrap-422 .col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.factory-bootstrap-422 .col-xs-1,.factory-bootstrap-422 .col-xs-10,.factory-bootstrap-422 .col-xs-11,.factory-bootstrap-422 .col-xs-12,.factory-bootstrap-422 .col-xs-2,.factory-bootstrap-422 .col-xs-3,.factory-bootstrap-422 .col-xs-4,.factory-bootstrap-422 .col-xs-5,.factory-bootstrap-422 .col-xs-6,.factory-bootstrap-422 .col-xs-7,.factory-bootstrap-422 .col-xs-8,.factory-bootstrap-422 .col-xs-9{float:left}.factory-bootstrap-422 .col-xs-12{width:100%}.factory-bootstrap-422 .col-xs-11{width:91.66666666666666%}.factory-bootstrap-422 .col-xs-10{width:83.33333333333334%}.factory-bootstrap-422 .col-xs-9{width:75%}.factory-bootstrap-422 .col-xs-8{width:66.66666666666666%}.factory-bootstrap-422 .col-xs-7{width:58.333333333333336%}.factory-bootstrap-422 .col-xs-6{width:50%}.factory-bootstrap-422 .col-xs-5{width:41.66666666666667%}.factory-bootstrap-422 .col-xs-4{width:33.33333333333333%}.factory-bootstrap-422 .col-xs-3{width:25%}.factory-bootstrap-422 .col-xs-2{width:16.666666666666664%}.factory-bootstrap-422 .col-xs-1{width:8.333333333333332%}.factory-bootstrap-422 .col-xs-pull-12{right:100%}.factory-bootstrap-422 .col-xs-pull-11{right:91.66666666666666%}.factory-bootstrap-422 .col-xs-pull-10{right:83.33333333333334%}.factory-bootstrap-422 .col-xs-pull-9{right:75%}.factory-bootstrap-422 .col-xs-pull-8{right:66.66666666666666%}.factory-bootstrap-422 .col-xs-pull-7{right:58.333333333333336%}.factory-bootstrap-422 .col-xs-pull-6{right:50%}.factory-bootstrap-422 .col-xs-pull-5{right:41.66666666666667%}.factory-bootstrap-422 .col-xs-pull-4{right:33.33333333333333%}.factory-bootstrap-422 .col-xs-pull-3{right:25%}.factory-bootstrap-422 .col-xs-pull-2{right:16.666666666666664%}.factory-bootstrap-422 .col-xs-pull-1{right:8.333333333333332%}.factory-bootstrap-422 .col-xs-pull-0{right:0}.factory-bootstrap-422 .col-xs-push-12{left:100%}.factory-bootstrap-422 .col-xs-push-11{left:91.66666666666666%}.factory-bootstrap-422 .col-xs-push-10{left:83.33333333333334%}.factory-bootstrap-422 .col-xs-push-9{left:75%}.factory-bootstrap-422 .col-xs-push-8{left:66.66666666666666%}.factory-bootstrap-422 .col-xs-push-7{left:58.333333333333336%}.factory-bootstrap-422 .col-xs-push-6{left:50%}.factory-bootstrap-422 .col-xs-push-5{left:41.66666666666667%}.factory-bootstrap-422 .col-xs-push-4{left:33.33333333333333%}.factory-bootstrap-422 .col-xs-push-3{left:25%}.factory-bootstrap-422 .col-xs-push-2{left:16.666666666666664%}.factory-bootstrap-422 .col-xs-push-1{left:8.333333333333332%}.factory-bootstrap-422 .col-xs-push-0{left:0}.factory-bootstrap-422 .col-xs-offset-12{margin-left:100%}.factory-bootstrap-422 .col-xs-offset-11{margin-left:91.66666666666666%}.factory-bootstrap-422 .col-xs-offset-10{margin-left:83.33333333333334%}.factory-bootstrap-422 .col-xs-offset-9{margin-left:75%}.factory-bootstrap-422 .col-xs-offset-8{margin-left:66.66666666666666%}.factory-bootstrap-422 .col-xs-offset-7{margin-left:58.333333333333336%}.factory-bootstrap-422 .col-xs-offset-6{margin-left:50%}.factory-bootstrap-422 .col-xs-offset-5{margin-left:41.66666666666667%}.factory-bootstrap-422 .col-xs-offset-4{margin-left:33.33333333333333%}.factory-bootstrap-422 .col-xs-offset-3{margin-left:25%}.factory-bootstrap-422 .col-xs-offset-2{margin-left:16.666666666666664%}.factory-bootstrap-422 .col-xs-offset-1{margin-left:8.333333333333332%}.factory-bootstrap-422 .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-422 table{max-width:100%;background-color:transparent}.factory-bootstrap-422 th{text-align:left}.factory-bootstrap-422 .table{width:100%;margin-bottom:20px}.factory-bootstrap-422 .table>tbody>tr>td,.factory-bootstrap-422 .table>tbody>tr>th,.factory-bootstrap-422 .table>tfoot>tr>td,.factory-bootstrap-422 .table>tfoot>tr>th,.factory-bootstrap-422 .table>thead>tr>td,.factory-bootstrap-422 .table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.factory-bootstrap-422 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.factory-bootstrap-422 .table>caption+thead>tr:first-child>td,.factory-bootstrap-422 .table>caption+thead>tr:first-child>th,.factory-bootstrap-422 .table>colgroup+thead>tr:first-child>td,.factory-bootstrap-422 .table>colgroup+thead>tr:first-child>th,.factory-bootstrap-422 .table>thead:first-child>tr:first-child>td,.factory-bootstrap-422 .table>thead:first-child>tr:first-child>th{border-top:0}.factory-bootstrap-422 .table>tbody+tbody{border-top:2px solid #ddd}.factory-bootstrap-422 .table .table{background-color:#fff}.factory-bootstrap-422 .table-condensed>tbody>tr>td,.factory-bootstrap-422 .table-condensed>tbody>tr>th,.factory-bootstrap-422 .table-condensed>tfoot>tr>td,.factory-bootstrap-422 .table-condensed>tfoot>tr>th,.factory-bootstrap-422 .table-condensed>thead>tr>td,.factory-bootstrap-422 .table-condensed>thead>tr>th{padding:5px}.factory-bootstrap-422 .table-bordered,.factory-bootstrap-422 .table-bordered>tbody>tr>td,.factory-bootstrap-422 .table-bordered>tbody>tr>th,.factory-bootstrap-422 .table-bordered>tfoot>tr>td,.factory-bootstrap-422 .table-bordered>tfoot>tr>th,.factory-bootstrap-422 .table-bordered>thead>tr>td,.factory-bootstrap-422 .table-bordered>thead>tr>th{border:1px solid #ddd}.factory-bootstrap-422 .table-bordered>thead>tr>td,.factory-bootstrap-422 .table-bordered>thead>tr>th{border-bottom-width:2px}.factory-bootstrap-422 .table-striped>tbody>tr:nth-child(odd)>td,.factory-bootstrap-422 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.factory-bootstrap-422 .table-hover>tbody>tr:hover>td,.factory-bootstrap-422 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.factory-bootstrap-422 table col[class*=col-]{position:static;display:table-column;float:none}.factory-bootstrap-422 table td[class*=col-],.factory-bootstrap-422 table th[class*=col-]{display:table-cell;float:none}.factory-bootstrap-422 .table>tbody>.active>td,.factory-bootstrap-422 .table>tbody>.active>th,.factory-bootstrap-422 .table>tbody>tr>.active,.factory-bootstrap-422 .table>tfoot>.active>td,.factory-bootstrap-422 .table>tfoot>.active>th,.factory-bootstrap-422 .table>tfoot>tr>.active,.factory-bootstrap-422 .table>thead>.active>td,.factory-bootstrap-422 .table>thead>.active>th,.factory-bootstrap-422 .table>thead>tr>.active{background-color:#f5f5f5}.factory-bootstrap-422 .table-hover>tbody>.active:hover>td,.factory-bootstrap-422 .table-hover>tbody>.active:hover>th,.factory-bootstrap-422 .table-hover>tbody>tr>.active:hover{background-color:#e8e8e8}.factory-bootstrap-422 .table>tbody>.success>td,.factory-bootstrap-422 .table>tbody>.success>th,.factory-bootstrap-422 .table>tbody>tr>.success,.factory-bootstrap-422 .table>tfoot>.success>td,.factory-bootstrap-422 .table>tfoot>.success>th,.factory-bootstrap-422 .table>tfoot>tr>.success,.factory-bootstrap-422 .table>thead>.success>td,.factory-bootstrap-422 .table>thead>.success>th,.factory-bootstrap-422 .table>thead>tr>.success{background-color:#dff0d8}.factory-bootstrap-422 .table-hover>tbody>.success:hover>td,.factory-bootstrap-422 .table-hover>tbody>.success:hover>th,.factory-bootstrap-422 .table-hover>tbody>tr>.success:hover{background-color:#d0e9c6}.factory-bootstrap-422 .table>tbody>.danger>td,.factory-bootstrap-422 .table>tbody>.danger>th,.factory-bootstrap-422 .table>tbody>tr>.danger,.factory-bootstrap-422 .table>tfoot>.danger>td,.factory-bootstrap-422 .table>tfoot>.danger>th,.factory-bootstrap-422 .table>tfoot>tr>.danger,.factory-bootstrap-422 .table>thead>.danger>td,.factory-bootstrap-422 .table>thead>.danger>th,.factory-bootstrap-422 .table>thead>tr>.danger{background-color:#f2dede}.factory-bootstrap-422 .table-hover>tbody>.danger:hover>td,.factory-bootstrap-422 .table-hover>tbody>.danger:hover>th,.factory-bootstrap-422 .table-hover>tbody>tr>.danger:hover{background-color:#ebcccc}.factory-bootstrap-422 .table>tbody>.warning>td,.factory-bootstrap-422 .table>tbody>.warning>th,.factory-bootstrap-422 .table>tbody>tr>.warning,.factory-bootstrap-422 .table>tfoot>.warning>td,.factory-bootstrap-422 .table>tfoot>.warning>th,.factory-bootstrap-422 .table>tfoot>tr>.warning,.factory-bootstrap-422 .table>thead>.warning>td,.factory-bootstrap-422 .table>thead>.warning>th,.factory-bootstrap-422 .table>thead>tr>.warning{background-color:#fcf8e3}.factory-bootstrap-422 .table-hover>tbody>.warning:hover>td,.factory-bootstrap-422 .table-hover>tbody>.warning:hover>th,.factory-bootstrap-422 .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-422 fieldset{padding:0;margin:0;border:0}.factory-bootstrap-422 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-422 label{display:inline-block;margin-bottom:5px;font-weight:700}.factory-bootstrap-422 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-422 input[type=checkbox],.factory-bootstrap-422 input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.factory-bootstrap-422 input[type=file]{display:block}.factory-bootstrap-422 select[multiple],.factory-bootstrap-422 select[size]{height:auto}.factory-bootstrap-422 select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}.factory-bootstrap-422 input[type=checkbox]:focus,.factory-bootstrap-422 input[type=file]:focus,.factory-bootstrap-422 input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-422 input[type=number]::-webkit-inner-spin-button,.factory-bootstrap-422 input[type=number]::-webkit-outer-spin-button{height:auto}.factory-bootstrap-422 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.factory-bootstrap-422 .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-422 .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-422 .form-control:-moz-placeholder{color:#999}.factory-bootstrap-422 .form-control::-moz-placeholder{color:#999;opacity:1}.factory-bootstrap-422 .form-control:-ms-input-placeholder{color:#999}.factory-bootstrap-422 .form-control::-webkit-input-placeholder{color:#999}.factory-bootstrap-422 .form-control[disabled],.factory-bootstrap-422 .form-control[readonly],.factory-bootstrap-422 fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.factory-bootstrap-422 textarea.form-control{height:auto}.factory-bootstrap-422 .form-group{margin-bottom:15px}.factory-bootstrap-422 .checkbox,.factory-bootstrap-422 .radio{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.factory-bootstrap-422 .checkbox label,.factory-bootstrap-422 .radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.factory-bootstrap-422 .checkbox input[type=checkbox],.factory-bootstrap-422 .checkbox-inline input[type=checkbox],.factory-bootstrap-422 .radio input[type=radio],.factory-bootstrap-422 .radio-inline input[type=radio]{float:left;margin-left:-20px}.factory-bootstrap-422 .checkbox+.checkbox,.factory-bootstrap-422 .radio+.radio{margin-top:-5px}.factory-bootstrap-422 .checkbox-inline,.factory-bootstrap-422 .radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.factory-bootstrap-422 .checkbox-inline+.checkbox-inline,.factory-bootstrap-422 .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.factory-bootstrap-422 .checkbox-inline[disabled],.factory-bootstrap-422 .checkbox[disabled],.factory-bootstrap-422 .radio-inline[disabled],.factory-bootstrap-422 .radio[disabled],.factory-bootstrap-422 fieldset[disabled] .checkbox,.factory-bootstrap-422 fieldset[disabled] .checkbox-inline,.factory-bootstrap-422 fieldset[disabled] .radio,.factory-bootstrap-422 fieldset[disabled] .radio-inline,.factory-bootstrap-422 fieldset[disabled] input[type=checkbox],.factory-bootstrap-422 fieldset[disabled] input[type=radio],.factory-bootstrap-422 input[type=checkbox][disabled],.factory-bootstrap-422 input[type=radio][disabled]{cursor:not-allowed}.factory-bootstrap-422 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 select.input-sm{height:30px;line-height:30px}.factory-bootstrap-422 textarea.input-sm{height:auto}.factory-bootstrap-422 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-422 select.input-lg{height:46px;line-height:46px}.factory-bootstrap-422 textarea.input-lg{height:auto}.factory-bootstrap-422 .has-warning .checkbox,.factory-bootstrap-422 .has-warning .checkbox-inline,.factory-bootstrap-422 .has-warning .control-label,.factory-bootstrap-422 .has-warning .help-block,.factory-bootstrap-422 .has-warning .radio,.factory-bootstrap-422 .has-warning .radio-inline{color:#8a6d3b}.factory-bootstrap-422 .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-422 .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-422 .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.factory-bootstrap-422 .has-error .checkbox,.factory-bootstrap-422 .has-error .checkbox-inline,.factory-bootstrap-422 .has-error .control-label,.factory-bootstrap-422 .has-error .help-block,.factory-bootstrap-422 .has-error .radio,.factory-bootstrap-422 .has-error .radio-inline{color:#a94442}.factory-bootstrap-422 .controls{display:block}.factory-bootstrap-422 .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-422 .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-422 .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.factory-bootstrap-422 .has-success .checkbox,.factory-bootstrap-422 .has-success .checkbox-inline,.factory-bootstrap-422 .has-success .control-label,.factory-bootstrap-422 .has-success .help-block,.factory-bootstrap-422 .has-success .radio,.factory-bootstrap-422 .has-success .radio-inline{color:#3c763d}.factory-bootstrap-422 .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-422 .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-422 .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.factory-bootstrap-422 .form-control-static{margin-bottom:0}.factory-bootstrap-422 .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-422 .form-horizontal .checkbox,.factory-bootstrap-422 .form-horizontal .checkbox-inline,.factory-bootstrap-422 .form-horizontal .control-label,.factory-bootstrap-422 .form-horizontal .radio,.factory-bootstrap-422 .form-horizontal .radio-inline{position:relative;padding-top:7px;margin-top:0;margin-bottom:0}.factory-bootstrap-422 .form-horizontal .control-label{max-width:200px}.factory-bootstrap-422 .form-horizontal .checkbox,.factory-bootstrap-422 .form-horizontal .radio{min-height:27px}.factory-bootstrap-422 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.factory-bootstrap-422 .form-horizontal .form-group:after,.factory-bootstrap-422 .form-horizontal .form-group:before{display:table;content:" "}.factory-bootstrap-422 .form-horizontal .form-group:after{clear:both}.factory-bootstrap-422 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.factory-bootstrap-422 .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-422 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-422 .btn{text-decoration:none}.factory-bootstrap-422 .btn:focus,.factory-bootstrap-422 .btn:hover{color:#333;text-decoration:none}.factory-bootstrap-422 .btn.disabled,.factory-bootstrap-422 .btn[disabled],.factory-bootstrap-422 fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-422 .btn-default.active,.factory-bootstrap-422 .btn-default:active,.factory-bootstrap-422 .btn-default:focus,.factory-bootstrap-422 .btn-default:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-default{background:#fafafa;border-color:#999;color:#222}.factory-bootstrap-422 .btn-default.active,.factory-bootstrap-422 .btn-default:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-default{background-image:none}.factory-bootstrap-422 .btn-default.disabled,.factory-bootstrap-422 .btn-default.disabled.active,.factory-bootstrap-422 .btn-default.disabled:active,.factory-bootstrap-422 .btn-default.disabled:focus,.factory-bootstrap-422 .btn-default.disabled:hover,.factory-bootstrap-422 .btn-default[disabled],.factory-bootstrap-422 .btn-default[disabled].active,.factory-bootstrap-422 .btn-default[disabled]:active,.factory-bootstrap-422 .btn-default[disabled]:focus,.factory-bootstrap-422 .btn-default[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-default,.factory-bootstrap-422 fieldset[disabled] .btn-default.active,.factory-bootstrap-422 fieldset[disabled] .btn-default:active,.factory-bootstrap-422 fieldset[disabled] .btn-default:focus,.factory-bootstrap-422 fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.factory-bootstrap-422 .btn-default .badge{color:#fff;background-color:#fff}.factory-bootstrap-422 .btn-primary.active,.factory-bootstrap-422 .btn-primary:active,.factory-bootstrap-422 .btn-primary:focus,.factory-bootstrap-422 .btn-primary:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.factory-bootstrap-422 .btn-primary.active,.factory-bootstrap-422 .btn-primary:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-primary{background-image:none}.factory-bootstrap-422 .btn-primary.disabled,.factory-bootstrap-422 .btn-primary.disabled.active,.factory-bootstrap-422 .btn-primary.disabled:active,.factory-bootstrap-422 .btn-primary.disabled:focus,.factory-bootstrap-422 .btn-primary.disabled:hover,.factory-bootstrap-422 .btn-primary[disabled],.factory-bootstrap-422 .btn-primary[disabled].active,.factory-bootstrap-422 .btn-primary[disabled]:active,.factory-bootstrap-422 .btn-primary[disabled]:focus,.factory-bootstrap-422 .btn-primary[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-primary,.factory-bootstrap-422 fieldset[disabled] .btn-primary.active,.factory-bootstrap-422 fieldset[disabled] .btn-primary:active,.factory-bootstrap-422 fieldset[disabled] .btn-primary:focus,.factory-bootstrap-422 fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.factory-bootstrap-422 .btn-primary .badge{color:#428bca;background-color:#fff}.factory-bootstrap-422 .btn-warning{color:#fff;background-color:#f0ad4e}.factory-bootstrap-422 .btn-warning.active,.factory-bootstrap-422 .btn-warning:active,.factory-bootstrap-422 .btn-warning:focus,.factory-bootstrap-422 .btn-warning:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.factory-bootstrap-422 .btn-warning.active,.factory-bootstrap-422 .btn-warning:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-warning{background-image:none}.factory-bootstrap-422 .btn-warning.disabled,.factory-bootstrap-422 .btn-warning.disabled.active,.factory-bootstrap-422 .btn-warning.disabled:active,.factory-bootstrap-422 .btn-warning.disabled:focus,.factory-bootstrap-422 .btn-warning.disabled:hover,.factory-bootstrap-422 .btn-warning[disabled],.factory-bootstrap-422 .btn-warning[disabled].active,.factory-bootstrap-422 .btn-warning[disabled]:active,.factory-bootstrap-422 .btn-warning[disabled]:focus,.factory-bootstrap-422 .btn-warning[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-warning,.factory-bootstrap-422 fieldset[disabled] .btn-warning.active,.factory-bootstrap-422 fieldset[disabled] .btn-warning:active,.factory-bootstrap-422 fieldset[disabled] .btn-warning:focus,.factory-bootstrap-422 fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.factory-bootstrap-422 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.factory-bootstrap-422 .btn-success{color:#fff;background-color:#5cb85c}.factory-bootstrap-422 .btn-success.active,.factory-bootstrap-422 .btn-success:active,.factory-bootstrap-422 .btn-success:focus,.factory-bootstrap-422 .btn-success:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.factory-bootstrap-422 .btn-success.active,.factory-bootstrap-422 .btn-success:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-success{background-image:none}.factory-bootstrap-422 .btn-success.disabled,.factory-bootstrap-422 .btn-success.disabled.active,.factory-bootstrap-422 .btn-success.disabled:active,.factory-bootstrap-422 .btn-success.disabled:focus,.factory-bootstrap-422 .btn-success.disabled:hover,.factory-bootstrap-422 .btn-success[disabled],.factory-bootstrap-422 .btn-success[disabled].active,.factory-bootstrap-422 .btn-success[disabled]:active,.factory-bootstrap-422 .btn-success[disabled]:focus,.factory-bootstrap-422 .btn-success[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-success,.factory-bootstrap-422 fieldset[disabled] .btn-success.active,.factory-bootstrap-422 fieldset[disabled] .btn-success:active,.factory-bootstrap-422 fieldset[disabled] .btn-success:focus,.factory-bootstrap-422 fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.factory-bootstrap-422 .btn-success .badge{color:#5cb85c;background-color:#fff}.factory-bootstrap-422 .btn-info{color:#fff;background-color:#5bc0de}.factory-bootstrap-422 .btn-info.active,.factory-bootstrap-422 .btn-info:active,.factory-bootstrap-422 .btn-info:focus,.factory-bootstrap-422 .btn-info:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.factory-bootstrap-422 .btn-info.active,.factory-bootstrap-422 .btn-info:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-info{background-image:none}.factory-bootstrap-422 .btn-info.disabled,.factory-bootstrap-422 .btn-info.disabled.active,.factory-bootstrap-422 .btn-info.disabled:active,.factory-bootstrap-422 .btn-info.disabled:focus,.factory-bootstrap-422 .btn-info.disabled:hover,.factory-bootstrap-422 .btn-info[disabled],.factory-bootstrap-422 .btn-info[disabled].active,.factory-bootstrap-422 .btn-info[disabled]:active,.factory-bootstrap-422 .btn-info[disabled]:focus,.factory-bootstrap-422 .btn-info[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-info,.factory-bootstrap-422 fieldset[disabled] .btn-info.active,.factory-bootstrap-422 fieldset[disabled] .btn-info:active,.factory-bootstrap-422 fieldset[disabled] .btn-info:focus,.factory-bootstrap-422 fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.factory-bootstrap-422 .btn-info .badge{color:#5bc0de;background-color:#fff}.factory-bootstrap-422 .btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.factory-bootstrap-422 .btn-link,.factory-bootstrap-422 .btn-link:active,.factory-bootstrap-422 .btn-link[disabled],.factory-bootstrap-422 fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-422 .btn-link,.factory-bootstrap-422 .btn-link:active,.factory-bootstrap-422 .btn-link:focus,.factory-bootstrap-422 .btn-link:hover{border-color:transparent}.factory-bootstrap-422 .btn-link:focus,.factory-bootstrap-422 .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.factory-bootstrap-422 .btn-link[disabled]:focus,.factory-bootstrap-422 .btn-link[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-link:focus,.factory-bootstrap-422 fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.factory-bootstrap-422 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-422 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 .btn-block{display:block;width:100%;padding-right:0;padding-left:0}.factory-bootstrap-422 .btn-block+.btn-block{margin-top:5px}.factory-bootstrap-422 input[type=button].btn-block,.factory-bootstrap-422 input[type=reset].btn-block,.factory-bootstrap-422 input[type=submit].btn-block{width:100%}.factory-bootstrap-422 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.factory-bootstrap-422 .fade.in{opacity:1}.factory-bootstrap-422 .collapse{display:none}.factory-bootstrap-422 .collapse.in{display:block}.factory-bootstrap-422 .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-422 .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-422 .glyphicon:empty{width:1em}.factory-bootstrap-422 .glyphicon-asterisk:before{content:"\2a"}.factory-bootstrap-422 .glyphicon-plus:before{content:"\2b"}.factory-bootstrap-422 .glyphicon-euro:before{content:"\20ac"}.factory-bootstrap-422 .glyphicon-minus:before{content:"\2212"}.factory-bootstrap-422 .glyphicon-cloud:before{content:"\2601"}.factory-bootstrap-422 .glyphicon-envelope:before{content:"\2709"}.factory-bootstrap-422 .glyphicon-pencil:before{content:"\270f"}.factory-bootstrap-422 .glyphicon-glass:before{content:"\e001"}.factory-bootstrap-422 .glyphicon-music:before{content:"\e002"}.factory-bootstrap-422 .glyphicon-search:before{content:"\e003"}.factory-bootstrap-422 .glyphicon-heart:before{content:"\e005"}.factory-bootstrap-422 .glyphicon-star:before{content:"\e006"}.factory-bootstrap-422 .glyphicon-star-empty:before{content:"\e007"}.factory-bootstrap-422 .glyphicon-user:before{content:"\e008"}.factory-bootstrap-422 .glyphicon-film:before{content:"\e009"}.factory-bootstrap-422 .glyphicon-th-large:before{content:"\e010"}.factory-bootstrap-422 .glyphicon-th:before{content:"\e011"}.factory-bootstrap-422 .glyphicon-th-list:before{content:"\e012"}.factory-bootstrap-422 .glyphicon-ok:before{content:"\e013"}.factory-bootstrap-422 .glyphicon-remove:before{content:"\e014"}.factory-bootstrap-422 .glyphicon-zoom-in:before{content:"\e015"}.factory-bootstrap-422 .glyphicon-zoom-out:before{content:"\e016"}.factory-bootstrap-422 .glyphicon-off:before{content:"\e017"}.factory-bootstrap-422 .glyphicon-signal:before{content:"\e018"}.factory-bootstrap-422 .glyphicon-cog:before{content:"\e019"}.factory-bootstrap-422 .glyphicon-trash:before{content:"\e020"}.factory-bootstrap-422 .glyphicon-home:before{content:"\e021"}.factory-bootstrap-422 .glyphicon-file:before{content:"\e022"}.factory-bootstrap-422 .glyphicon-time:before{content:"\e023"}.factory-bootstrap-422 .glyphicon-road:before{content:"\e024"}.factory-bootstrap-422 .glyphicon-download-alt:before{content:"\e025"}.factory-bootstrap-422 .glyphicon-download:before{content:"\e026"}.factory-bootstrap-422 .glyphicon-upload:before{content:"\e027"}.factory-bootstrap-422 .glyphicon-inbox:before{content:"\e028"}.factory-bootstrap-422 .glyphicon-play-circle:before{content:"\e029"}.factory-bootstrap-422 .glyphicon-repeat:before{content:"\e030"}.factory-bootstrap-422 .glyphicon-refresh:before{content:"\e031"}.factory-bootstrap-422 .glyphicon-list-alt:before{content:"\e032"}.factory-bootstrap-422 .glyphicon-lock:before{content:"\e033"}.factory-bootstrap-422 .glyphicon-flag:before{content:"\e034"}.factory-bootstrap-422 .glyphicon-headphones:before{content:"\e035"}.factory-bootstrap-422 .glyphicon-volume-off:before{content:"\e036"}.factory-bootstrap-422 .glyphicon-volume-down:before{content:"\e037"}.factory-bootstrap-422 .glyphicon-volume-up:before{content:"\e038"}.factory-bootstrap-422 .glyphicon-qrcode:before{content:"\e039"}.factory-bootstrap-422 .glyphicon-barcode:before{content:"\e040"}.factory-bootstrap-422 .glyphicon-tag:before{content:"\e041"}.factory-bootstrap-422 .glyphicon-tags:before{content:"\e042"}.factory-bootstrap-422 .glyphicon-book:before{content:"\e043"}.factory-bootstrap-422 .glyphicon-bookmark:before{content:"\e044"}.factory-bootstrap-422 .glyphicon-print:before{content:"\e045"}.factory-bootstrap-422 .glyphicon-camera:before{content:"\e046"}.factory-bootstrap-422 .glyphicon-font:before{content:"\e047"}.factory-bootstrap-422 .glyphicon-bold:before{content:"\e048"}.factory-bootstrap-422 .glyphicon-italic:before{content:"\e049"}.factory-bootstrap-422 .glyphicon-text-height:before{content:"\e050"}.factory-bootstrap-422 .glyphicon-text-width:before{content:"\e051"}.factory-bootstrap-422 .glyphicon-align-left:before{content:"\e052"}.factory-bootstrap-422 .glyphicon-align-center:before{content:"\e053"}.factory-bootstrap-422 .glyphicon-align-right:before{content:"\e054"}.factory-bootstrap-422 .glyphicon-align-justify:before{content:"\e055"}.factory-bootstrap-422 .glyphicon-list:before{content:"\e056"}.factory-bootstrap-422 .glyphicon-indent-left:before{content:"\e057"}.factory-bootstrap-422 .glyphicon-indent-right:before{content:"\e058"}.factory-bootstrap-422 .glyphicon-facetime-video:before{content:"\e059"}.factory-bootstrap-422 .glyphicon-picture:before{content:"\e060"}.factory-bootstrap-422 .glyphicon-map-marker:before{content:"\e062"}.factory-bootstrap-422 .glyphicon-adjust:before{content:"\e063"}.factory-bootstrap-422 .glyphicon-tint:before{content:"\e064"}.factory-bootstrap-422 .glyphicon-edit:before{content:"\e065"}.factory-bootstrap-422 .glyphicon-share:before{content:"\e066"}.factory-bootstrap-422 .glyphicon-check:before{content:"\e067"}.factory-bootstrap-422 .glyphicon-move:before{content:"\e068"}.factory-bootstrap-422 .glyphicon-step-backward:before{content:"\e069"}.factory-bootstrap-422 .glyphicon-fast-backward:before{content:"\e070"}.factory-bootstrap-422 .glyphicon-backward:before{content:"\e071"}.factory-bootstrap-422 .glyphicon-play:before{content:"\e072"}.factory-bootstrap-422 .glyphicon-pause:before{content:"\e073"}.factory-bootstrap-422 .glyphicon-stop:before{content:"\e074"}.factory-bootstrap-422 .glyphicon-forward:before{content:"\e075"}.factory-bootstrap-422 .glyphicon-fast-forward:before{content:"\e076"}.factory-bootstrap-422 .glyphicon-step-forward:before{content:"\e077"}.factory-bootstrap-422 .glyphicon-eject:before{content:"\e078"}.factory-bootstrap-422 .glyphicon-chevron-left:before{content:"\e079"}.factory-bootstrap-422 .glyphicon-chevron-right:before{content:"\e080"}.factory-bootstrap-422 .glyphicon-plus-sign:before{content:"\e081"}.factory-bootstrap-422 .glyphicon-minus-sign:before{content:"\e082"}.factory-bootstrap-422 .glyphicon-remove-sign:before{content:"\e083"}.factory-bootstrap-422 .glyphicon-ok-sign:before{content:"\e084"}.factory-bootstrap-422 .glyphicon-question-sign:before{content:"\e085"}.factory-bootstrap-422 .glyphicon-info-sign:before{content:"\e086"}.factory-bootstrap-422 .glyphicon-screenshot:before{content:"\e087"}.factory-bootstrap-422 .glyphicon-remove-circle:before{content:"\e088"}.factory-bootstrap-422 .glyphicon-ok-circle:before{content:"\e089"}.factory-bootstrap-422 .glyphicon-ban-circle:before{content:"\e090"}.factory-bootstrap-422 .glyphicon-arrow-left:before{content:"\e091"}.factory-bootstrap-422 .glyphicon-arrow-right:before{content:"\e092"}.factory-bootstrap-422 .glyphicon-arrow-up:before{content:"\e093"}.factory-bootstrap-422 .glyphicon-arrow-down:before{content:"\e094"}.factory-bootstrap-422 .glyphicon-share-alt:before{content:"\e095"}.factory-bootstrap-422 .glyphicon-resize-full:before{content:"\e096"}.factory-bootstrap-422 .glyphicon-resize-small:before{content:"\e097"}.factory-bootstrap-422 .glyphicon-exclamation-sign:before{content:"\e101"}.factory-bootstrap-422 .glyphicon-gift:before{content:"\e102"}.factory-bootstrap-422 .glyphicon-leaf:before{content:"\e103"}.factory-bootstrap-422 .glyphicon-fire:before{content:"\e104"}.factory-bootstrap-422 .glyphicon-eye-open:before{content:"\e105"}.factory-bootstrap-422 .glyphicon-eye-close:before{content:"\e106"}.factory-bootstrap-422 .glyphicon-warning-sign:before{content:"\e107"}.factory-bootstrap-422 .glyphicon-plane:before{content:"\e108"}.factory-bootstrap-422 .glyphicon-calendar:before{content:"\e109"}.factory-bootstrap-422 .glyphicon-random:before{content:"\e110"}.factory-bootstrap-422 .glyphicon-comment:before{content:"\e111"}.factory-bootstrap-422 .glyphicon-magnet:before{content:"\e112"}.factory-bootstrap-422 .glyphicon-chevron-up:before{content:"\e113"}.factory-bootstrap-422 .glyphicon-chevron-down:before{content:"\e114"}.factory-bootstrap-422 .glyphicon-retweet:before{content:"\e115"}.factory-bootstrap-422 .glyphicon-shopping-cart:before{content:"\e116"}.factory-bootstrap-422 .glyphicon-folder-close:before{content:"\e117"}.factory-bootstrap-422 .glyphicon-folder-open:before{content:"\e118"}.factory-bootstrap-422 .glyphicon-resize-vertical:before{content:"\e119"}.factory-bootstrap-422 .glyphicon-resize-horizontal:before{content:"\e120"}.factory-bootstrap-422 .glyphicon-hdd:before{content:"\e121"}.factory-bootstrap-422 .glyphicon-bullhorn:before{content:"\e122"}.factory-bootstrap-422 .glyphicon-bell:before{content:"\e123"}.factory-bootstrap-422 .glyphicon-certificate:before{content:"\e124"}.factory-bootstrap-422 .glyphicon-thumbs-up:before{content:"\e125"}.factory-bootstrap-422 .glyphicon-thumbs-down:before{content:"\e126"}.factory-bootstrap-422 .glyphicon-hand-right:before{content:"\e127"}.factory-bootstrap-422 .glyphicon-hand-left:before{content:"\e128"}.factory-bootstrap-422 .glyphicon-hand-up:before{content:"\e129"}.factory-bootstrap-422 .glyphicon-hand-down:before{content:"\e130"}.factory-bootstrap-422 .glyphicon-circle-arrow-right:before{content:"\e131"}.factory-bootstrap-422 .glyphicon-circle-arrow-left:before{content:"\e132"}.factory-bootstrap-422 .glyphicon-circle-arrow-up:before{content:"\e133"}.factory-bootstrap-422 .glyphicon-circle-arrow-down:before{content:"\e134"}.factory-bootstrap-422 .glyphicon-globe:before{content:"\e135"}.factory-bootstrap-422 .glyphicon-wrench:before{content:"\e136"}.factory-bootstrap-422 .glyphicon-tasks:before{content:"\e137"}.factory-bootstrap-422 .glyphicon-filter:before{content:"\e138"}.factory-bootstrap-422 .glyphicon-briefcase:before{content:"\e139"}.factory-bootstrap-422 .glyphicon-fullscreen:before{content:"\e140"}.factory-bootstrap-422 .glyphicon-dashboard:before{content:"\e141"}.factory-bootstrap-422 .glyphicon-paperclip:before{content:"\e142"}.factory-bootstrap-422 .glyphicon-heart-empty:before{content:"\e143"}.factory-bootstrap-422 .glyphicon-link:before{content:"\e144"}.factory-bootstrap-422 .glyphicon-phone:before{content:"\e145"}.factory-bootstrap-422 .glyphicon-pushpin:before{content:"\e146"}.factory-bootstrap-422 .glyphicon-usd:before{content:"\e148"}.factory-bootstrap-422 .glyphicon-gbp:before{content:"\e149"}.factory-bootstrap-422 .glyphicon-sort:before{content:"\e150"}.factory-bootstrap-422 .glyphicon-sort-by-alphabet:before{content:"\e151"}.factory-bootstrap-422 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.factory-bootstrap-422 .glyphicon-sort-by-order:before{content:"\e153"}.factory-bootstrap-422 .glyphicon-sort-by-order-alt:before{content:"\e154"}.factory-bootstrap-422 .glyphicon-sort-by-attributes:before{content:"\e155"}.factory-bootstrap-422 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.factory-bootstrap-422 .glyphicon-unchecked:before{content:"\e157"}.factory-bootstrap-422 .glyphicon-expand:before{content:"\e158"}.factory-bootstrap-422 .glyphicon-collapse-down:before{content:"\e159"}.factory-bootstrap-422 .glyphicon-collapse-up:before{content:"\e160"}.factory-bootstrap-422 .glyphicon-log-in:before{content:"\e161"}.factory-bootstrap-422 .glyphicon-flash:before{content:"\e162"}.factory-bootstrap-422 .glyphicon-log-out:before{content:"\e163"}.factory-bootstrap-422 .glyphicon-new-window:before{content:"\e164"}.factory-bootstrap-422 .glyphicon-record:before{content:"\e165"}.factory-bootstrap-422 .glyphicon-save:before{content:"\e166"}.factory-bootstrap-422 .glyphicon-open:before{content:"\e167"}.factory-bootstrap-422 .glyphicon-saved:before{content:"\e168"}.factory-bootstrap-422 .glyphicon-import:before{content:"\e169"}.factory-bootstrap-422 .glyphicon-export:before{content:"\e170"}.factory-bootstrap-422 .glyphicon-send:before{content:"\e171"}.factory-bootstrap-422 .glyphicon-floppy-disk:before{content:"\e172"}.factory-bootstrap-422 .glyphicon-floppy-saved:before{content:"\e173"}.factory-bootstrap-422 .glyphicon-floppy-remove:before{content:"\e174"}.factory-bootstrap-422 .glyphicon-floppy-save:before{content:"\e175"}.factory-bootstrap-422 .glyphicon-floppy-open:before{content:"\e176"}.factory-bootstrap-422 .glyphicon-credit-card:before{content:"\e177"}.factory-bootstrap-422 .glyphicon-transfer:before{content:"\e178"}.factory-bootstrap-422 .glyphicon-cutlery:before{content:"\e179"}.factory-bootstrap-422 .glyphicon-header:before{content:"\e180"}.factory-bootstrap-422 .glyphicon-compressed:before{content:"\e181"}.factory-bootstrap-422 .glyphicon-earphone:before{content:"\e182"}.factory-bootstrap-422 .glyphicon-phone-alt:before{content:"\e183"}.factory-bootstrap-422 .glyphicon-tower:before{content:"\e184"}.factory-bootstrap-422 .glyphicon-stats:before{content:"\e185"}.factory-bootstrap-422 .glyphicon-sd-video:before{content:"\e186"}.factory-bootstrap-422 .glyphicon-hd-video:before{content:"\e187"}.factory-bootstrap-422 .glyphicon-subtitles:before{content:"\e188"}.factory-bootstrap-422 .glyphicon-sound-stereo:before{content:"\e189"}.factory-bootstrap-422 .glyphicon-sound-dolby:before{content:"\e190"}.factory-bootstrap-422 .glyphicon-sound-5-1:before{content:"\e191"}.factory-bootstrap-422 .glyphicon-sound-6-1:before{content:"\e192"}.factory-bootstrap-422 .glyphicon-sound-7-1:before{content:"\e193"}.factory-bootstrap-422 .glyphicon-copyright-mark:before{content:"\e194"}.factory-bootstrap-422 .glyphicon-registration-mark:before{content:"\e195"}.factory-bootstrap-422 .glyphicon-cloud-download:before{content:"\e197"}.factory-bootstrap-422 .glyphicon-cloud-upload:before{content:"\e198"}.factory-bootstrap-422 .glyphicon-tree-conifer:before{content:"\e199"}.factory-bootstrap-422 .glyphicon-tree-deciduous:before{content:"\e200"}.factory-bootstrap-422 .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-422 .dropdown{position:relative}.factory-bootstrap-422 .dropdown-toggle:focus{outline:0}.factory-bootstrap-422 .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-422 .dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-422 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-422 .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-422 .dropdown-menu>li>a:focus,.factory-bootstrap-422 .dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.factory-bootstrap-422 .dropdown-menu>.active>a,.factory-bootstrap-422 .dropdown-menu>.active>a:focus,.factory-bootstrap-422 .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.factory-bootstrap-422 .dropdown-menu>.disabled>a,.factory-bootstrap-422 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-422 .dropdown-menu>.disabled>a:hover{color:#999}.factory-bootstrap-422 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-422 .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-422 .open>.dropdown-menu{display:block}.factory-bootstrap-422 .open>a{outline:0}.factory-bootstrap-422 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.factory-bootstrap-422 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.factory-bootstrap-422 .pull-right>.dropdown-menu{right:0;left:auto}.factory-bootstrap-422 .dropup .caret,.factory-bootstrap-422 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.factory-bootstrap-422 .dropup .dropdown-menu,.factory-bootstrap-422 .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-422 .btn-group,.factory-bootstrap-422 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.factory-bootstrap-422 .btn-group-vertical>.btn,.factory-bootstrap-422 .btn-group>.btn{position:relative;float:left}.factory-bootstrap-422 .btn-group-vertical>.btn.active,.factory-bootstrap-422 .btn-group-vertical>.btn:active,.factory-bootstrap-422 .btn-group-vertical>.btn:focus,.factory-bootstrap-422 .btn-group-vertical>.btn:hover,.factory-bootstrap-422 .btn-group>.btn.active,.factory-bootstrap-422 .btn-group>.btn:active,.factory-bootstrap-422 .btn-group>.btn:focus,.factory-bootstrap-422 .btn-group>.btn:hover{z-index:2}.factory-bootstrap-422 .btn-group-vertical>.btn:focus,.factory-bootstrap-422 .btn-group>.btn:focus{outline:0}.factory-bootstrap-422 .btn-group .btn+.btn,.factory-bootstrap-422 .btn-group .btn+.btn-group,.factory-bootstrap-422 .btn-group .btn-group+.btn,.factory-bootstrap-422 .btn-group .btn-group+.btn-group{margin-left:-1px}.factory-bootstrap-422 .btn-toolbar:after,.factory-bootstrap-422 .btn-toolbar:before{display:table;content:" "}.factory-bootstrap-422 .btn-toolbar:after{clear:both}.factory-bootstrap-422 .btn-toolbar .btn-group{float:left}.factory-bootstrap-422 .btn-toolbar>.btn+.btn,.factory-bootstrap-422 .btn-toolbar>.btn+.btn-group,.factory-bootstrap-422 .btn-toolbar>.btn-group+.btn,.factory-bootstrap-422 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.factory-bootstrap-422 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.factory-bootstrap-422 .btn-group>.btn:first-child{margin-left:0}.factory-bootstrap-422 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-422 .btn-group>.btn:last-child:not(:first-child),.factory-bootstrap-422 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .btn-group>.btn-group{float:left}.factory-bootstrap-422 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-422 .btn-group>.btn-group:first-child>.btn:last-child,.factory-bootstrap-422 .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-422 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .btn-group .dropdown-toggle:active,.factory-bootstrap-422 .btn-group.open .dropdown-toggle{outline:0}.factory-bootstrap-422 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-422 .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.factory-bootstrap-422 .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.factory-bootstrap-422 .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-422 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-422 .btn-group{border:4px solid #f9f9f9;border-radius:4px}.factory-bootstrap-422 .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-422 .btn .caret{margin-left:0}.factory-bootstrap-422 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.factory-bootstrap-422 .dropup .btn-lg .caret{border-width:0 5px 5px}.factory-bootstrap-422 .btn-group-vertical>.btn,.factory-bootstrap-422 .btn-group-vertical>.btn-group,.factory-bootstrap-422 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.factory-bootstrap-422 .btn-group-vertical>.btn-group:after,.factory-bootstrap-422 .btn-group-vertical>.btn-group:before{display:table;content:" "}.factory-bootstrap-422 .btn-group-vertical>.btn-group:after{clear:both}.factory-bootstrap-422 .btn-group-vertical>.btn-group>.btn{float:none}.factory-bootstrap-422 .btn-group-vertical>.btn+.btn,.factory-bootstrap-422 .btn-group-vertical>.btn+.btn-group,.factory-bootstrap-422 .btn-group-vertical>.btn-group+.btn,.factory-bootstrap-422 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.factory-bootstrap-422 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-422 .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-422 .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-422 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-422 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.factory-bootstrap-422 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-422 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.factory-bootstrap-422 .btn-group-justified>.btn,.factory-bootstrap-422 .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.factory-bootstrap-422 .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-422 .input-group{position:relative;display:table;border-collapse:separate}.factory-bootstrap-422 .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.factory-bootstrap-422 .input-group .form-control{width:100%;margin-bottom:0}.factory-bootstrap-422 .input-group-lg>.form-control,.factory-bootstrap-422 .input-group-lg>.input-group-addon,.factory-bootstrap-422 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-422 select.input-group-lg>.form-control,.factory-bootstrap-422 select.input-group-lg>.input-group-addon,.factory-bootstrap-422 select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}.factory-bootstrap-422 textarea.input-group-lg>.form-control,.factory-bootstrap-422 textarea.input-group-lg>.input-group-addon,.factory-bootstrap-422 textarea.input-group-lg>.input-group-btn>.btn{height:auto}.factory-bootstrap-422 .input-group-sm>.form-control,.factory-bootstrap-422 .input-group-sm>.input-group-addon,.factory-bootstrap-422 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 select.input-group-sm>.form-control,.factory-bootstrap-422 select.input-group-sm>.input-group-addon,.factory-bootstrap-422 select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}.factory-bootstrap-422 textarea.input-group-sm>.form-control,.factory-bootstrap-422 textarea.input-group-sm>.input-group-addon,.factory-bootstrap-422 textarea.input-group-sm>.input-group-btn>.btn{height:auto}.factory-bootstrap-422 .input-group .form-control,.factory-bootstrap-422 .input-group-addon,.factory-bootstrap-422 .input-group-btn{display:table-cell}.factory-bootstrap-422 .input-group .form-control:not(:first-child):not(:last-child),.factory-bootstrap-422 .input-group-addon:not(:first-child):not(:last-child),.factory-bootstrap-422 .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-422 .input-group-addon,.factory-bootstrap-422 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.factory-bootstrap-422 .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-422 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.factory-bootstrap-422 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.factory-bootstrap-422 .input-group-addon input[type=checkbox],.factory-bootstrap-422 .input-group-addon input[type=radio]{margin-top:0}.factory-bootstrap-422 .input-group .form-control:first-child,.factory-bootstrap-422 .input-group-addon:first-child,.factory-bootstrap-422 .input-group-btn:first-child>.btn,.factory-bootstrap-422 .input-group-btn:first-child>.dropdown-toggle,.factory-bootstrap-422 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-422 .input-group-addon:first-child{border-right:0}.factory-bootstrap-422 .input-group .form-control:last-child,.factory-bootstrap-422 .input-group-addon:last-child,.factory-bootstrap-422 .input-group-btn:first-child>.btn:not(:first-child),.factory-bootstrap-422 .input-group-btn:last-child>.btn,.factory-bootstrap-422 .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .input-group-addon:last-child{border-left:0}.factory-bootstrap-422 .input-group-btn{position:relative;white-space:nowrap}.factory-bootstrap-422 .input-group-btn:first-child>.btn{margin-right:-1px}.factory-bootstrap-422 .input-group-btn:last-child>.btn{margin-left:-1px}.factory-bootstrap-422 .input-group-btn>.btn{position:relative}.factory-bootstrap-422 .input-group-btn>.btn+.btn{margin-left:-4px}.factory-bootstrap-422 .input-group-btn>.btn:active,.factory-bootstrap-422 .input-group-btn>.btn:hover{z-index:2}.factory-bootstrap-422 .nav{padding-left:0;margin-bottom:0;list-style:none}.factory-bootstrap-422 .nav:after,.factory-bootstrap-422 .nav:before{display:table;content:" "}.factory-bootstrap-422 .nav:after{clear:both}.factory-bootstrap-422 .nav>li{position:relative;display:block}.factory-bootstrap-422 .nav>li>a{position:relative;display:block;padding:10px 15px}.factory-bootstrap-422 .nav>li>a:focus,.factory-bootstrap-422 .nav>li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-422 .nav>li.disabled>a{color:#999}.factory-bootstrap-422 .nav>li.disabled>a:focus,.factory-bootstrap-422 .nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.factory-bootstrap-422 .nav .open>a,.factory-bootstrap-422 .nav .open>a:focus,.factory-bootstrap-422 .nav .open>a:hover{background-color:#eee;border-color:#428bca}.factory-bootstrap-422 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-422 .nav>li>a>img{max-width:none}.factory-bootstrap-422 .nav-tabs{border-bottom:1px solid #ddd}.factory-bootstrap-422 .nav-tabs>li{float:left;margin-bottom:-1px}.factory-bootstrap-422 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.factory-bootstrap-422 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.factory-bootstrap-422 .nav-tabs>li.active>a,.factory-bootstrap-422 .nav-tabs>li.active>a:focus,.factory-bootstrap-422 .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.factory-bootstrap-422 .nav-tabs.nav-justified{width:100%;border-bottom:0}.factory-bootstrap-422 .nav-tabs.nav-justified>li{float:none}.factory-bootstrap-422 .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-422 .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-422 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-422 .nav-tabs.nav-justified>.active>a,.factory-bootstrap-422 .nav-tabs.nav-justified>.active>a:focus,.factory-bootstrap-422 .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-422 .nav-pills>li{float:left}.factory-bootstrap-422 .nav-pills>li>a{border-radius:4px}.factory-bootstrap-422 .nav-pills>li+li{margin-left:2px}.factory-bootstrap-422 .nav-pills>li.active>a,.factory-bootstrap-422 .nav-pills>li.active>a:focus,.factory-bootstrap-422 .nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.factory-bootstrap-422 .nav-stacked>li{float:none}.factory-bootstrap-422 .nav-stacked>li+li{margin-top:2px;margin-left:0}.factory-bootstrap-422 .nav-justified{width:100%}.factory-bootstrap-422 .nav-justified>li{float:none}.factory-bootstrap-422 .nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-422 .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-422 .nav-tabs-justified{border-bottom:0}.factory-bootstrap-422 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-422 .nav-tabs-justified>.active>a,.factory-bootstrap-422 .nav-tabs-justified>.active>a:focus,.factory-bootstrap-422 .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-422 .tab-content>.tab-pane{display:none}.factory-bootstrap-422 .tab-content>.active{display:block}.factory-bootstrap-422 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.factory-bootstrap-422 .navbar:after,.factory-bootstrap-422 .navbar:before{display:table;content:" "}.factory-bootstrap-422 .navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.factory-bootstrap-422 .navbar-header:after,.factory-bootstrap-422 .navbar-header:before{display:table;content:" "}.factory-bootstrap-422 .navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.factory-bootstrap-422 .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-422 .navbar-collapse:after,.factory-bootstrap-422 .navbar-collapse:before{display:table;content:" "}.factory-bootstrap-422 .navbar-collapse:after{clear:both}.factory-bootstrap-422 .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-422 .container>.navbar-collapse,.factory-bootstrap-422 .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-422 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.factory-bootstrap-422 .navbar-fixed-bottom,.factory-bootstrap-422 .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-422 .navbar-fixed-top{top:0;border-width:0 0 1px}.factory-bootstrap-422 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.factory-bootstrap-422 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.factory-bootstrap-422 .navbar-brand:focus,.factory-bootstrap-422 .navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.factory-bootstrap-422 .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-422 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.factory-bootstrap-422 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.factory-bootstrap-422 .navbar-nav{margin:7.5px -15px}.factory-bootstrap-422 .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-422 .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-422 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-422 .navbar-nav.pull-right>li>.dropdown-menu,.factory-bootstrap-422 .navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-422 .navbar-btn{margin-top:8px;margin-bottom:8px}.factory-bootstrap-422 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.factory-bootstrap-422 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.factory-bootstrap-422 .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-422 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.factory-bootstrap-422 .navbar-default .navbar-brand{color:#777}.factory-bootstrap-422 .navbar-default .navbar-brand:focus,.factory-bootstrap-422 .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.factory-bootstrap-422 .navbar-default .navbar-nav>li>a,.factory-bootstrap-422 .navbar-default .navbar-text{color:#777}.factory-bootstrap-422 .navbar-default .navbar-nav>li>a:focus,.factory-bootstrap-422 .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.factory-bootstrap-422 .navbar-default .navbar-nav>.active>a,.factory-bootstrap-422 .navbar-default .navbar-nav>.active>a:focus,.factory-bootstrap-422 .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.factory-bootstrap-422 .navbar-default .navbar-nav>.disabled>a,.factory-bootstrap-422 .navbar-default .navbar-nav>.disabled>a:focus,.factory-bootstrap-422 .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.factory-bootstrap-422 .navbar-default .navbar-toggle{border-color:#ddd}.factory-bootstrap-422 .navbar-default .navbar-toggle:focus,.factory-bootstrap-422 .navbar-default .navbar-toggle:hover{background-color:#ddd}.factory-bootstrap-422 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.factory-bootstrap-422 .navbar-default .navbar-collapse,.factory-bootstrap-422 .navbar-default .navbar-form{border-color:#e7e7e7}.factory-bootstrap-422 .navbar-default .navbar-nav>.open>a,.factory-bootstrap-422 .navbar-default .navbar-nav>.open>a:focus,.factory-bootstrap-422 .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-422 .navbar-default .navbar-link{color:#777}.factory-bootstrap-422 .navbar-default .navbar-link:hover{color:#333}.factory-bootstrap-422 .navbar-inverse{background-color:#222;border-color:#080808}.factory-bootstrap-422 .navbar-inverse .navbar-brand{color:#999}.factory-bootstrap-422 .navbar-inverse .navbar-brand:focus,.factory-bootstrap-422 .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.factory-bootstrap-422 .navbar-inverse .navbar-nav>li>a,.factory-bootstrap-422 .navbar-inverse .navbar-text{color:#999}.factory-bootstrap-422 .navbar-inverse .navbar-nav>li>a:focus,.factory-bootstrap-422 .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.factory-bootstrap-422 .navbar-inverse .navbar-nav>.active>a,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.active>a:focus,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.factory-bootstrap-422 .navbar-inverse .navbar-nav>.disabled>a,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.disabled>a:focus,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.factory-bootstrap-422 .navbar-inverse .navbar-toggle{border-color:#333}.factory-bootstrap-422 .navbar-inverse .navbar-toggle:focus,.factory-bootstrap-422 .navbar-inverse .navbar-toggle:hover{background-color:#333}.factory-bootstrap-422 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.factory-bootstrap-422 .navbar-inverse .navbar-collapse,.factory-bootstrap-422 .navbar-inverse .navbar-form{border-color:#101010}.factory-bootstrap-422 .navbar-inverse .navbar-nav>.open>a,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.open>a:focus,.factory-bootstrap-422 .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-422 .navbar-inverse .navbar-link{color:#999}.factory-bootstrap-422 .navbar-inverse .navbar-link:hover{color:#fff}.factory-bootstrap-422 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.factory-bootstrap-422 .breadcrumb>li{display:inline-block}.factory-bootstrap-422 .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.factory-bootstrap-422 .breadcrumb>.active{color:#999}.factory-bootstrap-422 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.factory-bootstrap-422 .pagination>li{display:inline}.factory-bootstrap-422 .pagination>li>a,.factory-bootstrap-422 .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-422 .pagination>li:first-child>a,.factory-bootstrap-422 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.factory-bootstrap-422 .pagination>li:last-child>a,.factory-bootstrap-422 .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.factory-bootstrap-422 .pagination>li>a:focus,.factory-bootstrap-422 .pagination>li>a:hover,.factory-bootstrap-422 .pagination>li>span:focus,.factory-bootstrap-422 .pagination>li>span:hover{background-color:#eee}.factory-bootstrap-422 .pagination>.active>a,.factory-bootstrap-422 .pagination>.active>a:focus,.factory-bootstrap-422 .pagination>.active>a:hover,.factory-bootstrap-422 .pagination>.active>span,.factory-bootstrap-422 .pagination>.active>span:focus,.factory-bootstrap-422 .pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#1e8cbe;border-color:#0074a2}.factory-bootstrap-422 .pagination>.disabled>a,.factory-bootstrap-422 .pagination>.disabled>a:focus,.factory-bootstrap-422 .pagination>.disabled>a:hover,.factory-bootstrap-422 .pagination>.disabled>span,.factory-bootstrap-422 .pagination>.disabled>span:focus,.factory-bootstrap-422 .pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.factory-bootstrap-422 .pagination-lg>li>a,.factory-bootstrap-422 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.factory-bootstrap-422 .pagination-lg>li:first-child>a,.factory-bootstrap-422 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.factory-bootstrap-422 .pagination-lg>li:last-child>a,.factory-bootstrap-422 .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.factory-bootstrap-422 .pagination-sm>li>a,.factory-bootstrap-422 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.factory-bootstrap-422 .pagination-sm>li:first-child>a,.factory-bootstrap-422 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.factory-bootstrap-422 .pagination-sm>li:last-child>a,.factory-bootstrap-422 .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.factory-bootstrap-422 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.factory-bootstrap-422 .pager:after,.factory-bootstrap-422 .pager:before{display:table;content:" "}.factory-bootstrap-422 .pager:after{clear:both}.factory-bootstrap-422 .pager li{display:inline}.factory-bootstrap-422 .pager li>a,.factory-bootstrap-422 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.factory-bootstrap-422 .pager li>a:focus,.factory-bootstrap-422 .pager li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-422 .pager .next>a,.factory-bootstrap-422 .pager .next>span{float:right}.factory-bootstrap-422 .pager .previous>a,.factory-bootstrap-422 .pager .previous>span{float:left}.factory-bootstrap-422 .pager .disabled>a,.factory-bootstrap-422 .pager .disabled>a:focus,.factory-bootstrap-422 .pager .disabled>a:hover,.factory-bootstrap-422 .pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.factory-bootstrap-422 .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-422 .label[href]:focus,.factory-bootstrap-422 .label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-422 .label:empty{display:none}.factory-bootstrap-422 .btn .label{position:relative;top:-1px}.factory-bootstrap-422 .label-default{background-color:#999}.factory-bootstrap-422 .label-default[href]:focus,.factory-bootstrap-422 .label-default[href]:hover{background-color:gray}.factory-bootstrap-422 .label-primary{background-color:#428bca}.factory-bootstrap-422 .label-primary[href]:focus,.factory-bootstrap-422 .label-primary[href]:hover{background-color:#3071a9}.factory-bootstrap-422 .label-success{background-color:#5cb85c}.factory-bootstrap-422 .label-success[href]:focus,.factory-bootstrap-422 .label-success[href]:hover{background-color:#449d44}.factory-bootstrap-422 .label-info{background-color:#5bc0de}.factory-bootstrap-422 .label-info[href]:focus,.factory-bootstrap-422 .label-info[href]:hover{background-color:#31b0d5}.factory-bootstrap-422 .label-warning{background-color:#f0ad4e}.factory-bootstrap-422 .label-warning[href]:focus,.factory-bootstrap-422 .label-warning[href]:hover{background-color:#ec971f}.factory-bootstrap-422 .label-danger{background-color:#d9534f}.factory-bootstrap-422 .label-danger[href]:focus,.factory-bootstrap-422 .label-danger[href]:hover{background-color:#c9302c}.factory-bootstrap-422 .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-422 .badge:empty{display:none}.factory-bootstrap-422 .btn .badge{position:relative;top:-1px}.factory-bootstrap-422 a.badge:focus,.factory-bootstrap-422 a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-422 .nav-pills>.active>a>.badge,.factory-bootstrap-422 a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.factory-bootstrap-422 .nav-pills>li>a>.badge{margin-left:3px}.factory-bootstrap-422 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.factory-bootstrap-422 .jumbotron .h1,.factory-bootstrap-422 .jumbotron h1{line-height:1;color:inherit}.factory-bootstrap-422 .jumbotron p{line-height:1.4}.factory-bootstrap-422 .container .jumbotron{border-radius:6px}.factory-bootstrap-422 .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-422 .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-422 .thumbnail a>img,.factory-bootstrap-422 .thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}.factory-bootstrap-422 a.thumbnail.active,.factory-bootstrap-422 a.thumbnail:focus,.factory-bootstrap-422 a.thumbnail:hover{border-color:#428bca}.factory-bootstrap-422 .thumbnail .caption{padding:9px;color:#333}.factory-bootstrap-422 .alert{border:1px solid transparent;border-radius:4px}.factory-bootstrap-422 .alert h4{margin-top:0;color:inherit}.factory-bootstrap-422 .alert .alert-link{font-weight:700}.factory-bootstrap-422 .alert>p,.factory-bootstrap-422 .alert>ul{margin-bottom:0}.factory-bootstrap-422 .alert>p+p{margin-top:5px}.factory-bootstrap-422 .alert-dismissable{padding-right:35px}.factory-bootstrap-422 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.factory-bootstrap-422 .alert-info{color:#31708f;background-color:#d9edf7}.factory-bootstrap-422 .alert-info hr{border-top-color:#a6e1ec}.factory-bootstrap-422 .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-422 .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-422 .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-422 .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-422 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.factory-bootstrap-422 .progress-bar-success{background-color:#5cb85c}.factory-bootstrap-422 .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-422 .progress-bar-info{background-color:#5bc0de}.factory-bootstrap-422 .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-422 .progress-bar-warning{background-color:#f0ad4e}.factory-bootstrap-422 .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-422 .progress-bar-danger{background-color:#d9534f}.factory-bootstrap-422 .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-422 .media,.factory-bootstrap-422 .media-body{overflow:hidden;zoom:1}.factory-bootstrap-422 .media,.factory-bootstrap-422 .media .media{margin-top:15px}.factory-bootstrap-422 .media:first-child{margin-top:0}.factory-bootstrap-422 .media-object{display:block}.factory-bootstrap-422 .media-heading{margin:0 0 5px}.factory-bootstrap-422 .media>.pull-left{margin-right:10px}.factory-bootstrap-422 .media>.pull-right{margin-left:10px}.factory-bootstrap-422 .media-list{padding-left:0;list-style:none}.factory-bootstrap-422 .list-group{padding-left:0;margin-bottom:20px}.factory-bootstrap-422 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-422 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.factory-bootstrap-422 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.factory-bootstrap-422 .list-group-item>.badge{float:right}.factory-bootstrap-422 .list-group-item>.badge+.badge{margin-right:5px}.factory-bootstrap-422 a.list-group-item{color:#555}.factory-bootstrap-422 a.list-group-item .list-group-item-heading{color:#333}.factory-bootstrap-422 a.list-group-item:focus,.factory-bootstrap-422 a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.factory-bootstrap-422 a.list-group-item.active,.factory-bootstrap-422 a.list-group-item.active:focus,.factory-bootstrap-422 a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-422 a.list-group-item.active .list-group-item-heading,.factory-bootstrap-422 a.list-group-item.active:focus .list-group-item-heading,.factory-bootstrap-422 a.list-group-item.active:hover .list-group-item-heading{color:inherit}.factory-bootstrap-422 a.list-group-item.active .list-group-item-text,.factory-bootstrap-422 a.list-group-item.active:focus .list-group-item-text,.factory-bootstrap-422 a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.factory-bootstrap-422 .list-group-item-heading{margin-top:0;margin-bottom:5px}.factory-bootstrap-422 .list-group-item-text{margin-bottom:0;line-height:1.3}.factory-bootstrap-422 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.factory-bootstrap-422 .panel-body{padding:15px}.factory-bootstrap-422 .panel-body:after,.factory-bootstrap-422 .panel-body:before{display:table;content:" "}.factory-bootstrap-422 .panel-body:after{clear:both}.factory-bootstrap-422 .panel>.list-group{margin-bottom:0}.factory-bootstrap-422 .panel>.list-group .list-group-item{border-width:1px 0}.factory-bootstrap-422 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .panel>.list-group .list-group-item:last-child{border-bottom:0}.factory-bootstrap-422 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.factory-bootstrap-422 .panel>.table,.factory-bootstrap-422 .panel>.table-responsive>.table{margin-bottom:0}.factory-bootstrap-422 .panel>.panel-body+.table,.factory-bootstrap-422 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.factory-bootstrap-422 .panel>.table>tbody:first-child td,.factory-bootstrap-422 .panel>.table>tbody:first-child th{border-top:0}.factory-bootstrap-422 .panel>.table-bordered,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered{border:0}.factory-bootstrap-422 .panel>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-422 .panel>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-422 .panel>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-422 .panel>.table-bordered>thead>tr>th:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.factory-bootstrap-422 .panel>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-422 .panel>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-422 .panel>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-422 .panel>.table-bordered>thead>tr>th:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.factory-bootstrap-422 .panel>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-422 .panel>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-422 .panel>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-422 .panel>.table-bordered>thead>tr:last-child>th,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}.factory-bootstrap-422 .panel>.table-responsive{margin-bottom:0;border:0}.factory-bootstrap-422 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.factory-bootstrap-422 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.factory-bootstrap-422 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.factory-bootstrap-422 .panel-title>a{color:inherit}.factory-bootstrap-422 .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-422 .panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.factory-bootstrap-422 .panel-group .panel+.panel{margin-top:5px}.factory-bootstrap-422 .panel-group .panel-heading{border-bottom:0}.factory-bootstrap-422 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.factory-bootstrap-422 .panel-group .panel-footer{border-top:0}.factory-bootstrap-422 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.factory-bootstrap-422 .panel-default{border-color:#ddd}.factory-bootstrap-422 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.factory-bootstrap-422 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.factory-bootstrap-422 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.factory-bootstrap-422 .panel-primary{border-color:#428bca}.factory-bootstrap-422 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-422 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.factory-bootstrap-422 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.factory-bootstrap-422 .panel-success{border-color:#d6e9c6}.factory-bootstrap-422 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.factory-bootstrap-422 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.factory-bootstrap-422 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.factory-bootstrap-422 .panel-warning{border-color:#faebcc}.factory-bootstrap-422 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.factory-bootstrap-422 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.factory-bootstrap-422 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.factory-bootstrap-422 .panel-danger{border-color:#ebccd1}.factory-bootstrap-422 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.factory-bootstrap-422 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.factory-bootstrap-422 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.factory-bootstrap-422 .panel-info{border-color:#bce8f1}.factory-bootstrap-422 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.factory-bootstrap-422 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.factory-bootstrap-422 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.factory-bootstrap-422 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.factory-bootstrap-422 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.factory-bootstrap-422 .well-lg{padding:24px;border-radius:6px}.factory-bootstrap-422 .well-sm{padding:9px;border-radius:3px}.factory-bootstrap-422 .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-422 .alert .close{position:relative;top:-8px;right:-7px}.factory-bootstrap-422 .close:focus,.factory-bootstrap-422 .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-422 button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.factory-bootstrap-422 .modal-open{overflow:hidden}.factory-bootstrap-422 .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-422 .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-422 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.factory-bootstrap-422 .modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.factory-bootstrap-422 .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-422 .modal-backdrop,.factory-bootstrap-422-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.factory-bootstrap-422 .modal-backdrop.fade,.factory-bootstrap-422-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.factory-bootstrap-422 .modal-backdrop.in,.factory-bootstrap-422-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-422 .modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.factory-bootstrap-422 .modal-header .close{margin-top:-2px}.factory-bootstrap-422 .modal-title{margin:0;line-height:1.428571429}.factory-bootstrap-422 .modal-body{position:relative;padding:20px;max-height:none}.factory-bootstrap-422 .modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.factory-bootstrap-422 .modal-footer:after,.factory-bootstrap-422 .modal-footer:before{display:table;content:" "}.factory-bootstrap-422 .modal-footer:after{clear:both}.factory-bootstrap-422 .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.factory-bootstrap-422 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.factory-bootstrap-422 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.factory-bootstrap-422 .modal-dialog{width:600px;margin:30px auto}.factory-bootstrap-422 .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-422 .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-422 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-422 .tooltip.top{padding:5px 0;margin-top:-3px}.factory-bootstrap-422 .tooltip.right{padding:0 5px;margin-left:3px}.factory-bootstrap-422 .tooltip.bottom{padding:5px 0;margin-top:3px}.factory-bootstrap-422 .tooltip.left{padding:0 5px;margin-left:-3px}.factory-bootstrap-422 .tooltip-inner{width:400px;padding:15px 20px;color:#fff;text-align:left;text-decoration:none;background-color:#673ab7;border-radius:3px}.factory-bootstrap-422 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-422 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-422 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-422 .tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-422 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#673ab7;border-width:5px 5px 5px 0}.factory-bootstrap-422 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#673ab7;border-width:5px 0 5px 5px}.factory-bootstrap-422 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-422 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-422 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-422 .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-422 .popover.top{margin-top:-10px}.factory-bootstrap-422 .popover.right{margin-left:10px}.factory-bootstrap-422 .popover.bottom{margin-top:10px}.factory-bootstrap-422 .popover.left{margin-left:-10px}.factory-bootstrap-422 .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-422 .popover-content{padding:9px 14px}.factory-bootstrap-422 .popover .arrow,.factory-bootstrap-422 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-422 .popover .arrow{border-width:11px}.factory-bootstrap-422 .popover .arrow:after{border-width:10px;content:""}.factory-bootstrap-422 .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-422 .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.factory-bootstrap-422 .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-422 .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.factory-bootstrap-422 .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-422 .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.factory-bootstrap-422 .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-422 .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.factory-bootstrap-422 .carousel{position:relative}.factory-bootstrap-422 .carousel-inner{position:relative;width:100%;overflow:hidden}.factory-bootstrap-422 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.factory-bootstrap-422 .carousel-inner>.item>a>img,.factory-bootstrap-422 .carousel-inner>.item>img{display:block;height:auto;max-width:100%;line-height:1}.factory-bootstrap-422 .carousel-inner>.active,.factory-bootstrap-422 .carousel-inner>.next,.factory-bootstrap-422 .carousel-inner>.prev{display:block}.factory-bootstrap-422 .carousel-inner>.active{left:0}.factory-bootstrap-422 .carousel-inner>.next,.factory-bootstrap-422 .carousel-inner>.prev{position:absolute;top:0;width:100%}.factory-bootstrap-422 .carousel-inner>.next{left:100%}.factory-bootstrap-422 .carousel-inner>.prev{left:-100%}.factory-bootstrap-422 .carousel-inner>.next.left,.factory-bootstrap-422 .carousel-inner>.prev.right{left:0}.factory-bootstrap-422 .carousel-inner>.active.left{left:-100%}.factory-bootstrap-422 .carousel-inner>.active.right{left:100%}.factory-bootstrap-422 .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-422 .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-422 .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-422 .carousel-control:focus,.factory-bootstrap-422 .carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-422 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-422 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-422 .carousel-control .icon-next,.factory-bootstrap-422 .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.factory-bootstrap-422 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-422 .carousel-control .icon-prev{left:50%}.factory-bootstrap-422 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-422 .carousel-control .icon-next{right:50%}.factory-bootstrap-422 .carousel-control .icon-next,.factory-bootstrap-422 .carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.factory-bootstrap-422 .carousel-control .icon-prev:before{content:'\2039'}.factory-bootstrap-422 .carousel-control .icon-next:before{content:'\203a'}.factory-bootstrap-422 .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-422 .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-422 .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.factory-bootstrap-422 .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-422 .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-422 .clearfix:after,.factory-bootstrap-422 .clearfix:before{display:table;content:" "}.factory-bootstrap-422 .clearfix:after{clear:both}.factory-bootstrap-422 .center-block{display:block;margin-right:auto;margin-left:auto}.factory-bootstrap-422 .pull-right{float:right!important}.factory-bootstrap-422 .pull-left{float:left!important}.factory-bootstrap-422 .hide{display:none!important}.factory-bootstrap-422 .show{display:block!important}.factory-bootstrap-422 .invisible{visibility:hidden}.factory-bootstrap-422 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.factory-bootstrap-422 .hidden{display:none!important;visibility:hidden!important}.factory-bootstrap-422 .affix{position:fixed}@-ms-viewport{width:device-width}.factory-bootstrap-422 .visible-lg,.factory-bootstrap-422 .visible-md,.factory-bootstrap-422 .visible-sm,.factory-bootstrap-422 .visible-xs,.factory-bootstrap-422 td.visible-lg,.factory-bootstrap-422 td.visible-md,.factory-bootstrap-422 td.visible-sm,.factory-bootstrap-422 td.visible-xs,.factory-bootstrap-422 th.visible-lg,.factory-bootstrap-422 th.visible-md,.factory-bootstrap-422 th.visible-sm,.factory-bootstrap-422 th.visible-xs,.factory-bootstrap-422 tr.visible-lg,.factory-bootstrap-422 tr.visible-md,.factory-bootstrap-422 tr.visible-sm,.factory-bootstrap-422 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-422 .hidden-xs{display:block!important}.factory-bootstrap-422 table.hidden-xs{display:table}.factory-bootstrap-422 tr.hidden-xs{display:table-row!important}.factory-bootstrap-422 td.hidden-xs,.factory-bootstrap-422 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-422 .hidden-sm{display:block!important}.factory-bootstrap-422 table.hidden-sm{display:table}.factory-bootstrap-422 tr.hidden-sm{display:table-row!important}.factory-bootstrap-422 td.hidden-sm,.factory-bootstrap-422 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-422 .hidden-md{display:block!important}.factory-bootstrap-422 table.hidden-md{display:table}.factory-bootstrap-422 tr.hidden-md{display:table-row!important}.factory-bootstrap-422 td.hidden-md,.factory-bootstrap-422 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-422 .hidden-lg{display:block!important}.factory-bootstrap-422 table.hidden-lg{display:table}.factory-bootstrap-422 tr.hidden-lg{display:table-row!important}.factory-bootstrap-422 td.hidden-lg,.factory-bootstrap-422 th.hidden-lg{display:table-cell!important}@media (max-width:767px){.factory-bootstrap-422 .hidden-lg.hidden-xs,.factory-bootstrap-422 td.hidden-lg.hidden-xs,.factory-bootstrap-422 th.hidden-lg.hidden-xs,.factory-bootstrap-422 tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.factory-bootstrap-422 .hidden-lg.hidden-sm,.factory-bootstrap-422 td.hidden-lg.hidden-sm,.factory-bootstrap-422 th.hidden-lg.hidden-sm,.factory-bootstrap-422 tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.factory-bootstrap-422 .hidden-lg.hidden-md,.factory-bootstrap-422 td.hidden-lg.hidden-md,.factory-bootstrap-422 th.hidden-lg.hidden-md,.factory-bootstrap-422 tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.factory-bootstrap-422 .hidden-lg,.factory-bootstrap-422 td.hidden-lg,.factory-bootstrap-422 th.hidden-lg,.factory-bootstrap-422 tr.hidden-lg{display:none!important}}.factory-bootstrap-422 .visible-print,.factory-bootstrap-422 td.visible-print,.factory-bootstrap-422 th.visible-print,.factory-bootstrap-422 tr.visible-print{display:none!important}@media print{.factory-bootstrap-422 .visible-print{display:block!important}.factory-bootstrap-422 table.visible-print{display:table}.factory-bootstrap-422 tr.visible-print{display:table-row!important}.factory-bootstrap-422 td.visible-print,.factory-bootstrap-422 th.visible-print{display:table-cell!important}.factory-bootstrap-422 .hidden-print,.factory-bootstrap-422 td.hidden-print,.factory-bootstrap-422 th.hidden-print,.factory-bootstrap-422 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-422 .btn-danger,.factory-bootstrap-422 .btn-default,.factory-bootstrap-422 .btn-info,.factory-bootstrap-422 .btn-primary,.factory-bootstrap-422 .btn-success,.factory-bootstrap-422 .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-422 .btn-danger.active,.factory-bootstrap-422 .btn-danger:active,.factory-bootstrap-422 .btn-default.active,.factory-bootstrap-422 .btn-default:active,.factory-bootstrap-422 .btn-info.active,.factory-bootstrap-422 .btn-info:active,.factory-bootstrap-422 .btn-primary.active,.factory-bootstrap-422 .btn-primary:active,.factory-bootstrap-422 .btn-success.active,.factory-bootstrap-422 .btn-success:active,.factory-bootstrap-422 .btn-warning.active,.factory-bootstrap-422 .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-422 .btn.active,.factory-bootstrap-422 .btn:active{background-image:none}.factory-bootstrap-422 .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-422 .btn-default.active,.factory-bootstrap-422 .btn-default:active{background-color:#fff;border-color:#dbdbdb}.factory-bootstrap-422 .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-422 .btn-gold:focus,.factory-bootstrap-422 .btn-gold:hover{background:#fef0a1}.factory-bootstrap-422 .btn-gold.active,.factory-bootstrap-422 .btn-gold:active{background:#fef0a1;-webkit-box-shadow:inset 0 3px 8px 0 #f8ba36;box-shadow:inset 0 3px 8px 0 #f8ba36}.factory-bootstrap-422 .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-422 .btn-primary:focus,.factory-bootstrap-422 .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-422 .btn-primary.active,.factory-bootstrap-422 .btn-primary:active{background-color:#2d6ca2;border-color:#2b669a}.factory-bootstrap-422 .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-422 .btn-success:focus,.factory-bootstrap-422 .btn-success:hover{background-color:#419641;background-position:0 -15px}.factory-bootstrap-422 .btn-success.active,.factory-bootstrap-422 .btn-success:active{background-color:#419641;border-color:#3e8f3e}.factory-bootstrap-422 .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-422 .btn-warning:focus,.factory-bootstrap-422 .btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.factory-bootstrap-422 .btn-warning.active,.factory-bootstrap-422 .btn-warning:active{background-color:#eb9316;border-color:#e38d13}.factory-bootstrap-422 .btn-danger{color:#fff;background:#d9534f;border-color:#d43f3a}.factory-bootstrap-422 .btn-danger.active,.factory-bootstrap-422 .btn-danger:active,.factory-bootstrap-422 .btn-danger:focus,.factory-bootstrap-422 .btn-danger:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.factory-bootstrap-422 .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-422 .btn-info:focus,.factory-bootstrap-422 .btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.factory-bootstrap-422 .btn-info.active,.factory-bootstrap-422 .btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.factory-bootstrap-422 .img-thumbnail,.factory-bootstrap-422 .thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-422 .dropdown-menu>li>a:focus,.factory-bootstrap-422 .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-422 .dropdown-menu>.active>a,.factory-bootstrap-422 .dropdown-menu>.active>a:focus,.factory-bootstrap-422 .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-422 .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-422 .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-422 .navbar-brand,.factory-bootstrap-422 .navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.factory-bootstrap-422 .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-422 .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-422 .navbar-inverse .navbar-brand,.factory-bootstrap-422 .navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-422 .navbar-fixed-bottom,.factory-bootstrap-422 .navbar-fixed-top,.factory-bootstrap-422 .navbar-static-top{border-radius:0}.factory-bootstrap-422 .alert{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-422 .alert .actions{padding-top:10px}.factory-bootstrap-422 .alert-success{color:#3c763d;background-color:#dff0d8;border-bottom:2px solid #c8e5bc}.factory-bootstrap-422 .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-422 .alert{text-shadow:none;box-shadow:none;margin:0;margin-top:10px;margin-bottom:10px;padding:10px}.factory-bootstrap-422 .alert-normal,.factory-bootstrap-422 .alert-warning{background:#fcf8e3;color:#8a6d3b;border:1px solid #b8823b}.factory-bootstrap-422 .alert-danger{background:#cf4944;color:#fff;border-bottom:2px solid #b23e3a}.factory-bootstrap-422 .alert-danger a:not(.btn),.factory-bootstrap-422 .alert-error a:not(.btn){color:#fff}.factory-bootstrap-422 .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-422 .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-422 .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-422 .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-422 .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-422 .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-422 .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-422 .list-group-item.active,.factory-bootstrap-422 .list-group-item.active:focus,.factory-bootstrap-422 .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-422 .panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-422 .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-422 .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-422 .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-422 .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-422 .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-422 .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-422 .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-422 .factory-after{margin-left:7px;display:inline-block}.factory-bootstrap-422 .factory-hidden{display:none}.factory-bootstrap-422 .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.datetimepicker.min.css
CHANGED
@@ -12,4 +12,4 @@
|
|
12 |
* Datetimepicker for Bootstrap 3
|
13 |
* version : 4.17.47
|
14 |
* https://github.com/Eonasdan/bootstrap-datetimepicker/
|
15 |
-
*/.factory-bootstrap-
|
12 |
* Datetimepicker for Bootstrap 3
|
13 |
* version : 4.17.47
|
14 |
* https://github.com/Eonasdan/bootstrap-datetimepicker/
|
15 |
+
*/.factory-bootstrap-426 .bootstrap-datetimepicker-widget{list-style:none}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu{display:block;margin:2px 0;padding:4px;width:19em}@media (min-width:768px){.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:992px){.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:1200px){.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu:after,.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu:before{content:'';display:inline-block;position:absolute}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu.bottom:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);top:-7px;left:7px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu.bottom:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;top:-6px;left:8px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu.top:before{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,.2);bottom:-7px;left:6px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu.top:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;bottom:-6px;left:7px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before{left:auto;right:6px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after{left:auto;right:7px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .list-unstyled{margin:0}.factory-bootstrap-426 .bootstrap-datetimepicker-widget a[data-action]{padding:6px 0}.factory-bootstrap-426 .bootstrap-datetimepicker-widget a[data-action]:active{box-shadow:none}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .timepicker-hour,.factory-bootstrap-426 .bootstrap-datetimepicker-widget .timepicker-minute,.factory-bootstrap-426 .bootstrap-datetimepicker-widget .timepicker-second{width:54px;font-weight:700;font-size:1.2em;margin:0}.factory-bootstrap-426 .bootstrap-datetimepicker-widget button[data-action]{padding:6px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .btn[data-action=incrementHours]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Increment Hours"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .btn[data-action=incrementMinutes]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Increment Minutes"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .btn[data-action=decrementHours]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Decrement Hours"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .btn[data-action=decrementMinutes]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Decrement Minutes"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .btn[data-action=showHours]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Show Hours"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .btn[data-action=showMinutes]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Show Minutes"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .btn[data-action=togglePeriod]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Toggle AM/PM"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .btn[data-action=clear]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Clear the picker"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .btn[data-action=today]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Set the date to today"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .picker-switch{text-align:center}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .picker-switch::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Toggle Date and Time Screens"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .picker-switch td{padding:0;margin:0;height:auto;width:auto;line-height:inherit}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .picker-switch td span{line-height:2.5;height:2.5em;width:100%}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table{width:100%;margin:0}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td,.factory-bootstrap-426 .bootstrap-datetimepicker-widget table th{text-align:center;border-radius:4px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table th{height:20px;line-height:20px;width:20px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table th.picker-switch{width:145px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table th.disabled,.factory-bootstrap-426 .bootstrap-datetimepicker-widget table th.disabled:hover{background:0 0;color:#777;cursor:not-allowed}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table th.prev::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Previous Month"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table th.next::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Next Month"}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table thead tr:first-child th{cursor:pointer}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background:#eee}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td{height:54px;line-height:54px;width:54px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.cw{font-size:.8em;height:20px;line-height:20px;color:#777}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.day{height:20px;line-height:20px;width:20px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.day:hover,.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.hour:hover,.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.minute:hover,.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.second:hover{background:#eee;cursor:pointer}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.new,.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.old{color:#777}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.today{position:relative}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.today:before{content:'';display:inline-block;border:solid transparent;border-width:0 0 7px 7px;border-bottom-color:#337ab7;border-top-color:rgba(0,0,0,.2);position:absolute;bottom:4px;right:4px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.active,.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.active:hover{background-color:#337ab7;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.active.today:before{border-bottom-color:#fff}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.disabled,.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td.disabled:hover{background:0 0;color:#777;cursor:not-allowed}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td span{display:inline-block;width:54px;height:54px;line-height:54px;margin:2px 1.5px;cursor:pointer;border-radius:4px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td span:hover{background:#eee}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td span.active{background-color:#337ab7;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td span.old{color:#777}.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td span.disabled,.factory-bootstrap-426 .bootstrap-datetimepicker-widget table td span.disabled:hover{background:0 0;color:#777;cursor:not-allowed}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.usetwentyfour td.hour{height:27px;line-height:27px}.factory-bootstrap-426 .bootstrap-datetimepicker-widget.wider{width:21em}.factory-bootstrap-426 .bootstrap-datetimepicker-widget .datepicker-decades .decade{line-height:1.8em!important}.factory-bootstrap-426 .input-group.date .input-group-addon{cursor:pointer}.factory-bootstrap-426 .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}
|
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.form-metabox.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-form-metabox{padding:15px 10px 10px}.factory-form-metabox .control-group:last-child{margin-bottom:0}#side-sortables .factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-form-metabox{padding:15px 10px 10px}.factory-form-metabox .control-group:last-child{margin-bottom:0}#side-sortables .factory-bootstrap-426 .control-label{float:left;width:100%;text-align:left;position:relative;top:1px}#side-sortables .factory-bootstrap-426 .control-icon{float:left;margin:0 6px 0 0}#side-sortables .factory-bootstrap-426 input{float:right;position:relative;top:-25px}#side-sortables .factory-bootstrap-426 .col-sm-10{margin:0;width:100%}#side-sortables .factory-bootstrap-426 .form-group{float:none;width:auto;overflow:auto;margin-bottom:0;border-top:1px solid #f7f7f7;padding-top:15px;margin-top:15px}#side-sortables .factory-bootstrap-426 .form-group:first-child{border-top:0;padding-top:0;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/bootstrap.tab.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-tab{overflow:hidden;margin-bottom:25px}.factory-bootstrap-426 .factory-tab .form-group{overflow:hidden}.factory-bootstrap-426 .factory-tab+.form-group{margin-top:30px}.factory-bootstrap-426 .nav-tabs a{text-decoration:none}.factory-bootstrap-426 .factory-align-horizontal .nav-tabs{border-bottom:0}.factory-bootstrap-426 .factory-align-vertical .factory-headers{float:left;width:150px}.factory-bootstrap-426 .factory-align-vertical .factory-headers .nav-tabs{border-bottom:0;display:block;margin:0;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px}.factory-bootstrap-426 .factory-tab .factory-bodies{background-color:#fff;-webkit-border-radius:0 3px 3px;-moz-border-radius:0 3px 3px;border-radius:0 3px 3px;border:1px solid #DDD;padding:30px 15px 25px 10px}.factory-bootstrap-426 .factory-align-vertical .factory-bodies{min-height:250px;margin-left:150px}.factory-bootstrap-426 .factory-align-vertical .factory-bodies .actory-tab-item{clear:both}.factory-bootstrap-426 .form-horizontal .factory-align-vertical .form-group{margin-left:-5px}.factory-bootstrap-426 .factory-align-vertical .nav-tabs li{float:none}.factory-bootstrap-426 .factory-align-vertical .nav-tabs li a{margin-right:-1px;margin-bottom:0;position:relative;z-index:10;padding:10px 0 9px 15px;-webkit-border-radius:3px;-webkit-border-top-right-radius:0;-webkit-border-bottom-right-radius:0;-moz-border-radius:3px;-moz-border-radius-topright:0;-moz-border-radius-bottomright:0;border-radius:3px;border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-426 .factory-align-vertical .nav-tabs>.active>a{border:1px solid #DDD!important;border-right:1px solid #fff!important}.factory-bootstrap-426 .factory-align-vertical .nav-tabs>li a:hover{color:#21759B;z-index:5;border-color:transparent}.factory-bootstrap-426 .factory-align-vertical .control-label{width:20%;max-width:140px}.factory-bootstrap-426 .factory-align-vertical .control-group{width:80%}.factory-bootstrap-426 .factory-align-vertical .control-group input[type=text],.factory-bootstrap-426 .factory-align-vertical .control-group textarea{width:90%}
|
libs/factory/bootstrap/assets/css-min/bootstrap.wp-editor.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .wp-editor-wrap *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-426 .wp-editor-wrap .button,.factory-bootstrap-426 .wp-editor-wrap input,.factory-bootstrap-426 .wp-editor-wrap textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-426 .switch-html,.factory-bootstrap-426 .switch-tmce{color:#777}.factory-bootstrap-426 .html-active .switch-html,.factory-bootstrap-426 .tmce-active .switch-tmce{color:#555}.factory-bootstrap-426 .switch-html:hover,.factory-bootstrap-426 .switch-tmce:hover{color:#777}
|
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.color-and-opacity.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-control-row{padding-left:105px;position:relative}.factory-bootstrap-426 .factory-control-row .factory-color-wrap{position:absolute;left:0;top:0}.factory-bootstrap-426 .factory-control-row .factory-opacity-wrap{width:100%}.factory-bootstrap-426 .iris-picker{margin-top:10px}
|
libs/factory/bootstrap/assets/css-min/control.color.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-color{position:relative}.factory-bootstrap-426 .factory-color .factory-color-hex{display:inline-block;width:65px;text-align:left;vertical-align:top;border-top-right-radius:3px;border-bottom-right-radius:3px;border-radius:3px;z-index:1;position:relative;margin-left:26px;border-top-left-radius:0;border-bottom-left-radius:0}.factory-bootstrap-426 .factory-color .factory-background,.factory-bootstrap-426 .factory-color .factory-pattern{cursor:pointer;height:26px;width:26px;position:absolute;border-radius:5px;background:transparent url(../../images/color_picker_pattern.jpg) center center repeat;-moz-box-sizing:border-box;box-sizing:border-box;border-bottom:2px solid rgba(0,0,0,.34);z-index:1;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.factory-bootstrap-426 .factory-color .factory-background{z-index:2;border-radius:3px}
|
libs/factory/bootstrap/assets/css-min/control.dropdown-and-colors.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-dropdown-and-colors .factory-colors-wrap,.factory-bootstrap-426 .factory-dropdown-and-colors .factory-dropdown-wrap{display:inline-block}.factory-bootstrap-426 .factory-dropdown-and-colors .factory-dropdown-wrap{min-width:200px;max-width:300px}
|
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.fonts.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-font .factory-control-row{padding:0;vertical-align:top}.factory-bootstrap-426 .factory-font .factory-color-wrap{position:static;display:inline-block;vertical-align:top}.factory-bootstrap-426 .factory-font .factory-size-wrap{display:inline-block;width:70px;vertical-align:top}.factory-bootstrap-426 .iris-picker{margin-top:10px}.factory-bootstrap-426 .factory-font .factory-family-wrap{padding-bottom:10px}.factory-bootstrap-426 .factory-font .chosen-results{max-height:150px}
|
libs/factory/bootstrap/assets/css-min/control.list.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-list li input{margin:0 5px 0 0;position:relative;top:1px;outline:0!important}.factory-bootstrap-426 .factory-list li span{vertical-align:bottom;line-height:100%}.factory-bootstrap-426 .factory-list .factory-error{position:relative;display:inline-block}.factory-bootstrap-426 .factory-list .factory-error i{color:#f47665;margin:0 7px 0 1px;cursor:help}.factory-bootstrap-426 .factory-list .factory-error-text{display:none;position:absolute;width:300px}.factory-bootstrap-426 .factory-list .factory-error-text,.factory-bootstrap-426 .factory-list-error{background-color:rgba(0,0,0,.8);white-space:normal;z-index:10;padding:10px 12px 12px;font-weight:400;line-height:150%;border-radius:4px;color:#fff;font-size:13px;margin-top:2px}.factory-bootstrap-426 .factory-list-error{padding:5px 10px;max-width:500px;display:inline-block}.factory-bootstrap-426 .factory-list-error i{margin:0 7px 0 1px}.factory-bootstrap-426 .factory-list .factory-error-text a{color:#fff;font-weight:700}.factory-bootstrap-426 .factory-list .factory-has-error:hover .factory-error-text{display:block}.factory-bootstrap-426 .factory-list .factory-has-error{cursor:default}.opanda-connect-buttons .opanda-has-error .opanda-error{display:inline-block}.factory-bootstrap-426 .factory-checklist-way.factory-empty{font-style:italic;margin-top:7px}
|
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/control.pattern.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-pattern .factory-pattern-controls{vertical-align:middle}.factory-bootstrap-426 .factory-pattern .factory-preview-wrap{display:inline-block;vertical-align:middle}.factory-bootstrap-426 .factory-pattern .factory-preview{width:100px;height:26px;background:transparent url(../assets/images/color_picker_pattern.jpg) repeat;border:0;border-radius:3px;cursor:pointer;-moz-box-sizing:border-box;box-sizing:border-box;border-bottom:2px solid rgba(0,0,0,.34)!important;position:relative}.factory-bootstrap-426 .factory-pattern .factory-preview.factory-empty{background:transparent url(../assets/images/color_picker_pattern.jpg) repeat!important}.factory-bootstrap-426 .factory-pattern .factory-preview span{position:absolute;top:0;left:76px;background:#111;width:26px;height:26px;border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;-webkit-border-radius:0 3px 3px 0;z-index:99;border-bottom:2px solid #000}.factory-bootstrap-426 .factory-pattern .factory-preview span:hover{background:#161616}.factory-bootstrap-426 .factory-pattern .factory-preview span:after{content:'';width:0;height:0;border:transparent solid 5px;border-top-color:#96a6a6;position:absolute;top:10px;right:7px;z-index:1}.factory-bootstrap-426 .factory-pattern.factory-patterns-panel-active .factory-preview span:after{border-top-color:transparent;border-bottom-color:#96a6a6;top:4px}.factory-bootstrap-426 .factory-pattern .factory-color-panel{padding:10px;margin-top:10px;background:rgba(255,255,255,.04);border-radius:3px;display:none}.factory-bootstrap-426 .factory-pattern.factory-color-panel-active .factory-color-panel{display:block}.factory-bootstrap-426 .factory-pattern .factory-color-label{margin-right:5px}.factory-bootstrap-426 .factory-pattern .factory-color,.factory-bootstrap-426 .factory-pattern .factory-color-label{display:inline-block;vertical-align:middle}.factory-bootstrap-426 .factory-pattern .factory-color-panel .factory-hint{margin-top:7px}.factory-bootstrap-426 .factory-pattern .factory-patterns-panel{display:none;margin-top:10px;padding:2px 0 0;border-top:1px solid #272727;overflow:visible}.factory-bootstrap-426 .factory-pattern .factory-patterns-group{clear:both;padding:2px 0 0;border-bottom:1px solid #272727;padding-bottom:10px}.factory-bootstrap-426 .factory-pattern .factory-patterns-group-title{margin-top:10px}.factory-bootstrap-426 .factory-pattern .factory-patterns-row{padding-top:10px}.factory-bootstrap-426 .factory-pattern.factory-patterns-panel-active .factory-patterns-panel{display:block}.factory-bootstrap-426 .factory-pattern .factory-patterns-item,.factory-bootstrap-426 .factory-pattern .factory-patterns-item div{width:46px;height:46px}.factory-bootstrap-426 .factory-pattern .factory-patterns-item{display:inline-block;cursor:pointer;position:relative;vertical-align:top}.factory-bootstrap-426 .factory-pattern .factory-patterns-item+.factory-patterns-item{margin-left:10px}.factory-bootstrap-426 .factory-pattern .factory-patterns-item div{position:absolute;border-radius:100%;border:4px solid #333}.factory-bootstrap-426 .factory-pattern .factory-patterns-item:hover .factory-pattern-holder{width:64px;height:64px;top:-10px;left:-10px;border:1px solid #333;z-index:10}.factory-bootstrap-426 .factory-pattern .factory-no-preview{background:#2f2f2f;line-height:46px;border-radius:100%;text-align:center;font-size:20px}.factory-bootstrap-426 .factory-pattern .factory-no-preview:hover{background:#333}.factory-bootstrap-426 .factory-pattern .factory-button .fa{font-size:14px;margin-right:1px}.factory-bootstrap-426 .factory-pattern .factory-button span{position:relative;top:-1px}.factory-bootstrap-426 .factory-pattern .factory-button+.factory-button{margin-left:3px}.factory-bootstrap-426 .factory-pattern .factory-change-color-btn{margin-left:5px}
|
libs/factory/bootstrap/assets/css-min/control.radio-colors.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-from-radio-label,.factory-bootstrap-426 .factory-from-radio-label>span{-webkit-transition:all .3s;-moz-transition:all .3s;-o-transition:all .3s;transition:all .3s}.factory-bootstrap-426 .factory-from-radio-label{position:relative;width:30px;height:30px;border-radius:3px;background-color:#fff;border:1px solid rgba(0,0,0,.1)}.factory-bootstrap-426 .factory-from-radio-label:hover{background-color:#f5f2f2;border:1px solid rgba(0,0,0,.2)}.factory-bootstrap-426 .factory-from-radio-label>span{display:block;position:absolute;top:2px;left:2px;right:2px;bottom:2px;text-indent:-9999px;background-color:#fff}.factory-bootstrap-426 .factory-from-radio-label .factory-radio-color:checked+span{border:5px solid #fff}.factory-bootstrap-426 .factory-radio-color{opacity:0}
|
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/css-min/plugin.gradient-picker.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-gradient-picker-wrap{margin-bottom:20px}.factory-bootstrap-426 .gradientPicker-preview{width:100%;height:30px;border-radius:3px;background:transparent url(../../images/color_picker_pattern.jpg) repeat}.factory-bootstrap-426 .factory-color-picker-container{display:none;padding-top:15px}.factory-bootstrap-426 .factory-point,.factory-bootstrap-426 .factory-point-color{position:absolute;width:10px;height:10px;border:0;font-size:0;border-radius:50% 50% 100% 100%;-moz-border-radius:50% 50% 100% 100%;-webkit-border-radius:50% 50% 100% 100%;cursor:pointer;overflow:hidden}.factory-bootstrap-426 .factory-point-color{border-radius:0}.factory-bootstrap-426 .factory-point{background:transparent url(../../images/color_picker_pattern.jpg) repeat}.factory-bootstrap-426 .factory-current-point{-ms-transform:rotate(180deg);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.factory-bootstrap-426 .factory-points{position:relative;height:10px;width:100%;cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAWCAYAAADAQbwGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ1JREFUeNq8VAEKwCAITOn%2FX3ZzTBCxUicTBsvsOO9EIKJhAwCe5H0H4xBvLQgOegV8yZ8AZwJHc8zKI4c53bk6IGNqMH3GCJuMlkeG4p4G1e5Lq1KXatmCM7AdrbLLq7FC0agycx7oXOmk8%2FY%2FPNjRR7s6ZFHFqY5AcasLFDPtpAC7WH7aNkxgO9gdLNv3oWdKiKXX7r8bu6rlJcAA9ZRfMt5oHoIAAAAASUVORK5CYII%3D) 5 0,pointer}.factory-bootstrap-426 .gradientPicker-iris-wrap{display:none;position:absolute;left:0;top:78px;width:212px;height:212px;background:#111;border:1px solid #222;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;z-index:9999}.factory-bootstrap-426 .gradientPicker-iris-wrap .iris-border,.factory-bootstrap-426 .gradientPicker-iris-wrap .iris-picker{border:0;background:#111}.factory-bootstrap-426 .gradientPicker-pallets{padding:8px 0 3px;margin-bottom:10px;border-bottom:1px solid #323232;border-top:1px solid #323232;font-size:0;line-height:0;text-align:center}.factory-bootstrap-426 .factory-preset-gradient,.factory-bootstrap-426 .factory-secondary-color{width:22px;height:22px;border-radius:100%}.factory-bootstrap-426 .factory-preset-gradient{display:inline-block;cursor:pointer;margin-bottom:3px;position:relative}.factory-bootstrap-426 .factory-preset-gradient:hover{opacity:.9}.factory-bootstrap-426 .factory-preset-gradient+.factory-preset-gradient{margin-left:5px}.factory-bootstrap-426 .factory-secondary-color-wrap{width:11px;height:22px;position:absolute;overflow:hidden;right:0}.factory-bootstrap-426 .factory-secondary-color{position:absolute;left:-11px;background-color:red}.factory-bootstrap-426 .gradientPicker-filldirection{width:200px;margin-top:5px}.factory-bootstrap-426 .gradientPicker-ptConfig .color-chooser{float:left}.factory-bootstrap-426 .factory-color-picker-container .factory-slider{padding-left:75px;padding-right:60px;position:relative}.factory-bootstrap-426 .factory-color-picker-container .factory-color-hex{top:0;left:0;position:absolute;width:65px}
|
libs/factory/bootstrap/assets/css-min/plugin.paddings-editor.min.css
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
*/
|
9 |
|
10 |
|
11 |
-
.factory-bootstrap-
|
8 |
*/
|
9 |
|
10 |
|
11 |
+
.factory-bootstrap-426 .factory-paddings-editor{padding-left:135px;height:90px;position:relative}.factory-bootstrap-426 .factory-paddings-editor .factory-rectangle{width:120px;height:90px;border-radius:10px;background-color:#a6b6b6;overflow:hidden;cursor:pointer;-moz-box-sizing:content-box;box-sizing:content-box;position:absolute;top:0;left:0}.factory-bootstrap-426 .factory-paddings-editor .factory-side{width:100%;height:100%;position:absolute}.factory-bootstrap-426 .factory-paddings-editor .factory-side-center{width:30px;height:30px;border-radius:100%;background-color:#bac9c9;position:absolute;top:30px;left:45px;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-426 .factory-paddings-editor .factory-side-center:hover{background-color:#c0cece}.factory-bootstrap-426 .factory-paddings-editor .factory-side-center.factory-active{background-color:#829595}.factory-bootstrap-426 .factory-paddings-editor .factory-side-top{height:30px;top:0;left:0}.factory-bootstrap-426 .factory-paddings-editor .factory-side-right{width:45px;top:0;right:0}.factory-bootstrap-426 .factory-paddings-editor .factory-side-bottom{height:30px;bottom:0;left:0}.factory-bootstrap-426 .factory-paddings-editor .factory-side-left{width:45px;top:0;left:0}.factory-bootstrap-426 .factory-paddings-editor .factory-rectangle .factory-visible-value{color:#1b1f1f;background-color:rgba(255,255,255,.3);border-radius:3px;padding:2px;line-height:13px;display:inline-block}.factory-bootstrap-426 .factory-paddings-editor .factory-rectangle .factory-side.factory-active .factory-visible-value{background-color:rgba(255,255,255,.3);border-radius:3px;padding:2px;line-height:13px;display:inline-block}.factory-bootstrap-426 .factory-paddings-editor .factory-visible-value em{font-style:normal}.factory-bootstrap-426 .factory-paddings-editor .factory-side-bottom,.factory-bootstrap-426 .factory-paddings-editor .factory-side-top{text-align:center;line-height:30px}.factory-bootstrap-426 .factory-paddings-editor .factory-side-left,.factory-bootstrap-426 .factory-paddings-editor .factory-side-right{line-height:90px;text-align:center}.factory-bootstrap-426 .factory-paddings-editor .factory-slider-container{font-style:italic}.factory-bootstrap-426 .factory-paddings-editor .factory-slider{padding-right:0;margin-top:7px}
|
libs/factory/bootstrap/assets/js-min/bootstrap.accordion.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a,b,c,d){"use strict";a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a,b,c,d){"use strict";a.fn.factoryBootstrap426_accordion=function(){return this.each(function(){var b=a(this),c=!1;a("."+b.attr("class")+" > div:first").show(),a("."+b.attr("class")+" > div:first").add("."+b.attr("class")+" > h3:first").addClass("active"),a("."+b.attr("class")+" > h3").on("click",function(){var d=a(this),e=d.next();return d.hasClass("active")||c||(c=!0,d.parent().children("div").slideUp(500),a("."+b.attr("class")+" > h3").removeClass("active"),d.addClass("active"),e.addClass("active").slideDown({duration:500,complete:function(){c=!1,b.trigger("shown.bs.accordion",[d])},progress:function(){b.trigger("progress.bs.accordion",[d])}})),!1})})},a(function(){a(".factory-bootstrap-426 .factory-accordion").factoryBootstrap426_accordion()})}(jQuery,window,document);
|
libs/factory/bootstrap/assets/js-min/bootstrap.collapse.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},a.fn.factoryBootstrap426_collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.factoryBootstrap426_collapse.Constructor=b,a(document).on("click.bs.collapse.data-api","[data-toggle=factory-collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=factory-collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery);
|
libs/factory/bootstrap/assets/js-min/bootstrap.datetimepicker.min.js
CHANGED
@@ -15,4 +15,4 @@
|
|
15 |
=========================================================
|
16 |
*/
|
17 |
!function(a){"use strict";if("function"==typeof define&&define.amd)define(["jquery","moment"],a);else if("object"==typeof exports)module.exports=a(require("jquery"),require("moment"));else{if("undefined"==typeof jQuery)throw"bootstrap-datetimepicker requires jQuery to be loaded first";if("undefined"==typeof moment)throw"bootstrap-datetimepicker requires Moment.js to be loaded first";a(jQuery,moment)}}(function(a,b){"use strict";if(!b)throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");var c=function(c,d){var e,f,g,h,i,j,k,l={},m=!0,n=!1,o=!1,p=0,q=[{clsName:"days",navFnc:"M",navStep:1},{clsName:"months",navFnc:"y",navStep:1},{clsName:"years",navFnc:"y",navStep:10},{clsName:"decades",navFnc:"y",navStep:100}],r=["days","months","years","decades"],s=["top","bottom","auto"],t=["left","right","auto"],u=["default","top","bottom"],v={up:38,38:"up",down:40,40:"down",left:37,37:"left",right:39,39:"right",tab:9,9:"tab",escape:27,27:"escape",enter:13,13:"enter",pageUp:33,33:"pageUp",pageDown:34,34:"pageDown",shift:16,16:"shift",control:17,17:"control",space:32,32:"space",t:84,84:"t","delete":46,46:"delete"},w={},x=function(){return void 0!==b.tz&&void 0!==d.timeZone&&null!==d.timeZone&&""!==d.timeZone},y=function(a){var c;return c=void 0===a||null===a?b():b.isDate(a)||b.isMoment(a)?b(a):x()?b.tz(a,j,d.useStrict,d.timeZone):b(a,j,d.useStrict),x()&&c.tz(d.timeZone),c},z=function(a){if("string"!=typeof a||a.length>1)throw new TypeError("isEnabled expects a single character string parameter");switch(a){case"y":return-1!==i.indexOf("Y");case"M":return-1!==i.indexOf("M");case"d":return-1!==i.toLowerCase().indexOf("d");case"h":case"H":return-1!==i.toLowerCase().indexOf("h");case"m":return-1!==i.indexOf("m");case"s":return-1!==i.indexOf("s");default:return!1}},A=function(){return z("h")||z("m")||z("s")},B=function(){return z("y")||z("M")||z("d")},C=function(){var b=a("<thead>").append(a("<tr>").append(a("<th>").addClass("prev").attr("data-action","previous").append(a("<span>").addClass(d.icons.previous))).append(a("<th>").addClass("picker-switch").attr("data-action","pickerSwitch").attr("colspan",d.calendarWeeks?"6":"5")).append(a("<th>").addClass("next").attr("data-action","next").append(a("<span>").addClass(d.icons.next)))),c=a("<tbody>").append(a("<tr>").append(a("<td>").attr("colspan",d.calendarWeeks?"8":"7")));return[a("<div>").addClass("datepicker-days").append(a("<table>").addClass("table-condensed").append(b).append(a("<tbody>"))),a("<div>").addClass("datepicker-months").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-years").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-decades").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone()))]},D=function(){var b=a("<tr>"),c=a("<tr>"),e=a("<tr>");return z("h")&&(b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementHour}).addClass("btn").attr("data-action","incrementHours").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-hour").attr({"data-time-component":"hours",title:d.tooltips.pickHour}).attr("data-action","showHours"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementHour}).addClass("btn").attr("data-action","decrementHours").append(a("<span>").addClass(d.icons.down))))),z("m")&&(z("h")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementMinute}).addClass("btn").attr("data-action","incrementMinutes").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-minute").attr({"data-time-component":"minutes",title:d.tooltips.pickMinute}).attr("data-action","showMinutes"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementMinute}).addClass("btn").attr("data-action","decrementMinutes").append(a("<span>").addClass(d.icons.down))))),z("s")&&(z("m")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementSecond}).addClass("btn").attr("data-action","incrementSeconds").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-second").attr({"data-time-component":"seconds",title:d.tooltips.pickSecond}).attr("data-action","showSeconds"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementSecond}).addClass("btn").attr("data-action","decrementSeconds").append(a("<span>").addClass(d.icons.down))))),h||(b.append(a("<td>").addClass("separator")),c.append(a("<td>").append(a("<button>").addClass("btn btn-primary").attr({"data-action":"togglePeriod",tabindex:"-1",title:d.tooltips.togglePeriod}))),e.append(a("<td>").addClass("separator"))),a("<div>").addClass("timepicker-picker").append(a("<table>").addClass("table-condensed").append([b,c,e]))},E=function(){var b=a("<div>").addClass("timepicker-hours").append(a("<table>").addClass("table-condensed")),c=a("<div>").addClass("timepicker-minutes").append(a("<table>").addClass("table-condensed")),d=a("<div>").addClass("timepicker-seconds").append(a("<table>").addClass("table-condensed")),e=[D()];return z("h")&&e.push(b),z("m")&&e.push(c),z("s")&&e.push(d),e},F=function(){var b=[];return d.showTodayButton&&b.push(a("<td>").append(a("<a>").attr({"data-action":"today",title:d.tooltips.today}).append(a("<span>").addClass(d.icons.today)))),!d.sideBySide&&B()&&A()&&b.push(a("<td>").append(a("<a>").attr({"data-action":"togglePicker",title:d.tooltips.selectTime}).append(a("<span>").addClass(d.icons.time)))),d.showClear&&b.push(a("<td>").append(a("<a>").attr({"data-action":"clear",title:d.tooltips.clear}).append(a("<span>").addClass(d.icons.clear)))),d.showClose&&b.push(a("<td>").append(a("<a>").attr({"data-action":"close",title:d.tooltips.close}).append(a("<span>").addClass(d.icons.close)))),a("<table>").addClass("table-condensed").append(a("<tbody>").append(a("<tr>").append(b)))},G=function(){var b=a("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"),c=a("<div>").addClass("datepicker").append(C()),e=a("<div>").addClass("timepicker").append(E()),f=a("<ul>").addClass("list-unstyled"),g=a("<li>").addClass("picker-switch"+(d.collapse?" accordion-toggle":"")).append(F());return d.inline&&b.removeClass("dropdown-menu"),h&&b.addClass("usetwentyfour"),z("s")&&!h&&b.addClass("wider"),d.sideBySide&&B()&&A()?(b.addClass("timepicker-sbs"),"top"===d.toolbarPlacement&&b.append(g),b.append(a("<div>").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))),"bottom"===d.toolbarPlacement&&b.append(g),b):("top"===d.toolbarPlacement&&f.append(g),B()&&f.append(a("<li>").addClass(d.collapse&&A()?"collapse in":"").append(c)),"default"===d.toolbarPlacement&&f.append(g),A()&&f.append(a("<li>").addClass(d.collapse&&B()?"collapse":"").append(e)),"bottom"===d.toolbarPlacement&&f.append(g),b.append(f))},H=function(){var b,e={};return b=c.is("input")||d.inline?c.data():c.find("input").data(),b.dateOptions&&b.dateOptions instanceof Object&&(e=a.extend(!0,e,b.dateOptions)),a.each(d,function(a){var c="date"+a.charAt(0).toUpperCase()+a.slice(1);void 0!==b[c]&&(e[a]=b[c])}),e},I=function(){var b,e=(n||c).position(),f=(n||c).offset(),g=d.widgetPositioning.vertical,h=d.widgetPositioning.horizontal;if(d.widgetParent)b=d.widgetParent.append(o);else if(c.is("input"))b=c.after(o).parent();else{if(d.inline)return void(b=c.append(o));b=c,c.children().first().after(o)}if("auto"===g&&(g=f.top+1.5*o.height()>=a(window).height()+a(window).scrollTop()&&o.height()+c.outerHeight()<f.top?"top":"bottom"),"auto"===h&&(h=b.width()<f.left+o.outerWidth()/2&&f.left+o.outerWidth()>a(window).width()?"right":"left"),"top"===g?o.addClass("top").removeClass("bottom"):o.addClass("bottom").removeClass("top"),"right"===h?o.addClass("pull-right"):o.removeClass("pull-right"),"static"===b.css("position")&&(b=b.parents().filter(function(){return"static"!==a(this).css("position")}).first()),0===b.length)throw new Error("datetimepicker component should be placed within a non-static positioned container");o.css({top:"top"===g?"auto":e.top+c.outerHeight(),bottom:"top"===g?b.outerHeight()-(b===c?0:e.top):"auto",left:"left"===h?b===c?0:e.left:"auto",right:"left"===h?"auto":b.outerWidth()-c.outerWidth()-(b===c?0:e.left)})},J=function(a){"dp.change"===a.type&&(a.date&&a.date.isSame(a.oldDate)||!a.date&&!a.oldDate)||c.trigger(a)},K=function(a){"y"===a&&(a="YYYY"),J({type:"dp.update",change:a,viewDate:f.clone()})},L=function(a){o&&(a&&(k=Math.max(p,Math.min(3,k+a))),o.find(".datepicker > div").hide().filter(".datepicker-"+q[k].clsName).show())},M=function(){var b=a("<tr>"),c=f.clone().startOf("w").startOf("d");for(d.calendarWeeks===!0&&b.append(a("<th>").addClass("cw").text("#"));c.isBefore(f.clone().endOf("w"));)b.append(a("<th>").addClass("dow").text(c.format("dd"))),c.add(1,"d");o.find(".datepicker-days thead").append(b)},N=function(a){return d.disabledDates[a.format("YYYY-MM-DD")]===!0},O=function(a){return d.enabledDates[a.format("YYYY-MM-DD")]===!0},P=function(a){return d.disabledHours[a.format("H")]===!0},Q=function(a){return d.enabledHours[a.format("H")]===!0},R=function(b,c){if(!b.isValid())return!1;if(d.disabledDates&&"d"===c&&N(b))return!1;if(d.enabledDates&&"d"===c&&!O(b))return!1;if(d.minDate&&b.isBefore(d.minDate,c))return!1;if(d.maxDate&&b.isAfter(d.maxDate,c))return!1;if(d.daysOfWeekDisabled&&"d"===c&&-1!==d.daysOfWeekDisabled.indexOf(b.day()))return!1;if(d.disabledHours&&("h"===c||"m"===c||"s"===c)&&P(b))return!1;if(d.enabledHours&&("h"===c||"m"===c||"s"===c)&&!Q(b))return!1;if(d.disabledTimeIntervals&&("h"===c||"m"===c||"s"===c)){var e=!1;if(a.each(d.disabledTimeIntervals,function(){return b.isBetween(this[0],this[1])?(e=!0,!1):void 0}),e)return!1}return!0},S=function(){for(var b=[],c=f.clone().startOf("y").startOf("d");c.isSame(f,"y");)b.push(a("<span>").attr("data-action","selectMonth").addClass("month").text(c.format("MMM"))),c.add(1,"M");o.find(".datepicker-months td").empty().append(b)},T=function(){var b=o.find(".datepicker-months"),c=b.find("th"),g=b.find("tbody").find("span");c.eq(0).find("span").attr("title",d.tooltips.prevYear),c.eq(1).attr("title",d.tooltips.selectYear),c.eq(2).find("span").attr("title",d.tooltips.nextYear),b.find(".disabled").removeClass("disabled"),R(f.clone().subtract(1,"y"),"y")||c.eq(0).addClass("disabled"),c.eq(1).text(f.year()),R(f.clone().add(1,"y"),"y")||c.eq(2).addClass("disabled"),g.removeClass("active"),e.isSame(f,"y")&&!m&&g.eq(e.month()).addClass("active"),g.each(function(b){R(f.clone().month(b),"M")||a(this).addClass("disabled")})},U=function(){var a=o.find(".datepicker-years"),b=a.find("th"),c=f.clone().subtract(5,"y"),g=f.clone().add(6,"y"),h="";for(b.eq(0).find("span").attr("title",d.tooltips.prevDecade),b.eq(1).attr("title",d.tooltips.selectDecade),b.eq(2).find("span").attr("title",d.tooltips.nextDecade),a.find(".disabled").removeClass("disabled"),d.minDate&&d.minDate.isAfter(c,"y")&&b.eq(0).addClass("disabled"),b.eq(1).text(c.year()+"-"+g.year()),d.maxDate&&d.maxDate.isBefore(g,"y")&&b.eq(2).addClass("disabled");!c.isAfter(g,"y");)h+='<span data-action="selectYear" class="year'+(c.isSame(e,"y")&&!m?" active":"")+(R(c,"y")?"":" disabled")+'">'+c.year()+"</span>",c.add(1,"y");a.find("td").html(h)},V=function(){var a,c=o.find(".datepicker-decades"),g=c.find("th"),h=b({y:f.year()-f.year()%100-1}),i=h.clone().add(100,"y"),j=h.clone(),k=!1,l=!1,m="";for(g.eq(0).find("span").attr("title",d.tooltips.prevCentury),g.eq(2).find("span").attr("title",d.tooltips.nextCentury),c.find(".disabled").removeClass("disabled"),(h.isSame(b({y:1900}))||d.minDate&&d.minDate.isAfter(h,"y"))&&g.eq(0).addClass("disabled"),g.eq(1).text(h.year()+"-"+i.year()),(h.isSame(b({y:2e3}))||d.maxDate&&d.maxDate.isBefore(i,"y"))&&g.eq(2).addClass("disabled");!h.isAfter(i,"y");)a=h.year()+12,k=d.minDate&&d.minDate.isAfter(h,"y")&&d.minDate.year()<=a,l=d.maxDate&&d.maxDate.isAfter(h,"y")&&d.maxDate.year()<=a,m+='<span data-action="selectDecade" class="decade'+(e.isAfter(h)&&e.year()<=a?" active":"")+(R(h,"y")||k||l?"":" disabled")+'" data-selection="'+(h.year()+6)+'">'+(h.year()+1)+" - "+(h.year()+12)+"</span>",h.add(12,"y");m+="<span></span><span></span><span></span>",c.find("td").html(m),g.eq(1).text(j.year()+1+"-"+h.year())},W=function(){var b,c,g,h=o.find(".datepicker-days"),i=h.find("th"),j=[],k=[];if(B()){for(i.eq(0).find("span").attr("title",d.tooltips.prevMonth),i.eq(1).attr("title",d.tooltips.selectMonth),i.eq(2).find("span").attr("title",d.tooltips.nextMonth),h.find(".disabled").removeClass("disabled"),i.eq(1).text(f.format(d.dayViewHeaderFormat)),R(f.clone().subtract(1,"M"),"M")||i.eq(0).addClass("disabled"),R(f.clone().add(1,"M"),"M")||i.eq(2).addClass("disabled"),b=f.clone().startOf("M").startOf("w").startOf("d"),g=0;42>g;g++)0===b.weekday()&&(c=a("<tr>"),d.calendarWeeks&&c.append('<td class="cw">'+b.week()+"</td>"),j.push(c)),k=["day"],b.isBefore(f,"M")&&k.push("old"),b.isAfter(f,"M")&&k.push("new"),b.isSame(e,"d")&&!m&&k.push("active"),R(b,"d")||k.push("disabled"),b.isSame(y(),"d")&&k.push("today"),(0===b.day()||6===b.day())&&k.push("weekend"),J({type:"dp.classify",date:b,classNames:k}),c.append('<td data-action="selectDay" data-day="'+b.format("L")+'" class="'+k.join(" ")+'">'+b.date()+"</td>"),b.add(1,"d");h.find("tbody").empty().append(j),T(),U(),V()}},X=function(){var b=o.find(".timepicker-hours table"),c=f.clone().startOf("d"),d=[],e=a("<tr>");for(f.hour()>11&&!h&&c.hour(12);c.isSame(f,"d")&&(h||f.hour()<12&&c.hour()<12||f.hour()>11);)c.hour()%4===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectHour" class="hour'+(R(c,"h")?"":" disabled")+'">'+c.format(h?"HH":"hh")+"</td>"),c.add(1,"h");b.empty().append(d)},Y=function(){for(var b=o.find(".timepicker-minutes table"),c=f.clone().startOf("h"),e=[],g=a("<tr>"),h=1===d.stepping?5:d.stepping;f.isSame(c,"h");)c.minute()%(4*h)===0&&(g=a("<tr>"),e.push(g)),g.append('<td data-action="selectMinute" class="minute'+(R(c,"m")?"":" disabled")+'">'+c.format("mm")+"</td>"),c.add(h,"m");b.empty().append(e)},Z=function(){for(var b=o.find(".timepicker-seconds table"),c=f.clone().startOf("m"),d=[],e=a("<tr>");f.isSame(c,"m");)c.second()%20===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectSecond" class="second'+(R(c,"s")?"":" disabled")+'">'+c.format("ss")+"</td>"),c.add(5,"s");b.empty().append(d)},$=function(){var a,b,c=o.find(".timepicker span[data-time-component]");h||(a=o.find(".timepicker [data-action=togglePeriod]"),b=e.clone().add(e.hours()>=12?-12:12,"h"),a.text(e.format("A")),R(b,"h")?a.removeClass("disabled"):a.addClass("disabled")),c.filter("[data-time-component=hours]").text(e.format(h?"HH":"hh")),c.filter("[data-time-component=minutes]").text(e.format("mm")),c.filter("[data-time-component=seconds]").text(e.format("ss")),X(),Y(),Z()},_=function(){o&&(W(),$())},aa=function(a){var b=m?null:e;if(!a)return m=!0,g.val(""),c.data("date",""),J({type:"dp.change",date:!1,oldDate:b}),void _();if(a=a.clone().locale(d.locale),x()&&a.tz(d.timeZone),1!==d.stepping)for(a.minutes(Math.round(a.minutes()/d.stepping)*d.stepping).seconds(0);d.minDate&&a.isBefore(d.minDate);)a.add(d.stepping,"minutes");R(a)?(e=a,f=e.clone(),g.val(e.format(i)),c.data("date",e.format(i)),m=!1,_(),J({type:"dp.change",date:e.clone(),oldDate:b})):(d.keepInvalid?J({type:"dp.change",date:a,oldDate:b}):g.val(m?"":e.format(i)),J({type:"dp.error",date:a,oldDate:b}))},ba=function(){var b=!1;return o?(o.find(".collapse").each(function(){var c=a(this).data("collapse");return c&&c.transitioning?(b=!0,!1):!0}),b?l:(n&&n.hasClass("btn")&&n.toggleClass("active"),o.hide(),a(window).off("resize",I),o.off("click","[data-action]"),o.off("mousedown",!1),o.remove(),o=!1,J({type:"dp.hide",date:e.clone()}),g.blur(),f=e.clone(),l)):l},ca=function(){aa(null)},da=function(a){return void 0===d.parseInputDate?(!b.isMoment(a)||a instanceof Date)&&(a=y(a)):a=d.parseInputDate(a),a},ea={next:function(){var a=q[k].navFnc;f.add(q[k].navStep,a),W(),K(a)},previous:function(){var a=q[k].navFnc;f.subtract(q[k].navStep,a),W(),K(a)},pickerSwitch:function(){L(1)},selectMonth:function(b){var c=a(b.target).closest("tbody").find("span").index(a(b.target));f.month(c),k===p?(aa(e.clone().year(f.year()).month(f.month())),d.inline||ba()):(L(-1),W()),K("M")},selectYear:function(b){var c=parseInt(a(b.target).text(),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDecade:function(b){var c=parseInt(a(b.target).data("selection"),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDay:function(b){var c=f.clone();a(b.target).is(".old")&&c.subtract(1,"M"),a(b.target).is(".new")&&c.add(1,"M"),aa(c.date(parseInt(a(b.target).text(),10))),A()||d.keepOpen||d.inline||ba()},incrementHours:function(){var a=e.clone().add(1,"h");R(a,"h")&&aa(a)},incrementMinutes:function(){var a=e.clone().add(d.stepping,"m");R(a,"m")&&aa(a)},incrementSeconds:function(){var a=e.clone().add(1,"s");R(a,"s")&&aa(a)},decrementHours:function(){var a=e.clone().subtract(1,"h");R(a,"h")&&aa(a)},decrementMinutes:function(){var a=e.clone().subtract(d.stepping,"m");R(a,"m")&&aa(a)},decrementSeconds:function(){var a=e.clone().subtract(1,"s");R(a,"s")&&aa(a)},togglePeriod:function(){aa(e.clone().add(e.hours()>=12?-12:12,"h"))},togglePicker:function(b){var c,e=a(b.target),f=e.closest("ul"),g=f.find(".in"),h=f.find(".collapse:not(.in)");if(g&&g.length){if(c=g.data("collapse"),c&&c.transitioning)return;g.collapse?(g.collapse("hide"),h.collapse("show")):(g.removeClass("in"),h.addClass("in")),e.is("span")?e.toggleClass(d.icons.time+" "+d.icons.date):e.find("span").toggleClass(d.icons.time+" "+d.icons.date)}},showPicker:function(){o.find(".timepicker > div:not(.timepicker-picker)").hide(),o.find(".timepicker .timepicker-picker").show()},showHours:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-hours").show()},showMinutes:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-seconds").show()},selectHour:function(b){var c=parseInt(a(b.target).text(),10);h||(e.hours()>=12?12!==c&&(c+=12):12===c&&(c=0)),aa(e.clone().hours(c)),ea.showPicker.call(l)},selectMinute:function(b){aa(e.clone().minutes(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},selectSecond:function(b){aa(e.clone().seconds(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},clear:ca,today:function(){var a=y();R(a,"d")&&aa(a)},close:ba},fa=function(b){return a(b.currentTarget).is(".disabled")?!1:(ea[a(b.currentTarget).data("action")].apply(l,arguments),!1)},ga=function(){var b,c={year:function(a){return a.month(0).date(1).hours(0).seconds(0).minutes(0)},month:function(a){return a.date(1).hours(0).seconds(0).minutes(0)},day:function(a){return a.hours(0).seconds(0).minutes(0)},hour:function(a){return a.seconds(0).minutes(0)},minute:function(a){return a.seconds(0)}};return g.prop("disabled")||!d.ignoreReadonly&&g.prop("readonly")||o?l:(void 0!==g.val()&&0!==g.val().trim().length?aa(da(g.val().trim())):m&&d.useCurrent&&(d.inline||g.is("input")&&0===g.val().trim().length)&&(b=y(),"string"==typeof d.useCurrent&&(b=c[d.useCurrent](b)),aa(b)),o=G(),M(),S(),o.find(".timepicker-hours").hide(),o.find(".timepicker-minutes").hide(),o.find(".timepicker-seconds").hide(),_(),L(),a(window).on("resize",I),o.on("click","[data-action]",fa),o.on("mousedown",!1),n&&n.hasClass("btn")&&n.toggleClass("active"),I(),o.show(),d.focusOnShow&&!g.is(":focus")&&g.focus(),J({type:"dp.show"}),l)},ha=function(){return o?ba():ga()},ia=function(a){var b,c,e,f,g=null,h=[],i={},j=a.which,k="p";w[j]=k;for(b in w)w.hasOwnProperty(b)&&w[b]===k&&(h.push(b),parseInt(b,10)!==j&&(i[b]=!0));for(b in d.keyBinds)if(d.keyBinds.hasOwnProperty(b)&&"function"==typeof d.keyBinds[b]&&(e=b.split(" "),e.length===h.length&&v[j]===e[e.length-1])){for(f=!0,c=e.length-2;c>=0;c--)if(!(v[e[c]]in i)){f=!1;break}if(f){g=d.keyBinds[b];break}}g&&(g.call(l,o),a.stopPropagation(),a.preventDefault())},ja=function(a){w[a.which]="r",a.stopPropagation(),a.preventDefault()},ka=function(b){var c=a(b.target).val().trim(),d=c?da(c):null;return aa(d),b.stopImmediatePropagation(),!1},la=function(){g.on({change:ka,blur:d.debug?"":ba,keydown:ia,keyup:ja,focus:d.allowInputToggle?ga:""}),c.is("input")?g.on({focus:ga}):n&&(n.on("click",ha),n.on("mousedown",!1))},ma=function(){g.off({change:ka,blur:blur,keydown:ia,keyup:ja,focus:d.allowInputToggle?ba:""}),c.is("input")?g.off({focus:ga}):n&&(n.off("click",ha),n.off("mousedown",!1))},na=function(b){var c={};return a.each(b,function(){var a=da(this);a.isValid()&&(c[a.format("YYYY-MM-DD")]=!0)}),Object.keys(c).length?c:!1},oa=function(b){var c={};return a.each(b,function(){c[this]=!0}),Object.keys(c).length?c:!1},pa=function(){var a=d.format||"L LT";i=a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){var b=e.localeData().longDateFormat(a)||a;return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){return e.localeData().longDateFormat(a)||a})}),j=d.extraFormats?d.extraFormats.slice():[],j.indexOf(a)<0&&j.indexOf(i)<0&&j.push(i),h=i.toLowerCase().indexOf("a")<1&&i.replace(/\[.*?\]/g,"").indexOf("h")<1,z("y")&&(p=2),z("M")&&(p=1),z("d")&&(p=0),k=Math.max(p,k),m||aa(e)};if(l.destroy=function(){ba(),ma(),c.removeData("DateTimePicker"),c.removeData("date")},l.toggle=ha,l.show=ga,l.hide=ba,l.disable=function(){return ba(),n&&n.hasClass("btn")&&n.addClass("disabled"),g.prop("disabled",!0),l},l.enable=function(){return n&&n.hasClass("btn")&&n.removeClass("disabled"),g.prop("disabled",!1),l},l.ignoreReadonly=function(a){if(0===arguments.length)return d.ignoreReadonly;if("boolean"!=typeof a)throw new TypeError("ignoreReadonly () expects a boolean parameter");return d.ignoreReadonly=a,l},l.options=function(b){if(0===arguments.length)return a.extend(!0,{},d);if(!(b instanceof Object))throw new TypeError("options() options parameter should be an object");return a.extend(!0,d,b),a.each(d,function(a,b){if(void 0===l[a])throw new TypeError("option "+a+" is not recognized!");l[a](b)}),l},l.date=function(a){if(0===arguments.length)return m?null:e.clone();if(!(null===a||"string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("date() parameter must be one of [null, string, moment or Date]");return aa(null===a?null:da(a)),l},l.format=function(a){if(0===arguments.length)return d.format;if("string"!=typeof a&&("boolean"!=typeof a||a!==!1))throw new TypeError("format() expects a string or boolean:false parameter "+a);return d.format=a,i&&pa(),l},l.timeZone=function(a){if(0===arguments.length)return d.timeZone;if("string"!=typeof a)throw new TypeError("newZone() expects a string parameter");return d.timeZone=a,l},l.dayViewHeaderFormat=function(a){if(0===arguments.length)return d.dayViewHeaderFormat;if("string"!=typeof a)throw new TypeError("dayViewHeaderFormat() expects a string parameter");return d.dayViewHeaderFormat=a,l},l.extraFormats=function(a){if(0===arguments.length)return d.extraFormats;if(a!==!1&&!(a instanceof Array))throw new TypeError("extraFormats() expects an array or false parameter");return d.extraFormats=a,j&&pa(),l},l.disabledDates=function(b){if(0===arguments.length)return d.disabledDates?a.extend({},d.disabledDates):d.disabledDates;if(!b)return d.disabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledDates() expects an array parameter");return d.disabledDates=na(b),d.enabledDates=!1,_(),l},l.enabledDates=function(b){if(0===arguments.length)return d.enabledDates?a.extend({},d.enabledDates):d.enabledDates;if(!b)return d.enabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledDates() expects an array parameter");return d.enabledDates=na(b),d.disabledDates=!1,_(),l},l.daysOfWeekDisabled=function(a){if(0===arguments.length)return d.daysOfWeekDisabled.splice(0);if("boolean"==typeof a&&!a)return d.daysOfWeekDisabled=!1,_(),l;if(!(a instanceof Array))throw new TypeError("daysOfWeekDisabled() expects an array parameter");if(d.daysOfWeekDisabled=a.reduce(function(a,b){return b=parseInt(b,10),b>6||0>b||isNaN(b)?a:(-1===a.indexOf(b)&&a.push(b),a)},[]).sort(),d.useCurrent&&!d.keepInvalid){for(var b=0;!R(e,"d");){if(e.add(1,"d"),31===b)throw"Tried 31 times to find a valid date";b++}aa(e)}return _(),l},l.maxDate=function(a){if(0===arguments.length)return d.maxDate?d.maxDate.clone():d.maxDate;if("boolean"==typeof a&&a===!1)return d.maxDate=!1,_(),l;"string"==typeof a&&("now"===a||"moment"===a)&&(a=y());var b=da(a);if(!b.isValid())throw new TypeError("maxDate() Could not parse date parameter: "+a);if(d.minDate&&b.isBefore(d.minDate))throw new TypeError("maxDate() date parameter is before options.minDate: "+b.format(i));return d.maxDate=b,d.useCurrent&&!d.keepInvalid&&e.isAfter(a)&&aa(d.maxDate),f.isAfter(b)&&(f=b.clone().subtract(d.stepping,"m")),_(),l},l.minDate=function(a){if(0===arguments.length)return d.minDate?d.minDate.clone():d.minDate;if("boolean"==typeof a&&a===!1)return d.minDate=!1,_(),l;"string"==typeof a&&("now"===a||"moment"===a)&&(a=y());var b=da(a);if(!b.isValid())throw new TypeError("minDate() Could not parse date parameter: "+a);if(d.maxDate&&b.isAfter(d.maxDate))throw new TypeError("minDate() date parameter is after options.maxDate: "+b.format(i));return d.minDate=b,d.useCurrent&&!d.keepInvalid&&e.isBefore(a)&&aa(d.minDate),f.isBefore(b)&&(f=b.clone().add(d.stepping,"m")),_(),l},l.defaultDate=function(a){if(0===arguments.length)return d.defaultDate?d.defaultDate.clone():d.defaultDate;if(!a)return d.defaultDate=!1,l;"string"==typeof a&&(a="now"===a||"moment"===a?y():y(a));var b=da(a);if(!b.isValid())throw new TypeError("defaultDate() Could not parse date parameter: "+a);if(!R(b))throw new TypeError("defaultDate() date passed is invalid according to component setup validations");return d.defaultDate=b,(d.defaultDate&&d.inline||""===g.val().trim())&&aa(d.defaultDate),l},l.locale=function(a){if(0===arguments.length)return d.locale;if(!b.localeData(a))throw new TypeError("locale() locale "+a+" is not loaded from moment locales!");return d.locale=a,e.locale(d.locale),f.locale(d.locale),i&&pa(),o&&(ba(),ga()),l},l.stepping=function(a){return 0===arguments.length?d.stepping:(a=parseInt(a,10),(isNaN(a)||1>a)&&(a=1),d.stepping=a,l)},l.useCurrent=function(a){var b=["year","month","day","hour","minute"];if(0===arguments.length)return d.useCurrent;if("boolean"!=typeof a&&"string"!=typeof a)throw new TypeError("useCurrent() expects a boolean or string parameter");if("string"==typeof a&&-1===b.indexOf(a.toLowerCase()))throw new TypeError("useCurrent() expects a string parameter of "+b.join(", "));return d.useCurrent=a,l},l.collapse=function(a){if(0===arguments.length)return d.collapse;if("boolean"!=typeof a)throw new TypeError("collapse() expects a boolean parameter");return d.collapse===a?l:(d.collapse=a,o&&(ba(),ga()),l)},l.icons=function(b){if(0===arguments.length)return a.extend({},d.icons);if(!(b instanceof Object))throw new TypeError("icons() expects parameter to be an Object");return a.extend(d.icons,b),o&&(ba(),ga()),l},l.tooltips=function(b){if(0===arguments.length)return a.extend({},d.tooltips);if(!(b instanceof Object))throw new TypeError("tooltips() expects parameter to be an Object");return a.extend(d.tooltips,b),o&&(ba(),ga()),l},l.useStrict=function(a){if(0===arguments.length)return d.useStrict;if("boolean"!=typeof a)throw new TypeError("useStrict() expects a boolean parameter");return d.useStrict=a,l},l.sideBySide=function(a){if(0===arguments.length)return d.sideBySide;if("boolean"!=typeof a)throw new TypeError("sideBySide() expects a boolean parameter");return d.sideBySide=a,o&&(ba(),ga()),l},l.viewMode=function(a){if(0===arguments.length)return d.viewMode;if("string"!=typeof a)throw new TypeError("viewMode() expects a string parameter");if(-1===r.indexOf(a))throw new TypeError("viewMode() parameter must be one of ("+r.join(", ")+") value");return d.viewMode=a,k=Math.max(r.indexOf(a),p),L(),l},l.toolbarPlacement=function(a){if(0===arguments.length)return d.toolbarPlacement;if("string"!=typeof a)throw new TypeError("toolbarPlacement() expects a string parameter");if(-1===u.indexOf(a))throw new TypeError("toolbarPlacement() parameter must be one of ("+u.join(", ")+") value");return d.toolbarPlacement=a,o&&(ba(),ga()),l},l.widgetPositioning=function(b){if(0===arguments.length)return a.extend({},d.widgetPositioning);if("[object Object]"!=={}.toString.call(b))throw new TypeError("widgetPositioning() expects an object variable");if(b.horizontal){if("string"!=typeof b.horizontal)throw new TypeError("widgetPositioning() horizontal variable must be a string");if(b.horizontal=b.horizontal.toLowerCase(),-1===t.indexOf(b.horizontal))throw new TypeError("widgetPositioning() expects horizontal parameter to be one of ("+t.join(", ")+")");d.widgetPositioning.horizontal=b.horizontal}if(b.vertical){if("string"!=typeof b.vertical)throw new TypeError("widgetPositioning() vertical variable must be a string");if(b.vertical=b.vertical.toLowerCase(),-1===s.indexOf(b.vertical))throw new TypeError("widgetPositioning() expects vertical parameter to be one of ("+s.join(", ")+")");d.widgetPositioning.vertical=b.vertical}return _(),l},l.calendarWeeks=function(a){if(0===arguments.length)return d.calendarWeeks;if("boolean"!=typeof a)throw new TypeError("calendarWeeks() expects parameter to be a boolean value");return d.calendarWeeks=a,_(),l},l.showTodayButton=function(a){if(0===arguments.length)return d.showTodayButton;if("boolean"!=typeof a)throw new TypeError("showTodayButton() expects a boolean parameter");return d.showTodayButton=a,o&&(ba(),ga()),l},l.showClear=function(a){if(0===arguments.length)return d.showClear;if("boolean"!=typeof a)throw new TypeError("showClear() expects a boolean parameter");return d.showClear=a,o&&(ba(),ga()),l},l.widgetParent=function(b){if(0===arguments.length)return d.widgetParent;if("string"==typeof b&&(b=a(b)),null!==b&&"string"!=typeof b&&!(b instanceof a))throw new TypeError("widgetParent() expects a string or a jQuery object parameter");return d.widgetParent=b,o&&(ba(),ga()),l},l.keepOpen=function(a){if(0===arguments.length)return d.keepOpen;if("boolean"!=typeof a)throw new TypeError("keepOpen() expects a boolean parameter");return d.keepOpen=a,l},l.focusOnShow=function(a){if(0===arguments.length)return d.focusOnShow;if("boolean"!=typeof a)throw new TypeError("focusOnShow() expects a boolean parameter");return d.focusOnShow=a,l},l.inline=function(a){if(0===arguments.length)return d.inline;if("boolean"!=typeof a)throw new TypeError("inline() expects a boolean parameter");return d.inline=a,l},l.clear=function(){return ca(),l},l.keyBinds=function(a){return 0===arguments.length?d.keyBinds:(d.keyBinds=a,l)},l.getMoment=function(a){return y(a)},l.debug=function(a){if("boolean"!=typeof a)throw new TypeError("debug() expects a boolean parameter");return d.debug=a,l},l.allowInputToggle=function(a){if(0===arguments.length)return d.allowInputToggle;if("boolean"!=typeof a)throw new TypeError("allowInputToggle() expects a boolean parameter");return d.allowInputToggle=a,l},l.showClose=function(a){if(0===arguments.length)return d.showClose;if("boolean"!=typeof a)throw new TypeError("showClose() expects a boolean parameter");return d.showClose=a,l},l.keepInvalid=function(a){if(0===arguments.length)return d.keepInvalid;if("boolean"!=typeof a)throw new TypeError("keepInvalid() expects a boolean parameter");
|
18 |
-
return d.keepInvalid=a,l},l.datepickerInput=function(a){if(0===arguments.length)return d.datepickerInput;if("string"!=typeof a)throw new TypeError("datepickerInput() expects a string parameter");return d.datepickerInput=a,l},l.parseInputDate=function(a){if(0===arguments.length)return d.parseInputDate;if("function"!=typeof a)throw new TypeError("parseInputDate() sholud be as function");return d.parseInputDate=a,l},l.disabledTimeIntervals=function(b){if(0===arguments.length)return d.disabledTimeIntervals?a.extend({},d.disabledTimeIntervals):d.disabledTimeIntervals;if(!b)return d.disabledTimeIntervals=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledTimeIntervals() expects an array parameter");return d.disabledTimeIntervals=b,_(),l},l.disabledHours=function(b){if(0===arguments.length)return d.disabledHours?a.extend({},d.disabledHours):d.disabledHours;if(!b)return d.disabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledHours() expects an array parameter");if(d.disabledHours=oa(b),d.enabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.enabledHours=function(b){if(0===arguments.length)return d.enabledHours?a.extend({},d.enabledHours):d.enabledHours;if(!b)return d.enabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledHours() expects an array parameter");if(d.enabledHours=oa(b),d.disabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.viewDate=function(a){if(0===arguments.length)return f.clone();if(!a)return f=e.clone(),l;if(!("string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");return f=da(a),K(),l},c.is("input"))g=c;else if(g=c.find(d.datepickerInput),0===g.length)g=c.find("input");else if(!g.is("input"))throw new Error('CSS class "'+d.datepickerInput+'" cannot be applied to non input element');if(c.hasClass("input-group")&&(n=0===c.find(".datepickerbutton").length?c.find(".input-group-addon"):c.find(".datepickerbutton")),!d.inline&&!g.is("input"))throw new Error("Could not initialize DateTimePicker without an input element");return e=y(),f=e.clone(),a.extend(!0,d,H()),l.options(d),pa(),la(),g.prop("disabled")&&l.disable(),g.is("input")&&0!==g.val().trim().length?aa(da(g.val().trim())):d.defaultDate&&void 0===g.attr("placeholder")&&aa(d.defaultDate),d.inline&&ga(),l};return a.fn.
|
15 |
=========================================================
|
16 |
*/
|
17 |
!function(a){"use strict";if("function"==typeof define&&define.amd)define(["jquery","moment"],a);else if("object"==typeof exports)module.exports=a(require("jquery"),require("moment"));else{if("undefined"==typeof jQuery)throw"bootstrap-datetimepicker requires jQuery to be loaded first";if("undefined"==typeof moment)throw"bootstrap-datetimepicker requires Moment.js to be loaded first";a(jQuery,moment)}}(function(a,b){"use strict";if(!b)throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");var c=function(c,d){var e,f,g,h,i,j,k,l={},m=!0,n=!1,o=!1,p=0,q=[{clsName:"days",navFnc:"M",navStep:1},{clsName:"months",navFnc:"y",navStep:1},{clsName:"years",navFnc:"y",navStep:10},{clsName:"decades",navFnc:"y",navStep:100}],r=["days","months","years","decades"],s=["top","bottom","auto"],t=["left","right","auto"],u=["default","top","bottom"],v={up:38,38:"up",down:40,40:"down",left:37,37:"left",right:39,39:"right",tab:9,9:"tab",escape:27,27:"escape",enter:13,13:"enter",pageUp:33,33:"pageUp",pageDown:34,34:"pageDown",shift:16,16:"shift",control:17,17:"control",space:32,32:"space",t:84,84:"t","delete":46,46:"delete"},w={},x=function(){return void 0!==b.tz&&void 0!==d.timeZone&&null!==d.timeZone&&""!==d.timeZone},y=function(a){var c;return c=void 0===a||null===a?b():b.isDate(a)||b.isMoment(a)?b(a):x()?b.tz(a,j,d.useStrict,d.timeZone):b(a,j,d.useStrict),x()&&c.tz(d.timeZone),c},z=function(a){if("string"!=typeof a||a.length>1)throw new TypeError("isEnabled expects a single character string parameter");switch(a){case"y":return-1!==i.indexOf("Y");case"M":return-1!==i.indexOf("M");case"d":return-1!==i.toLowerCase().indexOf("d");case"h":case"H":return-1!==i.toLowerCase().indexOf("h");case"m":return-1!==i.indexOf("m");case"s":return-1!==i.indexOf("s");default:return!1}},A=function(){return z("h")||z("m")||z("s")},B=function(){return z("y")||z("M")||z("d")},C=function(){var b=a("<thead>").append(a("<tr>").append(a("<th>").addClass("prev").attr("data-action","previous").append(a("<span>").addClass(d.icons.previous))).append(a("<th>").addClass("picker-switch").attr("data-action","pickerSwitch").attr("colspan",d.calendarWeeks?"6":"5")).append(a("<th>").addClass("next").attr("data-action","next").append(a("<span>").addClass(d.icons.next)))),c=a("<tbody>").append(a("<tr>").append(a("<td>").attr("colspan",d.calendarWeeks?"8":"7")));return[a("<div>").addClass("datepicker-days").append(a("<table>").addClass("table-condensed").append(b).append(a("<tbody>"))),a("<div>").addClass("datepicker-months").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-years").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-decades").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone()))]},D=function(){var b=a("<tr>"),c=a("<tr>"),e=a("<tr>");return z("h")&&(b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementHour}).addClass("btn").attr("data-action","incrementHours").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-hour").attr({"data-time-component":"hours",title:d.tooltips.pickHour}).attr("data-action","showHours"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementHour}).addClass("btn").attr("data-action","decrementHours").append(a("<span>").addClass(d.icons.down))))),z("m")&&(z("h")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementMinute}).addClass("btn").attr("data-action","incrementMinutes").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-minute").attr({"data-time-component":"minutes",title:d.tooltips.pickMinute}).attr("data-action","showMinutes"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementMinute}).addClass("btn").attr("data-action","decrementMinutes").append(a("<span>").addClass(d.icons.down))))),z("s")&&(z("m")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementSecond}).addClass("btn").attr("data-action","incrementSeconds").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-second").attr({"data-time-component":"seconds",title:d.tooltips.pickSecond}).attr("data-action","showSeconds"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementSecond}).addClass("btn").attr("data-action","decrementSeconds").append(a("<span>").addClass(d.icons.down))))),h||(b.append(a("<td>").addClass("separator")),c.append(a("<td>").append(a("<button>").addClass("btn btn-primary").attr({"data-action":"togglePeriod",tabindex:"-1",title:d.tooltips.togglePeriod}))),e.append(a("<td>").addClass("separator"))),a("<div>").addClass("timepicker-picker").append(a("<table>").addClass("table-condensed").append([b,c,e]))},E=function(){var b=a("<div>").addClass("timepicker-hours").append(a("<table>").addClass("table-condensed")),c=a("<div>").addClass("timepicker-minutes").append(a("<table>").addClass("table-condensed")),d=a("<div>").addClass("timepicker-seconds").append(a("<table>").addClass("table-condensed")),e=[D()];return z("h")&&e.push(b),z("m")&&e.push(c),z("s")&&e.push(d),e},F=function(){var b=[];return d.showTodayButton&&b.push(a("<td>").append(a("<a>").attr({"data-action":"today",title:d.tooltips.today}).append(a("<span>").addClass(d.icons.today)))),!d.sideBySide&&B()&&A()&&b.push(a("<td>").append(a("<a>").attr({"data-action":"togglePicker",title:d.tooltips.selectTime}).append(a("<span>").addClass(d.icons.time)))),d.showClear&&b.push(a("<td>").append(a("<a>").attr({"data-action":"clear",title:d.tooltips.clear}).append(a("<span>").addClass(d.icons.clear)))),d.showClose&&b.push(a("<td>").append(a("<a>").attr({"data-action":"close",title:d.tooltips.close}).append(a("<span>").addClass(d.icons.close)))),a("<table>").addClass("table-condensed").append(a("<tbody>").append(a("<tr>").append(b)))},G=function(){var b=a("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"),c=a("<div>").addClass("datepicker").append(C()),e=a("<div>").addClass("timepicker").append(E()),f=a("<ul>").addClass("list-unstyled"),g=a("<li>").addClass("picker-switch"+(d.collapse?" accordion-toggle":"")).append(F());return d.inline&&b.removeClass("dropdown-menu"),h&&b.addClass("usetwentyfour"),z("s")&&!h&&b.addClass("wider"),d.sideBySide&&B()&&A()?(b.addClass("timepicker-sbs"),"top"===d.toolbarPlacement&&b.append(g),b.append(a("<div>").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))),"bottom"===d.toolbarPlacement&&b.append(g),b):("top"===d.toolbarPlacement&&f.append(g),B()&&f.append(a("<li>").addClass(d.collapse&&A()?"collapse in":"").append(c)),"default"===d.toolbarPlacement&&f.append(g),A()&&f.append(a("<li>").addClass(d.collapse&&B()?"collapse":"").append(e)),"bottom"===d.toolbarPlacement&&f.append(g),b.append(f))},H=function(){var b,e={};return b=c.is("input")||d.inline?c.data():c.find("input").data(),b.dateOptions&&b.dateOptions instanceof Object&&(e=a.extend(!0,e,b.dateOptions)),a.each(d,function(a){var c="date"+a.charAt(0).toUpperCase()+a.slice(1);void 0!==b[c]&&(e[a]=b[c])}),e},I=function(){var b,e=(n||c).position(),f=(n||c).offset(),g=d.widgetPositioning.vertical,h=d.widgetPositioning.horizontal;if(d.widgetParent)b=d.widgetParent.append(o);else if(c.is("input"))b=c.after(o).parent();else{if(d.inline)return void(b=c.append(o));b=c,c.children().first().after(o)}if("auto"===g&&(g=f.top+1.5*o.height()>=a(window).height()+a(window).scrollTop()&&o.height()+c.outerHeight()<f.top?"top":"bottom"),"auto"===h&&(h=b.width()<f.left+o.outerWidth()/2&&f.left+o.outerWidth()>a(window).width()?"right":"left"),"top"===g?o.addClass("top").removeClass("bottom"):o.addClass("bottom").removeClass("top"),"right"===h?o.addClass("pull-right"):o.removeClass("pull-right"),"static"===b.css("position")&&(b=b.parents().filter(function(){return"static"!==a(this).css("position")}).first()),0===b.length)throw new Error("datetimepicker component should be placed within a non-static positioned container");o.css({top:"top"===g?"auto":e.top+c.outerHeight(),bottom:"top"===g?b.outerHeight()-(b===c?0:e.top):"auto",left:"left"===h?b===c?0:e.left:"auto",right:"left"===h?"auto":b.outerWidth()-c.outerWidth()-(b===c?0:e.left)})},J=function(a){"dp.change"===a.type&&(a.date&&a.date.isSame(a.oldDate)||!a.date&&!a.oldDate)||c.trigger(a)},K=function(a){"y"===a&&(a="YYYY"),J({type:"dp.update",change:a,viewDate:f.clone()})},L=function(a){o&&(a&&(k=Math.max(p,Math.min(3,k+a))),o.find(".datepicker > div").hide().filter(".datepicker-"+q[k].clsName).show())},M=function(){var b=a("<tr>"),c=f.clone().startOf("w").startOf("d");for(d.calendarWeeks===!0&&b.append(a("<th>").addClass("cw").text("#"));c.isBefore(f.clone().endOf("w"));)b.append(a("<th>").addClass("dow").text(c.format("dd"))),c.add(1,"d");o.find(".datepicker-days thead").append(b)},N=function(a){return d.disabledDates[a.format("YYYY-MM-DD")]===!0},O=function(a){return d.enabledDates[a.format("YYYY-MM-DD")]===!0},P=function(a){return d.disabledHours[a.format("H")]===!0},Q=function(a){return d.enabledHours[a.format("H")]===!0},R=function(b,c){if(!b.isValid())return!1;if(d.disabledDates&&"d"===c&&N(b))return!1;if(d.enabledDates&&"d"===c&&!O(b))return!1;if(d.minDate&&b.isBefore(d.minDate,c))return!1;if(d.maxDate&&b.isAfter(d.maxDate,c))return!1;if(d.daysOfWeekDisabled&&"d"===c&&-1!==d.daysOfWeekDisabled.indexOf(b.day()))return!1;if(d.disabledHours&&("h"===c||"m"===c||"s"===c)&&P(b))return!1;if(d.enabledHours&&("h"===c||"m"===c||"s"===c)&&!Q(b))return!1;if(d.disabledTimeIntervals&&("h"===c||"m"===c||"s"===c)){var e=!1;if(a.each(d.disabledTimeIntervals,function(){return b.isBetween(this[0],this[1])?(e=!0,!1):void 0}),e)return!1}return!0},S=function(){for(var b=[],c=f.clone().startOf("y").startOf("d");c.isSame(f,"y");)b.push(a("<span>").attr("data-action","selectMonth").addClass("month").text(c.format("MMM"))),c.add(1,"M");o.find(".datepicker-months td").empty().append(b)},T=function(){var b=o.find(".datepicker-months"),c=b.find("th"),g=b.find("tbody").find("span");c.eq(0).find("span").attr("title",d.tooltips.prevYear),c.eq(1).attr("title",d.tooltips.selectYear),c.eq(2).find("span").attr("title",d.tooltips.nextYear),b.find(".disabled").removeClass("disabled"),R(f.clone().subtract(1,"y"),"y")||c.eq(0).addClass("disabled"),c.eq(1).text(f.year()),R(f.clone().add(1,"y"),"y")||c.eq(2).addClass("disabled"),g.removeClass("active"),e.isSame(f,"y")&&!m&&g.eq(e.month()).addClass("active"),g.each(function(b){R(f.clone().month(b),"M")||a(this).addClass("disabled")})},U=function(){var a=o.find(".datepicker-years"),b=a.find("th"),c=f.clone().subtract(5,"y"),g=f.clone().add(6,"y"),h="";for(b.eq(0).find("span").attr("title",d.tooltips.prevDecade),b.eq(1).attr("title",d.tooltips.selectDecade),b.eq(2).find("span").attr("title",d.tooltips.nextDecade),a.find(".disabled").removeClass("disabled"),d.minDate&&d.minDate.isAfter(c,"y")&&b.eq(0).addClass("disabled"),b.eq(1).text(c.year()+"-"+g.year()),d.maxDate&&d.maxDate.isBefore(g,"y")&&b.eq(2).addClass("disabled");!c.isAfter(g,"y");)h+='<span data-action="selectYear" class="year'+(c.isSame(e,"y")&&!m?" active":"")+(R(c,"y")?"":" disabled")+'">'+c.year()+"</span>",c.add(1,"y");a.find("td").html(h)},V=function(){var a,c=o.find(".datepicker-decades"),g=c.find("th"),h=b({y:f.year()-f.year()%100-1}),i=h.clone().add(100,"y"),j=h.clone(),k=!1,l=!1,m="";for(g.eq(0).find("span").attr("title",d.tooltips.prevCentury),g.eq(2).find("span").attr("title",d.tooltips.nextCentury),c.find(".disabled").removeClass("disabled"),(h.isSame(b({y:1900}))||d.minDate&&d.minDate.isAfter(h,"y"))&&g.eq(0).addClass("disabled"),g.eq(1).text(h.year()+"-"+i.year()),(h.isSame(b({y:2e3}))||d.maxDate&&d.maxDate.isBefore(i,"y"))&&g.eq(2).addClass("disabled");!h.isAfter(i,"y");)a=h.year()+12,k=d.minDate&&d.minDate.isAfter(h,"y")&&d.minDate.year()<=a,l=d.maxDate&&d.maxDate.isAfter(h,"y")&&d.maxDate.year()<=a,m+='<span data-action="selectDecade" class="decade'+(e.isAfter(h)&&e.year()<=a?" active":"")+(R(h,"y")||k||l?"":" disabled")+'" data-selection="'+(h.year()+6)+'">'+(h.year()+1)+" - "+(h.year()+12)+"</span>",h.add(12,"y");m+="<span></span><span></span><span></span>",c.find("td").html(m),g.eq(1).text(j.year()+1+"-"+h.year())},W=function(){var b,c,g,h=o.find(".datepicker-days"),i=h.find("th"),j=[],k=[];if(B()){for(i.eq(0).find("span").attr("title",d.tooltips.prevMonth),i.eq(1).attr("title",d.tooltips.selectMonth),i.eq(2).find("span").attr("title",d.tooltips.nextMonth),h.find(".disabled").removeClass("disabled"),i.eq(1).text(f.format(d.dayViewHeaderFormat)),R(f.clone().subtract(1,"M"),"M")||i.eq(0).addClass("disabled"),R(f.clone().add(1,"M"),"M")||i.eq(2).addClass("disabled"),b=f.clone().startOf("M").startOf("w").startOf("d"),g=0;42>g;g++)0===b.weekday()&&(c=a("<tr>"),d.calendarWeeks&&c.append('<td class="cw">'+b.week()+"</td>"),j.push(c)),k=["day"],b.isBefore(f,"M")&&k.push("old"),b.isAfter(f,"M")&&k.push("new"),b.isSame(e,"d")&&!m&&k.push("active"),R(b,"d")||k.push("disabled"),b.isSame(y(),"d")&&k.push("today"),(0===b.day()||6===b.day())&&k.push("weekend"),J({type:"dp.classify",date:b,classNames:k}),c.append('<td data-action="selectDay" data-day="'+b.format("L")+'" class="'+k.join(" ")+'">'+b.date()+"</td>"),b.add(1,"d");h.find("tbody").empty().append(j),T(),U(),V()}},X=function(){var b=o.find(".timepicker-hours table"),c=f.clone().startOf("d"),d=[],e=a("<tr>");for(f.hour()>11&&!h&&c.hour(12);c.isSame(f,"d")&&(h||f.hour()<12&&c.hour()<12||f.hour()>11);)c.hour()%4===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectHour" class="hour'+(R(c,"h")?"":" disabled")+'">'+c.format(h?"HH":"hh")+"</td>"),c.add(1,"h");b.empty().append(d)},Y=function(){for(var b=o.find(".timepicker-minutes table"),c=f.clone().startOf("h"),e=[],g=a("<tr>"),h=1===d.stepping?5:d.stepping;f.isSame(c,"h");)c.minute()%(4*h)===0&&(g=a("<tr>"),e.push(g)),g.append('<td data-action="selectMinute" class="minute'+(R(c,"m")?"":" disabled")+'">'+c.format("mm")+"</td>"),c.add(h,"m");b.empty().append(e)},Z=function(){for(var b=o.find(".timepicker-seconds table"),c=f.clone().startOf("m"),d=[],e=a("<tr>");f.isSame(c,"m");)c.second()%20===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectSecond" class="second'+(R(c,"s")?"":" disabled")+'">'+c.format("ss")+"</td>"),c.add(5,"s");b.empty().append(d)},$=function(){var a,b,c=o.find(".timepicker span[data-time-component]");h||(a=o.find(".timepicker [data-action=togglePeriod]"),b=e.clone().add(e.hours()>=12?-12:12,"h"),a.text(e.format("A")),R(b,"h")?a.removeClass("disabled"):a.addClass("disabled")),c.filter("[data-time-component=hours]").text(e.format(h?"HH":"hh")),c.filter("[data-time-component=minutes]").text(e.format("mm")),c.filter("[data-time-component=seconds]").text(e.format("ss")),X(),Y(),Z()},_=function(){o&&(W(),$())},aa=function(a){var b=m?null:e;if(!a)return m=!0,g.val(""),c.data("date",""),J({type:"dp.change",date:!1,oldDate:b}),void _();if(a=a.clone().locale(d.locale),x()&&a.tz(d.timeZone),1!==d.stepping)for(a.minutes(Math.round(a.minutes()/d.stepping)*d.stepping).seconds(0);d.minDate&&a.isBefore(d.minDate);)a.add(d.stepping,"minutes");R(a)?(e=a,f=e.clone(),g.val(e.format(i)),c.data("date",e.format(i)),m=!1,_(),J({type:"dp.change",date:e.clone(),oldDate:b})):(d.keepInvalid?J({type:"dp.change",date:a,oldDate:b}):g.val(m?"":e.format(i)),J({type:"dp.error",date:a,oldDate:b}))},ba=function(){var b=!1;return o?(o.find(".collapse").each(function(){var c=a(this).data("collapse");return c&&c.transitioning?(b=!0,!1):!0}),b?l:(n&&n.hasClass("btn")&&n.toggleClass("active"),o.hide(),a(window).off("resize",I),o.off("click","[data-action]"),o.off("mousedown",!1),o.remove(),o=!1,J({type:"dp.hide",date:e.clone()}),g.blur(),f=e.clone(),l)):l},ca=function(){aa(null)},da=function(a){return void 0===d.parseInputDate?(!b.isMoment(a)||a instanceof Date)&&(a=y(a)):a=d.parseInputDate(a),a},ea={next:function(){var a=q[k].navFnc;f.add(q[k].navStep,a),W(),K(a)},previous:function(){var a=q[k].navFnc;f.subtract(q[k].navStep,a),W(),K(a)},pickerSwitch:function(){L(1)},selectMonth:function(b){var c=a(b.target).closest("tbody").find("span").index(a(b.target));f.month(c),k===p?(aa(e.clone().year(f.year()).month(f.month())),d.inline||ba()):(L(-1),W()),K("M")},selectYear:function(b){var c=parseInt(a(b.target).text(),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDecade:function(b){var c=parseInt(a(b.target).data("selection"),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDay:function(b){var c=f.clone();a(b.target).is(".old")&&c.subtract(1,"M"),a(b.target).is(".new")&&c.add(1,"M"),aa(c.date(parseInt(a(b.target).text(),10))),A()||d.keepOpen||d.inline||ba()},incrementHours:function(){var a=e.clone().add(1,"h");R(a,"h")&&aa(a)},incrementMinutes:function(){var a=e.clone().add(d.stepping,"m");R(a,"m")&&aa(a)},incrementSeconds:function(){var a=e.clone().add(1,"s");R(a,"s")&&aa(a)},decrementHours:function(){var a=e.clone().subtract(1,"h");R(a,"h")&&aa(a)},decrementMinutes:function(){var a=e.clone().subtract(d.stepping,"m");R(a,"m")&&aa(a)},decrementSeconds:function(){var a=e.clone().subtract(1,"s");R(a,"s")&&aa(a)},togglePeriod:function(){aa(e.clone().add(e.hours()>=12?-12:12,"h"))},togglePicker:function(b){var c,e=a(b.target),f=e.closest("ul"),g=f.find(".in"),h=f.find(".collapse:not(.in)");if(g&&g.length){if(c=g.data("collapse"),c&&c.transitioning)return;g.collapse?(g.collapse("hide"),h.collapse("show")):(g.removeClass("in"),h.addClass("in")),e.is("span")?e.toggleClass(d.icons.time+" "+d.icons.date):e.find("span").toggleClass(d.icons.time+" "+d.icons.date)}},showPicker:function(){o.find(".timepicker > div:not(.timepicker-picker)").hide(),o.find(".timepicker .timepicker-picker").show()},showHours:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-hours").show()},showMinutes:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-seconds").show()},selectHour:function(b){var c=parseInt(a(b.target).text(),10);h||(e.hours()>=12?12!==c&&(c+=12):12===c&&(c=0)),aa(e.clone().hours(c)),ea.showPicker.call(l)},selectMinute:function(b){aa(e.clone().minutes(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},selectSecond:function(b){aa(e.clone().seconds(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},clear:ca,today:function(){var a=y();R(a,"d")&&aa(a)},close:ba},fa=function(b){return a(b.currentTarget).is(".disabled")?!1:(ea[a(b.currentTarget).data("action")].apply(l,arguments),!1)},ga=function(){var b,c={year:function(a){return a.month(0).date(1).hours(0).seconds(0).minutes(0)},month:function(a){return a.date(1).hours(0).seconds(0).minutes(0)},day:function(a){return a.hours(0).seconds(0).minutes(0)},hour:function(a){return a.seconds(0).minutes(0)},minute:function(a){return a.seconds(0)}};return g.prop("disabled")||!d.ignoreReadonly&&g.prop("readonly")||o?l:(void 0!==g.val()&&0!==g.val().trim().length?aa(da(g.val().trim())):m&&d.useCurrent&&(d.inline||g.is("input")&&0===g.val().trim().length)&&(b=y(),"string"==typeof d.useCurrent&&(b=c[d.useCurrent](b)),aa(b)),o=G(),M(),S(),o.find(".timepicker-hours").hide(),o.find(".timepicker-minutes").hide(),o.find(".timepicker-seconds").hide(),_(),L(),a(window).on("resize",I),o.on("click","[data-action]",fa),o.on("mousedown",!1),n&&n.hasClass("btn")&&n.toggleClass("active"),I(),o.show(),d.focusOnShow&&!g.is(":focus")&&g.focus(),J({type:"dp.show"}),l)},ha=function(){return o?ba():ga()},ia=function(a){var b,c,e,f,g=null,h=[],i={},j=a.which,k="p";w[j]=k;for(b in w)w.hasOwnProperty(b)&&w[b]===k&&(h.push(b),parseInt(b,10)!==j&&(i[b]=!0));for(b in d.keyBinds)if(d.keyBinds.hasOwnProperty(b)&&"function"==typeof d.keyBinds[b]&&(e=b.split(" "),e.length===h.length&&v[j]===e[e.length-1])){for(f=!0,c=e.length-2;c>=0;c--)if(!(v[e[c]]in i)){f=!1;break}if(f){g=d.keyBinds[b];break}}g&&(g.call(l,o),a.stopPropagation(),a.preventDefault())},ja=function(a){w[a.which]="r",a.stopPropagation(),a.preventDefault()},ka=function(b){var c=a(b.target).val().trim(),d=c?da(c):null;return aa(d),b.stopImmediatePropagation(),!1},la=function(){g.on({change:ka,blur:d.debug?"":ba,keydown:ia,keyup:ja,focus:d.allowInputToggle?ga:""}),c.is("input")?g.on({focus:ga}):n&&(n.on("click",ha),n.on("mousedown",!1))},ma=function(){g.off({change:ka,blur:blur,keydown:ia,keyup:ja,focus:d.allowInputToggle?ba:""}),c.is("input")?g.off({focus:ga}):n&&(n.off("click",ha),n.off("mousedown",!1))},na=function(b){var c={};return a.each(b,function(){var a=da(this);a.isValid()&&(c[a.format("YYYY-MM-DD")]=!0)}),Object.keys(c).length?c:!1},oa=function(b){var c={};return a.each(b,function(){c[this]=!0}),Object.keys(c).length?c:!1},pa=function(){var a=d.format||"L LT";i=a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){var b=e.localeData().longDateFormat(a)||a;return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){return e.localeData().longDateFormat(a)||a})}),j=d.extraFormats?d.extraFormats.slice():[],j.indexOf(a)<0&&j.indexOf(i)<0&&j.push(i),h=i.toLowerCase().indexOf("a")<1&&i.replace(/\[.*?\]/g,"").indexOf("h")<1,z("y")&&(p=2),z("M")&&(p=1),z("d")&&(p=0),k=Math.max(p,k),m||aa(e)};if(l.destroy=function(){ba(),ma(),c.removeData("DateTimePicker"),c.removeData("date")},l.toggle=ha,l.show=ga,l.hide=ba,l.disable=function(){return ba(),n&&n.hasClass("btn")&&n.addClass("disabled"),g.prop("disabled",!0),l},l.enable=function(){return n&&n.hasClass("btn")&&n.removeClass("disabled"),g.prop("disabled",!1),l},l.ignoreReadonly=function(a){if(0===arguments.length)return d.ignoreReadonly;if("boolean"!=typeof a)throw new TypeError("ignoreReadonly () expects a boolean parameter");return d.ignoreReadonly=a,l},l.options=function(b){if(0===arguments.length)return a.extend(!0,{},d);if(!(b instanceof Object))throw new TypeError("options() options parameter should be an object");return a.extend(!0,d,b),a.each(d,function(a,b){if(void 0===l[a])throw new TypeError("option "+a+" is not recognized!");l[a](b)}),l},l.date=function(a){if(0===arguments.length)return m?null:e.clone();if(!(null===a||"string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("date() parameter must be one of [null, string, moment or Date]");return aa(null===a?null:da(a)),l},l.format=function(a){if(0===arguments.length)return d.format;if("string"!=typeof a&&("boolean"!=typeof a||a!==!1))throw new TypeError("format() expects a string or boolean:false parameter "+a);return d.format=a,i&&pa(),l},l.timeZone=function(a){if(0===arguments.length)return d.timeZone;if("string"!=typeof a)throw new TypeError("newZone() expects a string parameter");return d.timeZone=a,l},l.dayViewHeaderFormat=function(a){if(0===arguments.length)return d.dayViewHeaderFormat;if("string"!=typeof a)throw new TypeError("dayViewHeaderFormat() expects a string parameter");return d.dayViewHeaderFormat=a,l},l.extraFormats=function(a){if(0===arguments.length)return d.extraFormats;if(a!==!1&&!(a instanceof Array))throw new TypeError("extraFormats() expects an array or false parameter");return d.extraFormats=a,j&&pa(),l},l.disabledDates=function(b){if(0===arguments.length)return d.disabledDates?a.extend({},d.disabledDates):d.disabledDates;if(!b)return d.disabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledDates() expects an array parameter");return d.disabledDates=na(b),d.enabledDates=!1,_(),l},l.enabledDates=function(b){if(0===arguments.length)return d.enabledDates?a.extend({},d.enabledDates):d.enabledDates;if(!b)return d.enabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledDates() expects an array parameter");return d.enabledDates=na(b),d.disabledDates=!1,_(),l},l.daysOfWeekDisabled=function(a){if(0===arguments.length)return d.daysOfWeekDisabled.splice(0);if("boolean"==typeof a&&!a)return d.daysOfWeekDisabled=!1,_(),l;if(!(a instanceof Array))throw new TypeError("daysOfWeekDisabled() expects an array parameter");if(d.daysOfWeekDisabled=a.reduce(function(a,b){return b=parseInt(b,10),b>6||0>b||isNaN(b)?a:(-1===a.indexOf(b)&&a.push(b),a)},[]).sort(),d.useCurrent&&!d.keepInvalid){for(var b=0;!R(e,"d");){if(e.add(1,"d"),31===b)throw"Tried 31 times to find a valid date";b++}aa(e)}return _(),l},l.maxDate=function(a){if(0===arguments.length)return d.maxDate?d.maxDate.clone():d.maxDate;if("boolean"==typeof a&&a===!1)return d.maxDate=!1,_(),l;"string"==typeof a&&("now"===a||"moment"===a)&&(a=y());var b=da(a);if(!b.isValid())throw new TypeError("maxDate() Could not parse date parameter: "+a);if(d.minDate&&b.isBefore(d.minDate))throw new TypeError("maxDate() date parameter is before options.minDate: "+b.format(i));return d.maxDate=b,d.useCurrent&&!d.keepInvalid&&e.isAfter(a)&&aa(d.maxDate),f.isAfter(b)&&(f=b.clone().subtract(d.stepping,"m")),_(),l},l.minDate=function(a){if(0===arguments.length)return d.minDate?d.minDate.clone():d.minDate;if("boolean"==typeof a&&a===!1)return d.minDate=!1,_(),l;"string"==typeof a&&("now"===a||"moment"===a)&&(a=y());var b=da(a);if(!b.isValid())throw new TypeError("minDate() Could not parse date parameter: "+a);if(d.maxDate&&b.isAfter(d.maxDate))throw new TypeError("minDate() date parameter is after options.maxDate: "+b.format(i));return d.minDate=b,d.useCurrent&&!d.keepInvalid&&e.isBefore(a)&&aa(d.minDate),f.isBefore(b)&&(f=b.clone().add(d.stepping,"m")),_(),l},l.defaultDate=function(a){if(0===arguments.length)return d.defaultDate?d.defaultDate.clone():d.defaultDate;if(!a)return d.defaultDate=!1,l;"string"==typeof a&&(a="now"===a||"moment"===a?y():y(a));var b=da(a);if(!b.isValid())throw new TypeError("defaultDate() Could not parse date parameter: "+a);if(!R(b))throw new TypeError("defaultDate() date passed is invalid according to component setup validations");return d.defaultDate=b,(d.defaultDate&&d.inline||""===g.val().trim())&&aa(d.defaultDate),l},l.locale=function(a){if(0===arguments.length)return d.locale;if(!b.localeData(a))throw new TypeError("locale() locale "+a+" is not loaded from moment locales!");return d.locale=a,e.locale(d.locale),f.locale(d.locale),i&&pa(),o&&(ba(),ga()),l},l.stepping=function(a){return 0===arguments.length?d.stepping:(a=parseInt(a,10),(isNaN(a)||1>a)&&(a=1),d.stepping=a,l)},l.useCurrent=function(a){var b=["year","month","day","hour","minute"];if(0===arguments.length)return d.useCurrent;if("boolean"!=typeof a&&"string"!=typeof a)throw new TypeError("useCurrent() expects a boolean or string parameter");if("string"==typeof a&&-1===b.indexOf(a.toLowerCase()))throw new TypeError("useCurrent() expects a string parameter of "+b.join(", "));return d.useCurrent=a,l},l.collapse=function(a){if(0===arguments.length)return d.collapse;if("boolean"!=typeof a)throw new TypeError("collapse() expects a boolean parameter");return d.collapse===a?l:(d.collapse=a,o&&(ba(),ga()),l)},l.icons=function(b){if(0===arguments.length)return a.extend({},d.icons);if(!(b instanceof Object))throw new TypeError("icons() expects parameter to be an Object");return a.extend(d.icons,b),o&&(ba(),ga()),l},l.tooltips=function(b){if(0===arguments.length)return a.extend({},d.tooltips);if(!(b instanceof Object))throw new TypeError("tooltips() expects parameter to be an Object");return a.extend(d.tooltips,b),o&&(ba(),ga()),l},l.useStrict=function(a){if(0===arguments.length)return d.useStrict;if("boolean"!=typeof a)throw new TypeError("useStrict() expects a boolean parameter");return d.useStrict=a,l},l.sideBySide=function(a){if(0===arguments.length)return d.sideBySide;if("boolean"!=typeof a)throw new TypeError("sideBySide() expects a boolean parameter");return d.sideBySide=a,o&&(ba(),ga()),l},l.viewMode=function(a){if(0===arguments.length)return d.viewMode;if("string"!=typeof a)throw new TypeError("viewMode() expects a string parameter");if(-1===r.indexOf(a))throw new TypeError("viewMode() parameter must be one of ("+r.join(", ")+") value");return d.viewMode=a,k=Math.max(r.indexOf(a),p),L(),l},l.toolbarPlacement=function(a){if(0===arguments.length)return d.toolbarPlacement;if("string"!=typeof a)throw new TypeError("toolbarPlacement() expects a string parameter");if(-1===u.indexOf(a))throw new TypeError("toolbarPlacement() parameter must be one of ("+u.join(", ")+") value");return d.toolbarPlacement=a,o&&(ba(),ga()),l},l.widgetPositioning=function(b){if(0===arguments.length)return a.extend({},d.widgetPositioning);if("[object Object]"!=={}.toString.call(b))throw new TypeError("widgetPositioning() expects an object variable");if(b.horizontal){if("string"!=typeof b.horizontal)throw new TypeError("widgetPositioning() horizontal variable must be a string");if(b.horizontal=b.horizontal.toLowerCase(),-1===t.indexOf(b.horizontal))throw new TypeError("widgetPositioning() expects horizontal parameter to be one of ("+t.join(", ")+")");d.widgetPositioning.horizontal=b.horizontal}if(b.vertical){if("string"!=typeof b.vertical)throw new TypeError("widgetPositioning() vertical variable must be a string");if(b.vertical=b.vertical.toLowerCase(),-1===s.indexOf(b.vertical))throw new TypeError("widgetPositioning() expects vertical parameter to be one of ("+s.join(", ")+")");d.widgetPositioning.vertical=b.vertical}return _(),l},l.calendarWeeks=function(a){if(0===arguments.length)return d.calendarWeeks;if("boolean"!=typeof a)throw new TypeError("calendarWeeks() expects parameter to be a boolean value");return d.calendarWeeks=a,_(),l},l.showTodayButton=function(a){if(0===arguments.length)return d.showTodayButton;if("boolean"!=typeof a)throw new TypeError("showTodayButton() expects a boolean parameter");return d.showTodayButton=a,o&&(ba(),ga()),l},l.showClear=function(a){if(0===arguments.length)return d.showClear;if("boolean"!=typeof a)throw new TypeError("showClear() expects a boolean parameter");return d.showClear=a,o&&(ba(),ga()),l},l.widgetParent=function(b){if(0===arguments.length)return d.widgetParent;if("string"==typeof b&&(b=a(b)),null!==b&&"string"!=typeof b&&!(b instanceof a))throw new TypeError("widgetParent() expects a string or a jQuery object parameter");return d.widgetParent=b,o&&(ba(),ga()),l},l.keepOpen=function(a){if(0===arguments.length)return d.keepOpen;if("boolean"!=typeof a)throw new TypeError("keepOpen() expects a boolean parameter");return d.keepOpen=a,l},l.focusOnShow=function(a){if(0===arguments.length)return d.focusOnShow;if("boolean"!=typeof a)throw new TypeError("focusOnShow() expects a boolean parameter");return d.focusOnShow=a,l},l.inline=function(a){if(0===arguments.length)return d.inline;if("boolean"!=typeof a)throw new TypeError("inline() expects a boolean parameter");return d.inline=a,l},l.clear=function(){return ca(),l},l.keyBinds=function(a){return 0===arguments.length?d.keyBinds:(d.keyBinds=a,l)},l.getMoment=function(a){return y(a)},l.debug=function(a){if("boolean"!=typeof a)throw new TypeError("debug() expects a boolean parameter");return d.debug=a,l},l.allowInputToggle=function(a){if(0===arguments.length)return d.allowInputToggle;if("boolean"!=typeof a)throw new TypeError("allowInputToggle() expects a boolean parameter");return d.allowInputToggle=a,l},l.showClose=function(a){if(0===arguments.length)return d.showClose;if("boolean"!=typeof a)throw new TypeError("showClose() expects a boolean parameter");return d.showClose=a,l},l.keepInvalid=function(a){if(0===arguments.length)return d.keepInvalid;if("boolean"!=typeof a)throw new TypeError("keepInvalid() expects a boolean parameter");
|
18 |
+
return d.keepInvalid=a,l},l.datepickerInput=function(a){if(0===arguments.length)return d.datepickerInput;if("string"!=typeof a)throw new TypeError("datepickerInput() expects a string parameter");return d.datepickerInput=a,l},l.parseInputDate=function(a){if(0===arguments.length)return d.parseInputDate;if("function"!=typeof a)throw new TypeError("parseInputDate() sholud be as function");return d.parseInputDate=a,l},l.disabledTimeIntervals=function(b){if(0===arguments.length)return d.disabledTimeIntervals?a.extend({},d.disabledTimeIntervals):d.disabledTimeIntervals;if(!b)return d.disabledTimeIntervals=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledTimeIntervals() expects an array parameter");return d.disabledTimeIntervals=b,_(),l},l.disabledHours=function(b){if(0===arguments.length)return d.disabledHours?a.extend({},d.disabledHours):d.disabledHours;if(!b)return d.disabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledHours() expects an array parameter");if(d.disabledHours=oa(b),d.enabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.enabledHours=function(b){if(0===arguments.length)return d.enabledHours?a.extend({},d.enabledHours):d.enabledHours;if(!b)return d.enabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledHours() expects an array parameter");if(d.enabledHours=oa(b),d.disabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.viewDate=function(a){if(0===arguments.length)return f.clone();if(!a)return f=e.clone(),l;if(!("string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");return f=da(a),K(),l},c.is("input"))g=c;else if(g=c.find(d.datepickerInput),0===g.length)g=c.find("input");else if(!g.is("input"))throw new Error('CSS class "'+d.datepickerInput+'" cannot be applied to non input element');if(c.hasClass("input-group")&&(n=0===c.find(".datepickerbutton").length?c.find(".input-group-addon"):c.find(".datepickerbutton")),!d.inline&&!g.is("input"))throw new Error("Could not initialize DateTimePicker without an input element");return e=y(),f=e.clone(),a.extend(!0,d,H()),l.options(d),pa(),la(),g.prop("disabled")&&l.disable(),g.is("input")&&0!==g.val().trim().length?aa(da(g.val().trim())):d.defaultDate&&void 0===g.attr("placeholder")&&aa(d.defaultDate),d.inline&&ga(),l};return a.fn.factoryBootstrap426_DatetimePickerControl=function(b){b=b||{};var d,e=Array.prototype.slice.call(arguments,1),f=!0,g=["destroy","hide","show","toggle"];if("object"==typeof b)return this.each(function(){var d,e=a(this);e.data("DateTimePicker")||(d=a.extend(!0,{},a.fn.factoryBootstrap426_DatetimePickerControl.defaults,b),e.data("DateTimePicker",c(e,d)))});if("string"==typeof b)return this.each(function(){var c=a(this),g=c.data("DateTimePicker");if(!g)throw new Error('bootstrap-datetimepicker("'+b+'") method was called on an element that is not using DateTimePicker');d=g[b].apply(g,e),f=d===g}),f||a.inArray(b,g)>-1?this:d;throw new TypeError("Invalid arguments for DateTimePicker: "+b)},a.fn.factoryBootstrap426_DatetimePickerControl.defaults={timeZone:"",format:!1,dayViewHeaderFormat:"MMMM YYYY",extraFormats:!1,stepping:1,minDate:!1,maxDate:!1,useCurrent:!0,collapse:!0,locale:b.locale(),defaultDate:!1,disabledDates:!1,enabledDates:!1,icons:{time:"fa fa-clock-o",date:"fa fa-calendar",up:"fa fa-arrow-up",down:"fa fa-arrow-down",previous:"fa fa-arrow-left",next:"fa fa-arrow-right",today:"fa fa-thumb-tack",clear:"fa fa-trash",close:"fa fa-times"},tooltips:{today:"Go to today",clear:"Clear selection",close:"Close the picker",selectMonth:"Select Month",prevMonth:"Previous Month",nextMonth:"Next Month",selectYear:"Select Year",prevYear:"Previous Year",nextYear:"Next Year",selectDecade:"Select Decade",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevCentury:"Previous Century",nextCentury:"Next Century",pickHour:"Pick Hour",incrementHour:"Increment Hour",decrementHour:"Decrement Hour",pickMinute:"Pick Minute",incrementMinute:"Increment Minute",decrementMinute:"Decrement Minute",pickSecond:"Pick Second",incrementSecond:"Increment Second",decrementSecond:"Decrement Second",togglePeriod:"Toggle Period",selectTime:"Select Time"},useStrict:!1,sideBySide:!1,daysOfWeekDisabled:!1,calendarWeeks:!1,viewMode:"days",toolbarPlacement:"default",showTodayButton:!1,showClear:!1,showClose:!1,widgetPositioning:{horizontal:"auto",vertical:"auto"},widgetParent:null,ignoreReadonly:!1,keepOpen:!1,focusOnShow:!0,inline:!1,keepInvalid:!1,datepickerInput:".datepickerinput",keyBinds:{up:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(7,"d")):this.date(b.clone().add(this.stepping(),"m"))}},down:function(a){if(!a)return void this.show();var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(7,"d")):this.date(b.clone().subtract(this.stepping(),"m"))},"control up":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(1,"y")):this.date(b.clone().add(1,"h"))}},"control down":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(1,"y")):this.date(b.clone().subtract(1,"h"))}},left:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"d"))}},right:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"d"))}},pageUp:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"M"))}},pageDown:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"M"))}},enter:function(){this.hide()},escape:function(){this.hide()},"control space":function(a){a&&a.find(".timepicker").is(":visible")&&a.find('.btn[data-action="togglePeriod"]').click()},t:function(){this.date(this.getMoment())},"delete":function(){this.clear()}},debug:!1,allowInputToggle:!1,disabledTimeIntervals:!1,disabledHours:!1,enabledHours:!1,viewDate:!1},a.fn.factoryBootstrap426_DatetimePickerControl}),function(a){a(function(){a(".factory-bootstrap-426 .factory-datetimepicker").factoryBootstrap426_DatetimePickerControl(),a(".factory-bootstrap-426 .factory-datetimepicker-range-0").factoryBootstrap426_DatetimePickerControl(),a(".factory-bootstrap-426 .factory-datetimepicker-range-1").factoryBootstrap426_DatetimePickerControl({useCurrent:!1}),a(".factory-bootstrap-426 .factory-datetimepicker-range-0").on("dp.change",function(b){a(".factory-bootstrap-426 .factory-datetimepicker-range-1").data("DateTimePicker").minDate(b.date)}),a(".factory-bootstrap-426 .factory-datetimepicker-range-1").on("dp.change",function(b){a(".factory-bootstrap-426 .factory-datetimepicker-range-0").data("DateTimePicker").maxDate(b.date)})})}(jQuery);
|
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/bootstrap.modal.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,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="factory-bootstrap-
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="factory-bootstrap-426-modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.factoryBootstrap426_modal;a.fn.factoryBootstrap426_modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.factoryBootstrap426_modal.Constructor=b,a.fn.factoryBootstrap426_modal.noConflict=function(){return a.fn.factoryBootstrap426_modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="factory-modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("factory-modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.factoryBootstrap426_modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(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.color-and-opacity.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a,b){a(function(){a(function(){a(".factory-bootstrap-
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a,b){a(function(){a(function(){a(".factory-bootstrap-426 .factory-color-and-opacity").each(function(){var b=a(this),c=b.find(".factory-color"),d=b.find(".factory-integer");d.change(function(){var a=d.find(".factory-result").val()/100;c.find(".factory-background").css("opacity",a)}),d.change(),d.on("click.color.factory",function(a){a.stopPropagation()})})})})}(jQuery);
|
libs/factory/bootstrap/assets/js-min/control.color.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){a.widget("
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){a.widget("factoryBootstrap426.colorControl",{_create:function(){this.$element=this.element,this.$picker=this.$element.find(".factory-color-hex"),this.$preview=this.$element.find(".factory-preview"),this.$background=this.$element.find(".factory-background"),this._init()},_init:function(b){var c=this,d={width:216,palettes:["#16a086","#27ae61","#2a80b9","#8f44ad","#2d3e50","#f49c14","#c1392b","#bec3c7"],hide:!0,change:function(a,b){c.$background.css({background:b.color.toString()}),c.$element.trigger("change.color.factory",[b.color.toString()]),c.$element.trigger("updated.color.factory",[b.color.toString()])}},e=this.$element.data("picker-target");e&&(d.target=a(e)),this.$picker.factoryBootstrap426_iris(d),this.$picker.off("focus"),a(document).on("click.color.factory",function(){c.$picker.factoryBootstrap426_iris("hide")}),this.$picker.add(this.$background).on("click.color.factory",function(a){a.stopPropagation(),c.$picker.factoryBootstrap426_iris("show")})},togglePicker:function(){this.$element.hasClass("factory-picker-active")?this.hidePicker():this.showPicker()},hidePicker:function(){this.$element.removeClass("factory-picker-active"),this.$picker.factoryBootstrap426_iris("hide")},showPicker:function(){this.$element.addClass("factory-picker-active"),this.$picker.factoryBootstrap426_iris("show")},getValue:function(){return this.$picker.val()},setValue:function(a,b){this.$picker.val(a),b&&self.$picker.trigger("change")}}),a(function(){a.widget.bridge("factoryBootstrap426_colorControl",a.factoryBootstrap426.colorControl),a(".factory-bootstrap-426 .factory-color").factoryBootstrap426_colorControl({})})}(jQuery);
|
libs/factory/bootstrap/assets/js-min/control.dropdown-and-colors.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=a(b),d=c.find(".factory-colors-inner-wrap");c.find("select").change(function(){var b=c.find("select option:selected"),e=b.data("colors"),f=d.data("radio-name");if(f&&e){d.html("");for(var g=0;g<e.length;g++){var h=e[g],i=a('<span class="factory-form-radio-item"><label class="factory-from-radio-label"><input type="radio" name="'+f+'" class="factory-radio-color" value="'+h[0]+'" checked="checked"><span style="background-color:'+h[1]+'"></span></label></span>');d.append(i)}}})};a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){var b=function(b){var c=a(b),d=c.find(".factory-colors-inner-wrap");c.find("select").change(function(){var b=c.find("select option:selected"),e=b.data("colors"),f=d.data("radio-name");if(f&&e){d.html("");for(var g=0;g<e.length;g++){var h=e[g],i=a('<span class="factory-form-radio-item"><label class="factory-from-radio-label"><input type="radio" name="'+f+'" class="factory-radio-color" value="'+h[0]+'" checked="checked"><span style="background-color:'+h[1]+'"></span></label></span>');d.append(i)}}})};a.fn.factoryBootstrap426_dropdownAndColors=function(c){if("string"==typeof c){var d=a(this).data("factory.dropdownAndColors.control");return d?d[c]():null}return this.each(function(){var c=a(this),d=c.data("factory.dropdownAndColors.control");d||c.data("factory.dropdownAndColors.control",d=new b(this))})},a.fn.factoryBootstrap426_dropdownAndColors.Constructor=b,a(function(){a(".factory-bootstrap-426 .factory-dropdown-and-colors").factoryBootstrap426_dropdownAndColors()})}(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.fonts.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){a.widget("
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){a.widget("factoryBootstrap426.fontControl",{_create:function(){this.$element=this.element,this.$family=this.$element.find(".factory-family-wrap select"),this.$googleFontData=this.$element.find(".factory-google-font-data"),this.fontSelectorName=this.$family.attr("name"),this.googleFontsOptions={frameName:this.element.data("google-fonts-frame-name")},this.googleFontsOptions.frameName||(this.googleFontsOptions.frameName="preview"),this._initUI(),this._bindEvents()},_initUI:function(){this.$family.chosen()},_bindEvents:function(){var a=this;this.$family.change(function(b){var c=a._getCurrentOption(),d=c.data("google-font");if(d){var e=c.data("family"),f=c.data("variants").split(","),g=c.data("subsets").split(",");a._loadGoogleFont(e,f,g)}else a.$googleFontData.val("")})},_getCurrentOption:function(){var a=this.$family.val();return this._getOptionByValue(a)},_getOptionByValue:function(a){var b=this.$family.find("option[value='"+a+"']");return b},_loadGoogleFont:function(b,c,d){var c=this._filterGoogleFontVariantsBeforeLoading(b,c,d),d=this._filterGoogleFontSubsetsBeforeLoading(b,c,d);this.$googleFontData.val(this._encode64(JSON.stringify({name:b,styles:c,subsets:d})));var e=this._getTargetToLoadGoogleFont(),f=this.fontSelectorName+"-font-loader",g=e.find("#"+f);e.find("#"+f).length>0&&g.remove();var h="http://fonts.googleapis.com/css";c&&c.length&&(b=b+":"+c.join(",")),h=h+"?family="+b,d&&d.length&&(h=h+"&subset="+d.join(",")),a('<link id="'+f+'" rel="stylesheet" type="text/css" href="'+h+'" >').appendTo(e)},_filterGoogleFontVariantsBeforeLoading:function(b,c,d){var e=this;return a(document).trigger("factory-filter-google-font-variants",[c,e.$element,b,d]),c},_filterGoogleFontSubsetsBeforeLoading:function(b,c,d){var e=this;return a(document).trigger("factory-filter-google-font-subsets",[d,e.$element,c,d]),d},_getTargetToLoadGoogleFont:function(){var b=this.googleFontsOptions.frameName,c=a("head");if(b){var d=a('iframe[name="'+b+'"]');if(0===d.length)return console.error("The preview container not found.");c=d.contents().find("head")}return c},_base64KeyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_encode64:function(a){a=escape(a);var b,c,d,e,f,g="",h="",i="",j=0;do b=a.charCodeAt(j++),c=a.charCodeAt(j++),h=a.charCodeAt(j++),d=b>>2,e=(3&b)<<4|c>>4,f=(15&c)<<2|h>>6,i=63&h,isNaN(c)?f=i=64:isNaN(h)&&(i=64),g=g+this._base64KeyStr.charAt(d)+this._base64KeyStr.charAt(e)+this._base64KeyStr.charAt(f)+this._base64KeyStr.charAt(i),b=c=h="",d=e=f=i="";while(j<a.length);return g}}),a(function(){a.widget.bridge("factoryBootstrap426_fontControl",a.factoryBootstrap426.fontControl),a(".factory-bootstrap-426 .factory-font").factoryBootstrap426_fontControl({})})}(jQuery);
|
libs/factory/bootstrap/assets/js-min/control.gradient.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){var b=function(b){this.$element=a(b),this.$picker=this.$element.find(".factory-gradient-picker"),this.$result=this.$element.find(".factory-result"),this.init()};b.prototype.init=function(){var a=this,b=this.$element.data("directions"),c=this.$element.data("points"),d=c?c.split(","):[];this.$picker.gradientPicker({change:function(b,c){a.$result.val(c).trigger("keyup")},fillDirection:b,controlPoints:d})},a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){var b=function(b){this.$element=a(b),this.$picker=this.$element.find(".factory-gradient-picker"),this.$result=this.$element.find(".factory-result"),this.init()};b.prototype.init=function(){var a=this,b=this.$element.data("directions"),c=this.$element.data("points"),d=c?c.split(","):[];this.$picker.gradientPicker({change:function(b,c){a.$result.val(c).trigger("keyup")},fillDirection:b,controlPoints:d})},a.fn.factoryBootstrap426_gradientControl=function(c){return this.each(function(){var d=a(this),e=d.data("factory.gradient-control");e||d.data("factory.gradient-control",e=new b(this)),"string"==typeof c&&e[c].call(e)})},a.fn.factoryBootstrap426_gradientControl.Constructor=b,a(function(){a(".factory-bootstrap-426 .factory-gradient").factoryBootstrap426_gradientControl()})}(jQuery);
|
libs/factory/bootstrap/assets/js-min/control.integer.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){var b=function(b){this.$element=a(b),this.$element.hasClass("factory-has-slider")&&this.createSlider()};b.prototype.createSlider=function(){var a=this,b=this.$element.find(".factory-slider-container");this.$bar=b.find(".factory-bar"),this.$result=b.find(".factory-result"),this.$visibleValue=b.find(".factory-visible-value"),this.units=b.data("units"),this.rangeStart=b.data("range-start"),this.rangeEnd=b.data("range-end"),this.step=b.data("step"),this.step||(this.step=1);var c=this.$result.val();this.$bar.noUiSlider({start:parseInt(c),range:{min:a.rangeStart,max:a.rangeEnd},connect:"lower",step:a.step}),this.$bar.on("slide set",function(){a.setValue(parseInt(a.$bar.val()))})},b.prototype.setValue=function(a,b){this.$result.val(a),this.$visibleValue.length>0&&(this.units?this.$visibleValue.text(a+this.units):this.$visibleValue.text(a)),b&&this.$bar.noUiSlider({start:a},!0),this.$result.trigger("keyup"),this.$element.trigger("change")},b.prototype.getValue=function(){return this.$result.val()},b.prototype.api=function(){return this},a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){var b=function(b){this.$element=a(b),this.$element.hasClass("factory-has-slider")&&this.createSlider()};b.prototype.createSlider=function(){var a=this,b=this.$element.find(".factory-slider-container");this.$bar=b.find(".factory-bar"),this.$result=b.find(".factory-result"),this.$visibleValue=b.find(".factory-visible-value"),this.units=b.data("units"),this.rangeStart=b.data("range-start"),this.rangeEnd=b.data("range-end"),this.step=b.data("step"),this.step||(this.step=1);var c=this.$result.val();this.$bar.noUiSlider({start:parseInt(c),range:{min:a.rangeStart,max:a.rangeEnd},connect:"lower",step:a.step}),this.$bar.on("slide set",function(){a.setValue(parseInt(a.$bar.val()))})},b.prototype.setValue=function(a,b){this.$result.val(a),this.$visibleValue.length>0&&(this.units?this.$visibleValue.text(a+this.units):this.$visibleValue.text(a)),b&&this.$bar.noUiSlider({start:a},!0),this.$result.trigger("keyup"),this.$element.trigger("change")},b.prototype.getValue=function(){return this.$result.val()},b.prototype.api=function(){return this},a.fn.factoryBootstrap426_integerControl=function(c){if("string"==typeof c){var d=a(this).data("factory.integer-control");return d?d[c]():null}return this.each(function(){var c=a(this),d=c.data("factory.integer-control");d||c.data("factory.integer-control",d=new b(this))})},a.fn.factoryBootstrap426_integerControl.Constructor=b,a(function(){a(".factory-bootstrap-426 .factory-integer").factoryBootstrap426_integerControl()})}(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/assets/js-min/control.pattern.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){a.widget("
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){a.widget("factoryBootstrap426.patternControl",{_create:function(){this.$element=this.element,this.$preview=this.$element.find(".factory-preview"),this.$patternResult=this.$element.find(".factory-pattern-result"),this.$colorResult=this.$element.find(".factory-color-result"),this.$patterns=this.$element.find(".factory-patterns-panel"),this.$patternItems=this.$element.find(".factory-patterns-item"),this.$btnUpload=this.$element.find(".factory-upload-btn"),this.$btnChangeColor=this.$element.find(".factory-change-color-btn"),this.$colorPanel=this.$element.find(".factory-color-panel"),this.$colorContol=this.$element.find(".factory-color"),this._initMainPanel(),this._initColorPickerPanel(),this._initPatternsPanel()},_initMainPanel:function(){var a=this;this.$preview.on("click",function(){return a.togglePatternsPanel(),!1}),this.$btnChangeColor.on("click",function(){return a.toggleColorPanel(),!1})},togglePatternsPanel:function(){this.$element.hasClass("factory-patterns-panel-active")?this.hidePatternsPanel():this.showPatternsPanel()},hidePatternsPanel:function(){this.$element.removeClass("factory-patterns-panel-active")},showPatternsPanel:function(){this.$element.addClass("factory-patterns-panel-active")},hasColor:function(){return this.$element.hasClass("factory-color-panel-active")},toggleColorPanel:function(){this.hasColor()?this.hideColorPanel():this.showColorPanel()},hideColorPanel:function(){this.$element.removeClass("factory-color-panel-active"),this.$btnChangeColor.removeClass("button-active"),this.$colorResult.val(""),this.$colorResult.trigger("change"),this.$element.trigger("change")},showColorPanel:function(){this.$element.addClass("factory-color-panel-active"),this.$btnChangeColor.addClass("button-active"),this.$colorResult.val(this.$colorContol.factoryBootstrap426_colorControl("getValue")),this.$colorResult.trigger("change"),this.$element.trigger("change")},_initColorPickerPanel:function(){var a=this;this.$colorContol.bind("updated.color.factory",function(b,c){return a.$colorResult.val(c),!1})},_initPatternsPanel:function(){var b=this,c=!0,d=wp.media.editor.send.attachment;this.$btnUpload.on("click",function(){return c=!0,wp.media.editor.send.attachment=function(a,e){return c?(b.$preview.css({background:"url("+e.url+") repeat",border:"0",fontSize:"0"}),void b.$patternResult.attr("value",e.url).trigger("change")):d.apply(this,[a,e])},wp.media.editor.open(b.$btnUpload),a(".add_media").on("click",function(){c=!1}),!1}),this.$patternItems.on("click",function(){if(a(this).data("pattern")){var c=a(this).data("pattern");b.$preview.removeClass("factory-empty"),b.$preview.css({background:"url("+c+") repeat"}),b.$patternResult.attr("value",c).trigger("change")}})}}),a(function(){a.widget.bridge("factoryBootstrap426_patternControl",a.factoryBootstrap426.patternControl),a(".factory-bootstrap-426 .factory-pattern").factoryBootstrap426_patternControl({})})}(jQuery);
|
libs/factory/bootstrap/assets/js-min/holder.more-link.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a,b,c,d){"use strict";var e="
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a,b,c,d){"use strict";var e="factoryBootstrap426_moreLink";a.fn[e]=function(b,c){return this.each(function(){var b=a(this);b.find(".factory-more-link-show").click(function(){return a(a(this).attr("href")).fadeIn(),a(this).hide(),!1}),b.find(".factory-more-link-hide").click(function(){var b=a(a(this).attr("href"));return b.fadeOut(300,function(){b.parents(".factory-more-link").find(".factory-more-link-show").show()}),!1})})},a(function(){a(".factory-bootstrap-426 .factory-more-link").factoryBootstrap426_moreLink()})}(jQuery,window,document);
|
libs/factory/bootstrap/assets/js-min/plugin.gradient-picker.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function($){function ctrlPtComparator(a,b){return a.position-b.position}function bind(a,b){return"function"==typeof a.bind?a.bind(b):function(){a.apply(b,arguments)}}function GradientSelection(a,b){var c=this;this.$el=a,this.$presets=this.$el.find(".gradientPicker-pallets"),this.$presetsItems=this.$presets.find(".factory-preset-gradient"),this.$preview=this.$el.find(".gradientPicker-preview"),this.$pointsContainer=this.$el.find(".factory-points"),this.$colorPickerContainer=this.$el.find(".factory-color-picker-container"),this.$colorPicker=this.$el.find(".factory-color-picker"),this.$colorHex=this.$el.find(".factory-color-hex"),this.$opacitySliderContainer=this.$el.find(".factory-slider-container"),this.$opacitySlider=this.$el.find(".factory-bar"),this.$el.css("position","relative"),this.opts=b,this._createPresetGradients(),this._createPreview(),this._createColorPicker(),this._createDirectionDropdown(),this.controlPoints=[],b.controlPoints=b.controlPoints||[];for(var d=0;d<b.controlPoints.length;++d){var e=this.createCtrlPt(b.controlPoints[d]);this.controlPoints.push(e)}0===this.controlPoints.length&&(this.controlPoints.push(this.createCtrlPt(this.$presetsItems.data("primary")+" 0% 1")),this.controlPoints.push(this.createCtrlPt(this.$presetsItems.data("secondary")+" 100% 1"))),$(document).on("click.gp.factory",function(){c.hideColorPicker()}),this.$colorPickerContainer.on("click.gp.factory",function(a){a.stopPropagation()}),this.$pointsContainer.on("click.gp.factory",function(a){a.stopPropagation(),c.placePoint(a)}),this.updatePreview()}function ControlPoint(a,b,c){var d=this;if(this.parent=a,this.$container=a.$pointsContainer,this.$el=$('<span class="factory-point"></span>'),this.$pointColor=$('<span class="factory-point-color"></span>').appendTo(this.$el),this.$container.append(this.$el),"string"==typeof b?(b=b.split(" "),this.position=parseFloat(b[1])/100,this.color=b[0],this.opacity=b[2]):(this.position=b.position,this.color=b.color,this.opacity=b.opacity),this.outerWidth=this.$el.outerWidth(),this.$pointColor.css({"background-color":d.color,opacity:d.opacity}),"horizontal"===c){var e=(d.$container.width()-this.$el.outerWidth())*this.position;this.$el.css("left",e)}else{var f=(d.$container.height()-this.$el.outerHeight())*this.position;this.$el.css("top",f)}this.drag=bind(this.drag,this),this.stop=bind(this.stop,this),this.$el.disableSelection().css("webkit-user-select","none").draggable({axis:"horizontal"===c?"x":"y",drag:this.drag,stop:this.stop,containment:d.$container,cancel:null}),this.$el.on("click.gp.factory",function(a){d.parent.currentPoint===d?d.parent.hideColorPicker(d):d.parent.showColorPicker(d),a.stopPropagation()})}$.event.special.destroyed||($.event.special.destroyed={remove:function(a){a.handler&&a.handler()}});var agent=window.navigator.userAgent,browserPrefix=["-webkit-","-moz-","-ms-"],x,y=0;GradientSelection.prototype={_createPresetGradients:function(){var a=this;this.$presetsItems.each(function(){var a=$(this),b=$('<span class="factory-secondary-color-wrap"></span>').appendTo(a),c=$('<span class="factory-secondary-color"></span>').appendTo(b);a.css("background",a.data("primary")),c.css("background",a.data("secondary"))}),this.$presetsItems.click(function(){var b=$(this).data("primary"),c=$(this).data("secondary");a.setGradient([b+" 0% 1",c+" 100% 1"])})},_createPreview:function(){var a=this.$preview[0];a.width=0===a.clientWidth?210:a.clientWidth,a.height=0===a.clientHeight?30:a.clientHeight,this.g2d=a.getContext("2d")},_createColorPicker:function(){var a=this;this.$colorPicker.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function($){function ctrlPtComparator(a,b){return a.position-b.position}function bind(a,b){return"function"==typeof a.bind?a.bind(b):function(){a.apply(b,arguments)}}function GradientSelection(a,b){var c=this;this.$el=a,this.$presets=this.$el.find(".gradientPicker-pallets"),this.$presetsItems=this.$presets.find(".factory-preset-gradient"),this.$preview=this.$el.find(".gradientPicker-preview"),this.$pointsContainer=this.$el.find(".factory-points"),this.$colorPickerContainer=this.$el.find(".factory-color-picker-container"),this.$colorPicker=this.$el.find(".factory-color-picker"),this.$colorHex=this.$el.find(".factory-color-hex"),this.$opacitySliderContainer=this.$el.find(".factory-slider-container"),this.$opacitySlider=this.$el.find(".factory-bar"),this.$el.css("position","relative"),this.opts=b,this._createPresetGradients(),this._createPreview(),this._createColorPicker(),this._createDirectionDropdown(),this.controlPoints=[],b.controlPoints=b.controlPoints||[];for(var d=0;d<b.controlPoints.length;++d){var e=this.createCtrlPt(b.controlPoints[d]);this.controlPoints.push(e)}0===this.controlPoints.length&&(this.controlPoints.push(this.createCtrlPt(this.$presetsItems.data("primary")+" 0% 1")),this.controlPoints.push(this.createCtrlPt(this.$presetsItems.data("secondary")+" 100% 1"))),$(document).on("click.gp.factory",function(){c.hideColorPicker()}),this.$colorPickerContainer.on("click.gp.factory",function(a){a.stopPropagation()}),this.$pointsContainer.on("click.gp.factory",function(a){a.stopPropagation(),c.placePoint(a)}),this.updatePreview()}function ControlPoint(a,b,c){var d=this;if(this.parent=a,this.$container=a.$pointsContainer,this.$el=$('<span class="factory-point"></span>'),this.$pointColor=$('<span class="factory-point-color"></span>').appendTo(this.$el),this.$container.append(this.$el),"string"==typeof b?(b=b.split(" "),this.position=parseFloat(b[1])/100,this.color=b[0],this.opacity=b[2]):(this.position=b.position,this.color=b.color,this.opacity=b.opacity),this.outerWidth=this.$el.outerWidth(),this.$pointColor.css({"background-color":d.color,opacity:d.opacity}),"horizontal"===c){var e=(d.$container.width()-this.$el.outerWidth())*this.position;this.$el.css("left",e)}else{var f=(d.$container.height()-this.$el.outerHeight())*this.position;this.$el.css("top",f)}this.drag=bind(this.drag,this),this.stop=bind(this.stop,this),this.$el.disableSelection().css("webkit-user-select","none").draggable({axis:"horizontal"===c?"x":"y",drag:this.drag,stop:this.stop,containment:d.$container,cancel:null}),this.$el.on("click.gp.factory",function(a){d.parent.currentPoint===d?d.parent.hideColorPicker(d):d.parent.showColorPicker(d),a.stopPropagation()})}$.event.special.destroyed||($.event.special.destroyed={remove:function(a){a.handler&&a.handler()}});var agent=window.navigator.userAgent,browserPrefix=["-webkit-","-moz-","-ms-"],x,y=0;GradientSelection.prototype={_createPresetGradients:function(){var a=this;this.$presetsItems.each(function(){var a=$(this),b=$('<span class="factory-secondary-color-wrap"></span>').appendTo(a),c=$('<span class="factory-secondary-color"></span>').appendTo(b);a.css("background",a.data("primary")),c.css("background",a.data("secondary"))}),this.$presetsItems.click(function(){var b=$(this).data("primary"),c=$(this).data("secondary");a.setGradient([b+" 0% 1",c+" 100% 1"])})},_createPreview:function(){var a=this.$preview[0];a.width=0===a.clientWidth?210:a.clientWidth,a.height=0===a.clientHeight?30:a.clientHeight,this.g2d=a.getContext("2d")},_createColorPicker:function(){var a=this;this.$colorPicker.factoryBootstrap426_iris({width:217,palettes:["#16a086","#27ae61","#2a80b9","#8f44ad","#2d3e50","#f49c14","#c1392b","#bec3c7"],hide:!0,change:function(b,c){a.currentPoint.updateColor(c.color.toString()),a._colorLock||a.$colorHex.val(c.color.toString())}}),a.$colorHex.on("change paste keyup",function(){a._colorLock=!0,a.$colorPicker.factoryBootstrap426_iris("color",a.$colorHex.val()),a._cancelColorLock()}),this.$opacitySlider.noUiSlider({start:100,range:{min:0,max:100},step:1}),this.$opacitySlider.on("slide",function(){var b=parseInt(a.$opacitySlider.val()),c=b+"%";a.$opacitySliderContainer.find(".factory-visible-value").text(c),a.currentPoint.updateOpacity(b/100)}),this.$opacitySlider.on("set",function(){a.$result.val(a.getValue()),a.$result.trigger("change")})},_repeatColorLock:!1,_colorLock:!1,_colorLockTimer:!1,_cancelColorLock:function(a){var b=this;return b._colorLockTimer&&!a?(this._repeatColorLock=!0,!1):void(this._colorLockTimer=setTimeout(function(){return b._repeatColorLock?(b._repeatColorLock=!1,b._cancelColorLock(!0),!1):(b._colorLock=!1,b._colorLockTimer=!1,void(b._repeatColorLock=!1))},500))},_createDirectionDropdown:function(){var a=this,b=factory&&factory.res&&factory.res.resVertical||"vertical",c=factory&&factory.res&&factory.res.resHorizontal||"horizontal";this.$directionDropdown=$('<select class="gradientPicker-filldirection"><option value="vertical"'+("top"===a.opts.fillDirection?" selected":"")+">"+b+'</option><option value="horizontal"'+("left"===a.opts.fillDirection?" selected":"")+">"+c+"</option></select>"),this.$el.append(this.$directionDropdown),this.$directionDropdown.chosen(),this.$directionDropdown.change(function(){a.setGradientDirection($(this).val())})},showColorPicker:function(a){this.currentPoint=a,$(".factory-current-point").removeClass("factory-current-point"),a.$el.addClass("factory-current-point"),this.$colorPickerContainer.show(),this.$colorPicker.factoryBootstrap426_iris("show"),this.$colorPicker.factoryBootstrap426_iris("option","color",a.color),this.$opacitySlider.val(100*a.opacity),this.$opacitySlider.trigger("slide")},hideColorPicker:function(){$(".factory-current-point").removeClass("factory-current-point"),this.currentPoint=!1,this.$colorPickerContainer.hide()},isColorPickerShown:function(){return this.currentPoint},docClicked:function(){$(".gradientPicker-iris-wrap").hide(),$(".gradientPicker-ctrlPt").removeClass("open")},createCtrlPt:function(a){return new ControlPoint(this,a,this.opts.orientation)},updateOptions:function(a,b){if($.extend(this.opts,a),b){this.controlPoints=[],this.$pointsContainer.html("");for(var c=0;c<this.opts.controlPoints.length;++c){var d=this.createCtrlPt(this.opts.controlPoints[c]);this.controlPoints.push(d)}}switch(this.updatePreview(),this.opts.fillDirection){case"top":fillDirectCheck="horizontal";break;case"left":fillDirectCheck="vertical";break;default:fillDirectCheck=!1}fillDirectCheck&&$(".gradientPicker-filldirection",this.$el).find('option[value="'+fillDirectCheck+'"]').prop("selected",!0)},updatePreview:function(){var a=[];if(this.controlPoints.sort(ctrlPtComparator),this.g2d.clearRect(0,0,this.g2d.canvas.width,this.g2d.canvas.height),"horizontal"===this.opts.orientation)for(var b=this.g2d.createLinearGradient(0,0,this.g2d.canvas.width,0),c=0;c<this.controlPoints.length;++c){var d=this.controlPoints[c];b.addColorStop(d.position,"rgba("+hexToRgb(d.color).r+","+hexToRgb(d.color).g+","+hexToRgb(d.color).b+", "+d.opacity+")"),a.push({position:d.position,color:d.color,opacity:d.opacity})}if(this.g2d.fillStyle=b,this.g2d.fillRect(0,0,this.g2d.canvas.width,this.g2d.canvas.height),this.opts.generateStyles)var e=this._generatePreviewStyles();this.opts.change(a,e)},removeControlPoint:function(a){var b=this.controlPoints.indexOf(a);-1!=b&&(this.controlPoints.splice(b,1),a.$el.remove())},placePoint:function(a){a.stopPropagation();var b=$(a.target).offset(),c=a.pageX-b.left,d=a.pageY-b.top,e=this.g2d.getImageData(c,d,1,1),f="rgb("+e.data[0]+","+e.data[1]+","+e.data[2]+")",g=1/255*e.data[3],h=this.createCtrlPt({position:c/this.g2d.canvas.width,color:rgb2hex(f),opacity:g});this.controlPoints.push(h),this.controlPoints.sort(ctrlPtComparator),this.showColorPicker(h)},setGradient:function(a){this.updateOptions({controlPoints:a},!0),this.updatePreview()},setGradientDirection:function(a){switch(a){case"horizontal":this.updateOptions({type:"linear",fillDirection:"top"},!1);break;case"vertical":this.updateOptions({type:"linear",fillDirection:"left"},!1)}},_generatePreviewStyles:function(){var a={};a.filldirection=this.opts.fillDirection,a.color_points=[];for(var b=0;b<this.controlPoints.length;++b){var c=this.controlPoints[b];a.color_points.push(c.color+" "+(100*c.position|0)+"% "+c.opacity)}return JSON.stringify(a)},_genPalletsBackground:function(a,b){return cssRules="linear-gradient(90deg, "+a+" 0%, "+b+" 100%)",agent.indexOf("WebKit")>=0?crossBrowserRule=browserPrefix[0]+cssRules:agent.indexOf("Mozilla")>=0?crossBrowserRule=browserPrefix[1]+cssRules:agent.indexOf("Microsoft")>=0?crossBrowserRule=browserPrefix[2]+cssRules:crossBrowserRule=cssRules,crossBrowserRule}},ControlPoint.prototype={updateColor:function(a){this.color=a,this.$pointColor.css("background-color",a),this.parent.updatePreview()},updateOpacity:function(a){this.opacity=a,this.$pointColor.css("opacity",a),this.parent.updatePreview()},drag:function(e,ui){var stopPointPosition=eval(this.$el.parent().offset().top+this.$el.parent().height()+20);e.pageY>stopPointPosition&&this.remove();var left=ui.position.left;this.position=left/(this.$container.width()-this.outerWidth),this.parent.updatePreview()},stop:function(){this.parent.updatePreview()},remove:function(){this.parent.removeControlPoint(this),this.parent.hideColorPicker(),this.parent.updatePreview()}};var methods={init:function(a){a=$.extend({controlPoints:["#FFF 0% 1","#000 100% 1"],orientation:"horizontal",type:"linear",fillDirection:"left",generateStyles:!0,change:function(){}},a),this.each(function(){var b=$(this),c=new GradientSelection(b,a);b.data("gradientPicker-sel",c)})},update:function(a){this.each(function(){var b=$(this),c=b.data("gradientPicker-sel");null!=c&&c.updateOptions(a,!0)})}};$.fn.gradientPicker=function(a,b){"string"==typeof a&&"init"!==a?methods[a].call(this,b):(b=a,methods.init.call(this,b))}}(jQuery);
|
libs/factory/bootstrap/assets/js-min/plugin.iris.min.js
CHANGED
@@ -10,4 +10,4 @@
|
|
10 |
/*! Iris Color Picker - v1.0.4 - 2013-11-18
|
11 |
* https://github.com/Automattic/Iris
|
12 |
* Copyright (c) 2013 Matt Wiebe; Licensed GPLv2 */
|
13 |
-
!function(a,b){function c(){var b,c;j?k="filter":(b=a('<div id="iris-gradtest" />'),c="linear-gradient(top,#fff,#000)",a.each(l,function(a,d){return b.css("backgroundImage",d+c),b.css("backgroundImage").match("gradient")?(k=a,!1):void 0}),k===!1&&(b.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),b.css("backgroundImage").match("gradient")&&(k="webkit")),b.remove())}function d(b,c){return b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),"webkit"===k?f(b,c):l[k]+"linear-gradient("+b+", "+c.join(", ")+")"}function e(b,c){var d,e,f,h,i,j,k,l,m;b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),d="top"===b?0:1,e=a(this),f=c.length-1,h="filter",i=1===d?"left":"top",j=1===d?"right":"bottom",k=1===d?"height":"width",l='<div class="iris-ie-gradient-shim" style="position:absolute;'+k+":100%;"+i+":%start%;"+j+":%end%;"+h+':%filter%;" data-color:"%color%"></div>',m="","static"===e.css("position")&&e.css({position:"relative"}),c=g(c),a.each(c,function(a,b){var e,g,h;return a===f?!1:(e=c[a+1],void(b.stop!==e.stop&&(g=100-parseFloat(e.stop)+"%",b.octoHex=new Color(b.color).toIEOctoHex(),e.octoHex=new Color(e.color).toIEOctoHex(),h="progid:DXImageTransform.Microsoft.Gradient(GradientType="+d+", StartColorStr='"+b.octoHex+"', EndColorStr='"+e.octoHex+"')",m+=l.replace("%start%",b.stop).replace("%end%",g).replace("%filter%",h))))}),e.find(".iris-ie-gradient-shim").remove(),a(m).prependTo(e)}function f(b,c){var d=[];return b="top"===b?"0% 0%,0% 100%,":"0% 100%,100% 100%,",c=g(c),a.each(c,function(a,b){d.push("color-stop("+parseFloat(b.stop)/100+", "+b.color+")")}),"-webkit-gradient(linear,"+b+d.join(",")+")"}function g(b){var c=[],d=[],e=[],f=b.length-1;return a.each(b,function(a,b){var e=b,f=!1,g=b.match(/1?[0-9]{1,2}%$/);g&&(e=b.replace(/\s?1?[0-9]{1,2}%$/,""),f=g.shift()),c.push(e),d.push(f)}),d[0]===!1&&(d[0]="0%"),d[f]===!1&&(d[f]="100%"),d=h(d),a.each(d,function(a){e[a]={color:c[a],stop:d[a]}}),e}function h(b){var c,d,e,f,g=0,i=b.length-1,j=0,k=!1;if(b.length<=2||a.inArray(!1,b)<0)return b;for(;j<b.length-1;)k||b[j]!==!1?k&&b[j]!==!1&&(i=j,j=b.length):(g=j-1,k=!0),j++;for(d=i-g,f=parseInt(b[g].replace("%"),10),c=(parseFloat(b[i].replace("%"))-f)/d,j=g+1,e=1;i>j;)b[j]=f+e*c+"%",e++,j++;return h(b)}var i,j,k,l,m,n,o,p,q;return i='<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>',o=navigator.userAgent.toLowerCase(),p="Microsoft Internet Explorer"===navigator.appName,q=p?parseFloat(o.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,j=p&&10>q,k=!1,l=["-moz-","-webkit-","-o-","-ms-"],m='.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;top:none;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}',j&&7>=q?(a.fn.iris=a.noop,void(a.support.iris=!1)):(a.support.factoryBootstrap422_iris=!0,a.fn.factoryBootstrap422_gradient=function(){var b=arguments;return this.each(function(){j?e.apply(this,b):a(this).css("backgroundImage",d.apply(this,b))})},a.fn.factoryBootstrap422_raninbowGradient=function(b,c){var d,e,f,g;for(b=b||"top",d=a.extend({},{s:100,l:50},c),e="hsl(%h%,"+d.s+"%,"+d.l+"%)",f=0,g=[];360>=f;)g.push(e.replace("%h%",f)),f+=30;return this.each(function(){a(this).factoryBootstrap422_gradient(b,g)})},n={options:{color:!1,mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},hide:!0,border:!0,target:!1,width:200,palettes:!1},_color:"",_palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"],_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_create:function(){var b=this,d=b.element,e=b.options.color||d.val();k===!1&&c(),d.is("input")?(b.options.target?b.picker=a(i).appendTo(b.options.target):b.picker=a(i).insertAfter(d),b._addInputListeners(d)):(d.append(i),b.picker=d.find(".iris-picker")),p?9===q?b.picker.addClass("iris-ie-9"):8>=q&&b.picker.addClass("iris-ie-lt9"):o.indexOf("compatible")<0&&o.indexOf("khtml")<0&&o.match(/mozilla/)&&b.picker.addClass("iris-mozilla"),b.options.palettes&&b._addPalettes(),b._color=new Color(e).setHSpace(b.options.mode),b.options.color=b._color.toString(),b.controls={square:b.picker.find(".iris-square"),squareDrag:b.picker.find(".iris-square-value"),horiz:b.picker.find(".iris-square-horiz"),vert:b.picker.find(".iris-square-vert"),strip:b.picker.find(".iris-strip"),stripSlider:b.picker.find(".iris-strip .iris-slider-offset")},"hsv"===b.options.mode&&b._has("l",b.options.controls)?b.options.controls=b._defaultHSVControls:"hsl"===b.options.mode&&b._has("v",b.options.controls)&&(b.options.controls=b._defaultHSLControls),b.hue=b._color.h(),b.options.hide&&b.picker.hide(),b.options.border&&b.picker.addClass("iris-border"),b._initControls(),b.active="external",b._dimensions(),b._change()},_has:function(b,c){var d=!1;return a.each(c,function(a,c){return b===c?(d=!0,!1):void 0}),d},_addPalettes:function(){var b=a('<div class="iris-palette-container" />'),c=a('<a class="iris-palette" tabindex="0" />'),d=a.isArray(this.options.palettes)?this.options.palettes:this._palettes;this.picker.find(".iris-palette-container").length&&(b=this.picker.find(".iris-palette-container").detach().html("")),a.each(d,function(a,d){c.clone().data("color",d).css("backgroundColor",d).appendTo(b).height(10).width(10)}),this.picker.append(b)},_paint:function(){var a=this;a._paintDimension("top","strip"),a._paintDimension("top","vert"),a._paintDimension("left","horiz")},_paintDimension:function(a,b){var c,d=this,e=d._color,f=d.options.mode,g=d._getHSpaceColor(),h=d.controls[b],i=d.options.controls;if(b!==d.active&&("square"!==d.active||"strip"===b))switch(i[b]){case"h":if("hsv"===f){switch(g=e.clone(),b){case"horiz":g[i.vert](100);break;case"vert":g[i.horiz](100);break;case"strip":g.setHSpace("hsl")}c=g.toHsl()}else c="strip"===b?{s:g.s,l:g.l}:{s:100,l:g.l};h.factoryBootstrap422_raninbowGradient(a,c);break;case"s":"hsv"===f?"vert"===b?c=[e.clone().a(0).s(0).toCSS("rgba"),e.clone().a(1).s(0).toCSS("rgba")]:"strip"===b?c=[e.clone().s(100).toCSS("hsl"),e.clone().s(0).toCSS("hsl")]:"horiz"===b&&(c=["#fff","hsl("+g.h+",100%,50%)"]):c="vert"===b&&"h"===d.options.controls.horiz?["hsla(0, 0%, "+g.l+"%, 0)","hsla(0, 0%, "+g.l+"%, 1)"]:["hsl("+g.h+",0%,50%)","hsl("+g.h+",100%,50%)"],h.factoryBootstrap422_gradient(a,c);break;case"l":c="strip"===b?["hsl("+g.h+",100%,100%)","hsl("+g.h+", "+g.s+"%,50%)","hsl("+g.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],h.factoryBootstrap422_gradient(a,c);break;case"v":c="strip"===b?[e.clone().v(100).toCSS(),e.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],h.factoryBootstrap422_gradient(a,c)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_dimensions:function(b){var c,d,e,f,g=this,h=g.options,i=g.controls,j=i.square,k=g.picker.find(".iris-strip"),l="77.5%",m="12%",n=20,o=h.border?h.width-n:h.width,p=a.isArray(h.palettes)?h.palettes.length:g._palettes.length;return b&&(j.css("width",""),k.css("width",""),g.picker.css({width:"",height:""})),l=o*(parseFloat(l)/100),m=o*(parseFloat(m)/100),c=h.border?l+n:l,j.width(l).height(l),k.height(l).width(m),g.picker.css({width:h.width,height:c}),h.palettes?(d=2*l/100,f=l-(p-1)*d,e=f/p,g.picker.find(".iris-palette").each(function(b){var c=0===b?0:d;a(this).css({width:e,height:e,marginLeft:c})}),g.picker.css("paddingBottom",e+d),void k.height(e+d+l)):g.picker.css("paddingBottom","")},_addInputListeners:function(a){var b=this,c=100,d=function(c){var d=new Color(a.val()),e=a.val().replace(/^#/,"");a.removeClass("iris-error"),d.error?""!==e&&a.addClass("iris-error"):d.toString()!==b._color.toString()&&("keyup"===c.type&&e.match(/^[0-9a-fA-F]{3}$/)||b._setOption("color",d.toString()))};a.on("change",d).on("keyup",b._debounce(d,c)),b.options.hide&&a.one("focus",function(){b.show()})},_initControls:function(){var b=this,c=b.controls,d=c.square,e=b.options.controls,f=b._scale[e.strip];c.stripSlider.slider({orientation:"vertical",max:f,slide:function(a,c){b.active="strip","h"===e.strip&&(c.value=f-c.value),b._color[e.strip](c.value),b._change.apply(b,arguments)}}),c.squareDrag.draggable({containment:"parent",zIndex:1e3,cursor:"move",drag:function(a,c){b._squareDrag(a,c)},start:function(){d.addClass("iris-dragging"),a(this).addClass("ui-state-focus")},stop:function(){d.removeClass("iris-dragging"),a(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(c){var d="ui-state-focus";c.preventDefault(),"mousedown"===c.type?(b.picker.find("."+d).removeClass(d).blur(),a(this).addClass(d).focus()):a(this).removeClass(d)}).on("keydown",function(a){var d=c.square,e=c.squareDrag,f=e.position(),g=b.options.width/100;switch(a.altKey&&(g*=10),a.keyCode){case 37:f.left-=g;break;case 38:f.top-=g;break;case 39:f.left+=g;break;case 40:f.top+=g;break;default:return!0}f.left=Math.max(0,Math.min(f.left,d.width())),f.top=Math.max(0,Math.min(f.top,d.height())),e.css(f),b._squareDrag(a,{position:f}),a.preventDefault()}),d.mousedown(function(c){var d,e;1===c.which&&a(c.target).is("div")&&(d=b.controls.square.offset(),e={top:c.pageY-d.top,left:c.pageX-d.left},c.preventDefault(),b._squareDrag(c,{position:e}),c.target=b.controls.squareDrag.get(0),b.controls.squareDrag.css(e).trigger(c))}),b.options.palettes&&b._paletteListeners()},_paletteListeners:function(){var b=this;b.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){b._color.fromCSS(a(this).data("color")),b.active="external",b._change()}).on("keydown.palette",".iris-palette",function(b){return 13!==b.keyCode&&32!==b.keyCode?!0:(b.stopPropagation(),void a(this).click())})},_squareDrag:function(a,b){var c=this,d=c.options.controls,e=c._squareDimensions(),f=Math.round((e.h-b.position.top)/e.h*c._scale[d.vert]),g=c._scale[d.horiz]-Math.round((e.w-b.position.left)/e.w*c._scale[d.horiz]);c._color[d.horiz](g)[d.vert](f),c.active="square",c._change.apply(c,arguments)},_setOption:function(b,c){var d,e,f,g=this,h=g.options[b],i=!1;switch(g.options[b]=c,b){case"color":c=""+c,d=c.replace(/^#/,""),e=new Color(c).setHSpace(g.options.mode),e.error?g.options[b]=h:(g._color=e,g.options.color=g.options[b]=g._color.toString(),g.active="external",g._change());break;case"palettes":i=!0,c?g._addPalettes():g.picker.find(".iris-palette-container").remove(),h||g._paletteListeners();break;case"width":i=!0;break;case"border":i=!0,f=c?"addClass":"removeClass",g.picker[f]("iris-border");break;case"mode":case"controls":if(h===c)return;return f=g.element,h=g.options,h.hide=!g.picker.is(":visible"),g.destroy(),g.picker.remove(),a(g.element).iris(h)}i&&g._dimensions(!0)},_squareDimensions:function(a){var c,d,e=this.controls.square;return a!==b&&e.data("dimensions")?e.data("dimensions"):(d=this.controls.squareDrag,c={w:e.width(),h:e.height()},e.data("dimensions",c),c)},_isNonHueControl:function(a,b){return"square"===a&&"h"===this.options.controls.strip?!0:"external"===b||"h"===b&&"strip"===a?!1:!0},_change:function(){var b=this,c=b.controls,d=b._getHSpaceColor(),e=["square","strip"],f=b.options.controls,g=f[b.active]||"external",h=b.hue;"strip"===b.active?e=[]:"external"!==b.active&&e.pop(),a.each(e,function(a,e){var g,h,i;if(e!==b.active)switch(e){case"strip":g="h"===f.strip?b._scale[f.strip]-d[f.strip]:d[f.strip],c.stripSlider.slider("value",g);break;case"square":h=b._squareDimensions(),i={left:d[f.horiz]/b._scale[f.horiz]*h.w,top:h.h-d[f.vert]/b._scale[f.vert]*h.h},b.controls.squareDrag.css(i)}}),d.h!==h&&b._isNonHueControl(b.active,g)&&b._color.h(h),b.hue=b._color.h(),b.options.color=b._color.toString(),b._inited&&b._trigger("change",{type:b.active},{color:b._color}),b.element.is(":input")&&!b._color.error&&(b.element.removeClass("iris-error"),b.element.val()!==b._color.toString()&&b.element.val(b._color.toString())),b._paint(),b._inited=!0,b.active=!1},_debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},show:function(){this.picker.show()},hide:function(){this.picker.hide()},toggle:function(){this.picker.toggle()},color:function(a){return a===!0?this._color.clone():a===b?this._color.toString():void this.option("color",a)}},a.widget("a8c.factoryBootstrap422_iris",n),void a('<style id="iris-css">'+m+"</style>").appendTo("head"))}(jQuery);
|
10 |
/*! Iris Color Picker - v1.0.4 - 2013-11-18
|
11 |
* https://github.com/Automattic/Iris
|
12 |
* Copyright (c) 2013 Matt Wiebe; Licensed GPLv2 */
|
13 |
+
!function(a,b){function c(){var b,c;j?k="filter":(b=a('<div id="iris-gradtest" />'),c="linear-gradient(top,#fff,#000)",a.each(l,function(a,d){return b.css("backgroundImage",d+c),b.css("backgroundImage").match("gradient")?(k=a,!1):void 0}),k===!1&&(b.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),b.css("backgroundImage").match("gradient")&&(k="webkit")),b.remove())}function d(b,c){return b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),"webkit"===k?f(b,c):l[k]+"linear-gradient("+b+", "+c.join(", ")+")"}function e(b,c){var d,e,f,h,i,j,k,l,m;b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),d="top"===b?0:1,e=a(this),f=c.length-1,h="filter",i=1===d?"left":"top",j=1===d?"right":"bottom",k=1===d?"height":"width",l='<div class="iris-ie-gradient-shim" style="position:absolute;'+k+":100%;"+i+":%start%;"+j+":%end%;"+h+':%filter%;" data-color:"%color%"></div>',m="","static"===e.css("position")&&e.css({position:"relative"}),c=g(c),a.each(c,function(a,b){var e,g,h;return a===f?!1:(e=c[a+1],void(b.stop!==e.stop&&(g=100-parseFloat(e.stop)+"%",b.octoHex=new Color(b.color).toIEOctoHex(),e.octoHex=new Color(e.color).toIEOctoHex(),h="progid:DXImageTransform.Microsoft.Gradient(GradientType="+d+", StartColorStr='"+b.octoHex+"', EndColorStr='"+e.octoHex+"')",m+=l.replace("%start%",b.stop).replace("%end%",g).replace("%filter%",h))))}),e.find(".iris-ie-gradient-shim").remove(),a(m).prependTo(e)}function f(b,c){var d=[];return b="top"===b?"0% 0%,0% 100%,":"0% 100%,100% 100%,",c=g(c),a.each(c,function(a,b){d.push("color-stop("+parseFloat(b.stop)/100+", "+b.color+")")}),"-webkit-gradient(linear,"+b+d.join(",")+")"}function g(b){var c=[],d=[],e=[],f=b.length-1;return a.each(b,function(a,b){var e=b,f=!1,g=b.match(/1?[0-9]{1,2}%$/);g&&(e=b.replace(/\s?1?[0-9]{1,2}%$/,""),f=g.shift()),c.push(e),d.push(f)}),d[0]===!1&&(d[0]="0%"),d[f]===!1&&(d[f]="100%"),d=h(d),a.each(d,function(a){e[a]={color:c[a],stop:d[a]}}),e}function h(b){var c,d,e,f,g=0,i=b.length-1,j=0,k=!1;if(b.length<=2||a.inArray(!1,b)<0)return b;for(;j<b.length-1;)k||b[j]!==!1?k&&b[j]!==!1&&(i=j,j=b.length):(g=j-1,k=!0),j++;for(d=i-g,f=parseInt(b[g].replace("%"),10),c=(parseFloat(b[i].replace("%"))-f)/d,j=g+1,e=1;i>j;)b[j]=f+e*c+"%",e++,j++;return h(b)}var i,j,k,l,m,n,o,p,q;return i='<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>',o=navigator.userAgent.toLowerCase(),p="Microsoft Internet Explorer"===navigator.appName,q=p?parseFloat(o.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,j=p&&10>q,k=!1,l=["-moz-","-webkit-","-o-","-ms-"],m='.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;top:none;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}',j&&7>=q?(a.fn.iris=a.noop,void(a.support.iris=!1)):(a.support.factoryBootstrap426_iris=!0,a.fn.factoryBootstrap426_gradient=function(){var b=arguments;return this.each(function(){j?e.apply(this,b):a(this).css("backgroundImage",d.apply(this,b))})},a.fn.factoryBootstrap426_raninbowGradient=function(b,c){var d,e,f,g;for(b=b||"top",d=a.extend({},{s:100,l:50},c),e="hsl(%h%,"+d.s+"%,"+d.l+"%)",f=0,g=[];360>=f;)g.push(e.replace("%h%",f)),f+=30;return this.each(function(){a(this).factoryBootstrap426_gradient(b,g)})},n={options:{color:!1,mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},hide:!0,border:!0,target:!1,width:200,palettes:!1},_color:"",_palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"],_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_create:function(){var b=this,d=b.element,e=b.options.color||d.val();k===!1&&c(),d.is("input")?(b.options.target?b.picker=a(i).appendTo(b.options.target):b.picker=a(i).insertAfter(d),b._addInputListeners(d)):(d.append(i),b.picker=d.find(".iris-picker")),p?9===q?b.picker.addClass("iris-ie-9"):8>=q&&b.picker.addClass("iris-ie-lt9"):o.indexOf("compatible")<0&&o.indexOf("khtml")<0&&o.match(/mozilla/)&&b.picker.addClass("iris-mozilla"),b.options.palettes&&b._addPalettes(),b._color=new Color(e).setHSpace(b.options.mode),b.options.color=b._color.toString(),b.controls={square:b.picker.find(".iris-square"),squareDrag:b.picker.find(".iris-square-value"),horiz:b.picker.find(".iris-square-horiz"),vert:b.picker.find(".iris-square-vert"),strip:b.picker.find(".iris-strip"),stripSlider:b.picker.find(".iris-strip .iris-slider-offset")},"hsv"===b.options.mode&&b._has("l",b.options.controls)?b.options.controls=b._defaultHSVControls:"hsl"===b.options.mode&&b._has("v",b.options.controls)&&(b.options.controls=b._defaultHSLControls),b.hue=b._color.h(),b.options.hide&&b.picker.hide(),b.options.border&&b.picker.addClass("iris-border"),b._initControls(),b.active="external",b._dimensions(),b._change()},_has:function(b,c){var d=!1;return a.each(c,function(a,c){return b===c?(d=!0,!1):void 0}),d},_addPalettes:function(){var b=a('<div class="iris-palette-container" />'),c=a('<a class="iris-palette" tabindex="0" />'),d=a.isArray(this.options.palettes)?this.options.palettes:this._palettes;this.picker.find(".iris-palette-container").length&&(b=this.picker.find(".iris-palette-container").detach().html("")),a.each(d,function(a,d){c.clone().data("color",d).css("backgroundColor",d).appendTo(b).height(10).width(10)}),this.picker.append(b)},_paint:function(){var a=this;a._paintDimension("top","strip"),a._paintDimension("top","vert"),a._paintDimension("left","horiz")},_paintDimension:function(a,b){var c,d=this,e=d._color,f=d.options.mode,g=d._getHSpaceColor(),h=d.controls[b],i=d.options.controls;if(b!==d.active&&("square"!==d.active||"strip"===b))switch(i[b]){case"h":if("hsv"===f){switch(g=e.clone(),b){case"horiz":g[i.vert](100);break;case"vert":g[i.horiz](100);break;case"strip":g.setHSpace("hsl")}c=g.toHsl()}else c="strip"===b?{s:g.s,l:g.l}:{s:100,l:g.l};h.factoryBootstrap426_raninbowGradient(a,c);break;case"s":"hsv"===f?"vert"===b?c=[e.clone().a(0).s(0).toCSS("rgba"),e.clone().a(1).s(0).toCSS("rgba")]:"strip"===b?c=[e.clone().s(100).toCSS("hsl"),e.clone().s(0).toCSS("hsl")]:"horiz"===b&&(c=["#fff","hsl("+g.h+",100%,50%)"]):c="vert"===b&&"h"===d.options.controls.horiz?["hsla(0, 0%, "+g.l+"%, 0)","hsla(0, 0%, "+g.l+"%, 1)"]:["hsl("+g.h+",0%,50%)","hsl("+g.h+",100%,50%)"],h.factoryBootstrap426_gradient(a,c);break;case"l":c="strip"===b?["hsl("+g.h+",100%,100%)","hsl("+g.h+", "+g.s+"%,50%)","hsl("+g.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],h.factoryBootstrap426_gradient(a,c);break;case"v":c="strip"===b?[e.clone().v(100).toCSS(),e.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],h.factoryBootstrap426_gradient(a,c)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_dimensions:function(b){var c,d,e,f,g=this,h=g.options,i=g.controls,j=i.square,k=g.picker.find(".iris-strip"),l="77.5%",m="12%",n=20,o=h.border?h.width-n:h.width,p=a.isArray(h.palettes)?h.palettes.length:g._palettes.length;return b&&(j.css("width",""),k.css("width",""),g.picker.css({width:"",height:""})),l=o*(parseFloat(l)/100),m=o*(parseFloat(m)/100),c=h.border?l+n:l,j.width(l).height(l),k.height(l).width(m),g.picker.css({width:h.width,height:c}),h.palettes?(d=2*l/100,f=l-(p-1)*d,e=f/p,g.picker.find(".iris-palette").each(function(b){var c=0===b?0:d;a(this).css({width:e,height:e,marginLeft:c})}),g.picker.css("paddingBottom",e+d),void k.height(e+d+l)):g.picker.css("paddingBottom","")},_addInputListeners:function(a){var b=this,c=100,d=function(c){var d=new Color(a.val()),e=a.val().replace(/^#/,"");a.removeClass("iris-error"),d.error?""!==e&&a.addClass("iris-error"):d.toString()!==b._color.toString()&&("keyup"===c.type&&e.match(/^[0-9a-fA-F]{3}$/)||b._setOption("color",d.toString()))};a.on("change",d).on("keyup",b._debounce(d,c)),b.options.hide&&a.one("focus",function(){b.show()})},_initControls:function(){var b=this,c=b.controls,d=c.square,e=b.options.controls,f=b._scale[e.strip];c.stripSlider.slider({orientation:"vertical",max:f,slide:function(a,c){b.active="strip","h"===e.strip&&(c.value=f-c.value),b._color[e.strip](c.value),b._change.apply(b,arguments)}}),c.squareDrag.draggable({containment:"parent",zIndex:1e3,cursor:"move",drag:function(a,c){b._squareDrag(a,c)},start:function(){d.addClass("iris-dragging"),a(this).addClass("ui-state-focus")},stop:function(){d.removeClass("iris-dragging"),a(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(c){var d="ui-state-focus";c.preventDefault(),"mousedown"===c.type?(b.picker.find("."+d).removeClass(d).blur(),a(this).addClass(d).focus()):a(this).removeClass(d)}).on("keydown",function(a){var d=c.square,e=c.squareDrag,f=e.position(),g=b.options.width/100;switch(a.altKey&&(g*=10),a.keyCode){case 37:f.left-=g;break;case 38:f.top-=g;break;case 39:f.left+=g;break;case 40:f.top+=g;break;default:return!0}f.left=Math.max(0,Math.min(f.left,d.width())),f.top=Math.max(0,Math.min(f.top,d.height())),e.css(f),b._squareDrag(a,{position:f}),a.preventDefault()}),d.mousedown(function(c){var d,e;1===c.which&&a(c.target).is("div")&&(d=b.controls.square.offset(),e={top:c.pageY-d.top,left:c.pageX-d.left},c.preventDefault(),b._squareDrag(c,{position:e}),c.target=b.controls.squareDrag.get(0),b.controls.squareDrag.css(e).trigger(c))}),b.options.palettes&&b._paletteListeners()},_paletteListeners:function(){var b=this;b.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){b._color.fromCSS(a(this).data("color")),b.active="external",b._change()}).on("keydown.palette",".iris-palette",function(b){return 13!==b.keyCode&&32!==b.keyCode?!0:(b.stopPropagation(),void a(this).click())})},_squareDrag:function(a,b){var c=this,d=c.options.controls,e=c._squareDimensions(),f=Math.round((e.h-b.position.top)/e.h*c._scale[d.vert]),g=c._scale[d.horiz]-Math.round((e.w-b.position.left)/e.w*c._scale[d.horiz]);c._color[d.horiz](g)[d.vert](f),c.active="square",c._change.apply(c,arguments)},_setOption:function(b,c){var d,e,f,g=this,h=g.options[b],i=!1;switch(g.options[b]=c,b){case"color":c=""+c,d=c.replace(/^#/,""),e=new Color(c).setHSpace(g.options.mode),e.error?g.options[b]=h:(g._color=e,g.options.color=g.options[b]=g._color.toString(),g.active="external",g._change());break;case"palettes":i=!0,c?g._addPalettes():g.picker.find(".iris-palette-container").remove(),h||g._paletteListeners();break;case"width":i=!0;break;case"border":i=!0,f=c?"addClass":"removeClass",g.picker[f]("iris-border");break;case"mode":case"controls":if(h===c)return;return f=g.element,h=g.options,h.hide=!g.picker.is(":visible"),g.destroy(),g.picker.remove(),a(g.element).iris(h)}i&&g._dimensions(!0)},_squareDimensions:function(a){var c,d,e=this.controls.square;return a!==b&&e.data("dimensions")?e.data("dimensions"):(d=this.controls.squareDrag,c={w:e.width(),h:e.height()},e.data("dimensions",c),c)},_isNonHueControl:function(a,b){return"square"===a&&"h"===this.options.controls.strip?!0:"external"===b||"h"===b&&"strip"===a?!1:!0},_change:function(){var b=this,c=b.controls,d=b._getHSpaceColor(),e=["square","strip"],f=b.options.controls,g=f[b.active]||"external",h=b.hue;"strip"===b.active?e=[]:"external"!==b.active&&e.pop(),a.each(e,function(a,e){var g,h,i;if(e!==b.active)switch(e){case"strip":g="h"===f.strip?b._scale[f.strip]-d[f.strip]:d[f.strip],c.stripSlider.slider("value",g);break;case"square":h=b._squareDimensions(),i={left:d[f.horiz]/b._scale[f.horiz]*h.w,top:h.h-d[f.vert]/b._scale[f.vert]*h.h},b.controls.squareDrag.css(i)}}),d.h!==h&&b._isNonHueControl(b.active,g)&&b._color.h(h),b.hue=b._color.h(),b.options.color=b._color.toString(),b._inited&&b._trigger("change",{type:b.active},{color:b._color}),b.element.is(":input")&&!b._color.error&&(b.element.removeClass("iris-error"),b.element.val()!==b._color.toString()&&b.element.val(b._color.toString())),b._paint(),b._inited=!0,b.active=!1},_debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},show:function(){this.picker.show()},hide:function(){this.picker.hide()},toggle:function(){this.picker.toggle()},color:function(a){return a===!0?this._color.clone():a===b?this._color.toString():void this.option("color",a)}},a.widget("a8c.factoryBootstrap426_iris",n),void a('<style id="iris-css">'+m+"</style>").appendTo("head"))}(jQuery);
|
libs/factory/bootstrap/assets/js-min/plugin.paddings-editor.min.js
CHANGED
@@ -7,4 +7,4 @@
|
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
-
!function(a){var b=function(b){this.$element=a(b),this.$rectangle=this.$element.find(".factory-rectangle"),this.$center=this.$element.find(".factory-side-center"),this.$bar=this.$element.find(".factory-bar"),this.$sides=this.$element.find(".factory-side"),this.$result=this.$element.find(".factory-result"),this.units=this.$element.data("units"),this.rangeStart=this.$element.data("range-start"),this.rangeEnd=this.$element.data("range-end"),this.step=this.$element.data("step"),this._createCanvas(),this._createSlider(),this._initMouse(),this.selectSide("center")};b.prototype._createCanvas=function(){var b=this;this._recalculateSizes(),this.$canvas=a("<canvas width='"+b.elementWidth+"' height='"+b.elementHeight+"'>").appendTo(this.$rectangle),this.canvasContext=this.$canvas.get(0).getContext("2d"),this._redraw()},b.prototype._createSlider=function(){var a=this;this.$bar.noUiSlider({start:parseInt(a.$center.data("value")),range:{min:a.rangeStart,max:a.rangeEnd},step:a.step}),this.$bar.on("slide",function(){var b=parseInt(a.$bar.val()),c=b+a.units;"center"===a.activeSide?(a.$sides.data("value",b),a.$sides.find(".factory-visible-value").text(c)):(a.$activeSide.data("value",b),a.$activeSide.find(".factory-visible-value").text(c))}),this.$bar.on("set",function(){a.$result.val(a.getValue()),a.$result.trigger("change")})},b.prototype.getValue=function(){var a=this.$element.find(".factory-side-top").data("value"),b=this.$element.find(".factory-side-right").data("value"),c=this.$element.find(".factory-side-bottom").data("value"),d=this.$element.find(".factory-side-left").data("value");return a+this.units+" "+b+this.units+" "+c+this.units+" "+d+this.units},b.prototype.selectSide=function(a){this.activeSide!==a&&(this.activeSide=a,this.$activeSide=this.$element.find(".factory-side-"+this.activeSide),this.$element.find(".factory-side.factory-active").removeClass("factory-active"),this.$activeSide.addClass("factory-active"),this._redraw(),this.$bar.val(this.$activeSide.data("value")))},b.prototype._initMouse=function(){var a=this;this._recalculateSizes(),this.$rectangle.on("mousemove.paddings-editor",function(b){a.hoveredSide=a._getCurrentSide(b.pageX,b.pageY),a.hoveredSide!==a.lastHoveredSide&&(a.lastHoveredSide=a.hoveredSide,a._redraw())}),this.$rectangle.on("mouseleave.paddings-editor",function(b){a.hoveredSide=a.lastHoveredSide=null,a._redraw()}),this.$rectangle.on("click.paddings-editor",function(b){var c=a._getCurrentSide(b.pageX,b.pageY);a.selectSide(c)})},b.prototype._getCurrentSide=function(a,b){var c=this.$element.offset(),d=a-c.left,e=b-c.top,f=d-this.centerX,g=e-this.centerY,h=Math.sqrt(Math.pow(f,2)+Math.pow(g,2));if(h<=this.centerR)return"center";var i=this.elementHeight,j=this.elementWidth,k=-this.elementWidth*this.elementHeight,l=-(k+i*d)/j,m=-this.elementHeight,n=this.elementWidth,o=0,p=-(o+m*d)/n;return e>l&&p>e?"right":l>e&&e>p?"left":l>e&&p>e?"top":e>l&&e>p?"bottom":null},b.prototype._redraw=function(){this.canvasContext.clearRect(0,0,this.elementWidth,this.elementHeight),this._highlightSide("top","#a6b6b6"),this._highlightSide("bottom","#a6b6b6"),this._highlightSide("left","#aec0c0"),this._highlightSide("right","#aec0c0"),this._highlightSide(this.hoveredSide,"#c0cece"),this.activeSide&&this._highlightSide(this.activeSide,"#829595")},b.prototype._highlightSide=function(a,b){a&&"center"!==a&&(this.canvasContext.fillStyle=b,this.canvasContext.beginPath(),"top"===a?(this.canvasContext.moveTo(0,0),this.canvasContext.lineTo(this.centerX,this.centerY),this.canvasContext.lineTo(this.elementWidth,0)):"bottom"===a?(this.canvasContext.moveTo(0,this.elementHeight),this.canvasContext.lineTo(this.centerX,this.centerY),this.canvasContext.lineTo(this.elementWidth,this.elementHeight)):"left"===a?(this.canvasContext.moveTo(0,0),this.canvasContext.lineTo(this.centerX,this.centerY),this.canvasContext.lineTo(0,this.elementHeight)):"right"===a&&(this.canvasContext.moveTo(this.elementWidth,0),this.canvasContext.lineTo(this.centerX,this.centerY),this.canvasContext.lineTo(this.elementWidth,this.elementHeight)),this.canvasContext.closePath(),this.canvasContext.fill())},b.prototype._recalculateSizes=function(){this.elementOffset=this.$element.offset(),this.elementWidth=this.$rectangle.innerWidth(),this.elementHeight=this.$rectangle.innerHeight(),this.centerSize=this.$center.innerWidth(),this.centerR=this.centerSize/2,this.centerX=this.elementWidth/2,this.centerY=this.elementHeight/2},a.fn.
|
7 |
* Support: http://webcraftic.com/contact-us/
|
8 |
*/
|
9 |
|
10 |
+
!function(a){var b=function(b){this.$element=a(b),this.$rectangle=this.$element.find(".factory-rectangle"),this.$center=this.$element.find(".factory-side-center"),this.$bar=this.$element.find(".factory-bar"),this.$sides=this.$element.find(".factory-side"),this.$result=this.$element.find(".factory-result"),this.units=this.$element.data("units"),this.rangeStart=this.$element.data("range-start"),this.rangeEnd=this.$element.data("range-end"),this.step=this.$element.data("step"),this._createCanvas(),this._createSlider(),this._initMouse(),this.selectSide("center")};b.prototype._createCanvas=function(){var b=this;this._recalculateSizes(),this.$canvas=a("<canvas width='"+b.elementWidth+"' height='"+b.elementHeight+"'>").appendTo(this.$rectangle),this.canvasContext=this.$canvas.get(0).getContext("2d"),this._redraw()},b.prototype._createSlider=function(){var a=this;this.$bar.noUiSlider({start:parseInt(a.$center.data("value")),range:{min:a.rangeStart,max:a.rangeEnd},step:a.step}),this.$bar.on("slide",function(){var b=parseInt(a.$bar.val()),c=b+a.units;"center"===a.activeSide?(a.$sides.data("value",b),a.$sides.find(".factory-visible-value").text(c)):(a.$activeSide.data("value",b),a.$activeSide.find(".factory-visible-value").text(c))}),this.$bar.on("set",function(){a.$result.val(a.getValue()),a.$result.trigger("change")})},b.prototype.getValue=function(){var a=this.$element.find(".factory-side-top").data("value"),b=this.$element.find(".factory-side-right").data("value"),c=this.$element.find(".factory-side-bottom").data("value"),d=this.$element.find(".factory-side-left").data("value");return a+this.units+" "+b+this.units+" "+c+this.units+" "+d+this.units},b.prototype.selectSide=function(a){this.activeSide!==a&&(this.activeSide=a,this.$activeSide=this.$element.find(".factory-side-"+this.activeSide),this.$element.find(".factory-side.factory-active").removeClass("factory-active"),this.$activeSide.addClass("factory-active"),this._redraw(),this.$bar.val(this.$activeSide.data("value")))},b.prototype._initMouse=function(){var a=this;this._recalculateSizes(),this.$rectangle.on("mousemove.paddings-editor",function(b){a.hoveredSide=a._getCurrentSide(b.pageX,b.pageY),a.hoveredSide!==a.lastHoveredSide&&(a.lastHoveredSide=a.hoveredSide,a._redraw())}),this.$rectangle.on("mouseleave.paddings-editor",function(b){a.hoveredSide=a.lastHoveredSide=null,a._redraw()}),this.$rectangle.on("click.paddings-editor",function(b){var c=a._getCurrentSide(b.pageX,b.pageY);a.selectSide(c)})},b.prototype._getCurrentSide=function(a,b){var c=this.$element.offset(),d=a-c.left,e=b-c.top,f=d-this.centerX,g=e-this.centerY,h=Math.sqrt(Math.pow(f,2)+Math.pow(g,2));if(h<=this.centerR)return"center";var i=this.elementHeight,j=this.elementWidth,k=-this.elementWidth*this.elementHeight,l=-(k+i*d)/j,m=-this.elementHeight,n=this.elementWidth,o=0,p=-(o+m*d)/n;return e>l&&p>e?"right":l>e&&e>p?"left":l>e&&p>e?"top":e>l&&e>p?"bottom":null},b.prototype._redraw=function(){this.canvasContext.clearRect(0,0,this.elementWidth,this.elementHeight),this._highlightSide("top","#a6b6b6"),this._highlightSide("bottom","#a6b6b6"),this._highlightSide("left","#aec0c0"),this._highlightSide("right","#aec0c0"),this._highlightSide(this.hoveredSide,"#c0cece"),this.activeSide&&this._highlightSide(this.activeSide,"#829595")},b.prototype._highlightSide=function(a,b){a&&"center"!==a&&(this.canvasContext.fillStyle=b,this.canvasContext.beginPath(),"top"===a?(this.canvasContext.moveTo(0,0),this.canvasContext.lineTo(this.centerX,this.centerY),this.canvasContext.lineTo(this.elementWidth,0)):"bottom"===a?(this.canvasContext.moveTo(0,this.elementHeight),this.canvasContext.lineTo(this.centerX,this.centerY),this.canvasContext.lineTo(this.elementWidth,this.elementHeight)):"left"===a?(this.canvasContext.moveTo(0,0),this.canvasContext.lineTo(this.centerX,this.centerY),this.canvasContext.lineTo(0,this.elementHeight)):"right"===a&&(this.canvasContext.moveTo(this.elementWidth,0),this.canvasContext.lineTo(this.centerX,this.centerY),this.canvasContext.lineTo(this.elementWidth,this.elementHeight)),this.canvasContext.closePath(),this.canvasContext.fill())},b.prototype._recalculateSizes=function(){this.elementOffset=this.$element.offset(),this.elementWidth=this.$rectangle.innerWidth(),this.elementHeight=this.$rectangle.innerHeight(),this.centerSize=this.$center.innerWidth(),this.centerR=this.centerSize/2,this.centerX=this.elementWidth/2,this.centerY=this.elementHeight/2},a.fn.factoryBootstrap426_paddingsEditor=function(c){if("string"==typeof c){var d=a(this).data("factory.paddings-editor");return d?d[c]():null}return this.each(function(){var c=a(this),d=c.data("factory.paddings-editor");d||c.data("factory.paddings-editor",d=new b(this))})},a.fn.factoryBootstrap426_paddingsEditor.Constructor=b,a(function(){a(".factory-bootstrap-426 .factory-paddings-editor").factoryBootstrap426_paddingsEditor()})}(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_FactoryBootstrap422_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_FactoryBootstrap422_Manager {
|
|
111 |
*/
|
112 |
public function loadAssets( $hook ) {
|
113 |
|
114 |
-
do_action( '
|
115 |
-
do_action( '
|
116 |
|
117 |
$dependencies = [];
|
118 |
if ( ! empty( $this->scripts ) ) {
|
@@ -137,64 +137,14 @@ class Wbcr_FactoryBootstrap422_Manager {
|
|
137 |
if ( ! empty( $this->styles ) ) {
|
138 |
$this->enqueueScripts( $this->styles, 'css', $dependencies );
|
139 |
}
|
140 |
-
|
141 |
-
$user_id = get_current_user_id();
|
142 |
-
$color_name = get_user_meta( $user_id, 'admin_color', true );
|
143 |
-
|
144 |
-
if ( $color_name !== 'fresh' ) {
|
145 |
-
if ( file_exists( FACTORY_BOOTSTRAP_422_DIR . '/assets/flat/css/bootstrap.' . $color_name . '.css' ) ) {
|
146 |
-
wp_enqueue_style( 'wbcr-factory-bootstrap-422-colors', FACTORY_BOOTSTRAP_422_URL . '/assets/flat/css/bootstrap.' . $color_name . '.css' );
|
147 |
-
}
|
148 |
-
}
|
149 |
-
|
150 |
-
if ( $color_name == 'light' ) {
|
151 |
-
$primary_dark = '#037c9a';
|
152 |
-
$primary_light = '#04a4cc';
|
153 |
-
} else if ( $color_name == 'blue' ) {
|
154 |
-
$primary_dark = '#d39323';
|
155 |
-
$primary_light = '#e1a948';
|
156 |
-
} else if ( $color_name == 'coffee' ) {
|
157 |
-
$primary_dark = '#b78a66';
|
158 |
-
$primary_light = '#c7a589';
|
159 |
-
} else if ( $color_name == 'ectoplasm' ) {
|
160 |
-
$primary_dark = '#839237';
|
161 |
-
$primary_light = '#a3b745';
|
162 |
-
} else if ( $color_name == 'ocean' ) {
|
163 |
-
$primary_dark = '#80a583';
|
164 |
-
$primary_light = '#9ebaa0';
|
165 |
-
} else if ( $color_name == 'midnight' ) {
|
166 |
-
$primary_dark = '#d02a21';
|
167 |
-
$primary_light = '#e14d43';
|
168 |
-
} else if ( $color_name == 'sunrise' ) {
|
169 |
-
$primary_dark = '#c36822';
|
170 |
-
$primary_light = '#dd823b';
|
171 |
-
} else {
|
172 |
-
$primary_dark = '#0074a2';
|
173 |
-
$primary_light = '#2ea2cc';
|
174 |
-
}
|
175 |
-
|
176 |
-
?>
|
177 |
-
<script>
|
178 |
-
if( !window.factory ) {
|
179 |
-
window.factory = {};
|
180 |
-
}
|
181 |
-
if( !window.factory.factoryBootstrap422 ) {
|
182 |
-
window.factory.factoryBootstrap422 = {};
|
183 |
-
}
|
184 |
-
window.factory.factoryBootstrap422.colors = {
|
185 |
-
primaryDark: '<?php echo $primary_dark ?>',
|
186 |
-
primaryLight: '<?php echo $primary_light ?>'
|
187 |
-
};
|
188 |
-
</script>
|
189 |
-
<?php
|
190 |
}
|
191 |
|
192 |
/**
|
193 |
-
* @param array $
|
194 |
* @param string $type
|
195 |
* @param array $dependencies
|
196 |
*/
|
197 |
-
protected function enqueueScripts( array $
|
198 |
|
199 |
$is_first = true;
|
200 |
|
@@ -206,8 +156,8 @@ class Wbcr_FactoryBootstrap422_Manager {
|
|
206 |
$cache_enable = apply_filters( 'wbcr/factory/bootstrap/cache_enable', true );
|
207 |
|
208 |
$cache_id = md5( implode( ',', $this->scripts ) . $type . $this->plugin->getPluginVersion() );
|
209 |
-
$cache_dir_path =
|
210 |
-
$cache_dir_url =
|
211 |
|
212 |
$cache_filepath = $cache_dir_path . $cache_id . ".min." . $type;
|
213 |
$cache_fileurl = $cache_dir_url . $cache_id . ".min." . $type;
|
@@ -231,10 +181,10 @@ class Wbcr_FactoryBootstrap422_Manager {
|
|
231 |
}
|
232 |
|
233 |
$concat_files = [];
|
234 |
-
foreach ( $
|
235 |
$script_to_load = sanitize_text_field( $script_to_load );
|
236 |
if ( $cache_enable && $cache_dir_exists ) {
|
237 |
-
$fname =
|
238 |
if ( file_exists( $fname ) ) {
|
239 |
$f = @fopen( $fname, 'r' );
|
240 |
$concat_files[] = @fread( $f, filesize( $fname ) );
|
@@ -242,9 +192,9 @@ class Wbcr_FactoryBootstrap422_Manager {
|
|
242 |
}
|
243 |
} else {
|
244 |
if ( $type == 'js' ) {
|
245 |
-
wp_enqueue_script( md5( $script_to_load ),
|
246 |
} else {
|
247 |
-
wp_enqueue_style( md5( $script_to_load ),
|
248 |
}
|
249 |
$is_first = false;
|
250 |
}
|
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 ) ) {
|
137 |
if ( ! empty( $this->styles ) ) {
|
138 |
$this->enqueueScripts( $this->styles, 'css', $dependencies );
|
139 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
+
* @param array $scripts
|
144 |
* @param string $type
|
145 |
* @param array $dependencies
|
146 |
*/
|
147 |
+
protected function enqueueScripts( array $scripts, $type, array $dependencies ) {
|
148 |
|
149 |
$is_first = true;
|
150 |
|
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;
|
181 |
}
|
182 |
|
183 |
$concat_files = [];
|
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/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_Factory421_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_Factory421_ScriptList extends Wbcr_Factory421_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
@@ -82,12 +82,12 @@ if ( ! class_exists( 'Wbcr_Factory_Compatibility' ) ) {
|
|
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 ) {
|
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 |
|
@@ -86,27 +86,27 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
|
|
86 |
*
|
87 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
88 |
* @since 4.1.9
|
89 |
-
* @var WBCR\
|
90 |
*/
|
91 |
private $adverts;
|
92 |
|
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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_Base {
|
|
205 |
* Доступен глобально через метод app(), чаще всего используется для создания точек для ротации
|
206 |
* рекламных объявлений.
|
207 |
*
|
208 |
-
* @
|
209 |
* @since 1.1
|
210 |
-
* @
|
211 |
*/
|
212 |
public function get_adverts_manager() {
|
213 |
return $this->adverts;
|
@@ -217,37 +219,38 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_Base {
|
|
502 |
return null;
|
503 |
}
|
504 |
|
505 |
-
return
|
506 |
}
|
507 |
|
508 |
/**
|
@@ -544,14 +547,15 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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_Factory421_Plugin extends Wbcr_Factory421_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 |
|
86 |
*
|
87 |
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
88 |
* @since 4.1.9
|
89 |
+
* @var WBCR\Factory_Adverts_106\Base
|
90 |
*/
|
91 |
private $adverts;
|
92 |
|
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_106\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_Factory421_Base {
|
|
81 |
* https://robin-image-optimizer.webcraftic.com/premium-features.
|
82 |
*
|
83 |
* Это свойство заполняется для того, чтобы в процессе разработки вы могли использовать
|
84 |
-
* экземпляр класса \WBCR\
|
85 |
* Тем самым вы избавляете себя от жесткого прописывания ссылок на лендинг плагина и
|
86 |
* можете изменить все ссылки в одном месте.
|
87 |
*
|
@@ -127,7 +127,7 @@ class Wbcr_Factory421_Base {
|
|
127 |
* к примеру: freemius, codecanyon, templatemonster, вам нужно указать только настройки для
|
128 |
* взаимодействия с выбранным вами провайдером. Каждая реализация провайдера лицензий может иметь
|
129 |
* индивидуальный настройки, в этом примере приведены настройки для freemius провайдера
|
130 |
-
* WBCR\
|
131 |
*
|
132 |
* На текущий момент существует только реализация для freemius провайдера.
|
133 |
*
|
@@ -177,9 +177,9 @@ class Wbcr_Factory421_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_Factory421_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_Factory421_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_Factory421_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_Factory421_Base {
|
|
400 |
/**
|
401 |
* Позволяет получить заголовок плагина.
|
402 |
*
|
403 |
-
* @return string Возвращает заголовок плагина. См.
|
404 |
*/
|
405 |
public function getPluginTitle() {
|
406 |
return $this->plugin_title;
|
@@ -409,7 +409,7 @@ class Wbcr_Factory421_Base {
|
|
409 |
/**
|
410 |
* Позволяет получить префикс плагина.
|
411 |
*
|
412 |
-
* @return string Возвращает префикс плагина.См.
|
413 |
*/
|
414 |
public function getPrefix() {
|
415 |
return $this->prefix;
|
@@ -418,7 +418,7 @@ class Wbcr_Factory421_Base {
|
|
418 |
/**
|
419 |
* Позволяет получить имя плагина.
|
420 |
*
|
421 |
-
* @return string Возвращает имя плагина. См.
|
422 |
*/
|
423 |
public function getPluginName() {
|
424 |
return $this->plugin_name;
|
@@ -427,7 +427,7 @@ class Wbcr_Factory421_Base {
|
|
427 |
/**
|
428 |
* Позволяет получить версию плагина.
|
429 |
*
|
430 |
-
* @return string Возвращает версию плагина. См.
|
431 |
*/
|
432 |
public function getPluginVersion() {
|
433 |
return $this->plugin_version;
|
@@ -449,7 +449,7 @@ class Wbcr_Factory421_Base {
|
|
449 |
* какие-то данные не описанные в интерфейсе этого плагина.
|
450 |
*
|
451 |
* @param string $attr_name Имя атрибута, который нужно получить. Идентично ключу в массиве
|
452 |
-
*
|
453 |
*
|
454 |
* @return null
|
455 |
*/
|
@@ -462,18 +462,18 @@ class Wbcr_Factory421_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_Factory421_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
|
@@ -273,21 +273,21 @@ if ( ! class_exists( 'Wbcr_Factory421_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
|
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_421_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_421_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_421_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;
|
@@ -116,11 +116,14 @@ class Premium_Upgrader extends Upgrader {
|
|
116 |
}
|
117 |
|
118 |
/**
|
|
|
119 |
* @since 4.1.1
|
120 |
*/
|
121 |
public function init_admin_actions() {
|
122 |
-
|
123 |
-
|
|
|
|
|
124 |
|
125 |
check_admin_referer( "factory_premium_{$action}" );
|
126 |
try {
|
@@ -225,9 +228,9 @@ class Premium_Upgrader extends Upgrader {
|
|
225 |
*
|
226 |
* @since 4.1.1
|
227 |
*
|
228 |
-
* @param
|
229 |
*
|
230 |
-
* @param
|
231 |
*
|
232 |
* @return void
|
233 |
*/
|
@@ -342,20 +345,28 @@ class Premium_Upgrader extends Upgrader {
|
|
342 |
<?php
|
343 |
}
|
344 |
|
|
|
345 |
/**
|
346 |
* Обновляет данные о премиум пакете в базе данных, после обновления плагина.
|
347 |
*
|
348 |
-
* @
|
349 |
-
*
|
350 |
-
* @param array $options
|
351 |
-
*
|
352 |
-
* @param WP_Upgrader $upgrader_object
|
353 |
*
|
|
|
354 |
* @throws Exception
|
355 |
*/
|
356 |
-
public function upgrader_process_complete_hook( $upgrader_object, $
|
357 |
-
if ( ! empty( $
|
358 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
$this->update_package_data();
|
360 |
}
|
361 |
}
|
@@ -424,7 +435,10 @@ class Premium_Upgrader extends Upgrader {
|
|
424 |
* @return string
|
425 |
*/
|
426 |
protected function get_action_url( $action ) {
|
427 |
-
$args = [
|
|
|
|
|
|
|
428 |
|
429 |
return wp_nonce_url( $this->get_admin_url( $args ), "factory_premium_{$action}" );
|
430 |
}
|
@@ -752,12 +766,12 @@ class Premium_Upgrader extends Upgrader {
|
|
752 |
$cancel_license_url = $this->get_action_url( 'cancel_license' );
|
753 |
|
754 |
$texts = [
|
755 |
-
'need_activate_license' => __( 'License activation required. A license is required to get premium plugin updates, as well as to get additional services.', '
|
756 |
-
'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.', '
|
757 |
'please_install_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please install premium add-on to use pro features now.
|
758 |
-
<a href="%s">Install</a> premium add-on or <a href="%s">cancel</a> license.', '
|
759 |
'please_activate_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please activate premium add-on to use pro features now.
|
760 |
-
<a href="%s">Activate</a> premium add-on or <a href="%s">cancel</a> license.', '
|
761 |
];
|
762 |
|
763 |
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;
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
+
* @since 4.2.2 Fixed bug with plugins namespace (ISW-4)
|
120 |
* @since 4.1.1
|
121 |
*/
|
122 |
public function init_admin_actions() {
|
123 |
+
$plugin_slug = $this->plugin->request->get( 'wfactory_premium_updates_plugin', null );
|
124 |
+
|
125 |
+
if ( isset( $_GET['wfactory_premium_updates_action'] ) && $this->plugin_slug === $plugin_slug ) {
|
126 |
+
$action = $this->plugin->request->get( 'wfactory_premium_updates_action' );
|
127 |
|
128 |
check_admin_referer( "factory_premium_{$action}" );
|
129 |
try {
|
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 |
*/
|
345 |
<?php
|
346 |
}
|
347 |
|
348 |
+
|
349 |
/**
|
350 |
* Обновляет данные о премиум пакете в базе данных, после обновления плагина.
|
351 |
*
|
352 |
+
* @param WP_Upgrader $wp_upgrader WP_Upgrader instance.
|
353 |
+
* @param array $hook_extra Array of bulk item update data.
|
|
|
|
|
|
|
354 |
*
|
355 |
+
* @return void
|
356 |
* @throws Exception
|
357 |
*/
|
358 |
+
public function upgrader_process_complete_hook( $upgrader_object, $hook_extra ) {
|
359 |
+
if ( ! empty( $hook_extra ) && $hook_extra['action'] == 'update' && $hook_extra['type'] == 'plugin' ) {
|
360 |
+
|
361 |
+
# if it isn't bulk upgrade
|
362 |
+
if ( isset( $hook_extra['plugin'] ) && $this->plugin_basename === $hook_extra['plugin'] ) {
|
363 |
+
$this->update_package_data();
|
364 |
+
|
365 |
+
return;
|
366 |
+
}
|
367 |
+
|
368 |
+
# if it is bulk upgrade
|
369 |
+
if ( is_array( $hook_extra['plugins'] ) && in_array( $this->plugin_basename, $hook_extra['plugins'] ) ) {
|
370 |
$this->update_package_data();
|
371 |
}
|
372 |
}
|
435 |
* @return string
|
436 |
*/
|
437 |
protected function get_action_url( $action ) {
|
438 |
+
$args = [
|
439 |
+
'wfactory_premium_updates_action' => $action,
|
440 |
+
'wfactory_premium_updates_plugin' => $this->plugin_slug
|
441 |
+
];
|
442 |
|
443 |
return wp_nonce_url( $this->get_admin_url( $args ), "factory_premium_{$action}" );
|
444 |
}
|
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_425-ru_RU.mo
ADDED
Binary file
|
libs/factory/core/langs/wbcr_factory_425-ru_RU.po
ADDED
@@ -0,0 +1,128 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: factory_forms\n"
|
4 |
+
"POT-Creation-Date: 2018-10-16 22:44+0300\n"
|
5 |
+
"PO-Revision-Date: 2018-10-16 22:45+0300\n"
|
6 |
+
"Last-Translator: \n"
|
7 |
+
"Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\n"
|
8 |
+
"Language: ru_RU\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 2.1.1\n"
|
13 |
+
"X-Poedit-Basepath: ..\n"
|
14 |
+
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
15 |
+
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
16 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
|
18 |
+
"X-Poedit-SearchPath-0: .\n"
|
19 |
+
|
20 |
+
#: includes/check-compatibility.php:80
|
21 |
+
msgid "warning"
|
22 |
+
msgstr "предупреждение"
|
23 |
+
|
24 |
+
#: includes/check-compatibility.php:82
|
25 |
+
#, php-format
|
26 |
+
msgid "The %s plugin has stopped."
|
27 |
+
msgstr "Работа плагина %s была остановлена."
|
28 |
+
|
29 |
+
#: includes/check-compatibility.php:83
|
30 |
+
msgid "Possible reasons:"
|
31 |
+
msgstr "Возможные причины:"
|
32 |
+
|
33 |
+
#: includes/check-compatibility.php:89
|
34 |
+
#, php-format
|
35 |
+
msgid "You need to update the PHP version to %s or higher!"
|
36 |
+
msgstr "Вам нужно обновить версию PHP до %s или выше!"
|
37 |
+
|
38 |
+
#: includes/check-compatibility.php:94
|
39 |
+
#, php-format
|
40 |
+
msgid "You need to update WordPress to %s or higher!"
|
41 |
+
msgstr "Вам нужно обновить WordPress до %s или выше!"
|
42 |
+
|
43 |
+
#: includes/functions.php:132
|
44 |
+
#, php-format
|
45 |
+
msgid ""
|
46 |
+
"%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead."
|
47 |
+
msgstr ""
|
48 |
+
"%1$s является <strong>устаревшим,</strong> начиная с версии %2$s в "
|
49 |
+
"Wordpress! Используйте %3$s."
|
50 |
+
|
51 |
+
#: includes/functions.php:134
|
52 |
+
#, php-format
|
53 |
+
msgid ""
|
54 |
+
"%1$s is <strong>deprecated</strong> since version %2$s with no alternative "
|
55 |
+
"available."
|
56 |
+
msgstr ""
|
57 |
+
"%1$s был вызван с параметром, который является <strong>устаревшими</strong> "
|
58 |
+
"начиная с версии %2$s , в настоящее время доступных альтернатив нет."
|
59 |
+
|
60 |
+
#: includes/plugin.class.php:202 includes/plugin.class.php:237
|
61 |
+
msgid ""
|
62 |
+
"You are trying to call this earlier than the plugin menu will be registered."
|
63 |
+
msgstr ""
|
64 |
+
"Вы пытаетесь вызвать это раньше, чем будет зарегистрировано меню плагина."
|
65 |
+
|
66 |
+
#: includes/plugin.class.php:220
|
67 |
+
msgid ""
|
68 |
+
"You are trying to get a link to a page that does not have multisite mode. "
|
69 |
+
"Clicking this link will lead the user to a non-existent page."
|
70 |
+
msgstr ""
|
71 |
+
"Вы пытаетесь получить ссылку на страницу, которая не имеет "
|
72 |
+
"многопользовательского режима. Щелчок по этой ссылке приведет пользователя "
|
73 |
+
"к несуществующей странице."
|
74 |
+
|
75 |
+
#: includes/plugin.class.php:222
|
76 |
+
msgid ""
|
77 |
+
"Trying to get a link to an unregistered page. You are trying to call this "
|
78 |
+
"earlier than the plugin menu will be registered."
|
79 |
+
msgstr ""
|
80 |
+
"Попытка получить ссылку на незарегистрированную страницу. Вы пытаетесь "
|
81 |
+
"вызвать это раньше, чем будет зарегистрировано меню плагина."
|
82 |
+
|
83 |
+
#~ msgid "On"
|
84 |
+
#~ msgstr "Вкл"
|
85 |
+
|
86 |
+
#~ msgid "Off"
|
87 |
+
#~ msgstr "Выкл"
|
88 |
+
|
89 |
+
#~ msgid "(use default website font)"
|
90 |
+
#~ msgstr "(шрифт сайта по умолчанию)"
|
91 |
+
|
92 |
+
#~ msgid "Sans Serif:"
|
93 |
+
#~ msgstr "Группа Sans Serif:"
|
94 |
+
|
95 |
+
#~ msgid "Serif:"
|
96 |
+
#~ msgstr "Группа Serif:"
|
97 |
+
|
98 |
+
#~ msgid "Monospaced:"
|
99 |
+
#~ msgstr "Группа Monospaced:"
|
100 |
+
|
101 |
+
#~ msgid "vertical"
|
102 |
+
#~ msgstr "вертикальный"
|
103 |
+
|
104 |
+
#~ msgid "horizontal"
|
105 |
+
#~ msgstr "горизонтальный"
|
106 |
+
|
107 |
+
#~ msgid "hide extra options"
|
108 |
+
#~ msgstr "скрыть дополнительные настроки"
|
109 |
+
|
110 |
+
#~ msgid "Select a side and move the slider to set up:"
|
111 |
+
#~ msgstr "Выберите сторону и переместите ползунок:"
|
112 |
+
|
113 |
+
#~ msgid "Change color"
|
114 |
+
#~ msgstr "Выбрать цвет"
|
115 |
+
|
116 |
+
#~ msgid "re-color"
|
117 |
+
#~ msgstr "Перекрасить"
|
118 |
+
|
119 |
+
#~ msgid "Select color:"
|
120 |
+
#~ msgstr "Выберите цвет:"
|
121 |
+
|
122 |
+
#~ msgid "Changing the color may takes a minute or more. Please be patient."
|
123 |
+
#~ msgstr ""
|
124 |
+
#~ "В некоторых случаях изменение цвета может занять около минуты. "
|
125 |
+
#~ "Пожалуйста, будьте терпеливы."
|
126 |
+
|
127 |
+
#~ msgid "Upload Pattern"
|
128 |
+
#~ msgstr "Добавить шаблон"
|
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( $i
|
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( $i
|