Robin image optimizer — save money on image compression - Version 1.5.0

Version Description

  • Added: Subscribe form
  • Fixed: Potential rest api registration error
  • Added: Support for the WP Retina 2x plugin
  • Added: Badge with the date of the next quota update
Download this release

Release Info

Developer webtemyk
Plugin Icon 128x128 Robin image optimizer — save money on image compression
Version 1.5.0
Comparing to
See all releases

Code changes from version 1.4.6 to 1.5.0

Files changed (145) hide show
  1. admin/activation.php +3 -3
  2. admin/ajax/bulk-optimization.php +9 -3
  3. admin/assets/css/base-statistic.css +676 -675
  4. admin/assets/css/sweetalert-custom.css +155 -155
  5. admin/assets/js/bulk-optimization.js +23 -4
  6. admin/boot.php +10 -9
  7. admin/includes/classes/class-rio-optimize-template.php +2 -2
  8. admin/pages/class-rio-license.php +3 -3
  9. admin/pages/class-rio-log.php +2 -2
  10. admin/pages/class-rio-page.php +1 -1
  11. admin/pages/class-rio-settings.php +14 -2
  12. admin/pages/class-rio-statistic.php +0 -5
  13. assets/js/jquery.lazy.js +871 -871
  14. assets/js/jquery.lazy.min.js +1 -1
  15. includes/class-rio-plugin.php +3 -3
  16. includes/classes/class-rio-media-library.php +9 -0
  17. includes/classes/class-rio-views.php +4 -4
  18. includes/classes/processors/class-rio-server-clearfy1.php +0 -266
  19. includes/classes/processors/class-rio-server-resmush.php +1 -1
  20. includes/classes/processors/class-rio-server-smushpro.php +0 -142
  21. includes/classes/processors/class-rio-server-webcraftic.php +0 -133
  22. includes/functions.php +3 -3
  23. languages/robin-image-optimizer-ru_RU.mo +0 -0
  24. languages/robin-image-optimizer-ru_RU.po +1030 -1234
  25. libs/addons/admin/assets/js/custom-folders.js +4 -4
  26. libs/addons/admin/boot.php +1 -1
  27. libs/addons/includes/classes/webp/class-webp-delivery.php +25 -26
  28. libs/addons/includes/classes/webp/vendor/autoload.php +7 -7
  29. libs/addons/includes/classes/webp/vendor/composer/ClassLoader.php +445 -445
  30. libs/addons/includes/classes/webp/vendor/composer/LICENSE +21 -21
  31. libs/addons/includes/classes/webp/vendor/composer/autoload_classmap.php +9 -10
  32. libs/addons/includes/classes/webp/vendor/composer/autoload_namespaces.php +9 -9
  33. libs/addons/includes/classes/webp/vendor/composer/autoload_psr4.php +10 -10
  34. libs/addons/includes/classes/webp/vendor/composer/autoload_real.php +52 -55
  35. libs/addons/includes/classes/webp/vendor/composer/autoload_static.php +31 -36
  36. libs/addons/includes/classes/webp/vendor/composer/installed.json +59 -63
  37. libs/addons/views/modal-select-custom-folders.php +1 -1
  38. libs/addons/views/part-bulk-optimization-table-folders.php +1 -1
  39. libs/factory/adverts/boot.php +12 -12
  40. libs/factory/adverts/includes/class-base.php +6 -6
  41. libs/factory/adverts/includes/class-dashboard-widget.php +4 -4
  42. libs/factory/adverts/includes/class-rest-request.php +4 -4
  43. libs/factory/adverts/langs/wbcr_factory_adverts_109-ru_RU.po +0 -83
  44. libs/factory/adverts/langs/wbcr_factory_adverts_112-ru_RU.mo +0 -0
  45. libs/factory/adverts/langs/wbcr_factory_adverts_112-ru_RU.po +0 -83
  46. libs/factory/adverts/langs/wbcr_factory_adverts_114-ru_RU.mo +0 -0
  47. libs/factory/adverts/langs/wbcr_factory_adverts_114-ru_RU.po +0 -83
  48. libs/factory/adverts/langs/{wbcr_factory_adverts_106-ru_RU.mo → wbcr_factory_adverts_117-ru_RU.mo} +0 -0
  49. libs/factory/adverts/langs/{wbcr_factory_adverts_106-ru_RU.po → wbcr_factory_adverts_117-ru_RU.po} +0 -0
  50. libs/factory/bootstrap/assets/css-min/bootstrap.accordion.min.css +2 -2
  51. libs/factory/bootstrap/assets/css-min/bootstrap.blue.min.css +2 -2
  52. libs/factory/bootstrap/assets/css-min/bootstrap.coffee.min.css +2 -2
  53. libs/factory/bootstrap/assets/css-min/bootstrap.core.min.css +3 -3
  54. libs/factory/bootstrap/assets/css-min/bootstrap.datepicker.min.css +1 -1
  55. libs/factory/bootstrap/assets/css-min/bootstrap.ectoplasm.min.css +2 -2
  56. libs/factory/bootstrap/assets/css-min/bootstrap.form-group.min.css +2 -2
  57. libs/factory/bootstrap/assets/css-min/bootstrap.light.min.css +2 -2
  58. libs/factory/bootstrap/assets/css-min/bootstrap.midnight.min.css +2 -2
  59. libs/factory/bootstrap/assets/css-min/bootstrap.ocean.min.css +2 -2
  60. libs/factory/bootstrap/assets/css-min/bootstrap.separator.min.css +2 -2
  61. libs/factory/bootstrap/assets/css-min/bootstrap.sunrise.min.css +2 -2
  62. libs/factory/bootstrap/assets/css-min/control.checkbox.min.css +2 -2
  63. libs/factory/bootstrap/assets/css-min/control.dropdown.min.css +2 -2
  64. libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css +2 -2
  65. libs/factory/bootstrap/assets/css-min/holder.more-link.min.css +2 -2
  66. libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js +2 -2
  67. libs/factory/bootstrap/assets/js-min/bootstrap.tooltip.min.js +1 -1
  68. libs/factory/bootstrap/assets/js-min/control.checkbox.min.js +2 -2
  69. libs/factory/bootstrap/assets/js-min/control.dropdown.min.js +2 -2
  70. libs/factory/bootstrap/assets/js-min/control.list.min.js +2 -2
  71. libs/factory/bootstrap/assets/js-min/control.multiple-textbox.min.js +2 -2
  72. libs/factory/bootstrap/boot.php +9 -9
  73. libs/factory/bootstrap/includes/functions.php +10 -10
  74. libs/factory/bootstrap/package-lock.json +1810 -0
  75. libs/factory/clearfy/assets/css/clearfy-base.css +103 -24
  76. libs/factory/clearfy/assets/css/clearfy-base.css.map +1 -1
  77. libs/factory/clearfy/assets/css/clearfy-base.less +96 -0
  78. libs/factory/clearfy/assets/css/components.css +24 -24
  79. libs/factory/clearfy/assets/css/libs/autocomplete.css +9 -9
  80. libs/factory/clearfy/assets/css/page-setup.css +102 -102
  81. libs/factory/clearfy/assets/js/clearfy-globals.js +26 -26
  82. libs/factory/clearfy/assets/js/clearfy-license-manager.js +4 -4
  83. libs/factory/clearfy/assets/js/clearfy-search-options.js +2 -2
  84. libs/factory/clearfy/assets/js/clearfy-widgets.js +44 -0
  85. libs/factory/clearfy/assets/js/globals.js +0 -203
  86. libs/factory/clearfy/assets/js/libs/jquery.autocomplete.min.js +1 -1
  87. libs/factory/clearfy/assets/js/license-manager.js +0 -92
  88. libs/factory/clearfy/assets/js/search-options.js +0 -40
  89. libs/factory/clearfy/boot.php +25 -25
  90. libs/factory/clearfy/includes/ajax-handlers.php +8 -8
  91. libs/factory/clearfy/includes/class-configurate.php +3 -3
  92. libs/factory/clearfy/includes/class-helpers.php +1 -1
  93. libs/factory/clearfy/includes/class-search-options.php +1 -1
  94. libs/factory/clearfy/langs/wbcr_factory_clearfy_221-ru_RU.mo +0 -0
  95. libs/factory/clearfy/langs/wbcr_factory_clearfy_221-ru_RU.po +0 -307
  96. libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.mo +0 -0
  97. libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.po +0 -307
  98. libs/factory/clearfy/langs/wbcr_factory_clearfy_227-ru_RU.mo +0 -0
  99. libs/factory/clearfy/langs/wbcr_factory_clearfy_227-ru_RU.po +0 -307
  100. libs/factory/clearfy/langs/{wbcr_factory_clearfy_217-ru_RU.mo → wbcr_factory_clearfy_230-ru_RU.mo} +0 -0
  101. libs/factory/clearfy/langs/{wbcr_factory_clearfy_217-ru_RU.po → wbcr_factory_clearfy_230-ru_RU.po} +0 -0
  102. libs/factory/clearfy/pages/class-page-license.php +33 -33
  103. libs/factory/clearfy/pages/class-page-more-features.php +23 -23
  104. libs/factory/clearfy/pages/class-page-setup.php +18 -18
  105. libs/factory/clearfy/pages/class-pages-components.php +19 -19
  106. libs/factory/clearfy/pages/class-pages.php +95 -49
  107. libs/factory/clearfy/pages/setup-parts/class-step-custom.php +7 -7
  108. libs/factory/clearfy/pages/setup-parts/class-step-form.php +12 -12
  109. libs/factory/clearfy/pages/setup-parts/class-step.php +5 -5
  110. libs/factory/core/ajax/install-addons.php +10 -10
  111. libs/factory/core/assets/js/core-components.js +14 -14
  112. libs/factory/core/assets/js/core-general.js +6 -6
  113. libs/factory/core/boot.php +32 -32
  114. libs/factory/core/includes/activation/class-factory-activator.php +3 -3
  115. libs/factory/core/includes/activation/class-factory-update.php +3 -3
  116. libs/factory/core/includes/assets-managment/class-factory-assets-list.php +4 -4
  117. libs/factory/core/includes/assets-managment/class-factory-script-list.php +2 -2
  118. libs/factory/core/includes/assets-managment/class-factory-style-list.php +1 -1
  119. libs/factory/core/includes/class-check-compatibility.php +3 -3
  120. libs/factory/core/includes/class-factory-migrations.php +13 -13
  121. libs/factory/core/includes/class-factory-notices.php +5 -5
  122. libs/factory/core/includes/class-factory-options.php +2 -2
  123. libs/factory/core/includes/class-factory-plugin-abstract.php +95 -70
  124. libs/factory/core/includes/class-factory-plugin-base.php +25 -25
  125. libs/factory/core/includes/class-factory-requests.php +1 -1
  126. libs/factory/core/includes/class-factory-requirements.php +6 -6
  127. libs/factory/core/includes/components/class-delete-component-button.php +1 -1
  128. libs/factory/core/includes/components/class-install-component-button.php +11 -11
  129. libs/factory/core/includes/entities/class-factory-paths.php +1 -1
  130. libs/factory/core/includes/entities/class-factory-support.php +1 -1
  131. libs/factory/core/includes/functions.php +7 -7
  132. libs/factory/core/includes/premium/class-factory-license-interface.php +1 -1
  133. libs/factory/core/includes/premium/class-factory-manager.php +10 -10
  134. libs/factory/core/includes/premium/class-factory-provider-abstract.php +6 -6
  135. libs/factory/core/includes/updates/class-factory-premium-upgrader.php +11 -11
  136. libs/factory/core/includes/updates/class-factory-upgrader.php +9 -9
  137. libs/factory/core/includes/updates/repositories/class-factory-repository-abstract.php +5 -5
  138. libs/factory/core/includes/updates/repositories/class-factory-wordpress.php +4 -4
  139. libs/factory/core/langs/wbcr_factory_425-ru_RU.mo +0 -0
  140. libs/factory/core/langs/wbcr_factory_429-ru_RU.mo +0 -0
  141. libs/factory/core/langs/wbcr_factory_429-ru_RU.po +0 -128
  142. libs/factory/core/langs/wbcr_factory_432-ru_RU.mo +0 -0
  143. libs/factory/core/langs/wbcr_factory_432-ru_RU.po +0 -128
  144. libs/factory/core/langs/wbcr_factory_436-ru_RU.mo +0 -0
  145. libs/factory/core/langs/wbcr_factory_436-ru_RU.po +0 -69
admin/activation.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * @author Webcraftic <wordpress.webraftic@gmail.com>
7
  * @copyright (c) 09.09.2017, Webcraftic
8
- * @see Factory436_Activator
9
  * @version 1.0
10
  */
11
 
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- class WIO_Activation extends Wbcr_Factory436_Activator {
18
 
19
  /**
20
  * Runs activation actions.
@@ -49,7 +49,7 @@ class WIO_Activation extends Wbcr_Factory436_Activator {
49
 
50
  RIO_Process_Queue::try_create_plugin_tables();
51
 
52
- WbcrFactoryClearfy227_Helpers::flushPageCache();
53
 
54
  WRIO_Logger::info( 'Parent plugin installation complete!' );
55
  }
5
  *
6
  * @author Webcraftic <wordpress.webraftic@gmail.com>
7
  * @copyright (c) 09.09.2017, Webcraftic
8
+ * @see Factory439_Activator
9
  * @version 1.0
10
  */
11
 
14
  exit;
15
  }
16
 
17
+ class WIO_Activation extends Wbcr_Factory439_Activator {
18
 
19
  /**
20
  * Runs activation actions.
49
 
50
  RIO_Process_Queue::try_create_plugin_tables();
51
 
52
+ WbcrFactoryClearfy230_Helpers::flushPageCache();
53
 
54
  WRIO_Logger::info( 'Parent plugin installation complete!' );
55
  }
admin/ajax/bulk-optimization.php CHANGED
@@ -343,8 +343,14 @@ add_action( 'wp_ajax_wbcr-rio-check-user-balance', function () {
343
 
344
  $current_quota = (int) $data->response->quota;
345
  WRIO_Plugin::app()->app()->updateOption( 'current_quota', $current_quota );
 
 
 
 
 
 
 
 
346
 
347
- wp_send_json_success( [
348
- 'balance' => $current_quota,
349
- ] );
350
  } );
343
 
344
  $current_quota = (int) $data->response->quota;
345
  WRIO_Plugin::app()->app()->updateOption( 'current_quota', $current_quota );
346
+
347
+ $output = ['balance' => $current_quota];
348
+
349
+ if ( $optimization_server == 'server_5') {
350
+ $reset_at = (int) $data->response->reset_at;
351
+ $reset_at += (int) get_option('gmt_offset', 0);
352
+ $output['reset_at'] = date('d-m-Y H:i', $reset_at);
353
+ }
354
 
355
+ wp_send_json_success( $output );
 
 
356
  } );
admin/assets/css/base-statistic.css CHANGED
@@ -1,675 +1,676 @@
1
- /**
2
- * Styles for the Widget to be displayed in the Clearfy plugin
3
-
4
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
- * @copyright Webcraftic 14.06.2019
6
- */
7
- #WBCR {
8
- /* Doughnut */
9
- /*@media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
10
- .wio-overview-chart-container {
11
- float: none;
12
- margin-right: 0;
13
- }
14
- }
15
-
16
- @media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
17
- .wio-overview-chart-container {
18
- float: none;
19
- margin-right: 0;
20
- }
21
-
22
- .wio-doughnut-legend {
23
- margin-top: 18px;
24
- }
25
-
26
- .wio-global-optim-phrase {
27
- padding-top: 0;
28
- width: auto;
29
- }
30
- }*/
31
- }
32
- #WBCR .wio-clear {
33
- clear: both;
34
- }
35
- #WBCR #io_folders_statistic-wbcr_clearfy-tab,
36
- #WBCR #io_nextgen_gallery_statistic-wbcr_clearfy-tab {
37
- display: none !important;
38
- }
39
- #WBCR .wrio-statistic-nav {
40
- margin: 0;
41
- background: #efefef;
42
- }
43
- #WBCR .wrio-statistic-nav ul {
44
- margin: 0;
45
- }
46
- #WBCR .wrio-statistic-nav ul li {
47
- position: relative;
48
- display: inline-block;
49
- margin: 0 0 0 0;
50
- background: #ffffff;
51
- box-shadow: 0 -2px 0 #eaeaea;
52
- }
53
- #WBCR .wrio-statistic-nav ul li:hover {
54
- background: #f7f7f7;
55
- }
56
- #WBCR .wrio-statistic-nav ul li.active {
57
- background: #f7f7f7;
58
- border-top: 1px solid #d4d4d4;
59
- border-left: 1px solid #d4d4d4;
60
- border-right: 1px solid #d4d4d4;
61
- border-bottom: 1px solid #f7f7f7;
62
- margin-bottom: -1px;
63
- }
64
- #WBCR .wrio-statistic-nav ul li.active a {
65
- color: #222;
66
- }
67
- #WBCR .wrio-statistic-nav ul li.active a .wrio-statistic-tab-percent {
68
- border: 2px dashed #8bc34a;
69
- color: #5e8237;
70
- }
71
- #WBCR .wrio-statistic-nav ul li.active .dashicons,
72
- #WBCR .wrio-statistic-nav ul li.active .dashicons-before:before {
73
- color: #ff8b66;
74
- }
75
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab {
76
- display: block;
77
- padding: 10px 20px 10px 20px;
78
- text-decoration: none;
79
- color: #d4d4d4;
80
- font-size: 22px;
81
- line-height: 2;
82
- }
83
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab:active,
84
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab:focus {
85
- background: 0;
86
- box-shadow: none;
87
- outline: none;
88
- }
89
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons,
90
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons-before:before {
91
- display: inline-block;
92
- width: 30px;
93
- height: 30px;
94
- font-size: 30px;
95
- line-height: 1.5;
96
- margin-right: 15px;
97
- color: #d4d4d4;
98
- }
99
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .wrio-statistic-tab-percent {
100
- display: inline-block;
101
- width: 42px;
102
- height: 42px;
103
- border-radius: 100px;
104
- border: 2px dashed #e4e4e4;
105
- padding: 5px;
106
- margin-left: 30px;
107
- font-size: 14px;
108
- font-weight: 600;
109
- text-align: center;
110
- color: #bdbdbd;
111
- }
112
- #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab-premium-label:after {
113
- display: inline-block;
114
- position: absolute;
115
- content: 'PRO';
116
- background: #ff5722;
117
- border-radius: 4px;
118
- color: #fff;
119
- font-size: 10px;
120
- line-height: 1;
121
- font-style: normal;
122
- padding: 4px 6px;
123
- margin-left: 4px;
124
- vertical-align: top;
125
- top: 10px;
126
- left: auto;
127
- right: 10px;
128
- z-index: 11;
129
- }
130
- #WBCR .wrio-table {
131
- width: 100%;
132
- table-layout: fixed;
133
- box-sizing: border-box;
134
- border-spacing: 3px;
135
- background: #fff;
136
- border-top: 2px dashed #cac9c9;
137
- }
138
- #WBCR .wrio-table th,
139
- #WBCR .wrio-table td {
140
- padding: 16px 10px;
141
- text-align: center;
142
- }
143
- #WBCR .wrio-table th {
144
- background: #f3f3f3;
145
- color: #777777;
146
- box-shadow: 0 1px 0 #d8d8d8;
147
- }
148
- #WBCR .wrio-table th:nth-child(2n+1) {
149
- background: #f9f9f9;
150
- }
151
- #WBCR .wrio-table tr.wrio-error {
152
- background-color: #ffe9e9 !important;
153
- }
154
- #WBCR .wrio-table .wrio-table-spinner {
155
- background: url("../img/quick-start-loader.gif") center center no-repeat;
156
- }
157
- #WBCR .wrio-table .wrio-table-highlighter {
158
- display: inline-block;
159
- padding: 3px 7px;
160
- background: #f3f3f3;
161
- }
162
- #WBCR .wrio-table .wbcr-rio-server-success {
163
- color: #8CC152;
164
- }
165
- #WBCR .wrio-table .wbcr-rio-server-error {
166
- color: #fb5d49;
167
- }
168
- #WBCR .wrio-table .wbcr-rio-server-warning {
169
- color: #ffb635;
170
- }
171
- #WBCR .wrio-table.wbcr-rio-folders-table td:nth-child(3) {
172
- text-align: left;
173
- }
174
- #WBCR .wrio-servers {
175
- padding: 40px 20px;
176
- }
177
- #WBCR .wrio-servers label span {
178
- display: block;
179
- font-weight: normal;
180
- font-size: 12px;
181
- color: #b7b2b2;
182
- }
183
- #WBCR .wrio-servers #wrio-change-optimization-server {
184
- position: relative;
185
- display: inline-block;
186
- max-width: 400px;
187
- margin-right: 15px;
188
- margin-bottom: 0;
189
- border: 1px solid #d2d0d0;
190
- background: #efefef;
191
- }
192
- #WBCR .wrio-servers .wrio-servers-info {
193
- margin: 0 0 0;
194
- padding: 20px;
195
- background: #fff;
196
- }
197
- #WBCR .wrio-servers .wrio-server-status-wrap {
198
- display: inline-block;
199
- margin-top: 8px;
200
- }
201
- #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status {
202
- background: transparent;
203
- color: #fff;
204
- padding: 3px 5px;
205
- border-radius: 4px;
206
- }
207
- #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-down {
208
- background: #ff5722;
209
- }
210
- #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-stable {
211
- background: #8bc34a;
212
- }
213
- #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-server-check-proccess {
214
- display: inline-block;
215
- height: 10px;
216
- width: 30px;
217
- background: url("../img/quick-start-loader.gif") center no-repeat;
218
- }
219
- #WBCR .wrio-servers .wrio-premium-user-balance-wrap {
220
- display: inline-block;
221
- margin-top: 8px;
222
- margin-left: 10px;
223
- }
224
- #WBCR .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance {
225
- color: #fff;
226
- padding: 3px 5px;
227
- border-radius: 4px;
228
- background: #ffc107;
229
- }
230
- #WBCR .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance-check-proccess {
231
- display: inline-block;
232
- height: 10px;
233
- width: 30px;
234
- background: url("../img/quick-start-loader.gif") center no-repeat;
235
- }
236
- #WBCR .wio-columns {
237
- overflow: hidden;
238
- padding: 15px 0;
239
- counter-reset: cols;
240
- }
241
- #WBCR .wio-columns [class^="col-"] {
242
- float: left;
243
- -webkit-box-sizing: border-box;
244
- -moz-box-sizing: border-box;
245
- box-sizing: border-box;
246
- }
247
- #WBCR .wio-columns .col-1-3 {
248
- width: 33.333%;
249
- padding-left: 28px;
250
- }
251
- #WBCR .wio-columns .col-2-3 {
252
- width: 66.666%;
253
- padding-left: 28px;
254
- }
255
- #WBCR .wio-columns .col-1-2 {
256
- width: 50%;
257
- padding: 0 20px;
258
- }
259
- #WBCR .wio-columns .col-statistics.col-statistics {
260
- width: 60%;
261
- }
262
- #WBCR .wio-columns .col-chart.col-chart {
263
- width: 40%;
264
- position: relative;
265
- padding: 20px;
266
- font-size: 12px;
267
- text-transform: uppercase;
268
- background: #f1f1f1b3;
269
- color: #abacaf;
270
- font-weight: bold;
271
- border-radius: 5px;
272
- margin-top: 10px;
273
- text-align: left;
274
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
275
- }
276
- #WBCR .wio-col {
277
- float: left;
278
- width: 50%;
279
- box-sizing: border-box;
280
- -webkit-flex-basis: 50%;
281
- -ms-flex-preferred-size: 50%;
282
- flex-basis: 50%;
283
- }
284
- #WBCR .wio-col {
285
- padding-right: 20px;
286
- }
287
- #WBCR .wio-col + .wio-col {
288
- padding-right: 0;
289
- padding-left: 50px;
290
- }
291
- #WBCR .wio-col:target {
292
- animation: wiohello 1s 3 linear backwards;
293
- }
294
- #WBCR .wio-number-you-optimized {
295
- margin-bottom: 1.35em;
296
- overflow: hidden;
297
- }
298
- #WBCR .wio-number-you-optimized #wio-total-optimized-attachments-pct {
299
- color: #828282;
300
- }
301
- #WBCR .wio-number-you-optimized .wio-number {
302
- display: table-cell;
303
- padding-right: 15px;
304
- font-size: 48px;
305
- font-weight: bold;
306
- line-height: 1;
307
- vertical-align: middle;
308
- white-space: nowrap;
309
- color: #828282;
310
- }
311
- #WBCR .wio-number-you-optimized .wio-text {
312
- display: table-cell;
313
- vertical-align: middle;
314
- overflow: hidden;
315
- font-size: 12px;
316
- color: #828282;
317
- }
318
- #WBCR .wio-number-you-optimized > p {
319
- display: table;
320
- }
321
- #WBCR .wio-bars {
322
- padding-right: 15px;
323
- }
324
- #WBCR .wio-bars p {
325
- font-size: 12px;
326
- margin-bottom: 5px;
327
- }
328
- #WBCR .wio-bars + .wio-number-you-optimized {
329
- border-bottom: 0;
330
- padding-top: 0.85em;
331
- }
332
- #WBCR .wio-bars + .wio-number-you-optimized p {
333
- color: #72a53b;
334
- }
335
- #WBCR .wio-bar-negative .wio-progress {
336
- background: #D2D3D6;
337
- }
338
- #WBCR .wio-bar-negative .wio-barnb {
339
- color: #9d9fa5;
340
- }
341
- #WBCR .wio-progress {
342
- height: 8px;
343
- transition: width 0.3s;
344
- /*.wio-bar-negative {
345
- width: 92% !important;
346
- }*/
347
- }
348
- #WBCR .wio-bar-positive .wio-progress {
349
- background: #8CC152;
350
- }
351
- #WBCR .wio-bar-positive .wio-barnb {
352
- color: #72a53b;
353
- }
354
- #WBCR .wio-bar-primary .wio-progress {
355
- background: #8CC152;
356
- }
357
- #WBCR .wio-bar-primary .wio-barnb {
358
- color: #72a53b;
359
- }
360
- #WBCR .wio-right-outside-number .wio-barnb {
361
- display: block;
362
- margin-right: -5.25em;
363
- text-align: right;
364
- font-weight: bold;
365
- line-height: 0.8;
366
- }
367
- #WBCR .wio-chart {
368
- position: relative;
369
- top: 1px;
370
- display: inline-block;
371
- vertical-align: middle;
372
- }
373
- #WBCR .wio-chart-container {
374
- position: relative;
375
- display: inline-block;
376
- margin-right: 5px;
377
- }
378
- #WBCR .wio-chart-container canvas {
379
- display: block;
380
- }
381
- #WBCR .wio-overview-chart-container {
382
- float: left;
383
- margin-right: 20px;
384
- }
385
- #WBCR .wio-chart-percent {
386
- position: absolute;
387
- left: 0;
388
- right: 0;
389
- top: 50%;
390
- margin-top: -0.5em;
391
- line-height: 0.8;
392
- text-align: center;
393
- font-size: 54px;
394
- font-weight: bold;
395
- color: #afafaf;
396
- }
397
- #WBCR .wio-chart-percent span {
398
- font-size: 20px;
399
- vertical-align: super;
400
- }
401
- #WBCR #wio-overview-chart-legend {
402
- overflow: hidden;
403
- }
404
- #WBCR .wio-doughnut-legend li {
405
- display: inline-block;
406
- position: relative;
407
- margin-bottom: 15px;
408
- border-radius: 5px;
409
- padding: 3px 8px 2px 31px;
410
- font-size: 9px;
411
- cursor: default;
412
- -webkit-transition: background-color 200ms ease-in-out;
413
- -moz-transition: background-color 200ms ease-in-out;
414
- -o-transition: background-color 200ms ease-in-out;
415
- transition: background-color 200ms ease-in-out;
416
- }
417
- #WBCR .wio-doughnut-legend li span {
418
- display: block;
419
- position: absolute;
420
- left: 0;
421
- top: 0;
422
- width: 25px;
423
- height: 25px;
424
- border-radius: 50%;
425
- }
426
- #WBCR .wio-optimize-button {
427
- min-width: 180px;
428
- padding: 12px 30px;
429
- background: #c9deb2;
430
- color: #586549;
431
- border: 0;
432
- box-shadow: none;
433
- font-size: 14px;
434
- text-transform: uppercase !important;
435
- font-weight: bold;
436
- border-radius: 4px;
437
- outline: none;
438
- }
439
- #WBCR .wio-optimize-button:active {
440
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
441
- }
442
- #WBCR .wio-optimize-button:disabled {
443
- background: #e2edd6;
444
- color: #a5b295;
445
- }
446
- #WBCR .wio-optimize-button.wio-running {
447
- color: #a57b3c;
448
- background: #fdd599 url("../img/Spinner-1s-33px.gif") 10px center no-repeat;
449
- padding-left: 50px;
450
- }
451
- #WBCR .wio-global-optim-phrase {
452
- width: 180px;
453
- padding-top: 20px;
454
- font-size: 14px;
455
- text-align: center;
456
- }
457
- #WBCR .wio-total-percent {
458
- color: #587f2e;
459
- }
460
- #WBCR #wio-start-msg-top,
461
- #WBCR #wio-start-msg-right,
462
- #WBCR #wio-start-msg-complete {
463
- display: none;
464
- }
465
- #WBCR .wio-text-left {
466
- text-align: left;
467
- }
468
- #WBCR span.wio-num {
469
- display: inline !important;
470
- position: inherit !important;
471
- }
472
- #WBCR .wio-image-optimize-board {
473
- padding-bottom: 0 !important;
474
- }
475
- #WBCR .wio-page-statistic {
476
- padding-left: 40px;
477
- }
478
- #WBCR .wio-page-statistic .wio-chart-percent {
479
- margin-top: -1.1em;
480
- }
481
- #WBCR .wrio-optimization-progress {
482
- background: none;
483
- padding: 0;
484
- /*button {
485
- padding: 5px 10px;
486
- border: 0;
487
- font-size: 11px;
488
- text-transform: uppercase !important;
489
- font-weight: bold;
490
- border-radius: 4px;
491
- outline: none;
492
- background: @greyButtonBg;
493
- color: @greyButtonColor;
494
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
495
-
496
- &:active {
497
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
498
- }
499
-
500
- &.wbcr-rio-loading {
501
- width: 56px;
502
- font-size: 0;
503
- background: @greyButtonBg url("../img/quick-start-loader.gif") center no-repeat;
504
- }
505
-
506
- &.wbcr-rio-selected {
507
- background: #f3efe2;
508
- color: #d8d8d8;
509
-
510
- &:active {
511
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
512
- }
513
- }
514
- }*/
515
- }
516
- #WBCR .wrio-optimization-progress h4 {
517
- font-size: 15px;
518
- font-weight: 700;
519
- }
520
- #WBCR .wrio-optimization-progress .wbcr-rio-warning-message {
521
- padding: 20px;
522
- background: #efefef;
523
- font-size: 15px;
524
- color: #b7b7b7;
525
- font-style: italic;
526
- }
527
- #WBCR .wio-widget {
528
- padding: 0 !important;
529
- }
530
- #WBCR .wio-widget .wio-chart-percent {
531
- font-size: 44px;
532
- line-height: 1;
533
- }
534
- #WBCR .wio-widget .wio-bars {
535
- width: 60%;
536
- margin-left: 155px;
537
- }
538
- #WBCR .wio-widget .col-chart.col-chart {
539
- width: 100%;
540
- }
541
- #WBCR .wio-widget .col-controls {
542
- width: 45%;
543
- padding-left: 5px;
544
- padding-top: 110px;
545
- }
546
- #WBCR .wio-widget .wio-doughnut-legend {
547
- /*padding-top:30px;*/
548
- text-align: left;
549
- }
550
- #WBCR .wio-widget .wio-widget-bottom {
551
- display: table;
552
- padding-top: 20px !important;
553
- width: 100%;
554
- text-align: right;
555
- }
556
- #WBCR .wio-widget .wio-widget-bottom li {
557
- display: table-cell;
558
- }
559
- #WBCR .wio-widget .wio-widget-bottom li:first-child {
560
- text-align: left;
561
- }
562
- #WBCR .factory-checkbox.wrio-checkbox-premium-label:after {
563
- display: inline-block;
564
- position: relative;
565
- content: 'PRO';
566
- background: #ff5722;
567
- border-radius: 4px;
568
- color: #fff;
569
- font-size: 10px;
570
- line-height: 1;
571
- font-style: normal;
572
- padding: 4px 6px;
573
- margin-left: 4px;
574
- vertical-align: top;
575
- top: -8px;
576
- left: -10px;
577
- right: auto;
578
- z-index: 11;
579
- }
580
- #WBCR .factory-checkbox-disabled input,
581
- #WBCR .factory-checkbox-disabled button {
582
- pointer-events: none;
583
- cursor: not-allowed;
584
- opacity: 0.65;
585
- filter: alpha(opacity=65);
586
- -webkit-box-shadow: none;
587
- box-shadow: none;
588
- }
589
- #WBCR #wrio-webp-options h3,
590
- #WBCR #wrio-error-log-options h3 {
591
- font-size: 14px;
592
- margin: 0 0 10px 0;
593
- font-weight: 600;
594
- color: #565656;
595
- }
596
- #WBCR #wrio-webp-options .wrio-webp-options-info,
597
- #WBCR #wrio-error-log-options .wrio-webp-options-info {
598
- color: #8a8787;
599
- font-size: 12px;
600
- }
601
- #WBCR #wrio-webp-options ul,
602
- #WBCR #wrio-error-log-options ul {
603
- padding-left: 0;
604
- }
605
- #WBCR #wrio-webp-options ul li:after,
606
- #WBCR #wrio-error-log-options ul li:after {
607
- content: '';
608
- display: block;
609
- clear: both;
610
- }
611
- #WBCR #wrio-webp-options ul li label,
612
- #WBCR #wrio-error-log-options ul li label {
613
- font-weight: 600;
614
- }
615
- #WBCR #wrio-webp-options ul li .wrio-webp-options-radio,
616
- #WBCR #wrio-error-log-options ul li .wrio-webp-options-radio,
617
- #WBCR #wrio-webp-options ul li .wrio-error-log-options-checkbox,
618
- #WBCR #wrio-error-log-options ul li .wrio-error-log-options-checkbox {
619
- display: block;
620
- float: left;
621
- margin-top: 2px;
622
- margin-right: 8px;
623
- }
624
- #WBCR #wrio-webp-options ul li .wrio-webp-options-radio:focus,
625
- #WBCR #wrio-error-log-options ul li .wrio-webp-options-radio:focus,
626
- #WBCR #wrio-webp-options ul li .wrio-error-log-options-checkbox:focus,
627
- #WBCR #wrio-error-log-options ul li .wrio-error-log-options-checkbox:focus {
628
- outline: none;
629
- box-shadow: none;
630
- }
631
- #WBCR #wrio-webp-options ul li .wrio-webp-options-info,
632
- #WBCR #wrio-error-log-options ul li .wrio-webp-options-info,
633
- #WBCR #wrio-webp-options ul li .wrio-error-log-options-info,
634
- #WBCR #wrio-error-log-options ul li .wrio-error-log-options-info {
635
- padding-left: 25px;
636
- }
637
- @media (max-width: 830px) {
638
- #WBCR .wio [class^="col-"] {
639
- float: none;
640
- margin-bottom: 1.5em;
641
- }
642
- #WBCR .wio .col-1-3,
643
- #WBCR .wio .col-1-2 {
644
- width: auto;
645
- padding: 0 28px;
646
- clear: both;
647
- padding-top: 1em;
648
- }
649
- }
650
- @keyframes wiohello {
651
- 0%,
652
- 100% {
653
- background: #FFF;
654
- }
655
- 50% {
656
- background: #F4F7F9;
657
- }
658
- }
659
- @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
660
- #WBCR .wio-columns .col-statistics.col-statistics,
661
- #WBCR .wio-columns .col-chart.col-chart {
662
- width: 50%;
663
- }
664
- }
665
- @media (max-width: 808px) {
666
- #WBCR .wio-columns .col-statistics.col-statistics,
667
- #WBCR .wio-columns .col-chart.col-chart {
668
- width: auto;
669
- float: none;
670
- padding: 0;
671
- }
672
- #WBCR .wio-columns .col-chart.col-chart {
673
- margin-top: 3em;
674
- }
675
- }
 
1
+ /**
2
+ * Styles for the Widget to be displayed in the Clearfy plugin
3
+
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright Webcraftic 14.06.2019
6
+ */
7
+ #WBCR {
8
+ /* Doughnut */
9
+ /*@media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
10
+ .wio-overview-chart-container {
11
+ float: none;
12
+ margin-right: 0;
13
+ }
14
+ }
15
+
16
+ @media (max-width: 1380px) and (min-width: 1246px), (max-width: 380px) {
17
+ .wio-overview-chart-container {
18
+ float: none;
19
+ margin-right: 0;
20
+ }
21
+
22
+ .wio-doughnut-legend {
23
+ margin-top: 18px;
24
+ }
25
+
26
+ .wio-global-optim-phrase {
27
+ padding-top: 0;
28
+ width: auto;
29
+ }
30
+ }*/
31
+ }
32
+ #WBCR .wio-clear {
33
+ clear: both;
34
+ }
35
+ #WBCR #io_folders_statistic-wbcr_clearfy-tab,
36
+ #WBCR #io_nextgen_gallery_statistic-wbcr_clearfy-tab {
37
+ display: none !important;
38
+ }
39
+ #WBCR .wrio-statistic-nav {
40
+ margin: 0;
41
+ background: #efefef;
42
+ }
43
+ #WBCR .wrio-statistic-nav ul {
44
+ margin: 0;
45
+ }
46
+ #WBCR .wrio-statistic-nav ul li {
47
+ position: relative;
48
+ display: inline-block;
49
+ margin: 0 0 0 0;
50
+ background: #ffffff;
51
+ box-shadow: 0 -2px 0 #eaeaea;
52
+ }
53
+ #WBCR .wrio-statistic-nav ul li:hover {
54
+ background: #f7f7f7;
55
+ }
56
+ #WBCR .wrio-statistic-nav ul li.active {
57
+ background: #f7f7f7;
58
+ border-top: 1px solid #d4d4d4;
59
+ border-left: 1px solid #d4d4d4;
60
+ border-right: 1px solid #d4d4d4;
61
+ border-bottom: 1px solid #f7f7f7;
62
+ margin-bottom: -1px;
63
+ }
64
+ #WBCR .wrio-statistic-nav ul li.active a {
65
+ color: #222;
66
+ }
67
+ #WBCR .wrio-statistic-nav ul li.active a .wrio-statistic-tab-percent {
68
+ border: 2px dashed #8bc34a;
69
+ color: #5e8237;
70
+ }
71
+ #WBCR .wrio-statistic-nav ul li.active .dashicons,
72
+ #WBCR .wrio-statistic-nav ul li.active .dashicons-before:before {
73
+ color: #ff8b66;
74
+ }
75
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab {
76
+ display: block;
77
+ padding: 10px 20px 10px 20px;
78
+ text-decoration: none;
79
+ color: #d4d4d4;
80
+ font-size: 22px;
81
+ line-height: 2;
82
+ }
83
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab:active,
84
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab:focus {
85
+ background: 0;
86
+ box-shadow: none;
87
+ outline: none;
88
+ }
89
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons,
90
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .dashicons-before:before {
91
+ display: inline-block;
92
+ width: 30px;
93
+ height: 30px;
94
+ font-size: 30px;
95
+ line-height: 1.5;
96
+ margin-right: 15px;
97
+ color: #d4d4d4;
98
+ }
99
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab .wrio-statistic-tab-percent {
100
+ display: inline-block;
101
+ width: 42px;
102
+ height: 42px;
103
+ border-radius: 100px;
104
+ border: 2px dashed #e4e4e4;
105
+ padding: 5px;
106
+ margin-left: 30px;
107
+ font-size: 14px;
108
+ font-weight: 600;
109
+ text-align: center;
110
+ color: #bdbdbd;
111
+ }
112
+ #WBCR .wrio-statistic-nav ul li .wrio-statistic-tab-premium-label:after {
113
+ display: inline-block;
114
+ position: absolute;
115
+ content: 'PRO';
116
+ background: #ff5722;
117
+ border-radius: 4px;
118
+ color: #fff;
119
+ font-size: 10px;
120
+ line-height: 1;
121
+ font-style: normal;
122
+ padding: 4px 6px;
123
+ margin-left: 4px;
124
+ vertical-align: top;
125
+ top: 10px;
126
+ left: auto;
127
+ right: 10px;
128
+ z-index: 11;
129
+ }
130
+ #WBCR .wrio-table {
131
+ width: 100%;
132
+ table-layout: fixed;
133
+ box-sizing: border-box;
134
+ border-spacing: 3px;
135
+ background: #fff;
136
+ border-top: 2px dashed #cac9c9;
137
+ }
138
+ #WBCR .wrio-table th,
139
+ #WBCR .wrio-table td {
140
+ padding: 16px 10px;
141
+ text-align: center;
142
+ }
143
+ #WBCR .wrio-table th {
144
+ background: #f3f3f3;
145
+ color: #777777;
146
+ box-shadow: 0 1px 0 #d8d8d8;
147
+ }
148
+ #WBCR .wrio-table th:nth-child(2n+1) {
149
+ background: #f9f9f9;
150
+ }
151
+ #WBCR .wrio-table tr.wrio-error {
152
+ background-color: #ffe9e9 !important;
153
+ }
154
+ #WBCR .wrio-table .wrio-table-spinner {
155
+ background: url("../img/quick-start-loader.gif") center center no-repeat;
156
+ }
157
+ #WBCR .wrio-table .wrio-table-highlighter {
158
+ display: inline-block;
159
+ padding: 3px 7px;
160
+ background: #f3f3f3;
161
+ }
162
+ #WBCR .wrio-table .wbcr-rio-server-success {
163
+ color: #8CC152;
164
+ }
165
+ #WBCR .wrio-table .wbcr-rio-server-error {
166
+ color: #fb5d49;
167
+ }
168
+ #WBCR .wrio-table .wbcr-rio-server-warning {
169
+ color: #ffb635;
170
+ }
171
+ #WBCR .wrio-table.wbcr-rio-folders-table td:nth-child(3) {
172
+ text-align: left;
173
+ }
174
+ #WBCR .wrio-servers {
175
+ padding: 40px 20px;
176
+ }
177
+ #WBCR .wrio-servers label span {
178
+ display: block;
179
+ font-weight: normal;
180
+ font-size: 12px;
181
+ color: #b7b2b2;
182
+ }
183
+ #WBCR .wrio-servers #wrio-change-optimization-server {
184
+ position: relative;
185
+ display: inline-block;
186
+ max-width: 400px;
187
+ margin-right: 15px;
188
+ margin-bottom: 0;
189
+ border: 1px solid #d2d0d0;
190
+ background: #efefef;
191
+ }
192
+ #WBCR .wrio-servers .wrio-servers-info {
193
+ margin: 0 0 0;
194
+ padding: 20px;
195
+ background: #fff;
196
+ }
197
+ #WBCR .wrio-servers .wrio-server-status-wrap {
198
+ display: inline-block;
199
+ margin-top: 8px;
200
+ }
201
+ #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status {
202
+ background: transparent;
203
+ color: #fff;
204
+ padding: 3px 5px;
205
+ border-radius: 4px;
206
+ }
207
+ #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-down {
208
+ background: #ff5722;
209
+ }
210
+ #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-stable {
211
+ background: #8bc34a;
212
+ }
213
+ #WBCR .wrio-servers .wrio-server-status-wrap .wrio-server-status.wrio-server-check-proccess {
214
+ display: inline-block;
215
+ height: 10px;
216
+ width: 30px;
217
+ background: url("../img/quick-start-loader.gif") center no-repeat;
218
+ }
219
+ #WBCR .wrio-servers .wrio-premium-user-balance-wrap, .wrio-premium-user-update-wrap {
220
+ display: inline-block;
221
+ margin-top: 8px;
222
+ margin-left: 10px;
223
+ }
224
+ #WBCR .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance, .wrio-premium-user-update-wrap .wrio-premium-user-update {
225
+ color: #fff;
226
+ padding: 3px 5px;
227
+ border-radius: 4px;
228
+ background: #ffc107;
229
+ }
230
+ #WBCR .wrio-servers .wrio-premium-user-balance-wrap .wrio-premium-user-balance-check-proccess,
231
+ .wrio-premium-user-update-wrap .wrio-premium-user-update-check-proccess {
232
+ display: inline-block;
233
+ height: 10px;
234
+ width: 30px;
235
+ background: url("../img/quick-start-loader.gif") center no-repeat;
236
+ }
237
+ #WBCR .wio-columns {
238
+ overflow: hidden;
239
+ padding: 15px 0;
240
+ counter-reset: cols;
241
+ }
242
+ #WBCR .wio-columns [class^="col-"] {
243
+ float: left;
244
+ -webkit-box-sizing: border-box;
245
+ -moz-box-sizing: border-box;
246
+ box-sizing: border-box;
247
+ }
248
+ #WBCR .wio-columns .col-1-3 {
249
+ width: 33.333%;
250
+ padding-left: 28px;
251
+ }
252
+ #WBCR .wio-columns .col-2-3 {
253
+ width: 66.666%;
254
+ padding-left: 28px;
255
+ }
256
+ #WBCR .wio-columns .col-1-2 {
257
+ width: 50%;
258
+ padding: 0 20px;
259
+ }
260
+ #WBCR .wio-columns .col-statistics.col-statistics {
261
+ width: 60%;
262
+ }
263
+ #WBCR .wio-columns .col-chart.col-chart {
264
+ width: 40%;
265
+ position: relative;
266
+ padding: 20px;
267
+ font-size: 12px;
268
+ text-transform: uppercase;
269
+ background: #f1f1f1b3;
270
+ color: #abacaf;
271
+ font-weight: bold;
272
+ border-radius: 5px;
273
+ margin-top: 10px;
274
+ text-align: left;
275
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
276
+ }
277
+ #WBCR .wio-col {
278
+ float: left;
279
+ width: 50%;
280
+ box-sizing: border-box;
281
+ -webkit-flex-basis: 50%;
282
+ -ms-flex-preferred-size: 50%;
283
+ flex-basis: 50%;
284
+ }
285
+ #WBCR .wio-col {
286
+ padding-right: 20px;
287
+ }
288
+ #WBCR .wio-col + .wio-col {
289
+ padding-right: 0;
290
+ padding-left: 50px;
291
+ }
292
+ #WBCR .wio-col:target {
293
+ animation: wiohello 1s 3 linear backwards;
294
+ }
295
+ #WBCR .wio-number-you-optimized {
296
+ margin-bottom: 1.35em;
297
+ overflow: hidden;
298
+ }
299
+ #WBCR .wio-number-you-optimized #wio-total-optimized-attachments-pct {
300
+ color: #828282;
301
+ }
302
+ #WBCR .wio-number-you-optimized .wio-number {
303
+ display: table-cell;
304
+ padding-right: 15px;
305
+ font-size: 48px;
306
+ font-weight: bold;
307
+ line-height: 1;
308
+ vertical-align: middle;
309
+ white-space: nowrap;
310
+ color: #828282;
311
+ }
312
+ #WBCR .wio-number-you-optimized .wio-text {
313
+ display: table-cell;
314
+ vertical-align: middle;
315
+ overflow: hidden;
316
+ font-size: 12px;
317
+ color: #828282;
318
+ }
319
+ #WBCR .wio-number-you-optimized > p {
320
+ display: table;
321
+ }
322
+ #WBCR .wio-bars {
323
+ padding-right: 15px;
324
+ }
325
+ #WBCR .wio-bars p {
326
+ font-size: 12px;
327
+ margin-bottom: 5px;
328
+ }
329
+ #WBCR .wio-bars + .wio-number-you-optimized {
330
+ border-bottom: 0;
331
+ padding-top: 0.85em;
332
+ }
333
+ #WBCR .wio-bars + .wio-number-you-optimized p {
334
+ color: #72a53b;
335
+ }
336
+ #WBCR .wio-bar-negative .wio-progress {
337
+ background: #D2D3D6;
338
+ }
339
+ #WBCR .wio-bar-negative .wio-barnb {
340
+ color: #9d9fa5;
341
+ }
342
+ #WBCR .wio-progress {
343
+ height: 8px;
344
+ transition: width 0.3s;
345
+ /*.wio-bar-negative {
346
+ width: 92% !important;
347
+ }*/
348
+ }
349
+ #WBCR .wio-bar-positive .wio-progress {
350
+ background: #8CC152;
351
+ }
352
+ #WBCR .wio-bar-positive .wio-barnb {
353
+ color: #72a53b;
354
+ }
355
+ #WBCR .wio-bar-primary .wio-progress {
356
+ background: #8CC152;
357
+ }
358
+ #WBCR .wio-bar-primary .wio-barnb {
359
+ color: #72a53b;
360
+ }
361
+ #WBCR .wio-right-outside-number .wio-barnb {
362
+ display: block;
363
+ margin-right: -5.25em;
364
+ text-align: right;
365
+ font-weight: bold;
366
+ line-height: 0.8;
367
+ }
368
+ #WBCR .wio-chart {
369
+ position: relative;
370
+ top: 1px;
371
+ display: inline-block;
372
+ vertical-align: middle;
373
+ }
374
+ #WBCR .wio-chart-container {
375
+ position: relative;
376
+ display: inline-block;
377
+ margin-right: 5px;
378
+ }
379
+ #WBCR .wio-chart-container canvas {
380
+ display: block;
381
+ }
382
+ #WBCR .wio-overview-chart-container {
383
+ float: left;
384
+ margin-right: 20px;
385
+ }
386
+ #WBCR .wio-chart-percent {
387
+ position: absolute;
388
+ left: 0;
389
+ right: 0;
390
+ top: 50%;
391
+ margin-top: -0.5em;
392
+ line-height: 0.8;
393
+ text-align: center;
394
+ font-size: 54px;
395
+ font-weight: bold;
396
+ color: #afafaf;
397
+ }
398
+ #WBCR .wio-chart-percent span {
399
+ font-size: 20px;
400
+ vertical-align: super;
401
+ }
402
+ #WBCR #wio-overview-chart-legend {
403
+ overflow: hidden;
404
+ }
405
+ #WBCR .wio-doughnut-legend li {
406
+ display: inline-block;
407
+ position: relative;
408
+ margin-bottom: 15px;
409
+ border-radius: 5px;
410
+ padding: 3px 8px 2px 31px;
411
+ font-size: 9px;
412
+ cursor: default;
413
+ -webkit-transition: background-color 200ms ease-in-out;
414
+ -moz-transition: background-color 200ms ease-in-out;
415
+ -o-transition: background-color 200ms ease-in-out;
416
+ transition: background-color 200ms ease-in-out;
417
+ }
418
+ #WBCR .wio-doughnut-legend li span {
419
+ display: block;
420
+ position: absolute;
421
+ left: 0;
422
+ top: 0;
423
+ width: 25px;
424
+ height: 25px;
425
+ border-radius: 50%;
426
+ }
427
+ #WBCR .wio-optimize-button {
428
+ min-width: 180px;
429
+ padding: 12px 30px;
430
+ background: #c9deb2;
431
+ color: #586549;
432
+ border: 0;
433
+ box-shadow: none;
434
+ font-size: 14px;
435
+ text-transform: uppercase !important;
436
+ font-weight: bold;
437
+ border-radius: 4px;
438
+ outline: none;
439
+ }
440
+ #WBCR .wio-optimize-button:active {
441
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
442
+ }
443
+ #WBCR .wio-optimize-button:disabled {
444
+ background: #e2edd6;
445
+ color: #a5b295;
446
+ }
447
+ #WBCR .wio-optimize-button.wio-running {
448
+ color: #a57b3c;
449
+ background: #fdd599 url("../img/Spinner-1s-33px.gif") 10px center no-repeat;
450
+ padding-left: 50px;
451
+ }
452
+ #WBCR .wio-global-optim-phrase {
453
+ width: 180px;
454
+ padding-top: 20px;
455
+ font-size: 14px;
456
+ text-align: center;
457
+ }
458
+ #WBCR .wio-total-percent {
459
+ color: #587f2e;
460
+ }
461
+ #WBCR #wio-start-msg-top,
462
+ #WBCR #wio-start-msg-right,
463
+ #WBCR #wio-start-msg-complete {
464
+ display: none;
465
+ }
466
+ #WBCR .wio-text-left {
467
+ text-align: left;
468
+ }
469
+ #WBCR span.wio-num {
470
+ display: inline !important;
471
+ position: inherit !important;
472
+ }
473
+ #WBCR .wio-image-optimize-board {
474
+ padding-bottom: 0 !important;
475
+ }
476
+ #WBCR .wio-page-statistic {
477
+ padding-left: 40px;
478
+ }
479
+ #WBCR .wio-page-statistic .wio-chart-percent {
480
+ margin-top: -1.1em;
481
+ }
482
+ #WBCR .wrio-optimization-progress {
483
+ background: none;
484
+ padding: 0;
485
+ /*button {
486
+ padding: 5px 10px;
487
+ border: 0;
488
+ font-size: 11px;
489
+ text-transform: uppercase !important;
490
+ font-weight: bold;
491
+ border-radius: 4px;
492
+ outline: none;
493
+ background: @greyButtonBg;
494
+ color: @greyButtonColor;
495
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
496
+
497
+ &:active {
498
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.5);
499
+ }
500
+
501
+ &.wbcr-rio-loading {
502
+ width: 56px;
503
+ font-size: 0;
504
+ background: @greyButtonBg url("../img/quick-start-loader.gif") center no-repeat;
505
+ }
506
+
507
+ &.wbcr-rio-selected {
508
+ background: #f3efe2;
509
+ color: #d8d8d8;
510
+
511
+ &:active {
512
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
513
+ }
514
+ }
515
+ }*/
516
+ }
517
+ #WBCR .wrio-optimization-progress h4 {
518
+ font-size: 15px;
519
+ font-weight: 700;
520
+ }
521
+ #WBCR .wrio-optimization-progress .wbcr-rio-warning-message {
522
+ padding: 20px;
523
+ background: #efefef;
524
+ font-size: 15px;
525
+ color: #b7b7b7;
526
+ font-style: italic;
527
+ }
528
+ #WBCR .wio-widget {
529
+ padding: 0 !important;
530
+ }
531
+ #WBCR .wio-widget .wio-chart-percent {
532
+ font-size: 44px;
533
+ line-height: 1;
534
+ }
535
+ #WBCR .wio-widget .wio-bars {
536
+ width: 60%;
537
+ margin-left: 155px;
538
+ }
539
+ #WBCR .wio-widget .col-chart.col-chart {
540
+ width: 100%;
541
+ }
542
+ #WBCR .wio-widget .col-controls {
543
+ width: 45%;
544
+ padding-left: 5px;
545
+ padding-top: 110px;
546
+ }
547
+ #WBCR .wio-widget .wio-doughnut-legend {
548
+ /*padding-top:30px;*/
549
+ text-align: left;
550
+ }
551
+ #WBCR .wio-widget .wio-widget-bottom {
552
+ display: table;
553
+ padding-top: 20px !important;
554
+ width: 100%;
555
+ text-align: right;
556
+ }
557
+ #WBCR .wio-widget .wio-widget-bottom li {
558
+ display: table-cell;
559
+ }
560
+ #WBCR .wio-widget .wio-widget-bottom li:first-child {
561
+ text-align: left;
562
+ }
563
+ #WBCR .factory-checkbox.wrio-checkbox-premium-label:after {
564
+ display: inline-block;
565
+ position: relative;
566
+ content: 'PRO';
567
+ background: #ff5722;
568
+ border-radius: 4px;
569
+ color: #fff;
570
+ font-size: 10px;
571
+ line-height: 1;
572
+ font-style: normal;
573
+ padding: 4px 6px;
574
+ margin-left: 4px;
575
+ vertical-align: top;
576
+ top: -8px;
577
+ left: -10px;
578
+ right: auto;
579
+ z-index: 11;
580
+ }
581
+ #WBCR .factory-checkbox-disabled input,
582
+ #WBCR .factory-checkbox-disabled button {
583
+ pointer-events: none;
584
+ cursor: not-allowed;
585
+ opacity: 0.65;
586
+ filter: alpha(opacity=65);
587
+ -webkit-box-shadow: none;
588
+ box-shadow: none;
589
+ }
590
+ #WBCR #wrio-webp-options h3,
591
+ #WBCR #wrio-error-log-options h3 {
592
+ font-size: 14px;
593
+ margin: 0 0 10px 0;
594
+ font-weight: 600;
595
+ color: #565656;
596
+ }
597
+ #WBCR #wrio-webp-options .wrio-webp-options-info,
598
+ #WBCR #wrio-error-log-options .wrio-webp-options-info {
599
+ color: #8a8787;
600
+ font-size: 12px;
601
+ }
602
+ #WBCR #wrio-webp-options ul,
603
+ #WBCR #wrio-error-log-options ul {
604
+ padding-left: 0;
605
+ }
606
+ #WBCR #wrio-webp-options ul li:after,
607
+ #WBCR #wrio-error-log-options ul li:after {
608
+ content: '';
609
+ display: block;
610
+ clear: both;
611
+ }
612
+ #WBCR #wrio-webp-options ul li label,
613
+ #WBCR #wrio-error-log-options ul li label {
614
+ font-weight: 600;
615
+ }
616
+ #WBCR #wrio-webp-options ul li .wrio-webp-options-radio,
617
+ #WBCR #wrio-error-log-options ul li .wrio-webp-options-radio,
618
+ #WBCR #wrio-webp-options ul li .wrio-error-log-options-checkbox,
619
+ #WBCR #wrio-error-log-options ul li .wrio-error-log-options-checkbox {
620
+ display: block;
621
+ float: left;
622
+ margin-top: 2px;
623
+ margin-right: 8px;
624
+ }
625
+ #WBCR #wrio-webp-options ul li .wrio-webp-options-radio:focus,
626
+ #WBCR #wrio-error-log-options ul li .wrio-webp-options-radio:focus,
627
+ #WBCR #wrio-webp-options ul li .wrio-error-log-options-checkbox:focus,
628
+ #WBCR #wrio-error-log-options ul li .wrio-error-log-options-checkbox:focus {
629
+ outline: none;
630
+ box-shadow: none;
631
+ }
632
+ #WBCR #wrio-webp-options ul li .wrio-webp-options-info,
633
+ #WBCR #wrio-error-log-options ul li .wrio-webp-options-info,
634
+ #WBCR #wrio-webp-options ul li .wrio-error-log-options-info,
635
+ #WBCR #wrio-error-log-options ul li .wrio-error-log-options-info {
636
+ padding-left: 25px;
637
+ }
638
+ @media (max-width: 830px) {
639
+ #WBCR .wio [class^="col-"] {
640
+ float: none;
641
+ margin-bottom: 1.5em;
642
+ }
643
+ #WBCR .wio .col-1-3,
644
+ #WBCR .wio .col-1-2 {
645
+ width: auto;
646
+ padding: 0 28px;
647
+ clear: both;
648
+ padding-top: 1em;
649
+ }
650
+ }
651
+ @keyframes wiohello {
652
+ 0%,
653
+ 100% {
654
+ background: #FFF;
655
+ }
656
+ 50% {
657
+ background: #F4F7F9;
658
+ }
659
+ }
660
+ @media (max-width: 1520px) and (min-width: 1381px), (max-width: 1086px) {
661
+ #WBCR .wio-columns .col-statistics.col-statistics,
662
+ #WBCR .wio-columns .col-chart.col-chart {
663
+ width: 50%;
664
+ }
665
+ }
666
+ @media (max-width: 808px) {
667
+ #WBCR .wio-columns .col-statistics.col-statistics,
668
+ #WBCR .wio-columns .col-chart.col-chart {
669
+ width: auto;
670
+ float: none;
671
+ padding: 0;
672
+ }
673
+ #WBCR .wio-columns .col-chart.col-chart {
674
+ margin-top: 3em;
675
+ }
676
+ }
admin/assets/css/sweetalert-custom.css CHANGED
@@ -1,155 +1,155 @@
1
- /* Sub Layer */
2
- body[class*="_rio"] .swal2-container.swal2-shown {
3
- background: rgba(16, 17, 21, 0.9);
4
- z-index: 100000;
5
- }
6
- .wrio-modal {
7
- padding: 0 !important;
8
- }
9
- .wrio-modal .swal2-close {
10
- color: rgba(0, 0, 0, 0.8);
11
- }
12
- .wrio-modal .swal2-modal {
13
- border-radius: 2px;
14
- }
15
- .wrio-modal .swal2-icon {
16
- margin-bottom: 25px;
17
- }
18
- .wrio-modal .swal2-title {
19
- margin: 0;
20
- padding: 28px 32px;
21
- font-size: 24px;
22
- text-align: left;
23
- color: #fff !important;
24
- background: #3e3e3e !important;
25
- }
26
- .wrio-modal .swal2-content {
27
- font-size: 14px;
28
- padding: 28px 32px;
29
- background: #efefef;
30
- }
31
- .wrio-modal .swal2-buttonswrapper {
32
- margin-top: 0;
33
- padding: 22px;
34
- background: #F4F7F9;
35
- }
36
- .wrio-modal .swal2-buttonswrapper a.button svg {
37
- margin-right: 12px;
38
- vertical-align: -2px;
39
- }
40
- .wrio-modal .swal2-buttonswrapper button.loading {
41
- border-radius: 100% !important;
42
- height: 40px !important;
43
- padding: 0 !important;
44
- box-shadow: none !important;
45
- }
46
- .wrio-modal .swal2-buttonswrapper button.swal2-styled {
47
- height: auto;
48
- padding: 12px 32px;
49
- margin: 10px;
50
- font-size: 14px;
51
- letter-spacing: 1px;
52
- text-transform: uppercase;
53
- border-radius: 3px;
54
- font-weight: bold;
55
- outline: none;
56
- }
57
- .wrio-modal .swal2-buttonswrapper button.swal2-styled.swal2-confirm {
58
- background-color: #fdd599 !important;
59
- text-shadow: none !important;
60
- box-shadow: 0 3px 0 #ceac7a !important;
61
- color: #a57b3c !important;
62
- }
63
- .wrio-modal .swal2-buttonswrapper button.swal2-styled.swal2-cancel {
64
- background-color: #d2d2d2 !important;
65
- color: #656464 !important;
66
- text-shadow: none !important;
67
- box-shadow: 0 3px 0 #a9a9a9;
68
- /*background-color: #c9deb2 !important;
69
- color: #606956 !important;
70
- text-shadow: none !important;
71
- box-shadow: 0 3px 0 #a7b994;*/
72
- }
73
- .wrio-modal .swal2-buttonswrapper button.swal2-styled:focus,
74
- .wrio-modal .swal2-buttonswrapper button.swal2-styled:hover {
75
- outline: none;
76
- text-shadow: none;
77
- color: #FFF;
78
- }
79
- .wrio-modal-warning {
80
- background: #FF5722 !important;
81
- }
82
- .wrio-modal-warning .swal2-title {
83
- text-align: center;
84
- color: #222 !important;
85
- background: #efefef !important;
86
- }
87
- .wrio-modal-warning .swal2-content {
88
- font-size: 16px;
89
- padding: 10px 20px 32px;
90
- background: #efefef;
91
- }
92
- .wrio-modal-warning .swal2-buttonswrapper {
93
- background: #efefef;
94
- }
95
- .wrio-modal-error {
96
- background: #dec2c0 !important;
97
- }
98
- .wrio-modal-error .swal2-title {
99
- text-align: center;
100
- color: #222 !important;
101
- background: #efefef !important;
102
- }
103
- .wrio-modal-error .swal2-content {
104
- font-size: 16px;
105
- padding: 10px 20px 32px;
106
- background: #efefef;
107
- }
108
- .wrio-modal-error .swal2-buttonswrapper {
109
- background: #efefef;
110
- }
111
- .wrio-modal-optimization-way {
112
- background: #1F2332 !important;
113
- }
114
- .wrio-modal-optimization-way .wrio-swal-subtitle {
115
- padding: 0 0 28px;
116
- margin-top: 0px;
117
- font-weight: 500;
118
- font-size: 18px;
119
- text-align: left;
120
- color: #8c8888;
121
- background: #efefef;
122
- }
123
- .wrio-modal-optimization-way .wrio-list-infos {
124
- margin: 0;
125
- padding: 0;
126
- }
127
- .wrio-modal-optimization-way .wrio-list-infos li {
128
- display: flex;
129
- align-items: center;
130
- padding: 15px 5px;
131
- text-align: left;
132
- font-size: 14px;
133
- line-height: 1.5;
134
- color: #8c8888;
135
- }
136
- .wrio-modal-optimization-way .wrio-list-infos li:first-child {
137
- padding-top: 5px;
138
- }
139
- .wrio-modal-optimization-way .wrio-list-infos li:last-child {
140
- padding-bottom: 5px;
141
- }
142
- .wrio-modal-optimization-way .wrio-list-infos li + li {
143
- border-top: 1px solid #E9EFF2;
144
- }
145
- .wrio-modal-optimization-way .wrio-list-infos a:before {
146
- content: '';
147
- display: block;
148
- }
149
- .wrio-modal-optimization-way .wrio-info-icon {
150
- flex-grow: 0;
151
- flex-basis: 50px;
152
- }
153
- .wrio-modal-optimization-way .wrio-info-icon + span {
154
- padding-left: 20px;
155
- }
1
+ /* Sub Layer */
2
+ body[class*="_rio"] .swal2-container.swal2-shown {
3
+ background: rgba(16, 17, 21, 0.9);
4
+ z-index: 100000;
5
+ }
6
+ .wrio-modal {
7
+ padding: 0 !important;
8
+ }
9
+ .wrio-modal .swal2-close {
10
+ color: rgba(0, 0, 0, 0.8);
11
+ }
12
+ .wrio-modal .swal2-modal {
13
+ border-radius: 2px;
14
+ }
15
+ .wrio-modal .swal2-icon {
16
+ margin-bottom: 25px;
17
+ }
18
+ .wrio-modal .swal2-title {
19
+ margin: 0;
20
+ padding: 28px 32px;
21
+ font-size: 24px;
22
+ text-align: left;
23
+ color: #fff !important;
24
+ background: #3e3e3e !important;
25
+ }
26
+ .wrio-modal .swal2-content {
27
+ font-size: 14px;
28
+ padding: 28px 32px;
29
+ background: #efefef;
30
+ }
31
+ .wrio-modal .swal2-buttonswrapper {
32
+ margin-top: 0;
33
+ padding: 22px;
34
+ background: #F4F7F9;
35
+ }
36
+ .wrio-modal .swal2-buttonswrapper a.button svg {
37
+ margin-right: 12px;
38
+ vertical-align: -2px;
39
+ }
40
+ .wrio-modal .swal2-buttonswrapper button.loading {
41
+ border-radius: 100% !important;
42
+ height: 40px !important;
43
+ padding: 0 !important;
44
+ box-shadow: none !important;
45
+ }
46
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled {
47
+ height: auto;
48
+ padding: 12px 32px;
49
+ margin: 10px;
50
+ font-size: 14px;
51
+ letter-spacing: 1px;
52
+ text-transform: uppercase;
53
+ border-radius: 3px;
54
+ font-weight: bold;
55
+ outline: none;
56
+ }
57
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled.swal2-confirm {
58
+ background-color: #fdd599 !important;
59
+ text-shadow: none !important;
60
+ box-shadow: 0 3px 0 #ceac7a !important;
61
+ color: #a57b3c !important;
62
+ }
63
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled.swal2-cancel {
64
+ background-color: #d2d2d2 !important;
65
+ color: #656464 !important;
66
+ text-shadow: none !important;
67
+ box-shadow: 0 3px 0 #a9a9a9;
68
+ /*background-color: #c9deb2 !important;
69
+ color: #606956 !important;
70
+ text-shadow: none !important;
71
+ box-shadow: 0 3px 0 #a7b994;*/
72
+ }
73
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled:focus,
74
+ .wrio-modal .swal2-buttonswrapper button.swal2-styled:hover {
75
+ outline: none;
76
+ text-shadow: none;
77
+ color: #FFF;
78
+ }
79
+ .wrio-modal-warning {
80
+ background: #FF5722 !important;
81
+ }
82
+ .wrio-modal-warning .swal2-title {
83
+ text-align: center;
84
+ color: #222 !important;
85
+ background: #efefef !important;
86
+ }
87
+ .wrio-modal-warning .swal2-content {
88
+ font-size: 16px;
89
+ padding: 10px 20px 32px;
90
+ background: #efefef;
91
+ }
92
+ .wrio-modal-warning .swal2-buttonswrapper {
93
+ background: #efefef;
94
+ }
95
+ .wrio-modal-error {
96
+ background: #dec2c0 !important;
97
+ }
98
+ .wrio-modal-error .swal2-title {
99
+ text-align: center;
100
+ color: #222 !important;
101
+ background: #efefef !important;
102
+ }
103
+ .wrio-modal-error .swal2-content {
104
+ font-size: 16px;
105
+ padding: 10px 20px 32px;
106
+ background: #efefef;
107
+ }
108
+ .wrio-modal-error .swal2-buttonswrapper {
109
+ background: #efefef;
110
+ }
111
+ .wrio-modal-optimization-way {
112
+ background: #1F2332 !important;
113
+ }
114
+ .wrio-modal-optimization-way .wrio-swal-subtitle {
115
+ padding: 0 0 28px;
116
+ margin-top: 0px;
117
+ font-weight: 500;
118
+ font-size: 18px;
119
+ text-align: left;
120
+ color: #8c8888;
121
+ background: #efefef;
122
+ }
123
+ .wrio-modal-optimization-way .wrio-list-infos {
124
+ margin: 0;
125
+ padding: 0;
126
+ }
127
+ .wrio-modal-optimization-way .wrio-list-infos li {
128
+ display: flex;
129
+ align-items: center;
130
+ padding: 15px 5px;
131
+ text-align: left;
132
+ font-size: 14px;
133
+ line-height: 1.5;
134
+ color: #8c8888;
135
+ }
136
+ .wrio-modal-optimization-way .wrio-list-infos li:first-child {
137
+ padding-top: 5px;
138
+ }
139
+ .wrio-modal-optimization-way .wrio-list-infos li:last-child {
140
+ padding-bottom: 5px;
141
+ }
142
+ .wrio-modal-optimization-way .wrio-list-infos li + li {
143
+ border-top: 1px solid #E9EFF2;
144
+ }
145
+ .wrio-modal-optimization-way .wrio-list-infos a:before {
146
+ content: '';
147
+ display: block;
148
+ }
149
+ .wrio-modal-optimization-way .wrio-info-icon {
150
+ flex-grow: 0;
151
+ flex-basis: 50px;
152
+ }
153
+ .wrio-modal-optimization-way .wrio-info-icon + span {
154
+ padding-left: 20px;
155
+ }
admin/assets/js/bulk-optimization.js CHANGED
@@ -16,6 +16,7 @@ jQuery(function ($) {
16
  }
17
  if ('server_1' === $('#wrio-change-optimization-server').val()) {
18
  $(".wrio-premium-user-balance-wrap").hide();
 
19
  }
20
  if ('server_5' === $('#wrio-change-optimization-server').val()) {
21
  if (!this.settings.is_premium) {
@@ -41,9 +42,11 @@ jQuery(function ($) {
41
  $(this).prop('disabled', true);
42
  $('.wrio-premium-user-balance').attr('data-server', $(this).val());
43
  $(".wrio-premium-user-balance-wrap").show();
 
44
 
45
  if ('server_1' === $(this).val()) {
46
  $(".wrio-premium-user-balance-wrap").hide();
 
47
  }
48
  if ('server_5' === $(this).val()) {
49
  if (!self.settings.is_premium) {
@@ -95,6 +98,7 @@ jQuery(function ($) {
95
  checkPremiumUserBalance: function () {
96
  var self = this,
97
  userBalance = $('.wrio-premium-user-balance'),
 
98
  data = {
99
  'action': 'wbcr-rio-check-user-balance',
100
  '_wpnonce': self.settings.nonce
@@ -103,10 +107,19 @@ jQuery(function ($) {
103
  data['server_name'] = $('#wrio-change-optimization-server').val();
104
 
105
  userBalance.addClass('wrio-premium-user-balance-check-proccess');
106
- userBalance.text('');
107
-
 
 
 
 
 
108
  $.post(ajaxurl, data, function (response) {
 
109
  userBalance.removeClass('wrio-premium-user-balance-check-proccess');
 
 
 
110
 
111
  if (!response || !response.data || !response.success) {
112
  console.log('[Error]: Response error');
@@ -117,8 +130,14 @@ jQuery(function ($) {
117
  }
118
 
119
  userBalance.text('error');
 
 
 
120
  } else {
121
  userBalance.text(response.data.balance);
 
 
 
122
  }
123
  }).fail(function (xhr, status, error) {
124
  console.log(xhr);
@@ -360,10 +379,10 @@ jQuery(function ($) {
360
  throwError: function (error_message) {
361
  this.stop();
362
 
363
- var noticeId = $.wbcr_factory_clearfy_227.app.showNotice(error_message, 'danger');
364
 
365
  setTimeout(function () {
366
- $.wbcr_factory_clearfy_227.app.hideNotice(noticeId);
367
  }, 10000);
368
  },
369
 
16
  }
17
  if ('server_1' === $('#wrio-change-optimization-server').val()) {
18
  $(".wrio-premium-user-balance-wrap").hide();
19
+ $(".wrio-premium-user-update-wrap").hide();
20
  }
21
  if ('server_5' === $('#wrio-change-optimization-server').val()) {
22
  if (!this.settings.is_premium) {
42
  $(this).prop('disabled', true);
43
  $('.wrio-premium-user-balance').attr('data-server', $(this).val());
44
  $(".wrio-premium-user-balance-wrap").show();
45
+ $(".wrio-premium-user-update-wrap").show();
46
 
47
  if ('server_1' === $(this).val()) {
48
  $(".wrio-premium-user-balance-wrap").hide();
49
+ $(".wrio-premium-user-update-wrap").hide();
50
  }
51
  if ('server_5' === $(this).val()) {
52
  if (!self.settings.is_premium) {
98
  checkPremiumUserBalance: function () {
99
  var self = this,
100
  userBalance = $('.wrio-premium-user-balance'),
101
+ balanceResetAt = $('.wrio-premium-user-update'),
102
  data = {
103
  'action': 'wbcr-rio-check-user-balance',
104
  '_wpnonce': self.settings.nonce
107
  data['server_name'] = $('#wrio-change-optimization-server').val();
108
 
109
  userBalance.addClass('wrio-premium-user-balance-check-proccess');
110
+ userBalance.text('');
111
+
112
+ if("server_5" === data['server_name']) {
113
+ balanceResetAt.addClass('wrio-premium-user-update-check-proccess');
114
+ balanceResetAt.text('');
115
+ }
116
+
117
  $.post(ajaxurl, data, function (response) {
118
+ console.log(response);
119
  userBalance.removeClass('wrio-premium-user-balance-check-proccess');
120
+ if("server_5" === data['server_name']) {
121
+ balanceResetAt.removeClass('wrio-premium-user-update-check-proccess');
122
+ }
123
 
124
  if (!response || !response.data || !response.success) {
125
  console.log('[Error]: Response error');
130
  }
131
 
132
  userBalance.text('error');
133
+ if("server_5" === data['server_name']) {
134
+ balanceResetAt.text('error');
135
+ }
136
  } else {
137
  userBalance.text(response.data.balance);
138
+ if("server_5" === data['server_name']) {
139
+ balanceResetAt.text(response.data.reset_at);
140
+ }
141
  }
142
  }).fail(function (xhr, status, error) {
143
  console.log(xhr);
379
  throwError: function (error_message) {
380
  this.stop();
381
 
382
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice(error_message, 'danger');
383
 
384
  setTimeout(function () {
385
+ $.wbcr_factory_clearfy_230.app.hideNotice(noticeId);
386
  }, 10000);
387
  },
388
 
admin/boot.php CHANGED
@@ -73,7 +73,7 @@
73
 
74
  wp_enqueue_script( 'wrio-meta-migrations', WRIO_PLUGIN_URL . '/admin/assets/js/meta-migrations.js', [
75
  'jquery',
76
- 'wbcr-factory-clearfy-227-global'
77
  ], WRIO_Plugin::app()->getPluginVersion() );
78
  } );
79
 
@@ -123,8 +123,8 @@
123
  *
124
  * Once all post meta migrated, notice would not be shown anymore.
125
  *
126
- * @param Wbcr_Factory436_Plugin $plugin
127
- * @param Wbcr_FactoryPages435_ImpressiveThemplate $obj
128
  *
129
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
130
  * @since 1.3.0
@@ -146,11 +146,11 @@
146
  * Flush configuration after saving the settings
147
  *
148
  * @param WRIO_Plugin $plugin
149
- * @param Wbcr_FactoryPages435_ImpressiveThemplate $obj
150
  *
151
  * @return bool
152
  */
153
- /*add_action('wbcr_factory_436_imppage_after_form_save', function ($plugin, $obj) {
154
  $is_rio = WRIO_Plugin::app()->getPluginName() == $plugin->getPluginName();
155
 
156
  if( $is_rio ) {
@@ -174,14 +174,14 @@
174
  return $page_url;
175
  }
176
 
177
- add_filter( 'wbcr_factory_pages_435_imppage_rating_widget_url', 'wio_rating_widget_url', 10, 2 );
178
 
179
  /**
180
  * Widget with the offer to buy Clearfy Business
181
  *
182
  * @param array $widgets
183
  * @param string $position
184
- * @param Wbcr_Factory436_Plugin $plugin
185
  */
186
  add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
187
  if ( $plugin->getPluginName() == WRIO_Plugin::app()->getPluginName() ) {
@@ -191,6 +191,7 @@
191
  unset( $widgets['donate_widget'] );
192
 
193
  if ( $position == 'right' ) {
 
194
  unset( $widgets['business_suggetion'] );
195
  unset( $widgets['rating_widget'] );
196
  unset( $widgets['info_widget'] );
@@ -320,8 +321,8 @@
320
  * Отправка уведомлений и скором окончании квоты в Impressive
321
  * Уведомления создаются только если квота <= 100
322
  *
323
- * @param Wbcr_Factory436_Plugin $plugin Экземпляр плагина, который передается в функцию обратного вызова
324
- * @param Wbcr_FactoryPages435_ImpressiveThemplate $obj Экземпляр страницы, который передается в функцию обратного вызова
325
  *
326
  * @author Alexander Gorenkov <g.a.androidjc2@ya.ru>
327
  * @since 1.4.2
73
 
74
  wp_enqueue_script( 'wrio-meta-migrations', WRIO_PLUGIN_URL . '/admin/assets/js/meta-migrations.js', [
75
  'jquery',
76
+ 'wbcr-factory-clearfy-230-global'
77
  ], WRIO_Plugin::app()->getPluginVersion() );
78
  } );
79
 
123
  *
124
  * Once all post meta migrated, notice would not be shown anymore.
125
  *
126
+ * @param Wbcr_Factory439_Plugin $plugin
127
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $obj
128
  *
129
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
130
  * @since 1.3.0
146
  * Flush configuration after saving the settings
147
  *
148
  * @param WRIO_Plugin $plugin
149
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $obj
150
  *
151
  * @return bool
152
  */
153
+ /*add_action('wbcr_factory_439_imppage_after_form_save', function ($plugin, $obj) {
154
  $is_rio = WRIO_Plugin::app()->getPluginName() == $plugin->getPluginName();
155
 
156
  if( $is_rio ) {
174
  return $page_url;
175
  }
176
 
177
+ add_filter( 'wbcr_factory_pages_438_imppage_rating_widget_url', 'wio_rating_widget_url', 10, 2 );
178
 
179
  /**
180
  * Widget with the offer to buy Clearfy Business
181
  *
182
  * @param array $widgets
183
  * @param string $position
184
+ * @param Wbcr_Factory439_Plugin $plugin
185
  */
186
  add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
187
  if ( $plugin->getPluginName() == WRIO_Plugin::app()->getPluginName() ) {
191
  unset( $widgets['donate_widget'] );
192
 
193
  if ( $position == 'right' ) {
194
+ unset( $widgets['adverts_widget'] );
195
  unset( $widgets['business_suggetion'] );
196
  unset( $widgets['rating_widget'] );
197
  unset( $widgets['info_widget'] );
321
  * Отправка уведомлений и скором окончании квоты в Impressive
322
  * Уведомления создаются только если квота <= 100
323
  *
324
+ * @param Wbcr_Factory439_Plugin $plugin Экземпляр плагина, который передается в функцию обратного вызова
325
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $obj Экземпляр страницы, который передается в функцию обратного вызова
326
  *
327
  * @author Alexander Gorenkov <g.a.androidjc2@ya.ru>
328
  * @since 1.4.2
admin/includes/classes/class-rio-optimize-template.php CHANGED
@@ -26,12 +26,12 @@ class WIO_OptimizePageTemplate {
26
  /**
27
  * Выводит контент страницы с учётом мультисайта
28
  *
29
- * @param Wbcr_FactoryClearfy227_PageBase $page
30
  *
31
  * @throws Exception
32
  */
33
 
34
- /*public function showPageContent( Wbcr_FactoryClearfy227_PageBase $page ) {
35
  do_action( 'wbcr/rio/multisite_current_blog' );
36
  $this->pageContent( $page );
37
  do_action( 'wbcr/rio/multisite_restore_blog' );
26
  /**
27
  * Выводит контент страницы с учётом мультисайта
28
  *
29
+ * @param Wbcr_FactoryClearfy230_PageBase $page
30
  *
31
  * @throws Exception
32
  */
33
 
34
+ /*public function showPageContent( Wbcr_FactoryClearfy230_PageBase $page ) {
35
  do_action( 'wbcr/rio/multisite_current_blog' );
36
  $this->pageContent( $page );
37
  do_action( 'wbcr/rio/multisite_restore_blog' );
admin/pages/class-rio-license.php CHANGED
@@ -9,7 +9,7 @@ if ( ! defined( 'ABSPATH' ) ) {
9
  *
10
  * @author Alexander Teshabaev <sasha.tesh@gmail.com>
11
  */
12
- class WRIO_License_Page extends Wbcr_FactoryClearfy227_LicensePage {
13
 
14
  /**
15
  * {@inheritdoc}
@@ -43,9 +43,9 @@ class WRIO_License_Page extends Wbcr_FactoryClearfy227_LicensePage {
43
 
44
  /**
45
  * {@inheritdoc}
46
- * @param Wbcr_Factory436_Plugin $plugin
47
  */
48
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
49
  $this->menu_title = __( 'License', 'robin-image-optimizer' );
50
  $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
51
 
9
  *
10
  * @author Alexander Teshabaev <sasha.tesh@gmail.com>
11
  */
12
+ class WRIO_License_Page extends Wbcr_FactoryClearfy230_LicensePage {
13
 
14
  /**
15
  * {@inheritdoc}
43
 
44
  /**
45
  * {@inheritdoc}
46
+ * @param Wbcr_Factory439_Plugin $plugin
47
  */
48
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
49
  $this->menu_title = __( 'License', 'robin-image-optimizer' );
50
  $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
51
 
admin/pages/class-rio-log.php CHANGED
@@ -106,10 +106,10 @@ class WRIO_LogPage extends WRIO_Page {
106
 
107
  jQuery('#wbcr-log-viewer').html('');
108
  jQuery('#wbcr-log-size').text('0B');
109
- jQuery.wbcr_factory_clearfy_227.app.showNotice(data.message, data.type);
110
  },
111
  error: function(jqXHR, textStatus, errorThrown) {
112
- jQuery.wbcr_factory_clearfy_227.app.showNotice('Error: ' + errorThrown + ', status: ' + textStatus, 'danger');
113
  btn.html(currentBtnText);
114
  }
115
  });
106
 
107
  jQuery('#wbcr-log-viewer').html('');
108
  jQuery('#wbcr-log-size').text('0B');
109
+ jQuery.wbcr_factory_clearfy_230.app.showNotice(data.message, data.type);
110
  },
111
  error: function(jqXHR, textStatus, errorThrown) {
112
+ jQuery.wbcr_factory_clearfy_230.app.showNotice('Error: ' + errorThrown + ', status: ' + textStatus, 'danger');
113
  btn.html(currentBtnText);
114
  }
115
  });
admin/pages/class-rio-page.php CHANGED
@@ -18,7 +18,7 @@ if ( ! defined( 'ABSPATH' ) ) {
18
  * @copyright (c) 2018, Webcraftic
19
  * @version 1.0
20
  */
21
- class WRIO_Page extends Wbcr_FactoryClearfy227_PageBase {
22
 
23
  /**
24
  * {@inheritdoc}
18
  * @copyright (c) 2018, Webcraftic
19
  * @version 1.0
20
  */
21
+ class WRIO_Page extends Wbcr_FactoryClearfy230_PageBase {
22
 
23
  /**
24
  * {@inheritdoc}
admin/pages/class-rio-settings.php CHANGED
@@ -27,6 +27,14 @@ class WRIO_SettingsPage extends WRIO_Page {
27
  * {@inheritdoc}
28
  */
29
  public $show_right_sidebar_in_options = true;
 
 
 
 
 
 
 
 
30
 
31
  /**
32
  * @param WRIO_Plugin $plugin
@@ -35,6 +43,10 @@ class WRIO_SettingsPage extends WRIO_Page {
35
 
36
  $this->menu_title = __( 'Settings', 'robin-image-optimizer' );
37
  $this->page_menu_short_description = __( 'Plugin configuration', 'robin-image-optimizer' );
 
 
 
 
38
 
39
  parent::__construct( $plugin );
40
  }
@@ -44,7 +56,7 @@ class WRIO_SettingsPage extends WRIO_Page {
44
  *
45
  * @return void
46
  * @since 1.0.0
47
- * @see Wbcr_FactoryPages435_AdminPage
48
  *
49
  */
50
  public function assets( $scripts, $styles ) {
@@ -157,7 +169,7 @@ class WRIO_SettingsPage extends WRIO_Page {
157
  [
158
  'custom',
159
  __( 'Custom', 'robin-image-optimizer' ),
160
- __( 'This mode will use all available optimization methods for maximum image compression. The file size will be reduced approximately 7 times. The quality of some images may deteriorate slightly. Use this mode if you need the maximum weight reduction, and you are ready to accept the loss of image quality.', 'robin-image-optimizer' )
161
  ]
162
  ],
163
  'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
27
  * {@inheritdoc}
28
  */
29
  public $show_right_sidebar_in_options = true;
30
+
31
+ /**
32
+ * {@inheritDoc}
33
+ *
34
+ * @since 1.1.3 - Added
35
+ * @var bool - true show, false hide
36
+ */
37
+ public $show_search_options_form = false;
38
 
39
  /**
40
  * @param WRIO_Plugin $plugin
43
 
44
  $this->menu_title = __( 'Settings', 'robin-image-optimizer' );
45
  $this->page_menu_short_description = __( 'Plugin configuration', 'robin-image-optimizer' );
46
+
47
+ if ( defined( 'WBCR_CLEARFY_PLUGIN_ACTIVE' ) ) {
48
+ $this->show_search_options_form = true;
49
+ }
50
 
51
  parent::__construct( $plugin );
52
  }
56
  *
57
  * @return void
58
  * @since 1.0.0
59
+ * @see Wbcr_FactoryPages438_AdminPage
60
  *
61
  */
62
  public function assets( $scripts, $styles ) {
169
  [
170
  'custom',
171
  __( 'Custom', 'robin-image-optimizer' ),
172
+ __( 'This mode allows you to configure your own compression ratio.', 'robin-image-optimizer' )
173
  ]
174
  ],
175
  'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
admin/pages/class-rio-statistic.php CHANGED
@@ -88,11 +88,6 @@ class WRIO_StatisticPage extends WRIO_Page {
88
  if ( ( $this->plugin->getPluginName() != $plugin->getPluginName() ) || ( $obj->id != 'rio_general' ) ) {
89
  return false;
90
  }
91
-
92
- if ( ! wrio_is_license_activate() && ! wrio_is_license_active() ) {
93
- $notice = sprintf( __( "We are forced to introduce limits on free servers. Read more on <a href='%s'>our website</a>", 'robin-image-optimizer' ), 'https://robinoptimizer.com/we-are-forced-to-introduce-limits/' );
94
- $obj->printWarningNotice( $notice );
95
- }
96
  }
97
 
98
  /**
88
  if ( ( $this->plugin->getPluginName() != $plugin->getPluginName() ) || ( $obj->id != 'rio_general' ) ) {
89
  return false;
90
  }
 
 
 
 
 
91
  }
92
 
93
  /**
assets/js/jquery.lazy.js CHANGED
@@ -1,872 +1,872 @@
1
- /*!
2
- * jQuery & Zepto Lazy - v1.7.10
3
- * http://jquery.eisbehr.de/lazy/
4
- *
5
- * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern
6
- *
7
- * Dual licensed under the MIT and GPL-2.0 licenses:
8
- * http://www.opensource.org/licenses/mit-license.php
9
- * http://www.gnu.org/licenses/gpl-2.0.html
10
- *
11
- * $("img.lazy").lazy();
12
- */
13
-
14
- ;(function(window, undefined) {
15
- "use strict";
16
-
17
- // noinspection JSUnresolvedVariable
18
- /**
19
- * library instance - here and not in construct to be shorter in minimization
20
- * @return void
21
- */
22
- var $ = window.jQuery || window.Zepto,
23
-
24
- /**
25
- * unique plugin instance id counter
26
- * @type {number}
27
- */
28
- lazyInstanceId = 0,
29
-
30
- /**
31
- * helper to register window load for jQuery 3
32
- * @type {boolean}
33
- */
34
- windowLoaded = false;
35
-
36
- /**
37
- * make lazy available to jquery - and make it a bit more case-insensitive :)
38
- * @access public
39
- * @type {function}
40
- * @param {object} settings
41
- * @return {LazyPlugin}
42
- */
43
- $.fn.Lazy = $.fn.lazy = function(settings) {
44
- return new LazyPlugin(this, settings);
45
- };
46
-
47
- /**
48
- * helper to add plugins to lazy prototype configuration
49
- * @access public
50
- * @type {function}
51
- * @param {string|Array} names
52
- * @param {string|Array|function} [elements]
53
- * @param {function} loader
54
- * @return void
55
- */
56
- $.Lazy = $.lazy = function(names, elements, loader) {
57
- // make second parameter optional
58
- if ($.isFunction(elements)) {
59
- loader = elements;
60
- elements = [];
61
- }
62
-
63
- // exit here if parameter is not a callable function
64
- if (!$.isFunction(loader)) {
65
- return;
66
- }
67
-
68
- // make parameters an array of names to be sure
69
- names = $.isArray(names) ? names : [names];
70
- elements = $.isArray(elements) ? elements : [elements];
71
-
72
- var config = LazyPlugin.prototype.config,
73
- forced = config._f || (config._f = {});
74
-
75
- // add the loader plugin for every name
76
- for (var i = 0, l = names.length; i < l; i++) {
77
- if (config[names[i]] === undefined || $.isFunction(config[names[i]])) {
78
- config[names[i]] = loader;
79
- }
80
- }
81
-
82
- // add forced elements loader
83
- for (var c = 0, a = elements.length; c < a; c++) {
84
- forced[elements[c]] = names[0];
85
- }
86
- };
87
-
88
- /**
89
- * contains all logic and the whole element handling
90
- * is packed in a private function outside class to reduce memory usage, because it will not be created on every plugin instance
91
- * @access private
92
- * @type {function}
93
- * @param {LazyPlugin} instance
94
- * @param {object} config
95
- * @param {object|Array} items
96
- * @param {object} events
97
- * @param {string} namespace
98
- * @return void
99
- */
100
- function _executeLazy(instance, config, items, events, namespace) {
101
- /**
102
- * a helper to trigger the 'onFinishedAll' callback after all other events
103
- * @access private
104
- * @type {number}
105
- */
106
- var _awaitingAfterLoad = 0,
107
-
108
- /**
109
- * visible content width
110
- * @access private
111
- * @type {number}
112
- */
113
- _actualWidth = -1,
114
-
115
- /**
116
- * visible content height
117
- * @access private
118
- * @type {number}
119
- */
120
- _actualHeight = -1,
121
-
122
- /**
123
- * determine possibly detected high pixel density
124
- * @access private
125
- * @type {boolean}
126
- */
127
- _isRetinaDisplay = false,
128
-
129
- /**
130
- * dictionary entry for better minimization
131
- * @access private
132
- * @type {string}
133
- */
134
- _afterLoad = 'afterLoad',
135
-
136
- /**
137
- * dictionary entry for better minimization
138
- * @access private
139
- * @type {string}
140
- */
141
- _load = 'load',
142
-
143
- /**
144
- * dictionary entry for better minimization
145
- * @access private
146
- * @type {string}
147
- */
148
- _error = 'error',
149
-
150
- /**
151
- * dictionary entry for better minimization
152
- * @access private
153
- * @type {string}
154
- */
155
- _img = 'img',
156
-
157
- /**
158
- * dictionary entry for better minimization
159
- * @access private
160
- * @type {string}
161
- */
162
- _src = 'src',
163
-
164
- /**
165
- * dictionary entry for better minimization
166
- * @access private
167
- * @type {string}
168
- */
169
- _srcset = 'srcset',
170
-
171
- /**
172
- * dictionary entry for better minimization
173
- * @access private
174
- * @type {string}
175
- */
176
- _sizes = 'sizes',
177
-
178
- /**
179
- * dictionary entry for better minimization
180
- * @access private
181
- * @type {string}
182
- */
183
- _backgroundImage = 'background-image';
184
-
185
- /**
186
- * initialize plugin
187
- * bind loading to events or set delay time to load all items at once
188
- * @access private
189
- * @return void
190
- */
191
- function _initialize() {
192
- // detect actual device pixel ratio
193
- // noinspection JSUnresolvedVariable
194
- _isRetinaDisplay = window.devicePixelRatio > 1;
195
-
196
- // prepare all initial items
197
- items = _prepareItems(items);
198
-
199
- // if delay time is set load all items at once after delay time
200
- if (config.delay >= 0) {
201
- setTimeout(function() {
202
- _lazyLoadItems(true);
203
- }, config.delay);
204
- }
205
-
206
- // if no delay is set or combine usage is active bind events
207
- if (config.delay < 0 || config.combined) {
208
- // create unique event function
209
- events.e = _throttle(config.throttle, function(event) {
210
- // reset detected window size on resize event
211
- if (event.type === 'resize') {
212
- _actualWidth = _actualHeight = -1;
213
- }
214
-
215
- // execute 'lazy magic'
216
- _lazyLoadItems(event.all);
217
- });
218
-
219
- // create function to add new items to instance
220
- events.a = function(additionalItems) {
221
- additionalItems = _prepareItems(additionalItems);
222
- items.push.apply(items, additionalItems);
223
- };
224
-
225
- // create function to get all instance items left
226
- events.g = function() {
227
- // filter loaded items before return in case internal filter was not running until now
228
- return (items = $(items).filter(function() {
229
- return !$(this).data(config.loadedName);
230
- }));
231
- };
232
-
233
- // create function to force loading elements
234
- events.f = function(forcedItems) {
235
- for (var i = 0; i < forcedItems.length; i++) {
236
- // only handle item if available in current instance
237
- // use a compare function, because Zepto can't handle object parameter for filter
238
- // var item = items.filter(forcedItems[i]);
239
- /* jshint loopfunc: true */
240
- var item = items.filter(function() {
241
- return this === forcedItems[i];
242
- });
243
-
244
- if (item.length) {
245
- _lazyLoadItems(false, item);
246
- }
247
- }
248
- };
249
-
250
- // load initial items
251
- _lazyLoadItems();
252
-
253
- // bind lazy load functions to scroll and resize event
254
- // noinspection JSUnresolvedVariable
255
- $(config.appendScroll).on('scroll.' + namespace + ' resize.' + namespace, events.e);
256
- }
257
- }
258
-
259
- /**
260
- * prepare items before handle them
261
- * @access private
262
- * @param {Array|object|jQuery} items
263
- * @return {Array|object|jQuery}
264
- */
265
- function _prepareItems(items) {
266
- // fetch used configurations before loops
267
- var defaultImage = config.defaultImage,
268
- placeholder = config.placeholder,
269
- imageBase = config.imageBase,
270
- srcsetAttribute = config.srcsetAttribute,
271
- loaderAttribute = config.loaderAttribute,
272
- forcedTags = config._f || {};
273
-
274
- // filter items and only add those who not handled yet and got needed attributes available
275
- items = $(items).filter(function() {
276
- var element = $(this),
277
- tag = _getElementTagName(this);
278
-
279
- return !element.data(config.handledName) &&
280
- (element.attr(config.attribute) || element.attr(srcsetAttribute) || element.attr(loaderAttribute) || forcedTags[tag] !== undefined);
281
- })
282
-
283
- // append plugin instance to all elements
284
- .data('plugin_' + config.name, instance);
285
-
286
- for (var i = 0, l = items.length; i < l; i++) {
287
- var element = $(items[i]),
288
- tag = _getElementTagName(items[i]),
289
- elementImageBase = element.attr(config.imageBaseAttribute) || imageBase;
290
-
291
- // generate and update source set if an image base is set
292
- if (tag === _img && elementImageBase && element.attr(srcsetAttribute)) {
293
- element.attr(srcsetAttribute, _getCorrectedSrcSet(element.attr(srcsetAttribute), elementImageBase));
294
- }
295
-
296
- // add loader to forced element types
297
- if (forcedTags[tag] !== undefined && !element.attr(loaderAttribute)) {
298
- element.attr(loaderAttribute, forcedTags[tag]);
299
- }
300
-
301
- // set default image on every element without source
302
- if (tag === _img && defaultImage && !element.attr(_src)) {
303
- element.attr(_src, defaultImage);
304
- }
305
-
306
- // set placeholder on every element without background image
307
- else if (tag !== _img && placeholder && (!element.css(_backgroundImage) || element.css(_backgroundImage) === 'none')) {
308
- element.css(_backgroundImage, "url('" + placeholder + "')");
309
- }
310
- }
311
-
312
- return items;
313
- }
314
-
315
- /**
316
- * the 'lazy magic' - check all items
317
- * @access private
318
- * @param {boolean} [allItems]
319
- * @param {object} [forced]
320
- * @return void
321
- */
322
- function _lazyLoadItems(allItems, forced) {
323
- // skip if no items where left
324
- if (!items.length) {
325
- // destroy instance if option is enabled
326
- if (config.autoDestroy) {
327
- // noinspection JSUnresolvedFunction
328
- instance.destroy();
329
- }
330
-
331
- return;
332
- }
333
-
334
- var elements = forced || items,
335
- loadTriggered = false,
336
- imageBase = config.imageBase || '',
337
- srcsetAttribute = config.srcsetAttribute,
338
- handledName = config.handledName;
339
-
340
- // loop all available items
341
- for (var i = 0; i < elements.length; i++) {
342
- // item is at least in loadable area
343
- if (allItems || forced || _isInLoadableArea(elements[i])) {
344
- var element = $(elements[i]),
345
- tag = _getElementTagName(elements[i]),
346
- attribute = element.attr(config.attribute),
347
- elementImageBase = element.attr(config.imageBaseAttribute) || imageBase,
348
- customLoader = element.attr(config.loaderAttribute);
349
-
350
- // is not already handled
351
- if (!element.data(handledName) &&
352
- // and is visible or visibility doesn't matter
353
- (!config.visibleOnly || element.is(':visible')) && (
354
- // and image source or source set attribute is available
355
- (attribute || element.attr(srcsetAttribute)) && (
356
- // and is image tag where attribute is not equal source or source set
357
- (tag === _img && (elementImageBase + attribute !== element.attr(_src) || element.attr(srcsetAttribute) !== element.attr(_srcset))) ||
358
- // or is non image tag where attribute is not equal background
359
- (tag !== _img && elementImageBase + attribute !== element.css(_backgroundImage))
360
- ) ||
361
- // or custom loader is available
362
- customLoader))
363
- {
364
- // mark element always as handled as this point to prevent double handling
365
- loadTriggered = true;
366
- element.data(handledName, true);
367
-
368
- // load item
369
- _handleItem(element, tag, elementImageBase, customLoader);
370
- }
371
- }
372
- }
373
-
374
- // when something was loaded remove them from remaining items
375
- if (loadTriggered) {
376
- items = $(items).filter(function() {
377
- return !$(this).data(handledName);
378
- });
379
- }
380
- }
381
-
382
- /**
383
- * load the given element the lazy way
384
- * @access private
385
- * @param {object} element
386
- * @param {string} tag
387
- * @param {string} imageBase
388
- * @param {function} [customLoader]
389
- * @return void
390
- */
391
- function _handleItem(element, tag, imageBase, customLoader) {
392
- // increment count of items waiting for after load
393
- ++_awaitingAfterLoad;
394
-
395
- // extended error callback for correct 'onFinishedAll' handling
396
- var errorCallback = function() {
397
- _triggerCallback('onError', element);
398
- _reduceAwaiting();
399
-
400
- // prevent further callback calls
401
- errorCallback = $.noop;
402
- };
403
-
404
- // trigger function before loading image
405
- _triggerCallback('beforeLoad', element);
406
-
407
- // fetch all double used data here for better code minimization
408
- var srcAttribute = config.attribute,
409
- srcsetAttribute = config.srcsetAttribute,
410
- sizesAttribute = config.sizesAttribute,
411
- retinaAttribute = config.retinaAttribute,
412
- removeAttribute = config.removeAttribute,
413
- loadedName = config.loadedName,
414
- elementRetina = element.attr(retinaAttribute);
415
-
416
- // handle custom loader
417
- if (customLoader) {
418
- // on load callback
419
- var loadCallback = function() {
420
- // remove attribute from element
421
- if (removeAttribute) {
422
- element.removeAttr(config.loaderAttribute);
423
- }
424
-
425
- // mark element as loaded
426
- element.data(loadedName, true);
427
-
428
- // call after load event
429
- _triggerCallback(_afterLoad, element);
430
-
431
- // remove item from waiting queue and possibly trigger finished event
432
- // it's needed to be asynchronous to run after filter was in _lazyLoadItems
433
- setTimeout(_reduceAwaiting, 1);
434
-
435
- // prevent further callback calls
436
- loadCallback = $.noop;
437
- };
438
-
439
- // bind error event to trigger callback and reduce waiting amount
440
- element.off(_error).one(_error, errorCallback)
441
-
442
- // bind after load callback to element
443
- .one(_load, loadCallback);
444
-
445
- // trigger custom loader and handle response
446
- if (!_triggerCallback(customLoader, element, function(response) {
447
- if(response) {
448
- element.off(_load);
449
- loadCallback();
450
- }
451
- else {
452
- element.off(_error);
453
- errorCallback();
454
- }
455
- })) {
456
- element.trigger(_error);
457
- }
458
- }
459
-
460
- // handle images
461
- else {
462
- // create image object
463
- var imageObj = $(new Image());
464
-
465
- // bind error event to trigger callback and reduce waiting amount
466
- imageObj.one(_error, errorCallback)
467
-
468
- // bind after load callback to image
469
- .one(_load, function() {
470
- // remove element from view
471
- element.hide();
472
-
473
- // set image back to element
474
- // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'
475
- if (tag === _img) {
476
- element.attr(_sizes, imageObj.attr(_sizes))
477
- .attr(_srcset, imageObj.attr(_srcset))
478
- .attr(_src, imageObj.attr(_src));
479
- }
480
- else {
481
- element.css(_backgroundImage, "url('" + imageObj.attr(_src) + "')");
482
- }
483
-
484
- // bring it back with some effect!
485
- element[config.effect](config.effectTime);
486
-
487
- // remove attribute from element
488
- if (removeAttribute) {
489
- element.removeAttr(srcAttribute + ' ' + srcsetAttribute + ' ' + retinaAttribute + ' ' + config.imageBaseAttribute);
490
-
491
- // only remove 'sizes' attribute, if it was a custom one
492
- if (sizesAttribute !== _sizes) {
493
- element.removeAttr(sizesAttribute);
494
- }
495
- }
496
-
497
- // mark element as loaded
498
- element.data(loadedName, true);
499
-
500
- // call after load event
501
- _triggerCallback(_afterLoad, element);
502
-
503
- // cleanup image object
504
- imageObj.remove();
505
-
506
- // remove item from waiting queue and possibly trigger finished event
507
- _reduceAwaiting();
508
- });
509
-
510
- // set sources
511
- // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'
512
- var imageSrc = (_isRetinaDisplay && elementRetina ? elementRetina : element.attr(srcAttribute)) || '';
513
- imageObj.attr(_sizes, element.attr(sizesAttribute))
514
- .attr(_srcset, element.attr(srcsetAttribute))
515
- .attr(_src, imageSrc ? imageBase + imageSrc : null);
516
-
517
- // call after load even on cached image
518
- imageObj.complete && imageObj.trigger(_load); // jshint ignore : line
519
- }
520
- }
521
-
522
- /**
523
- * check if the given element is inside the current viewport or threshold
524
- * @access private
525
- * @param {object} element
526
- * @return {boolean}
527
- */
528
- function _isInLoadableArea(element) {
529
- var elementBound = element.getBoundingClientRect(),
530
- direction = config.scrollDirection,
531
- threshold = config.threshold,
532
- vertical = // check if element is in loadable area from top
533
- ((_getActualHeight() + threshold) > elementBound.top) &&
534
- // check if element is even in loadable are from bottom
535
- (-threshold < elementBound.bottom),
536
- horizontal = // check if element is in loadable area from left
537
- ((_getActualWidth() + threshold) > elementBound.left) &&
538
- // check if element is even in loadable area from right
539
- (-threshold < elementBound.right);
540
-
541
- if (direction === 'vertical') {
542
- return vertical;
543
- }
544
- else if (direction === 'horizontal') {
545
- return horizontal;
546
- }
547
-
548
- return vertical && horizontal;
549
- }
550
-
551
- /**
552
- * receive the current viewed width of the browser
553
- * @access private
554
- * @return {number}
555
- */
556
- function _getActualWidth() {
557
- return _actualWidth >= 0 ? _actualWidth : (_actualWidth = $(window).width());
558
- }
559
-
560
- /**
561
- * receive the current viewed height of the browser
562
- * @access private
563
- * @return {number}
564
- */
565
- function _getActualHeight() {
566
- return _actualHeight >= 0 ? _actualHeight : (_actualHeight = $(window).height());
567
- }
568
-
569
- /**
570
- * get lowercase tag name of an element
571
- * @access private
572
- * @param {object} element
573
- * @returns {string}
574
- */
575
- function _getElementTagName(element) {
576
- return element.tagName.toLowerCase();
577
- }
578
-
579
- /**
580
- * prepend image base to all srcset entries
581
- * @access private
582
- * @param {string} srcset
583
- * @param {string} imageBase
584
- * @returns {string}
585
- */
586
- function _getCorrectedSrcSet(srcset, imageBase) {
587
- if (imageBase) {
588
- // trim, remove unnecessary spaces and split entries
589
- var entries = srcset.split(',');
590
- srcset = '';
591
-
592
- for (var i = 0, l = entries.length; i < l; i++) {
593
- srcset += imageBase + entries[i].trim() + (i !== l - 1 ? ',' : '');
594
- }
595
- }
596
-
597
- return srcset;
598
- }
599
-
600
- /**
601
- * helper function to throttle down event triggering
602
- * @access private
603
- * @param {number} delay
604
- * @param {function} callback
605
- * @return {function}
606
- */
607
- function _throttle(delay, callback) {
608
- var timeout,
609
- lastExecute = 0;
610
-
611
- return function(event, ignoreThrottle) {
612
- var elapsed = +new Date() - lastExecute;
613
-
614
- function run() {
615
- lastExecute = +new Date();
616
- // noinspection JSUnresolvedFunction
617
- callback.call(instance, event);
618
- }
619
-
620
- timeout && clearTimeout(timeout); // jshint ignore : line
621
-
622
- if (elapsed > delay || !config.enableThrottle || ignoreThrottle) {
623
- run();
624
- }
625
- else {
626
- timeout = setTimeout(run, delay - elapsed);
627
- }
628
- };
629
- }
630
-
631
- /**
632
- * reduce count of awaiting elements to 'afterLoad' event and fire 'onFinishedAll' if reached zero
633
- * @access private
634
- * @return void
635
- */
636
- function _reduceAwaiting() {
637
- --_awaitingAfterLoad;
638
-
639
- // if no items were left trigger finished event
640
- if (!items.length && !_awaitingAfterLoad) {
641
- _triggerCallback('onFinishedAll');
642
- }
643
- }
644
-
645
- /**
646
- * single implementation to handle callbacks, pass element and set 'this' to current instance
647
- * @access private
648
- * @param {string|function} callback
649
- * @param {object} [element]
650
- * @param {*} [args]
651
- * @return {boolean}
652
- */
653
- function _triggerCallback(callback, element, args) {
654
- if ((callback = config[callback])) {
655
- // jQuery's internal '$(arguments).slice(1)' are causing problems at least on old iPads
656
- // below is shorthand of 'Array.prototype.slice.call(arguments, 1)'
657
- callback.apply(instance, [].slice.call(arguments, 1));
658
- return true;
659
- }
660
-
661
- return false;
662
- }
663
-
664
- // if event driven or window is already loaded don't wait for page loading
665
- if (config.bind === 'event' || windowLoaded) {
666
- _initialize();
667
- }
668
-
669
- // otherwise load initial items and start lazy after page load
670
- else {
671
- // noinspection JSUnresolvedVariable
672
- $(window).on(_load + '.' + namespace, _initialize);
673
- }
674
- }
675
-
676
- /**
677
- * lazy plugin class constructor
678
- * @constructor
679
- * @access private
680
- * @param {object} elements
681
- * @param {object} settings
682
- * @return {object|LazyPlugin}
683
- */
684
- function LazyPlugin(elements, settings) {
685
- /**
686
- * this lazy plugin instance
687
- * @access private
688
- * @type {object|LazyPlugin|LazyPlugin.prototype}
689
- */
690
- var _instance = this,
691
-
692
- /**
693
- * this lazy plugin instance configuration
694
- * @access private
695
- * @type {object}
696
- */
697
- _config = $.extend({}, _instance.config, settings),
698
-
699
- /**
700
- * instance generated event executed on container scroll or resize
701
- * packed in an object to be referenceable and short named because properties will not be minified
702
- * @access private
703
- * @type {object}
704
- */
705
- _events = {},
706
-
707
- /**
708
- * unique namespace for instance related events
709
- * @access private
710
- * @type {string}
711
- */
712
- _namespace = _config.name + '-' + (++lazyInstanceId);
713
-
714
- // noinspection JSUndefinedPropertyAssignment
715
- /**
716
- * wrapper to get or set an entry from plugin instance configuration
717
- * much smaller on minify as direct access
718
- * @access public
719
- * @type {function}
720
- * @param {string} entryName
721
- * @param {*} [value]
722
- * @return {LazyPlugin|*}
723
- */
724
- _instance.config = function(entryName, value) {
725
- if (value === undefined) {
726
- return _config[entryName];
727
- }
728
-
729
- _config[entryName] = value;
730
- return _instance;
731
- };
732
-
733
- // noinspection JSUndefinedPropertyAssignment
734
- /**
735
- * add additional items to current instance
736
- * @access public
737
- * @param {Array|object|string} items
738
- * @return {LazyPlugin}
739
- */
740
- _instance.addItems = function(items) {
741
- _events.a && _events.a($.type(items) === 'string' ? $(items) : items); // jshint ignore : line
742
- return _instance;
743
- };
744
-
745
- // noinspection JSUndefinedPropertyAssignment
746
- /**
747
- * get all left items of this instance
748
- * @access public
749
- * @returns {object}
750
- */
751
- _instance.getItems = function() {
752
- return _events.g ? _events.g() : {};
753
- };
754
-
755
- // noinspection JSUndefinedPropertyAssignment
756
- /**
757
- * force lazy to load all items in loadable area right now
758
- * by default without throttle
759
- * @access public
760
- * @type {function}
761
- * @param {boolean} [useThrottle]
762
- * @return {LazyPlugin}
763
- */
764
- _instance.update = function(useThrottle) {
765
- _events.e && _events.e({}, !useThrottle); // jshint ignore : line
766
- return _instance;
767
- };
768
-
769
- // noinspection JSUndefinedPropertyAssignment
770
- /**
771
- * force element(s) to load directly, ignoring the viewport
772
- * @access public
773
- * @param {Array|object|string} items
774
- * @return {LazyPlugin}
775
- */
776
- _instance.force = function(items) {
777
- _events.f && _events.f($.type(items) === 'string' ? $(items) : items); // jshint ignore : line
778
- return _instance;
779
- };
780
-
781
- // noinspection JSUndefinedPropertyAssignment
782
- /**
783
- * force lazy to load all available items right now
784
- * this call ignores throttling
785
- * @access public
786
- * @type {function}
787
- * @return {LazyPlugin}
788
- */
789
- _instance.loadAll = function() {
790
- _events.e && _events.e({all: true}, true); // jshint ignore : line
791
- return _instance;
792
- };
793
-
794
- // noinspection JSUndefinedPropertyAssignment
795
- /**
796
- * destroy this plugin instance
797
- * @access public
798
- * @type {function}
799
- * @return undefined
800
- */
801
- _instance.destroy = function() {
802
- // unbind instance generated events
803
- // noinspection JSUnresolvedFunction, JSUnresolvedVariable
804
- $(_config.appendScroll).off('.' + _namespace, _events.e);
805
- // noinspection JSUnresolvedVariable
806
- $(window).off('.' + _namespace);
807
-
808
- // clear events
809
- _events = {};
810
-
811
- return undefined;
812
- };
813
-
814
- // start using lazy and return all elements to be chainable or instance for further use
815
- // noinspection JSUnresolvedVariable
816
- _executeLazy(_instance, _config, elements, _events, _namespace);
817
- return _config.chainable ? elements : _instance;
818
- }
819
-
820
- /**
821
- * settings and configuration data
822
- * @access public
823
- * @type {object|*}
824
- */
825
- LazyPlugin.prototype.config = {
826
- // general
827
- name : 'lazy',
828
- chainable : true,
829
- autoDestroy : true,
830
- bind : 'load',
831
- threshold : 500,
832
- visibleOnly : false,
833
- appendScroll : window,
834
- scrollDirection : 'both',
835
- imageBase : null,
836
- defaultImage : 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==',
837
- placeholder : null,
838
- delay : -1,
839
- combined : false,
840
-
841
- // attributes
842
- attribute : 'data-src',
843
- srcsetAttribute : 'data-srcset',
844
- sizesAttribute : 'data-sizes',
845
- retinaAttribute : 'data-retina',
846
- loaderAttribute : 'data-loader',
847
- imageBaseAttribute : 'data-imagebase',
848
- removeAttribute : true,
849
- handledName : 'handled',
850
- loadedName : 'loaded',
851
-
852
- // effect
853
- effect : 'show',
854
- effectTime : 0,
855
-
856
- // throttle
857
- enableThrottle : true,
858
- throttle : 250,
859
-
860
- // callbacks
861
- beforeLoad : undefined,
862
- afterLoad : undefined,
863
- onError : undefined,
864
- onFinishedAll : undefined
865
- };
866
-
867
- // register window load event globally to prevent not loading elements
868
- // since jQuery 3.X ready state is fully async and may be executed after 'load'
869
- $(window).on('load', function() {
870
- windowLoaded = true;
871
- });
872
  })(window);
1
+ /*!
2
+ * jQuery & Zepto Lazy - v1.7.10
3
+ * http://jquery.eisbehr.de/lazy/
4
+ *
5
+ * Copyright 2012 - 2018, Daniel 'Eisbehr' Kern
6
+ *
7
+ * Dual licensed under the MIT and GPL-2.0 licenses:
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ * http://www.gnu.org/licenses/gpl-2.0.html
10
+ *
11
+ * $("img.lazy").lazy();
12
+ */
13
+
14
+ ;(function(window, undefined) {
15
+ "use strict";
16
+
17
+ // noinspection JSUnresolvedVariable
18
+ /**
19
+ * library instance - here and not in construct to be shorter in minimization
20
+ * @return void
21
+ */
22
+ var $ = window.jQuery || window.Zepto,
23
+
24
+ /**
25
+ * unique plugin instance id counter
26
+ * @type {number}
27
+ */
28
+ lazyInstanceId = 0,
29
+
30
+ /**
31
+ * helper to register window load for jQuery 3
32
+ * @type {boolean}
33
+ */
34
+ windowLoaded = false;
35
+
36
+ /**
37
+ * make lazy available to jquery - and make it a bit more case-insensitive :)
38
+ * @access public
39
+ * @type {function}
40
+ * @param {object} settings
41
+ * @return {LazyPlugin}
42
+ */
43
+ $.fn.Lazy = $.fn.lazy = function(settings) {
44
+ return new LazyPlugin(this, settings);
45
+ };
46
+
47
+ /**
48
+ * helper to add plugins to lazy prototype configuration
49
+ * @access public
50
+ * @type {function}
51
+ * @param {string|Array} names
52
+ * @param {string|Array|function} [elements]
53
+ * @param {function} loader
54
+ * @return void
55
+ */
56
+ $.Lazy = $.lazy = function(names, elements, loader) {
57
+ // make second parameter optional
58
+ if ($.isFunction(elements)) {
59
+ loader = elements;
60
+ elements = [];
61
+ }
62
+
63
+ // exit here if parameter is not a callable function
64
+ if (!$.isFunction(loader)) {
65
+ return;
66
+ }
67
+
68
+ // make parameters an array of names to be sure
69
+ names = $.isArray(names) ? names : [names];
70
+ elements = $.isArray(elements) ? elements : [elements];
71
+
72
+ var config = LazyPlugin.prototype.config,
73
+ forced = config._f || (config._f = {});
74
+
75
+ // add the loader plugin for every name
76
+ for (var i = 0, l = names.length; i < l; i++) {
77
+ if (config[names[i]] === undefined || $.isFunction(config[names[i]])) {
78
+ config[names[i]] = loader;
79
+ }
80
+ }
81
+
82
+ // add forced elements loader
83
+ for (var c = 0, a = elements.length; c < a; c++) {
84
+ forced[elements[c]] = names[0];
85
+ }
86
+ };
87
+
88
+ /**
89
+ * contains all logic and the whole element handling
90
+ * is packed in a private function outside class to reduce memory usage, because it will not be created on every plugin instance
91
+ * @access private
92
+ * @type {function}
93
+ * @param {LazyPlugin} instance
94
+ * @param {object} config
95
+ * @param {object|Array} items
96
+ * @param {object} events
97
+ * @param {string} namespace
98
+ * @return void
99
+ */
100
+ function _executeLazy(instance, config, items, events, namespace) {
101
+ /**
102
+ * a helper to trigger the 'onFinishedAll' callback after all other events
103
+ * @access private
104
+ * @type {number}
105
+ */
106
+ var _awaitingAfterLoad = 0,
107
+
108
+ /**
109
+ * visible content width
110
+ * @access private
111
+ * @type {number}
112
+ */
113
+ _actualWidth = -1,
114
+
115
+ /**
116
+ * visible content height
117
+ * @access private
118
+ * @type {number}
119
+ */
120
+ _actualHeight = -1,
121
+
122
+ /**
123
+ * determine possibly detected high pixel density
124
+ * @access private
125
+ * @type {boolean}
126
+ */
127
+ _isRetinaDisplay = false,
128
+
129
+ /**
130
+ * dictionary entry for better minimization
131
+ * @access private
132
+ * @type {string}
133
+ */
134
+ _afterLoad = 'afterLoad',
135
+
136
+ /**
137
+ * dictionary entry for better minimization
138
+ * @access private
139
+ * @type {string}
140
+ */
141
+ _load = 'load',
142
+
143
+ /**
144
+ * dictionary entry for better minimization
145
+ * @access private
146
+ * @type {string}
147
+ */
148
+ _error = 'error',
149
+
150
+ /**
151
+ * dictionary entry for better minimization
152
+ * @access private
153
+ * @type {string}
154
+ */
155
+ _img = 'img',
156
+
157
+ /**
158
+ * dictionary entry for better minimization
159
+ * @access private
160
+ * @type {string}
161
+ */
162
+ _src = 'src',
163
+
164
+ /**
165
+ * dictionary entry for better minimization
166
+ * @access private
167
+ * @type {string}
168
+ */
169
+ _srcset = 'srcset',
170
+
171
+ /**
172
+ * dictionary entry for better minimization
173
+ * @access private
174
+ * @type {string}
175
+ */
176
+ _sizes = 'sizes',
177
+
178
+ /**
179
+ * dictionary entry for better minimization
180
+ * @access private
181
+ * @type {string}
182
+ */
183
+ _backgroundImage = 'background-image';
184
+
185
+ /**
186
+ * initialize plugin
187
+ * bind loading to events or set delay time to load all items at once
188
+ * @access private
189
+ * @return void
190
+ */
191
+ function _initialize() {
192
+ // detect actual device pixel ratio
193
+ // noinspection JSUnresolvedVariable
194
+ _isRetinaDisplay = window.devicePixelRatio > 1;
195
+
196
+ // prepare all initial items
197
+ items = _prepareItems(items);
198
+
199
+ // if delay time is set load all items at once after delay time
200
+ if (config.delay >= 0) {
201
+ setTimeout(function() {
202
+ _lazyLoadItems(true);
203
+ }, config.delay);
204
+ }
205
+
206
+ // if no delay is set or combine usage is active bind events
207
+ if (config.delay < 0 || config.combined) {
208
+ // create unique event function
209
+ events.e = _throttle(config.throttle, function(event) {
210
+ // reset detected window size on resize event
211
+ if (event.type === 'resize') {
212
+ _actualWidth = _actualHeight = -1;
213
+ }
214
+
215
+ // execute 'lazy magic'
216
+ _lazyLoadItems(event.all);
217
+ });
218
+
219
+ // create function to add new items to instance
220
+ events.a = function(additionalItems) {
221
+ additionalItems = _prepareItems(additionalItems);
222
+ items.push.apply(items, additionalItems);
223
+ };
224
+
225
+ // create function to get all instance items left
226
+ events.g = function() {
227
+ // filter loaded items before return in case internal filter was not running until now
228
+ return (items = $(items).filter(function() {
229
+ return !$(this).data(config.loadedName);
230
+ }));
231
+ };
232
+
233
+ // create function to force loading elements
234
+ events.f = function(forcedItems) {
235
+ for (var i = 0; i < forcedItems.length; i++) {
236
+ // only handle item if available in current instance
237
+ // use a compare function, because Zepto can't handle object parameter for filter
238
+ // var item = items.filter(forcedItems[i]);
239
+ /* jshint loopfunc: true */
240
+ var item = items.filter(function() {
241
+ return this === forcedItems[i];
242
+ });
243
+
244
+ if (item.length) {
245
+ _lazyLoadItems(false, item);
246
+ }
247
+ }
248
+ };
249
+
250
+ // load initial items
251
+ _lazyLoadItems();
252
+
253
+ // bind lazy load functions to scroll and resize event
254
+ // noinspection JSUnresolvedVariable
255
+ $(config.appendScroll).on('scroll.' + namespace + ' resize.' + namespace, events.e);
256
+ }
257
+ }
258
+
259
+ /**
260
+ * prepare items before handle them
261
+ * @access private
262
+ * @param {Array|object|jQuery} items
263
+ * @return {Array|object|jQuery}
264
+ */
265
+ function _prepareItems(items) {
266
+ // fetch used configurations before loops
267
+ var defaultImage = config.defaultImage,
268
+ placeholder = config.placeholder,
269
+ imageBase = config.imageBase,
270
+ srcsetAttribute = config.srcsetAttribute,
271
+ loaderAttribute = config.loaderAttribute,
272
+ forcedTags = config._f || {};
273
+
274
+ // filter items and only add those who not handled yet and got needed attributes available
275
+ items = $(items).filter(function() {
276
+ var element = $(this),
277
+ tag = _getElementTagName(this);
278
+
279
+ return !element.data(config.handledName) &&
280
+ (element.attr(config.attribute) || element.attr(srcsetAttribute) || element.attr(loaderAttribute) || forcedTags[tag] !== undefined);
281
+ })
282
+
283
+ // append plugin instance to all elements
284
+ .data('plugin_' + config.name, instance);
285
+
286
+ for (var i = 0, l = items.length; i < l; i++) {
287
+ var element = $(items[i]),
288
+ tag = _getElementTagName(items[i]),
289
+ elementImageBase = element.attr(config.imageBaseAttribute) || imageBase;
290
+
291
+ // generate and update source set if an image base is set
292
+ if (tag === _img && elementImageBase && element.attr(srcsetAttribute)) {
293
+ element.attr(srcsetAttribute, _getCorrectedSrcSet(element.attr(srcsetAttribute), elementImageBase));
294
+ }
295
+
296
+ // add loader to forced element types
297
+ if (forcedTags[tag] !== undefined && !element.attr(loaderAttribute)) {
298
+ element.attr(loaderAttribute, forcedTags[tag]);
299
+ }
300
+
301
+ // set default image on every element without source
302
+ if (tag === _img && defaultImage && !element.attr(_src)) {
303
+ element.attr(_src, defaultImage);
304
+ }
305
+
306
+ // set placeholder on every element without background image
307
+ else if (tag !== _img && placeholder && (!element.css(_backgroundImage) || element.css(_backgroundImage) === 'none')) {
308
+ element.css(_backgroundImage, "url('" + placeholder + "')");
309
+ }
310
+ }
311
+
312
+ return items;
313
+ }
314
+
315
+ /**
316
+ * the 'lazy magic' - check all items
317
+ * @access private
318
+ * @param {boolean} [allItems]
319
+ * @param {object} [forced]
320
+ * @return void
321
+ */
322
+ function _lazyLoadItems(allItems, forced) {
323
+ // skip if no items where left
324
+ if (!items.length) {
325
+ // destroy instance if option is enabled
326
+ if (config.autoDestroy) {
327
+ // noinspection JSUnresolvedFunction
328
+ instance.destroy();
329
+ }
330
+
331
+ return;
332
+ }
333
+
334
+ var elements = forced || items,
335
+ loadTriggered = false,
336
+ imageBase = config.imageBase || '',
337
+ srcsetAttribute = config.srcsetAttribute,
338
+ handledName = config.handledName;
339
+
340
+ // loop all available items
341
+ for (var i = 0; i < elements.length; i++) {
342
+ // item is at least in loadable area
343
+ if (allItems || forced || _isInLoadableArea(elements[i])) {
344
+ var element = $(elements[i]),
345
+ tag = _getElementTagName(elements[i]),
346
+ attribute = element.attr(config.attribute),
347
+ elementImageBase = element.attr(config.imageBaseAttribute) || imageBase,
348
+ customLoader = element.attr(config.loaderAttribute);
349
+
350
+ // is not already handled
351
+ if (!element.data(handledName) &&
352
+ // and is visible or visibility doesn't matter
353
+ (!config.visibleOnly || element.is(':visible')) && (
354
+ // and image source or source set attribute is available
355
+ (attribute || element.attr(srcsetAttribute)) && (
356
+ // and is image tag where attribute is not equal source or source set
357
+ (tag === _img && (elementImageBase + attribute !== element.attr(_src) || element.attr(srcsetAttribute) !== element.attr(_srcset))) ||
358
+ // or is non image tag where attribute is not equal background
359
+ (tag !== _img && elementImageBase + attribute !== element.css(_backgroundImage))
360
+ ) ||
361
+ // or custom loader is available
362
+ customLoader))
363
+ {
364
+ // mark element always as handled as this point to prevent double handling
365
+ loadTriggered = true;
366
+ element.data(handledName, true);
367
+
368
+ // load item
369
+ _handleItem(element, tag, elementImageBase, customLoader);
370
+ }
371
+ }
372
+ }
373
+
374
+ // when something was loaded remove them from remaining items
375
+ if (loadTriggered) {
376
+ items = $(items).filter(function() {
377
+ return !$(this).data(handledName);
378
+ });
379
+ }
380
+ }
381
+
382
+ /**
383
+ * load the given element the lazy way
384
+ * @access private
385
+ * @param {object} element
386
+ * @param {string} tag
387
+ * @param {string} imageBase
388
+ * @param {function} [customLoader]
389
+ * @return void
390
+ */
391
+ function _handleItem(element, tag, imageBase, customLoader) {
392
+ // increment count of items waiting for after load
393
+ ++_awaitingAfterLoad;
394
+
395
+ // extended error callback for correct 'onFinishedAll' handling
396
+ var errorCallback = function() {
397
+ _triggerCallback('onError', element);
398
+ _reduceAwaiting();
399
+
400
+ // prevent further callback calls
401
+ errorCallback = $.noop;
402
+ };
403
+
404
+ // trigger function before loading image
405
+ _triggerCallback('beforeLoad', element);
406
+
407
+ // fetch all double used data here for better code minimization
408
+ var srcAttribute = config.attribute,
409
+ srcsetAttribute = config.srcsetAttribute,
410
+ sizesAttribute = config.sizesAttribute,
411
+ retinaAttribute = config.retinaAttribute,
412
+ removeAttribute = config.removeAttribute,
413
+ loadedName = config.loadedName,
414
+ elementRetina = element.attr(retinaAttribute);
415
+
416
+ // handle custom loader
417
+ if (customLoader) {
418
+ // on load callback
419
+ var loadCallback = function() {
420
+ // remove attribute from element
421
+ if (removeAttribute) {
422
+ element.removeAttr(config.loaderAttribute);
423
+ }
424
+
425
+ // mark element as loaded
426
+ element.data(loadedName, true);
427
+
428
+ // call after load event
429
+ _triggerCallback(_afterLoad, element);
430
+
431
+ // remove item from waiting queue and possibly trigger finished event
432
+ // it's needed to be asynchronous to run after filter was in _lazyLoadItems
433
+ setTimeout(_reduceAwaiting, 1);
434
+
435
+ // prevent further callback calls
436
+ loadCallback = $.noop;
437
+ };
438
+
439
+ // bind error event to trigger callback and reduce waiting amount
440
+ element.off(_error).one(_error, errorCallback)
441
+
442
+ // bind after load callback to element
443
+ .one(_load, loadCallback);
444
+
445
+ // trigger custom loader and handle response
446
+ if (!_triggerCallback(customLoader, element, function(response) {
447
+ if(response) {
448
+ element.off(_load);
449
+ loadCallback();
450
+ }
451
+ else {
452
+ element.off(_error);
453
+ errorCallback();
454
+ }
455
+ })) {
456
+ element.trigger(_error);
457
+ }
458
+ }
459
+
460
+ // handle images
461
+ else {
462
+ // create image object
463
+ var imageObj = $(new Image());
464
+
465
+ // bind error event to trigger callback and reduce waiting amount
466
+ imageObj.one(_error, errorCallback)
467
+
468
+ // bind after load callback to image
469
+ .one(_load, function() {
470
+ // remove element from view
471
+ element.hide();
472
+
473
+ // set image back to element
474
+ // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'
475
+ if (tag === _img) {
476
+ element.attr(_sizes, imageObj.attr(_sizes))
477
+ .attr(_srcset, imageObj.attr(_srcset))
478
+ .attr(_src, imageObj.attr(_src));
479
+ }
480
+ else {
481
+ element.css(_backgroundImage, "url('" + imageObj.attr(_src) + "')");
482
+ }
483
+
484
+ // bring it back with some effect!
485
+ element[config.effect](config.effectTime);
486
+
487
+ // remove attribute from element
488
+ if (removeAttribute) {
489
+ element.removeAttr(srcAttribute + ' ' + srcsetAttribute + ' ' + retinaAttribute + ' ' + config.imageBaseAttribute);
490
+
491
+ // only remove 'sizes' attribute, if it was a custom one
492
+ if (sizesAttribute !== _sizes) {
493
+ element.removeAttr(sizesAttribute);
494
+ }
495
+ }
496
+
497
+ // mark element as loaded
498
+ element.data(loadedName, true);
499
+
500
+ // call after load event
501
+ _triggerCallback(_afterLoad, element);
502
+
503
+ // cleanup image object
504
+ imageObj.remove();
505
+
506
+ // remove item from waiting queue and possibly trigger finished event
507
+ _reduceAwaiting();
508
+ });
509
+
510
+ // set sources
511
+ // do it as single 'attr' calls, to be sure 'src' is set after 'srcset'
512
+ var imageSrc = (_isRetinaDisplay && elementRetina ? elementRetina : element.attr(srcAttribute)) || '';
513
+ imageObj.attr(_sizes, element.attr(sizesAttribute))
514
+ .attr(_srcset, element.attr(srcsetAttribute))
515
+ .attr(_src, imageSrc ? imageBase + imageSrc : null);
516
+
517
+ // call after load even on cached image
518
+ imageObj.complete && imageObj.trigger(_load); // jshint ignore : line
519
+ }
520
+ }
521
+
522
+ /**
523
+ * check if the given element is inside the current viewport or threshold
524
+ * @access private
525
+ * @param {object} element
526
+ * @return {boolean}
527
+ */
528
+ function _isInLoadableArea(element) {
529
+ var elementBound = element.getBoundingClientRect(),
530
+ direction = config.scrollDirection,
531
+ threshold = config.threshold,
532
+ vertical = // check if element is in loadable area from top
533
+ ((_getActualHeight() + threshold) > elementBound.top) &&
534
+ // check if element is even in loadable are from bottom
535
+ (-threshold < elementBound.bottom),
536
+ horizontal = // check if element is in loadable area from left
537
+ ((_getActualWidth() + threshold) > elementBound.left) &&
538
+ // check if element is even in loadable area from right
539
+ (-threshold < elementBound.right);
540
+
541
+ if (direction === 'vertical') {
542
+ return vertical;
543
+ }
544
+ else if (direction === 'horizontal') {
545
+ return horizontal;
546
+ }
547
+
548
+ return vertical && horizontal;
549
+ }
550
+
551
+ /**
552
+ * receive the current viewed width of the browser
553
+ * @access private
554
+ * @return {number}
555
+ */
556
+ function _getActualWidth() {
557
+ return _actualWidth >= 0 ? _actualWidth : (_actualWidth = $(window).width());
558
+ }
559
+
560
+ /**
561
+ * receive the current viewed height of the browser
562
+ * @access private
563
+ * @return {number}
564
+ */
565
+ function _getActualHeight() {
566
+ return _actualHeight >= 0 ? _actualHeight : (_actualHeight = $(window).height());
567
+ }
568
+
569
+ /**
570
+ * get lowercase tag name of an element
571
+ * @access private
572
+ * @param {object} element
573
+ * @returns {string}
574
+ */
575
+ function _getElementTagName(element) {
576
+ return element.tagName.toLowerCase();
577
+ }
578
+
579
+ /**
580
+ * prepend image base to all srcset entries
581
+ * @access private
582
+ * @param {string} srcset
583
+ * @param {string} imageBase
584
+ * @returns {string}
585
+ */
586
+ function _getCorrectedSrcSet(srcset, imageBase) {
587
+ if (imageBase) {
588
+ // trim, remove unnecessary spaces and split entries
589
+ var entries = srcset.split(',');
590
+ srcset = '';
591
+
592
+ for (var i = 0, l = entries.length; i < l; i++) {
593
+ srcset += imageBase + entries[i].trim() + (i !== l - 1 ? ',' : '');
594
+ }
595
+ }
596
+
597
+ return srcset;
598
+ }
599
+
600
+ /**
601
+ * helper function to throttle down event triggering
602
+ * @access private
603
+ * @param {number} delay
604
+ * @param {function} callback
605
+ * @return {function}
606
+ */
607
+ function _throttle(delay, callback) {
608
+ var timeout,
609
+ lastExecute = 0;
610
+
611
+ return function(event, ignoreThrottle) {
612
+ var elapsed = +new Date() - lastExecute;
613
+
614
+ function run() {
615
+ lastExecute = +new Date();
616
+ // noinspection JSUnresolvedFunction
617
+ callback.call(instance, event);
618
+ }
619
+
620
+ timeout && clearTimeout(timeout); // jshint ignore : line
621
+
622
+ if (elapsed > delay || !config.enableThrottle || ignoreThrottle) {
623
+ run();
624
+ }
625
+ else {
626
+ timeout = setTimeout(run, delay - elapsed);
627
+ }
628
+ };
629
+ }
630
+
631
+ /**
632
+ * reduce count of awaiting elements to 'afterLoad' event and fire 'onFinishedAll' if reached zero
633
+ * @access private
634
+ * @return void
635
+ */
636
+ function _reduceAwaiting() {
637
+ --_awaitingAfterLoad;
638
+
639
+ // if no items were left trigger finished event
640
+ if (!items.length && !_awaitingAfterLoad) {
641
+ _triggerCallback('onFinishedAll');
642
+ }
643
+ }
644
+
645
+ /**
646
+ * single implementation to handle callbacks, pass element and set 'this' to current instance
647
+ * @access private
648
+ * @param {string|function} callback
649
+ * @param {object} [element]
650
+ * @param {*} [args]
651
+ * @return {boolean}
652
+ */
653
+ function _triggerCallback(callback, element, args) {
654
+ if ((callback = config[callback])) {
655
+ // jQuery's internal '$(arguments).slice(1)' are causing problems at least on old iPads
656
+ // below is shorthand of 'Array.prototype.slice.call(arguments, 1)'
657
+ callback.apply(instance, [].slice.call(arguments, 1));
658
+ return true;
659
+ }
660
+
661
+ return false;
662
+ }
663
+
664
+ // if event driven or window is already loaded don't wait for page loading
665
+ if (config.bind === 'event' || windowLoaded) {
666
+ _initialize();
667
+ }
668
+
669
+ // otherwise load initial items and start lazy after page load
670
+ else {
671
+ // noinspection JSUnresolvedVariable
672
+ $(window).on(_load + '.' + namespace, _initialize);
673
+ }
674
+ }
675
+
676
+ /**
677
+ * lazy plugin class constructor
678
+ * @constructor
679
+ * @access private
680
+ * @param {object} elements
681
+ * @param {object} settings
682
+ * @return {object|LazyPlugin}
683
+ */
684
+ function LazyPlugin(elements, settings) {
685
+ /**
686
+ * this lazy plugin instance
687
+ * @access private
688
+ * @type {object|LazyPlugin|LazyPlugin.prototype}
689
+ */
690
+ var _instance = this,
691
+
692
+ /**
693
+ * this lazy plugin instance configuration
694
+ * @access private
695
+ * @type {object}
696
+ */
697
+ _config = $.extend({}, _instance.config, settings),
698
+
699
+ /**
700
+ * instance generated event executed on container scroll or resize
701
+ * packed in an object to be referenceable and short named because properties will not be minified
702
+ * @access private
703
+ * @type {object}
704
+ */
705
+ _events = {},
706
+
707
+ /**
708
+ * unique namespace for instance related events
709
+ * @access private
710
+ * @type {string}
711
+ */
712
+ _namespace = _config.name + '-' + (++lazyInstanceId);
713
+
714
+ // noinspection JSUndefinedPropertyAssignment
715
+ /**
716
+ * wrapper to get or set an entry from plugin instance configuration
717
+ * much smaller on minify as direct access
718
+ * @access public
719
+ * @type {function}
720
+ * @param {string} entryName
721
+ * @param {*} [value]
722
+ * @return {LazyPlugin|*}
723
+ */
724
+ _instance.config = function(entryName, value) {
725
+ if (value === undefined) {
726
+ return _config[entryName];
727
+ }
728
+
729
+ _config[entryName] = value;
730
+ return _instance;
731
+ };
732
+
733
+ // noinspection JSUndefinedPropertyAssignment
734
+ /**
735
+ * add additional items to current instance
736
+ * @access public
737
+ * @param {Array|object|string} items
738
+ * @return {LazyPlugin}
739
+ */
740
+ _instance.addItems = function(items) {
741
+ _events.a && _events.a($.type(items) === 'string' ? $(items) : items); // jshint ignore : line
742
+ return _instance;
743
+ };
744
+
745
+ // noinspection JSUndefinedPropertyAssignment
746
+ /**
747
+ * get all left items of this instance
748
+ * @access public
749
+ * @returns {object}
750
+ */
751
+ _instance.getItems = function() {
752
+ return _events.g ? _events.g() : {};
753
+ };
754
+
755
+ // noinspection JSUndefinedPropertyAssignment
756
+ /**
757
+ * force lazy to load all items in loadable area right now
758
+ * by default without throttle
759
+ * @access public
760
+ * @type {function}
761
+ * @param {boolean} [useThrottle]
762
+ * @return {LazyPlugin}
763
+ */
764
+ _instance.update = function(useThrottle) {
765
+ _events.e && _events.e({}, !useThrottle); // jshint ignore : line
766
+ return _instance;
767
+ };
768
+
769
+ // noinspection JSUndefinedPropertyAssignment
770
+ /**
771
+ * force element(s) to load directly, ignoring the viewport
772
+ * @access public
773
+ * @param {Array|object|string} items
774
+ * @return {LazyPlugin}
775
+ */
776
+ _instance.force = function(items) {
777
+ _events.f && _events.f($.type(items) === 'string' ? $(items) : items); // jshint ignore : line
778
+ return _instance;
779
+ };
780
+
781
+ // noinspection JSUndefinedPropertyAssignment
782
+ /**
783
+ * force lazy to load all available items right now
784
+ * this call ignores throttling
785
+ * @access public
786
+ * @type {function}
787
+ * @return {LazyPlugin}
788
+ */
789
+ _instance.loadAll = function() {
790
+ _events.e && _events.e({all: true}, true); // jshint ignore : line
791
+ return _instance;
792
+ };
793
+
794
+ // noinspection JSUndefinedPropertyAssignment
795
+ /**
796
+ * destroy this plugin instance
797
+ * @access public
798
+ * @type {function}
799
+ * @return undefined
800
+ */
801
+ _instance.destroy = function() {
802
+ // unbind instance generated events
803
+ // noinspection JSUnresolvedFunction, JSUnresolvedVariable
804
+ $(_config.appendScroll).off('.' + _namespace, _events.e);
805
+ // noinspection JSUnresolvedVariable
806
+ $(window).off('.' + _namespace);
807
+
808
+ // clear events
809
+ _events = {};
810
+
811
+ return undefined;
812
+ };
813
+
814
+ // start using lazy and return all elements to be chainable or instance for further use
815
+ // noinspection JSUnresolvedVariable
816
+ _executeLazy(_instance, _config, elements, _events, _namespace);
817
+ return _config.chainable ? elements : _instance;
818
+ }
819
+
820
+ /**
821
+ * settings and configuration data
822
+ * @access public
823
+ * @type {object|*}
824
+ */
825
+ LazyPlugin.prototype.config = {
826
+ // general
827
+ name : 'lazy',
828
+ chainable : true,
829
+ autoDestroy : true,
830
+ bind : 'load',
831
+ threshold : 500,
832
+ visibleOnly : false,
833
+ appendScroll : window,
834
+ scrollDirection : 'both',
835
+ imageBase : null,
836
+ defaultImage : 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==',
837
+ placeholder : null,
838
+ delay : -1,
839
+ combined : false,
840
+
841
+ // attributes
842
+ attribute : 'data-src',
843
+ srcsetAttribute : 'data-srcset',
844
+ sizesAttribute : 'data-sizes',
845
+ retinaAttribute : 'data-retina',
846
+ loaderAttribute : 'data-loader',
847
+ imageBaseAttribute : 'data-imagebase',
848
+ removeAttribute : true,
849
+ handledName : 'handled',
850
+ loadedName : 'loaded',
851
+
852
+ // effect
853
+ effect : 'show',
854
+ effectTime : 0,
855
+
856
+ // throttle
857
+ enableThrottle : true,
858
+ throttle : 250,
859
+
860
+ // callbacks
861
+ beforeLoad : undefined,
862
+ afterLoad : undefined,
863
+ onError : undefined,
864
+ onFinishedAll : undefined
865
+ };
866
+
867
+ // register window load event globally to prevent not loading elements
868
+ // since jQuery 3.X ready state is fully async and may be executed after 'load'
869
+ $(window).on('load', function() {
870
+ windowLoaded = true;
871
+ });
872
  })(window);
assets/js/jquery.lazy.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /*! jQuery & Zepto Lazy v1.7.10 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */
2
  !function(t,e){"use strict";function r(r,a,i,u,l){function f(){L=t.devicePixelRatio>1,i=c(i),a.delay>=0&&setTimeout(function(){s(!0)},a.delay),(a.delay<0||a.combined)&&(u.e=v(a.throttle,function(t){"resize"===t.type&&(w=B=-1),s(t.all)}),u.a=function(t){t=c(t),i.push.apply(i,t)},u.g=function(){return i=n(i).filter(function(){return!n(this).data(a.loadedName)})},u.f=function(t){for(var e=0;e<t.length;e++){var r=i.filter(function(){return this===t[e]});r.length&&s(!1,r)}},s(),n(a.appendScroll).on("scroll."+l+" resize."+l,u.e))}function c(t){var i=a.defaultImage,o=a.placeholder,u=a.imageBase,l=a.srcsetAttribute,f=a.loaderAttribute,c=a._f||{};t=n(t).filter(function(){var t=n(this),r=m(this);return!t.data(a.handledName)&&(t.attr(a.attribute)||t.attr(l)||t.attr(f)||c[r]!==e)}).data("plugin_"+a.name,r);for(var s=0,d=t.length;s<d;s++){var A=n(t[s]),g=m(t[s]),h=A.attr(a.imageBaseAttribute)||u;g===N&&h&&A.attr(l)&&A.attr(l,b(A.attr(l),h)),c[g]===e||A.attr(f)||A.attr(f,c[g]),g===N&&i&&!A.attr(E)?A.attr(E,i):g===N||!o||A.css(O)&&"none"!==A.css(O)||A.css(O,"url('"+o+"')")}return t}function s(t,e){if(!i.length)return void(a.autoDestroy&&r.destroy());for(var o=e||i,u=!1,l=a.imageBase||"",f=a.srcsetAttribute,c=a.handledName,s=0;s<o.length;s++)if(t||e||A(o[s])){var g=n(o[s]),h=m(o[s]),b=g.attr(a.attribute),v=g.attr(a.imageBaseAttribute)||l,p=g.attr(a.loaderAttribute);g.data(c)||a.visibleOnly&&!g.is(":visible")||!((b||g.attr(f))&&(h===N&&(v+b!==g.attr(E)||g.attr(f)!==g.attr(F))||h!==N&&v+b!==g.css(O))||p)||(u=!0,g.data(c,!0),d(g,h,v,p))}u&&(i=n(i).filter(function(){return!n(this).data(c)}))}function d(t,e,r,i){++z;var o=function(){y("onError",t),p(),o=n.noop};y("beforeLoad",t);var u=a.attribute,l=a.srcsetAttribute,f=a.sizesAttribute,c=a.retinaAttribute,s=a.removeAttribute,d=a.loadedName,A=t.attr(c);if(i){var g=function(){s&&t.removeAttr(a.loaderAttribute),t.data(d,!0),y(T,t),setTimeout(p,1),g=n.noop};t.off(I).one(I,o).one(D,g),y(i,t,function(e){e?(t.off(D),g()):(t.off(I),o())})||t.trigger(I)}else{var h=n(new Image);h.one(I,o).one(D,function(){t.hide(),e===N?t.attr(C,h.attr(C)).attr(F,h.attr(F)).attr(E,h.attr(E)):t.css(O,"url('"+h.attr(E)+"')"),t[a.effect](a.effectTime),s&&(t.removeAttr(u+" "+l+" "+c+" "+a.imageBaseAttribute),f!==C&&t.removeAttr(f)),t.data(d,!0),y(T,t),h.remove(),p()});var m=(L&&A?A:t.attr(u))||"";h.attr(C,t.attr(f)).attr(F,t.attr(l)).attr(E,m?r+m:null),h.complete&&h.trigger(D)}}function A(t){var e=t.getBoundingClientRect(),r=a.scrollDirection,n=a.threshold,i=h()+n>e.top&&-n<e.bottom,o=g()+n>e.left&&-n<e.right;return"vertical"===r?i:"horizontal"===r?o:i&&o}function g(){return w>=0?w:w=n(t).width()}function h(){return B>=0?B:B=n(t).height()}function m(t){return t.tagName.toLowerCase()}function b(t,e){if(e){var r=t.split(",");t="";for(var a=0,n=r.length;a<n;a++)t+=e+r[a].trim()+(a!==n-1?",":"")}return t}function v(t,e){var n,i=0;return function(o,u){function l(){i=+new Date,e.call(r,o)}var f=+new Date-i;n&&clearTimeout(n),f>t||!a.enableThrottle||u?l():n=setTimeout(l,t-f)}}function p(){--z,i.length||z||y("onFinishedAll")}function y(t,e,n){return!!(t=a[t])&&(t.apply(r,[].slice.call(arguments,1)),!0)}var z=0,w=-1,B=-1,L=!1,T="afterLoad",D="load",I="error",N="img",E="src",F="srcset",C="sizes",O="background-image";"event"===a.bind||o?f():n(t).on(D+"."+l,f)}function a(a,o){var u=this,l=n.extend({},u.config,o),f={},c=l.name+"-"+ ++i;return u.config=function(t,r){return r===e?l[t]:(l[t]=r,u)},u.addItems=function(t){return f.a&&f.a("string"===n.type(t)?n(t):t),u},u.getItems=function(){return f.g?f.g():{}},u.update=function(t){return f.e&&f.e({},!t),u},u.force=function(t){return f.f&&f.f("string"===n.type(t)?n(t):t),u},u.loadAll=function(){return f.e&&f.e({all:!0},!0),u},u.destroy=function(){return n(l.appendScroll).off("."+c,f.e),n(t).off("."+c),f={},e},r(u,l,a,f,c),l.chainable?a:u}var n=t.jQuery||t.Zepto,i=0,o=!1;n.fn.Lazy=n.fn.lazy=function(t){return new a(this,t)},n.Lazy=n.lazy=function(t,r,i){if(n.isFunction(r)&&(i=r,r=[]),n.isFunction(i)){t=n.isArray(t)?t:[t],r=n.isArray(r)?r:[r];for(var o=a.prototype.config,u=o._f||(o._f={}),l=0,f=t.length;l<f;l++)(o[t[l]]===e||n.isFunction(o[t[l]]))&&(o[t[l]]=i);for(var c=0,s=r.length;c<s;c++)u[r[c]]=t[0]}},a.prototype.config={name:"lazy",chainable:!0,autoDestroy:!0,bind:"load",threshold:500,visibleOnly:!1,appendScroll:t,scrollDirection:"both",imageBase:null,defaultImage:"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",placeholder:null,delay:-1,combined:!1,attribute:"data-src",srcsetAttribute:"data-srcset",sizesAttribute:"data-sizes",retinaAttribute:"data-retina",loaderAttribute:"data-loader",imageBaseAttribute:"data-imagebase",removeAttribute:!0,handledName:"handled",loadedName:"loaded",effect:"show",effectTime:0,enableThrottle:!0,throttle:250,beforeLoad:e,afterLoad:e,onError:e,onFinishedAll:e},n(t).on("load",function(){o=!0})}(window);
1
+ /*! jQuery & Zepto Lazy v1.7.10 - http://jquery.eisbehr.de/lazy - MIT&GPL-2.0 license - Copyright 2012-2018 Daniel 'Eisbehr' Kern */
2
  !function(t,e){"use strict";function r(r,a,i,u,l){function f(){L=t.devicePixelRatio>1,i=c(i),a.delay>=0&&setTimeout(function(){s(!0)},a.delay),(a.delay<0||a.combined)&&(u.e=v(a.throttle,function(t){"resize"===t.type&&(w=B=-1),s(t.all)}),u.a=function(t){t=c(t),i.push.apply(i,t)},u.g=function(){return i=n(i).filter(function(){return!n(this).data(a.loadedName)})},u.f=function(t){for(var e=0;e<t.length;e++){var r=i.filter(function(){return this===t[e]});r.length&&s(!1,r)}},s(),n(a.appendScroll).on("scroll."+l+" resize."+l,u.e))}function c(t){var i=a.defaultImage,o=a.placeholder,u=a.imageBase,l=a.srcsetAttribute,f=a.loaderAttribute,c=a._f||{};t=n(t).filter(function(){var t=n(this),r=m(this);return!t.data(a.handledName)&&(t.attr(a.attribute)||t.attr(l)||t.attr(f)||c[r]!==e)}).data("plugin_"+a.name,r);for(var s=0,d=t.length;s<d;s++){var A=n(t[s]),g=m(t[s]),h=A.attr(a.imageBaseAttribute)||u;g===N&&h&&A.attr(l)&&A.attr(l,b(A.attr(l),h)),c[g]===e||A.attr(f)||A.attr(f,c[g]),g===N&&i&&!A.attr(E)?A.attr(E,i):g===N||!o||A.css(O)&&"none"!==A.css(O)||A.css(O,"url('"+o+"')")}return t}function s(t,e){if(!i.length)return void(a.autoDestroy&&r.destroy());for(var o=e||i,u=!1,l=a.imageBase||"",f=a.srcsetAttribute,c=a.handledName,s=0;s<o.length;s++)if(t||e||A(o[s])){var g=n(o[s]),h=m(o[s]),b=g.attr(a.attribute),v=g.attr(a.imageBaseAttribute)||l,p=g.attr(a.loaderAttribute);g.data(c)||a.visibleOnly&&!g.is(":visible")||!((b||g.attr(f))&&(h===N&&(v+b!==g.attr(E)||g.attr(f)!==g.attr(F))||h!==N&&v+b!==g.css(O))||p)||(u=!0,g.data(c,!0),d(g,h,v,p))}u&&(i=n(i).filter(function(){return!n(this).data(c)}))}function d(t,e,r,i){++z;var o=function(){y("onError",t),p(),o=n.noop};y("beforeLoad",t);var u=a.attribute,l=a.srcsetAttribute,f=a.sizesAttribute,c=a.retinaAttribute,s=a.removeAttribute,d=a.loadedName,A=t.attr(c);if(i){var g=function(){s&&t.removeAttr(a.loaderAttribute),t.data(d,!0),y(T,t),setTimeout(p,1),g=n.noop};t.off(I).one(I,o).one(D,g),y(i,t,function(e){e?(t.off(D),g()):(t.off(I),o())})||t.trigger(I)}else{var h=n(new Image);h.one(I,o).one(D,function(){t.hide(),e===N?t.attr(C,h.attr(C)).attr(F,h.attr(F)).attr(E,h.attr(E)):t.css(O,"url('"+h.attr(E)+"')"),t[a.effect](a.effectTime),s&&(t.removeAttr(u+" "+l+" "+c+" "+a.imageBaseAttribute),f!==C&&t.removeAttr(f)),t.data(d,!0),y(T,t),h.remove(),p()});var m=(L&&A?A:t.attr(u))||"";h.attr(C,t.attr(f)).attr(F,t.attr(l)).attr(E,m?r+m:null),h.complete&&h.trigger(D)}}function A(t){var e=t.getBoundingClientRect(),r=a.scrollDirection,n=a.threshold,i=h()+n>e.top&&-n<e.bottom,o=g()+n>e.left&&-n<e.right;return"vertical"===r?i:"horizontal"===r?o:i&&o}function g(){return w>=0?w:w=n(t).width()}function h(){return B>=0?B:B=n(t).height()}function m(t){return t.tagName.toLowerCase()}function b(t,e){if(e){var r=t.split(",");t="";for(var a=0,n=r.length;a<n;a++)t+=e+r[a].trim()+(a!==n-1?",":"")}return t}function v(t,e){var n,i=0;return function(o,u){function l(){i=+new Date,e.call(r,o)}var f=+new Date-i;n&&clearTimeout(n),f>t||!a.enableThrottle||u?l():n=setTimeout(l,t-f)}}function p(){--z,i.length||z||y("onFinishedAll")}function y(t,e,n){return!!(t=a[t])&&(t.apply(r,[].slice.call(arguments,1)),!0)}var z=0,w=-1,B=-1,L=!1,T="afterLoad",D="load",I="error",N="img",E="src",F="srcset",C="sizes",O="background-image";"event"===a.bind||o?f():n(t).on(D+"."+l,f)}function a(a,o){var u=this,l=n.extend({},u.config,o),f={},c=l.name+"-"+ ++i;return u.config=function(t,r){return r===e?l[t]:(l[t]=r,u)},u.addItems=function(t){return f.a&&f.a("string"===n.type(t)?n(t):t),u},u.getItems=function(){return f.g?f.g():{}},u.update=function(t){return f.e&&f.e({},!t),u},u.force=function(t){return f.f&&f.f("string"===n.type(t)?n(t):t),u},u.loadAll=function(){return f.e&&f.e({all:!0},!0),u},u.destroy=function(){return n(l.appendScroll).off("."+c,f.e),n(t).off("."+c),f={},e},r(u,l,a,f,c),l.chainable?a:u}var n=t.jQuery||t.Zepto,i=0,o=!1;n.fn.Lazy=n.fn.lazy=function(t){return new a(this,t)},n.Lazy=n.lazy=function(t,r,i){if(n.isFunction(r)&&(i=r,r=[]),n.isFunction(i)){t=n.isArray(t)?t:[t],r=n.isArray(r)?r:[r];for(var o=a.prototype.config,u=o._f||(o._f={}),l=0,f=t.length;l<f;l++)(o[t[l]]===e||n.isFunction(o[t[l]]))&&(o[t[l]]=i);for(var c=0,s=r.length;c<s;c++)u[r[c]]=t[0]}},a.prototype.config={name:"lazy",chainable:!0,autoDestroy:!0,bind:"load",threshold:500,visibleOnly:!1,appendScroll:t,scrollDirection:"both",imageBase:null,defaultImage:"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",placeholder:null,delay:-1,combined:!1,attribute:"data-src",srcsetAttribute:"data-srcset",sizesAttribute:"data-sizes",retinaAttribute:"data-retina",loaderAttribute:"data-loader",imageBaseAttribute:"data-imagebase",removeAttribute:!0,handledName:"handled",loadedName:"loaded",effect:"show",effectTime:0,enableThrottle:!0,throttle:250,beforeLoad:e,afterLoad:e,onError:e,onFinishedAll:e},n(t).on("load",function(){o=!0})}(window);
includes/class-rio-plugin.php CHANGED
@@ -11,11 +11,11 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  * @version 1.0
13
  */
14
- class WRIO_Plugin extends Wbcr_Factory436_Plugin {
15
 
16
  /**
17
  * @see self::app()
18
- * @var Wbcr_Factory436_Plugin
19
  */
20
  private static $app;
21
 
@@ -79,7 +79,7 @@ class WRIO_Plugin extends Wbcr_Factory436_Plugin {
79
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
80
  * классам.
81
  *
82
- * @return \Wbcr_Factory436_Plugin|\WRIO_Plugin
83
  */
84
  public static function app() {
85
  return self::$app;
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  * @version 1.0
13
  */
14
+ class WRIO_Plugin extends Wbcr_Factory439_Plugin {
15
 
16
  /**
17
  * @see self::app()
18
+ * @var Wbcr_Factory439_Plugin
19
  */
20
  private static $app;
21
 
79
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
80
  * классам.
81
  *
82
+ * @return \Wbcr_Factory439_Plugin|\WRIO_Plugin
83
  */
84
  public static function app() {
85
  return self::$app;
includes/classes/class-rio-media-library.php CHANGED
@@ -49,6 +49,7 @@ class WRIO_Media_Library {
49
  // оптимизация при загрузке в медиабиблиотеку
50
  if ( WRIO_Plugin::app()->getPopulateOption( 'auto_optimize_when_upload', false ) ) {
51
  add_filter( 'wp_generate_attachment_metadata', 'WRIO_Media_Library::optimize_after_upload', 10, 2 );
 
52
  }
53
 
54
  // соло оптимизация
@@ -61,6 +62,14 @@ class WRIO_Media_Library {
61
  add_action( 'wbcr/riop/queue_item_saved', [ $this, 'webpSuccess' ] );
62
  }
63
 
 
 
 
 
 
 
 
 
64
 
65
  /**
66
  * Оптимизация при загрузке в медиабиблилтеку
49
  // оптимизация при загрузке в медиабиблиотеку
50
  if ( WRIO_Plugin::app()->getPopulateOption( 'auto_optimize_when_upload', false ) ) {
51
  add_filter( 'wp_generate_attachment_metadata', 'WRIO_Media_Library::optimize_after_upload', 10, 2 );
52
+ add_action( 'wr2x_retina_file_added', 'WRIO_Media_Library::optimize_after_retina_2x_add', 10, 2 );
53
  }
54
 
55
  // соло оптимизация
62
  add_action( 'wbcr/riop/queue_item_saved', [ $this, 'webpSuccess' ] );
63
  }
64
 
65
+ /**
66
+ * @param int $attachment_id
67
+ * @param string $retina_file
68
+ */
69
+ public static function optimize_after_retina_2x_add( $attachment_id, $retina_file ) {
70
+ $metadata = get_post_meta( $attachment_id );
71
+ self::optimize_after_upload( $metadata, $attachment_id );
72
+ }
73
 
74
  /**
75
  * Оптимизация при загрузке в медиабиблилтеку
includes/classes/class-rio-views.php CHANGED
@@ -63,11 +63,11 @@ class WRIO_Views {
63
  *
64
  * @param string $template The template name.
65
  * @param mixed $data Some data to pass to the template.
66
- * @param Wbcr_FactoryClearfy227_PageBase $page
67
  *
68
  * @return bool|string The page contents. False if the template doesn't exist.
69
  */
70
- public function get_template( $template, $data = [], Wbcr_FactoryClearfy227_PageBase $page = null ) {
71
  $template = str_replace( '_', '-', $template );
72
  $path = $this->plugin_dir . '/views/' . $template . '.php';
73
 
@@ -92,9 +92,9 @@ class WRIO_Views {
92
  *
93
  * @param string $template The template name.
94
  * @param mixed $data Some data to pass to the template.
95
- * @param Wbcr_FactoryClearfy227_PageBase $page
96
  */
97
- public function print_template( $template, $data = [], Wbcr_FactoryClearfy227_PageBase $page = null ) {
98
  echo $this->get_template( $template, $data, $page );
99
  }
100
  }
63
  *
64
  * @param string $template The template name.
65
  * @param mixed $data Some data to pass to the template.
66
+ * @param Wbcr_FactoryClearfy230_PageBase $page
67
  *
68
  * @return bool|string The page contents. False if the template doesn't exist.
69
  */
70
+ public function get_template( $template, $data = [], Wbcr_FactoryClearfy230_PageBase $page = null ) {
71
  $template = str_replace( '_', '-', $template );
72
  $path = $this->plugin_dir . '/views/' . $template . '.php';
73
 
92
  *
93
  * @param string $template The template name.
94
  * @param mixed $data Some data to pass to the template.
95
+ * @param Wbcr_FactoryClearfy230_PageBase $page
96
  */
97
+ public function print_template( $template, $data = [], Wbcr_FactoryClearfy230_PageBase $page = null ) {
98
  echo $this->get_template( $template, $data, $page );
99
  }
100
  }
includes/classes/processors/class-rio-server-clearfy1.php DELETED
@@ -1,266 +0,0 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) {
5
- exit;
6
- }
7
-
8
- /**
9
- * Класс для оптимизации изображений через API сервиса clearfy.pro.
10
- *
11
- * @author Eugene Jokerov <jokerov@gmail.com>
12
- * @copyright (c) 2018, Webcraftic
13
- * @version 1.0
14
- */
15
- class WIO_Image_Processor_Clearfy1 extends WIO_Image_Processor_Abstract {
16
-
17
- /**
18
- * @var string
19
- */
20
- protected $api_url;
21
-
22
- /**
23
- * @var string Имя сервера
24
- */
25
- protected $server_name = 'server_4';
26
-
27
- public function __construct() {
28
- $this->api_url = wrio_get_server_url( 'server_4' );
29
- }
30
-
31
- /**
32
- * Оптимизация изображения
33
- *
34
- * @param array $params входные параметры оптимизации изображения
35
- *
36
- * @return array|WP_Error {
37
- * Результаты оптимизации
38
- *
39
- * {type} string $optimized_img_url УРЛ оптимизированного изображения на сервере оптимизации
40
- * {type} int $src_size размер исходного изображения в байтах
41
- * {type} int $optimized_size размер оптимизированного изображения в байтах
42
- * {type} int $optimized_percent На сколько процентов уменьшилось изображение
43
- * {type} string $session_id Идентификатор сессии. Для отложенной оптимизации.
44
- * {type} string $file_id Идентификатор файла. Для отложенной оптимизации.
45
- * {type} bool $not_need_replace Изображение не надо заменять.
46
- * {type} bool $not_need_download Изображение не надо скачивать.
47
- * {type} string $status Статус оптимизации
48
- * {type} string $server Имя сервера оптимизации
49
- * }
50
- */
51
- public function process( $settings ) {
52
-
53
- $default_params = [
54
- 'image_url' => '',
55
- 'quality' => 100,
56
- 'save_exif' => false,
57
- ];
58
- $settings = wp_parse_args( $settings, $default_params );
59
-
60
- $session_id = $this->generateRandomString( 16 );
61
- $file_id = 'o_' . $this->generateRandomString( 28 );
62
- $upload_url = $this->get_endpoint_url( 'upload', $session_id );
63
-
64
- if ( ! function_exists( 'curl_version' ) ) {
65
- return new WP_Error( 'http_request_failed', "For Robin image optimizer to work, you need to install php extension [curl]." );
66
- }
67
-
68
- WRIO_Logger::info( sprintf( "Preparing to upload a file (%s) to a remote server (%s).", $settings['image_path'], $this->server_name ) );
69
-
70
- // todo: need to use wp_remote*, see https://webcraftic.atlassian.net/browse/RIO-71
71
- $filename = $settings['image_path'];
72
-
73
- if ( ! class_exists( 'finfo' ) ) {
74
- WRIO_Logger::error( 'For Robin image optimizer to work, you need to install php extension [php_fileinfo].' );
75
-
76
- return new WP_Error( 'http_request_failed', "For Robin image optimizer to work, you need to install php extension [php_fileinfo]." );
77
- }
78
-
79
- $finfo = new \finfo( FILEINFO_MIME_TYPE );
80
- $mimetype = $finfo->file( $filename );
81
-
82
- $ch = curl_init( $upload_url );
83
- $cfile = curl_file_create( $filename, $mimetype, basename( $filename ) );
84
- $data = [ 'file' => $cfile, 'name' => basename( $filename ), 'id' => $file_id ];
85
-
86
- curl_setopt( $ch, CURLOPT_POST, 1 );
87
- curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
88
- //curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
89
- curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
90
-
91
- $response = curl_exec( $ch );
92
- $r = curl_getinfo( $ch );
93
-
94
- if ( $r["http_code"] != 200 ) {
95
- WRIO_Logger::error( sprintf( 'Failed to get content of URL: %s as wp_remote_request() responded Http error (%s).', $upload_url, $r["http_code"] ) );
96
-
97
- return new WP_Error( 'http_request_failed', sprintf( "Server responded an Http error %s", $r["http_code"] ) );
98
- }
99
-
100
- $compress_url = $this->get_endpoint_url( 'compress', $session_id, $file_id, [ 'quality' => $settings['quality'] ] );
101
- $compress_response = $this->request( 'GET', $compress_url );
102
-
103
- if ( is_wp_error( $compress_response ) ) {
104
- return $compress_response;
105
- }
106
-
107
- WRIO_Logger::info( sprintf( "File successfully uploaded to remote server (%s).", $this->server_name ) );
108
-
109
- $optimized_image_data = [
110
- 'optimized_img_url' => '',
111
- 'src_size' => 0,
112
- 'optimized_size' => 0,
113
- 'optimized_percent' => 0,
114
- 'session_id' => $session_id,
115
- 'file_id' => $file_id,
116
- 'not_need_replace' => true,
117
- 'not_need_download' => true,
118
- 'status' => 'processing', // отложенная оптимизация
119
- 'server' => $this->server_name,
120
- ];
121
-
122
- return $optimized_image_data;
123
- }
124
-
125
-
126
- /**
127
- * Проверка отложенной оптимизации изображения
128
- *
129
- * @param array $optimized_data {
130
- * Параметры отложенной оптимизации
131
- *
132
- * {type} string $server Имя сервера оптимизации
133
- * {type} string $session_id Идентификатор сессии
134
- * {type} string $file_id Уникальный идентификатор файла. Генерируется сервером оптимизации.
135
- * }
136
- *
137
- * @return bool|array
138
- */
139
- public function checkDeferredOptimization( $optimized_data ) {
140
-
141
- $status_url = $this->get_endpoint_url( 'status', $optimized_data['session_id'], $optimized_data['file_id'] );
142
- $response = $this->request( 'GET', $status_url );
143
-
144
- if ( is_wp_error( $response ) ) {
145
- return false;
146
- }
147
-
148
- $response = @json_decode( $response );
149
-
150
- if ( isset( $response->compress_progress ) && $response->compress_progress == 100 ) {
151
- $optimized_url = $this->api_url . $response->compressed_url;
152
-
153
- return $optimized_url;
154
- }
155
-
156
- return false;
157
- }
158
-
159
- /**
160
- * Проверка данных для отложенной оптимизации
161
- * Проверяет наличие необходимых параметров и соответствие серверу
162
- *
163
- * @param array $optimized_data {
164
- * Параметры отложенной оптимизации
165
- *
166
- * {type} string $server Имя сервера оптимизации
167
- * {type} string $session_id Идентификатор сессии
168
- * {type} string $file_id Уникальный идентификатор файла. Генерируется сервером оптимизации.
169
- * }
170
- *
171
- * @return bool
172
- */
173
- public function validateDeferredData( $optimized_data ) {
174
- if ( ! isset( $optimized_data['server'] ) ) {
175
- return false;
176
- }
177
- if ( $optimized_data['server'] != $this->server_name ) {
178
- return false;
179
- }
180
- if ( ! isset( $optimized_data['session_id'] ) or ! isset( $optimized_data['file_id'] ) ) {
181
- return false;
182
- }
183
-
184
- return true;
185
- }
186
-
187
- /**
188
- * Качество изображения
189
- * Метод конвертирует качество из настроек плагина в формат сервиса resmush
190
- *
191
- * @param mixed $quality качество
192
- *
193
- * @return int
194
- */
195
- public function quality( $quality = 100 ) {
196
- if ( is_numeric( $quality ) ) {
197
- if ( $quality >= 1 && $quality <= 100 ) {
198
- return $quality;
199
- }
200
- }
201
- if ( $quality == 'normal' ) {
202
- return 90;
203
- }
204
- if ( $quality == 'aggresive' ) {
205
- return 75;
206
- }
207
- if ( $quality == 'ultra' ) {
208
- return 50;
209
- }
210
-
211
- return 100;
212
- }
213
-
214
- /**
215
- * Генерирует случайную строку указанной длины
216
- *
217
- * @param int $length Длина строки
218
- *
219
- * @return string
220
- */
221
- public function generateRandomString( $length = 10 ) {
222
- $characters = '0123456789abcdefghiklmnopqrstuvwxyz';
223
- $charactersLength = strlen( $characters );
224
- $randomString = '';
225
- for ( $i = 0; $i < $length; $i ++ ) {
226
- $randomString .= $characters[ rand( 0, $charactersLength - 1 ) ];
227
- }
228
-
229
- return $randomString;
230
- }
231
-
232
- /**
233
- * Использует ли сервер отложенную оптимизацию
234
- *
235
- * @return bool
236
- */
237
- public function isDeferred() {
238
- return true;
239
- }
240
-
241
- /**
242
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
243
- * @since 1.1
244
- *
245
- * @param string $file_id
246
- * @param array $agrs
247
- *
248
- * @param string $ednpoint
249
- * @param string $session_id
250
- *
251
- * @return string|null
252
- */
253
- private function get_endpoint_url( $ednpoint, $session_id, $file_id = null, array $agrs = [] ) {
254
- $url = $this->api_url . '/' . $ednpoint . '/' . $session_id;
255
-
256
- if ( ! empty( $file_id ) ) {
257
- $url .= '/' . $file_id;
258
- }
259
-
260
- $parse_args = wp_parse_args( $agrs, [
261
- 'rnd' => '0.' . rand( 11111111, 99999999 )
262
- ] );
263
-
264
- return add_query_arg( $parse_args, $url );
265
- }
266
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/classes/processors/class-rio-server-resmush.php CHANGED
@@ -67,7 +67,7 @@ class WIO_Image_Processor_Resmush extends WIO_Image_Processor_Abstract {
67
  $boundary = wp_generate_password( 24 ); // Just a random string, use something better than wp_generate_password() though.
68
  $headers = array(
69
  'content-type' => 'multipart/form-data; boundary=' . $boundary,
70
- 'user-agent' => "WordPress $wp_version/Robin Image Optimizer ROBIN_PLUGIN_VERSION - " . get_bloginfo( 'wpurl' ),
71
  );
72
 
73
  $payload = '';
67
  $boundary = wp_generate_password( 24 ); // Just a random string, use something better than wp_generate_password() though.
68
  $headers = array(
69
  'content-type' => 'multipart/form-data; boundary=' . $boundary,
70
+ 'user-agent' => "WordPress $wp_version/Robin Image Optimizer " . WRIO_Plugin::app()->getPluginVersion() . " - " . get_bloginfo( 'wpurl' ),
71
  );
72
 
73
  $payload = '';
includes/classes/processors/class-rio-server-smushpro.php DELETED
@@ -1,142 +0,0 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) {
5
- exit;
6
- }
7
-
8
- /**
9
- * Класс для оптимизации изображений через API сервиса smushpro.wpmudev.org.
10
- *
11
- * @see https://smushpro.wpmudev.org/
12
- * @author Eugene Jokerov <jokerov@gmail.com>
13
- * @copyright (c) 2018, Webcraftic
14
- * @version 1.0
15
- */
16
- class WIO_Image_Processor_Smushpro extends WIO_Image_Processor_Abstract {
17
-
18
- /**
19
- * @var string
20
- */
21
- protected $api_url = 'smushpro.wpmudev.org/1.0/';
22
-
23
- /**
24
- * @var string Имя сервера
25
- */
26
- protected $server_name = 'server_2';
27
-
28
- /**
29
- * Оптимизация изображения
30
- *
31
- * @param array $settings входные параметры оптимизации изображения
32
- *
33
- * @return array|WP_Error {
34
- * Результаты оптимизации
35
- *
36
- * {type} string $optimized_img_url УРЛ оптимизированного изображения на сервере оптимизации
37
- * {type} int $src_size размер исходного изображения в байтах
38
- * {type} int $optimized_size размер оптимизированного изображения в байтах
39
- * {type} int $optimized_percent На сколько процентов уменьшилось изображение
40
- * {type} bool $not_need_download Изображение не надо скачивать
41
- * }
42
- */
43
- public function process( $settings ) {
44
-
45
- $default_params = [
46
- 'image_url' => '',
47
- 'save_exif' => false,
48
- ];
49
-
50
- $settings = wp_parse_args( $settings, $default_params );
51
-
52
- $headers = [
53
- 'accept' => 'application/json', // The API returns JSON.
54
- 'content-type' => 'application/binary', // Set content type to binary.
55
- ];
56
-
57
- if ( $settings['save_exif'] ) {
58
- $headers['exif'] = 'true';
59
- }
60
-
61
- $file = wp_normalize_path( $settings['image_path'] );
62
-
63
- if ( ! file_exists( $file ) ) {
64
- return new WP_Error( 'http_request_failed', sprintf( "File %s isn't exists.", $file ) );
65
- }
66
-
67
- WRIO_Logger::info( sprintf( "Preparing to upload a file (%s) to a remote server (%s).", $settings['image_path'], $this->server_name ) );
68
-
69
- $use_http = WRIO_Plugin::app()->getPopulateOption( 'use_http' );
70
-
71
- $api_url = ( $use_http ? 'http://' : 'https://' ) . $this->api_url;
72
-
73
- $file_data = file_get_contents( $file );
74
-
75
- $response = $this->request( 'POST', $api_url, $file_data, $headers );
76
-
77
- unset( $file );
78
-
79
- if ( is_wp_error( $response ) ) {
80
- $er_msg = $response->get_error_message();
81
-
82
- // Hostgator Issue.
83
- if ( ! empty( $er_msg ) && strpos( $er_msg, 'SSL CA cert' ) !== false ) {
84
- // Update DB for using http protocol.
85
- WRIO_Plugin::app()->updatePopulateOption( 'use_http', 1 );
86
- }
87
-
88
- unset( $response ); // Free memory.
89
-
90
- // Check for timeout error and suggest to filter timeout.
91
- if ( strpos( $er_msg, 'timed out' ) ) {
92
- return new WP_Error( 'api_error', __( "Skipped due to a timeout error. You can increase the request timeout to make sure Smush has enough time to process larger files.", 'robin-image-optimizer' ) );
93
- }
94
-
95
- // Handle error.
96
- /* translators: %s error message */
97
-
98
- return new WP_Error( 'api_error', sprintf( __( 'Error posting to API: %s', 'robin-image-optimizer' ), $er_msg ) );
99
- }
100
-
101
- $response = @json_decode( $response );
102
-
103
- if ( $response && true === $response->success ) {
104
-
105
- $image_data = isset( $response->data->image ) ? base64_decode( $response->data->image ) : false;
106
-
107
- $optimized_image_data = [
108
- 'optimized_img_url' => $image_data,
109
- 'src_size' => $response->data->before_size,
110
- 'optimized_size' => $response->data->after_size,
111
- 'optimized_percent' => $response->data->compression,
112
- 'not_need_download' => true,
113
- ];
114
-
115
- if ( ! $image_data ) {
116
- $optimized_image_data['not_need_replace'] = true;
117
- }
118
-
119
- WRIO_Logger::info( sprintf( "File successfully uploaded to remote server (%s).", $this->server_name ) );
120
-
121
- unset( $response ); // Free memory.
122
-
123
- return $optimized_image_data;
124
- }
125
-
126
- unset( $response ); // Free memory.
127
-
128
- return new WP_Error( 'api_error', __( "Image couldn't be smushed", 'robin-image-optimizer' ) );
129
- }
130
-
131
- /**
132
- * Качество изображения
133
- * Для этого провайдера оно не применяется
134
- *
135
- * @param mixed $quality качество
136
- *
137
- * @return int
138
- */
139
- public function quality( $quality = 100 ) {
140
- return 100;
141
- }
142
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/classes/processors/class-rio-server-webcraftic.php DELETED
@@ -1,133 +0,0 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) {
5
- exit;
6
- }
7
-
8
- /**
9
- * Класс для оптимизации изображений через API сервиса webcraftic.com.
10
- *
11
- * @author Eugene Jokerov <jokerov@gmail.com>
12
- * @copyright (c) 2018, Webcraftic
13
- * @version 1.0
14
- */
15
- class WIO_Image_Processor_Webcraftic extends WIO_Image_Processor_Abstract {
16
-
17
- /**
18
- * @var string
19
- */
20
- protected $api_url;
21
-
22
- /**
23
- * @var string Имя сервера
24
- */
25
- protected $server_name = 'server_3';
26
-
27
- /**
28
- * Инициализация
29
- *
30
- * @return void
31
- */
32
- public function __construct() {
33
- // Получаем ссылку на сервер 3
34
- $this->api_url = wrio_get_server_url( 'server_3' );
35
- }
36
-
37
- /**
38
- * Оптимизация изображения
39
- *
40
- * @param array $settings входные параметры оптимизации изображения
41
- *
42
- * @return array|WP_Error {
43
- * Результаты оптимизации
44
- *
45
- * {type} string $optimized_img_url УРЛ оптимизированного изображения на сервере оптимизации
46
- * {type} int $src_size размер исходного изображения в байтах
47
- * {type} int $optimized_size размер оптимизированного изображения в байтах
48
- * {type} int $optimized_percent На сколько процентов уменьшилось изображение
49
- * {type} bool $not_need_download Изображение не надо скачивать
50
- * }
51
- */
52
- public function process( $settings ) {
53
-
54
- $default_params = array(
55
- 'image_url' => '',
56
- 'quality' => 100,
57
- 'save_exif' => false,
58
- );
59
-
60
- $settings = wp_parse_args( $settings, $default_params );
61
-
62
- $query_args = array(
63
- 'quality' => $settings['quality'],
64
- );
65
-
66
- if ( ! $settings['save_exif'] ) {
67
- $query_args['strip'] = 'info';
68
- }
69
-
70
- // Create a temporary image with a unique name.
71
- $backup = WIO_Backup::get_instance();
72
- $temp_attachment = $backup->createTempAttachment( $settings['image_path'] );
73
-
74
- if ( is_wp_error( $temp_attachment ) ) {
75
- return new WP_Error( 'create_temp_attachment_error', __( 'It is not possible to create a temporary file. Throw error ' . $temp_attachment->get_error_message(), 'robin-image-optimizer' ) );
76
- }
77
-
78
- WRIO_Logger::info( sprintf( "Preparing to upload a file (%s) to a remote server (%s).", $settings['image_path'], $this->server_name ) );
79
-
80
- $img_url = $temp_attachment['image_url'];
81
-
82
- $img_url = str_replace( array( 'http://', 'https://' ), '', $img_url );
83
- $img_url = add_query_arg( $query_args, $this->api_url . '/' . $img_url );
84
-
85
- $responce = $this->request( 'GET', $img_url );
86
-
87
- // Delete temporary image
88
- if ( file_exists( $temp_attachment['image_path'] ) && ! unlink( $temp_attachment['image_path'] ) ) {
89
- WRIO_Logger::error( sprintf( "Failed to delete temporary file %s", $temp_attachment['image_path'] ) );
90
- }
91
-
92
- if ( is_wp_error( $responce ) ) {
93
- return $responce;
94
- }
95
-
96
- WRIO_Logger::info( sprintf( "File successfully uploaded to remote server (%s).", $this->server_name ) );
97
-
98
- return array(
99
- 'optimized_img_url' => $responce,
100
- 'src_size' => 0,
101
- 'optimized_size' => 0,
102
- 'optimized_percent' => 0,
103
- 'not_need_download' => true,
104
- );
105
- }
106
-
107
- /**
108
- * Качество изображения
109
- * Метод конвертирует качество из настроек плагина в формат сервиса resmush
110
- *
111
- * @param mixed $quality качество
112
- *
113
- * @return int
114
- */
115
- public function quality( $quality = 100 ) {
116
- if ( is_numeric( $quality ) ) {
117
- if ( $quality >= 1 && $quality <= 100 ) {
118
- return $quality;
119
- }
120
- }
121
- if ( $quality == 'normal' ) {
122
- return 90;
123
- }
124
- if ( $quality == 'aggresive' ) {
125
- return 75;
126
- }
127
- if ( $quality == 'ultra' ) {
128
- return 50;
129
- }
130
-
131
- return 100;
132
- }
133
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/functions.php CHANGED
@@ -17,9 +17,9 @@ use WRIO\Paths\phpUri;
17
  function wrio_doing_rest_api() {
18
  $prefix = rest_get_url_prefix();
19
  $rest_route = WRIO_Plugin::app()->request->get( 'rest_route', null );
20
- if ( defined( 'REST_REQUEST' ) && REST_REQUEST // (#1)
21
- || ! is_null( $rest_route ) // (#2)
22
- && strpos( trim( $rest_route, '\\/' ), $prefix, 0 ) === 0 ) {
23
  return true;
24
  }
25
 
17
  function wrio_doing_rest_api() {
18
  $prefix = rest_get_url_prefix();
19
  $rest_route = WRIO_Plugin::app()->request->get( 'rest_route', null );
20
+ if ( (defined( 'REST_REQUEST' ) && REST_REQUEST) // (#1)
21
+ || ( ! is_null( $rest_route ) // (#2)
22
+ && strpos( trim( $rest_route, '\\/' ), $prefix, 0 ) === 0) ) {
23
  return true;
24
  }
25
 
languages/robin-image-optimizer-ru_RU.mo CHANGED
Binary file
languages/robin-image-optimizer-ru_RU.po CHANGED
@@ -1,1234 +1,1030 @@
1
- #
2
- # Alexander Parfilov <alexparfilov@gmail.com>, 2018.
3
- #
4
- msgid ""
5
- msgstr ""
6
- "Project-Id-Version: Image optimizer\n"
7
- "Report-Msgid-Bugs-To: \n"
8
- "POT-Creation-Date: 2020-07-14 09:20+0000\n"
9
- "PO-Revision-Date: 2020-07-14 09:21+0000\n"
10
- "Last-Translator: \n"
11
- "Language-Team: Русский\n"
12
- "Language: ru_RU\n"
13
- "MIME-Version: 1.0\n"
14
- "Content-Type: text/plain; charset=UTF-8\n"
15
- "Content-Transfer-Encoding: 8bit\n"
16
- "X-Generator: Loco https://localise.biz/\n"
17
- "X-Poedit-Basepath: ..\n"
18
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
19
- "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
- "X-Poedit-SourceCharset: UTF-8\n"
21
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
22
- "X-Poedit-SearchPath-0: .\n"
23
- "X-Poedit-SearchPathExcluded-0: libs\n"
24
- "X-Poedit-SearchPathExcluded-1: .git\n"
25
- "X-Loco-Version: 2.4.0; wp-5.4.2"
26
-
27
- #. Name of the plugin
28
- #: robin-image-optimizer.php:33
29
- msgid "Webcraftic Robin image optimizer"
30
- msgstr ""
31
-
32
- #: admin/boot.php:229
33
- msgid "ROBIN IMAGE OPTIMIZER PRO"
34
- msgstr ""
35
-
36
- #: admin/boot.php:245
37
- msgid "Automatic convertation in Webp"
38
- msgstr ""
39
-
40
- #: admin/boot.php:246
41
- msgid "You can optimize custom folders"
42
- msgstr ""
43
-
44
- #: admin/boot.php:247
45
- msgid "Support Nextgen gallery"
46
- msgstr ""
47
-
48
- #: admin/boot.php:248
49
- msgid "Multisite support"
50
- msgstr ""
51
-
52
- #: admin/boot.php:249
53
- msgid "Fast optimization servers"
54
- msgstr ""
55
-
56
- #: admin/boot.php:250
57
- msgid "No ads"
58
- msgstr ""
59
-
60
- #: admin/boot.php:251
61
- msgid "Best support"
62
- msgstr ""
63
-
64
- #: admin/boot.php:274
65
- #, php-format
66
- msgid ""
67
- "<a href=\"%s\">License activation</a> required. A license is required to get "
68
- "premium plugin updates, as well as to get additional services."
69
- msgstr ""
70
-
71
- #: admin/boot.php:276
72
- #, php-format
73
- msgid ""
74
- "Your <a href=\"%s\">license</a> has expired. You can no longer get premium "
75
- "plugin updates, premium support and your access to Webcraftic services has "
76
- "been suspended."
77
- msgstr ""
78
-
79
- #: includes/functions.php:475
80
- #, php-format
81
- msgid ""
82
- "There were big changes in database schema. Please <a href=\"#\" id=\"wbcr-"
83
- "wio-meta-migration-action\" class=\"button button-default\" data-"
84
- "nonce=\"%s\">click here</a> to upgrade it to the latest version"
85
- msgstr ""
86
-
87
- #: views/clearfy-component-card.php:37 admin/pages/class-rio-license.php:49
88
- msgid "License"
89
- msgstr ""
90
-
91
- #: views/modal-bulk-optimization.php:2
92
- msgid "What you need to know before starting optimization."
93
- msgstr ""
94
-
95
- #: views/modal-bulk-optimization.php:15
96
- msgid ""
97
- "If you choose to optimize now, you should keep this page open until a bulk "
98
- "optimization is performed. If you leave, the optimization process will stop "
99
- "and you will need to run it again.."
100
- msgstr ""
101
-
102
- #: views/modal-bulk-optimization.php:26
103
- msgid ""
104
- "If you choose to a scheduled optimization, you can leave this page or close "
105
- "the browser. A plugin without your participation will optimize images via "
106
- "cron until it optimizes them all. This optimization method is slower than "
107
- "its alternative, but you don’t have to waste your time on manual "
108
- "optimization."
109
- msgstr ""
110
-
111
- #: views/modal-bulk-optimization.php:37
112
- msgid ""
113
- "Remember that the optimization of a large number of images may take some "
114
- "time depending on your server and network speed."
115
- msgstr ""
116
-
117
- #: views/part-bulk-optimization-button.php:20
118
- #: views/part-bulk-optimization-button.php:27
119
- #: admin/pages/class-rio-statistic.php:264
120
- msgid "Run"
121
- msgstr "Запустить"
122
-
123
- #: views/part-bulk-optimization-button.php:25
124
- #: admin/pages/class-rio-statistic.php:266
125
- msgid "Stop shedule optimization"
126
- msgstr ""
127
-
128
- #: views/part-bulk-optimization-log.php:104
129
- msgid "Optimization log"
130
- msgstr ""
131
-
132
- #: views/part-bulk-optimization-log.php:105
133
- msgid ""
134
- "Optimization log shows the last 100 optimized images. You can check the "
135
- "quality of the image by clicking on the file name."
136
- msgstr ""
137
-
138
- #: views/part-bulk-optimization-log.php:112
139
- msgid "File name"
140
- msgstr ""
141
-
142
- #: views/part-bulk-optimization-log.php:113
143
- msgid "Inital size"
144
- msgstr ""
145
-
146
- #: views/part-bulk-optimization-log.php:114
147
- msgid "Current size"
148
- msgstr ""
149
-
150
- #: views/part-bulk-optimization-log.php:115
151
- msgid "WebP size"
152
- msgstr ""
153
-
154
- #: views/part-bulk-optimization-log.php:116
155
- msgid "Original Saving"
156
- msgstr ""
157
-
158
- #: views/part-bulk-optimization-log.php:118
159
- msgid "Compressed thumbnails"
160
- msgstr ""
161
-
162
- #: views/part-bulk-optimization-log.php:120
163
- msgid "Overall Saving"
164
- msgstr ""
165
-
166
- #: views/part-bulk-optimization-log.php:126
167
- msgid "You don't have optimized images."
168
- msgstr ""
169
-
170
- #: views/part-bulk-optimization-log.php:139
171
- #: views/part-bulk-optimization-statistic.php:50
172
- #: admin/pages/class-rio-statistic.php:251
173
- #: libs/addons/includes/classes/class.folders-list-table.php:236
174
- msgid "Error"
175
- msgstr "Ошибка"
176
-
177
- #: views/part-bulk-optimization-log.php:143
178
- msgid "Unknown error."
179
- msgstr ""
180
-
181
- #: views/part-bulk-optimization-servers.php:13
182
- msgid "Select optimization server:"
183
- msgstr ""
184
-
185
- #: views/part-bulk-optimization-servers.php:14
186
- msgid ""
187
- "Please, find the list of available servers for image optimization below. If "
188
- "the server has a state “Down”, it means that the server is not available, "
189
- "and you should choose another one. “Stable” means that the server is "
190
- "available and you can use it."
191
- msgstr ""
192
-
193
- #: views/part-bulk-optimization-servers.php:21
194
- #: admin/pages/class-rio-settings.php:107
195
- msgid "Server 1 - image size limit up to 5 MB"
196
- msgstr ""
197
-
198
- #: views/part-bulk-optimization-servers.php:24
199
- #: admin/pages/class-rio-settings.php:112
200
- msgid "Server 2 - beta"
201
- msgstr ""
202
-
203
- #: views/part-bulk-optimization-servers.php:27
204
- #: admin/pages/class-rio-settings.php:117
205
- msgid "Premium - no limits"
206
- msgstr ""
207
-
208
- #: views/part-bulk-optimization-servers.php:31
209
- #: libs/addons/views/part-bulk-optimization-table-folders.php:24
210
- msgid "Status"
211
- msgstr ""
212
-
213
- #: views/part-bulk-optimization-servers.php:35
214
- msgid "Credits"
215
- msgstr ""
216
-
217
- #: views/part-bulk-optimization-servers.php:36
218
- msgid "Only original images are limited. Thumbnails are not limited"
219
- msgstr ""
220
-
221
- #: views/part-bulk-optimization-statistic.php:24
222
- msgid "You optimized"
223
- msgstr "Вы оптимизировали"
224
-
225
- #: views/part-bulk-optimization-statistic.php:28
226
- msgid "of your website's images"
227
- msgstr "изображений сайта"
228
-
229
- #: views/part-bulk-optimization-statistic.php:36
230
- #: libs/addons/includes/classes/class.folders-list-table.php:135
231
- #: libs/addons/includes/classes/class.folders-list-table.php:238
232
- msgid "Unoptimized"
233
- msgstr "Не оптимизировано"
234
-
235
- #: views/part-bulk-optimization-statistic.php:43
236
- #: libs/addons/includes/classes/class.folders-list-table.php:132
237
- msgid "Optimized"
238
- msgstr "Оптимизировано"
239
-
240
- #: views/part-bulk-optimization-statistic.php:57
241
- msgid "Statistics"
242
- msgstr "Статистика"
243
-
244
- #: views/part-bulk-optimization-statistic.php:59
245
- msgid "Original size"
246
- msgstr "Оригинальный размер"
247
-
248
- #: views/part-bulk-optimization-statistic.php:67
249
- msgid "Optimized size"
250
- msgstr "Оптимизированный размер"
251
-
252
- #: views/part-bulk-optimization-statistic.php:83
253
- msgid "that's the size you saved <br>by using Image Optimizer"
254
- msgstr ""
255
- "вы сохранили благодаря<br>\n"
256
- "Image Optimizer"
257
-
258
- #: views/part-bulk-optimization-tabs.php:23
259
- msgid "Media library"
260
- msgstr ""
261
-
262
- #: views/part-bulk-optimization-tabs.php:32
263
- msgid "Custom folders"
264
- msgstr ""
265
-
266
- #: views/part-bulk-optimization-tabs.php:42
267
- msgid "Nextgen gallery"
268
- msgstr ""
269
-
270
- #: views/part-settings-page-error-log-options.php:13
271
- msgid ""
272
- "Additional logging levels. Enable these options only when the plugin support "
273
- "service asks for it. If you use logging always, it can slow down your site."
274
- msgstr ""
275
-
276
- #: views/part-settings-page-error-log-options.php:18
277
- msgid "Keep an error log on frontend"
278
- msgstr ""
279
-
280
- #: views/part-settings-page-error-log-options.php:21
281
- msgid ""
282
- "Option enables error logging on frontend. If for some reason webp images are "
283
- "not displayed on the front-end, you can use this option to catch errors and "
284
- "send this report to the plugin support service."
285
- msgstr ""
286
-
287
- #: admin/ajax/bulk-optimization.php:123
288
- msgid ""
289
- "Unknown error. Enable error log on the plugin's settings page, then check "
290
- "the error report on the Error Log page. You can export the error report and "
291
- "send it to the support service of the plugin."
292
- msgstr ""
293
-
294
- #: admin/ajax/bulk-optimization.php:218
295
- msgid "Server name is empty!"
296
- msgstr ""
297
-
298
- #: admin/ajax/logs.php:15
299
- msgid "Failed to clean-up logs. Please try again later."
300
- msgstr ""
301
-
302
- #: admin/ajax/logs.php:21
303
- msgid "Logs clean-up successfully"
304
- msgstr ""
305
-
306
- #: admin/ajax/meta-migrations.php:152
307
- #, php-format
308
- msgid "left to migrate: %s items"
309
- msgstr ""
310
-
311
- #: admin/ajax/meta-migrations.php:163
312
- msgid "Finishing-up..."
313
- msgstr ""
314
-
315
- #: admin/includes/sidebar-widgets.php:24
316
- msgid "Activate Robin image optimizer pro"
317
- msgstr ""
318
-
319
- #: admin/includes/sidebar-widgets.php:28
320
- msgid ""
321
- "Paid license guarantees that you can download and update existing and future "
322
- "paid components of the plugin."
323
- msgstr ""
324
-
325
- #: admin/includes/sidebar-widgets.php:31
326
- #, php-format
327
- msgid "Upgrade to Clearfy Business for $%s"
328
- msgstr ""
329
-
330
- #: admin/includes/sidebar-widgets.php:60
331
- msgid "Having Issues?"
332
- msgstr ""
333
-
334
- #: admin/includes/sidebar-widgets.php:63
335
- msgid ""
336
- "We provide free support for this plugin. If you are pushed with a problem, "
337
- "just create a new ticket. We will definitely help you!"
338
- msgstr ""
339
-
340
- #: admin/includes/sidebar-widgets.php:67
341
- msgid "Get starting free support"
342
- msgstr ""
343
-
344
- #: admin/pages/class-rio-license.php:50
345
- msgid "Product activation"
346
- msgstr ""
347
-
348
- #: admin/pages/class-rio-license.php:52
349
- msgid "Robin image optimizer Premium"
350
- msgstr ""
351
-
352
- #: admin/pages/class-rio-log.php:37 admin/pages/class-rio-log.php:64
353
- #: admin/pages/class-rio-log.php:73 admin/pages/class-rio-settings.php:209
354
- msgid "Error Log"
355
- msgstr "Журнал ошибок"
356
-
357
- #: admin/pages/class-rio-log.php:38
358
- msgid "Plugin debug report"
359
- msgstr ""
360
-
361
- #: admin/pages/class-rio-log.php:64 admin/pages/class-rio-statistic.php:125
362
- #: admin/includes/classes/class-rio-nextgen-landing.php:38
363
- #: admin/includes/classes/class-rio-nextgen-landing.php:39
364
- msgid "Image optimizer"
365
- msgstr "Оптим. изображений"
366
-
367
- #: admin/pages/class-rio-log.php:75
368
- msgid ""
369
- "In this section, you can track image optimization errors. Sending this log "
370
- "to us, will help in solving possible optimization issues."
371
- msgstr ""
372
- этом разделе вы можете отследить ошибки оптимизации изображений. Отправка "
373
- "этого лога нам, поможет в решении возможных проблем с оптимизацией."
374
-
375
- #: admin/pages/class-rio-log.php:81
376
- msgid "Export Debug Information"
377
- msgstr ""
378
-
379
- #: admin/pages/class-rio-log.php:84
380
- msgid "Working..."
381
- msgstr ""
382
-
383
- #: admin/pages/class-rio-log.php:85
384
- #, php-format
385
- msgid "Clean-up Logs (<span id=\"wbcr-log-size\">%s</span>)"
386
- msgstr ""
387
-
388
- #: admin/pages/class-rio-settings.php:36
389
- msgid "Settings"
390
- msgstr ""
391
-
392
- #: admin/pages/class-rio-settings.php:37
393
- msgid "Plugin configuration"
394
- msgstr ""
395
-
396
- #: admin/pages/class-rio-settings.php:71
397
- msgid "Folder wp-content/uploads/ is unavailable for writing"
398
- msgstr "Папка wp-content/uploads/ недоступна для записи"
399
-
400
- #: admin/pages/class-rio-settings.php:76
401
- msgid "Folder wp-content/uploads/wio-backup/ is unavailable for writing"
402
- msgstr "Папка wp-content/uploads/wio-backup/ недоступна для записи"
403
-
404
- #: admin/pages/class-rio-settings.php:80
405
- msgid "Cron is disabled in wp-config.php"
406
- msgstr "Cron отключен в wp-config.php"
407
-
408
- #: admin/pages/class-rio-settings.php:97
409
- msgid "Main Settings"
410
- msgstr "Основные настройки"
411
-
412
- #: admin/pages/class-rio-settings.php:97
413
- msgid "This section you can set main images optimization settings."
414
- msgstr ""
415
- "В этом разделе вы можете настроить основные параметры оптимизации "
416
- "изображений."
417
-
418
- #: admin/pages/class-rio-settings.php:103
419
- msgid "Optimization server"
420
- msgstr "Сервер оптимизации"
421
-
422
- #: admin/pages/class-rio-settings.php:121
423
- msgid ""
424
- "We use several free servers for image optimization and can’t fully guarantee "
425
- "their stable performance. The server can be not available in some countries "
426
- "due to the political reasons. There is a solution: if one of the servers is "
427
- "not available or can’t optimize the image, you can try to switch to the "
428
- "alternative server. Each server has individual limitations for image weight "
429
- "and optimization level. By default, you have the best server with minimum "
430
- "limitations."
431
- msgstr ""
432
- "Мы используем несколько бесплатных серверов для оптимизации изображений и не "
433
- "можем полностью гарантировать их работу. В некоторых странах сервер может "
434
- "быть недоступен из-за политических причин. Мы предусмотрели несколько "
435
- "вариантов, в случае если один из серверов недоступен или не может "
436
- "оптимизировать изображения, вы можете попробовать переключиться на "
437
- "альтернативный сервер. Каждый сервер имеет индивидуальные ограничения на вес "
438
- "оптимизированных изображений и на уровень оптимизации. По умолчанию всегда "
439
- "установлен самый лучший сервер с наименьшими ограничениями."
440
-
441
- #: admin/pages/class-rio-settings.php:130
442
- msgid "Compression mode"
443
- msgstr "Режим сжатия"
444
-
445
- #: admin/pages/class-rio-settings.php:134
446
- msgid "Lossless"
447
- msgstr ""
448
-
449
- #: admin/pages/class-rio-settings.php:135
450
- msgid ""
451
- "This mode provides lossless compression and your images will be optimized "
452
- "without visible changes. If you want an ideal image quality, we recommend "
453
- "this mode. The size of the files will be reduced approximately 2 times. If "
454
- "this is not enough for you, try other modes."
455
- msgstr ""
456
- "Этот режим обеспечивает сжатие без потерь и ваши изображения будут "
457
- "оптимизированы без видимых изменений. Если вы хотите идеальное качество "
458
- "изображений, мы рекомендуем этот режим. Размер фалов уменьшится "
459
- "приблизительно в 2 раза. Если вам этого недостаточно, попробуйте другие "
460
- "режимы."
461
-
462
- #: admin/pages/class-rio-settings.php:139
463
- msgid "Lossy"
464
- msgstr ""
465
-
466
- #: admin/pages/class-rio-settings.php:140
467
- msgid ""
468
- "This mode provides an ideal optimization of your images without significant "
469
- "quality loss. The file size will be reduced approximately 5 times with a "
470
- "slight decrease in image quality. In most cases that cannot be seen with the "
471
- "naked eye."
472
- msgstr ""
473
- "Этот режим обеспечивает идеальную оптимизацию ваших изображений без "
474
- "существенных потерь качества. Размер файлов уменьшиться приблизительно в 5 "
475
- "раз при незначительном снижении качества изображений. Чаще всего, "
476
- "невооружённым взглядом это даже не заметно."
477
-
478
- #: admin/pages/class-rio-settings.php:144
479
- #: admin/includes/classes/class-rio-optimize-template.php:149
480
- #: admin/includes/classes/class-rio-optimize-template.php:197
481
- msgid "High"
482
- msgstr "Высокий"
483
-
484
- #: admin/pages/class-rio-settings.php:145
485
- #: admin/pages/class-rio-settings.php:150
486
- msgid ""
487
- "This mode will use all available optimization methods for maximum image "
488
- "compression. The file size will be reduced approximately 7 times. The "
489
- "quality of some images may deteriorate slightly. Use this mode if you need "
490
- "the maximum weight reduction, and you are ready to accept the loss of image "
491
- "quality."
492
- msgstr ""
493
- "Этот режим будет использовать все доступные методы оптимизации для "
494
- "максимального сжатия изображения. Размер файлов уменьшится приблизительно в "
495
- "7 раз. Качество некоторых изображений может немного ухудшиться. Используйте "
496
- "этот режим, если вам требуется максимальное снижение веса, и вы готовы "
497
- "смириться с потерей качества изображений."
498
-
499
- #: admin/pages/class-rio-settings.php:149
500
- #: admin/includes/classes/class-rio-optimize-template.php:141
501
- msgid "Custom"
502
- msgstr ""
503
-
504
- #: admin/pages/class-rio-settings.php:154
505
- msgid "Select the compression mode appropriate for your case."
506
- msgstr "Выберите режим сжатия, подходящий для вашей ситуации."
507
-
508
- #: admin/pages/class-rio-settings.php:176
509
- msgid "Enter custom quality"
510
- msgstr ""
511
-
512
- #: admin/pages/class-rio-settings.php:178
513
- msgid "custom quality 1-100"
514
- msgstr ""
515
-
516
- #: admin/pages/class-rio-settings.php:187
517
- msgid "Auto optimization on upload"
518
- msgstr "Автоматическая оптимизация изображений при загрузке"
519
-
520
- #: admin/pages/class-rio-settings.php:189
521
- msgid ""
522
- "Automatically compress all images that you upload directly to the WordPress "
523
- "media library, when editing pages and posts or using themes and plugins."
524
- msgstr ""
525
- "Автоматическое сжатие всех изображений, которые вы загружаете в "
526
- "медиабиблиотеку WordPress напрямую, при редактировании страниц и записей или "
527
- использованием тем и плагинов."
528
-
529
- #: admin/pages/class-rio-settings.php:198
530
- msgid "Backup images"
531
- msgstr "Резервное копирование изображений"
532
-
533
- #: admin/pages/class-rio-settings.php:200
534
- msgid ""
535
- "Before optimizing, all your images will be saved in a separate folder for "
536
- "future recovery."
537
- msgstr ""
538
- "Перед началом оптимизации, все ваши изображения будут сохранены в отдельной "
539
- "папке для возможности восстановления в будущем."
540
-
541
- #: admin/pages/class-rio-settings.php:211
542
- msgid "Enable error logging. The log will be displayed on a separate tab."
543
- msgstr ""
544
- "Включить ведение журнала ошибок. Он будет отображаться на отдельной вкладке."
545
-
546
- #: admin/pages/class-rio-settings.php:230
547
- msgid "Convert Images to WebP"
548
- msgstr ""
549
-
550
- #: admin/pages/class-rio-settings.php:232
551
- msgid ""
552
- "Convert JPEG & PNG images into WebP format and replace them for browsers "
553
- "which support it. Unsupported browsers would be skipped."
554
- msgstr ""
555
-
556
- #: admin/pages/class-rio-settings.php:259
557
- msgid "Leave EXIF data"
558
- msgstr "Оставлять данные EXIF"
559
-
560
- #: admin/pages/class-rio-settings.php:261
561
- msgid ""
562
- "EXIF is information stored in photos: camera model, shutter speed, exposure "
563
- "compensation, ISO, GPS, etc. By default, the plugin removes EXIF extended "
564
- "data. If your project is dedicated to photography and you need to display "
565
- "this data, then enable this option."
566
- msgstr ""
567
- "EXIF - это информация, хранящаяся в фотографиях: модель камеры, скорость "
568
- "затвора, компенсация экспозиции, ISO, GPS и т. Д. По умолчанию плагин "
569
- "удаляет расширенные данные EXIF. Если ваш проект посвящён фотографии и вам "
570
- "нужно отображать эти данные, то включите эту опцию."
571
-
572
- #: admin/pages/class-rio-settings.php:267
573
- msgid "Optimization"
574
- msgstr "Оптимизация"
575
-
576
- #: admin/pages/class-rio-settings.php:267
577
- msgid "Here you can specify additional image optimization options."
578
- msgstr ""
579
- "Здесь вы можете задать дополнительные параметры оптимизации изображений."
580
-
581
- #: admin/pages/class-rio-settings.php:274
582
- msgid "Optimization order"
583
- msgstr ""
584
-
585
- #: admin/pages/class-rio-settings.php:278
586
- msgid "Ascending"
587
- msgstr ""
588
-
589
- #: admin/pages/class-rio-settings.php:279
590
- msgid "Optimization will start with old images in the media library"
591
- msgstr ""
592
-
593
- #: admin/pages/class-rio-settings.php:283
594
- msgid "Descending"
595
- msgstr ""
596
-
597
- #: admin/pages/class-rio-settings.php:284
598
- msgid "Optimization will start with new images in the media library"
599
- msgstr ""
600
-
601
- #: admin/pages/class-rio-settings.php:288
602
- msgid "Select the optimization order from the media library."
603
- msgstr ""
604
-
605
- #: admin/pages/class-rio-settings.php:297
606
- msgid "Resizing large images"
607
- msgstr "Изменение размера больших изображений"
608
-
609
- #: admin/pages/class-rio-settings.php:299
610
- msgid ""
611
- "When you upload images from a camera or stock, they may be too high "
612
- "resolution and it is not necessary for web. The option allows you to "
613
- "automatically change images resolution on upload."
614
- msgstr ""
615
- "Когда вы закачиваете изображения с камеры или фотостока, они могут быть "
616
- "слишком высокого разрешения и для веба это не нужно. Опция позволяет "
617
- "автоматически изменять разрешение изображений при загрузке."
618
-
619
- #: admin/pages/class-rio-settings.php:315
620
- msgid "Enter the maximum width (px)"
621
- msgstr ""
622
-
623
- #: admin/pages/class-rio-settings.php:317
624
- #: admin/pages/class-rio-settings.php:327
625
- msgid ""
626
- "Set the maximum images resolution on the long side. For horizontal images, "
627
- "this will be the width, and for vertical images - the height. The resolution "
628
- "of the images will be changed proportionally according to the set value."
629
- msgstr ""
630
- "Задайте максимальное разрешение изображений по длинной стороне. Для "
631
- "горизонтальных изображений это будет ширина, а для вертикальных — высота. "
632
- "Разрешение изображений будет изменено пропорционально в соответствии с "
633
- "заданным значением."
634
-
635
- #: admin/pages/class-rio-settings.php:325
636
- msgid "Enter the maximum height (px)"
637
- msgstr ""
638
-
639
- #: admin/pages/class-rio-settings.php:335
640
- msgid "Optimize formats"
641
- msgstr ""
642
-
643
- #: admin/pages/class-rio-settings.php:342
644
- msgid ""
645
- "Choose which formats of images should be optimized and uncheck those that do "
646
- "not need optimization."
647
- msgstr ""
648
-
649
- #: admin/pages/class-rio-settings.php:360
650
- msgid "Optimize thumbnails"
651
- msgstr "Оптимизировать миниатюры"
652
-
653
- #: admin/pages/class-rio-settings.php:363
654
- msgid ""
655
- "Choose which sizes of thumbnails should be optimized and uncheck those that "
656
- "do not need optimization."
657
- msgstr ""
658
- "Выберите какие размеры миниатюр следует оптимизировать и снимите галочки с "
659
- "тех, оптимизация которых не нужна."
660
-
661
- #: admin/pages/class-rio-settings.php:442
662
- msgid "Manage backups"
663
- msgstr "Управление резервными копиями"
664
-
665
- #: admin/pages/class-rio-settings.php:445
666
- msgid "You can restore the original images from a backup or clear them."
667
- msgstr ""
668
- "Вы можете восстановить оригинальные изображения из резервной копии или "
669
- "очистить их."
670
-
671
- #: admin/pages/class-rio-settings.php:454
672
- msgid "Are you sure?"
673
- msgstr "Вы уверены?"
674
-
675
- #: admin/pages/class-rio-settings.php:455
676
- #: libs/addons/views/part-bulk-optimization-table-folders.php:43
677
- msgid "Restore"
678
- msgstr "Восстановить"
679
-
680
- #: admin/pages/class-rio-settings.php:457
681
- msgid "Are you sure that you want to clear image backups folder?"
682
- msgstr ""
683
- "Вы действительно хотите очистить папку с резервными копиями изображений?"
684
-
685
- #: admin/pages/class-rio-settings.php:458
686
- msgid "Clear Backup"
687
- msgstr "Очистить резервные копии"
688
-
689
- #: admin/pages/class-rio-settings.php:511
690
- msgid "Restore completed."
691
- msgstr "Восстановление завершено."
692
-
693
- #: admin/pages/class-rio-settings.php:513
694
- msgid "The backup folder was cleared."
695
- msgstr "Папка с резервными копиями очищена."
696
-
697
- #: admin/pages/class-rio-statistic.php:70
698
- #: admin/pages/class-rio-statistic.php:118
699
- msgid "Robin image optimizer"
700
- msgstr ""
701
-
702
- #: admin/pages/class-rio-statistic.php:71
703
- msgid "Compress bulk of images"
704
- msgstr ""
705
-
706
- #: admin/pages/class-rio-statistic.php:93
707
- #, php-format
708
- msgid ""
709
- "We are forced to introduce limits on free servers. Read more on <a href='%s'>"
710
- "our website</a>"
711
- msgstr ""
712
-
713
- #: admin/pages/class-rio-statistic.php:118
714
- msgid "Robin Image Optimizer"
715
- msgstr ""
716
-
717
- #: admin/pages/class-rio-statistic.php:125
718
- msgid "Bulk optimization"
719
- msgstr ""
720
-
721
- #: admin/pages/class-rio-statistic.php:200
722
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:123
723
- msgid "Image optimization dashboard"
724
- msgstr "Панель управления оптимизацией изображений"
725
-
726
- #: admin/pages/class-rio-statistic.php:201
727
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:124
728
- msgid ""
729
- "Monitor image optimization statistics and run on demand or scheduled "
730
- "optimization."
731
- msgstr ""
732
- "Отслеживайте статистику оптимизации изображений и запускайте оптимизацию по "
733
- "требованию или по расписанию."
734
-
735
- #: admin/pages/class-rio-statistic.php:247
736
- msgid ""
737
- "You cannot use the premium server on a free plan. You must activate the "
738
- "license to use all the features of the premium version."
739
- msgstr ""
740
-
741
- #: admin/pages/class-rio-statistic.php:248
742
- msgid ""
743
- "Your selected optimization server is down. This means that you cannot "
744
- "optimize images through this server. Try selecting another optimization "
745
- "server."
746
- msgstr ""
747
-
748
- #: admin/pages/class-rio-statistic.php:249
749
- msgid "down"
750
- msgstr ""
751
-
752
- #: admin/pages/class-rio-statistic.php:250
753
- msgid "stable"
754
- msgstr ""
755
-
756
- #: admin/pages/class-rio-statistic.php:252
757
- #: libs/addons/views/part-bulk-optimization-table-folders.php:26
758
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:166
759
- msgid "Cancel"
760
- msgstr ""
761
-
762
- #: admin/pages/class-rio-statistic.php:253
763
- msgid "Confirm"
764
- msgstr ""
765
-
766
- #: admin/pages/class-rio-statistic.php:254
767
- msgid "Select optimization way"
768
- msgstr ""
769
-
770
- #: admin/pages/class-rio-statistic.php:255
771
- msgid "Optimize now"
772
- msgstr ""
773
-
774
- #: admin/pages/class-rio-statistic.php:256
775
- #: includes/classes/class-rio-cron.php:46
776
- msgid "Scheduled optimization"
777
- msgstr ""
778
-
779
- #: admin/pages/class-rio-statistic.php:257
780
- msgid ""
781
- "To start optimizing, you must complete migration from old plugin version."
782
- msgstr ""
783
-
784
- #: admin/pages/class-rio-statistic.php:258
785
- msgid "All images from the media library are optimized."
786
- msgstr "Все изображения из медиабиблиотеки оптимизированы."
787
-
788
- #: admin/pages/class-rio-statistic.php:259
789
- #, php-format
790
- msgid ""
791
- "Optimization in progress. Remained <span id=\"wio-total-unoptimized\">"
792
- "%s</span> images."
793
- msgstr ""
794
-
795
- #: admin/pages/class-rio-statistic.php:260
796
- msgid ""
797
- "Are you sure that you want to leave the page? The optimization process is "
798
- "not over yet, stay on the page until the end of the optimization process."
799
- msgstr ""
800
-
801
- #: admin/pages/class-rio-statistic.php:261
802
- msgid "Do you want to start optimization without backup?"
803
- msgstr "Вы хотите начать оптимизацию без возможности восстановления?"
804
-
805
- #: admin/pages/class-rio-statistic.php:262
806
- msgid "Resume"
807
- msgstr "Возобновить"
808
-
809
- #: admin/pages/class-rio-statistic.php:263
810
- msgid "Completed"
811
- msgstr ""
812
-
813
- #: admin/pages/class-rio-statistic.php:265
814
- msgid "Stop"
815
- msgstr "Остановить"
816
-
817
- #: includes/classes/class-rio-attachment.php:251
818
- msgid "Attachment cannot be optimized."
819
- msgstr ""
820
-
821
- #: includes/classes/class-rio-attachment.php:254
822
- #, php-format
823
- msgid "Attachment #%d doesn't have metadata, the image may be damaged."
824
- msgstr ""
825
-
826
- #: includes/classes/class-rio-attachment.php:256
827
- #, php-format
828
- msgid "File \"(%s)\" doesn't exist"
829
- msgstr ""
830
-
831
- #: includes/classes/class-rio-backup.php:321
832
- msgid "Could not copy the file to the temporary directory"
833
- msgstr ""
834
-
835
- #: includes/classes/class-rio-backup.php:334
836
- msgid ""
837
- "It is not possible to create a temporary file, the backup folder is not "
838
- "writable."
839
- msgstr ""
840
-
841
- #: includes/classes/class-rio-cron.php:46
842
- msgid "Schedule your images optimization."
843
- msgstr ""
844
-
845
- #: includes/classes/class-rio-cron.php:53
846
- #: includes/classes/class-rio-cron.php:94
847
- msgid "1 min"
848
- msgstr ""
849
-
850
- #: includes/classes/class-rio-cron.php:54
851
- #: includes/classes/class-rio-cron.php:98
852
- msgid "2 min"
853
- msgstr ""
854
-
855
- #: includes/classes/class-rio-cron.php:55
856
- #: includes/classes/class-rio-cron.php:102
857
- msgid "5 min"
858
- msgstr ""
859
-
860
- #: includes/classes/class-rio-cron.php:56
861
- #: includes/classes/class-rio-cron.php:106
862
- msgid "10 min"
863
- msgstr ""
864
-
865
- #: includes/classes/class-rio-cron.php:57
866
- #: includes/classes/class-rio-cron.php:110
867
- msgid "30 min"
868
- msgstr ""
869
-
870
- #: includes/classes/class-rio-cron.php:58
871
- msgid "Hour"
872
- msgstr ""
873
-
874
- #: includes/classes/class-rio-cron.php:59
875
- msgid "Day"
876
- msgstr ""
877
-
878
- #: includes/classes/class-rio-cron.php:62
879
- msgid "Run every"
880
- msgstr ""
881
-
882
- #: includes/classes/class-rio-cron.php:63
883
- msgid "Select time at which the task will be repeated."
884
- msgstr ""
885
-
886
- #: includes/classes/class-rio-cron.php:69
887
- msgid "Images per iteration"
888
- msgstr ""
889
-
890
- #: includes/classes/class-rio-cron.php:71
891
- msgid ""
892
- "Specify the number of images that will be optimized during the job. For "
893
- "example, if you enter 5 and select 5 min, the plugin will optimize 5 images "
894
- "every 5 minutes."
895
- msgstr ""
896
-
897
- #: includes/classes/class-rio-cron.php:114
898
- msgid "60 min"
899
- msgstr ""
900
-
901
- #: includes/classes/class-rio-cron.php:118
902
- msgid "daily"
903
- msgstr ""
904
-
905
- #: includes/classes/class-rio-image-statistic.php:362
906
- #: libs/addons/includes/classes/class.image-statistic-folders.php:325
907
- #: libs/addons/includes/classes/class.image-statistic-nextgen.php:199
908
- msgid "Unknown error"
909
- msgstr ""
910
-
911
- #: includes/classes/class-rio-media-library.php:244
912
- #: includes/classes/class-rio-media-library.php:248
913
- #: libs/addons/includes/classes/class.custom-folders.php:311
914
- #: libs/addons/includes/classes/class.custom-folders.php:315
915
- #: libs/addons/includes/classes/class.gallery-nextgen.php:339
916
- #: libs/addons/includes/classes/class.gallery-nextgen.php:342
917
- msgid "No access for writing backups."
918
- msgstr "Нет доступа для записи резервных копий."
919
-
920
- #: admin/includes/classes/class-rio-optimize-template.php:123
921
- msgid "New Filesize:"
922
- msgstr "Новый размер:"
923
-
924
- #: admin/includes/classes/class-rio-optimize-template.php:126
925
- msgid "Original Saving:"
926
- msgstr "Сжатие:"
927
-
928
- #: admin/includes/classes/class-rio-optimize-template.php:132
929
- msgid "Original Filesize:"
930
- msgstr "Размер оригинала:"
931
-
932
- #: admin/includes/classes/class-rio-optimize-template.php:135
933
- msgid "Level:"
934
- msgstr "Уровень:"
935
-
936
- #: admin/includes/classes/class-rio-optimize-template.php:145
937
- #: admin/includes/classes/class-rio-optimize-template.php:177
938
- msgid "lossless"
939
- msgstr ""
940
-
941
- #: admin/includes/classes/class-rio-optimize-template.php:147
942
- #: admin/includes/classes/class-rio-optimize-template.php:187
943
- msgid "lossy"
944
- msgstr ""
945
-
946
- #: admin/includes/classes/class-rio-optimize-template.php:157
947
- msgid "Thumbnails Optimized:"
948
- msgstr "Оптимизированные миниатюры:"
949
-
950
- #: admin/includes/classes/class-rio-optimize-template.php:161
951
- msgid "Overall Saving:"
952
- msgstr "Общее сохранение:"
953
-
954
- #: admin/includes/classes/class-rio-optimize-template.php:166
955
- msgid "Error Message:"
956
- msgstr "Сообщение об ошибке:"
957
-
958
- #: admin/includes/classes/class-rio-optimize-template.php:175
959
- #: admin/includes/classes/class-rio-optimize-template.php:185
960
- #: admin/includes/classes/class-rio-optimize-template.php:195
961
- #: admin/includes/classes/class-rio-optimize-template.php:217
962
- msgid "Optimization in progress"
963
- msgstr "Выполняется оптимизация"
964
-
965
- #: admin/includes/classes/class-rio-optimize-template.php:177
966
- #: admin/includes/classes/class-rio-optimize-template.php:187
967
- #: admin/includes/classes/class-rio-optimize-template.php:197
968
- msgid "Re-Optimize to"
969
- msgstr "Пережать в"
970
-
971
- #: admin/includes/classes/class-rio-optimize-template.php:205
972
- msgid "Recovery in progress"
973
- msgstr "Восстанавливается"
974
-
975
- #: admin/includes/classes/class-rio-optimize-template.php:206
976
- msgid "Restore original"
977
- msgstr "Восстановить оригинал"
978
-
979
- #: admin/includes/classes/class-rio-optimize-template.php:219
980
- #: libs/addons/views/part-bulk-optimization-table-folders.php:41
981
- msgid "Optimize"
982
- msgstr "Оптимизировать"
983
-
984
- #: libs/addons/views/modal-select-custom-folders.php:10
985
- msgid ""
986
- "Select a directory for optimization. All nested images and folders will be "
987
- "optimized recursively."
988
- msgstr ""
989
-
990
- #: libs/addons/views/modal-select-custom-folders.php:13
991
- msgid "The selected directory is being indexed. Found"
992
- msgstr ""
993
-
994
- #: libs/addons/views/modal-select-custom-folders.php:14
995
- msgid "images."
996
- msgstr "изображений."
997
-
998
- #: libs/addons/views/modal-select-custom-folders.php:15
999
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:170
1000
- msgid ""
1001
- "Indexing complete. Directory successfully added and ready for optimization."
1002
- msgstr ""
1003
-
1004
- #: libs/addons/views/part-bulk-optimization-table-folders.php:15
1005
- msgid "Additional media folders"
1006
- msgstr ""
1007
-
1008
- #: libs/addons/views/part-bulk-optimization-table-folders.php:16
1009
- msgid ""
1010
- "Use the add folder... button to select site folders. Robin image optimizer "
1011
- "will optimize images from the specified folders and their subfolders. The "
1012
- "optimization status for each image in these folders can be seen in the Other "
1013
- "Media list, under the Media menu."
1014
- msgstr ""
1015
-
1016
- #: libs/addons/views/part-bulk-optimization-table-folders.php:17
1017
- msgid "Add custom folder"
1018
- msgstr ""
1019
-
1020
- #: libs/addons/views/part-bulk-optimization-table-folders.php:25
1021
- msgid "Folder"
1022
- msgstr ""
1023
-
1024
- #: libs/addons/views/part-bulk-optimization-table-folders.php:35
1025
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:171
1026
- #, php-format
1027
- msgid "Compressed %d of %s<br>images"
1028
- msgstr ""
1029
-
1030
- #: libs/addons/views/part-bulk-optimization-table-folders.php:42
1031
- msgid "Sync"
1032
- msgstr ""
1033
-
1034
- #: libs/addons/views/part-bulk-optimization-table-folders.php:43
1035
- msgid "Recover images from backup?"
1036
- msgstr ""
1037
-
1038
- #: libs/addons/views/part-bulk-optimization-table-folders.php:44
1039
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:168
1040
- msgid "Exclude directory from optimization?"
1041
- msgstr ""
1042
-
1043
- #: libs/addons/views/part-settings-page-webp-options.php:17
1044
- msgid "You can only use WebP conversion when using a premium server"
1045
- msgstr ""
1046
-
1047
- #: libs/addons/views/part-settings-page-webp-options.php:28
1048
- msgid "Select delivery mode"
1049
- msgstr ""
1050
-
1051
- #: libs/addons/views/part-settings-page-webp-options.php:30
1052
- #, php-format
1053
- msgid ""
1054
- "Deliver the WebP versions of the images in the front-end <a href=\"%s\" "
1055
- "target=\"_blank\">Read more</a>"
1056
- msgstr ""
1057
-
1058
- #: libs/addons/views/part-settings-page-webp-options.php:35
1059
- msgid "Redirection (via .htaccess)"
1060
- msgstr ""
1061
-
1062
- #: libs/addons/views/part-settings-page-webp-options.php:38
1063
- #, php-format
1064
- msgid ""
1065
- "This will add rules in the .htaccess that redirects directly to existing "
1066
- "converted files. Best performance is achieved by redirecting in .htaccess. "
1067
- "Based on testing your particular hosting configuration, we determined that "
1068
- "your server <img width=\"30\" src=\"%s\"> serve the WEBP versions of the "
1069
- "JPEG files seamlessly, via .htaccess."
1070
- msgstr ""
1071
-
1072
- #: libs/addons/views/part-settings-page-webp-options.php:40
1073
- msgid "Server"
1074
- msgstr ""
1075
-
1076
- #: libs/addons/views/part-settings-page-webp-options.php:51
1077
- msgid ""
1078
- "Replace &lt;img&gt; tags with &lt;picture&gt; tags, adding the webp to "
1079
- "srcset."
1080
- msgstr ""
1081
-
1082
- #: libs/addons/views/part-settings-page-webp-options.php:54
1083
- msgid ""
1084
- " Each &lt;img&gt; will be replaced with a &lt;picture&gt; tag that will also "
1085
- "provide the WebP image as a choice for browsers that support it. Also loads "
1086
- "the picturefill.js for browsers that don't support the &lt;picture&gt; tag. "
1087
- "You don't need to activate this if you're using the Cache Enabler plugin "
1088
- "because your WebP images are already handled by this plugin. <strong>Please "
1089
- "make a test before using this option</strong>, as if the styles that your "
1090
- "theme is using rely on the position of your &lt;img&gt; tag, you might "
1091
- "experience display problems. <strong>You can revert anytime to the previous "
1092
- "state by just deactivating the option.</strong>"
1093
- msgstr ""
1094
-
1095
- #: libs/addons/views/part-settings-page-webp-options.php:59
1096
- msgid "Replace image URLs"
1097
- msgstr ""
1098
-
1099
- #: libs/addons/views/part-settings-page-webp-options.php:62
1100
- msgid ""
1101
- "\"Image URLs\" replaces the image URLs to point to the webp <i>rather "
1102
- "than</i> the original. Handles src, srcset, common lazy-load attributes and "
1103
- "even inline styles. Note that you will have to do something for the browsers "
1104
- "that does not support webp. And that something is in most cases to enable "
1105
- "the <i>Only do the replacements in webp enabled browsers</i> option, which "
1106
- "will show up when you enable this option."
1107
- msgstr ""
1108
-
1109
- #: libs/addons/views/part-settings-page-webp-options.php:67
1110
- msgid "No delivery"
1111
- msgstr ""
1112
-
1113
- #: libs/addons/views/part-settings-page-webp-options.php:70
1114
- msgid ""
1115
- " Plugin will not replace the source JPEG, PNG image on Webp version of the "
1116
- "image in\n"
1117
- " front-end."
1118
- msgstr ""
1119
-
1120
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:69
1121
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:76
1122
- msgid "Custom Folders"
1123
- msgstr ""
1124
-
1125
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:163
1126
- msgid "Select custom folder"
1127
- msgstr ""
1128
-
1129
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:165
1130
- msgid "Select"
1131
- msgstr ""
1132
-
1133
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:167
1134
- msgid "Remove"
1135
- msgstr ""
1136
-
1137
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:169
1138
- #, php-format
1139
- msgid "Selected directory is being indexed. Found %d images."
1140
- msgstr ""
1141
-
1142
- #: libs/addons/admin/pages/class-rio-statistic-folders-page.php:172
1143
- msgid "All images from custom folders are optimized."
1144
- msgstr ""
1145
-
1146
- #: libs/addons/admin/pages/class-rio-statistic-nextgen-page.php:61
1147
- #: libs/addons/admin/pages/class-rio-statistic-nextgen-page.php:68
1148
- msgid "NextGen Gallery"
1149
- msgstr ""
1150
-
1151
- #: libs/addons/includes/classes/class.custom-folders.php:319
1152
- msgid "You need to add an custom folder to start optimization!"
1153
- msgstr ""
1154
-
1155
- #: libs/addons/includes/classes/class.folders-list-table.php:21
1156
- msgctxt "Column label"
1157
- msgid "Preview"
1158
- msgstr ""
1159
-
1160
- #: libs/addons/includes/classes/class.folders-list-table.php:22
1161
- msgctxt "Column label"
1162
- msgid "File path"
1163
- msgstr ""
1164
-
1165
- #: libs/addons/includes/classes/class.folders-list-table.php:23
1166
- msgctxt "Column label"
1167
- msgid "Folder"
1168
- msgstr ""
1169
-
1170
- #: libs/addons/includes/classes/class.folders-list-table.php:24
1171
- msgctxt "Column label"
1172
- msgid "Status"
1173
- msgstr ""
1174
-
1175
- #: libs/addons/includes/classes/class.folders-list-table.php:25
1176
- msgctxt "Column label"
1177
- msgid "Optimization"
1178
- msgstr ""
1179
-
1180
- #: libs/addons/includes/classes/class.folders-list-table.php:118
1181
- msgid "Filter by folder"
1182
- msgstr ""
1183
-
1184
- #: libs/addons/includes/classes/class.folders-list-table.php:120
1185
- msgid "All Folders"
1186
- msgstr ""
1187
-
1188
- #: libs/addons/includes/classes/class.folders-list-table.php:129
1189
- msgid "Filter by status"
1190
- msgstr ""
1191
-
1192
- #: libs/addons/includes/classes/class.folders-list-table.php:131
1193
- msgid "All Media Files"
1194
- msgstr ""
1195
-
1196
- #: libs/addons/includes/classes/class.folders-list-table.php:138
1197
- msgid "Errors"
1198
- msgstr ""
1199
-
1200
- #: libs/addons/includes/classes/class.folders-list-table.php:235
1201
- msgid "Success"
1202
- msgstr ""
1203
-
1204
- #: libs/addons/includes/classes/class.folders-list-table.php:237
1205
- msgid "Processing"
1206
- msgstr ""
1207
-
1208
- #: libs/addons/includes/classes/class.folders-list-table.php:239
1209
- msgid "Skipped"
1210
- msgstr ""
1211
-
1212
- #: libs/addons/includes/classes/class.image-nextgen.php:203
1213
- #, fuzzy
1214
- #| msgid "file not found"
1215
- msgid "File not found"
1216
- msgstr "файл не найден"
1217
-
1218
- #. Description of the plugin
1219
- msgid ""
1220
- "Optimize images without losing quality, speed up your website load, improve "
1221
- "SEO and save money on server and CDN bandwidth."
1222
- msgstr ""
1223
-
1224
- #. URI of the plugin
1225
- msgid "https://wordpress.org/plugins/robin-image-optimizer/"
1226
- msgstr ""
1227
-
1228
- #. Author of the plugin
1229
- msgid "Webcraftic <wordpress.webraftic@gmail.com>"
1230
- msgstr ""
1231
-
1232
- #. Author URI of the plugin
1233
- msgid "https://robinoptimizer.com"
1234
- msgstr ""
1
+ #
2
+ # Alexander Parfilov <alexparfilov@gmail.com>, 2018.
3
+ #
4
+ msgid ""
5
+ msgstr ""
6
+ "Project-Id-Version: Image optimizer\n"
7
+ "Report-Msgid-Bugs-To: \n"
8
+ "POT-Creation-Date: 2020-11-06 11:32+0400\n"
9
+ "PO-Revision-Date: 2020-11-06 11:33+0400\n"
10
+ "Last-Translator: Alexander <g.a.androidjc2@ya.ru>\n"
11
+ "Language-Team: Русский\n"
12
+ "Language: ru_RU\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "X-Generator: Poedit 2.3.1\n"
17
+ "X-Poedit-Basepath: ..\n"
18
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
19
+ "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20
+ "X-Poedit-SourceCharset: UTF-8\n"
21
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
22
+ "X-Loco-Version: 2.4.0; wp-5.4.2\n"
23
+ "X-Poedit-SearchPath-0: .\n"
24
+ "X-Poedit-SearchPathExcluded-0: libs\n"
25
+ "X-Poedit-SearchPathExcluded-1: .git\n"
26
+
27
+ #: admin/ajax/bulk-optimization.php:123
28
+ msgid ""
29
+ "Unknown error. Enable error log on the plugin's settings page, then check "
30
+ "the error report on the Error Log page. You can export the error report and "
31
+ "send it to the support service of the plugin."
32
+ msgstr ""
33
+
34
+ #: admin/ajax/bulk-optimization.php:218
35
+ msgid "Server name is empty!"
36
+ msgstr ""
37
+
38
+ #: admin/ajax/meta-migrations.php:152
39
+ #, php-format
40
+ msgid "left to migrate: %s items"
41
+ msgstr ""
42
+
43
+ #: admin/ajax/meta-migrations.php:163
44
+ msgid "Finishing-up..."
45
+ msgstr ""
46
+
47
+ #: admin/boot.php:229
48
+ msgid "ROBIN IMAGE OPTIMIZER PRO"
49
+ msgstr ""
50
+
51
+ #: admin/boot.php:245
52
+ msgid "Automatic convertation in Webp"
53
+ msgstr ""
54
+
55
+ #: admin/boot.php:246
56
+ msgid "You can optimize custom folders"
57
+ msgstr ""
58
+
59
+ #: admin/boot.php:247
60
+ msgid "Support Nextgen gallery"
61
+ msgstr ""
62
+
63
+ #: admin/boot.php:248
64
+ msgid "Multisite support"
65
+ msgstr ""
66
+
67
+ #: admin/boot.php:249
68
+ msgid "Fast optimization servers"
69
+ msgstr ""
70
+
71
+ #: admin/boot.php:250
72
+ msgid "No ads"
73
+ msgstr ""
74
+
75
+ #: admin/boot.php:251
76
+ msgid "Best support"
77
+ msgstr ""
78
+
79
+ #: admin/boot.php:274
80
+ #, php-format
81
+ msgid ""
82
+ "<a href=\"%s\">License activation</a> required. A license is required to get "
83
+ "premium plugin updates, as well as to get additional services."
84
+ msgstr ""
85
+
86
+ #: admin/boot.php:276
87
+ #, php-format
88
+ msgid ""
89
+ "Your <a href=\"%s\">license</a> has expired. You can no longer get premium "
90
+ "plugin updates, premium support and your access to Webcraftic services has "
91
+ "been suspended."
92
+ msgstr ""
93
+
94
+ #: admin/boot.php:303 admin/boot.php:343
95
+ msgid "The remainder of the quota is coming to an end. Remained credits: "
96
+ msgstr "Остаток квоты подходит к концу. Кредитов осталось: "
97
+
98
+ #: admin/includes/classes/class-rio-nextgen-landing.php:38
99
+ #: admin/includes/classes/class-rio-nextgen-landing.php:39
100
+ #: admin/pages/class-rio-log.php:64 admin/pages/class-rio-statistic.php:120
101
+ msgid "Image optimizer"
102
+ msgstr "Оптим. изображений"
103
+
104
+ #: admin/includes/classes/class-rio-optimize-template.php:123
105
+ msgid "New Filesize:"
106
+ msgstr "Новый размер:"
107
+
108
+ #: admin/includes/classes/class-rio-optimize-template.php:126
109
+ msgid "Original Saving:"
110
+ msgstr "Сжатие:"
111
+
112
+ #: admin/includes/classes/class-rio-optimize-template.php:132
113
+ msgid "Original Filesize:"
114
+ msgstr "Размер оригинала:"
115
+
116
+ #: admin/includes/classes/class-rio-optimize-template.php:135
117
+ msgid "Level:"
118
+ msgstr "Уровень:"
119
+
120
+ #: admin/includes/classes/class-rio-optimize-template.php:141
121
+ #: admin/pages/class-rio-settings.php:159
122
+ msgid "Custom"
123
+ msgstr ""
124
+
125
+ #: admin/includes/classes/class-rio-optimize-template.php:145
126
+ #: admin/includes/classes/class-rio-optimize-template.php:177
127
+ msgid "lossless"
128
+ msgstr ""
129
+
130
+ #: admin/includes/classes/class-rio-optimize-template.php:147
131
+ #: admin/includes/classes/class-rio-optimize-template.php:187
132
+ msgid "lossy"
133
+ msgstr ""
134
+
135
+ #: admin/includes/classes/class-rio-optimize-template.php:149
136
+ #: admin/includes/classes/class-rio-optimize-template.php:197
137
+ #: admin/pages/class-rio-settings.php:149
138
+ msgid "High"
139
+ msgstr "Высокий"
140
+
141
+ #: admin/includes/classes/class-rio-optimize-template.php:157
142
+ msgid "Thumbnails Optimized:"
143
+ msgstr "Оптимизированные миниатюры:"
144
+
145
+ #: admin/includes/classes/class-rio-optimize-template.php:161
146
+ msgid "Overall Saving:"
147
+ msgstr "Общее сохранение:"
148
+
149
+ #: admin/includes/classes/class-rio-optimize-template.php:166
150
+ msgid "Error Message:"
151
+ msgstr "Сообщение об ошибке:"
152
+
153
+ #: admin/includes/classes/class-rio-optimize-template.php:175
154
+ #: admin/includes/classes/class-rio-optimize-template.php:185
155
+ #: admin/includes/classes/class-rio-optimize-template.php:195
156
+ #: admin/includes/classes/class-rio-optimize-template.php:217
157
+ msgid "Optimization in progress"
158
+ msgstr "Выполняется оптимизация"
159
+
160
+ #: admin/includes/classes/class-rio-optimize-template.php:177
161
+ #: admin/includes/classes/class-rio-optimize-template.php:187
162
+ #: admin/includes/classes/class-rio-optimize-template.php:197
163
+ msgid "Re-Optimize to"
164
+ msgstr "Пережать в"
165
+
166
+ #: admin/includes/classes/class-rio-optimize-template.php:205
167
+ msgid "Recovery in progress"
168
+ msgstr "Восстанавливается"
169
+
170
+ #: admin/includes/classes/class-rio-optimize-template.php:206
171
+ msgid "Restore original"
172
+ msgstr "Восстановить оригинал"
173
+
174
+ #: admin/includes/classes/class-rio-optimize-template.php:219
175
+ msgid "Optimize"
176
+ msgstr "Оптимизировать"
177
+
178
+ #: admin/includes/sidebar-widgets.php:24
179
+ msgid "Activate Robin image optimizer pro"
180
+ msgstr ""
181
+
182
+ #: admin/includes/sidebar-widgets.php:27
183
+ msgid ""
184
+ "<b>Clearfy Business</b> is a paid package of components for the popular free "
185
+ "WordPress plugin named Clearfy. You get access to all paid components at one "
186
+ "price."
187
+ msgstr ""
188
+
189
+ #: admin/includes/sidebar-widgets.php:28
190
+ msgid ""
191
+ "Paid license guarantees that you can download and update existing and future "
192
+ "paid components of the plugin."
193
+ msgstr ""
194
+
195
+ #: admin/includes/sidebar-widgets.php:31
196
+ #, php-format
197
+ msgid "Upgrade to Clearfy Business for $%s"
198
+ msgstr ""
199
+
200
+ #: admin/includes/sidebar-widgets.php:60
201
+ msgid "Having Issues?"
202
+ msgstr ""
203
+
204
+ #: admin/includes/sidebar-widgets.php:63
205
+ msgid ""
206
+ "We provide free support for this plugin. If you are pushed with a problem, "
207
+ "just create a new ticket. We will definitely help you!"
208
+ msgstr ""
209
+
210
+ #: admin/includes/sidebar-widgets.php:67
211
+ msgid "Get starting free support"
212
+ msgstr ""
213
+
214
+ #: admin/includes/sidebar-widgets.php:71
215
+ #, php-format
216
+ msgid ""
217
+ "If you find a php error or a vulnerability in plugin, you can <a href=\"%s\" "
218
+ "target=\"_blank\" rel=\"noopener\">create ticket</a> in hot support that we "
219
+ "responded instantly."
220
+ msgstr ""
221
+
222
+ #: admin/pages/class-rio-license.php:49 views/clearfy-component-card.php:37
223
+ msgid "License"
224
+ msgstr ""
225
+
226
+ #: admin/pages/class-rio-license.php:50
227
+ msgid "Product activation"
228
+ msgstr ""
229
+
230
+ #: admin/pages/class-rio-license.php:52
231
+ msgid "Robin image optimizer Premium"
232
+ msgstr ""
233
+
234
+ #: admin/pages/class-rio-license.php:83
235
+ #, fuzzy, php-format
236
+ #| msgid "Image optimizer"
237
+ msgid "Robin image optimizer [%s]"
238
+ msgstr "Оптим. изображений"
239
+
240
+ #: admin/pages/class-rio-license.php:90
241
+ msgid "of"
242
+ msgstr ""
243
+
244
+ #: admin/pages/class-rio-license.php:91
245
+ #, php-format
246
+ msgid "Automatic renewal, every %s"
247
+ msgstr ""
248
+
249
+ #: admin/pages/class-rio-license.php:94
250
+ msgid ""
251
+ "Public License is a GPLv3 compatible license allowing you to change and use "
252
+ "this version of the plugin for free. Please keep in mind this license covers "
253
+ "only free edition of the plugin. Premium versions are distributed with other "
254
+ "type of a license."
255
+ msgstr ""
256
+
257
+ #: admin/pages/class-rio-log.php:37 admin/pages/class-rio-log.php:64
258
+ #: admin/pages/class-rio-log.php:73 admin/pages/class-rio-settings.php:219
259
+ msgid "Error Log"
260
+ msgstr "Журнал ошибок"
261
+
262
+ #: admin/pages/class-rio-log.php:38
263
+ msgid "Plugin debug report"
264
+ msgstr ""
265
+
266
+ #: admin/pages/class-rio-log.php:75
267
+ msgid ""
268
+ "In this section, you can track image optimization errors. Sending this log "
269
+ "to us, will help in solving possible optimization issues."
270
+ msgstr ""
271
+ этом разделе вы можете отследить ошибки оптимизации изображений. Отправка "
272
+ "этого лога нам, поможет в решении возможных проблем с оптимизацией."
273
+
274
+ #: admin/pages/class-rio-log.php:81
275
+ msgid "Export Debug Information"
276
+ msgstr ""
277
+
278
+ #: admin/pages/class-rio-log.php:85
279
+ #, php-format
280
+ msgid "Clean-up Logs (<span id=\"wbcr-log-size\">%s</span>)"
281
+ msgstr ""
282
+
283
+ #: admin/pages/class-rio-settings.php:36
284
+ msgid "Settings"
285
+ msgstr ""
286
+
287
+ #: admin/pages/class-rio-settings.php:37
288
+ msgid "Plugin configuration"
289
+ msgstr ""
290
+
291
+ #: admin/pages/class-rio-settings.php:76
292
+ msgid "Folder wp-content/uploads/ is unavailable for writing"
293
+ msgstr "Папка wp-content/uploads/ недоступна для записи"
294
+
295
+ #: admin/pages/class-rio-settings.php:81
296
+ msgid "Folder wp-content/uploads/wio-backup/ is unavailable for writing"
297
+ msgstr "Папка wp-content/uploads/wio-backup/ недоступна для записи"
298
+
299
+ #: admin/pages/class-rio-settings.php:85
300
+ msgid "Cron is disabled in wp-config.php"
301
+ msgstr "Cron отключен в wp-config.php"
302
+
303
+ #: admin/pages/class-rio-settings.php:102
304
+ msgid "Main Settings"
305
+ msgstr "Основные настройки"
306
+
307
+ #: admin/pages/class-rio-settings.php:102
308
+ msgid "This section you can set main images optimization settings."
309
+ msgstr ""
310
+ "В этом разделе вы можете настроить основные параметры оптимизации "
311
+ "изображений."
312
+
313
+ #: admin/pages/class-rio-settings.php:108
314
+ msgid "Optimization server"
315
+ msgstr "Сервер оптимизации"
316
+
317
+ #: admin/pages/class-rio-settings.php:112
318
+ #: views/part-bulk-optimization-servers.php:21
319
+ msgid "Server 1 - image size limit up to 5 MB"
320
+ msgstr ""
321
+
322
+ #: admin/pages/class-rio-settings.php:117
323
+ #: views/part-bulk-optimization-servers.php:24
324
+ msgid "Server 2 - beta"
325
+ msgstr ""
326
+
327
+ #: admin/pages/class-rio-settings.php:122
328
+ #: views/part-bulk-optimization-servers.php:27
329
+ msgid "Premium - no limits"
330
+ msgstr ""
331
+
332
+ #: admin/pages/class-rio-settings.php:126
333
+ msgid ""
334
+ "We use several free servers for image optimization and can’t fully guarantee "
335
+ "their stable performance. The server can be not available in some countries "
336
+ "due to the political reasons. There is a solution: if one of the servers is "
337
+ "not available or can’t optimize the image, you can try to switch to the "
338
+ "alternative server. Each server has individual limitations for image weight "
339
+ "and optimization level. By default, you have the best server with minimum "
340
+ "limitations."
341
+ msgstr ""
342
+ "Мы используем несколько бесплатных серверов для оптимизации изображений и не "
343
+ "можем полностью гарантировать их работу. В некоторых странах сервер может "
344
+ "быть недоступен из-за политических причин. Мы предусмотрели несколько "
345
+ "вариантов, в случае если один из серверов недоступен или не может "
346
+ "оптимизировать изображения, вы можете попробовать переключиться на "
347
+ "альтернативный сервер. Каждый сервер имеет индивидуальные ограничения на вес "
348
+ "оптимизированных изображений и на уровень оптимизации. По умолчанию всегда "
349
+ "установлен самый лучший сервер с наименьшими ограничениями."
350
+
351
+ #: admin/pages/class-rio-settings.php:135
352
+ msgid "Compression mode"
353
+ msgstr "Режим сжатия"
354
+
355
+ #: admin/pages/class-rio-settings.php:139
356
+ msgid "Lossless"
357
+ msgstr ""
358
+
359
+ #: admin/pages/class-rio-settings.php:140
360
+ msgid ""
361
+ "This mode provides lossless compression and your images will be optimized "
362
+ "without visible changes. If you want an ideal image quality, we recommend "
363
+ "this mode. The size of the files will be reduced approximately 2 times. If "
364
+ "this is not enough for you, try other modes."
365
+ msgstr ""
366
+ "Этот режим обеспечивает сжатие без потерь и ваши изображения будут "
367
+ "оптимизированы без видимых изменений. Если вы хотите идеальное качество "
368
+ "изображений, мы рекомендуем этот режим. Размер фалов уменьшится "
369
+ "приблизительно в 2 раза. Если вам этого недостаточно, попробуйте другие "
370
+ "режимы."
371
+
372
+ #: admin/pages/class-rio-settings.php:144
373
+ msgid "Lossy"
374
+ msgstr ""
375
+
376
+ #: admin/pages/class-rio-settings.php:145
377
+ msgid ""
378
+ "This mode provides an ideal optimization of your images without significant "
379
+ "quality loss. The file size will be reduced approximately 5 times with a "
380
+ "slight decrease in image quality. In most cases that cannot be seen with the "
381
+ "naked eye."
382
+ msgstr ""
383
+ "Этот режим обеспечивает идеальную оптимизацию ваших изображений без "
384
+ "существенных потерь качества. Размер файлов уменьшиться приблизительно в 5 "
385
+ "раз при незначительном снижении качества изображений. Чаще всего, "
386
+ "невооружённым взглядом это даже не заметно."
387
+
388
+ #: admin/pages/class-rio-settings.php:150
389
+ msgid ""
390
+ "This mode will use all available optimization methods for maximum image "
391
+ "compression. The file size will be reduced approximately 7 times. The "
392
+ "quality of some images may deteriorate slightly. Use this mode if you need "
393
+ "the maximum weight reduction, and you are ready to accept the loss of image "
394
+ "quality."
395
+ msgstr ""
396
+ "Этот режим будет использовать все доступные методы оптимизации для "
397
+ "максимального сжатия изображения. Размер файлов уменьшится приблизительно в "
398
+ "7 раз. Качество некоторых изображений может немного ухудшиться. Используйте "
399
+ "этот режим, если вам требуется максимальное снижение веса, и вы готовы "
400
+ "смириться с потерей качества изображений."
401
+
402
+ #: admin/pages/class-rio-settings.php:154
403
+ msgid "G PageSpeed"
404
+ msgstr ""
405
+
406
+ #: admin/pages/class-rio-settings.php:155
407
+ msgid "This mode uses the optimal settings for Google Page Speed"
408
+ msgstr ""
409
+
410
+ #: admin/pages/class-rio-settings.php:160
411
+ msgid "This mode allows you to configure your own compression ratio."
412
+ msgstr "Этот режим позволяет настроить собственную степень сжатия."
413
+
414
+ #: admin/pages/class-rio-settings.php:164
415
+ msgid "Select the compression mode appropriate for your case."
416
+ msgstr "Выберите режим сжатия, подходящий для вашей ситуации."
417
+
418
+ #: admin/pages/class-rio-settings.php:186
419
+ msgid "Enter custom quality"
420
+ msgstr ""
421
+
422
+ #: admin/pages/class-rio-settings.php:188
423
+ msgid "custom quality 1-100"
424
+ msgstr ""
425
+
426
+ #: admin/pages/class-rio-settings.php:197
427
+ msgid "Auto optimization on upload"
428
+ msgstr "Автоматическая оптимизация изображений при загрузке"
429
+
430
+ #: admin/pages/class-rio-settings.php:199
431
+ msgid ""
432
+ "Automatically compress all images that you upload directly to the WordPress "
433
+ "media library, when editing pages and posts or using themes and plugins."
434
+ msgstr ""
435
+ "Автоматическое сжатие всех изображений, которые вы загружаете в "
436
+ "медиабиблиотеку WordPress напрямую, при редактировании страниц и записей или "
437
+ "с использованием тем и плагинов."
438
+
439
+ #: admin/pages/class-rio-settings.php:208
440
+ msgid "Backup images"
441
+ msgstr "Резервное копирование изображений"
442
+
443
+ #: admin/pages/class-rio-settings.php:210
444
+ msgid ""
445
+ "Before optimizing, all your images will be saved in a separate folder for "
446
+ "future recovery."
447
+ msgstr ""
448
+ "Перед началом оптимизации, все ваши изображения будут сохранены в отдельной "
449
+ "папке для возможности восстановления в будущем."
450
+
451
+ #: admin/pages/class-rio-settings.php:221
452
+ msgid "Enable error logging. The log will be displayed on a separate tab."
453
+ msgstr ""
454
+ "Включить ведение журнала ошибок. Он будет отображаться на отдельной вкладке."
455
+
456
+ #: admin/pages/class-rio-settings.php:240
457
+ msgid "Convert Images to WebP"
458
+ msgstr ""
459
+
460
+ #: admin/pages/class-rio-settings.php:242
461
+ msgid ""
462
+ "Convert JPEG & PNG images into WebP format and replace them for browsers "
463
+ "which support it. Unsupported browsers would be skipped."
464
+ msgstr ""
465
+
466
+ #: admin/pages/class-rio-settings.php:269
467
+ msgid "Leave EXIF data"
468
+ msgstr "Оставлять данные EXIF"
469
+
470
+ #: admin/pages/class-rio-settings.php:271
471
+ msgid ""
472
+ "EXIF is information stored in photos: camera model, shutter speed, exposure "
473
+ "compensation, ISO, GPS, etc. By default, the plugin removes EXIF extended "
474
+ "data. If your project is dedicated to photography and you need to display "
475
+ "this data, then enable this option."
476
+ msgstr ""
477
+ "EXIF - это информация, хранящаяся в фотографиях: модель камеры, скорость "
478
+ "затвора, компенсация экспозиции, ISO, GPS и т. Д. По умолчанию плагин "
479
+ "удаляет расширенные данные EXIF. Если ваш проект посвящён фотографии и вам "
480
+ "нужно отображать эти данные, то включите эту опцию."
481
+
482
+ #: admin/pages/class-rio-settings.php:279
483
+ msgid "Use lazy loading for images"
484
+ msgstr ""
485
+
486
+ #: admin/pages/class-rio-settings.php:281
487
+ msgid "Images will only load when the user has scrolled to them."
488
+ msgstr ""
489
+
490
+ #: admin/pages/class-rio-settings.php:287
491
+ msgid "Optimization"
492
+ msgstr "Оптимизация"
493
+
494
+ #: admin/pages/class-rio-settings.php:287
495
+ msgid "Here you can specify additional image optimization options."
496
+ msgstr ""
497
+ "Здесь вы можете задать дополнительные параметры оптимизации изображений."
498
+
499
+ #: admin/pages/class-rio-settings.php:294
500
+ msgid "Optimization order"
501
+ msgstr ""
502
+
503
+ #: admin/pages/class-rio-settings.php:298
504
+ msgid "Ascending"
505
+ msgstr ""
506
+
507
+ #: admin/pages/class-rio-settings.php:299
508
+ msgid "Optimization will start with old images in the media library"
509
+ msgstr ""
510
+
511
+ #: admin/pages/class-rio-settings.php:303
512
+ msgid "Descending"
513
+ msgstr ""
514
+
515
+ #: admin/pages/class-rio-settings.php:304
516
+ msgid "Optimization will start with new images in the media library"
517
+ msgstr ""
518
+
519
+ #: admin/pages/class-rio-settings.php:308
520
+ msgid "Select the optimization order from the media library."
521
+ msgstr ""
522
+
523
+ #: admin/pages/class-rio-settings.php:317
524
+ msgid "Resizing large images"
525
+ msgstr "Изменение размера больших изображений"
526
+
527
+ #: admin/pages/class-rio-settings.php:319
528
+ msgid ""
529
+ "When you upload images from a camera or stock, they may be too high "
530
+ "resolution and it is not necessary for web. The option allows you to "
531
+ "automatically change images resolution on upload."
532
+ msgstr ""
533
+ "Когда вы закачиваете изображения с камеры или фотостока, они могут быть "
534
+ "слишком высокого разрешения и для веба это не нужно. Опция позволяет "
535
+ "автоматически изменять разрешение изображений при загрузке."
536
+
537
+ #: admin/pages/class-rio-settings.php:335
538
+ msgid "Enter the maximum width (px)"
539
+ msgstr ""
540
+
541
+ #: admin/pages/class-rio-settings.php:337
542
+ #: admin/pages/class-rio-settings.php:347
543
+ msgid ""
544
+ "Set the maximum images resolution on the long side. For horizontal images, "
545
+ "this will be the width, and for vertical images - the height. The resolution "
546
+ "of the images will be changed proportionally according to the set value."
547
+ msgstr ""
548
+ "Задайте максимальное разрешение изображений по длинной стороне. Для "
549
+ "горизонтальных изображений это будет ширина, а для вертикальных — высота. "
550
+ "Разрешение изображений будет изменено пропорционально в соответствии с "
551
+ "заданным значением."
552
+
553
+ #: admin/pages/class-rio-settings.php:345
554
+ msgid "Enter the maximum height (px)"
555
+ msgstr ""
556
+
557
+ #: admin/pages/class-rio-settings.php:355
558
+ msgid "Optimize formats"
559
+ msgstr ""
560
+
561
+ #: admin/pages/class-rio-settings.php:362
562
+ msgid ""
563
+ "Choose which formats of images should be optimized and uncheck those that do "
564
+ "not need optimization."
565
+ msgstr ""
566
+
567
+ #: admin/pages/class-rio-settings.php:380
568
+ msgid "Optimize thumbnails"
569
+ msgstr "Оптимизировать миниатюры"
570
+
571
+ #: admin/pages/class-rio-settings.php:383
572
+ msgid ""
573
+ "Choose which sizes of thumbnails should be optimized and uncheck those that "
574
+ "do not need optimization."
575
+ msgstr ""
576
+ "Выберите какие размеры миниатюр следует оптимизировать и снимите галочки с "
577
+ "тех, оптимизация которых не нужна."
578
+
579
+ #: admin/pages/class-rio-settings.php:462
580
+ msgid "Manage backups"
581
+ msgstr "Управление резервными копиями"
582
+
583
+ #: admin/pages/class-rio-settings.php:465
584
+ msgid "You can restore the original images from a backup or clear them."
585
+ msgstr ""
586
+ "Вы можете восстановить оригинальные изображения из резервной копии или "
587
+ "очистить их."
588
+
589
+ #: admin/pages/class-rio-settings.php:474
590
+ msgid "Are you sure?"
591
+ msgstr "Вы уверены?"
592
+
593
+ #: admin/pages/class-rio-settings.php:475
594
+ msgid "Restore"
595
+ msgstr "Восстановить"
596
+
597
+ #: admin/pages/class-rio-settings.php:477
598
+ msgid "Are you sure that you want to clear image backups folder?"
599
+ msgstr ""
600
+ "Вы действительно хотите очистить папку с резервными копиями изображений?"
601
+
602
+ #: admin/pages/class-rio-settings.php:478
603
+ msgid "Clear Backup"
604
+ msgstr "Очистить резервные копии"
605
+
606
+ #: admin/pages/class-rio-settings.php:531
607
+ msgid "Restore completed."
608
+ msgstr "Восстановление завершено."
609
+
610
+ #: admin/pages/class-rio-settings.php:533
611
+ msgid "The backup folder was cleared."
612
+ msgstr "Папка с резервными копиями очищена."
613
+
614
+ #: admin/pages/class-rio-statistic.php:70
615
+ #: admin/pages/class-rio-statistic.php:113 views/clearfy-component-card.php:24
616
+ msgid "Robin image optimizer"
617
+ msgstr ""
618
+
619
+ #: admin/pages/class-rio-statistic.php:71
620
+ msgid "Compress bulk of images"
621
+ msgstr ""
622
+
623
+ #: admin/pages/class-rio-statistic.php:113
624
+ #: includes/classes/class-rio-media-library.php:483
625
+ msgid "Robin Image Optimizer"
626
+ msgstr ""
627
+
628
+ #: admin/pages/class-rio-statistic.php:120
629
+ msgid "Bulk optimization"
630
+ msgstr ""
631
+
632
+ #: admin/pages/class-rio-statistic.php:196
633
+ msgid "Image optimization dashboard"
634
+ msgstr "Панель управления оптимизацией изображений"
635
+
636
+ #: admin/pages/class-rio-statistic.php:197
637
+ msgid ""
638
+ "Monitor image optimization statistics and run on demand or scheduled "
639
+ "optimization."
640
+ msgstr ""
641
+ "Отслеживайте статистику оптимизации изображений и запускайте оптимизацию по "
642
+ "требованию или по расписанию."
643
+
644
+ #: admin/pages/class-rio-statistic.php:243
645
+ msgid ""
646
+ "You cannot use the premium server on a free plan. You must activate the "
647
+ "license to use all the features of the premium version."
648
+ msgstr ""
649
+
650
+ #: admin/pages/class-rio-statistic.php:244
651
+ msgid ""
652
+ "Your selected optimization server is down. This means that you cannot "
653
+ "optimize images through this server. Try selecting another optimization "
654
+ "server."
655
+ msgstr ""
656
+
657
+ #: admin/pages/class-rio-statistic.php:245
658
+ msgid "down"
659
+ msgstr ""
660
+
661
+ #: admin/pages/class-rio-statistic.php:246
662
+ msgid "stable"
663
+ msgstr ""
664
+
665
+ #: admin/pages/class-rio-statistic.php:247
666
+ #: views/part-bulk-optimization-log.php:139
667
+ #: views/part-bulk-optimization-statistic.php:50
668
+ msgid "Error"
669
+ msgstr "Ошибка"
670
+
671
+ #: admin/pages/class-rio-statistic.php:248
672
+ msgid "Cancel"
673
+ msgstr ""
674
+
675
+ #: admin/pages/class-rio-statistic.php:249
676
+ msgid "Confirm"
677
+ msgstr ""
678
+
679
+ #: admin/pages/class-rio-statistic.php:250
680
+ msgid "Select optimization way"
681
+ msgstr ""
682
+
683
+ #: admin/pages/class-rio-statistic.php:251
684
+ msgid "Optimize now"
685
+ msgstr ""
686
+
687
+ #: admin/pages/class-rio-statistic.php:252
688
+ #: includes/classes/class-rio-cron.php:46
689
+ msgid "Scheduled optimization"
690
+ msgstr ""
691
+
692
+ #: admin/pages/class-rio-statistic.php:253
693
+ msgid ""
694
+ "To start optimizing, you must complete migration from old plugin version."
695
+ msgstr ""
696
+
697
+ #: admin/pages/class-rio-statistic.php:254
698
+ msgid "All images from the media library are optimized."
699
+ msgstr "Все изображения из медиабиблиотеки оптимизированы."
700
+
701
+ #: admin/pages/class-rio-statistic.php:255
702
+ #, php-format
703
+ msgid ""
704
+ "Optimization in progress. Remained <span id=\"wio-total-unoptimized\">%s</"
705
+ "span> images."
706
+ msgstr ""
707
+
708
+ #: admin/pages/class-rio-statistic.php:256
709
+ msgid ""
710
+ "Are you sure that you want to leave the page? The optimization process is "
711
+ "not over yet, stay on the page until the end of the optimization process."
712
+ msgstr ""
713
+
714
+ #: admin/pages/class-rio-statistic.php:257
715
+ msgid "Do you want to start optimization without backup?"
716
+ msgstr "Вы хотите начать оптимизацию без возможности восстановления?"
717
+
718
+ #: admin/pages/class-rio-statistic.php:258
719
+ msgid "Resume"
720
+ msgstr "Возобновить"
721
+
722
+ #: admin/pages/class-rio-statistic.php:259
723
+ msgid "Completed"
724
+ msgstr ""
725
+
726
+ #: admin/pages/class-rio-statistic.php:260
727
+ #: views/part-bulk-optimization-button.php:20
728
+ #: views/part-bulk-optimization-button.php:27
729
+ msgid "Run"
730
+ msgstr "Запустить"
731
+
732
+ #: admin/pages/class-rio-statistic.php:261
733
+ msgid "Stop"
734
+ msgstr "Остановить"
735
+
736
+ #: admin/pages/class-rio-statistic.php:262
737
+ #: views/part-bulk-optimization-button.php:25
738
+ msgid "Stop shedule optimization"
739
+ msgstr ""
740
+
741
+ #: includes/classes/class-rio-attachment.php:251
742
+ msgid "Attachment cannot be optimized."
743
+ msgstr ""
744
+
745
+ #: includes/classes/class-rio-attachment.php:254
746
+ #, php-format
747
+ msgid "Attachment #%d doesn't have metadata, the image may be damaged."
748
+ msgstr ""
749
+
750
+ #: includes/classes/class-rio-attachment.php:256
751
+ #, php-format
752
+ msgid "File \"(%s)\" doesn't exist"
753
+ msgstr ""
754
+
755
+ #: includes/classes/class-rio-backup.php:321
756
+ msgid "Could not copy the file to the temporary directory"
757
+ msgstr ""
758
+
759
+ #: includes/classes/class-rio-backup.php:334
760
+ msgid ""
761
+ "It is not possible to create a temporary file, the backup folder is not "
762
+ "writable."
763
+ msgstr ""
764
+
765
+ #: includes/classes/class-rio-cron.php:46
766
+ msgid "Schedule your images optimization."
767
+ msgstr ""
768
+
769
+ #: includes/classes/class-rio-cron.php:53
770
+ #: includes/classes/class-rio-cron.php:94
771
+ msgid "1 min"
772
+ msgstr ""
773
+
774
+ #: includes/classes/class-rio-cron.php:54
775
+ #: includes/classes/class-rio-cron.php:98
776
+ msgid "2 min"
777
+ msgstr ""
778
+
779
+ #: includes/classes/class-rio-cron.php:55
780
+ #: includes/classes/class-rio-cron.php:102
781
+ msgid "5 min"
782
+ msgstr ""
783
+
784
+ #: includes/classes/class-rio-cron.php:56
785
+ #: includes/classes/class-rio-cron.php:106
786
+ msgid "10 min"
787
+ msgstr ""
788
+
789
+ #: includes/classes/class-rio-cron.php:57
790
+ #: includes/classes/class-rio-cron.php:110
791
+ msgid "30 min"
792
+ msgstr ""
793
+
794
+ #: includes/classes/class-rio-cron.php:58
795
+ msgid "Hour"
796
+ msgstr ""
797
+
798
+ #: includes/classes/class-rio-cron.php:59
799
+ msgid "Day"
800
+ msgstr ""
801
+
802
+ #: includes/classes/class-rio-cron.php:62
803
+ msgid "Run every"
804
+ msgstr ""
805
+
806
+ #: includes/classes/class-rio-cron.php:63
807
+ msgid "Select time at which the task will be repeated."
808
+ msgstr ""
809
+
810
+ #: includes/classes/class-rio-cron.php:69
811
+ msgid "Images per iteration"
812
+ msgstr ""
813
+
814
+ #: includes/classes/class-rio-cron.php:71
815
+ msgid ""
816
+ "Specify the number of images that will be optimized during the job. For "
817
+ "example, if you enter 5 and select 5 min, the plugin will optimize 5 images "
818
+ "every 5 minutes."
819
+ msgstr ""
820
+
821
+ #: includes/classes/class-rio-cron.php:114
822
+ msgid "60 min"
823
+ msgstr ""
824
+
825
+ #: includes/classes/class-rio-cron.php:118
826
+ msgid "daily"
827
+ msgstr ""
828
+
829
+ #: includes/classes/class-rio-image-statistic.php:364
830
+ msgid "Unknown error"
831
+ msgstr ""
832
+
833
+ #: includes/classes/class-rio-media-library.php:253
834
+ #: includes/classes/class-rio-media-library.php:257
835
+ msgid "No access for writing backups."
836
+ msgstr "Нет доступа для записи резервных копий."
837
+
838
+ #: includes/functions.php:475
839
+ #, php-format
840
+ msgid ""
841
+ "There were big changes in database schema. Please <a href=\"#\" id=\"wbcr-"
842
+ "wio-meta-migration-action\" class=\"button button-default\" data-nonce=\"%s"
843
+ "\">click here</a> to upgrade it to the latest version"
844
+ msgstr ""
845
+
846
+ #: robin-image-optimizer.php:33
847
+ msgid "Webcraftic Robin image optimizer"
848
+ msgstr ""
849
+
850
+ #: views/clearfy-component-card.php:30
851
+ msgid ""
852
+ "Automatic image optimization without any quality loss. No limitations, no "
853
+ "paid plans. The best Wordpress image optimization plugin allows optimizing "
854
+ "any amount of images for free!"
855
+ msgstr ""
856
+
857
+ #: views/modal-bulk-optimization.php:2
858
+ msgid "What you need to know before starting optimization."
859
+ msgstr ""
860
+
861
+ #: views/modal-bulk-optimization.php:15
862
+ msgid ""
863
+ "If you choose to optimize now, you should keep this page open until a bulk "
864
+ "optimization is performed. If you leave, the optimization process will stop "
865
+ "and you will need to run it again.."
866
+ msgstr ""
867
+
868
+ #: views/modal-bulk-optimization.php:26
869
+ msgid ""
870
+ "If you choose to a scheduled optimization, you can leave this page or close "
871
+ "the browser. A plugin without your participation will optimize images via "
872
+ "cron until it optimizes them all. This optimization method is slower than "
873
+ "its alternative, but you don’t have to waste your time on manual "
874
+ "optimization."
875
+ msgstr ""
876
+
877
+ #: views/modal-bulk-optimization.php:37
878
+ msgid ""
879
+ "Remember that the optimization of a large number of images may take some "
880
+ "time depending on your server and network speed."
881
+ msgstr ""
882
+
883
+ #: views/part-bulk-optimization-log.php:104
884
+ msgid "Optimization log"
885
+ msgstr ""
886
+
887
+ #: views/part-bulk-optimization-log.php:105
888
+ msgid ""
889
+ "Optimization log shows the last 100 optimized images. You can check the "
890
+ "quality of the image by clicking on the file name."
891
+ msgstr ""
892
+
893
+ #: views/part-bulk-optimization-log.php:112
894
+ msgid "File name"
895
+ msgstr ""
896
+
897
+ #: views/part-bulk-optimization-log.php:113
898
+ msgid "Inital size"
899
+ msgstr ""
900
+
901
+ #: views/part-bulk-optimization-log.php:114
902
+ msgid "Current size"
903
+ msgstr ""
904
+
905
+ #: views/part-bulk-optimization-log.php:115
906
+ msgid "WebP size"
907
+ msgstr ""
908
+
909
+ #: views/part-bulk-optimization-log.php:116
910
+ msgid "Original Saving"
911
+ msgstr ""
912
+
913
+ #: views/part-bulk-optimization-log.php:118
914
+ msgid "Compressed thumbnails"
915
+ msgstr ""
916
+
917
+ #: views/part-bulk-optimization-log.php:120
918
+ msgid "Overall Saving"
919
+ msgstr ""
920
+
921
+ #: views/part-bulk-optimization-log.php:126
922
+ msgid "You don't have optimized images."
923
+ msgstr ""
924
+
925
+ #: views/part-bulk-optimization-log.php:143
926
+ msgid "Unknown error."
927
+ msgstr ""
928
+
929
+ #: views/part-bulk-optimization-servers.php:13
930
+ msgid "Select optimization server:"
931
+ msgstr ""
932
+
933
+ #: views/part-bulk-optimization-servers.php:14
934
+ msgid ""
935
+ "Please, find the list of available servers for image optimization below. If "
936
+ "the server has a state “Down”, it means that the server is not available, "
937
+ "and you should choose another one. “Stable” means that the server is "
938
+ "available and you can use it."
939
+ msgstr ""
940
+
941
+ #: views/part-bulk-optimization-servers.php:31
942
+ msgid "Status"
943
+ msgstr ""
944
+
945
+ #: views/part-bulk-optimization-servers.php:35
946
+ msgid "Credits"
947
+ msgstr ""
948
+
949
+ #: views/part-bulk-optimization-servers.php:36
950
+ msgid "Only original images are limited. Thumbnails are not limited"
951
+ msgstr ""
952
+
953
+ #: views/part-bulk-optimization-servers.php:39
954
+ msgid "Next credits update"
955
+ msgstr ""
956
+
957
+ #: views/part-bulk-optimization-servers.php:40
958
+ msgid "Date when the limit is topped up"
959
+ msgstr ""
960
+
961
+ #: views/part-bulk-optimization-statistic.php:24
962
+ msgid "You optimized"
963
+ msgstr "Вы оптимизировали"
964
+
965
+ #: views/part-bulk-optimization-statistic.php:28
966
+ msgid "of your website's images"
967
+ msgstr "изображений сайта"
968
+
969
+ #: views/part-bulk-optimization-statistic.php:36
970
+ msgid "Unoptimized"
971
+ msgstr "Не оптимизировано"
972
+
973
+ #: views/part-bulk-optimization-statistic.php:43
974
+ msgid "Optimized"
975
+ msgstr "Оптимизировано"
976
+
977
+ #: views/part-bulk-optimization-statistic.php:57
978
+ msgid "Statistics"
979
+ msgstr "Статистика"
980
+
981
+ #: views/part-bulk-optimization-statistic.php:59
982
+ msgid "Original size"
983
+ msgstr "Оригинальный размер"
984
+
985
+ #: views/part-bulk-optimization-statistic.php:67
986
+ msgid "Optimized size"
987
+ msgstr "Оптимизированный размер"
988
+
989
+ #: views/part-bulk-optimization-statistic.php:83
990
+ msgid "that's the size you saved <br>by using Image Optimizer"
991
+ msgstr ""
992
+ "вы сохранили благодаря<br>\n"
993
+ "Image Optimizer"
994
+
995
+ #: views/part-bulk-optimization-tabs.php:23
996
+ msgid "Media library"
997
+ msgstr ""
998
+
999
+ #: views/part-bulk-optimization-tabs.php:32
1000
+ msgid "Custom folders"
1001
+ msgstr ""
1002
+
1003
+ #: views/part-bulk-optimization-tabs.php:42
1004
+ msgid "Nextgen gallery"
1005
+ msgstr ""
1006
+
1007
+ #: views/part-settings-page-error-log-options.php:13
1008
+ msgid ""
1009
+ "Additional logging levels. Enable these options only when the plugin support "
1010
+ "service asks for it. If you use logging always, it can slow down your site."
1011
+ msgstr ""
1012
+
1013
+ #: views/part-settings-page-error-log-options.php:18
1014
+ msgid "Keep an error log on frontend"
1015
+ msgstr ""
1016
+
1017
+ #: views/part-settings-page-error-log-options.php:21
1018
+ msgid ""
1019
+ "Option enables error logging on frontend. If for some reason webp images are "
1020
+ "not displayed on the front-end, you can use this option to catch errors and "
1021
+ "send this report to the plugin support service."
1022
+ msgstr ""
1023
+
1024
+ #~ msgid "images."
1025
+ #~ msgstr "изображений."
1026
+
1027
+ #, fuzzy
1028
+ #~| msgid "file not found"
1029
+ #~ msgid "File not found"
1030
+ #~ msgstr "файл не найден"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/addons/admin/assets/js/custom-folders.js CHANGED
@@ -86,10 +86,10 @@
86
  if( response.data && response.data.error_message ) {
87
  // todo: так как фреймворк не используется в аддоне, нужно доработать этот кусок кода. Он не
88
  // может быть скомпилирован.
89
- var noticeId = $.wbcr_factory_clearfy_227.app.showNotice(response.data.error_message, 'danger');
90
 
91
  setTimeout(function() {
92
- $.wbcr_factory_clearfy_227.app.hideNotice(noticeId);
93
  }, 5000);
94
  }
95
  return;
@@ -150,10 +150,10 @@
150
  if( response.data && response.data.error_message ) {
151
  // todo: так как фреймворк не используется в аддоне, нужно доработать этот кусок кода. Он не
152
  // может быть скомпилирован.
153
- var noticeId = $.wbcr_factory_clearfy_227.app.showNotice(response.data.error_message, 'danger');
154
 
155
  setTimeout(function() {
156
- $.wbcr_factory_clearfy_227.app.hideNotice(noticeId);
157
  }, 5000);
158
  }
159
  return;
86
  if( response.data && response.data.error_message ) {
87
  // todo: так как фреймворк не используется в аддоне, нужно доработать этот кусок кода. Он не
88
  // может быть скомпилирован.
89
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice(response.data.error_message, 'danger');
90
 
91
  setTimeout(function() {
92
+ $.wbcr_factory_clearfy_230.app.hideNotice(noticeId);
93
  }, 5000);
94
  }
95
  return;
150
  if( response.data && response.data.error_message ) {
151
  // todo: так как фреймворк не используется в аддоне, нужно доработать этот кусок кода. Он не
152
  // может быть скомпилирован.
153
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice(response.data.error_message, 'danger');
154
 
155
  setTimeout(function() {
156
+ $.wbcr_factory_clearfy_230.app.hideNotice(noticeId);
157
  }, 5000);
158
  }
159
  return;
libs/addons/admin/boot.php CHANGED
@@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  * Flush configuration after saving the settings
21
  *
22
  * @param WHM_Plugin $plugin
23
- * @param Wbcr_FactoryPages435_ImpressiveThemplate $page
24
  *
25
  * @return bool
26
  */
20
  * Flush configuration after saving the settings
21
  *
22
  * @param WHM_Plugin $plugin
23
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $page
24
  *
25
  * @return bool
26
  */
libs/addons/includes/classes/webp/class-webp-delivery.php CHANGED
@@ -83,55 +83,55 @@ class Delivery {
83
  /**
84
  * Check whether WebP options enabled or not.
85
  *
86
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
87
  * @since 1.0.4
88
  *
89
- * @return bool
90
  */
91
  public static function is_webp_enabled() {
92
  return (bool) \WRIO_Plugin::app()->getPopulateOption( 'convert_webp_format' );
93
  }
94
 
95
  /**
96
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
97
- * @since 1.0.4
98
  * @return bool
 
 
99
  */
100
  public static function is_redirect_delivery_mode() {
101
  return self::REDIRECT_DELIVERY_MODE === static::get_delivery_mode();
102
  }
103
 
104
  /**
105
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
106
- * @since 1.0.4
107
  * @return bool
 
 
108
  */
109
  public static function is_picture_delivery_mode() {
110
  return self::PICTURE_DELIVERY_MODE === static::get_delivery_mode();
111
  }
112
 
113
  /**
114
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
115
- * @since 1.0.4
116
  * @return bool
 
 
117
  */
118
  public static function is_url_delivery_mode() {
119
  return self::URL_DELIVERY_MODE === static::get_delivery_mode();
120
  }
121
 
122
  /**
123
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
124
- * @since 1.0.4
125
  * @return bool
 
 
126
  */
127
  public static function is_default_delivery_mode() {
128
  return self::DEFAULT_DELIVERY_MODE === static::get_delivery_mode();
129
  }
130
 
131
  /**
132
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
133
- * @since 1.0.4
134
  * @return string
 
 
135
  */
136
  public static function get_delivery_mode() {
137
  $delivery_mode = \WRIO_Plugin::app()->getPopulateOption( 'webp_delivery_mode' );
@@ -169,7 +169,7 @@ class Delivery {
169
  /**
170
  * Process tags to replace those elements which match converted to WebP within buffer.
171
  *
172
- * @param string $content HTML buffer.
173
  *
174
  * @return string
175
  */
@@ -177,11 +177,10 @@ class Delivery {
177
  $raw_content = $content;
178
 
179
  // Don't do anything with the RSS feed.
180
- if ( is_feed() || empty( $content ) ) {
181
  //WRIO_Logger::info( "Buffer content is empty, skipping processing" );
182
  return $content;
183
  }
184
-
185
  if ( static::is_picture_delivery_mode() ) {
186
  if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) {
187
  //for AMP pages the <picture> tag is not allowed
@@ -191,7 +190,7 @@ class Delivery {
191
  require_once WRIOP_PLUGIN_DIR . '/includes/classes/webp/class-webp-html-picture-tags.php';
192
  $content = Picture_Tags::replace( $content );
193
  } else if ( static::is_url_delivery_mode() ) {
194
- if(!is_admin()) {
195
  require_once( WRIOP_PLUGIN_DIR . '/includes/classes/webp/class-webp-html-image-urls-replacer.php' );
196
  $content = Urls_Replacer::replace( $content );
197
  }
@@ -214,7 +213,7 @@ class Delivery {
214
  * Get url for webp
215
  * returns second argument if no webp
216
  *
217
- * @param string $source_url (ie http://example.com/wp-content/image.jpg)
218
  * @param string $return_value_on_fail
219
  *
220
  * @return string
@@ -288,12 +287,12 @@ class Delivery {
288
  }
289
 
290
  /**
291
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
292
- * @since 1.4.0
293
- *
294
  * @param string $source_url
295
  *
296
  * @return bool
 
 
 
297
  */
298
  protected static function is_wpmedia_url( $source_url ) {
299
  $upload_dir = wp_get_upload_dir();
@@ -310,12 +309,12 @@ class Delivery {
310
  }
311
 
312
  /**
313
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
314
- * @since 1.4.0
315
- *
316
  * @param string $source_url
317
  *
318
  * @return bool
 
 
 
319
  */
320
  protected static function is_support_format( $source_url ) {
321
  if ( ! preg_match( '#(jpe?g|png)$#', $source_url ) ) {
@@ -326,12 +325,12 @@ class Delivery {
326
  }
327
 
328
  /**
329
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
330
- * @since 1.4.0
331
- *
332
  * @param string $source_url
333
  *
334
  * @return bool
 
 
 
335
  */
336
  protected static function is_external_url( $source_url ) {
337
  if ( strpos( $source_url, get_site_url() ) === false ) {
83
  /**
84
  * Check whether WebP options enabled or not.
85
  *
86
+ * @return bool
87
  * @since 1.0.4
88
  *
89
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
90
  */
91
  public static function is_webp_enabled() {
92
  return (bool) \WRIO_Plugin::app()->getPopulateOption( 'convert_webp_format' );
93
  }
94
 
95
  /**
 
 
96
  * @return bool
97
+ * @since 1.0.4
98
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
99
  */
100
  public static function is_redirect_delivery_mode() {
101
  return self::REDIRECT_DELIVERY_MODE === static::get_delivery_mode();
102
  }
103
 
104
  /**
 
 
105
  * @return bool
106
+ * @since 1.0.4
107
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
108
  */
109
  public static function is_picture_delivery_mode() {
110
  return self::PICTURE_DELIVERY_MODE === static::get_delivery_mode();
111
  }
112
 
113
  /**
 
 
114
  * @return bool
115
+ * @since 1.0.4
116
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
117
  */
118
  public static function is_url_delivery_mode() {
119
  return self::URL_DELIVERY_MODE === static::get_delivery_mode();
120
  }
121
 
122
  /**
 
 
123
  * @return bool
124
+ * @since 1.0.4
125
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
126
  */
127
  public static function is_default_delivery_mode() {
128
  return self::DEFAULT_DELIVERY_MODE === static::get_delivery_mode();
129
  }
130
 
131
  /**
 
 
132
  * @return string
133
+ * @since 1.0.4
134
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
135
  */
136
  public static function get_delivery_mode() {
137
  $delivery_mode = \WRIO_Plugin::app()->getPopulateOption( 'webp_delivery_mode' );
169
  /**
170
  * Process tags to replace those elements which match converted to WebP within buffer.
171
  *
172
+ * @param string $content HTML buffer.
173
  *
174
  * @return string
175
  */
177
  $raw_content = $content;
178
 
179
  // Don't do anything with the RSS feed.
180
+ if ( is_feed() || empty( $content ) || ! is_null( json_decode( $content ) ) ) {
181
  //WRIO_Logger::info( "Buffer content is empty, skipping processing" );
182
  return $content;
183
  }
 
184
  if ( static::is_picture_delivery_mode() ) {
185
  if ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() ) {
186
  //for AMP pages the <picture> tag is not allowed
190
  require_once WRIOP_PLUGIN_DIR . '/includes/classes/webp/class-webp-html-picture-tags.php';
191
  $content = Picture_Tags::replace( $content );
192
  } else if ( static::is_url_delivery_mode() ) {
193
+ if ( ! is_admin() ) {
194
  require_once( WRIOP_PLUGIN_DIR . '/includes/classes/webp/class-webp-html-image-urls-replacer.php' );
195
  $content = Urls_Replacer::replace( $content );
196
  }
213
  * Get url for webp
214
  * returns second argument if no webp
215
  *
216
+ * @param string $source_url (ie http://example.com/wp-content/image.jpg)
217
  * @param string $return_value_on_fail
218
  *
219
  * @return string
287
  }
288
 
289
  /**
 
 
 
290
  * @param string $source_url
291
  *
292
  * @return bool
293
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
294
+ * @since 1.4.0
295
+ *
296
  */
297
  protected static function is_wpmedia_url( $source_url ) {
298
  $upload_dir = wp_get_upload_dir();
309
  }
310
 
311
  /**
 
 
 
312
  * @param string $source_url
313
  *
314
  * @return bool
315
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
316
+ * @since 1.4.0
317
+ *
318
  */
319
  protected static function is_support_format( $source_url ) {
320
  if ( ! preg_match( '#(jpe?g|png)$#', $source_url ) ) {
325
  }
326
 
327
  /**
 
 
 
328
  * @param string $source_url
329
  *
330
  * @return bool
331
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
332
+ * @since 1.4.0
333
+ *
334
  */
335
  protected static function is_external_url( $source_url ) {
336
  if ( strpos( $source_url, get_site_url() ) === false ) {
libs/addons/includes/classes/webp/vendor/autoload.php CHANGED
@@ -1,7 +1,7 @@
1
- <?php
2
-
3
- // autoload.php @generated by Composer
4
-
5
- require_once __DIR__ . '/composer/autoload_real.php';
6
-
7
- return ComposerAutoloaderInit84320a6a225dd65e40820c51b32fdca4::getLoader();
1
+ <?php
2
+
3
+ // autoload.php @generated by Composer
4
+
5
+ require_once __DIR__ . '/composer/autoload_real.php';
6
+
7
+ return ComposerAutoloaderInit84320a6a225dd65e40820c51b32fdca4::getLoader();
libs/addons/includes/classes/webp/vendor/composer/ClassLoader.php CHANGED
@@ -1,445 +1,445 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Composer.
5
- *
6
- * (c) Nils Adermann <naderman@naderman.de>
7
- * Jordi Boggiano <j.boggiano@seld.be>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
- namespace Composer\Autoload;
14
-
15
- /**
16
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
- *
18
- * $loader = new \Composer\Autoload\ClassLoader();
19
- *
20
- * // register classes with namespaces
21
- * $loader->add('Symfony\Component', __DIR__.'/component');
22
- * $loader->add('Symfony', __DIR__.'/framework');
23
- *
24
- * // activate the autoloader
25
- * $loader->register();
26
- *
27
- * // to enable searching the include path (eg. for PEAR packages)
28
- * $loader->setUseIncludePath(true);
29
- *
30
- * In this example, if you try to use a class in the Symfony\Component
31
- * namespace or one of its children (Symfony\Component\Console for instance),
32
- * the autoloader will first look for the class under the component/
33
- * directory, and it will then fallback to the framework/ directory if not
34
- * found before giving up.
35
- *
36
- * This class is loosely based on the Symfony UniversalClassLoader.
37
- *
38
- * @author Fabien Potencier <fabien@symfony.com>
39
- * @author Jordi Boggiano <j.boggiano@seld.be>
40
- * @see https://www.php-fig.org/psr/psr-0/
41
- * @see https://www.php-fig.org/psr/psr-4/
42
- */
43
- class ClassLoader
44
- {
45
- // PSR-4
46
- private $prefixLengthsPsr4 = array();
47
- private $prefixDirsPsr4 = array();
48
- private $fallbackDirsPsr4 = array();
49
-
50
- // PSR-0
51
- private $prefixesPsr0 = array();
52
- private $fallbackDirsPsr0 = array();
53
-
54
- private $useIncludePath = false;
55
- private $classMap = array();
56
- private $classMapAuthoritative = false;
57
- private $missingClasses = array();
58
- private $apcuPrefix;
59
-
60
- public function getPrefixes()
61
- {
62
- if (!empty($this->prefixesPsr0)) {
63
- return call_user_func_array('array_merge', $this->prefixesPsr0);
64
- }
65
-
66
- return array();
67
- }
68
-
69
- public function getPrefixesPsr4()
70
- {
71
- return $this->prefixDirsPsr4;
72
- }
73
-
74
- public function getFallbackDirs()
75
- {
76
- return $this->fallbackDirsPsr0;
77
- }
78
-
79
- public function getFallbackDirsPsr4()
80
- {
81
- return $this->fallbackDirsPsr4;
82
- }
83
-
84
- public function getClassMap()
85
- {
86
- return $this->classMap;
87
- }
88
-
89
- /**
90
- * @param array $classMap Class to filename map
91
- */
92
- public function addClassMap(array $classMap)
93
- {
94
- if ($this->classMap) {
95
- $this->classMap = array_merge($this->classMap, $classMap);
96
- } else {
97
- $this->classMap = $classMap;
98
- }
99
- }
100
-
101
- /**
102
- * Registers a set of PSR-0 directories for a given prefix, either
103
- * appending or prepending to the ones previously set for this prefix.
104
- *
105
- * @param string $prefix The prefix
106
- * @param array|string $paths The PSR-0 root directories
107
- * @param bool $prepend Whether to prepend the directories
108
- */
109
- public function add($prefix, $paths, $prepend = false)
110
- {
111
- if (!$prefix) {
112
- if ($prepend) {
113
- $this->fallbackDirsPsr0 = array_merge(
114
- (array) $paths,
115
- $this->fallbackDirsPsr0
116
- );
117
- } else {
118
- $this->fallbackDirsPsr0 = array_merge(
119
- $this->fallbackDirsPsr0,
120
- (array) $paths
121
- );
122
- }
123
-
124
- return;
125
- }
126
-
127
- $first = $prefix[0];
128
- if (!isset($this->prefixesPsr0[$first][$prefix])) {
129
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
130
-
131
- return;
132
- }
133
- if ($prepend) {
134
- $this->prefixesPsr0[$first][$prefix] = array_merge(
135
- (array) $paths,
136
- $this->prefixesPsr0[$first][$prefix]
137
- );
138
- } else {
139
- $this->prefixesPsr0[$first][$prefix] = array_merge(
140
- $this->prefixesPsr0[$first][$prefix],
141
- (array) $paths
142
- );
143
- }
144
- }
145
-
146
- /**
147
- * Registers a set of PSR-4 directories for a given namespace, either
148
- * appending or prepending to the ones previously set for this namespace.
149
- *
150
- * @param string $prefix The prefix/namespace, with trailing '\\'
151
- * @param array|string $paths The PSR-4 base directories
152
- * @param bool $prepend Whether to prepend the directories
153
- *
154
- * @throws \InvalidArgumentException
155
- */
156
- public function addPsr4($prefix, $paths, $prepend = false)
157
- {
158
- if (!$prefix) {
159
- // Register directories for the root namespace.
160
- if ($prepend) {
161
- $this->fallbackDirsPsr4 = array_merge(
162
- (array) $paths,
163
- $this->fallbackDirsPsr4
164
- );
165
- } else {
166
- $this->fallbackDirsPsr4 = array_merge(
167
- $this->fallbackDirsPsr4,
168
- (array) $paths
169
- );
170
- }
171
- } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
172
- // Register directories for a new namespace.
173
- $length = strlen($prefix);
174
- if ('\\' !== $prefix[$length - 1]) {
175
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
176
- }
177
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
178
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
179
- } elseif ($prepend) {
180
- // Prepend directories for an already registered namespace.
181
- $this->prefixDirsPsr4[$prefix] = array_merge(
182
- (array) $paths,
183
- $this->prefixDirsPsr4[$prefix]
184
- );
185
- } else {
186
- // Append directories for an already registered namespace.
187
- $this->prefixDirsPsr4[$prefix] = array_merge(
188
- $this->prefixDirsPsr4[$prefix],
189
- (array) $paths
190
- );
191
- }
192
- }
193
-
194
- /**
195
- * Registers a set of PSR-0 directories for a given prefix,
196
- * replacing any others previously set for this prefix.
197
- *
198
- * @param string $prefix The prefix
199
- * @param array|string $paths The PSR-0 base directories
200
- */
201
- public function set($prefix, $paths)
202
- {
203
- if (!$prefix) {
204
- $this->fallbackDirsPsr0 = (array) $paths;
205
- } else {
206
- $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
207
- }
208
- }
209
-
210
- /**
211
- * Registers a set of PSR-4 directories for a given namespace,
212
- * replacing any others previously set for this namespace.
213
- *
214
- * @param string $prefix The prefix/namespace, with trailing '\\'
215
- * @param array|string $paths The PSR-4 base directories
216
- *
217
- * @throws \InvalidArgumentException
218
- */
219
- public function setPsr4($prefix, $paths)
220
- {
221
- if (!$prefix) {
222
- $this->fallbackDirsPsr4 = (array) $paths;
223
- } else {
224
- $length = strlen($prefix);
225
- if ('\\' !== $prefix[$length - 1]) {
226
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
227
- }
228
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
229
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
230
- }
231
- }
232
-
233
- /**
234
- * Turns on searching the include path for class files.
235
- *
236
- * @param bool $useIncludePath
237
- */
238
- public function setUseIncludePath($useIncludePath)
239
- {
240
- $this->useIncludePath = $useIncludePath;
241
- }
242
-
243
- /**
244
- * Can be used to check if the autoloader uses the include path to check
245
- * for classes.
246
- *
247
- * @return bool
248
- */
249
- public function getUseIncludePath()
250
- {
251
- return $this->useIncludePath;
252
- }
253
-
254
- /**
255
- * Turns off searching the prefix and fallback directories for classes
256
- * that have not been registered with the class map.
257
- *
258
- * @param bool $classMapAuthoritative
259
- */
260
- public function setClassMapAuthoritative($classMapAuthoritative)
261
- {
262
- $this->classMapAuthoritative = $classMapAuthoritative;
263
- }
264
-
265
- /**
266
- * Should class lookup fail if not found in the current class map?
267
- *
268
- * @return bool
269
- */
270
- public function isClassMapAuthoritative()
271
- {
272
- return $this->classMapAuthoritative;
273
- }
274
-
275
- /**
276
- * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
277
- *
278
- * @param string|null $apcuPrefix
279
- */
280
- public function setApcuPrefix($apcuPrefix)
281
- {
282
- $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
283
- }
284
-
285
- /**
286
- * The APCu prefix in use, or null if APCu caching is not enabled.
287
- *
288
- * @return string|null
289
- */
290
- public function getApcuPrefix()
291
- {
292
- return $this->apcuPrefix;
293
- }
294
-
295
- /**
296
- * Registers this instance as an autoloader.
297
- *
298
- * @param bool $prepend Whether to prepend the autoloader or not
299
- */
300
- public function register($prepend = false)
301
- {
302
- spl_autoload_register(array($this, 'loadClass'), true, $prepend);
303
- }
304
-
305
- /**
306
- * Unregisters this instance as an autoloader.
307
- */
308
- public function unregister()
309
- {
310
- spl_autoload_unregister(array($this, 'loadClass'));
311
- }
312
-
313
- /**
314
- * Loads the given class or interface.
315
- *
316
- * @param string $class The name of the class
317
- * @return bool|null True if loaded, null otherwise
318
- */
319
- public function loadClass($class)
320
- {
321
- if ($file = $this->findFile($class)) {
322
- includeFile($file);
323
-
324
- return true;
325
- }
326
- }
327
-
328
- /**
329
- * Finds the path to the file where the class is defined.
330
- *
331
- * @param string $class The name of the class
332
- *
333
- * @return string|false The path if found, false otherwise
334
- */
335
- public function findFile($class)
336
- {
337
- // class map lookup
338
- if (isset($this->classMap[$class])) {
339
- return $this->classMap[$class];
340
- }
341
- if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
342
- return false;
343
- }
344
- if (null !== $this->apcuPrefix) {
345
- $file = apcu_fetch($this->apcuPrefix.$class, $hit);
346
- if ($hit) {
347
- return $file;
348
- }
349
- }
350
-
351
- $file = $this->findFileWithExtension($class, '.php');
352
-
353
- // Search for Hack files if we are running on HHVM
354
- if (false === $file && defined('HHVM_VERSION')) {
355
- $file = $this->findFileWithExtension($class, '.hh');
356
- }
357
-
358
- if (null !== $this->apcuPrefix) {
359
- apcu_add($this->apcuPrefix.$class, $file);
360
- }
361
-
362
- if (false === $file) {
363
- // Remember that this class does not exist.
364
- $this->missingClasses[$class] = true;
365
- }
366
-
367
- return $file;
368
- }
369
-
370
- private function findFileWithExtension($class, $ext)
371
- {
372
- // PSR-4 lookup
373
- $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
374
-
375
- $first = $class[0];
376
- if (isset($this->prefixLengthsPsr4[$first])) {
377
- $subPath = $class;
378
- while (false !== $lastPos = strrpos($subPath, '\\')) {
379
- $subPath = substr($subPath, 0, $lastPos);
380
- $search = $subPath . '\\';
381
- if (isset($this->prefixDirsPsr4[$search])) {
382
- $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
383
- foreach ($this->prefixDirsPsr4[$search] as $dir) {
384
- if (file_exists($file = $dir . $pathEnd)) {
385
- return $file;
386
- }
387
- }
388
- }
389
- }
390
- }
391
-
392
- // PSR-4 fallback dirs
393
- foreach ($this->fallbackDirsPsr4 as $dir) {
394
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
395
- return $file;
396
- }
397
- }
398
-
399
- // PSR-0 lookup
400
- if (false !== $pos = strrpos($class, '\\')) {
401
- // namespaced class name
402
- $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
403
- . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
404
- } else {
405
- // PEAR-like class name
406
- $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
407
- }
408
-
409
- if (isset($this->prefixesPsr0[$first])) {
410
- foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
411
- if (0 === strpos($class, $prefix)) {
412
- foreach ($dirs as $dir) {
413
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
414
- return $file;
415
- }
416
- }
417
- }
418
- }
419
- }
420
-
421
- // PSR-0 fallback dirs
422
- foreach ($this->fallbackDirsPsr0 as $dir) {
423
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
424
- return $file;
425
- }
426
- }
427
-
428
- // PSR-0 include paths.
429
- if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
430
- return $file;
431
- }
432
-
433
- return false;
434
- }
435
- }
436
-
437
- /**
438
- * Scope isolated include.
439
- *
440
- * Prevents access to $this/self from included files.
441
- */
442
- function includeFile($file)
443
- {
444
- include $file;
445
- }
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
+ namespace Composer\Autoload;
14
+
15
+ /**
16
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
+ *
18
+ * $loader = new \Composer\Autoload\ClassLoader();
19
+ *
20
+ * // register classes with namespaces
21
+ * $loader->add('Symfony\Component', __DIR__.'/component');
22
+ * $loader->add('Symfony', __DIR__.'/framework');
23
+ *
24
+ * // activate the autoloader
25
+ * $loader->register();
26
+ *
27
+ * // to enable searching the include path (eg. for PEAR packages)
28
+ * $loader->setUseIncludePath(true);
29
+ *
30
+ * In this example, if you try to use a class in the Symfony\Component
31
+ * namespace or one of its children (Symfony\Component\Console for instance),
32
+ * the autoloader will first look for the class under the component/
33
+ * directory, and it will then fallback to the framework/ directory if not
34
+ * found before giving up.
35
+ *
36
+ * This class is loosely based on the Symfony UniversalClassLoader.
37
+ *
38
+ * @author Fabien Potencier <fabien@symfony.com>
39
+ * @author Jordi Boggiano <j.boggiano@seld.be>
40
+ * @see http://www.php-fig.org/psr/psr-0/
41
+ * @see http://www.php-fig.org/psr/psr-4/
42
+ */
43
+ class ClassLoader
44
+ {
45
+ // PSR-4
46
+ private $prefixLengthsPsr4 = array();
47
+ private $prefixDirsPsr4 = array();
48
+ private $fallbackDirsPsr4 = array();
49
+
50
+ // PSR-0
51
+ private $prefixesPsr0 = array();
52
+ private $fallbackDirsPsr0 = array();
53
+
54
+ private $useIncludePath = false;
55
+ private $classMap = array();
56
+ private $classMapAuthoritative = false;
57
+ private $missingClasses = array();
58
+ private $apcuPrefix;
59
+
60
+ public function getPrefixes()
61
+ {
62
+ if (!empty($this->prefixesPsr0)) {
63
+ return call_user_func_array('array_merge', $this->prefixesPsr0);
64
+ }
65
+
66
+ return array();
67
+ }
68
+
69
+ public function getPrefixesPsr4()
70
+ {
71
+ return $this->prefixDirsPsr4;
72
+ }
73
+
74
+ public function getFallbackDirs()
75
+ {
76
+ return $this->fallbackDirsPsr0;
77
+ }
78
+
79
+ public function getFallbackDirsPsr4()
80
+ {
81
+ return $this->fallbackDirsPsr4;
82
+ }
83
+
84
+ public function getClassMap()
85
+ {
86
+ return $this->classMap;
87
+ }
88
+
89
+ /**
90
+ * @param array $classMap Class to filename map
91
+ */
92
+ public function addClassMap(array $classMap)
93
+ {
94
+ if ($this->classMap) {
95
+ $this->classMap = array_merge($this->classMap, $classMap);
96
+ } else {
97
+ $this->classMap = $classMap;
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Registers a set of PSR-0 directories for a given prefix, either
103
+ * appending or prepending to the ones previously set for this prefix.
104
+ *
105
+ * @param string $prefix The prefix
106
+ * @param array|string $paths The PSR-0 root directories
107
+ * @param bool $prepend Whether to prepend the directories
108
+ */
109
+ public function add($prefix, $paths, $prepend = false)
110
+ {
111
+ if (!$prefix) {
112
+ if ($prepend) {
113
+ $this->fallbackDirsPsr0 = array_merge(
114
+ (array) $paths,
115
+ $this->fallbackDirsPsr0
116
+ );
117
+ } else {
118
+ $this->fallbackDirsPsr0 = array_merge(
119
+ $this->fallbackDirsPsr0,
120
+ (array) $paths
121
+ );
122
+ }
123
+
124
+ return;
125
+ }
126
+
127
+ $first = $prefix[0];
128
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
129
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
130
+
131
+ return;
132
+ }
133
+ if ($prepend) {
134
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
135
+ (array) $paths,
136
+ $this->prefixesPsr0[$first][$prefix]
137
+ );
138
+ } else {
139
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
140
+ $this->prefixesPsr0[$first][$prefix],
141
+ (array) $paths
142
+ );
143
+ }
144
+ }
145
+
146
+ /**
147
+ * Registers a set of PSR-4 directories for a given namespace, either
148
+ * appending or prepending to the ones previously set for this namespace.
149
+ *
150
+ * @param string $prefix The prefix/namespace, with trailing '\\'
151
+ * @param array|string $paths The PSR-4 base directories
152
+ * @param bool $prepend Whether to prepend the directories
153
+ *
154
+ * @throws \InvalidArgumentException
155
+ */
156
+ public function addPsr4($prefix, $paths, $prepend = false)
157
+ {
158
+ if (!$prefix) {
159
+ // Register directories for the root namespace.
160
+ if ($prepend) {
161
+ $this->fallbackDirsPsr4 = array_merge(
162
+ (array) $paths,
163
+ $this->fallbackDirsPsr4
164
+ );
165
+ } else {
166
+ $this->fallbackDirsPsr4 = array_merge(
167
+ $this->fallbackDirsPsr4,
168
+ (array) $paths
169
+ );
170
+ }
171
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
172
+ // Register directories for a new namespace.
173
+ $length = strlen($prefix);
174
+ if ('\\' !== $prefix[$length - 1]) {
175
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
176
+ }
177
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
178
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
179
+ } elseif ($prepend) {
180
+ // Prepend directories for an already registered namespace.
181
+ $this->prefixDirsPsr4[$prefix] = array_merge(
182
+ (array) $paths,
183
+ $this->prefixDirsPsr4[$prefix]
184
+ );
185
+ } else {
186
+ // Append directories for an already registered namespace.
187
+ $this->prefixDirsPsr4[$prefix] = array_merge(
188
+ $this->prefixDirsPsr4[$prefix],
189
+ (array) $paths
190
+ );
191
+ }
192
+ }
193
+
194
+ /**
195
+ * Registers a set of PSR-0 directories for a given prefix,
196
+ * replacing any others previously set for this prefix.
197
+ *
198
+ * @param string $prefix The prefix
199
+ * @param array|string $paths The PSR-0 base directories
200
+ */
201
+ public function set($prefix, $paths)
202
+ {
203
+ if (!$prefix) {
204
+ $this->fallbackDirsPsr0 = (array) $paths;
205
+ } else {
206
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
207
+ }
208
+ }
209
+
210
+ /**
211
+ * Registers a set of PSR-4 directories for a given namespace,
212
+ * replacing any others previously set for this namespace.
213
+ *
214
+ * @param string $prefix The prefix/namespace, with trailing '\\'
215
+ * @param array|string $paths The PSR-4 base directories
216
+ *
217
+ * @throws \InvalidArgumentException
218
+ */
219
+ public function setPsr4($prefix, $paths)
220
+ {
221
+ if (!$prefix) {
222
+ $this->fallbackDirsPsr4 = (array) $paths;
223
+ } else {
224
+ $length = strlen($prefix);
225
+ if ('\\' !== $prefix[$length - 1]) {
226
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
227
+ }
228
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
229
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
230
+ }
231
+ }
232
+
233
+ /**
234
+ * Turns on searching the include path for class files.
235
+ *
236
+ * @param bool $useIncludePath
237
+ */
238
+ public function setUseIncludePath($useIncludePath)
239
+ {
240
+ $this->useIncludePath = $useIncludePath;
241
+ }
242
+
243
+ /**
244
+ * Can be used to check if the autoloader uses the include path to check
245
+ * for classes.
246
+ *
247
+ * @return bool
248
+ */
249
+ public function getUseIncludePath()
250
+ {
251
+ return $this->useIncludePath;
252
+ }
253
+
254
+ /**
255
+ * Turns off searching the prefix and fallback directories for classes
256
+ * that have not been registered with the class map.
257
+ *
258
+ * @param bool $classMapAuthoritative
259
+ */
260
+ public function setClassMapAuthoritative($classMapAuthoritative)
261
+ {
262
+ $this->classMapAuthoritative = $classMapAuthoritative;
263
+ }
264
+
265
+ /**
266
+ * Should class lookup fail if not found in the current class map?
267
+ *
268
+ * @return bool
269
+ */
270
+ public function isClassMapAuthoritative()
271
+ {
272
+ return $this->classMapAuthoritative;
273
+ }
274
+
275
+ /**
276
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
277
+ *
278
+ * @param string|null $apcuPrefix
279
+ */
280
+ public function setApcuPrefix($apcuPrefix)
281
+ {
282
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
283
+ }
284
+
285
+ /**
286
+ * The APCu prefix in use, or null if APCu caching is not enabled.
287
+ *
288
+ * @return string|null
289
+ */
290
+ public function getApcuPrefix()
291
+ {
292
+ return $this->apcuPrefix;
293
+ }
294
+
295
+ /**
296
+ * Registers this instance as an autoloader.
297
+ *
298
+ * @param bool $prepend Whether to prepend the autoloader or not
299
+ */
300
+ public function register($prepend = false)
301
+ {
302
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
303
+ }
304
+
305
+ /**
306
+ * Unregisters this instance as an autoloader.
307
+ */
308
+ public function unregister()
309
+ {
310
+ spl_autoload_unregister(array($this, 'loadClass'));
311
+ }
312
+
313
+ /**
314
+ * Loads the given class or interface.
315
+ *
316
+ * @param string $class The name of the class
317
+ * @return bool|null True if loaded, null otherwise
318
+ */
319
+ public function loadClass($class)
320
+ {
321
+ if ($file = $this->findFile($class)) {
322
+ includeFile($file);
323
+
324
+ return true;
325
+ }
326
+ }
327
+
328
+ /**
329
+ * Finds the path to the file where the class is defined.
330
+ *
331
+ * @param string $class The name of the class
332
+ *
333
+ * @return string|false The path if found, false otherwise
334
+ */
335
+ public function findFile($class)
336
+ {
337
+ // class map lookup
338
+ if (isset($this->classMap[$class])) {
339
+ return $this->classMap[$class];
340
+ }
341
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
342
+ return false;
343
+ }
344
+ if (null !== $this->apcuPrefix) {
345
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
346
+ if ($hit) {
347
+ return $file;
348
+ }
349
+ }
350
+
351
+ $file = $this->findFileWithExtension($class, '.php');
352
+
353
+ // Search for Hack files if we are running on HHVM
354
+ if (false === $file && defined('HHVM_VERSION')) {
355
+ $file = $this->findFileWithExtension($class, '.hh');
356
+ }
357
+
358
+ if (null !== $this->apcuPrefix) {
359
+ apcu_add($this->apcuPrefix.$class, $file);
360
+ }
361
+
362
+ if (false === $file) {
363
+ // Remember that this class does not exist.
364
+ $this->missingClasses[$class] = true;
365
+ }
366
+
367
+ return $file;
368
+ }
369
+
370
+ private function findFileWithExtension($class, $ext)
371
+ {
372
+ // PSR-4 lookup
373
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
374
+
375
+ $first = $class[0];
376
+ if (isset($this->prefixLengthsPsr4[$first])) {
377
+ $subPath = $class;
378
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
379
+ $subPath = substr($subPath, 0, $lastPos);
380
+ $search = $subPath . '\\';
381
+ if (isset($this->prefixDirsPsr4[$search])) {
382
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
383
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
384
+ if (file_exists($file = $dir . $pathEnd)) {
385
+ return $file;
386
+ }
387
+ }
388
+ }
389
+ }
390
+ }
391
+
392
+ // PSR-4 fallback dirs
393
+ foreach ($this->fallbackDirsPsr4 as $dir) {
394
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
395
+ return $file;
396
+ }
397
+ }
398
+
399
+ // PSR-0 lookup
400
+ if (false !== $pos = strrpos($class, '\\')) {
401
+ // namespaced class name
402
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
403
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
404
+ } else {
405
+ // PEAR-like class name
406
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
407
+ }
408
+
409
+ if (isset($this->prefixesPsr0[$first])) {
410
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
411
+ if (0 === strpos($class, $prefix)) {
412
+ foreach ($dirs as $dir) {
413
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
414
+ return $file;
415
+ }
416
+ }
417
+ }
418
+ }
419
+ }
420
+
421
+ // PSR-0 fallback dirs
422
+ foreach ($this->fallbackDirsPsr0 as $dir) {
423
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
424
+ return $file;
425
+ }
426
+ }
427
+
428
+ // PSR-0 include paths.
429
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
430
+ return $file;
431
+ }
432
+
433
+ return false;
434
+ }
435
+ }
436
+
437
+ /**
438
+ * Scope isolated include.
439
+ *
440
+ * Prevents access to $this/self from included files.
441
+ */
442
+ function includeFile($file)
443
+ {
444
+ include $file;
445
+ }
libs/addons/includes/classes/webp/vendor/composer/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
-
2
- Copyright (c) Nils Adermann, Jordi Boggiano
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is furnished
9
- to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- THE SOFTWARE.
21
-
1
+
2
+ Copyright (c) Nils Adermann, Jordi Boggiano
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is furnished
9
+ to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ THE SOFTWARE.
21
+
libs/addons/includes/classes/webp/vendor/composer/autoload_classmap.php CHANGED
@@ -1,10 +1,9 @@
1
- <?php
2
-
3
- // autoload_classmap.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
10
- );
1
+ <?php
2
+
3
+ // autoload_classmap.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
 
libs/addons/includes/classes/webp/vendor/composer/autoload_namespaces.php CHANGED
@@ -1,9 +1,9 @@
1
- <?php
2
-
3
- // autoload_namespaces.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- );
1
+ <?php
2
+
3
+ // autoload_namespaces.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
libs/addons/includes/classes/webp/vendor/composer/autoload_psr4.php CHANGED
@@ -1,10 +1,10 @@
1
- <?php
2
-
3
- // autoload_psr4.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- 'DOMUtilForWebP\\' => array($vendorDir . '/rosell-dk/dom-util-for-webp/src'),
10
- );
1
+ <?php
2
+
3
+ // autoload_psr4.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'DOMUtilForWebP\\' => array($vendorDir . '/rosell-dk/dom-util-for-webp/src'),
10
+ );
libs/addons/includes/classes/webp/vendor/composer/autoload_real.php CHANGED
@@ -1,55 +1,52 @@
1
- <?php
2
-
3
- // autoload_real.php @generated by Composer
4
-
5
- class ComposerAutoloaderInit84320a6a225dd65e40820c51b32fdca4
6
- {
7
- private static $loader;
8
-
9
- public static function loadClassLoader($class)
10
- {
11
- if ('Composer\Autoload\ClassLoader' === $class) {
12
- require __DIR__ . '/ClassLoader.php';
13
- }
14
- }
15
-
16
- /**
17
- * @return \Composer\Autoload\ClassLoader
18
- */
19
- public static function getLoader()
20
- {
21
- if (null !== self::$loader) {
22
- return self::$loader;
23
- }
24
-
25
- spl_autoload_register(array('ComposerAutoloaderInit84320a6a225dd65e40820c51b32fdca4', 'loadClassLoader'), true, true);
26
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
- spl_autoload_unregister(array('ComposerAutoloaderInit84320a6a225dd65e40820c51b32fdca4', 'loadClassLoader'));
28
-
29
- $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
- if ($useStaticLoader) {
31
- require __DIR__ . '/autoload_static.php';
32
-
33
- call_user_func(\Composer\Autoload\ComposerStaticInit84320a6a225dd65e40820c51b32fdca4::getInitializer($loader));
34
- } else {
35
- $map = require __DIR__ . '/autoload_namespaces.php';
36
- foreach ($map as $namespace => $path) {
37
- $loader->set($namespace, $path);
38
- }
39
-
40
- $map = require __DIR__ . '/autoload_psr4.php';
41
- foreach ($map as $namespace => $path) {
42
- $loader->setPsr4($namespace, $path);
43
- }
44
-
45
- $classMap = require __DIR__ . '/autoload_classmap.php';
46
- if ($classMap) {
47
- $loader->addClassMap($classMap);
48
- }
49
- }
50
-
51
- $loader->register(true);
52
-
53
- return $loader;
54
- }
55
- }
1
+ <?php
2
+
3
+ // autoload_real.php @generated by Composer
4
+
5
+ class ComposerAutoloaderInit84320a6a225dd65e40820c51b32fdca4
6
+ {
7
+ private static $loader;
8
+
9
+ public static function loadClassLoader($class)
10
+ {
11
+ if ('Composer\Autoload\ClassLoader' === $class) {
12
+ require __DIR__ . '/ClassLoader.php';
13
+ }
14
+ }
15
+
16
+ public static function getLoader()
17
+ {
18
+ if (null !== self::$loader) {
19
+ return self::$loader;
20
+ }
21
+
22
+ spl_autoload_register(array('ComposerAutoloaderInit84320a6a225dd65e40820c51b32fdca4', 'loadClassLoader'), true, true);
23
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit84320a6a225dd65e40820c51b32fdca4', 'loadClassLoader'));
25
+
26
+ $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
+ if ($useStaticLoader) {
28
+ require_once __DIR__ . '/autoload_static.php';
29
+
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit84320a6a225dd65e40820c51b32fdca4::getInitializer($loader));
31
+ } else {
32
+ $map = require __DIR__ . '/autoload_namespaces.php';
33
+ foreach ($map as $namespace => $path) {
34
+ $loader->set($namespace, $path);
35
+ }
36
+
37
+ $map = require __DIR__ . '/autoload_psr4.php';
38
+ foreach ($map as $namespace => $path) {
39
+ $loader->setPsr4($namespace, $path);
40
+ }
41
+
42
+ $classMap = require __DIR__ . '/autoload_classmap.php';
43
+ if ($classMap) {
44
+ $loader->addClassMap($classMap);
45
+ }
46
+ }
47
+
48
+ $loader->register(true);
49
+
50
+ return $loader;
51
+ }
52
+ }
 
 
 
libs/addons/includes/classes/webp/vendor/composer/autoload_static.php CHANGED
@@ -1,36 +1,31 @@
1
- <?php
2
-
3
- // autoload_static.php @generated by Composer
4
-
5
- namespace Composer\Autoload;
6
-
7
- class ComposerStaticInit84320a6a225dd65e40820c51b32fdca4
8
- {
9
- public static $prefixLengthsPsr4 = array (
10
- 'D' =>
11
- array (
12
- 'DOMUtilForWebP\\' => 15,
13
- ),
14
- );
15
-
16
- public static $prefixDirsPsr4 = array (
17
- 'DOMUtilForWebP\\' =>
18
- array (
19
- 0 => __DIR__ . '/..' . '/rosell-dk/dom-util-for-webp/src',
20
- ),
21
- );
22
-
23
- public static $classMap = array (
24
- 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
25
- );
26
-
27
- public static function getInitializer(ClassLoader $loader)
28
- {
29
- return \Closure::bind(function () use ($loader) {
30
- $loader->prefixLengthsPsr4 = ComposerStaticInit84320a6a225dd65e40820c51b32fdca4::$prefixLengthsPsr4;
31
- $loader->prefixDirsPsr4 = ComposerStaticInit84320a6a225dd65e40820c51b32fdca4::$prefixDirsPsr4;
32
- $loader->classMap = ComposerStaticInit84320a6a225dd65e40820c51b32fdca4::$classMap;
33
-
34
- }, null, ClassLoader::class);
35
- }
36
- }
1
+ <?php
2
+
3
+ // autoload_static.php @generated by Composer
4
+
5
+ namespace Composer\Autoload;
6
+
7
+ class ComposerStaticInit84320a6a225dd65e40820c51b32fdca4
8
+ {
9
+ public static $prefixLengthsPsr4 = array (
10
+ 'D' =>
11
+ array (
12
+ 'DOMUtilForWebP\\' => 15,
13
+ ),
14
+ );
15
+
16
+ public static $prefixDirsPsr4 = array (
17
+ 'DOMUtilForWebP\\' =>
18
+ array (
19
+ 0 => __DIR__ . '/..' . '/rosell-dk/dom-util-for-webp/src',
20
+ ),
21
+ );
22
+
23
+ public static function getInitializer(ClassLoader $loader)
24
+ {
25
+ return \Closure::bind(function () use ($loader) {
26
+ $loader->prefixLengthsPsr4 = ComposerStaticInit84320a6a225dd65e40820c51b32fdca4::$prefixLengthsPsr4;
27
+ $loader->prefixDirsPsr4 = ComposerStaticInit84320a6a225dd65e40820c51b32fdca4::$prefixDirsPsr4;
28
+
29
+ }, null, ClassLoader::class);
30
+ }
31
+ }
 
 
 
 
 
libs/addons/includes/classes/webp/vendor/composer/installed.json CHANGED
@@ -1,63 +1,59 @@
1
- {
2
- "packages": [
3
- {
4
- "name": "rosell-dk/dom-util-for-webp",
5
- "version": "0.3.1",
6
- "version_normalized": "0.3.1.0",
7
- "source": {
8
- "type": "git",
9
- "url": "https://github.com/rosell-dk/dom-util-for-webp.git",
10
- "reference": "bae8f4a9b666726359d28bfb227d886c12f136a9"
11
- },
12
- "dist": {
13
- "type": "zip",
14
- "url": "https://api.github.com/repos/rosell-dk/dom-util-for-webp/zipball/bae8f4a9b666726359d28bfb227d886c12f136a9",
15
- "reference": "bae8f4a9b666726359d28bfb227d886c12f136a9",
16
- "shasum": ""
17
- },
18
- "require-dev": {
19
- "friendsofphp/php-cs-fixer": "^2.11",
20
- "phpunit/phpunit": "5.7.27",
21
- "squizlabs/php_codesniffer": "3.*"
22
- },
23
- "time": "2019-07-31T14:17:18+00:00",
24
- "type": "library",
25
- "extra": {
26
- "scripts-descriptions": {
27
- "ci": "Run tests before CI",
28
- "phpcs": "Checks coding styles (PSR2) of file/dir, which you must supply. To check all, supply 'src'",
29
- "phpcbf": "Fix coding styles (PSR2) of file/dir, which you must supply. To fix all, supply 'src'",
30
- "cs-fix-all": "Fix the coding style of all the source files, to comply with the PSR-2 coding standard",
31
- "cs-fix": "Fix the coding style of a PHP file or directory, which you must specify.",
32
- "test": "Launches the preconfigured PHPUnit"
33
- }
34
- },
35
- "installation-source": "dist",
36
- "autoload": {
37
- "psr-4": {
38
- "DOMUtilForWebP\\": "src/"
39
- }
40
- },
41
- "notification-url": "https://packagist.org/downloads/",
42
- "license": [
43
- "MIT"
44
- ],
45
- "authors": [
46
- {
47
- "name": "Bjørn Rosell",
48
- "homepage": "https://www.bitwise-it.dk/contact",
49
- "role": "Project Author"
50
- }
51
- ],
52
- "description": "Replace image URLs found in HTML",
53
- "keywords": [
54
- "Webp",
55
- "html",
56
- "images",
57
- "replace"
58
- ],
59
- "install-path": "../rosell-dk/dom-util-for-webp"
60
- }
61
- ],
62
- "dev": true
63
- }
1
+ [
2
+ {
3
+ "name": "rosell-dk/dom-util-for-webp",
4
+ "version": "0.3.1",
5
+ "version_normalized": "0.3.1.0",
6
+ "source": {
7
+ "type": "git",
8
+ "url": "https://github.com/rosell-dk/dom-util-for-webp.git",
9
+ "reference": "bae8f4a9b666726359d28bfb227d886c12f136a9"
10
+ },
11
+ "dist": {
12
+ "type": "zip",
13
+ "url": "https://api.github.com/repos/rosell-dk/dom-util-for-webp/zipball/bae8f4a9b666726359d28bfb227d886c12f136a9",
14
+ "reference": "bae8f4a9b666726359d28bfb227d886c12f136a9",
15
+ "shasum": ""
16
+ },
17
+ "require-dev": {
18
+ "friendsofphp/php-cs-fixer": "^2.11",
19
+ "phpunit/phpunit": "5.7.27",
20
+ "squizlabs/php_codesniffer": "3.*"
21
+ },
22
+ "time": "2019-07-31T14:17:18+00:00",
23
+ "type": "library",
24
+ "extra": {
25
+ "scripts-descriptions": {
26
+ "ci": "Run tests before CI",
27
+ "phpcs": "Checks coding styles (PSR2) of file/dir, which you must supply. To check all, supply 'src'",
28
+ "phpcbf": "Fix coding styles (PSR2) of file/dir, which you must supply. To fix all, supply 'src'",
29
+ "cs-fix-all": "Fix the coding style of all the source files, to comply with the PSR-2 coding standard",
30
+ "cs-fix": "Fix the coding style of a PHP file or directory, which you must specify.",
31
+ "test": "Launches the preconfigured PHPUnit"
32
+ }
33
+ },
34
+ "installation-source": "dist",
35
+ "autoload": {
36
+ "psr-4": {
37
+ "DOMUtilForWebP\\": "src/"
38
+ }
39
+ },
40
+ "notification-url": "https://packagist.org/downloads/",
41
+ "license": [
42
+ "MIT"
43
+ ],
44
+ "authors": [
45
+ {
46
+ "name": "Bjørn Rosell",
47
+ "homepage": "https://www.bitwise-it.dk/contact",
48
+ "role": "Project Author"
49
+ }
50
+ ],
51
+ "description": "Replace image URLs found in HTML",
52
+ "keywords": [
53
+ "Webp",
54
+ "html",
55
+ "images",
56
+ "replace"
57
+ ]
58
+ }
59
+ ]
 
 
 
 
libs/addons/views/modal-select-custom-folders.php CHANGED
@@ -4,7 +4,7 @@ defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
4
 
5
  /**
6
  * @var array $data
7
- * @var Wbcr_FactoryClearfy227_PageBase $page
8
  */
9
  ?>
10
  <p><?php _e( 'Select a directory for optimization. All nested images and folders will be optimized recursively.', 'robin-image-optimizer' ) ?></p>
4
 
5
  /**
6
  * @var array $data
7
+ * @var Wbcr_FactoryClearfy230_PageBase $page
8
  */
9
  ?>
10
  <p><?php _e( 'Select a directory for optimization. All nested images and folders will be optimized recursively.', 'robin-image-optimizer' ) ?></p>
libs/addons/views/part-bulk-optimization-table-folders.php CHANGED
@@ -4,7 +4,7 @@ defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
4
 
5
  /**
6
  * @var array $data
7
- * @var Wbcr_FactoryClearfy227_PageBase $page
8
  */
9
 
10
  $cf = WRIO_Custom_Folders::get_instance();
4
 
5
  /**
6
  * @var array $data
7
+ * @var Wbcr_FactoryClearfy230_PageBase $page
8
  */
9
 
10
  $cf = WRIO_Custom_Folders::get_instance();
libs/factory/adverts/boot.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- use WBCR\Factory_Adverts_114\Base;
4
 
5
  /**
6
  * Factory Adverts
@@ -20,31 +20,31 @@ if( !defined('ABSPATH') ) {
20
  exit;
21
  }
22
 
23
- if( defined('FACTORY_ADVERTS_114_LOADED') || (defined('FACTORY_ADVERTS_BLOCK') && FACTORY_ADVERTS_BLOCK) ) {
24
  return;
25
  }
26
 
27
  # Устанавливаем константу, что модуль уже загружен
28
- define('FACTORY_ADVERTS_114_LOADED', true);
29
 
30
  # Устанавливаем версию модуля
31
- define('FACTORY_ADVERTS_114_VERSION', '1.1.4');
32
 
33
  # Регистрируем тектовый домен, для интернализации интерфейса модуля
34
- load_plugin_textdomain('wbcr_factory_adverts_114', false, dirname(plugin_basename(__FILE__)) . '/langs');
35
 
36
  # Устанавливаем директорию модуля
37
- define('FACTORY_ADVERTS_114_DIR', dirname(__FILE__));
38
 
39
  # Устанавливаем url модуля
40
- define('FACTORY_ADVERTS_114_URL', plugins_url(null, __FILE__));
41
 
42
- require_once(FACTORY_ADVERTS_114_DIR . '/includes/class-rest-request.php');
43
- require_once(FACTORY_ADVERTS_114_DIR . '/includes/class-base.php');
44
 
45
  /**
46
- * @param Wbcr_Factory436_Plugin $plugin
47
  */
48
- add_action('wbcr_factory_adverts_114_plugin_created', function ($plugin) {
49
- $plugin->set_adverts_manager("WBCR\Factory_Adverts_114\Base");
50
  });
1
  <?php
2
 
3
+ use WBCR\Factory_Adverts_117\Base;
4
 
5
  /**
6
  * Factory Adverts
20
  exit;
21
  }
22
 
23
+ if( defined('FACTORY_ADVERTS_117_LOADED') || (defined('FACTORY_ADVERTS_BLOCK') && FACTORY_ADVERTS_BLOCK) ) {
24
  return;
25
  }
26
 
27
  # Устанавливаем константу, что модуль уже загружен
28
+ define('FACTORY_ADVERTS_117_LOADED', true);
29
 
30
  # Устанавливаем версию модуля
31
+ define('FACTORY_ADVERTS_117_VERSION', '1.1.7');
32
 
33
  # Регистрируем тектовый домен, для интернализации интерфейса модуля
34
+ load_plugin_textdomain('wbcr_factory_adverts_117', false, dirname(plugin_basename(__FILE__)) . '/langs');
35
 
36
  # Устанавливаем директорию модуля
37
+ define('FACTORY_ADVERTS_117_DIR', dirname(__FILE__));
38
 
39
  # Устанавливаем url модуля
40
+ define('FACTORY_ADVERTS_117_URL', plugins_url(null, __FILE__));
41
 
42
+ require_once(FACTORY_ADVERTS_117_DIR . '/includes/class-rest-request.php');
43
+ require_once(FACTORY_ADVERTS_117_DIR . '/includes/class-base.php');
44
 
45
  /**
46
+ * @param Wbcr_Factory439_Plugin $plugin
47
  */
48
+ add_action('wbcr_factory_adverts_117_plugin_created', function ($plugin) {
49
+ $plugin->set_adverts_manager("WBCR\Factory_Adverts_117\Base");
50
  });
libs/factory/adverts/includes/class-base.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Adverts_114;
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 \Wbcr_Factory436_Plugin
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\Factory_Adverts_114\Creative_Motion_API
57
  */
58
  private $api;
59
 
@@ -82,9 +82,9 @@ class Base {
82
  *
83
  * @since 1.0.0 Added
84
  *
85
- * @param \Wbcr_Factory436_Plugin $plugin
86
  */
87
- public function __construct( \Wbcr_Factory436_Plugin $plugin, $settings ) {
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 FACTORY_ADVERTS_114_DIR . '/includes/class-dashboard-widget.php';
261
  new Dashboard_Widget( $this->plugin, $content );
262
  }
263
  }
1
  <?php
2
 
3
+ namespace WBCR\Factory_Adverts_117;
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_Factory439_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_117\Creative_Motion_API
57
  */
58
  private $api;
59
 
82
  *
83
  * @since 1.0.0 Added
84
  *
85
+ * @param \Wbcr_Factory439_Plugin $plugin
86
  */
87
+ public function __construct( \Wbcr_Factory439_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_117_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\Factory_Adverts_114;
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 \Wbcr_Factory436_Plugin
39
  */
40
  private $plugin;
41
 
@@ -46,10 +46,10 @@ class Dashboard_Widget {
46
  *
47
  * @since 1.0.0 Added
48
  *
49
- * @param \Wbcr_Factory436_Plugin $plugin
50
  * @param string $content
51
  */
52
- public function __construct( \Wbcr_Factory436_Plugin $plugin, $content ) {
53
 
54
  $this->plugin = $plugin;
55
  $this->content = $content;
1
  <?php
2
 
3
+ namespace WBCR\Factory_Adverts_117;
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_Factory439_Plugin
39
  */
40
  private $plugin;
41
 
46
  *
47
  * @since 1.0.0 Added
48
  *
49
+ * @param \Wbcr_Factory439_Plugin $plugin
50
  * @param string $content
51
  */
52
+ public function __construct( \Wbcr_Factory439_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\Factory_Adverts_114;
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 \Wbcr_Factory436_Plugin
69
  */
70
  private $plugin;
71
 
@@ -75,11 +75,11 @@ class Creative_Motion_API {
75
  *
76
  * Variable initialization.
77
  *
78
- * @param \Wbcr_Factory436_Plugin $plugin_name
79
  * @since 1.0.0 Added
80
  *
81
  */
82
- public function __construct(\Wbcr_Factory436_Plugin $plugin)
83
  {
84
  $this->plugin = $plugin;
85
  }
1
  <?php
2
 
3
+ namespace WBCR\Factory_Adverts_117;
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_Factory439_Plugin
69
  */
70
  private $plugin;
71
 
75
  *
76
  * Variable initialization.
77
  *
78
+ * @param \Wbcr_Factory439_Plugin $plugin_name
79
  * @since 1.0.0 Added
80
  *
81
  */
82
+ public function __construct(\Wbcr_Factory439_Plugin $plugin)
83
  {
84
  $this->plugin = $plugin;
85
  }
libs/factory/adverts/langs/wbcr_factory_adverts_109-ru_RU.po DELETED
@@ -1,83 +0,0 @@
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/adverts/langs/wbcr_factory_adverts_112-ru_RU.mo DELETED
Binary file
libs/factory/adverts/langs/wbcr_factory_adverts_112-ru_RU.po DELETED
@@ -1,83 +0,0 @@
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/adverts/langs/wbcr_factory_adverts_114-ru_RU.mo DELETED
Binary file
libs/factory/adverts/langs/wbcr_factory_adverts_114-ru_RU.po DELETED
@@ -1,83 +0,0 @@
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/adverts/langs/{wbcr_factory_adverts_106-ru_RU.mo → wbcr_factory_adverts_117-ru_RU.mo} RENAMED
File without changes
libs/factory/adverts/langs/{wbcr_factory_adverts_106-ru_RU.po → wbcr_factory_adverts_117-ru_RU.po} RENAMED
File without changes
libs/factory/bootstrap/assets/css-min/bootstrap.accordion.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .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-436 .factory-accordion>h3{border-bottom:1px solid #DDD;cursor:pointer;padding:8px 15px;margin:0}.factory-bootstrap-436 .factory-accordion>div{display:none;margin:0;border-bottom:1px solid #DDD}.factory-bootstrap-436 .factory-accordion-item{display:none}.factory-bootstrap-436 .inner-factory-accordion-item{padding:10px 0}.factory-bootstrap-436 .factory-accordion>h3.active:hover{cursor:default}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .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-439 .factory-accordion>h3{border-bottom:1px solid #DDD;cursor:pointer;padding:8px 15px;margin:0}.factory-bootstrap-439 .factory-accordion>div{display:none;margin:0;border-bottom:1px solid #DDD}.factory-bootstrap-439 .factory-accordion-item{display:none}.factory-bootstrap-439 .inner-factory-accordion-item{padding:10px 0}.factory-bootstrap-439 .factory-accordion>h3.active:hover{cursor:default}
libs/factory/bootstrap/assets/css-min/bootstrap.blue.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .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-436 .btn-primary:focus,.factory-bootstrap-436 .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-436 .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-436 .btn-primary:disabled,.factory-bootstrap-436 .btn-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.factory-bootstrap-436 .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-436 .pagination>.active>a,.factory-bootstrap-436 .pagination>.active>a:focus,.factory-bootstrap-436 .pagination>.active>a:hover,.factory-bootstrap-436 .pagination>.active>span,.factory-bootstrap-436 .pagination>.active>span:focus,.factory-bootstrap-436 .pagination>.active>span:hover{background-color:#e1a948;border-color:#d39323}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .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-439 .btn-primary:focus,.factory-bootstrap-439 .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-439 .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-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.factory-bootstrap-439 .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-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#e1a948;border-color:#d39323}
libs/factory/bootstrap/assets/css-min/bootstrap.coffee.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .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-436 .btn-primary:focus,.factory-bootstrap-436 .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-436 .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-436 .btn-primary:disabled,.factory-bootstrap-436 .btn-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.factory-bootstrap-436 .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-436 .pagination>.active>a,.factory-bootstrap-436 .pagination>.active>a:focus,.factory-bootstrap-436 .pagination>.active>a:hover,.factory-bootstrap-436 .pagination>.active>span,.factory-bootstrap-436 .pagination>.active>span:focus,.factory-bootstrap-436 .pagination>.active>span:hover{background-color:#c7a589;border-color:#b78a66}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .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-439 .btn-primary:focus,.factory-bootstrap-439 .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-439 .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-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.factory-bootstrap-439 .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-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#c7a589;border-color:#b78a66}
libs/factory/bootstrap/assets/css-min/bootstrap.core.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,7 +8,7 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 article,.factory-bootstrap-436 aside,.factory-bootstrap-436 details,.factory-bootstrap-436 figcaption,.factory-bootstrap-436 figure,.factory-bootstrap-436 footer,.factory-bootstrap-436 header,.factory-bootstrap-436 hgroup,.factory-bootstrap-436 main,.factory-bootstrap-436 nav,.factory-bootstrap-436 section,.factory-bootstrap-436 summary{display:block}.factory-bootstrap-436 audio,.factory-bootstrap-436 canvas,.factory-bootstrap-436 video{display:inline-block}.factory-bootstrap-436 audio:not([controls]){display:none;height:0}.factory-bootstrap-436 [hidden],.factory-bootstrap-436 template{display:none}.factory-bootstrap-436 body{margin:0}.factory-bootstrap-436 a{background:0 0}.factory-bootstrap-436 a:focus{outline:thin dotted}.factory-bootstrap-436 a:active,.factory-bootstrap-436 a:hover{outline:0}.factory-bootstrap-436 h1{margin:.67em 0}.factory-bootstrap-436 b,.factory-bootstrap-436 strong{font-weight:700}.factory-bootstrap-436 dfn{font-style:italic}.factory-bootstrap-436 hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-436 mark{color:#000;background:#ff0}.factory-bootstrap-436 code,.factory-bootstrap-436 kbd,.factory-bootstrap-436 pre,.factory-bootstrap-436 samp{font-size:1em}.factory-bootstrap-436 pre{white-space:pre-wrap}.factory-bootstrap-436 q{quotes:"\201C" "\201D" "\2018" "\2019"}.factory-bootstrap-436 sub,.factory-bootstrap-436 sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.factory-bootstrap-436 sup{top:-.5em}.factory-bootstrap-436 sub{bottom:-.25em}.factory-bootstrap-436 img{border:0}.factory-bootstrap-436 svg:not(:root){overflow:hidden}.factory-bootstrap-436 figure{margin:0}.factory-bootstrap-436 button,.factory-bootstrap-436 input,.factory-bootstrap-436 select,.factory-bootstrap-436 textarea{margin:0}.factory-bootstrap-436 button,.factory-bootstrap-436 select{text-transform:none}.factory-bootstrap-436 select{padding-right:4px!important}.factory-bootstrap-436 button,.factory-bootstrap-436 input[type=reset],.factory-bootstrap-436 input[type=submit],html .factory-bootstrap-436 input[type=button]{cursor:pointer;-webkit-appearance:button}.factory-bootstrap-436 button[disabled],html .factory-bootstrap-436 input[disabled]{cursor:default}.factory-bootstrap-436 input[type=checkbox],.factory-bootstrap-436 input[type=radio]{padding:0;box-sizing:border-box}.factory-bootstrap-436 input[type=search]{-webkit-appearance:textfield}.factory-bootstrap-436 input[type=search]::-webkit-search-cancel-button,.factory-bootstrap-436 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.factory-bootstrap-436 button::-moz-focus-inner,.factory-bootstrap-436 input::-moz-focus-inner{padding:0;border:0}.factory-bootstrap-436 textarea{overflow:auto;vertical-align:top}.factory-bootstrap-436 table{border-collapse:collapse;border-spacing:0}@media print{.factory-bootstrap-436 *{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}.factory-bootstrap-436 a,.factory-bootstrap-436 a:visited{text-decoration:underline}.factory-bootstrap-436 a[href]:after{content:" (" attr(href) ")"}.factory-bootstrap-436 abbr[title]:after{content:" (" attr(title) ")"}.factory-bootstrap-436 a[href^="javascript:"]:after,.factory-bootstrap-436 a[href^="#"]:after{content:""}.factory-bootstrap-436 blockquote,.factory-bootstrap-436 pre{border:1px solid #999;page-break-inside:avoid}.factory-bootstrap-436 thead{display:table-header-group}.factory-bootstrap-436 img,.factory-bootstrap-436 tr{page-break-inside:avoid}.factory-bootstrap-436 img{max-width:100%!important}@page{margin:2cm .5cm}.factory-bootstrap-436 h2,.factory-bootstrap-436 h3,.factory-bootstrap-436 p{orphans:3;widows:3}.factory-bootstrap-436 h2,.factory-bootstrap-436 h3{page-break-after:avoid}.factory-bootstrap-436 select{background:#fff!important}.factory-bootstrap-436 .navbar{display:none}.factory-bootstrap-436 .table td,.factory-bootstrap-436 .table th{background-color:#fff!important}.factory-bootstrap-436 .btn>.caret,.factory-bootstrap-436 .dropup>.btn>.caret{border-top-color:#000!important}.factory-bootstrap-436 .label{border:1px solid #000}.factory-bootstrap-436 .table{border-collapse:collapse!important}.factory-bootstrap-436 .table-bordered td,.factory-bootstrap-436 .table-bordered th{border:1px solid #ddd!important}}.factory-bootstrap-436 *,.factory-bootstrap-436 :after,.factory-bootstrap-436 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html .factory-bootstrap-436{-webkit-tap-highlight-color:rgba(0,0,0,0)}.factory-bootstrap-436 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.factory-bootstrap-436 button,.factory-bootstrap-436 input,.factory-bootstrap-436 select,.factory-bootstrap-436 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.factory-bootstrap-436 img{vertical-align:middle}.factory-bootstrap-436 .img-responsive{display:block;height:auto;max-width:100%}.factory-bootstrap-436 .img-rounded{border-radius:6px}.factory-bootstrap-436 .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-436 .img-circle{border-radius:50%}.factory-bootstrap-436 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.factory-bootstrap-436 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.factory-bootstrap-436 .h1,.factory-bootstrap-436 .h2,.factory-bootstrap-436 .h3,.factory-bootstrap-436 .h4,.factory-bootstrap-436 .h5,.factory-bootstrap-436 .h6,.factory-bootstrap-436 h1,.factory-bootstrap-436 h2,.factory-bootstrap-436 h3,.factory-bootstrap-436 h4,.factory-bootstrap-436 h5,.factory-bootstrap-436 h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.factory-bootstrap-436 .h1 .small,.factory-bootstrap-436 .h1 small,.factory-bootstrap-436 .h2 .small,.factory-bootstrap-436 .h2 small,.factory-bootstrap-436 .h3 .small,.factory-bootstrap-436 .h3 small,.factory-bootstrap-436 .h4 .small,.factory-bootstrap-436 .h4 small,.factory-bootstrap-436 .h5 .small,.factory-bootstrap-436 .h5 small,.factory-bootstrap-436 .h6 .small,.factory-bootstrap-436 .h6 small,.factory-bootstrap-436 h1 .small,.factory-bootstrap-436 h1 small,.factory-bootstrap-436 h2 .small,.factory-bootstrap-436 h2 small,.factory-bootstrap-436 h3 .small,.factory-bootstrap-436 h3 small,.factory-bootstrap-436 h4 .small,.factory-bootstrap-436 h4 small,.factory-bootstrap-436 h5 .small,.factory-bootstrap-436 h5 small,.factory-bootstrap-436 h6 .small,.factory-bootstrap-436 h6 small{font-weight:400;line-height:1;color:#999}.factory-bootstrap-436 h1,.factory-bootstrap-436 h2,.factory-bootstrap-436 h3{margin-top:20px;margin-bottom:10px}.factory-bootstrap-436 h1 .small,.factory-bootstrap-436 h1 small,.factory-bootstrap-436 h2 .small,.factory-bootstrap-436 h2 small,.factory-bootstrap-436 h3 .small,.factory-bootstrap-436 h3 small{font-size:65%}.factory-bootstrap-436 h4,.factory-bootstrap-436 h5,.factory-bootstrap-436 h6{margin-top:10px;margin-bottom:10px}.factory-bootstrap-436 h4 .small,.factory-bootstrap-436 h4 small,.factory-bootstrap-436 h5 .small,.factory-bootstrap-436 h5 small,.factory-bootstrap-436 h6 .small,.factory-bootstrap-436 h6 small{font-size:75%}.factory-bootstrap-436 .h1,.factory-bootstrap-436 h1{font-size:36px}.factory-bootstrap-436 .h2,.factory-bootstrap-436 h2{font-size:30px}.factory-bootstrap-436 .h3,.factory-bootstrap-436 h3{font-size:24px}.factory-bootstrap-436 .h4,.factory-bootstrap-436 h4{font-size:18px}.factory-bootstrap-436 .h5,.factory-bootstrap-436 h5{font-size:14px}.factory-bootstrap-436 .h6,.factory-bootstrap-436 h6{font-size:12px}.factory-bootstrap-436 p{margin:0 0 10px}.factory-bootstrap-436 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.factory-bootstrap-436 .small,.factory-bootstrap-436 small{font-size:85%}.factory-bootstrap-436 cite{font-style:normal}.factory-bootstrap-436 .text-muted{color:#999}.factory-bootstrap-436 .text-primary{color:#428bca}.factory-bootstrap-436 .text-primary:hover{color:#3071a9}.factory-bootstrap-436 .text-warning{color:#8a6d3b}.factory-bootstrap-436 .text-warning:hover{color:#66512c}.factory-bootstrap-436 .text-danger{color:#a94442}.factory-bootstrap-436 .text-danger:hover{color:#843534}.factory-bootstrap-436 .text-success{color:#3c763d}.factory-bootstrap-436 .text-success:hover{color:#2b542c}.factory-bootstrap-436 .text-info{color:#31708f}.factory-bootstrap-436 .text-info:hover{color:#245269}.factory-bootstrap-436 .text-left{text-align:left}.factory-bootstrap-436 .text-right{text-align:right}.factory-bootstrap-436 .text-center{text-align:center}.factory-bootstrap-436 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.factory-bootstrap-436 ol,.factory-bootstrap-436 ul{margin-top:0;margin-bottom:10px}.factory-bootstrap-436 ol ol,.factory-bootstrap-436 ol ul,.factory-bootstrap-436 ul ol,.factory-bootstrap-436 ul ul{margin-bottom:0}.factory-bootstrap-436 .list-inline,.factory-bootstrap-436 .list-unstyled{padding-left:0;list-style:none}.factory-bootstrap-436 .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.factory-bootstrap-436 .list-inline>li:first-child{padding-left:0}.factory-bootstrap-436 dl{margin-top:0;margin-bottom:20px}.factory-bootstrap-436 dd,.factory-bootstrap-436 dt{line-height:1.428571429}.factory-bootstrap-436 dt{font-weight:700}.factory-bootstrap-436 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-436 abbr[data-original-title],.factory-bootstrap-436 abbr[title]{cursor:help;border-bottom:1px dotted #999}.factory-bootstrap-436 .initialism{font-size:90%;text-transform:uppercase}.factory-bootstrap-436 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.factory-bootstrap-436 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.factory-bootstrap-436 blockquote p:last-child{margin-bottom:0}.factory-bootstrap-436 blockquote .small,.factory-bootstrap-436 blockquote small{display:block;line-height:1.428571429;color:#999}.factory-bootstrap-436 blockquote .small:before,.factory-bootstrap-436 blockquote small:before{content:'\2014 \00A0'}.factory-bootstrap-436 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.factory-bootstrap-436 blockquote.pull-right .small,.factory-bootstrap-436 blockquote.pull-right p,.factory-bootstrap-436 blockquote.pull-right small{text-align:right}.factory-bootstrap-436 blockquote.pull-right .small:before,.factory-bootstrap-436 blockquote.pull-right small:before{content:''}.factory-bootstrap-436 blockquote.pull-right .small:after,.factory-bootstrap-436 blockquote.pull-right small:after{content:'\00A0 \2014'}.factory-bootstrap-436 blockquote:after,.factory-bootstrap-436 blockquote:before{content:""}.factory-bootstrap-436 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.factory-bootstrap-436 code,.factory-bootstrap-436 kbd,.factory-bootstrap-436 pre,.factory-bootstrap-436 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.factory-bootstrap-436 code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}.factory-bootstrap-436 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-436 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.factory-bootstrap-436 .pre-scrollable{max-height:340px;overflow-y:scroll}.factory-bootstrap-436 .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.factory-bootstrap-436 .container:after,.factory-bootstrap-436 .container:before{display:table;content:" "}.factory-bootstrap-436 .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-436 .row{margin-right:-15px;margin-left:-15px}.factory-bootstrap-436 .row:after,.factory-bootstrap-436 .row:before{display:table;content:" "}.factory-bootstrap-436 .row:after{clear:both}.factory-bootstrap-436 .col-lg-1,.factory-bootstrap-436 .col-lg-10,.factory-bootstrap-436 .col-lg-11,.factory-bootstrap-436 .col-lg-12,.factory-bootstrap-436 .col-lg-2,.factory-bootstrap-436 .col-lg-3,.factory-bootstrap-436 .col-lg-4,.factory-bootstrap-436 .col-lg-5,.factory-bootstrap-436 .col-lg-6,.factory-bootstrap-436 .col-lg-7,.factory-bootstrap-436 .col-lg-8,.factory-bootstrap-436 .col-lg-9,.factory-bootstrap-436 .col-md-1,.factory-bootstrap-436 .col-md-10,.factory-bootstrap-436 .col-md-11,.factory-bootstrap-436 .col-md-12,.factory-bootstrap-436 .col-md-2,.factory-bootstrap-436 .col-md-3,.factory-bootstrap-436 .col-md-4,.factory-bootstrap-436 .col-md-5,.factory-bootstrap-436 .col-md-6,.factory-bootstrap-436 .col-md-7,.factory-bootstrap-436 .col-md-8,.factory-bootstrap-436 .col-md-9,.factory-bootstrap-436 .col-sm-1,.factory-bootstrap-436 .col-sm-10,.factory-bootstrap-436 .col-sm-11,.factory-bootstrap-436 .col-sm-12,.factory-bootstrap-436 .col-sm-2,.factory-bootstrap-436 .col-sm-3,.factory-bootstrap-436 .col-sm-4,.factory-bootstrap-436 .col-sm-5,.factory-bootstrap-436 .col-sm-6,.factory-bootstrap-436 .col-sm-7,.factory-bootstrap-436 .col-sm-8,.factory-bootstrap-436 .col-sm-9,.factory-bootstrap-436 .col-xs-1,.factory-bootstrap-436 .col-xs-10,.factory-bootstrap-436 .col-xs-11,.factory-bootstrap-436 .col-xs-12,.factory-bootstrap-436 .col-xs-2,.factory-bootstrap-436 .col-xs-3,.factory-bootstrap-436 .col-xs-4,.factory-bootstrap-436 .col-xs-5,.factory-bootstrap-436 .col-xs-6,.factory-bootstrap-436 .col-xs-7,.factory-bootstrap-436 .col-xs-8,.factory-bootstrap-436 .col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.factory-bootstrap-436 .col-xs-1,.factory-bootstrap-436 .col-xs-10,.factory-bootstrap-436 .col-xs-11,.factory-bootstrap-436 .col-xs-12,.factory-bootstrap-436 .col-xs-2,.factory-bootstrap-436 .col-xs-3,.factory-bootstrap-436 .col-xs-4,.factory-bootstrap-436 .col-xs-5,.factory-bootstrap-436 .col-xs-6,.factory-bootstrap-436 .col-xs-7,.factory-bootstrap-436 .col-xs-8,.factory-bootstrap-436 .col-xs-9{float:left}.factory-bootstrap-436 .col-xs-12{width:100%}.factory-bootstrap-436 .col-xs-11{width:91.66666666666666%}.factory-bootstrap-436 .col-xs-10{width:83.33333333333334%}.factory-bootstrap-436 .col-xs-9{width:75%}.factory-bootstrap-436 .col-xs-8{width:66.66666666666666%}.factory-bootstrap-436 .col-xs-7{width:58.333333333333336%}.factory-bootstrap-436 .col-xs-6{width:50%}.factory-bootstrap-436 .col-xs-5{width:41.66666666666667%}.factory-bootstrap-436 .col-xs-4{width:33.33333333333333%}.factory-bootstrap-436 .col-xs-3{width:25%}.factory-bootstrap-436 .col-xs-2{width:16.666666666666664%}.factory-bootstrap-436 .col-xs-1{width:8.333333333333332%}.factory-bootstrap-436 .col-xs-pull-12{right:100%}.factory-bootstrap-436 .col-xs-pull-11{right:91.66666666666666%}.factory-bootstrap-436 .col-xs-pull-10{right:83.33333333333334%}.factory-bootstrap-436 .col-xs-pull-9{right:75%}.factory-bootstrap-436 .col-xs-pull-8{right:66.66666666666666%}.factory-bootstrap-436 .col-xs-pull-7{right:58.333333333333336%}.factory-bootstrap-436 .col-xs-pull-6{right:50%}.factory-bootstrap-436 .col-xs-pull-5{right:41.66666666666667%}.factory-bootstrap-436 .col-xs-pull-4{right:33.33333333333333%}.factory-bootstrap-436 .col-xs-pull-3{right:25%}.factory-bootstrap-436 .col-xs-pull-2{right:16.666666666666664%}.factory-bootstrap-436 .col-xs-pull-1{right:8.333333333333332%}.factory-bootstrap-436 .col-xs-pull-0{right:0}.factory-bootstrap-436 .col-xs-push-12{left:100%}.factory-bootstrap-436 .col-xs-push-11{left:91.66666666666666%}.factory-bootstrap-436 .col-xs-push-10{left:83.33333333333334%}.factory-bootstrap-436 .col-xs-push-9{left:75%}.factory-bootstrap-436 .col-xs-push-8{left:66.66666666666666%}.factory-bootstrap-436 .col-xs-push-7{left:58.333333333333336%}.factory-bootstrap-436 .col-xs-push-6{left:50%}.factory-bootstrap-436 .col-xs-push-5{left:41.66666666666667%}.factory-bootstrap-436 .col-xs-push-4{left:33.33333333333333%}.factory-bootstrap-436 .col-xs-push-3{left:25%}.factory-bootstrap-436 .col-xs-push-2{left:16.666666666666664%}.factory-bootstrap-436 .col-xs-push-1{left:8.333333333333332%}.factory-bootstrap-436 .col-xs-push-0{left:0}.factory-bootstrap-436 .col-xs-offset-12{margin-left:100%}.factory-bootstrap-436 .col-xs-offset-11{margin-left:91.66666666666666%}.factory-bootstrap-436 .col-xs-offset-10{margin-left:83.33333333333334%}.factory-bootstrap-436 .col-xs-offset-9{margin-left:75%}.factory-bootstrap-436 .col-xs-offset-8{margin-left:66.66666666666666%}.factory-bootstrap-436 .col-xs-offset-7{margin-left:58.333333333333336%}.factory-bootstrap-436 .col-xs-offset-6{margin-left:50%}.factory-bootstrap-436 .col-xs-offset-5{margin-left:41.66666666666667%}.factory-bootstrap-436 .col-xs-offset-4{margin-left:33.33333333333333%}.factory-bootstrap-436 .col-xs-offset-3{margin-left:25%}.factory-bootstrap-436 .col-xs-offset-2{margin-left:16.666666666666664%}.factory-bootstrap-436 .col-xs-offset-1{margin-left:8.333333333333332%}.factory-bootstrap-436 .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-436 table{max-width:100%;background-color:transparent}.factory-bootstrap-436 th{text-align:left}.factory-bootstrap-436 .table{width:100%;margin-bottom:20px}.factory-bootstrap-436 .table>tbody>tr>td,.factory-bootstrap-436 .table>tbody>tr>th,.factory-bootstrap-436 .table>tfoot>tr>td,.factory-bootstrap-436 .table>tfoot>tr>th,.factory-bootstrap-436 .table>thead>tr>td,.factory-bootstrap-436 .table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.factory-bootstrap-436 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.factory-bootstrap-436 .table>caption+thead>tr:first-child>td,.factory-bootstrap-436 .table>caption+thead>tr:first-child>th,.factory-bootstrap-436 .table>colgroup+thead>tr:first-child>td,.factory-bootstrap-436 .table>colgroup+thead>tr:first-child>th,.factory-bootstrap-436 .table>thead:first-child>tr:first-child>td,.factory-bootstrap-436 .table>thead:first-child>tr:first-child>th{border-top:0}.factory-bootstrap-436 .table>tbody+tbody{border-top:2px solid #ddd}.factory-bootstrap-436 .table .table{background-color:#fff}.factory-bootstrap-436 .table-condensed>tbody>tr>td,.factory-bootstrap-436 .table-condensed>tbody>tr>th,.factory-bootstrap-436 .table-condensed>tfoot>tr>td,.factory-bootstrap-436 .table-condensed>tfoot>tr>th,.factory-bootstrap-436 .table-condensed>thead>tr>td,.factory-bootstrap-436 .table-condensed>thead>tr>th{padding:5px}.factory-bootstrap-436 .table-bordered,.factory-bootstrap-436 .table-bordered>tbody>tr>td,.factory-bootstrap-436 .table-bordered>tbody>tr>th,.factory-bootstrap-436 .table-bordered>tfoot>tr>td,.factory-bootstrap-436 .table-bordered>tfoot>tr>th,.factory-bootstrap-436 .table-bordered>thead>tr>td,.factory-bootstrap-436 .table-bordered>thead>tr>th{border:1px solid #ddd}.factory-bootstrap-436 .table-bordered>thead>tr>td,.factory-bootstrap-436 .table-bordered>thead>tr>th{border-bottom-width:2px}.factory-bootstrap-436 .table-striped>tbody>tr:nth-child(odd)>td,.factory-bootstrap-436 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.factory-bootstrap-436 .table-hover>tbody>tr:hover>td,.factory-bootstrap-436 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.factory-bootstrap-436 table col[class*=col-]{position:static;display:table-column;float:none}.factory-bootstrap-436 table td[class*=col-],.factory-bootstrap-436 table th[class*=col-]{display:table-cell;float:none}.factory-bootstrap-436 .table>tbody>.active>td,.factory-bootstrap-436 .table>tbody>.active>th,.factory-bootstrap-436 .table>tbody>tr>.active,.factory-bootstrap-436 .table>tfoot>.active>td,.factory-bootstrap-436 .table>tfoot>.active>th,.factory-bootstrap-436 .table>tfoot>tr>.active,.factory-bootstrap-436 .table>thead>.active>td,.factory-bootstrap-436 .table>thead>.active>th,.factory-bootstrap-436 .table>thead>tr>.active{background-color:#f5f5f5}.factory-bootstrap-436 .table-hover>tbody>.active:hover>td,.factory-bootstrap-436 .table-hover>tbody>.active:hover>th,.factory-bootstrap-436 .table-hover>tbody>tr>.active:hover{background-color:#e8e8e8}.factory-bootstrap-436 .table>tbody>.success>td,.factory-bootstrap-436 .table>tbody>.success>th,.factory-bootstrap-436 .table>tbody>tr>.success,.factory-bootstrap-436 .table>tfoot>.success>td,.factory-bootstrap-436 .table>tfoot>.success>th,.factory-bootstrap-436 .table>tfoot>tr>.success,.factory-bootstrap-436 .table>thead>.success>td,.factory-bootstrap-436 .table>thead>.success>th,.factory-bootstrap-436 .table>thead>tr>.success{background-color:#dff0d8}.factory-bootstrap-436 .table-hover>tbody>.success:hover>td,.factory-bootstrap-436 .table-hover>tbody>.success:hover>th,.factory-bootstrap-436 .table-hover>tbody>tr>.success:hover{background-color:#d0e9c6}.factory-bootstrap-436 .table>tbody>.danger>td,.factory-bootstrap-436 .table>tbody>.danger>th,.factory-bootstrap-436 .table>tbody>tr>.danger,.factory-bootstrap-436 .table>tfoot>.danger>td,.factory-bootstrap-436 .table>tfoot>.danger>th,.factory-bootstrap-436 .table>tfoot>tr>.danger,.factory-bootstrap-436 .table>thead>.danger>td,.factory-bootstrap-436 .table>thead>.danger>th,.factory-bootstrap-436 .table>thead>tr>.danger{background-color:#f2dede}.factory-bootstrap-436 .table-hover>tbody>.danger:hover>td,.factory-bootstrap-436 .table-hover>tbody>.danger:hover>th,.factory-bootstrap-436 .table-hover>tbody>tr>.danger:hover{background-color:#ebcccc}.factory-bootstrap-436 .table>tbody>.warning>td,.factory-bootstrap-436 .table>tbody>.warning>th,.factory-bootstrap-436 .table>tbody>tr>.warning,.factory-bootstrap-436 .table>tfoot>.warning>td,.factory-bootstrap-436 .table>tfoot>.warning>th,.factory-bootstrap-436 .table>tfoot>tr>.warning,.factory-bootstrap-436 .table>thead>.warning>td,.factory-bootstrap-436 .table>thead>.warning>th,.factory-bootstrap-436 .table>thead>tr>.warning{background-color:#fcf8e3}.factory-bootstrap-436 .table-hover>tbody>.warning:hover>td,.factory-bootstrap-436 .table-hover>tbody>.warning:hover>th,.factory-bootstrap-436 .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-436 fieldset{padding:0;margin:0;border:0}.factory-bootstrap-436 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-436 label{display:inline-block;margin-bottom:5px;font-weight:700}.factory-bootstrap-436 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-436 input[type=checkbox],.factory-bootstrap-436 input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.factory-bootstrap-436 input[type=file]{display:block}.factory-bootstrap-436 select[multiple],.factory-bootstrap-436 select[size]{height:auto}.factory-bootstrap-436 select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}.factory-bootstrap-436 input[type=checkbox]:focus,.factory-bootstrap-436 input[type=file]:focus,.factory-bootstrap-436 input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-436 input[type=number]::-webkit-inner-spin-button,.factory-bootstrap-436 input[type=number]::-webkit-outer-spin-button{height:auto}.factory-bootstrap-436 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.factory-bootstrap-436 .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-436 .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-436 .form-control:-moz-placeholder{color:#999}.factory-bootstrap-436 .form-control::-moz-placeholder{color:#999;opacity:1}.factory-bootstrap-436 .form-control:-ms-input-placeholder{color:#999}.factory-bootstrap-436 .form-control::-webkit-input-placeholder{color:#999}.factory-bootstrap-436 .form-control[disabled],.factory-bootstrap-436 .form-control[readonly],.factory-bootstrap-436 fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.factory-bootstrap-436 textarea.form-control{height:auto}.factory-bootstrap-436 .form-group{margin-bottom:15px}.factory-bootstrap-436 .checkbox,.factory-bootstrap-436 .radio{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.factory-bootstrap-436 .checkbox label,.factory-bootstrap-436 .radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.factory-bootstrap-436 .checkbox input[type=checkbox],.factory-bootstrap-436 .checkbox-inline input[type=checkbox],.factory-bootstrap-436 .radio input[type=radio],.factory-bootstrap-436 .radio-inline input[type=radio]{float:left;margin-left:-20px}.factory-bootstrap-436 .checkbox+.checkbox,.factory-bootstrap-436 .radio+.radio{margin-top:-5px}.factory-bootstrap-436 .checkbox-inline,.factory-bootstrap-436 .radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.factory-bootstrap-436 .checkbox-inline+.checkbox-inline,.factory-bootstrap-436 .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.factory-bootstrap-436 .checkbox-inline[disabled],.factory-bootstrap-436 .checkbox[disabled],.factory-bootstrap-436 .radio-inline[disabled],.factory-bootstrap-436 .radio[disabled],.factory-bootstrap-436 fieldset[disabled] .checkbox,.factory-bootstrap-436 fieldset[disabled] .checkbox-inline,.factory-bootstrap-436 fieldset[disabled] .radio,.factory-bootstrap-436 fieldset[disabled] .radio-inline,.factory-bootstrap-436 fieldset[disabled] input[type=checkbox],.factory-bootstrap-436 fieldset[disabled] input[type=radio],.factory-bootstrap-436 input[type=checkbox][disabled],.factory-bootstrap-436 input[type=radio][disabled]{cursor:not-allowed}.factory-bootstrap-436 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-436 select.input-sm{height:30px;line-height:30px}.factory-bootstrap-436 textarea.input-sm{height:auto}.factory-bootstrap-436 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-436 select.input-lg{height:46px;line-height:46px}.factory-bootstrap-436 textarea.input-lg{height:auto}.factory-bootstrap-436 .has-warning .checkbox,.factory-bootstrap-436 .has-warning .checkbox-inline,.factory-bootstrap-436 .has-warning .control-label,.factory-bootstrap-436 .has-warning .help-block,.factory-bootstrap-436 .has-warning .radio,.factory-bootstrap-436 .has-warning .radio-inline{color:#8a6d3b}.factory-bootstrap-436 .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-436 .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-436 .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.factory-bootstrap-436 .has-error .checkbox,.factory-bootstrap-436 .has-error .checkbox-inline,.factory-bootstrap-436 .has-error .control-label,.factory-bootstrap-436 .has-error .help-block,.factory-bootstrap-436 .has-error .radio,.factory-bootstrap-436 .has-error .radio-inline{color:#a94442}.factory-bootstrap-436 .controls{display:block}.factory-bootstrap-436 .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-436 .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-436 .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.factory-bootstrap-436 .has-success .checkbox,.factory-bootstrap-436 .has-success .checkbox-inline,.factory-bootstrap-436 .has-success .control-label,.factory-bootstrap-436 .has-success .help-block,.factory-bootstrap-436 .has-success .radio,.factory-bootstrap-436 .has-success .radio-inline{color:#3c763d}.factory-bootstrap-436 .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-436 .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-436 .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.factory-bootstrap-436 .form-control-static{margin-bottom:0}.factory-bootstrap-436 .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-436 .form-horizontal .checkbox,.factory-bootstrap-436 .form-horizontal .checkbox-inline,.factory-bootstrap-436 .form-horizontal .control-label,.factory-bootstrap-436 .form-horizontal .radio,.factory-bootstrap-436 .form-horizontal .radio-inline{position:relative;padding-top:7px;margin-top:0;margin-bottom:0}.factory-bootstrap-436 .form-horizontal .control-label{max-width:200px}.factory-bootstrap-436 .form-horizontal .checkbox,.factory-bootstrap-436 .form-horizontal .radio{min-height:27px}.factory-bootstrap-436 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.factory-bootstrap-436 .form-horizontal .form-group:after,.factory-bootstrap-436 .form-horizontal .form-group:before{display:table;content:" "}.factory-bootstrap-436 .form-horizontal .form-group:after{clear:both}.factory-bootstrap-436 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.factory-bootstrap-436 .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-436 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-436 .btn{text-decoration:none}.factory-bootstrap-436 .btn:focus,.factory-bootstrap-436 .btn:hover{color:#333;text-decoration:none}.factory-bootstrap-436 .btn.disabled,.factory-bootstrap-436 .btn[disabled],.factory-bootstrap-436 fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-436 .btn-default.active,.factory-bootstrap-436 .btn-default:active,.factory-bootstrap-436 .btn-default:focus,.factory-bootstrap-436 .btn-default:hover,.factory-bootstrap-436 .open .dropdown-toggle.btn-default{background:#fafafa;border-color:#999;color:#222}.factory-bootstrap-436 .btn-default.active,.factory-bootstrap-436 .btn-default:active,.factory-bootstrap-436 .open .dropdown-toggle.btn-default{background-image:none}.factory-bootstrap-436 .btn-default.disabled,.factory-bootstrap-436 .btn-default.disabled.active,.factory-bootstrap-436 .btn-default.disabled:active,.factory-bootstrap-436 .btn-default.disabled:focus,.factory-bootstrap-436 .btn-default.disabled:hover,.factory-bootstrap-436 .btn-default[disabled],.factory-bootstrap-436 .btn-default[disabled].active,.factory-bootstrap-436 .btn-default[disabled]:active,.factory-bootstrap-436 .btn-default[disabled]:focus,.factory-bootstrap-436 .btn-default[disabled]:hover,.factory-bootstrap-436 fieldset[disabled] .btn-default,.factory-bootstrap-436 fieldset[disabled] .btn-default.active,.factory-bootstrap-436 fieldset[disabled] .btn-default:active,.factory-bootstrap-436 fieldset[disabled] .btn-default:focus,.factory-bootstrap-436 fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.factory-bootstrap-436 .btn-default .badge{color:#fff;background-color:#fff}.factory-bootstrap-436 .btn-primary.active,.factory-bootstrap-436 .btn-primary:active,.factory-bootstrap-436 .btn-primary:focus,.factory-bootstrap-436 .btn-primary:hover,.factory-bootstrap-436 .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.factory-bootstrap-436 .btn-primary.active,.factory-bootstrap-436 .btn-primary:active,.factory-bootstrap-436 .open .dropdown-toggle.btn-primary{background-image:none}.factory-bootstrap-436 .btn-primary.disabled,.factory-bootstrap-436 .btn-primary.disabled.active,.factory-bootstrap-436 .btn-primary.disabled:active,.factory-bootstrap-436 .btn-primary.disabled:focus,.factory-bootstrap-436 .btn-primary.disabled:hover,.factory-bootstrap-436 .btn-primary[disabled],.factory-bootstrap-436 .btn-primary[disabled].active,.factory-bootstrap-436 .btn-primary[disabled]:active,.factory-bootstrap-436 .btn-primary[disabled]:focus,.factory-bootstrap-436 .btn-primary[disabled]:hover,.factory-bootstrap-436 fieldset[disabled] .btn-primary,.factory-bootstrap-436 fieldset[disabled] .btn-primary.active,.factory-bootstrap-436 fieldset[disabled] .btn-primary:active,.factory-bootstrap-436 fieldset[disabled] .btn-primary:focus,.factory-bootstrap-436 fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.factory-bootstrap-436 .btn-primary .badge{color:#428bca;background-color:#fff}.factory-bootstrap-436 .btn-warning{color:#fff;background-color:#f0ad4e}.factory-bootstrap-436 .btn-warning.active,.factory-bootstrap-436 .btn-warning:active,.factory-bootstrap-436 .btn-warning:focus,.factory-bootstrap-436 .btn-warning:hover,.factory-bootstrap-436 .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.factory-bootstrap-436 .btn-warning.active,.factory-bootstrap-436 .btn-warning:active,.factory-bootstrap-436 .open .dropdown-toggle.btn-warning{background-image:none}.factory-bootstrap-436 .btn-warning.disabled,.factory-bootstrap-436 .btn-warning.disabled.active,.factory-bootstrap-436 .btn-warning.disabled:active,.factory-bootstrap-436 .btn-warning.disabled:focus,.factory-bootstrap-436 .btn-warning.disabled:hover,.factory-bootstrap-436 .btn-warning[disabled],.factory-bootstrap-436 .btn-warning[disabled].active,.factory-bootstrap-436 .btn-warning[disabled]:active,.factory-bootstrap-436 .btn-warning[disabled]:focus,.factory-bootstrap-436 .btn-warning[disabled]:hover,.factory-bootstrap-436 fieldset[disabled] .btn-warning,.factory-bootstrap-436 fieldset[disabled] .btn-warning.active,.factory-bootstrap-436 fieldset[disabled] .btn-warning:active,.factory-bootstrap-436 fieldset[disabled] .btn-warning:focus,.factory-bootstrap-436 fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.factory-bootstrap-436 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.factory-bootstrap-436 .btn-success{color:#fff;background-color:#5cb85c}.factory-bootstrap-436 .btn-success.active,.factory-bootstrap-436 .btn-success:active,.factory-bootstrap-436 .btn-success:focus,.factory-bootstrap-436 .btn-success:hover,.factory-bootstrap-436 .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.factory-bootstrap-436 .btn-success.active,.factory-bootstrap-436 .btn-success:active,.factory-bootstrap-436 .open .dropdown-toggle.btn-success{background-image:none}.factory-bootstrap-436 .btn-success.disabled,.factory-bootstrap-436 .btn-success.disabled.active,.factory-bootstrap-436 .btn-success.disabled:active,.factory-bootstrap-436 .btn-success.disabled:focus,.factory-bootstrap-436 .btn-success.disabled:hover,.factory-bootstrap-436 .btn-success[disabled],.factory-bootstrap-436 .btn-success[disabled].active,.factory-bootstrap-436 .btn-success[disabled]:active,.factory-bootstrap-436 .btn-success[disabled]:focus,.factory-bootstrap-436 .btn-success[disabled]:hover,.factory-bootstrap-436 fieldset[disabled] .btn-success,.factory-bootstrap-436 fieldset[disabled] .btn-success.active,.factory-bootstrap-436 fieldset[disabled] .btn-success:active,.factory-bootstrap-436 fieldset[disabled] .btn-success:focus,.factory-bootstrap-436 fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.factory-bootstrap-436 .btn-success .badge{color:#5cb85c;background-color:#fff}.factory-bootstrap-436 .btn-info{color:#fff;background-color:#5bc0de}.factory-bootstrap-436 .btn-info.active,.factory-bootstrap-436 .btn-info:active,.factory-bootstrap-436 .btn-info:focus,.factory-bootstrap-436 .btn-info:hover,.factory-bootstrap-436 .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.factory-bootstrap-436 .btn-info.active,.factory-bootstrap-436 .btn-info:active,.factory-bootstrap-436 .open .dropdown-toggle.btn-info{background-image:none}.factory-bootstrap-436 .btn-info.disabled,.factory-bootstrap-436 .btn-info.disabled.active,.factory-bootstrap-436 .btn-info.disabled:active,.factory-bootstrap-436 .btn-info.disabled:focus,.factory-bootstrap-436 .btn-info.disabled:hover,.factory-bootstrap-436 .btn-info[disabled],.factory-bootstrap-436 .btn-info[disabled].active,.factory-bootstrap-436 .btn-info[disabled]:active,.factory-bootstrap-436 .btn-info[disabled]:focus,.factory-bootstrap-436 .btn-info[disabled]:hover,.factory-bootstrap-436 fieldset[disabled] .btn-info,.factory-bootstrap-436 fieldset[disabled] .btn-info.active,.factory-bootstrap-436 fieldset[disabled] .btn-info:active,.factory-bootstrap-436 fieldset[disabled] .btn-info:focus,.factory-bootstrap-436 fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.factory-bootstrap-436 .btn-info .badge{color:#5bc0de;background-color:#fff}.factory-bootstrap-436 .btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.factory-bootstrap-436 .btn-link,.factory-bootstrap-436 .btn-link:active,.factory-bootstrap-436 .btn-link[disabled],.factory-bootstrap-436 fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-436 .btn-link,.factory-bootstrap-436 .btn-link:active,.factory-bootstrap-436 .btn-link:focus,.factory-bootstrap-436 .btn-link:hover{border-color:transparent}.factory-bootstrap-436 .btn-link:focus,.factory-bootstrap-436 .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.factory-bootstrap-436 .btn-link[disabled]:focus,.factory-bootstrap-436 .btn-link[disabled]:hover,.factory-bootstrap-436 fieldset[disabled] .btn-link:focus,.factory-bootstrap-436 fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.factory-bootstrap-436 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-436 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-436 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-436 .btn-block{display:block;width:100%;padding-right:0;padding-left:0}.factory-bootstrap-436 .btn-block+.btn-block{margin-top:5px}.factory-bootstrap-436 input[type=button].btn-block,.factory-bootstrap-436 input[type=reset].btn-block,.factory-bootstrap-436 input[type=submit].btn-block{width:100%}.factory-bootstrap-436 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.factory-bootstrap-436 .fade.in{opacity:1}.factory-bootstrap-436 .collapse{display:none}.factory-bootstrap-436 .collapse.in{display:block}.factory-bootstrap-436 .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-436 .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-436 .glyphicon:empty{width:1em}.factory-bootstrap-436 .glyphicon-asterisk:before{content:"\2a"}.factory-bootstrap-436 .glyphicon-plus:before{content:"\2b"}.factory-bootstrap-436 .glyphicon-euro:before{content:"\20ac"}.factory-bootstrap-436 .glyphicon-minus:before{content:"\2212"}.factory-bootstrap-436 .glyphicon-cloud:before{content:"\2601"}.factory-bootstrap-436 .glyphicon-envelope:before{content:"\2709"}.factory-bootstrap-436 .glyphicon-pencil:before{content:"\270f"}.factory-bootstrap-436 .glyphicon-glass:before{content:"\e001"}.factory-bootstrap-436 .glyphicon-music:before{content:"\e002"}.factory-bootstrap-436 .glyphicon-search:before{content:"\e003"}.factory-bootstrap-436 .glyphicon-heart:before{content:"\e005"}.factory-bootstrap-436 .glyphicon-star:before{content:"\e006"}.factory-bootstrap-436 .glyphicon-star-empty:before{content:"\e007"}.factory-bootstrap-436 .glyphicon-user:before{content:"\e008"}.factory-bootstrap-436 .glyphicon-film:before{content:"\e009"}.factory-bootstrap-436 .glyphicon-th-large:before{content:"\e010"}.factory-bootstrap-436 .glyphicon-th:before{content:"\e011"}.factory-bootstrap-436 .glyphicon-th-list:before{content:"\e012"}.factory-bootstrap-436 .glyphicon-ok:before{content:"\e013"}.factory-bootstrap-436 .glyphicon-remove:before{content:"\e014"}.factory-bootstrap-436 .glyphicon-zoom-in:before{content:"\e015"}.factory-bootstrap-436 .glyphicon-zoom-out:before{content:"\e016"}.factory-bootstrap-436 .glyphicon-off:before{content:"\e017"}.factory-bootstrap-436 .glyphicon-signal:before{content:"\e018"}.factory-bootstrap-436 .glyphicon-cog:before{content:"\e019"}.factory-bootstrap-436 .glyphicon-trash:before{content:"\e020"}.factory-bootstrap-436 .glyphicon-home:before{content:"\e021"}.factory-bootstrap-436 .glyphicon-file:before{content:"\e022"}.factory-bootstrap-436 .glyphicon-time:before{content:"\e023"}.factory-bootstrap-436 .glyphicon-road:before{content:"\e024"}.factory-bootstrap-436 .glyphicon-download-alt:before{content:"\e025"}.factory-bootstrap-436 .glyphicon-download:before{content:"\e026"}.factory-bootstrap-436 .glyphicon-upload:before{content:"\e027"}.factory-bootstrap-436 .glyphicon-inbox:before{content:"\e028"}.factory-bootstrap-436 .glyphicon-play-circle:before{content:"\e029"}.factory-bootstrap-436 .glyphicon-repeat:before{content:"\e030"}.factory-bootstrap-436 .glyphicon-refresh:before{content:"\e031"}.factory-bootstrap-436 .glyphicon-list-alt:before{content:"\e032"}.factory-bootstrap-436 .glyphicon-lock:before{content:"\e033"}.factory-bootstrap-436 .glyphicon-flag:before{content:"\e034"}.factory-bootstrap-436 .glyphicon-headphones:before{content:"\e035"}.factory-bootstrap-436 .glyphicon-volume-off:before{content:"\e036"}.factory-bootstrap-436 .glyphicon-volume-down:before{content:"\e037"}.factory-bootstrap-436 .glyphicon-volume-up:before{content:"\e038"}.factory-bootstrap-436 .glyphicon-qrcode:before{content:"\e039"}.factory-bootstrap-436 .glyphicon-barcode:before{content:"\e040"}.factory-bootstrap-436 .glyphicon-tag:before{content:"\e041"}.factory-bootstrap-436 .glyphicon-tags:before{content:"\e042"}.factory-bootstrap-436 .glyphicon-book:before{content:"\e043"}.factory-bootstrap-436 .glyphicon-bookmark:before{content:"\e044"}.factory-bootstrap-436 .glyphicon-print:before{content:"\e045"}.factory-bootstrap-436 .glyphicon-camera:before{content:"\e046"}.factory-bootstrap-436 .glyphicon-font:before{content:"\e047"}.factory-bootstrap-436 .glyphicon-bold:before{content:"\e048"}.factory-bootstrap-436 .glyphicon-italic:before{content:"\e049"}.factory-bootstrap-436 .glyphicon-text-height:before{content:"\e050"}.factory-bootstrap-436 .glyphicon-text-width:before{content:"\e051"}.factory-bootstrap-436 .glyphicon-align-left:before{content:"\e052"}.factory-bootstrap-436 .glyphicon-align-center:before{content:"\e053"}.factory-bootstrap-436 .glyphicon-align-right:before{content:"\e054"}.factory-bootstrap-436 .glyphicon-align-justify:before{content:"\e055"}.factory-bootstrap-436 .glyphicon-list:before{content:"\e056"}.factory-bootstrap-436 .glyphicon-indent-left:before{content:"\e057"}.factory-bootstrap-436 .glyphicon-indent-right:before{content:"\e058"}.factory-bootstrap-436 .glyphicon-facetime-video:before{content:"\e059"}.factory-bootstrap-436 .glyphicon-picture:before{content:"\e060"}.factory-bootstrap-436 .glyphicon-map-marker:before{content:"\e062"}.factory-bootstrap-436 .glyphicon-adjust:before{content:"\e063"}.factory-bootstrap-436 .glyphicon-tint:before{content:"\e064"}.factory-bootstrap-436 .glyphicon-edit:before{content:"\e065"}.factory-bootstrap-436 .glyphicon-share:before{content:"\e066"}.factory-bootstrap-436 .glyphicon-check:before{content:"\e067"}.factory-bootstrap-436 .glyphicon-move:before{content:"\e068"}.factory-bootstrap-436 .glyphicon-step-backward:before{content:"\e069"}.factory-bootstrap-436 .glyphicon-fast-backward:before{content:"\e070"}.factory-bootstrap-436 .glyphicon-backward:before{content:"\e071"}.factory-bootstrap-436 .glyphicon-play:before{content:"\e072"}.factory-bootstrap-436 .glyphicon-pause:before{content:"\e073"}.factory-bootstrap-436 .glyphicon-stop:before{content:"\e074"}.factory-bootstrap-436 .glyphicon-forward:before{content:"\e075"}.factory-bootstrap-436 .glyphicon-fast-forward:before{content:"\e076"}.factory-bootstrap-436 .glyphicon-step-forward:before{content:"\e077"}.factory-bootstrap-436 .glyphicon-eject:before{content:"\e078"}.factory-bootstrap-436 .glyphicon-chevron-left:before{content:"\e079"}.factory-bootstrap-436 .glyphicon-chevron-right:before{content:"\e080"}.factory-bootstrap-436 .glyphicon-plus-sign:before{content:"\e081"}.factory-bootstrap-436 .glyphicon-minus-sign:before{content:"\e082"}.factory-bootstrap-436 .glyphicon-remove-sign:before{content:"\e083"}.factory-bootstrap-436 .glyphicon-ok-sign:before{content:"\e084"}.factory-bootstrap-436 .glyphicon-question-sign:before{content:"\e085"}.factory-bootstrap-436 .glyphicon-info-sign:before{content:"\e086"}.factory-bootstrap-436 .glyphicon-screenshot:before{content:"\e087"}.factory-bootstrap-436 .glyphicon-remove-circle:before{content:"\e088"}.factory-bootstrap-436 .glyphicon-ok-circle:before{content:"\e089"}.factory-bootstrap-436 .glyphicon-ban-circle:before{content:"\e090"}.factory-bootstrap-436 .glyphicon-arrow-left:before{content:"\e091"}.factory-bootstrap-436 .glyphicon-arrow-right:before{content:"\e092"}.factory-bootstrap-436 .glyphicon-arrow-up:before{content:"\e093"}.factory-bootstrap-436 .glyphicon-arrow-down:before{content:"\e094"}.factory-bootstrap-436 .glyphicon-share-alt:before{content:"\e095"}.factory-bootstrap-436 .glyphicon-resize-full:before{content:"\e096"}.factory-bootstrap-436 .glyphicon-resize-small:before{content:"\e097"}.factory-bootstrap-436 .glyphicon-exclamation-sign:before{content:"\e101"}.factory-bootstrap-436 .glyphicon-gift:before{content:"\e102"}.factory-bootstrap-436 .glyphicon-leaf:before{content:"\e103"}.factory-bootstrap-436 .glyphicon-fire:before{content:"\e104"}.factory-bootstrap-436 .glyphicon-eye-open:before{content:"\e105"}.factory-bootstrap-436 .glyphicon-eye-close:before{content:"\e106"}.factory-bootstrap-436 .glyphicon-warning-sign:before{content:"\e107"}.factory-bootstrap-436 .glyphicon-plane:before{content:"\e108"}.factory-bootstrap-436 .glyphicon-calendar:before{content:"\e109"}.factory-bootstrap-436 .glyphicon-random:before{content:"\e110"}.factory-bootstrap-436 .glyphicon-comment:before{content:"\e111"}.factory-bootstrap-436 .glyphicon-magnet:before{content:"\e112"}.factory-bootstrap-436 .glyphicon-chevron-up:before{content:"\e113"}.factory-bootstrap-436 .glyphicon-chevron-down:before{content:"\e114"}.factory-bootstrap-436 .glyphicon-retweet:before{content:"\e115"}.factory-bootstrap-436 .glyphicon-shopping-cart:before{content:"\e116"}.factory-bootstrap-436 .glyphicon-folder-close:before{content:"\e117"}.factory-bootstrap-436 .glyphicon-folder-open:before{content:"\e118"}.factory-bootstrap-436 .glyphicon-resize-vertical:before{content:"\e119"}.factory-bootstrap-436 .glyphicon-resize-horizontal:before{content:"\e120"}.factory-bootstrap-436 .glyphicon-hdd:before{content:"\e121"}.factory-bootstrap-436 .glyphicon-bullhorn:before{content:"\e122"}.factory-bootstrap-436 .glyphicon-bell:before{content:"\e123"}.factory-bootstrap-436 .glyphicon-certificate:before{content:"\e124"}.factory-bootstrap-436 .glyphicon-thumbs-up:before{content:"\e125"}.factory-bootstrap-436 .glyphicon-thumbs-down:before{content:"\e126"}.factory-bootstrap-436 .glyphicon-hand-right:before{content:"\e127"}.factory-bootstrap-436 .glyphicon-hand-left:before{content:"\e128"}.factory-bootstrap-436 .glyphicon-hand-up:before{content:"\e129"}.factory-bootstrap-436 .glyphicon-hand-down:before{content:"\e130"}.factory-bootstrap-436 .glyphicon-circle-arrow-right:before{content:"\e131"}.factory-bootstrap-436 .glyphicon-circle-arrow-left:before{content:"\e132"}.factory-bootstrap-436 .glyphicon-circle-arrow-up:before{content:"\e133"}.factory-bootstrap-436 .glyphicon-circle-arrow-down:before{content:"\e134"}.factory-bootstrap-436 .glyphicon-globe:before{content:"\e135"}.factory-bootstrap-436 .glyphicon-wrench:before{content:"\e136"}.factory-bootstrap-436 .glyphicon-tasks:before{content:"\e137"}.factory-bootstrap-436 .glyphicon-filter:before{content:"\e138"}.factory-bootstrap-436 .glyphicon-briefcase:before{content:"\e139"}.factory-bootstrap-436 .glyphicon-fullscreen:before{content:"\e140"}.factory-bootstrap-436 .glyphicon-dashboard:before{content:"\e141"}.factory-bootstrap-436 .glyphicon-paperclip:before{content:"\e142"}.factory-bootstrap-436 .glyphicon-heart-empty:before{content:"\e143"}.factory-bootstrap-436 .glyphicon-link:before{content:"\e144"}.factory-bootstrap-436 .glyphicon-phone:before{content:"\e145"}.factory-bootstrap-436 .glyphicon-pushpin:before{content:"\e146"}.factory-bootstrap-436 .glyphicon-usd:before{content:"\e148"}.factory-bootstrap-436 .glyphicon-gbp:before{content:"\e149"}.factory-bootstrap-436 .glyphicon-sort:before{content:"\e150"}.factory-bootstrap-436 .glyphicon-sort-by-alphabet:before{content:"\e151"}.factory-bootstrap-436 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.factory-bootstrap-436 .glyphicon-sort-by-order:before{content:"\e153"}.factory-bootstrap-436 .glyphicon-sort-by-order-alt:before{content:"\e154"}.factory-bootstrap-436 .glyphicon-sort-by-attributes:before{content:"\e155"}.factory-bootstrap-436 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.factory-bootstrap-436 .glyphicon-unchecked:before{content:"\e157"}.factory-bootstrap-436 .glyphicon-expand:before{content:"\e158"}.factory-bootstrap-436 .glyphicon-collapse-down:before{content:"\e159"}.factory-bootstrap-436 .glyphicon-collapse-up:before{content:"\e160"}.factory-bootstrap-436 .glyphicon-log-in:before{content:"\e161"}.factory-bootstrap-436 .glyphicon-flash:before{content:"\e162"}.factory-bootstrap-436 .glyphicon-log-out:before{content:"\e163"}.factory-bootstrap-436 .glyphicon-new-window:before{content:"\e164"}.factory-bootstrap-436 .glyphicon-record:before{content:"\e165"}.factory-bootstrap-436 .glyphicon-save:before{content:"\e166"}.factory-bootstrap-436 .glyphicon-open:before{content:"\e167"}.factory-bootstrap-436 .glyphicon-saved:before{content:"\e168"}.factory-bootstrap-436 .glyphicon-import:before{content:"\e169"}.factory-bootstrap-436 .glyphicon-export:before{content:"\e170"}.factory-bootstrap-436 .glyphicon-send:before{content:"\e171"}.factory-bootstrap-436 .glyphicon-floppy-disk:before{content:"\e172"}.factory-bootstrap-436 .glyphicon-floppy-saved:before{content:"\e173"}.factory-bootstrap-436 .glyphicon-floppy-remove:before{content:"\e174"}.factory-bootstrap-436 .glyphicon-floppy-save:before{content:"\e175"}.factory-bootstrap-436 .glyphicon-floppy-open:before{content:"\e176"}.factory-bootstrap-436 .glyphicon-credit-card:before{content:"\e177"}.factory-bootstrap-436 .glyphicon-transfer:before{content:"\e178"}.factory-bootstrap-436 .glyphicon-cutlery:before{content:"\e179"}.factory-bootstrap-436 .glyphicon-header:before{content:"\e180"}.factory-bootstrap-436 .glyphicon-compressed:before{content:"\e181"}.factory-bootstrap-436 .glyphicon-earphone:before{content:"\e182"}.factory-bootstrap-436 .glyphicon-phone-alt:before{content:"\e183"}.factory-bootstrap-436 .glyphicon-tower:before{content:"\e184"}.factory-bootstrap-436 .glyphicon-stats:before{content:"\e185"}.factory-bootstrap-436 .glyphicon-sd-video:before{content:"\e186"}.factory-bootstrap-436 .glyphicon-hd-video:before{content:"\e187"}.factory-bootstrap-436 .glyphicon-subtitles:before{content:"\e188"}.factory-bootstrap-436 .glyphicon-sound-stereo:before{content:"\e189"}.factory-bootstrap-436 .glyphicon-sound-dolby:before{content:"\e190"}.factory-bootstrap-436 .glyphicon-sound-5-1:before{content:"\e191"}.factory-bootstrap-436 .glyphicon-sound-6-1:before{content:"\e192"}.factory-bootstrap-436 .glyphicon-sound-7-1:before{content:"\e193"}.factory-bootstrap-436 .glyphicon-copyright-mark:before{content:"\e194"}.factory-bootstrap-436 .glyphicon-registration-mark:before{content:"\e195"}.factory-bootstrap-436 .glyphicon-cloud-download:before{content:"\e197"}.factory-bootstrap-436 .glyphicon-cloud-upload:before{content:"\e198"}.factory-bootstrap-436 .glyphicon-tree-conifer:before{content:"\e199"}.factory-bootstrap-436 .glyphicon-tree-deciduous:before{content:"\e200"}.factory-bootstrap-436 .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-436 .dropdown{position:relative}.factory-bootstrap-436 .dropdown-toggle:focus{outline:0}.factory-bootstrap-436 .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-436 .dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-436 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-436 .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-436 .dropdown-menu>li>a:focus,.factory-bootstrap-436 .dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.factory-bootstrap-436 .dropdown-menu>.active>a,.factory-bootstrap-436 .dropdown-menu>.active>a:focus,.factory-bootstrap-436 .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.factory-bootstrap-436 .dropdown-menu>.disabled>a,.factory-bootstrap-436 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-436 .dropdown-menu>.disabled>a:hover{color:#999}.factory-bootstrap-436 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-436 .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-436 .open>.dropdown-menu{display:block}.factory-bootstrap-436 .open>a{outline:0}.factory-bootstrap-436 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.factory-bootstrap-436 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.factory-bootstrap-436 .pull-right>.dropdown-menu{right:0;left:auto}.factory-bootstrap-436 .dropup .caret,.factory-bootstrap-436 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.factory-bootstrap-436 .dropup .dropdown-menu,.factory-bootstrap-436 .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-436 .btn-group,.factory-bootstrap-436 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.factory-bootstrap-436 .btn-group-vertical>.btn,.factory-bootstrap-436 .btn-group>.btn{position:relative;float:left}.factory-bootstrap-436 .btn-group-vertical>.btn.active,.factory-bootstrap-436 .btn-group-vertical>.btn:active,.factory-bootstrap-436 .btn-group-vertical>.btn:focus,.factory-bootstrap-436 .btn-group-vertical>.btn:hover,.factory-bootstrap-436 .btn-group>.btn.active,.factory-bootstrap-436 .btn-group>.btn:active,.factory-bootstrap-436 .btn-group>.btn:focus,.factory-bootstrap-436 .btn-group>.btn:hover{z-index:2}.factory-bootstrap-436 .btn-group-vertical>.btn:focus,.factory-bootstrap-436 .btn-group>.btn:focus{outline:0}.factory-bootstrap-436 .btn-group .btn+.btn,.factory-bootstrap-436 .btn-group .btn+.btn-group,.factory-bootstrap-436 .btn-group .btn-group+.btn,.factory-bootstrap-436 .btn-group .btn-group+.btn-group{margin-left:-1px}.factory-bootstrap-436 .btn-toolbar:after,.factory-bootstrap-436 .btn-toolbar:before{display:table;content:" "}.factory-bootstrap-436 .btn-toolbar:after{clear:both}.factory-bootstrap-436 .btn-toolbar .btn-group{float:left}.factory-bootstrap-436 .btn-toolbar>.btn+.btn,.factory-bootstrap-436 .btn-toolbar>.btn+.btn-group,.factory-bootstrap-436 .btn-toolbar>.btn-group+.btn,.factory-bootstrap-436 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.factory-bootstrap-436 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.factory-bootstrap-436 .btn-group>.btn:first-child{margin-left:0}.factory-bootstrap-436 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-436 .btn-group>.btn:last-child:not(:first-child),.factory-bootstrap-436 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-436 .btn-group>.btn-group{float:left}.factory-bootstrap-436 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-436 .btn-group>.btn-group:first-child>.btn:last-child,.factory-bootstrap-436 .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-436 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-436 .btn-group .dropdown-toggle:active,.factory-bootstrap-436 .btn-group.open .dropdown-toggle{outline:0}.factory-bootstrap-436 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-436 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-436 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-436 .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.factory-bootstrap-436 .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.factory-bootstrap-436 .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-436 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-436 .btn-group{border:4px solid #f9f9f9;border-radius:4px}.factory-bootstrap-436 .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-436 .btn .caret{margin-left:0}.factory-bootstrap-436 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.factory-bootstrap-436 .dropup .btn-lg .caret{border-width:0 5px 5px}.factory-bootstrap-436 .btn-group-vertical>.btn,.factory-bootstrap-436 .btn-group-vertical>.btn-group,.factory-bootstrap-436 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.factory-bootstrap-436 .btn-group-vertical>.btn-group:after,.factory-bootstrap-436 .btn-group-vertical>.btn-group:before{display:table;content:" "}.factory-bootstrap-436 .btn-group-vertical>.btn-group:after{clear:both}.factory-bootstrap-436 .btn-group-vertical>.btn-group>.btn{float:none}.factory-bootstrap-436 .btn-group-vertical>.btn+.btn,.factory-bootstrap-436 .btn-group-vertical>.btn+.btn-group,.factory-bootstrap-436 .btn-group-vertical>.btn-group+.btn,.factory-bootstrap-436 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.factory-bootstrap-436 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-436 .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-436 .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-436 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-436 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.factory-bootstrap-436 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-436 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-436 .btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.factory-bootstrap-436 .btn-group-justified>.btn,.factory-bootstrap-436 .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.factory-bootstrap-436 .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-436 .input-group{position:relative;display:table;border-collapse:separate}.factory-bootstrap-436 .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.factory-bootstrap-436 .input-group .form-control{width:100%;margin-bottom:0}.factory-bootstrap-436 .input-group-lg>.form-control,.factory-bootstrap-436 .input-group-lg>.input-group-addon,.factory-bootstrap-436 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-436 select.input-group-lg>.form-control,.factory-bootstrap-436 select.input-group-lg>.input-group-addon,.factory-bootstrap-436 select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}.factory-bootstrap-436 textarea.input-group-lg>.form-control,.factory-bootstrap-436 textarea.input-group-lg>.input-group-addon,.factory-bootstrap-436 textarea.input-group-lg>.input-group-btn>.btn{height:auto}.factory-bootstrap-436 .input-group-sm>.form-control,.factory-bootstrap-436 .input-group-sm>.input-group-addon,.factory-bootstrap-436 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-436 select.input-group-sm>.form-control,.factory-bootstrap-436 select.input-group-sm>.input-group-addon,.factory-bootstrap-436 select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}.factory-bootstrap-436 textarea.input-group-sm>.form-control,.factory-bootstrap-436 textarea.input-group-sm>.input-group-addon,.factory-bootstrap-436 textarea.input-group-sm>.input-group-btn>.btn{height:auto}.factory-bootstrap-436 .input-group .form-control,.factory-bootstrap-436 .input-group-addon,.factory-bootstrap-436 .input-group-btn{display:table-cell}.factory-bootstrap-436 .input-group .form-control:not(:first-child):not(:last-child),.factory-bootstrap-436 .input-group-addon:not(:first-child):not(:last-child),.factory-bootstrap-436 .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-436 .input-group-addon,.factory-bootstrap-436 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.factory-bootstrap-436 .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-436 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.factory-bootstrap-436 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.factory-bootstrap-436 .input-group-addon input[type=checkbox],.factory-bootstrap-436 .input-group-addon input[type=radio]{margin-top:0}.factory-bootstrap-436 .input-group .form-control:first-child,.factory-bootstrap-436 .input-group-addon:first-child,.factory-bootstrap-436 .input-group-btn:first-child>.btn,.factory-bootstrap-436 .input-group-btn:first-child>.dropdown-toggle,.factory-bootstrap-436 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-436 .input-group-addon:first-child{border-right:0}.factory-bootstrap-436 .input-group .form-control:last-child,.factory-bootstrap-436 .input-group-addon:last-child,.factory-bootstrap-436 .input-group-btn:first-child>.btn:not(:first-child),.factory-bootstrap-436 .input-group-btn:last-child>.btn,.factory-bootstrap-436 .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-436 .input-group-addon:last-child{border-left:0}.factory-bootstrap-436 .input-group-btn{position:relative;white-space:nowrap}.factory-bootstrap-436 .input-group-btn:first-child>.btn{margin-right:-1px}.factory-bootstrap-436 .input-group-btn:last-child>.btn{margin-left:-1px}.factory-bootstrap-436 .input-group-btn>.btn{position:relative}.factory-bootstrap-436 .input-group-btn>.btn+.btn{margin-left:-4px}.factory-bootstrap-436 .input-group-btn>.btn:active,.factory-bootstrap-436 .input-group-btn>.btn:hover{z-index:2}.factory-bootstrap-436 .nav{padding-left:0;margin-bottom:0;list-style:none}.factory-bootstrap-436 .nav:after,.factory-bootstrap-436 .nav:before{display:table;content:" "}.factory-bootstrap-436 .nav:after{clear:both}.factory-bootstrap-436 .nav>li{position:relative;display:block}.factory-bootstrap-436 .nav>li>a{position:relative;display:block;padding:10px 15px}.factory-bootstrap-436 .nav>li>a:focus,.factory-bootstrap-436 .nav>li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-436 .nav>li.disabled>a{color:#999}.factory-bootstrap-436 .nav>li.disabled>a:focus,.factory-bootstrap-436 .nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.factory-bootstrap-436 .nav .open>a,.factory-bootstrap-436 .nav .open>a:focus,.factory-bootstrap-436 .nav .open>a:hover{background-color:#eee;border-color:#428bca}.factory-bootstrap-436 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-436 .nav>li>a>img{max-width:none}.factory-bootstrap-436 .nav-tabs{border-bottom:1px solid #ddd}.factory-bootstrap-436 .nav-tabs>li{float:left;margin-bottom:-1px}.factory-bootstrap-436 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.factory-bootstrap-436 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.factory-bootstrap-436 .nav-tabs>li.active>a,.factory-bootstrap-436 .nav-tabs>li.active>a:focus,.factory-bootstrap-436 .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.factory-bootstrap-436 .nav-tabs.nav-justified{width:100%;border-bottom:0}.factory-bootstrap-436 .nav-tabs.nav-justified>li{float:none}.factory-bootstrap-436 .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-436 .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-436 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-436 .nav-tabs.nav-justified>.active>a,.factory-bootstrap-436 .nav-tabs.nav-justified>.active>a:focus,.factory-bootstrap-436 .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-436 .nav-pills>li{float:left}.factory-bootstrap-436 .nav-pills>li>a{border-radius:4px}.factory-bootstrap-436 .nav-pills>li+li{margin-left:2px}.factory-bootstrap-436 .nav-pills>li.active>a,.factory-bootstrap-436 .nav-pills>li.active>a:focus,.factory-bootstrap-436 .nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.factory-bootstrap-436 .nav-stacked>li{float:none}.factory-bootstrap-436 .nav-stacked>li+li{margin-top:2px;margin-left:0}.factory-bootstrap-436 .nav-justified{width:100%}.factory-bootstrap-436 .nav-justified>li{float:none}.factory-bootstrap-436 .nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-436 .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-436 .nav-tabs-justified{border-bottom:0}.factory-bootstrap-436 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-436 .nav-tabs-justified>.active>a,.factory-bootstrap-436 .nav-tabs-justified>.active>a:focus,.factory-bootstrap-436 .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-436 .tab-content>.tab-pane{display:none}.factory-bootstrap-436 .tab-content>.active{display:block}.factory-bootstrap-436 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-436 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.factory-bootstrap-436 .navbar:after,.factory-bootstrap-436 .navbar:before{display:table;content:" "}.factory-bootstrap-436 .navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.factory-bootstrap-436 .navbar-header:after,.factory-bootstrap-436 .navbar-header:before{display:table;content:" "}.factory-bootstrap-436 .navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.factory-bootstrap-436 .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-436 .navbar-collapse:after,.factory-bootstrap-436 .navbar-collapse:before{display:table;content:" "}.factory-bootstrap-436 .navbar-collapse:after{clear:both}.factory-bootstrap-436 .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-436 .container>.navbar-collapse,.factory-bootstrap-436 .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-436 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.factory-bootstrap-436 .navbar-fixed-bottom,.factory-bootstrap-436 .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-436 .navbar-fixed-top{top:0;border-width:0 0 1px}.factory-bootstrap-436 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.factory-bootstrap-436 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.factory-bootstrap-436 .navbar-brand:focus,.factory-bootstrap-436 .navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.factory-bootstrap-436 .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-436 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.factory-bootstrap-436 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.factory-bootstrap-436 .navbar-nav{margin:7.5px -15px}.factory-bootstrap-436 .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-436 .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-436 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-436 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-436 .navbar-nav.pull-right>li>.dropdown-menu,.factory-bootstrap-436 .navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-436 .navbar-btn{margin-top:8px;margin-bottom:8px}.factory-bootstrap-436 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.factory-bootstrap-436 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.factory-bootstrap-436 .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-436 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.factory-bootstrap-436 .navbar-default .navbar-brand{color:#777}.factory-bootstrap-436 .navbar-default .navbar-brand:focus,.factory-bootstrap-436 .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.factory-bootstrap-436 .navbar-default .navbar-nav>li>a,.factory-bootstrap-436 .navbar-default .navbar-text{color:#777}.factory-bootstrap-436 .navbar-default .navbar-nav>li>a:focus,.factory-bootstrap-436 .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.factory-bootstrap-436 .navbar-default .navbar-nav>.active>a,.factory-bootstrap-436 .navbar-default .navbar-nav>.active>a:focus,.factory-bootstrap-436 .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.factory-bootstrap-436 .navbar-default .navbar-nav>.disabled>a,.factory-bootstrap-436 .navbar-default .navbar-nav>.disabled>a:focus,.factory-bootstrap-436 .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.factory-bootstrap-436 .navbar-default .navbar-toggle{border-color:#ddd}.factory-bootstrap-436 .navbar-default .navbar-toggle:focus,.factory-bootstrap-436 .navbar-default .navbar-toggle:hover{background-color:#ddd}.factory-bootstrap-436 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.factory-bootstrap-436 .navbar-default .navbar-collapse,.factory-bootstrap-436 .navbar-default .navbar-form{border-color:#e7e7e7}.factory-bootstrap-436 .navbar-default .navbar-nav>.open>a,.factory-bootstrap-436 .navbar-default .navbar-nav>.open>a:focus,.factory-bootstrap-436 .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-436 .navbar-default .navbar-link{color:#777}.factory-bootstrap-436 .navbar-default .navbar-link:hover{color:#333}.factory-bootstrap-436 .navbar-inverse{background-color:#222;border-color:#080808}.factory-bootstrap-436 .navbar-inverse .navbar-brand{color:#999}.factory-bootstrap-436 .navbar-inverse .navbar-brand:focus,.factory-bootstrap-436 .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.factory-bootstrap-436 .navbar-inverse .navbar-nav>li>a,.factory-bootstrap-436 .navbar-inverse .navbar-text{color:#999}.factory-bootstrap-436 .navbar-inverse .navbar-nav>li>a:focus,.factory-bootstrap-436 .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.factory-bootstrap-436 .navbar-inverse .navbar-nav>.active>a,.factory-bootstrap-436 .navbar-inverse .navbar-nav>.active>a:focus,.factory-bootstrap-436 .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.factory-bootstrap-436 .navbar-inverse .navbar-nav>.disabled>a,.factory-bootstrap-436 .navbar-inverse .navbar-nav>.disabled>a:focus,.factory-bootstrap-436 .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.factory-bootstrap-436 .navbar-inverse .navbar-toggle{border-color:#333}.factory-bootstrap-436 .navbar-inverse .navbar-toggle:focus,.factory-bootstrap-436 .navbar-inverse .navbar-toggle:hover{background-color:#333}.factory-bootstrap-436 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.factory-bootstrap-436 .navbar-inverse .navbar-collapse,.factory-bootstrap-436 .navbar-inverse .navbar-form{border-color:#101010}.factory-bootstrap-436 .navbar-inverse .navbar-nav>.open>a,.factory-bootstrap-436 .navbar-inverse .navbar-nav>.open>a:focus,.factory-bootstrap-436 .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-436 .navbar-inverse .navbar-link{color:#999}.factory-bootstrap-436 .navbar-inverse .navbar-link:hover{color:#fff}.factory-bootstrap-436 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.factory-bootstrap-436 .breadcrumb>li{display:inline-block}.factory-bootstrap-436 .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.factory-bootstrap-436 .breadcrumb>.active{color:#999}.factory-bootstrap-436 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.factory-bootstrap-436 .pagination>li{display:inline}.factory-bootstrap-436 .pagination>li>a,.factory-bootstrap-436 .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-436 .pagination>li:first-child>a,.factory-bootstrap-436 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.factory-bootstrap-436 .pagination>li:last-child>a,.factory-bootstrap-436 .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.factory-bootstrap-436 .pagination>li>a:focus,.factory-bootstrap-436 .pagination>li>a:hover,.factory-bootstrap-436 .pagination>li>span:focus,.factory-bootstrap-436 .pagination>li>span:hover{background-color:#eee}.factory-bootstrap-436 .pagination>.active>a,.factory-bootstrap-436 .pagination>.active>a:focus,.factory-bootstrap-436 .pagination>.active>a:hover,.factory-bootstrap-436 .pagination>.active>span,.factory-bootstrap-436 .pagination>.active>span:focus,.factory-bootstrap-436 .pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#1e8cbe;border-color:#0074a2}.factory-bootstrap-436 .pagination>.disabled>a,.factory-bootstrap-436 .pagination>.disabled>a:focus,.factory-bootstrap-436 .pagination>.disabled>a:hover,.factory-bootstrap-436 .pagination>.disabled>span,.factory-bootstrap-436 .pagination>.disabled>span:focus,.factory-bootstrap-436 .pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.factory-bootstrap-436 .pagination-lg>li>a,.factory-bootstrap-436 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.factory-bootstrap-436 .pagination-lg>li:first-child>a,.factory-bootstrap-436 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.factory-bootstrap-436 .pagination-lg>li:last-child>a,.factory-bootstrap-436 .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.factory-bootstrap-436 .pagination-sm>li>a,.factory-bootstrap-436 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.factory-bootstrap-436 .pagination-sm>li:first-child>a,.factory-bootstrap-436 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.factory-bootstrap-436 .pagination-sm>li:last-child>a,.factory-bootstrap-436 .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.factory-bootstrap-436 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.factory-bootstrap-436 .pager:after,.factory-bootstrap-436 .pager:before{display:table;content:" "}.factory-bootstrap-436 .pager:after{clear:both}.factory-bootstrap-436 .pager li{display:inline}.factory-bootstrap-436 .pager li>a,.factory-bootstrap-436 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.factory-bootstrap-436 .pager li>a:focus,.factory-bootstrap-436 .pager li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-436 .pager .next>a,.factory-bootstrap-436 .pager .next>span{float:right}.factory-bootstrap-436 .pager .previous>a,.factory-bootstrap-436 .pager .previous>span{float:left}.factory-bootstrap-436 .pager .disabled>a,.factory-bootstrap-436 .pager .disabled>a:focus,.factory-bootstrap-436 .pager .disabled>a:hover,.factory-bootstrap-436 .pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.factory-bootstrap-436 .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-436 .label[href]:focus,.factory-bootstrap-436 .label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-436 .label:empty{display:none}.factory-bootstrap-436 .btn .label{position:relative;top:-1px}.factory-bootstrap-436 .label-default{background-color:#999}.factory-bootstrap-436 .label-default[href]:focus,.factory-bootstrap-436 .label-default[href]:hover{background-color:gray}.factory-bootstrap-436 .label-primary{background-color:#428bca}.factory-bootstrap-436 .label-primary[href]:focus,.factory-bootstrap-436 .label-primary[href]:hover{background-color:#3071a9}.factory-bootstrap-436 .label-success{background-color:#5cb85c}.factory-bootstrap-436 .label-success[href]:focus,.factory-bootstrap-436 .label-success[href]:hover{background-color:#449d44}.factory-bootstrap-436 .label-info{background-color:#5bc0de}.factory-bootstrap-436 .label-info[href]:focus,.factory-bootstrap-436 .label-info[href]:hover{background-color:#31b0d5}.factory-bootstrap-436 .label-warning{background-color:#f0ad4e}.factory-bootstrap-436 .label-warning[href]:focus,.factory-bootstrap-436 .label-warning[href]:hover{background-color:#ec971f}.factory-bootstrap-436 .label-danger{background-color:#d9534f}.factory-bootstrap-436 .label-danger[href]:focus,.factory-bootstrap-436 .label-danger[href]:hover{background-color:#c9302c}.factory-bootstrap-436 .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-436 .badge:empty{display:none}.factory-bootstrap-436 .btn .badge{position:relative;top:-1px}.factory-bootstrap-436 a.badge:focus,.factory-bootstrap-436 a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-436 .nav-pills>.active>a>.badge,.factory-bootstrap-436 a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.factory-bootstrap-436 .nav-pills>li>a>.badge{margin-left:3px}.factory-bootstrap-436 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.factory-bootstrap-436 .jumbotron .h1,.factory-bootstrap-436 .jumbotron h1{line-height:1;color:inherit}.factory-bootstrap-436 .jumbotron p{line-height:1.4}.factory-bootstrap-436 .container .jumbotron{border-radius:6px}.factory-bootstrap-436 .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-436 .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-436 .thumbnail a>img,.factory-bootstrap-436 .thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}.factory-bootstrap-436 a.thumbnail.active,.factory-bootstrap-436 a.thumbnail:focus,.factory-bootstrap-436 a.thumbnail:hover{border-color:#428bca}.factory-bootstrap-436 .thumbnail .caption{padding:9px;color:#333}.factory-bootstrap-436 .alert{border:1px solid transparent;border-radius:4px}.factory-bootstrap-436 .alert h4{margin-top:0;color:inherit}.factory-bootstrap-436 .alert .alert-link{font-weight:700}.factory-bootstrap-436 .alert>p,.factory-bootstrap-436 .alert>ul{margin-bottom:0}.factory-bootstrap-436 .alert>p+p{margin-top:5px}.factory-bootstrap-436 .alert-dismissable{padding-right:35px}.factory-bootstrap-436 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.factory-bootstrap-436 .alert-info{color:#31708f;background-color:#d9edf7}.factory-bootstrap-436 .alert-info hr{border-top-color:#a6e1ec}.factory-bootstrap-436 .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-436 .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-436 .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-436 .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-436 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.factory-bootstrap-436 .progress-bar-success{background-color:#5cb85c}.factory-bootstrap-436 .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-436 .progress-bar-info{background-color:#5bc0de}.factory-bootstrap-436 .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-436 .progress-bar-warning{background-color:#f0ad4e}.factory-bootstrap-436 .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-436 .progress-bar-danger{background-color:#d9534f}.factory-bootstrap-436 .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-436 .media,.factory-bootstrap-436 .media-body{overflow:hidden;zoom:1}.factory-bootstrap-436 .media,.factory-bootstrap-436 .media .media{margin-top:15px}.factory-bootstrap-436 .media:first-child{margin-top:0}.factory-bootstrap-436 .media-object{display:block}.factory-bootstrap-436 .media-heading{margin:0 0 5px}.factory-bootstrap-436 .media>.pull-left{margin-right:10px}.factory-bootstrap-436 .media>.pull-right{margin-left:10px}.factory-bootstrap-436 .media-list{padding-left:0;list-style:none}.factory-bootstrap-436 .list-group{padding-left:0;margin-bottom:20px}.factory-bootstrap-436 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-436 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.factory-bootstrap-436 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.factory-bootstrap-436 .list-group-item>.badge{float:right}.factory-bootstrap-436 .list-group-item>.badge+.badge{margin-right:5px}.factory-bootstrap-436 a.list-group-item{color:#555}.factory-bootstrap-436 a.list-group-item .list-group-item-heading{color:#333}.factory-bootstrap-436 a.list-group-item:focus,.factory-bootstrap-436 a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.factory-bootstrap-436 a.list-group-item.active,.factory-bootstrap-436 a.list-group-item.active:focus,.factory-bootstrap-436 a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-436 a.list-group-item.active .list-group-item-heading,.factory-bootstrap-436 a.list-group-item.active:focus .list-group-item-heading,.factory-bootstrap-436 a.list-group-item.active:hover .list-group-item-heading{color:inherit}.factory-bootstrap-436 a.list-group-item.active .list-group-item-text,.factory-bootstrap-436 a.list-group-item.active:focus .list-group-item-text,.factory-bootstrap-436 a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.factory-bootstrap-436 .list-group-item-heading{margin-top:0;margin-bottom:5px}.factory-bootstrap-436 .list-group-item-text{margin-bottom:0;line-height:1.3}.factory-bootstrap-436 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.factory-bootstrap-436 .panel-body{padding:15px}.factory-bootstrap-436 .panel-body:after,.factory-bootstrap-436 .panel-body:before{display:table;content:" "}.factory-bootstrap-436 .panel-body:after{clear:both}.factory-bootstrap-436 .panel>.list-group{margin-bottom:0}.factory-bootstrap-436 .panel>.list-group .list-group-item{border-width:1px 0}.factory-bootstrap-436 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-436 .panel>.list-group .list-group-item:last-child{border-bottom:0}.factory-bootstrap-436 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.factory-bootstrap-436 .panel>.table,.factory-bootstrap-436 .panel>.table-responsive>.table{margin-bottom:0}.factory-bootstrap-436 .panel>.panel-body+.table,.factory-bootstrap-436 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.factory-bootstrap-436 .panel>.table>tbody:first-child td,.factory-bootstrap-436 .panel>.table>tbody:first-child th{border-top:0}.factory-bootstrap-436 .panel>.table-bordered,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered{border:0}.factory-bootstrap-436 .panel>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-436 .panel>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-436 .panel>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-436 .panel>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-436 .panel>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-436 .panel>.table-bordered>thead>tr>th:first-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.factory-bootstrap-436 .panel>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-436 .panel>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-436 .panel>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-436 .panel>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-436 .panel>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-436 .panel>.table-bordered>thead>tr>th:last-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.factory-bootstrap-436 .panel>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-436 .panel>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-436 .panel>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-436 .panel>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-436 .panel>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-436 .panel>.table-bordered>thead>tr:last-child>th,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-436 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}.factory-bootstrap-436 .panel>.table-responsive{margin-bottom:0;border:0}.factory-bootstrap-436 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.factory-bootstrap-436 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.factory-bootstrap-436 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.factory-bootstrap-436 .panel-title>a{color:inherit}.factory-bootstrap-436 .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-436 .panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.factory-bootstrap-436 .panel-group .panel+.panel{margin-top:5px}.factory-bootstrap-436 .panel-group .panel-heading{border-bottom:0}.factory-bootstrap-436 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.factory-bootstrap-436 .panel-group .panel-footer{border-top:0}.factory-bootstrap-436 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.factory-bootstrap-436 .panel-default{border-color:#ddd}.factory-bootstrap-436 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.factory-bootstrap-436 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.factory-bootstrap-436 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.factory-bootstrap-436 .panel-primary{border-color:#428bca}.factory-bootstrap-436 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-436 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.factory-bootstrap-436 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.factory-bootstrap-436 .panel-success{border-color:#d6e9c6}.factory-bootstrap-436 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.factory-bootstrap-436 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.factory-bootstrap-436 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.factory-bootstrap-436 .panel-warning{border-color:#faebcc}.factory-bootstrap-436 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.factory-bootstrap-436 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.factory-bootstrap-436 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.factory-bootstrap-436 .panel-danger{border-color:#ebccd1}.factory-bootstrap-436 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.factory-bootstrap-436 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.factory-bootstrap-436 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.factory-bootstrap-436 .panel-info{border-color:#bce8f1}.factory-bootstrap-436 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.factory-bootstrap-436 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.factory-bootstrap-436 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.factory-bootstrap-436 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.factory-bootstrap-436 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.factory-bootstrap-436 .well-lg{padding:24px;border-radius:6px}.factory-bootstrap-436 .well-sm{padding:9px;border-radius:3px}.factory-bootstrap-436 .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-436 .alert .close{position:relative;top:-8px;right:-7px}.factory-bootstrap-436 .close:focus,.factory-bootstrap-436 .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-436 button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.factory-bootstrap-436 .modal-open{overflow:hidden}.factory-bootstrap-436 .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-436 .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-436 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.factory-bootstrap-436 .modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.factory-bootstrap-436 .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-436 .modal-backdrop,.factory-bootstrap-436-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.factory-bootstrap-436 .modal-backdrop.fade,.factory-bootstrap-436-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.factory-bootstrap-436 .modal-backdrop.in,.factory-bootstrap-436-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-436 .modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.factory-bootstrap-436 .modal-header .close{margin-top:-2px}.factory-bootstrap-436 .modal-title{margin:0;line-height:1.428571429}.factory-bootstrap-436 .modal-body{position:relative;padding:20px;max-height:none}.factory-bootstrap-436 .modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.factory-bootstrap-436 .modal-footer:after,.factory-bootstrap-436 .modal-footer:before{display:table;content:" "}.factory-bootstrap-436 .modal-footer:after{clear:both}.factory-bootstrap-436 .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.factory-bootstrap-436 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.factory-bootstrap-436 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.factory-bootstrap-436 .modal-dialog{width:600px;margin:30px auto}.factory-bootstrap-436 .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-436 .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-436 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-436 .tooltip.top{padding:5px 0;margin-top:-3px}.factory-bootstrap-436 .tooltip.right{padding:0 5px;margin-left:3px}.factory-bootstrap-436 .tooltip.bottom{padding:5px 0;margin-top:3px}.factory-bootstrap-436 .tooltip.left{padding:0 5px;margin-left:-3px}.factory-bootstrap-436 .tooltip-inner{width:400px;padding:15px 20px;color:#fff;text-align:left;text-decoration:none;background-color:#673ab7;border-radius:3px}.factory-bootstrap-436 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-436 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-436 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-436 .tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-436 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#673ab7;border-width:5px 5px 5px 0}.factory-bootstrap-436 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#673ab7;border-width:5px 0 5px 5px}.factory-bootstrap-436 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-436 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-436 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-436 .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-436 .popover.top{margin-top:-10px}.factory-bootstrap-436 .popover.right{margin-left:10px}.factory-bootstrap-436 .popover.bottom{margin-top:10px}.factory-bootstrap-436 .popover.left{margin-left:-10px}.factory-bootstrap-436 .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-436 .popover-content{padding:9px 14px}.factory-bootstrap-436 .popover .arrow,.factory-bootstrap-436 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-436 .popover .arrow{border-width:11px}.factory-bootstrap-436 .popover .arrow:after{border-width:10px;content:""}.factory-bootstrap-436 .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-436 .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.factory-bootstrap-436 .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-436 .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.factory-bootstrap-436 .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-436 .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.factory-bootstrap-436 .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-436 .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.factory-bootstrap-436 .carousel{position:relative}.factory-bootstrap-436 .carousel-inner{position:relative;width:100%;overflow:hidden}.factory-bootstrap-436 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.factory-bootstrap-436 .carousel-inner>.item>a>img,.factory-bootstrap-436 .carousel-inner>.item>img{display:block;height:auto;max-width:100%;line-height:1}.factory-bootstrap-436 .carousel-inner>.active,.factory-bootstrap-436 .carousel-inner>.next,.factory-bootstrap-436 .carousel-inner>.prev{display:block}.factory-bootstrap-436 .carousel-inner>.active{left:0}.factory-bootstrap-436 .carousel-inner>.next,.factory-bootstrap-436 .carousel-inner>.prev{position:absolute;top:0;width:100%}.factory-bootstrap-436 .carousel-inner>.next{left:100%}.factory-bootstrap-436 .carousel-inner>.prev{left:-100%}.factory-bootstrap-436 .carousel-inner>.next.left,.factory-bootstrap-436 .carousel-inner>.prev.right{left:0}.factory-bootstrap-436 .carousel-inner>.active.left{left:-100%}.factory-bootstrap-436 .carousel-inner>.active.right{left:100%}.factory-bootstrap-436 .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-436 .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-436 .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-436 .carousel-control:focus,.factory-bootstrap-436 .carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-436 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-436 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-436 .carousel-control .icon-next,.factory-bootstrap-436 .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.factory-bootstrap-436 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-436 .carousel-control .icon-prev{left:50%}.factory-bootstrap-436 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-436 .carousel-control .icon-next{right:50%}.factory-bootstrap-436 .carousel-control .icon-next,.factory-bootstrap-436 .carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.factory-bootstrap-436 .carousel-control .icon-prev:before{content:'\2039'}.factory-bootstrap-436 .carousel-control .icon-next:before{content:'\203a'}.factory-bootstrap-436 .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-436 .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-436 .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.factory-bootstrap-436 .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-436 .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-436 .clearfix:after,.factory-bootstrap-436 .clearfix:before{display:table;content:" "}.factory-bootstrap-436 .clearfix:after{clear:both}.factory-bootstrap-436 .center-block{display:block;margin-right:auto;margin-left:auto}.factory-bootstrap-436 .pull-right{float:right!important}.factory-bootstrap-436 .pull-left{float:left!important}.factory-bootstrap-436 .hide{display:none!important}.factory-bootstrap-436 .show{display:block!important}.factory-bootstrap-436 .invisible{visibility:hidden}.factory-bootstrap-436 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.factory-bootstrap-436 .hidden{display:none!important;visibility:hidden!important}.factory-bootstrap-436 .affix{position:fixed}@-ms-viewport{width:device-width}.factory-bootstrap-436 .visible-lg,.factory-bootstrap-436 .visible-md,.factory-bootstrap-436 .visible-sm,.factory-bootstrap-436 .visible-xs,.factory-bootstrap-436 td.visible-lg,.factory-bootstrap-436 td.visible-md,.factory-bootstrap-436 td.visible-sm,.factory-bootstrap-436 td.visible-xs,.factory-bootstrap-436 th.visible-lg,.factory-bootstrap-436 th.visible-md,.factory-bootstrap-436 th.visible-sm,.factory-bootstrap-436 th.visible-xs,.factory-bootstrap-436 tr.visible-lg,.factory-bootstrap-436 tr.visible-md,.factory-bootstrap-436 tr.visible-sm,.factory-bootstrap-436 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-436 .hidden-xs{display:block!important}.factory-bootstrap-436 table.hidden-xs{display:table}.factory-bootstrap-436 tr.hidden-xs{display:table-row!important}.factory-bootstrap-436 td.hidden-xs,.factory-bootstrap-436 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-436 .hidden-sm{display:block!important}.factory-bootstrap-436 table.hidden-sm{display:table}.factory-bootstrap-436 tr.hidden-sm{display:table-row!important}.factory-bootstrap-436 td.hidden-sm,.factory-bootstrap-436 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-436 .hidden-md{display:block!important}.factory-bootstrap-436 table.hidden-md{display:table}.factory-bootstrap-436 tr.hidden-md{display:table-row!important}.factory-bootstrap-436 td.hidden-md,.factory-bootstrap-436 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-436 .hidden-lg{display:block!important}.factory-bootstrap-436 table.hidden-lg{display:table}.factory-bootstrap-436 tr.hidden-lg{display:table-row!important}.factory-bootstrap-436 td.hidden-lg,.factory-bootstrap-436 th.hidden-lg{display:table-cell!important}@media (max-width:767px){.factory-bootstrap-436 .hidden-lg.hidden-xs,.factory-bootstrap-436 td.hidden-lg.hidden-xs,.factory-bootstrap-436 th.hidden-lg.hidden-xs,.factory-bootstrap-436 tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.factory-bootstrap-436 .hidden-lg.hidden-sm,.factory-bootstrap-436 td.hidden-lg.hidden-sm,.factory-bootstrap-436 th.hidden-lg.hidden-sm,.factory-bootstrap-436 tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.factory-bootstrap-436 .hidden-lg.hidden-md,.factory-bootstrap-436 td.hidden-lg.hidden-md,.factory-bootstrap-436 th.hidden-lg.hidden-md,.factory-bootstrap-436 tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.factory-bootstrap-436 .hidden-lg,.factory-bootstrap-436 td.hidden-lg,.factory-bootstrap-436 th.hidden-lg,.factory-bootstrap-436 tr.hidden-lg{display:none!important}}.factory-bootstrap-436 .visible-print,.factory-bootstrap-436 td.visible-print,.factory-bootstrap-436 th.visible-print,.factory-bootstrap-436 tr.visible-print{display:none!important}@media print{.factory-bootstrap-436 .visible-print{display:block!important}.factory-bootstrap-436 table.visible-print{display:table}.factory-bootstrap-436 tr.visible-print{display:table-row!important}.factory-bootstrap-436 td.visible-print,.factory-bootstrap-436 th.visible-print{display:table-cell!important}.factory-bootstrap-436 .hidden-print,.factory-bootstrap-436 td.hidden-print,.factory-bootstrap-436 th.hidden-print,.factory-bootstrap-436 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-436 .btn-danger,.factory-bootstrap-436 .btn-default,.factory-bootstrap-436 .btn-info,.factory-bootstrap-436 .btn-primary,.factory-bootstrap-436 .btn-success,.factory-bootstrap-436 .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-436 .btn-danger.active,.factory-bootstrap-436 .btn-danger:active,.factory-bootstrap-436 .btn-default.active,.factory-bootstrap-436 .btn-default:active,.factory-bootstrap-436 .btn-info.active,.factory-bootstrap-436 .btn-info:active,.factory-bootstrap-436 .btn-primary.active,.factory-bootstrap-436 .btn-primary:active,.factory-bootstrap-436 .btn-success.active,.factory-bootstrap-436 .btn-success:active,.factory-bootstrap-436 .btn-warning.active,.factory-bootstrap-436 .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-436 .btn.active,.factory-bootstrap-436 .btn:active{background-image:none}.factory-bootstrap-436 .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-436 .btn-default.active,.factory-bootstrap-436 .btn-default:active{background-color:#fff;border-color:#dbdbdb}.factory-bootstrap-436 .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-436 .btn-gold:focus,.factory-bootstrap-436 .btn-gold:hover{background:#fef0a1}.factory-bootstrap-436 .btn-gold.active,.factory-bootstrap-436 .btn-gold:active{background:#fef0a1;-webkit-box-shadow:inset 0 3px 8px 0 #f8ba36;box-shadow:inset 0 3px 8px 0 #f8ba36}.factory-bootstrap-436 .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-436 .btn-primary:focus,.factory-bootstrap-436 .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-436 .btn-primary.active,.factory-bootstrap-436 .btn-primary:active{background-color:#2d6ca2;border-color:#2b669a}.factory-bootstrap-436 .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-436 .btn-success:focus,.factory-bootstrap-436 .btn-success:hover{background-color:#419641;background-position:0 -15px}.factory-bootstrap-436 .btn-success.active,.factory-bootstrap-436 .btn-success:active{background-color:#419641;border-color:#3e8f3e}.factory-bootstrap-436 .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-436 .btn-warning:focus,.factory-bootstrap-436 .btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.factory-bootstrap-436 .btn-warning.active,.factory-bootstrap-436 .btn-warning:active{background-color:#eb9316;border-color:#e38d13}.factory-bootstrap-436 .btn-danger{color:#fff;background:#d9534f;border-color:#d43f3a}.factory-bootstrap-436 .btn-danger.active,.factory-bootstrap-436 .btn-danger:active,.factory-bootstrap-436 .btn-danger:focus,.factory-bootstrap-436 .btn-danger:hover,.factory-bootstrap-436 .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.factory-bootstrap-436 .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-436 .btn-info:focus,.factory-bootstrap-436 .btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.factory-bootstrap-436 .btn-info.active,.factory-bootstrap-436 .btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.factory-bootstrap-436 .img-thumbnail,.factory-bootstrap-436 .thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-436 .dropdown-menu>li>a:focus,.factory-bootstrap-436 .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-436 .dropdown-menu>.active>a,.factory-bootstrap-436 .dropdown-menu>.active>a:focus,.factory-bootstrap-436 .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-436 .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-436 .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-436 .navbar-brand,.factory-bootstrap-436 .navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.factory-bootstrap-436 .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-436 .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-436 .navbar-inverse .navbar-brand,.factory-bootstrap-436 .navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-436 .navbar-fixed-bottom,.factory-bootstrap-436 .navbar-fixed-top,.factory-bootstrap-436 .navbar-static-top{border-radius:0}.factory-bootstrap-436 .alert{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-436 .alert .actions{padding-top:10px}.factory-bootstrap-436 .alert-success{color:#3c763d;background-color:#dff0d8;border-bottom:2px solid #c8e5bc}.factory-bootstrap-436 .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-436 .alert{text-shadow:none;box-shadow:none;margin:0;margin-top:10px;margin-bottom:10px;padding:10px}.factory-bootstrap-436 .alert-normal,.factory-bootstrap-436 .alert-warning{background:#fcf8e3;color:#8a6d3b;border:1px solid #b8823b}.factory-bootstrap-436 .alert-danger{background:#cf4944;color:#fff;border-bottom:2px solid #b23e3a}.factory-bootstrap-436 .alert-danger a:not(.btn),.factory-bootstrap-436 .alert-error a:not(.btn){color:#fff}.factory-bootstrap-436 .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-436 .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-436 .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-436 .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-436 .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-436 .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-436 .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-436 .list-group-item.active,.factory-bootstrap-436 .list-group-item.active:focus,.factory-bootstrap-436 .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-436 .panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-436 .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-436 .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-436 .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-436 .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-436 .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-436 .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-436 .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-436 .factory-after{margin-left:7px;display:inline-block}.factory-bootstrap-436 .factory-hidden{display:none}.factory-bootstrap-436 .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}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 article,.factory-bootstrap-439 aside,.factory-bootstrap-439 details,.factory-bootstrap-439 figcaption,.factory-bootstrap-439 figure,.factory-bootstrap-439 footer,.factory-bootstrap-439 header,.factory-bootstrap-439 hgroup,.factory-bootstrap-439 main,.factory-bootstrap-439 nav,.factory-bootstrap-439 section,.factory-bootstrap-439 summary{display:block}.factory-bootstrap-439 audio,.factory-bootstrap-439 canvas,.factory-bootstrap-439 video{display:inline-block}.factory-bootstrap-439 audio:not([controls]){display:none;height:0}.factory-bootstrap-439 [hidden],.factory-bootstrap-439 template{display:none}.factory-bootstrap-439 body{margin:0}.factory-bootstrap-439 a{background:0 0}.factory-bootstrap-439 a:focus{outline:thin dotted}.factory-bootstrap-439 a:active,.factory-bootstrap-439 a:hover{outline:0}.factory-bootstrap-439 h1{margin:.67em 0}.factory-bootstrap-439 b,.factory-bootstrap-439 strong{font-weight:700}.factory-bootstrap-439 dfn{font-style:italic}.factory-bootstrap-439 hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-439 mark{color:#000;background:#ff0}.factory-bootstrap-439 code,.factory-bootstrap-439 kbd,.factory-bootstrap-439 pre,.factory-bootstrap-439 samp{font-size:1em}.factory-bootstrap-439 pre{white-space:pre-wrap}.factory-bootstrap-439 q{quotes:"\201C" "\201D" "\2018" "\2019"}.factory-bootstrap-439 sub,.factory-bootstrap-439 sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.factory-bootstrap-439 sup{top:-.5em}.factory-bootstrap-439 sub{bottom:-.25em}.factory-bootstrap-439 img{border:0}.factory-bootstrap-439 svg:not(:root){overflow:hidden}.factory-bootstrap-439 figure{margin:0}.factory-bootstrap-439 button,.factory-bootstrap-439 input,.factory-bootstrap-439 select,.factory-bootstrap-439 textarea{margin:0}.factory-bootstrap-439 button,.factory-bootstrap-439 select{text-transform:none}.factory-bootstrap-439 select{padding-right:4px!important}.factory-bootstrap-439 button,.factory-bootstrap-439 input[type=reset],.factory-bootstrap-439 input[type=submit],html .factory-bootstrap-439 input[type=button]{cursor:pointer;-webkit-appearance:button}.factory-bootstrap-439 button[disabled],html .factory-bootstrap-439 input[disabled]{cursor:default}.factory-bootstrap-439 input[type=checkbox],.factory-bootstrap-439 input[type=radio]{padding:0;box-sizing:border-box}.factory-bootstrap-439 input[type=search]{-webkit-appearance:textfield}.factory-bootstrap-439 input[type=search]::-webkit-search-cancel-button,.factory-bootstrap-439 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.factory-bootstrap-439 button::-moz-focus-inner,.factory-bootstrap-439 input::-moz-focus-inner{padding:0;border:0}.factory-bootstrap-439 textarea{overflow:auto;vertical-align:top}.factory-bootstrap-439 table{border-collapse:collapse;border-spacing:0}@media print{.factory-bootstrap-439 *{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}.factory-bootstrap-439 a,.factory-bootstrap-439 a:visited{text-decoration:underline}.factory-bootstrap-439 a[href]:after{content:" (" attr(href) ")"}.factory-bootstrap-439 abbr[title]:after{content:" (" attr(title) ")"}.factory-bootstrap-439 a[href^="javascript:"]:after,.factory-bootstrap-439 a[href^="#"]:after{content:""}.factory-bootstrap-439 blockquote,.factory-bootstrap-439 pre{border:1px solid #999;page-break-inside:avoid}.factory-bootstrap-439 thead{display:table-header-group}.factory-bootstrap-439 img,.factory-bootstrap-439 tr{page-break-inside:avoid}.factory-bootstrap-439 img{max-width:100%!important}@page{margin:2cm .5cm}.factory-bootstrap-439 h2,.factory-bootstrap-439 h3,.factory-bootstrap-439 p{orphans:3;widows:3}.factory-bootstrap-439 h2,.factory-bootstrap-439 h3{page-break-after:avoid}.factory-bootstrap-439 select{background:#fff!important}.factory-bootstrap-439 .navbar{display:none}.factory-bootstrap-439 .table td,.factory-bootstrap-439 .table th{background-color:#fff!important}.factory-bootstrap-439 .btn>.caret,.factory-bootstrap-439 .dropup>.btn>.caret{border-top-color:#000!important}.factory-bootstrap-439 .label{border:1px solid #000}.factory-bootstrap-439 .table{border-collapse:collapse!important}.factory-bootstrap-439 .table-bordered td,.factory-bootstrap-439 .table-bordered th{border:1px solid #ddd!important}}.factory-bootstrap-439 *,.factory-bootstrap-439 :after,.factory-bootstrap-439 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html .factory-bootstrap-439{-webkit-tap-highlight-color:rgba(0,0,0,0)}.factory-bootstrap-439 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.factory-bootstrap-439 button,.factory-bootstrap-439 input,.factory-bootstrap-439 select,.factory-bootstrap-439 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.factory-bootstrap-439 img{vertical-align:middle}.factory-bootstrap-439 .img-responsive{display:block;height:auto;max-width:100%}.factory-bootstrap-439 .img-rounded{border-radius:6px}.factory-bootstrap-439 .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-439 .img-circle{border-radius:50%}.factory-bootstrap-439 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.factory-bootstrap-439 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.factory-bootstrap-439 .h1,.factory-bootstrap-439 .h2,.factory-bootstrap-439 .h3,.factory-bootstrap-439 .h4,.factory-bootstrap-439 .h5,.factory-bootstrap-439 .h6,.factory-bootstrap-439 h1,.factory-bootstrap-439 h2,.factory-bootstrap-439 h3,.factory-bootstrap-439 h4,.factory-bootstrap-439 h5,.factory-bootstrap-439 h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.factory-bootstrap-439 .h1 .small,.factory-bootstrap-439 .h1 small,.factory-bootstrap-439 .h2 .small,.factory-bootstrap-439 .h2 small,.factory-bootstrap-439 .h3 .small,.factory-bootstrap-439 .h3 small,.factory-bootstrap-439 .h4 .small,.factory-bootstrap-439 .h4 small,.factory-bootstrap-439 .h5 .small,.factory-bootstrap-439 .h5 small,.factory-bootstrap-439 .h6 .small,.factory-bootstrap-439 .h6 small,.factory-bootstrap-439 h1 .small,.factory-bootstrap-439 h1 small,.factory-bootstrap-439 h2 .small,.factory-bootstrap-439 h2 small,.factory-bootstrap-439 h3 .small,.factory-bootstrap-439 h3 small,.factory-bootstrap-439 h4 .small,.factory-bootstrap-439 h4 small,.factory-bootstrap-439 h5 .small,.factory-bootstrap-439 h5 small,.factory-bootstrap-439 h6 .small,.factory-bootstrap-439 h6 small{font-weight:400;line-height:1;color:#999}.factory-bootstrap-439 h1,.factory-bootstrap-439 h2,.factory-bootstrap-439 h3{margin-top:20px;margin-bottom:10px}.factory-bootstrap-439 h1 .small,.factory-bootstrap-439 h1 small,.factory-bootstrap-439 h2 .small,.factory-bootstrap-439 h2 small,.factory-bootstrap-439 h3 .small,.factory-bootstrap-439 h3 small{font-size:65%}.factory-bootstrap-439 h4,.factory-bootstrap-439 h5,.factory-bootstrap-439 h6{margin-top:10px;margin-bottom:10px}.factory-bootstrap-439 h4 .small,.factory-bootstrap-439 h4 small,.factory-bootstrap-439 h5 .small,.factory-bootstrap-439 h5 small,.factory-bootstrap-439 h6 .small,.factory-bootstrap-439 h6 small{font-size:75%}.factory-bootstrap-439 .h1,.factory-bootstrap-439 h1{font-size:36px}.factory-bootstrap-439 .h2,.factory-bootstrap-439 h2{font-size:30px}.factory-bootstrap-439 .h3,.factory-bootstrap-439 h3{font-size:24px}.factory-bootstrap-439 .h4,.factory-bootstrap-439 h4{font-size:18px}.factory-bootstrap-439 .h5,.factory-bootstrap-439 h5{font-size:14px}.factory-bootstrap-439 .h6,.factory-bootstrap-439 h6{font-size:12px}.factory-bootstrap-439 p{margin:0 0 10px}.factory-bootstrap-439 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.factory-bootstrap-439 .small,.factory-bootstrap-439 small{font-size:85%}.factory-bootstrap-439 cite{font-style:normal}.factory-bootstrap-439 .text-muted{color:#999}.factory-bootstrap-439 .text-primary{color:#428bca}.factory-bootstrap-439 .text-primary:hover{color:#3071a9}.factory-bootstrap-439 .text-warning{color:#8a6d3b}.factory-bootstrap-439 .text-warning:hover{color:#66512c}.factory-bootstrap-439 .text-danger{color:#a94442}.factory-bootstrap-439 .text-danger:hover{color:#843534}.factory-bootstrap-439 .text-success{color:#3c763d}.factory-bootstrap-439 .text-success:hover{color:#2b542c}.factory-bootstrap-439 .text-info{color:#31708f}.factory-bootstrap-439 .text-info:hover{color:#245269}.factory-bootstrap-439 .text-left{text-align:left}.factory-bootstrap-439 .text-right{text-align:right}.factory-bootstrap-439 .text-center{text-align:center}.factory-bootstrap-439 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.factory-bootstrap-439 ol,.factory-bootstrap-439 ul{margin-top:0;margin-bottom:10px}.factory-bootstrap-439 ol ol,.factory-bootstrap-439 ol ul,.factory-bootstrap-439 ul ol,.factory-bootstrap-439 ul ul{margin-bottom:0}.factory-bootstrap-439 .list-inline,.factory-bootstrap-439 .list-unstyled{padding-left:0;list-style:none}.factory-bootstrap-439 .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.factory-bootstrap-439 .list-inline>li:first-child{padding-left:0}.factory-bootstrap-439 dl{margin-top:0;margin-bottom:20px}.factory-bootstrap-439 dd,.factory-bootstrap-439 dt{line-height:1.428571429}.factory-bootstrap-439 dt{font-weight:700}.factory-bootstrap-439 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-439 abbr[data-original-title],.factory-bootstrap-439 abbr[title]{cursor:help;border-bottom:1px dotted #999}.factory-bootstrap-439 .initialism{font-size:90%;text-transform:uppercase}.factory-bootstrap-439 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.factory-bootstrap-439 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.factory-bootstrap-439 blockquote p:last-child{margin-bottom:0}.factory-bootstrap-439 blockquote .small,.factory-bootstrap-439 blockquote small{display:block;line-height:1.428571429;color:#999}.factory-bootstrap-439 blockquote .small:before,.factory-bootstrap-439 blockquote small:before{content:'\2014 \00A0'}.factory-bootstrap-439 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.factory-bootstrap-439 blockquote.pull-right .small,.factory-bootstrap-439 blockquote.pull-right p,.factory-bootstrap-439 blockquote.pull-right small{text-align:right}.factory-bootstrap-439 blockquote.pull-right .small:before,.factory-bootstrap-439 blockquote.pull-right small:before{content:''}.factory-bootstrap-439 blockquote.pull-right .small:after,.factory-bootstrap-439 blockquote.pull-right small:after{content:'\00A0 \2014'}.factory-bootstrap-439 blockquote:after,.factory-bootstrap-439 blockquote:before{content:""}.factory-bootstrap-439 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.factory-bootstrap-439 code,.factory-bootstrap-439 kbd,.factory-bootstrap-439 pre,.factory-bootstrap-439 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.factory-bootstrap-439 code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}.factory-bootstrap-439 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-439 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.factory-bootstrap-439 .pre-scrollable{max-height:340px;overflow-y:scroll}.factory-bootstrap-439 .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.factory-bootstrap-439 .container:after,.factory-bootstrap-439 .container:before{display:table;content:" "}.factory-bootstrap-439 .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-439 .row{margin-right:-15px;margin-left:-15px}.factory-bootstrap-439 .row:after,.factory-bootstrap-439 .row:before{display:table;content:" "}.factory-bootstrap-439 .row:after{clear:both}.factory-bootstrap-439 .col-lg-1,.factory-bootstrap-439 .col-lg-10,.factory-bootstrap-439 .col-lg-11,.factory-bootstrap-439 .col-lg-12,.factory-bootstrap-439 .col-lg-2,.factory-bootstrap-439 .col-lg-3,.factory-bootstrap-439 .col-lg-4,.factory-bootstrap-439 .col-lg-5,.factory-bootstrap-439 .col-lg-6,.factory-bootstrap-439 .col-lg-7,.factory-bootstrap-439 .col-lg-8,.factory-bootstrap-439 .col-lg-9,.factory-bootstrap-439 .col-md-1,.factory-bootstrap-439 .col-md-10,.factory-bootstrap-439 .col-md-11,.factory-bootstrap-439 .col-md-12,.factory-bootstrap-439 .col-md-2,.factory-bootstrap-439 .col-md-3,.factory-bootstrap-439 .col-md-4,.factory-bootstrap-439 .col-md-5,.factory-bootstrap-439 .col-md-6,.factory-bootstrap-439 .col-md-7,.factory-bootstrap-439 .col-md-8,.factory-bootstrap-439 .col-md-9,.factory-bootstrap-439 .col-sm-1,.factory-bootstrap-439 .col-sm-10,.factory-bootstrap-439 .col-sm-11,.factory-bootstrap-439 .col-sm-12,.factory-bootstrap-439 .col-sm-2,.factory-bootstrap-439 .col-sm-3,.factory-bootstrap-439 .col-sm-4,.factory-bootstrap-439 .col-sm-5,.factory-bootstrap-439 .col-sm-6,.factory-bootstrap-439 .col-sm-7,.factory-bootstrap-439 .col-sm-8,.factory-bootstrap-439 .col-sm-9,.factory-bootstrap-439 .col-xs-1,.factory-bootstrap-439 .col-xs-10,.factory-bootstrap-439 .col-xs-11,.factory-bootstrap-439 .col-xs-12,.factory-bootstrap-439 .col-xs-2,.factory-bootstrap-439 .col-xs-3,.factory-bootstrap-439 .col-xs-4,.factory-bootstrap-439 .col-xs-5,.factory-bootstrap-439 .col-xs-6,.factory-bootstrap-439 .col-xs-7,.factory-bootstrap-439 .col-xs-8,.factory-bootstrap-439 .col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.factory-bootstrap-439 .col-xs-1,.factory-bootstrap-439 .col-xs-10,.factory-bootstrap-439 .col-xs-11,.factory-bootstrap-439 .col-xs-12,.factory-bootstrap-439 .col-xs-2,.factory-bootstrap-439 .col-xs-3,.factory-bootstrap-439 .col-xs-4,.factory-bootstrap-439 .col-xs-5,.factory-bootstrap-439 .col-xs-6,.factory-bootstrap-439 .col-xs-7,.factory-bootstrap-439 .col-xs-8,.factory-bootstrap-439 .col-xs-9{float:left}.factory-bootstrap-439 .col-xs-12{width:100%}.factory-bootstrap-439 .col-xs-11{width:91.66666666666666%}.factory-bootstrap-439 .col-xs-10{width:83.33333333333334%}.factory-bootstrap-439 .col-xs-9{width:75%}.factory-bootstrap-439 .col-xs-8{width:66.66666666666666%}.factory-bootstrap-439 .col-xs-7{width:58.333333333333336%}.factory-bootstrap-439 .col-xs-6{width:50%}.factory-bootstrap-439 .col-xs-5{width:41.66666666666667%}.factory-bootstrap-439 .col-xs-4{width:33.33333333333333%}.factory-bootstrap-439 .col-xs-3{width:25%}.factory-bootstrap-439 .col-xs-2{width:16.666666666666664%}.factory-bootstrap-439 .col-xs-1{width:8.333333333333332%}.factory-bootstrap-439 .col-xs-pull-12{right:100%}.factory-bootstrap-439 .col-xs-pull-11{right:91.66666666666666%}.factory-bootstrap-439 .col-xs-pull-10{right:83.33333333333334%}.factory-bootstrap-439 .col-xs-pull-9{right:75%}.factory-bootstrap-439 .col-xs-pull-8{right:66.66666666666666%}.factory-bootstrap-439 .col-xs-pull-7{right:58.333333333333336%}.factory-bootstrap-439 .col-xs-pull-6{right:50%}.factory-bootstrap-439 .col-xs-pull-5{right:41.66666666666667%}.factory-bootstrap-439 .col-xs-pull-4{right:33.33333333333333%}.factory-bootstrap-439 .col-xs-pull-3{right:25%}.factory-bootstrap-439 .col-xs-pull-2{right:16.666666666666664%}.factory-bootstrap-439 .col-xs-pull-1{right:8.333333333333332%}.factory-bootstrap-439 .col-xs-pull-0{right:0}.factory-bootstrap-439 .col-xs-push-12{left:100%}.factory-bootstrap-439 .col-xs-push-11{left:91.66666666666666%}.factory-bootstrap-439 .col-xs-push-10{left:83.33333333333334%}.factory-bootstrap-439 .col-xs-push-9{left:75%}.factory-bootstrap-439 .col-xs-push-8{left:66.66666666666666%}.factory-bootstrap-439 .col-xs-push-7{left:58.333333333333336%}.factory-bootstrap-439 .col-xs-push-6{left:50%}.factory-bootstrap-439 .col-xs-push-5{left:41.66666666666667%}.factory-bootstrap-439 .col-xs-push-4{left:33.33333333333333%}.factory-bootstrap-439 .col-xs-push-3{left:25%}.factory-bootstrap-439 .col-xs-push-2{left:16.666666666666664%}.factory-bootstrap-439 .col-xs-push-1{left:8.333333333333332%}.factory-bootstrap-439 .col-xs-push-0{left:0}.factory-bootstrap-439 .col-xs-offset-12{margin-left:100%}.factory-bootstrap-439 .col-xs-offset-11{margin-left:91.66666666666666%}.factory-bootstrap-439 .col-xs-offset-10{margin-left:83.33333333333334%}.factory-bootstrap-439 .col-xs-offset-9{margin-left:75%}.factory-bootstrap-439 .col-xs-offset-8{margin-left:66.66666666666666%}.factory-bootstrap-439 .col-xs-offset-7{margin-left:58.333333333333336%}.factory-bootstrap-439 .col-xs-offset-6{margin-left:50%}.factory-bootstrap-439 .col-xs-offset-5{margin-left:41.66666666666667%}.factory-bootstrap-439 .col-xs-offset-4{margin-left:33.33333333333333%}.factory-bootstrap-439 .col-xs-offset-3{margin-left:25%}.factory-bootstrap-439 .col-xs-offset-2{margin-left:16.666666666666664%}.factory-bootstrap-439 .col-xs-offset-1{margin-left:8.333333333333332%}.factory-bootstrap-439 .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-439 table{max-width:100%;background-color:transparent}.factory-bootstrap-439 th{text-align:left}.factory-bootstrap-439 .table{width:100%;margin-bottom:20px}.factory-bootstrap-439 .table>tbody>tr>td,.factory-bootstrap-439 .table>tbody>tr>th,.factory-bootstrap-439 .table>tfoot>tr>td,.factory-bootstrap-439 .table>tfoot>tr>th,.factory-bootstrap-439 .table>thead>tr>td,.factory-bootstrap-439 .table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.factory-bootstrap-439 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.factory-bootstrap-439 .table>caption+thead>tr:first-child>td,.factory-bootstrap-439 .table>caption+thead>tr:first-child>th,.factory-bootstrap-439 .table>colgroup+thead>tr:first-child>td,.factory-bootstrap-439 .table>colgroup+thead>tr:first-child>th,.factory-bootstrap-439 .table>thead:first-child>tr:first-child>td,.factory-bootstrap-439 .table>thead:first-child>tr:first-child>th{border-top:0}.factory-bootstrap-439 .table>tbody+tbody{border-top:2px solid #ddd}.factory-bootstrap-439 .table .table{background-color:#fff}.factory-bootstrap-439 .table-condensed>tbody>tr>td,.factory-bootstrap-439 .table-condensed>tbody>tr>th,.factory-bootstrap-439 .table-condensed>tfoot>tr>td,.factory-bootstrap-439 .table-condensed>tfoot>tr>th,.factory-bootstrap-439 .table-condensed>thead>tr>td,.factory-bootstrap-439 .table-condensed>thead>tr>th{padding:5px}.factory-bootstrap-439 .table-bordered,.factory-bootstrap-439 .table-bordered>tbody>tr>td,.factory-bootstrap-439 .table-bordered>tbody>tr>th,.factory-bootstrap-439 .table-bordered>tfoot>tr>td,.factory-bootstrap-439 .table-bordered>tfoot>tr>th,.factory-bootstrap-439 .table-bordered>thead>tr>td,.factory-bootstrap-439 .table-bordered>thead>tr>th{border:1px solid #ddd}.factory-bootstrap-439 .table-bordered>thead>tr>td,.factory-bootstrap-439 .table-bordered>thead>tr>th{border-bottom-width:2px}.factory-bootstrap-439 .table-striped>tbody>tr:nth-child(odd)>td,.factory-bootstrap-439 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.factory-bootstrap-439 .table-hover>tbody>tr:hover>td,.factory-bootstrap-439 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.factory-bootstrap-439 table col[class*=col-]{position:static;display:table-column;float:none}.factory-bootstrap-439 table td[class*=col-],.factory-bootstrap-439 table th[class*=col-]{display:table-cell;float:none}.factory-bootstrap-439 .table>tbody>.active>td,.factory-bootstrap-439 .table>tbody>.active>th,.factory-bootstrap-439 .table>tbody>tr>.active,.factory-bootstrap-439 .table>tfoot>.active>td,.factory-bootstrap-439 .table>tfoot>.active>th,.factory-bootstrap-439 .table>tfoot>tr>.active,.factory-bootstrap-439 .table>thead>.active>td,.factory-bootstrap-439 .table>thead>.active>th,.factory-bootstrap-439 .table>thead>tr>.active{background-color:#f5f5f5}.factory-bootstrap-439 .table-hover>tbody>.active:hover>td,.factory-bootstrap-439 .table-hover>tbody>.active:hover>th,.factory-bootstrap-439 .table-hover>tbody>tr>.active:hover{background-color:#e8e8e8}.factory-bootstrap-439 .table>tbody>.success>td,.factory-bootstrap-439 .table>tbody>.success>th,.factory-bootstrap-439 .table>tbody>tr>.success,.factory-bootstrap-439 .table>tfoot>.success>td,.factory-bootstrap-439 .table>tfoot>.success>th,.factory-bootstrap-439 .table>tfoot>tr>.success,.factory-bootstrap-439 .table>thead>.success>td,.factory-bootstrap-439 .table>thead>.success>th,.factory-bootstrap-439 .table>thead>tr>.success{background-color:#dff0d8}.factory-bootstrap-439 .table-hover>tbody>.success:hover>td,.factory-bootstrap-439 .table-hover>tbody>.success:hover>th,.factory-bootstrap-439 .table-hover>tbody>tr>.success:hover{background-color:#d0e9c6}.factory-bootstrap-439 .table>tbody>.danger>td,.factory-bootstrap-439 .table>tbody>.danger>th,.factory-bootstrap-439 .table>tbody>tr>.danger,.factory-bootstrap-439 .table>tfoot>.danger>td,.factory-bootstrap-439 .table>tfoot>.danger>th,.factory-bootstrap-439 .table>tfoot>tr>.danger,.factory-bootstrap-439 .table>thead>.danger>td,.factory-bootstrap-439 .table>thead>.danger>th,.factory-bootstrap-439 .table>thead>tr>.danger{background-color:#f2dede}.factory-bootstrap-439 .table-hover>tbody>.danger:hover>td,.factory-bootstrap-439 .table-hover>tbody>.danger:hover>th,.factory-bootstrap-439 .table-hover>tbody>tr>.danger:hover{background-color:#ebcccc}.factory-bootstrap-439 .table>tbody>.warning>td,.factory-bootstrap-439 .table>tbody>.warning>th,.factory-bootstrap-439 .table>tbody>tr>.warning,.factory-bootstrap-439 .table>tfoot>.warning>td,.factory-bootstrap-439 .table>tfoot>.warning>th,.factory-bootstrap-439 .table>tfoot>tr>.warning,.factory-bootstrap-439 .table>thead>.warning>td,.factory-bootstrap-439 .table>thead>.warning>th,.factory-bootstrap-439 .table>thead>tr>.warning{background-color:#fcf8e3}.factory-bootstrap-439 .table-hover>tbody>.warning:hover>td,.factory-bootstrap-439 .table-hover>tbody>.warning:hover>th,.factory-bootstrap-439 .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-439 fieldset{padding:0;margin:0;border:0}.factory-bootstrap-439 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-439 label{display:inline-block;margin-bottom:5px;font-weight:700}.factory-bootstrap-439 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-439 input[type=checkbox],.factory-bootstrap-439 input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.factory-bootstrap-439 input[type=file]{display:block}.factory-bootstrap-439 select[multiple],.factory-bootstrap-439 select[size]{height:auto}.factory-bootstrap-439 select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}.factory-bootstrap-439 input[type=checkbox]:focus,.factory-bootstrap-439 input[type=file]:focus,.factory-bootstrap-439 input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-439 input[type=number]::-webkit-inner-spin-button,.factory-bootstrap-439 input[type=number]::-webkit-outer-spin-button{height:auto}.factory-bootstrap-439 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.factory-bootstrap-439 .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-439 .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-439 .form-control:-moz-placeholder{color:#999}.factory-bootstrap-439 .form-control::-moz-placeholder{color:#999;opacity:1}.factory-bootstrap-439 .form-control:-ms-input-placeholder{color:#999}.factory-bootstrap-439 .form-control::-webkit-input-placeholder{color:#999}.factory-bootstrap-439 .form-control[disabled],.factory-bootstrap-439 .form-control[readonly],.factory-bootstrap-439 fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.factory-bootstrap-439 textarea.form-control{height:auto}.factory-bootstrap-439 .form-group{margin-bottom:15px}.factory-bootstrap-439 .checkbox,.factory-bootstrap-439 .radio{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.factory-bootstrap-439 .checkbox label,.factory-bootstrap-439 .radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.factory-bootstrap-439 .checkbox input[type=checkbox],.factory-bootstrap-439 .checkbox-inline input[type=checkbox],.factory-bootstrap-439 .radio input[type=radio],.factory-bootstrap-439 .radio-inline input[type=radio]{float:left;margin-left:-20px}.factory-bootstrap-439 .checkbox+.checkbox,.factory-bootstrap-439 .radio+.radio{margin-top:-5px}.factory-bootstrap-439 .checkbox-inline,.factory-bootstrap-439 .radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.factory-bootstrap-439 .checkbox-inline+.checkbox-inline,.factory-bootstrap-439 .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.factory-bootstrap-439 .checkbox-inline[disabled],.factory-bootstrap-439 .checkbox[disabled],.factory-bootstrap-439 .radio-inline[disabled],.factory-bootstrap-439 .radio[disabled],.factory-bootstrap-439 fieldset[disabled] .checkbox,.factory-bootstrap-439 fieldset[disabled] .checkbox-inline,.factory-bootstrap-439 fieldset[disabled] .radio,.factory-bootstrap-439 fieldset[disabled] .radio-inline,.factory-bootstrap-439 fieldset[disabled] input[type=checkbox],.factory-bootstrap-439 fieldset[disabled] input[type=radio],.factory-bootstrap-439 input[type=checkbox][disabled],.factory-bootstrap-439 input[type=radio][disabled]{cursor:not-allowed}.factory-bootstrap-439 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 select.input-sm{height:30px;line-height:30px}.factory-bootstrap-439 textarea.input-sm{height:auto}.factory-bootstrap-439 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-439 select.input-lg{height:46px;line-height:46px}.factory-bootstrap-439 textarea.input-lg{height:auto}.factory-bootstrap-439 .has-warning .checkbox,.factory-bootstrap-439 .has-warning .checkbox-inline,.factory-bootstrap-439 .has-warning .control-label,.factory-bootstrap-439 .has-warning .help-block,.factory-bootstrap-439 .has-warning .radio,.factory-bootstrap-439 .has-warning .radio-inline{color:#8a6d3b}.factory-bootstrap-439 .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-439 .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-439 .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.factory-bootstrap-439 .has-error .checkbox,.factory-bootstrap-439 .has-error .checkbox-inline,.factory-bootstrap-439 .has-error .control-label,.factory-bootstrap-439 .has-error .help-block,.factory-bootstrap-439 .has-error .radio,.factory-bootstrap-439 .has-error .radio-inline{color:#a94442}.factory-bootstrap-439 .controls{display:block}.factory-bootstrap-439 .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-439 .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-439 .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.factory-bootstrap-439 .has-success .checkbox,.factory-bootstrap-439 .has-success .checkbox-inline,.factory-bootstrap-439 .has-success .control-label,.factory-bootstrap-439 .has-success .help-block,.factory-bootstrap-439 .has-success .radio,.factory-bootstrap-439 .has-success .radio-inline{color:#3c763d}.factory-bootstrap-439 .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-439 .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-439 .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.factory-bootstrap-439 .form-control-static{margin-bottom:0}.factory-bootstrap-439 .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-439 .form-horizontal .checkbox,.factory-bootstrap-439 .form-horizontal .checkbox-inline,.factory-bootstrap-439 .form-horizontal .control-label,.factory-bootstrap-439 .form-horizontal .radio,.factory-bootstrap-439 .form-horizontal .radio-inline{position:relative;padding-top:7px;margin-top:0;margin-bottom:0}.factory-bootstrap-439 .form-horizontal .control-label{max-width:200px}.factory-bootstrap-439 .form-horizontal .checkbox,.factory-bootstrap-439 .form-horizontal .radio{min-height:27px}.factory-bootstrap-439 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.factory-bootstrap-439 .form-horizontal .form-group:after,.factory-bootstrap-439 .form-horizontal .form-group:before{display:table;content:" "}.factory-bootstrap-439 .form-horizontal .form-group:after{clear:both}.factory-bootstrap-439 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.factory-bootstrap-439 .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-439 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-439 .btn{text-decoration:none}.factory-bootstrap-439 .btn:focus,.factory-bootstrap-439 .btn:hover{color:#333;text-decoration:none}.factory-bootstrap-439 .btn.disabled,.factory-bootstrap-439 .btn[disabled],.factory-bootstrap-439 fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-439 .btn-default.active,.factory-bootstrap-439 .btn-default:active,.factory-bootstrap-439 .btn-default:focus,.factory-bootstrap-439 .btn-default:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-default{background:#fafafa;border-color:#999;color:#222}.factory-bootstrap-439 .btn-default.active,.factory-bootstrap-439 .btn-default:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-default{background-image:none}.factory-bootstrap-439 .btn-default.disabled,.factory-bootstrap-439 .btn-default.disabled.active,.factory-bootstrap-439 .btn-default.disabled:active,.factory-bootstrap-439 .btn-default.disabled:focus,.factory-bootstrap-439 .btn-default.disabled:hover,.factory-bootstrap-439 .btn-default[disabled],.factory-bootstrap-439 .btn-default[disabled].active,.factory-bootstrap-439 .btn-default[disabled]:active,.factory-bootstrap-439 .btn-default[disabled]:focus,.factory-bootstrap-439 .btn-default[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-default,.factory-bootstrap-439 fieldset[disabled] .btn-default.active,.factory-bootstrap-439 fieldset[disabled] .btn-default:active,.factory-bootstrap-439 fieldset[disabled] .btn-default:focus,.factory-bootstrap-439 fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.factory-bootstrap-439 .btn-default .badge{color:#fff;background-color:#fff}.factory-bootstrap-439 .btn-primary.active,.factory-bootstrap-439 .btn-primary:active,.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.factory-bootstrap-439 .btn-primary.active,.factory-bootstrap-439 .btn-primary:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-primary{background-image:none}.factory-bootstrap-439 .btn-primary.disabled,.factory-bootstrap-439 .btn-primary.disabled.active,.factory-bootstrap-439 .btn-primary.disabled:active,.factory-bootstrap-439 .btn-primary.disabled:focus,.factory-bootstrap-439 .btn-primary.disabled:hover,.factory-bootstrap-439 .btn-primary[disabled],.factory-bootstrap-439 .btn-primary[disabled].active,.factory-bootstrap-439 .btn-primary[disabled]:active,.factory-bootstrap-439 .btn-primary[disabled]:focus,.factory-bootstrap-439 .btn-primary[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-primary,.factory-bootstrap-439 fieldset[disabled] .btn-primary.active,.factory-bootstrap-439 fieldset[disabled] .btn-primary:active,.factory-bootstrap-439 fieldset[disabled] .btn-primary:focus,.factory-bootstrap-439 fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.factory-bootstrap-439 .btn-primary .badge{color:#428bca;background-color:#fff}.factory-bootstrap-439 .btn-warning{color:#fff;background-color:#f0ad4e}.factory-bootstrap-439 .btn-warning.active,.factory-bootstrap-439 .btn-warning:active,.factory-bootstrap-439 .btn-warning:focus,.factory-bootstrap-439 .btn-warning:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.factory-bootstrap-439 .btn-warning.active,.factory-bootstrap-439 .btn-warning:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-warning{background-image:none}.factory-bootstrap-439 .btn-warning.disabled,.factory-bootstrap-439 .btn-warning.disabled.active,.factory-bootstrap-439 .btn-warning.disabled:active,.factory-bootstrap-439 .btn-warning.disabled:focus,.factory-bootstrap-439 .btn-warning.disabled:hover,.factory-bootstrap-439 .btn-warning[disabled],.factory-bootstrap-439 .btn-warning[disabled].active,.factory-bootstrap-439 .btn-warning[disabled]:active,.factory-bootstrap-439 .btn-warning[disabled]:focus,.factory-bootstrap-439 .btn-warning[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-warning,.factory-bootstrap-439 fieldset[disabled] .btn-warning.active,.factory-bootstrap-439 fieldset[disabled] .btn-warning:active,.factory-bootstrap-439 fieldset[disabled] .btn-warning:focus,.factory-bootstrap-439 fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.factory-bootstrap-439 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.factory-bootstrap-439 .btn-success{color:#fff;background-color:#5cb85c}.factory-bootstrap-439 .btn-success.active,.factory-bootstrap-439 .btn-success:active,.factory-bootstrap-439 .btn-success:focus,.factory-bootstrap-439 .btn-success:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.factory-bootstrap-439 .btn-success.active,.factory-bootstrap-439 .btn-success:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-success{background-image:none}.factory-bootstrap-439 .btn-success.disabled,.factory-bootstrap-439 .btn-success.disabled.active,.factory-bootstrap-439 .btn-success.disabled:active,.factory-bootstrap-439 .btn-success.disabled:focus,.factory-bootstrap-439 .btn-success.disabled:hover,.factory-bootstrap-439 .btn-success[disabled],.factory-bootstrap-439 .btn-success[disabled].active,.factory-bootstrap-439 .btn-success[disabled]:active,.factory-bootstrap-439 .btn-success[disabled]:focus,.factory-bootstrap-439 .btn-success[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-success,.factory-bootstrap-439 fieldset[disabled] .btn-success.active,.factory-bootstrap-439 fieldset[disabled] .btn-success:active,.factory-bootstrap-439 fieldset[disabled] .btn-success:focus,.factory-bootstrap-439 fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.factory-bootstrap-439 .btn-success .badge{color:#5cb85c;background-color:#fff}.factory-bootstrap-439 .btn-info{color:#fff;background-color:#5bc0de}.factory-bootstrap-439 .btn-info.active,.factory-bootstrap-439 .btn-info:active,.factory-bootstrap-439 .btn-info:focus,.factory-bootstrap-439 .btn-info:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.factory-bootstrap-439 .btn-info.active,.factory-bootstrap-439 .btn-info:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-info{background-image:none}.factory-bootstrap-439 .btn-info.disabled,.factory-bootstrap-439 .btn-info.disabled.active,.factory-bootstrap-439 .btn-info.disabled:active,.factory-bootstrap-439 .btn-info.disabled:focus,.factory-bootstrap-439 .btn-info.disabled:hover,.factory-bootstrap-439 .btn-info[disabled],.factory-bootstrap-439 .btn-info[disabled].active,.factory-bootstrap-439 .btn-info[disabled]:active,.factory-bootstrap-439 .btn-info[disabled]:focus,.factory-bootstrap-439 .btn-info[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-info,.factory-bootstrap-439 fieldset[disabled] .btn-info.active,.factory-bootstrap-439 fieldset[disabled] .btn-info:active,.factory-bootstrap-439 fieldset[disabled] .btn-info:focus,.factory-bootstrap-439 fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.factory-bootstrap-439 .btn-info .badge{color:#5bc0de;background-color:#fff}.factory-bootstrap-439 .btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.factory-bootstrap-439 .btn-link,.factory-bootstrap-439 .btn-link:active,.factory-bootstrap-439 .btn-link[disabled],.factory-bootstrap-439 fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-439 .btn-link,.factory-bootstrap-439 .btn-link:active,.factory-bootstrap-439 .btn-link:focus,.factory-bootstrap-439 .btn-link:hover{border-color:transparent}.factory-bootstrap-439 .btn-link:focus,.factory-bootstrap-439 .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.factory-bootstrap-439 .btn-link[disabled]:focus,.factory-bootstrap-439 .btn-link[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-link:focus,.factory-bootstrap-439 fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.factory-bootstrap-439 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-439 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 .btn-block{display:block;width:100%;padding-right:0;padding-left:0}.factory-bootstrap-439 .btn-block+.btn-block{margin-top:5px}.factory-bootstrap-439 input[type=button].btn-block,.factory-bootstrap-439 input[type=reset].btn-block,.factory-bootstrap-439 input[type=submit].btn-block{width:100%}.factory-bootstrap-439 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.factory-bootstrap-439 .fade.in{opacity:1}.factory-bootstrap-439 .collapse{display:none}.factory-bootstrap-439 .collapse.in{display:block}.factory-bootstrap-439 .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-439 .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-439 .glyphicon:empty{width:1em}.factory-bootstrap-439 .glyphicon-asterisk:before{content:"\2a"}.factory-bootstrap-439 .glyphicon-plus:before{content:"\2b"}.factory-bootstrap-439 .glyphicon-euro:before{content:"\20ac"}.factory-bootstrap-439 .glyphicon-minus:before{content:"\2212"}.factory-bootstrap-439 .glyphicon-cloud:before{content:"\2601"}.factory-bootstrap-439 .glyphicon-envelope:before{content:"\2709"}.factory-bootstrap-439 .glyphicon-pencil:before{content:"\270f"}.factory-bootstrap-439 .glyphicon-glass:before{content:"\e001"}.factory-bootstrap-439 .glyphicon-music:before{content:"\e002"}.factory-bootstrap-439 .glyphicon-search:before{content:"\e003"}.factory-bootstrap-439 .glyphicon-heart:before{content:"\e005"}.factory-bootstrap-439 .glyphicon-star:before{content:"\e006"}.factory-bootstrap-439 .glyphicon-star-empty:before{content:"\e007"}.factory-bootstrap-439 .glyphicon-user:before{content:"\e008"}.factory-bootstrap-439 .glyphicon-film:before{content:"\e009"}.factory-bootstrap-439 .glyphicon-th-large:before{content:"\e010"}.factory-bootstrap-439 .glyphicon-th:before{content:"\e011"}.factory-bootstrap-439 .glyphicon-th-list:before{content:"\e012"}.factory-bootstrap-439 .glyphicon-ok:before{content:"\e013"}.factory-bootstrap-439 .glyphicon-remove:before{content:"\e014"}.factory-bootstrap-439 .glyphicon-zoom-in:before{content:"\e015"}.factory-bootstrap-439 .glyphicon-zoom-out:before{content:"\e016"}.factory-bootstrap-439 .glyphicon-off:before{content:"\e017"}.factory-bootstrap-439 .glyphicon-signal:before{content:"\e018"}.factory-bootstrap-439 .glyphicon-cog:before{content:"\e019"}.factory-bootstrap-439 .glyphicon-trash:before{content:"\e020"}.factory-bootstrap-439 .glyphicon-home:before{content:"\e021"}.factory-bootstrap-439 .glyphicon-file:before{content:"\e022"}.factory-bootstrap-439 .glyphicon-time:before{content:"\e023"}.factory-bootstrap-439 .glyphicon-road:before{content:"\e024"}.factory-bootstrap-439 .glyphicon-download-alt:before{content:"\e025"}.factory-bootstrap-439 .glyphicon-download:before{content:"\e026"}.factory-bootstrap-439 .glyphicon-upload:before{content:"\e027"}.factory-bootstrap-439 .glyphicon-inbox:before{content:"\e028"}.factory-bootstrap-439 .glyphicon-play-circle:before{content:"\e029"}.factory-bootstrap-439 .glyphicon-repeat:before{content:"\e030"}.factory-bootstrap-439 .glyphicon-refresh:before{content:"\e031"}.factory-bootstrap-439 .glyphicon-list-alt:before{content:"\e032"}.factory-bootstrap-439 .glyphicon-lock:before{content:"\e033"}.factory-bootstrap-439 .glyphicon-flag:before{content:"\e034"}.factory-bootstrap-439 .glyphicon-headphones:before{content:"\e035"}.factory-bootstrap-439 .glyphicon-volume-off:before{content:"\e036"}.factory-bootstrap-439 .glyphicon-volume-down:before{content:"\e037"}.factory-bootstrap-439 .glyphicon-volume-up:before{content:"\e038"}.factory-bootstrap-439 .glyphicon-qrcode:before{content:"\e039"}.factory-bootstrap-439 .glyphicon-barcode:before{content:"\e040"}.factory-bootstrap-439 .glyphicon-tag:before{content:"\e041"}.factory-bootstrap-439 .glyphicon-tags:before{content:"\e042"}.factory-bootstrap-439 .glyphicon-book:before{content:"\e043"}.factory-bootstrap-439 .glyphicon-bookmark:before{content:"\e044"}.factory-bootstrap-439 .glyphicon-print:before{content:"\e045"}.factory-bootstrap-439 .glyphicon-camera:before{content:"\e046"}.factory-bootstrap-439 .glyphicon-font:before{content:"\e047"}.factory-bootstrap-439 .glyphicon-bold:before{content:"\e048"}.factory-bootstrap-439 .glyphicon-italic:before{content:"\e049"}.factory-bootstrap-439 .glyphicon-text-height:before{content:"\e050"}.factory-bootstrap-439 .glyphicon-text-width:before{content:"\e051"}.factory-bootstrap-439 .glyphicon-align-left:before{content:"\e052"}.factory-bootstrap-439 .glyphicon-align-center:before{content:"\e053"}.factory-bootstrap-439 .glyphicon-align-right:before{content:"\e054"}.factory-bootstrap-439 .glyphicon-align-justify:before{content:"\e055"}.factory-bootstrap-439 .glyphicon-list:before{content:"\e056"}.factory-bootstrap-439 .glyphicon-indent-left:before{content:"\e057"}.factory-bootstrap-439 .glyphicon-indent-right:before{content:"\e058"}.factory-bootstrap-439 .glyphicon-facetime-video:before{content:"\e059"}.factory-bootstrap-439 .glyphicon-picture:before{content:"\e060"}.factory-bootstrap-439 .glyphicon-map-marker:before{content:"\e062"}.factory-bootstrap-439 .glyphicon-adjust:before{content:"\e063"}.factory-bootstrap-439 .glyphicon-tint:before{content:"\e064"}.factory-bootstrap-439 .glyphicon-edit:before{content:"\e065"}.factory-bootstrap-439 .glyphicon-share:before{content:"\e066"}.factory-bootstrap-439 .glyphicon-check:before{content:"\e067"}.factory-bootstrap-439 .glyphicon-move:before{content:"\e068"}.factory-bootstrap-439 .glyphicon-step-backward:before{content:"\e069"}.factory-bootstrap-439 .glyphicon-fast-backward:before{content:"\e070"}.factory-bootstrap-439 .glyphicon-backward:before{content:"\e071"}.factory-bootstrap-439 .glyphicon-play:before{content:"\e072"}.factory-bootstrap-439 .glyphicon-pause:before{content:"\e073"}.factory-bootstrap-439 .glyphicon-stop:before{content:"\e074"}.factory-bootstrap-439 .glyphicon-forward:before{content:"\e075"}.factory-bootstrap-439 .glyphicon-fast-forward:before{content:"\e076"}.factory-bootstrap-439 .glyphicon-step-forward:before{content:"\e077"}.factory-bootstrap-439 .glyphicon-eject:before{content:"\e078"}.factory-bootstrap-439 .glyphicon-chevron-left:before{content:"\e079"}.factory-bootstrap-439 .glyphicon-chevron-right:before{content:"\e080"}.factory-bootstrap-439 .glyphicon-plus-sign:before{content:"\e081"}.factory-bootstrap-439 .glyphicon-minus-sign:before{content:"\e082"}.factory-bootstrap-439 .glyphicon-remove-sign:before{content:"\e083"}.factory-bootstrap-439 .glyphicon-ok-sign:before{content:"\e084"}.factory-bootstrap-439 .glyphicon-question-sign:before{content:"\e085"}.factory-bootstrap-439 .glyphicon-info-sign:before{content:"\e086"}.factory-bootstrap-439 .glyphicon-screenshot:before{content:"\e087"}.factory-bootstrap-439 .glyphicon-remove-circle:before{content:"\e088"}.factory-bootstrap-439 .glyphicon-ok-circle:before{content:"\e089"}.factory-bootstrap-439 .glyphicon-ban-circle:before{content:"\e090"}.factory-bootstrap-439 .glyphicon-arrow-left:before{content:"\e091"}.factory-bootstrap-439 .glyphicon-arrow-right:before{content:"\e092"}.factory-bootstrap-439 .glyphicon-arrow-up:before{content:"\e093"}.factory-bootstrap-439 .glyphicon-arrow-down:before{content:"\e094"}.factory-bootstrap-439 .glyphicon-share-alt:before{content:"\e095"}.factory-bootstrap-439 .glyphicon-resize-full:before{content:"\e096"}.factory-bootstrap-439 .glyphicon-resize-small:before{content:"\e097"}.factory-bootstrap-439 .glyphicon-exclamation-sign:before{content:"\e101"}.factory-bootstrap-439 .glyphicon-gift:before{content:"\e102"}.factory-bootstrap-439 .glyphicon-leaf:before{content:"\e103"}.factory-bootstrap-439 .glyphicon-fire:before{content:"\e104"}.factory-bootstrap-439 .glyphicon-eye-open:before{content:"\e105"}.factory-bootstrap-439 .glyphicon-eye-close:before{content:"\e106"}.factory-bootstrap-439 .glyphicon-warning-sign:before{content:"\e107"}.factory-bootstrap-439 .glyphicon-plane:before{content:"\e108"}.factory-bootstrap-439 .glyphicon-calendar:before{content:"\e109"}.factory-bootstrap-439 .glyphicon-random:before{content:"\e110"}.factory-bootstrap-439 .glyphicon-comment:before{content:"\e111"}.factory-bootstrap-439 .glyphicon-magnet:before{content:"\e112"}.factory-bootstrap-439 .glyphicon-chevron-up:before{content:"\e113"}.factory-bootstrap-439 .glyphicon-chevron-down:before{content:"\e114"}.factory-bootstrap-439 .glyphicon-retweet:before{content:"\e115"}.factory-bootstrap-439 .glyphicon-shopping-cart:before{content:"\e116"}.factory-bootstrap-439 .glyphicon-folder-close:before{content:"\e117"}.factory-bootstrap-439 .glyphicon-folder-open:before{content:"\e118"}.factory-bootstrap-439 .glyphicon-resize-vertical:before{content:"\e119"}.factory-bootstrap-439 .glyphicon-resize-horizontal:before{content:"\e120"}.factory-bootstrap-439 .glyphicon-hdd:before{content:"\e121"}.factory-bootstrap-439 .glyphicon-bullhorn:before{content:"\e122"}.factory-bootstrap-439 .glyphicon-bell:before{content:"\e123"}.factory-bootstrap-439 .glyphicon-certificate:before{content:"\e124"}.factory-bootstrap-439 .glyphicon-thumbs-up:before{content:"\e125"}.factory-bootstrap-439 .glyphicon-thumbs-down:before{content:"\e126"}.factory-bootstrap-439 .glyphicon-hand-right:before{content:"\e127"}.factory-bootstrap-439 .glyphicon-hand-left:before{content:"\e128"}.factory-bootstrap-439 .glyphicon-hand-up:before{content:"\e129"}.factory-bootstrap-439 .glyphicon-hand-down:before{content:"\e130"}.factory-bootstrap-439 .glyphicon-circle-arrow-right:before{content:"\e131"}.factory-bootstrap-439 .glyphicon-circle-arrow-left:before{content:"\e132"}.factory-bootstrap-439 .glyphicon-circle-arrow-up:before{content:"\e133"}.factory-bootstrap-439 .glyphicon-circle-arrow-down:before{content:"\e134"}.factory-bootstrap-439 .glyphicon-globe:before{content:"\e135"}.factory-bootstrap-439 .glyphicon-wrench:before{content:"\e136"}.factory-bootstrap-439 .glyphicon-tasks:before{content:"\e137"}.factory-bootstrap-439 .glyphicon-filter:before{content:"\e138"}.factory-bootstrap-439 .glyphicon-briefcase:before{content:"\e139"}.factory-bootstrap-439 .glyphicon-fullscreen:before{content:"\e140"}.factory-bootstrap-439 .glyphicon-dashboard:before{content:"\e141"}.factory-bootstrap-439 .glyphicon-paperclip:before{content:"\e142"}.factory-bootstrap-439 .glyphicon-heart-empty:before{content:"\e143"}.factory-bootstrap-439 .glyphicon-link:before{content:"\e144"}.factory-bootstrap-439 .glyphicon-phone:before{content:"\e145"}.factory-bootstrap-439 .glyphicon-pushpin:before{content:"\e146"}.factory-bootstrap-439 .glyphicon-usd:before{content:"\e148"}.factory-bootstrap-439 .glyphicon-gbp:before{content:"\e149"}.factory-bootstrap-439 .glyphicon-sort:before{content:"\e150"}.factory-bootstrap-439 .glyphicon-sort-by-alphabet:before{content:"\e151"}.factory-bootstrap-439 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.factory-bootstrap-439 .glyphicon-sort-by-order:before{content:"\e153"}.factory-bootstrap-439 .glyphicon-sort-by-order-alt:before{content:"\e154"}.factory-bootstrap-439 .glyphicon-sort-by-attributes:before{content:"\e155"}.factory-bootstrap-439 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.factory-bootstrap-439 .glyphicon-unchecked:before{content:"\e157"}.factory-bootstrap-439 .glyphicon-expand:before{content:"\e158"}.factory-bootstrap-439 .glyphicon-collapse-down:before{content:"\e159"}.factory-bootstrap-439 .glyphicon-collapse-up:before{content:"\e160"}.factory-bootstrap-439 .glyphicon-log-in:before{content:"\e161"}.factory-bootstrap-439 .glyphicon-flash:before{content:"\e162"}.factory-bootstrap-439 .glyphicon-log-out:before{content:"\e163"}.factory-bootstrap-439 .glyphicon-new-window:before{content:"\e164"}.factory-bootstrap-439 .glyphicon-record:before{content:"\e165"}.factory-bootstrap-439 .glyphicon-save:before{content:"\e166"}.factory-bootstrap-439 .glyphicon-open:before{content:"\e167"}.factory-bootstrap-439 .glyphicon-saved:before{content:"\e168"}.factory-bootstrap-439 .glyphicon-import:before{content:"\e169"}.factory-bootstrap-439 .glyphicon-export:before{content:"\e170"}.factory-bootstrap-439 .glyphicon-send:before{content:"\e171"}.factory-bootstrap-439 .glyphicon-floppy-disk:before{content:"\e172"}.factory-bootstrap-439 .glyphicon-floppy-saved:before{content:"\e173"}.factory-bootstrap-439 .glyphicon-floppy-remove:before{content:"\e174"}.factory-bootstrap-439 .glyphicon-floppy-save:before{content:"\e175"}.factory-bootstrap-439 .glyphicon-floppy-open:before{content:"\e176"}.factory-bootstrap-439 .glyphicon-credit-card:before{content:"\e177"}.factory-bootstrap-439 .glyphicon-transfer:before{content:"\e178"}.factory-bootstrap-439 .glyphicon-cutlery:before{content:"\e179"}.factory-bootstrap-439 .glyphicon-header:before{content:"\e180"}.factory-bootstrap-439 .glyphicon-compressed:before{content:"\e181"}.factory-bootstrap-439 .glyphicon-earphone:before{content:"\e182"}.factory-bootstrap-439 .glyphicon-phone-alt:before{content:"\e183"}.factory-bootstrap-439 .glyphicon-tower:before{content:"\e184"}.factory-bootstrap-439 .glyphicon-stats:before{content:"\e185"}.factory-bootstrap-439 .glyphicon-sd-video:before{content:"\e186"}.factory-bootstrap-439 .glyphicon-hd-video:before{content:"\e187"}.factory-bootstrap-439 .glyphicon-subtitles:before{content:"\e188"}.factory-bootstrap-439 .glyphicon-sound-stereo:before{content:"\e189"}.factory-bootstrap-439 .glyphicon-sound-dolby:before{content:"\e190"}.factory-bootstrap-439 .glyphicon-sound-5-1:before{content:"\e191"}.factory-bootstrap-439 .glyphicon-sound-6-1:before{content:"\e192"}.factory-bootstrap-439 .glyphicon-sound-7-1:before{content:"\e193"}.factory-bootstrap-439 .glyphicon-copyright-mark:before{content:"\e194"}.factory-bootstrap-439 .glyphicon-registration-mark:before{content:"\e195"}.factory-bootstrap-439 .glyphicon-cloud-download:before{content:"\e197"}.factory-bootstrap-439 .glyphicon-cloud-upload:before{content:"\e198"}.factory-bootstrap-439 .glyphicon-tree-conifer:before{content:"\e199"}.factory-bootstrap-439 .glyphicon-tree-deciduous:before{content:"\e200"}.factory-bootstrap-439 .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-439 .dropdown{position:relative}.factory-bootstrap-439 .dropdown-toggle:focus{outline:0}.factory-bootstrap-439 .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-439 .dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-439 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-439 .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-439 .dropdown-menu>li>a:focus,.factory-bootstrap-439 .dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.factory-bootstrap-439 .dropdown-menu>.active>a,.factory-bootstrap-439 .dropdown-menu>.active>a:focus,.factory-bootstrap-439 .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.factory-bootstrap-439 .dropdown-menu>.disabled>a,.factory-bootstrap-439 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-439 .dropdown-menu>.disabled>a:hover{color:#999}.factory-bootstrap-439 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-439 .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-439 .open>.dropdown-menu{display:block}.factory-bootstrap-439 .open>a{outline:0}.factory-bootstrap-439 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.factory-bootstrap-439 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.factory-bootstrap-439 .pull-right>.dropdown-menu{right:0;left:auto}.factory-bootstrap-439 .dropup .caret,.factory-bootstrap-439 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.factory-bootstrap-439 .dropup .dropdown-menu,.factory-bootstrap-439 .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-439 .btn-group,.factory-bootstrap-439 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.factory-bootstrap-439 .btn-group-vertical>.btn,.factory-bootstrap-439 .btn-group>.btn{position:relative;float:left}.factory-bootstrap-439 .btn-group-vertical>.btn.active,.factory-bootstrap-439 .btn-group-vertical>.btn:active,.factory-bootstrap-439 .btn-group-vertical>.btn:focus,.factory-bootstrap-439 .btn-group-vertical>.btn:hover,.factory-bootstrap-439 .btn-group>.btn.active,.factory-bootstrap-439 .btn-group>.btn:active,.factory-bootstrap-439 .btn-group>.btn:focus,.factory-bootstrap-439 .btn-group>.btn:hover{z-index:2}.factory-bootstrap-439 .btn-group-vertical>.btn:focus,.factory-bootstrap-439 .btn-group>.btn:focus{outline:0}.factory-bootstrap-439 .btn-group .btn+.btn,.factory-bootstrap-439 .btn-group .btn+.btn-group,.factory-bootstrap-439 .btn-group .btn-group+.btn,.factory-bootstrap-439 .btn-group .btn-group+.btn-group{margin-left:-1px}.factory-bootstrap-439 .btn-toolbar:after,.factory-bootstrap-439 .btn-toolbar:before{display:table;content:" "}.factory-bootstrap-439 .btn-toolbar:after{clear:both}.factory-bootstrap-439 .btn-toolbar .btn-group{float:left}.factory-bootstrap-439 .btn-toolbar>.btn+.btn,.factory-bootstrap-439 .btn-toolbar>.btn+.btn-group,.factory-bootstrap-439 .btn-toolbar>.btn-group+.btn,.factory-bootstrap-439 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.factory-bootstrap-439 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.factory-bootstrap-439 .btn-group>.btn:first-child{margin-left:0}.factory-bootstrap-439 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-439 .btn-group>.btn:last-child:not(:first-child),.factory-bootstrap-439 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .btn-group>.btn-group{float:left}.factory-bootstrap-439 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-439 .btn-group>.btn-group:first-child>.btn:last-child,.factory-bootstrap-439 .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-439 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .btn-group .dropdown-toggle:active,.factory-bootstrap-439 .btn-group.open .dropdown-toggle{outline:0}.factory-bootstrap-439 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-439 .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.factory-bootstrap-439 .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.factory-bootstrap-439 .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-439 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-439 .btn-group{border:4px solid #f9f9f9;border-radius:4px}.factory-bootstrap-439 .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-439 .btn .caret{margin-left:0}.factory-bootstrap-439 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.factory-bootstrap-439 .dropup .btn-lg .caret{border-width:0 5px 5px}.factory-bootstrap-439 .btn-group-vertical>.btn,.factory-bootstrap-439 .btn-group-vertical>.btn-group,.factory-bootstrap-439 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.factory-bootstrap-439 .btn-group-vertical>.btn-group:after,.factory-bootstrap-439 .btn-group-vertical>.btn-group:before{display:table;content:" "}.factory-bootstrap-439 .btn-group-vertical>.btn-group:after{clear:both}.factory-bootstrap-439 .btn-group-vertical>.btn-group>.btn{float:none}.factory-bootstrap-439 .btn-group-vertical>.btn+.btn,.factory-bootstrap-439 .btn-group-vertical>.btn+.btn-group,.factory-bootstrap-439 .btn-group-vertical>.btn-group+.btn,.factory-bootstrap-439 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.factory-bootstrap-439 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-439 .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-439 .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-439 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-439 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.factory-bootstrap-439 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-439 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.factory-bootstrap-439 .btn-group-justified>.btn,.factory-bootstrap-439 .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.factory-bootstrap-439 .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-439 .input-group{position:relative;display:table;border-collapse:separate}.factory-bootstrap-439 .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.factory-bootstrap-439 .input-group .form-control{width:100%;margin-bottom:0}.factory-bootstrap-439 .input-group-lg>.form-control,.factory-bootstrap-439 .input-group-lg>.input-group-addon,.factory-bootstrap-439 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-439 select.input-group-lg>.form-control,.factory-bootstrap-439 select.input-group-lg>.input-group-addon,.factory-bootstrap-439 select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}.factory-bootstrap-439 textarea.input-group-lg>.form-control,.factory-bootstrap-439 textarea.input-group-lg>.input-group-addon,.factory-bootstrap-439 textarea.input-group-lg>.input-group-btn>.btn{height:auto}.factory-bootstrap-439 .input-group-sm>.form-control,.factory-bootstrap-439 .input-group-sm>.input-group-addon,.factory-bootstrap-439 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 select.input-group-sm>.form-control,.factory-bootstrap-439 select.input-group-sm>.input-group-addon,.factory-bootstrap-439 select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}.factory-bootstrap-439 textarea.input-group-sm>.form-control,.factory-bootstrap-439 textarea.input-group-sm>.input-group-addon,.factory-bootstrap-439 textarea.input-group-sm>.input-group-btn>.btn{height:auto}.factory-bootstrap-439 .input-group .form-control,.factory-bootstrap-439 .input-group-addon,.factory-bootstrap-439 .input-group-btn{display:table-cell}.factory-bootstrap-439 .input-group .form-control:not(:first-child):not(:last-child),.factory-bootstrap-439 .input-group-addon:not(:first-child):not(:last-child),.factory-bootstrap-439 .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-439 .input-group-addon,.factory-bootstrap-439 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.factory-bootstrap-439 .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-439 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.factory-bootstrap-439 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.factory-bootstrap-439 .input-group-addon input[type=checkbox],.factory-bootstrap-439 .input-group-addon input[type=radio]{margin-top:0}.factory-bootstrap-439 .input-group .form-control:first-child,.factory-bootstrap-439 .input-group-addon:first-child,.factory-bootstrap-439 .input-group-btn:first-child>.btn,.factory-bootstrap-439 .input-group-btn:first-child>.dropdown-toggle,.factory-bootstrap-439 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-439 .input-group-addon:first-child{border-right:0}.factory-bootstrap-439 .input-group .form-control:last-child,.factory-bootstrap-439 .input-group-addon:last-child,.factory-bootstrap-439 .input-group-btn:first-child>.btn:not(:first-child),.factory-bootstrap-439 .input-group-btn:last-child>.btn,.factory-bootstrap-439 .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .input-group-addon:last-child{border-left:0}.factory-bootstrap-439 .input-group-btn{position:relative;white-space:nowrap}.factory-bootstrap-439 .input-group-btn:first-child>.btn{margin-right:-1px}.factory-bootstrap-439 .input-group-btn:last-child>.btn{margin-left:-1px}.factory-bootstrap-439 .input-group-btn>.btn{position:relative}.factory-bootstrap-439 .input-group-btn>.btn+.btn{margin-left:-4px}.factory-bootstrap-439 .input-group-btn>.btn:active,.factory-bootstrap-439 .input-group-btn>.btn:hover{z-index:2}.factory-bootstrap-439 .nav{padding-left:0;margin-bottom:0;list-style:none}.factory-bootstrap-439 .nav:after,.factory-bootstrap-439 .nav:before{display:table;content:" "}.factory-bootstrap-439 .nav:after{clear:both}.factory-bootstrap-439 .nav>li{position:relative;display:block}.factory-bootstrap-439 .nav>li>a{position:relative;display:block;padding:10px 15px}.factory-bootstrap-439 .nav>li>a:focus,.factory-bootstrap-439 .nav>li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-439 .nav>li.disabled>a{color:#999}.factory-bootstrap-439 .nav>li.disabled>a:focus,.factory-bootstrap-439 .nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.factory-bootstrap-439 .nav .open>a,.factory-bootstrap-439 .nav .open>a:focus,.factory-bootstrap-439 .nav .open>a:hover{background-color:#eee;border-color:#428bca}.factory-bootstrap-439 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-439 .nav>li>a>img{max-width:none}.factory-bootstrap-439 .nav-tabs{border-bottom:1px solid #ddd}.factory-bootstrap-439 .nav-tabs>li{float:left;margin-bottom:-1px}.factory-bootstrap-439 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.factory-bootstrap-439 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.factory-bootstrap-439 .nav-tabs>li.active>a,.factory-bootstrap-439 .nav-tabs>li.active>a:focus,.factory-bootstrap-439 .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.factory-bootstrap-439 .nav-tabs.nav-justified{width:100%;border-bottom:0}.factory-bootstrap-439 .nav-tabs.nav-justified>li{float:none}.factory-bootstrap-439 .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-439 .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-439 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-439 .nav-tabs.nav-justified>.active>a,.factory-bootstrap-439 .nav-tabs.nav-justified>.active>a:focus,.factory-bootstrap-439 .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-439 .nav-pills>li{float:left}.factory-bootstrap-439 .nav-pills>li>a{border-radius:4px}.factory-bootstrap-439 .nav-pills>li+li{margin-left:2px}.factory-bootstrap-439 .nav-pills>li.active>a,.factory-bootstrap-439 .nav-pills>li.active>a:focus,.factory-bootstrap-439 .nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.factory-bootstrap-439 .nav-stacked>li{float:none}.factory-bootstrap-439 .nav-stacked>li+li{margin-top:2px;margin-left:0}.factory-bootstrap-439 .nav-justified{width:100%}.factory-bootstrap-439 .nav-justified>li{float:none}.factory-bootstrap-439 .nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-439 .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-439 .nav-tabs-justified{border-bottom:0}.factory-bootstrap-439 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-439 .nav-tabs-justified>.active>a,.factory-bootstrap-439 .nav-tabs-justified>.active>a:focus,.factory-bootstrap-439 .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-439 .tab-content>.tab-pane{display:none}.factory-bootstrap-439 .tab-content>.active{display:block}.factory-bootstrap-439 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.factory-bootstrap-439 .navbar:after,.factory-bootstrap-439 .navbar:before{display:table;content:" "}.factory-bootstrap-439 .navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.factory-bootstrap-439 .navbar-header:after,.factory-bootstrap-439 .navbar-header:before{display:table;content:" "}.factory-bootstrap-439 .navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.factory-bootstrap-439 .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-439 .navbar-collapse:after,.factory-bootstrap-439 .navbar-collapse:before{display:table;content:" "}.factory-bootstrap-439 .navbar-collapse:after{clear:both}.factory-bootstrap-439 .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-439 .container>.navbar-collapse,.factory-bootstrap-439 .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-439 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.factory-bootstrap-439 .navbar-fixed-bottom,.factory-bootstrap-439 .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-439 .navbar-fixed-top{top:0;border-width:0 0 1px}.factory-bootstrap-439 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.factory-bootstrap-439 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.factory-bootstrap-439 .navbar-brand:focus,.factory-bootstrap-439 .navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.factory-bootstrap-439 .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-439 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.factory-bootstrap-439 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.factory-bootstrap-439 .navbar-nav{margin:7.5px -15px}.factory-bootstrap-439 .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-439 .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-439 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-439 .navbar-nav.pull-right>li>.dropdown-menu,.factory-bootstrap-439 .navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-439 .navbar-btn{margin-top:8px;margin-bottom:8px}.factory-bootstrap-439 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.factory-bootstrap-439 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.factory-bootstrap-439 .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-439 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.factory-bootstrap-439 .navbar-default .navbar-brand{color:#777}.factory-bootstrap-439 .navbar-default .navbar-brand:focus,.factory-bootstrap-439 .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.factory-bootstrap-439 .navbar-default .navbar-nav>li>a,.factory-bootstrap-439 .navbar-default .navbar-text{color:#777}.factory-bootstrap-439 .navbar-default .navbar-nav>li>a:focus,.factory-bootstrap-439 .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.factory-bootstrap-439 .navbar-default .navbar-nav>.active>a,.factory-bootstrap-439 .navbar-default .navbar-nav>.active>a:focus,.factory-bootstrap-439 .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.factory-bootstrap-439 .navbar-default .navbar-nav>.disabled>a,.factory-bootstrap-439 .navbar-default .navbar-nav>.disabled>a:focus,.factory-bootstrap-439 .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.factory-bootstrap-439 .navbar-default .navbar-toggle{border-color:#ddd}.factory-bootstrap-439 .navbar-default .navbar-toggle:focus,.factory-bootstrap-439 .navbar-default .navbar-toggle:hover{background-color:#ddd}.factory-bootstrap-439 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.factory-bootstrap-439 .navbar-default .navbar-collapse,.factory-bootstrap-439 .navbar-default .navbar-form{border-color:#e7e7e7}.factory-bootstrap-439 .navbar-default .navbar-nav>.open>a,.factory-bootstrap-439 .navbar-default .navbar-nav>.open>a:focus,.factory-bootstrap-439 .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-439 .navbar-default .navbar-link{color:#777}.factory-bootstrap-439 .navbar-default .navbar-link:hover{color:#333}.factory-bootstrap-439 .navbar-inverse{background-color:#222;border-color:#080808}.factory-bootstrap-439 .navbar-inverse .navbar-brand{color:#999}.factory-bootstrap-439 .navbar-inverse .navbar-brand:focus,.factory-bootstrap-439 .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.factory-bootstrap-439 .navbar-inverse .navbar-nav>li>a,.factory-bootstrap-439 .navbar-inverse .navbar-text{color:#999}.factory-bootstrap-439 .navbar-inverse .navbar-nav>li>a:focus,.factory-bootstrap-439 .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.factory-bootstrap-439 .navbar-inverse .navbar-nav>.active>a,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.active>a:focus,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.factory-bootstrap-439 .navbar-inverse .navbar-nav>.disabled>a,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.disabled>a:focus,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.factory-bootstrap-439 .navbar-inverse .navbar-toggle{border-color:#333}.factory-bootstrap-439 .navbar-inverse .navbar-toggle:focus,.factory-bootstrap-439 .navbar-inverse .navbar-toggle:hover{background-color:#333}.factory-bootstrap-439 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.factory-bootstrap-439 .navbar-inverse .navbar-collapse,.factory-bootstrap-439 .navbar-inverse .navbar-form{border-color:#101010}.factory-bootstrap-439 .navbar-inverse .navbar-nav>.open>a,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.open>a:focus,.factory-bootstrap-439 .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-439 .navbar-inverse .navbar-link{color:#999}.factory-bootstrap-439 .navbar-inverse .navbar-link:hover{color:#fff}.factory-bootstrap-439 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.factory-bootstrap-439 .breadcrumb>li{display:inline-block}.factory-bootstrap-439 .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.factory-bootstrap-439 .breadcrumb>.active{color:#999}.factory-bootstrap-439 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.factory-bootstrap-439 .pagination>li{display:inline}.factory-bootstrap-439 .pagination>li>a,.factory-bootstrap-439 .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-439 .pagination>li:first-child>a,.factory-bootstrap-439 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.factory-bootstrap-439 .pagination>li:last-child>a,.factory-bootstrap-439 .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.factory-bootstrap-439 .pagination>li>a:focus,.factory-bootstrap-439 .pagination>li>a:hover,.factory-bootstrap-439 .pagination>li>span:focus,.factory-bootstrap-439 .pagination>li>span:hover{background-color:#eee}.factory-bootstrap-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#1e8cbe;border-color:#0074a2}.factory-bootstrap-439 .pagination>.disabled>a,.factory-bootstrap-439 .pagination>.disabled>a:focus,.factory-bootstrap-439 .pagination>.disabled>a:hover,.factory-bootstrap-439 .pagination>.disabled>span,.factory-bootstrap-439 .pagination>.disabled>span:focus,.factory-bootstrap-439 .pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.factory-bootstrap-439 .pagination-lg>li>a,.factory-bootstrap-439 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.factory-bootstrap-439 .pagination-lg>li:first-child>a,.factory-bootstrap-439 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.factory-bootstrap-439 .pagination-lg>li:last-child>a,.factory-bootstrap-439 .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.factory-bootstrap-439 .pagination-sm>li>a,.factory-bootstrap-439 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.factory-bootstrap-439 .pagination-sm>li:first-child>a,.factory-bootstrap-439 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.factory-bootstrap-439 .pagination-sm>li:last-child>a,.factory-bootstrap-439 .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.factory-bootstrap-439 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.factory-bootstrap-439 .pager:after,.factory-bootstrap-439 .pager:before{display:table;content:" "}.factory-bootstrap-439 .pager:after{clear:both}.factory-bootstrap-439 .pager li{display:inline}.factory-bootstrap-439 .pager li>a,.factory-bootstrap-439 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.factory-bootstrap-439 .pager li>a:focus,.factory-bootstrap-439 .pager li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-439 .pager .next>a,.factory-bootstrap-439 .pager .next>span{float:right}.factory-bootstrap-439 .pager .previous>a,.factory-bootstrap-439 .pager .previous>span{float:left}.factory-bootstrap-439 .pager .disabled>a,.factory-bootstrap-439 .pager .disabled>a:focus,.factory-bootstrap-439 .pager .disabled>a:hover,.factory-bootstrap-439 .pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.factory-bootstrap-439 .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-439 .label[href]:focus,.factory-bootstrap-439 .label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-439 .label:empty{display:none}.factory-bootstrap-439 .btn .label{position:relative;top:-1px}.factory-bootstrap-439 .label-default{background-color:#999}.factory-bootstrap-439 .label-default[href]:focus,.factory-bootstrap-439 .label-default[href]:hover{background-color:gray}.factory-bootstrap-439 .label-primary{background-color:#428bca}.factory-bootstrap-439 .label-primary[href]:focus,.factory-bootstrap-439 .label-primary[href]:hover{background-color:#3071a9}.factory-bootstrap-439 .label-success{background-color:#5cb85c}.factory-bootstrap-439 .label-success[href]:focus,.factory-bootstrap-439 .label-success[href]:hover{background-color:#449d44}.factory-bootstrap-439 .label-info{background-color:#5bc0de}.factory-bootstrap-439 .label-info[href]:focus,.factory-bootstrap-439 .label-info[href]:hover{background-color:#31b0d5}.factory-bootstrap-439 .label-warning{background-color:#f0ad4e}.factory-bootstrap-439 .label-warning[href]:focus,.factory-bootstrap-439 .label-warning[href]:hover{background-color:#ec971f}.factory-bootstrap-439 .label-danger{background-color:#d9534f}.factory-bootstrap-439 .label-danger[href]:focus,.factory-bootstrap-439 .label-danger[href]:hover{background-color:#c9302c}.factory-bootstrap-439 .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-439 .badge:empty{display:none}.factory-bootstrap-439 .btn .badge{position:relative;top:-1px}.factory-bootstrap-439 a.badge:focus,.factory-bootstrap-439 a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-439 .nav-pills>.active>a>.badge,.factory-bootstrap-439 a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.factory-bootstrap-439 .nav-pills>li>a>.badge{margin-left:3px}.factory-bootstrap-439 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.factory-bootstrap-439 .jumbotron .h1,.factory-bootstrap-439 .jumbotron h1{line-height:1;color:inherit}.factory-bootstrap-439 .jumbotron p{line-height:1.4}.factory-bootstrap-439 .container .jumbotron{border-radius:6px}.factory-bootstrap-439 .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-439 .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-439 .thumbnail a>img,.factory-bootstrap-439 .thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}.factory-bootstrap-439 a.thumbnail.active,.factory-bootstrap-439 a.thumbnail:focus,.factory-bootstrap-439 a.thumbnail:hover{border-color:#428bca}.factory-bootstrap-439 .thumbnail .caption{padding:9px;color:#333}.factory-bootstrap-439 .alert{border:1px solid transparent;border-radius:4px}.factory-bootstrap-439 .alert h4{margin-top:0;color:inherit}.factory-bootstrap-439 .alert .alert-link{font-weight:700}.factory-bootstrap-439 .alert>p,.factory-bootstrap-439 .alert>ul{margin-bottom:0}.factory-bootstrap-439 .alert>p+p{margin-top:5px}.factory-bootstrap-439 .alert-dismissable{padding-right:35px}.factory-bootstrap-439 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.factory-bootstrap-439 .alert-info{color:#31708f;background-color:#d9edf7}.factory-bootstrap-439 .alert-info hr{border-top-color:#a6e1ec}.factory-bootstrap-439 .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-439 .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-439 .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-439 .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-439 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.factory-bootstrap-439 .progress-bar-success{background-color:#5cb85c}.factory-bootstrap-439 .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-439 .progress-bar-info{background-color:#5bc0de}.factory-bootstrap-439 .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-439 .progress-bar-warning{background-color:#f0ad4e}.factory-bootstrap-439 .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-439 .progress-bar-danger{background-color:#d9534f}.factory-bootstrap-439 .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-439 .media,.factory-bootstrap-439 .media-body{overflow:hidden;zoom:1}.factory-bootstrap-439 .media,.factory-bootstrap-439 .media .media{margin-top:15px}.factory-bootstrap-439 .media:first-child{margin-top:0}.factory-bootstrap-439 .media-object{display:block}.factory-bootstrap-439 .media-heading{margin:0 0 5px}.factory-bootstrap-439 .media>.pull-left{margin-right:10px}.factory-bootstrap-439 .media>.pull-right{margin-left:10px}.factory-bootstrap-439 .media-list{padding-left:0;list-style:none}.factory-bootstrap-439 .list-group{padding-left:0;margin-bottom:20px}.factory-bootstrap-439 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-439 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.factory-bootstrap-439 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.factory-bootstrap-439 .list-group-item>.badge{float:right}.factory-bootstrap-439 .list-group-item>.badge+.badge{margin-right:5px}.factory-bootstrap-439 a.list-group-item{color:#555}.factory-bootstrap-439 a.list-group-item .list-group-item-heading{color:#333}.factory-bootstrap-439 a.list-group-item:focus,.factory-bootstrap-439 a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.factory-bootstrap-439 a.list-group-item.active,.factory-bootstrap-439 a.list-group-item.active:focus,.factory-bootstrap-439 a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-439 a.list-group-item.active .list-group-item-heading,.factory-bootstrap-439 a.list-group-item.active:focus .list-group-item-heading,.factory-bootstrap-439 a.list-group-item.active:hover .list-group-item-heading{color:inherit}.factory-bootstrap-439 a.list-group-item.active .list-group-item-text,.factory-bootstrap-439 a.list-group-item.active:focus .list-group-item-text,.factory-bootstrap-439 a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.factory-bootstrap-439 .list-group-item-heading{margin-top:0;margin-bottom:5px}.factory-bootstrap-439 .list-group-item-text{margin-bottom:0;line-height:1.3}.factory-bootstrap-439 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.factory-bootstrap-439 .panel-body{padding:15px}.factory-bootstrap-439 .panel-body:after,.factory-bootstrap-439 .panel-body:before{display:table;content:" "}.factory-bootstrap-439 .panel-body:after{clear:both}.factory-bootstrap-439 .panel>.list-group{margin-bottom:0}.factory-bootstrap-439 .panel>.list-group .list-group-item{border-width:1px 0}.factory-bootstrap-439 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .panel>.list-group .list-group-item:last-child{border-bottom:0}.factory-bootstrap-439 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.factory-bootstrap-439 .panel>.table,.factory-bootstrap-439 .panel>.table-responsive>.table{margin-bottom:0}.factory-bootstrap-439 .panel>.panel-body+.table,.factory-bootstrap-439 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.factory-bootstrap-439 .panel>.table>tbody:first-child td,.factory-bootstrap-439 .panel>.table>tbody:first-child th{border-top:0}.factory-bootstrap-439 .panel>.table-bordered,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered{border:0}.factory-bootstrap-439 .panel>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-439 .panel>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-439 .panel>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-439 .panel>.table-bordered>thead>tr>th:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.factory-bootstrap-439 .panel>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-439 .panel>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-439 .panel>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-439 .panel>.table-bordered>thead>tr>th:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.factory-bootstrap-439 .panel>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-439 .panel>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-439 .panel>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-439 .panel>.table-bordered>thead>tr:last-child>th,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}.factory-bootstrap-439 .panel>.table-responsive{margin-bottom:0;border:0}.factory-bootstrap-439 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.factory-bootstrap-439 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.factory-bootstrap-439 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.factory-bootstrap-439 .panel-title>a{color:inherit}.factory-bootstrap-439 .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-439 .panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.factory-bootstrap-439 .panel-group .panel+.panel{margin-top:5px}.factory-bootstrap-439 .panel-group .panel-heading{border-bottom:0}.factory-bootstrap-439 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.factory-bootstrap-439 .panel-group .panel-footer{border-top:0}.factory-bootstrap-439 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.factory-bootstrap-439 .panel-default{border-color:#ddd}.factory-bootstrap-439 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.factory-bootstrap-439 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.factory-bootstrap-439 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.factory-bootstrap-439 .panel-primary{border-color:#428bca}.factory-bootstrap-439 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-439 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.factory-bootstrap-439 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.factory-bootstrap-439 .panel-success{border-color:#d6e9c6}.factory-bootstrap-439 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.factory-bootstrap-439 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.factory-bootstrap-439 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.factory-bootstrap-439 .panel-warning{border-color:#faebcc}.factory-bootstrap-439 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.factory-bootstrap-439 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.factory-bootstrap-439 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.factory-bootstrap-439 .panel-danger{border-color:#ebccd1}.factory-bootstrap-439 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.factory-bootstrap-439 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.factory-bootstrap-439 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.factory-bootstrap-439 .panel-info{border-color:#bce8f1}.factory-bootstrap-439 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.factory-bootstrap-439 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.factory-bootstrap-439 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.factory-bootstrap-439 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.factory-bootstrap-439 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.factory-bootstrap-439 .well-lg{padding:24px;border-radius:6px}.factory-bootstrap-439 .well-sm{padding:9px;border-radius:3px}.factory-bootstrap-439 .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-439 .alert .close{position:relative;top:-8px;right:-7px}.factory-bootstrap-439 .close:focus,.factory-bootstrap-439 .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-439 button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.factory-bootstrap-439 .modal-open{overflow:hidden}.factory-bootstrap-439 .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-439 .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-439 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.factory-bootstrap-439 .modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.factory-bootstrap-439 .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-439 .modal-backdrop,.factory-bootstrap-439-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.factory-bootstrap-439 .modal-backdrop.fade,.factory-bootstrap-439-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.factory-bootstrap-439 .modal-backdrop.in,.factory-bootstrap-439-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-439 .modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.factory-bootstrap-439 .modal-header .close{margin-top:-2px}.factory-bootstrap-439 .modal-title{margin:0;line-height:1.428571429}.factory-bootstrap-439 .modal-body{position:relative;padding:20px;max-height:none}.factory-bootstrap-439 .modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.factory-bootstrap-439 .modal-footer:after,.factory-bootstrap-439 .modal-footer:before{display:table;content:" "}.factory-bootstrap-439 .modal-footer:after{clear:both}.factory-bootstrap-439 .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.factory-bootstrap-439 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.factory-bootstrap-439 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.factory-bootstrap-439 .modal-dialog{width:600px;margin:30px auto}.factory-bootstrap-439 .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-439 .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-439 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-439 .tooltip.top{padding:5px 0;margin-top:-3px}.factory-bootstrap-439 .tooltip.right{padding:0 5px;margin-left:3px}.factory-bootstrap-439 .tooltip.bottom{padding:5px 0;margin-top:3px}.factory-bootstrap-439 .tooltip.left{padding:0 5px;margin-left:-3px}.factory-bootstrap-439 .tooltip-inner{width:400px;padding:15px 20px;color:#fff;text-align:left;text-decoration:none;background-color:#673ab7;border-radius:3px}.factory-bootstrap-439 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-439 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-439 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-439 .tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-439 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#673ab7;border-width:5px 5px 5px 0}.factory-bootstrap-439 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#673ab7;border-width:5px 0 5px 5px}.factory-bootstrap-439 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-439 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-439 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-439 .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-439 .popover.top{margin-top:-10px}.factory-bootstrap-439 .popover.right{margin-left:10px}.factory-bootstrap-439 .popover.bottom{margin-top:10px}.factory-bootstrap-439 .popover.left{margin-left:-10px}.factory-bootstrap-439 .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-439 .popover-content{padding:9px 14px}.factory-bootstrap-439 .popover .arrow,.factory-bootstrap-439 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-439 .popover .arrow{border-width:11px}.factory-bootstrap-439 .popover .arrow:after{border-width:10px;content:""}.factory-bootstrap-439 .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-439 .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.factory-bootstrap-439 .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-439 .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.factory-bootstrap-439 .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-439 .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.factory-bootstrap-439 .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-439 .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.factory-bootstrap-439 .carousel{position:relative}.factory-bootstrap-439 .carousel-inner{position:relative;width:100%;overflow:hidden}.factory-bootstrap-439 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.factory-bootstrap-439 .carousel-inner>.item>a>img,.factory-bootstrap-439 .carousel-inner>.item>img{display:block;height:auto;max-width:100%;line-height:1}.factory-bootstrap-439 .carousel-inner>.active,.factory-bootstrap-439 .carousel-inner>.next,.factory-bootstrap-439 .carousel-inner>.prev{display:block}.factory-bootstrap-439 .carousel-inner>.active{left:0}.factory-bootstrap-439 .carousel-inner>.next,.factory-bootstrap-439 .carousel-inner>.prev{position:absolute;top:0;width:100%}.factory-bootstrap-439 .carousel-inner>.next{left:100%}.factory-bootstrap-439 .carousel-inner>.prev{left:-100%}.factory-bootstrap-439 .carousel-inner>.next.left,.factory-bootstrap-439 .carousel-inner>.prev.right{left:0}.factory-bootstrap-439 .carousel-inner>.active.left{left:-100%}.factory-bootstrap-439 .carousel-inner>.active.right{left:100%}.factory-bootstrap-439 .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-439 .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-439 .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-439 .carousel-control:focus,.factory-bootstrap-439 .carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-439 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-439 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-439 .carousel-control .icon-next,.factory-bootstrap-439 .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.factory-bootstrap-439 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-439 .carousel-control .icon-prev{left:50%}.factory-bootstrap-439 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-439 .carousel-control .icon-next{right:50%}.factory-bootstrap-439 .carousel-control .icon-next,.factory-bootstrap-439 .carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.factory-bootstrap-439 .carousel-control .icon-prev:before{content:'\2039'}.factory-bootstrap-439 .carousel-control .icon-next:before{content:'\203a'}.factory-bootstrap-439 .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-439 .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-439 .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.factory-bootstrap-439 .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-439 .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-439 .clearfix:after,.factory-bootstrap-439 .clearfix:before{display:table;content:" "}.factory-bootstrap-439 .clearfix:after{clear:both}.factory-bootstrap-439 .center-block{display:block;margin-right:auto;margin-left:auto}.factory-bootstrap-439 .pull-right{float:right!important}.factory-bootstrap-439 .pull-left{float:left!important}.factory-bootstrap-439 .hide{display:none!important}.factory-bootstrap-439 .show{display:block!important}.factory-bootstrap-439 .invisible{visibility:hidden}.factory-bootstrap-439 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.factory-bootstrap-439 .hidden{display:none!important;visibility:hidden!important}.factory-bootstrap-439 .affix{position:fixed}@-ms-viewport{width:device-width}.factory-bootstrap-439 .visible-lg,.factory-bootstrap-439 .visible-md,.factory-bootstrap-439 .visible-sm,.factory-bootstrap-439 .visible-xs,.factory-bootstrap-439 td.visible-lg,.factory-bootstrap-439 td.visible-md,.factory-bootstrap-439 td.visible-sm,.factory-bootstrap-439 td.visible-xs,.factory-bootstrap-439 th.visible-lg,.factory-bootstrap-439 th.visible-md,.factory-bootstrap-439 th.visible-sm,.factory-bootstrap-439 th.visible-xs,.factory-bootstrap-439 tr.visible-lg,.factory-bootstrap-439 tr.visible-md,.factory-bootstrap-439 tr.visible-sm,.factory-bootstrap-439 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-439 .hidden-xs{display:block!important}.factory-bootstrap-439 table.hidden-xs{display:table}.factory-bootstrap-439 tr.hidden-xs{display:table-row!important}.factory-bootstrap-439 td.hidden-xs,.factory-bootstrap-439 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-439 .hidden-sm{display:block!important}.factory-bootstrap-439 table.hidden-sm{display:table}.factory-bootstrap-439 tr.hidden-sm{display:table-row!important}.factory-bootstrap-439 td.hidden-sm,.factory-bootstrap-439 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-439 .hidden-md{display:block!important}.factory-bootstrap-439 table.hidden-md{display:table}.factory-bootstrap-439 tr.hidden-md{display:table-row!important}.factory-bootstrap-439 td.hidden-md,.factory-bootstrap-439 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-439 .hidden-lg{display:block!important}.factory-bootstrap-439 table.hidden-lg{display:table}.factory-bootstrap-439 tr.hidden-lg{display:table-row!important}.factory-bootstrap-439 td.hidden-lg,.factory-bootstrap-439 th.hidden-lg{display:table-cell!important}@media (max-width:767px){.factory-bootstrap-439 .hidden-lg.hidden-xs,.factory-bootstrap-439 td.hidden-lg.hidden-xs,.factory-bootstrap-439 th.hidden-lg.hidden-xs,.factory-bootstrap-439 tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.factory-bootstrap-439 .hidden-lg.hidden-sm,.factory-bootstrap-439 td.hidden-lg.hidden-sm,.factory-bootstrap-439 th.hidden-lg.hidden-sm,.factory-bootstrap-439 tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.factory-bootstrap-439 .hidden-lg.hidden-md,.factory-bootstrap-439 td.hidden-lg.hidden-md,.factory-bootstrap-439 th.hidden-lg.hidden-md,.factory-bootstrap-439 tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.factory-bootstrap-439 .hidden-lg,.factory-bootstrap-439 td.hidden-lg,.factory-bootstrap-439 th.hidden-lg,.factory-bootstrap-439 tr.hidden-lg{display:none!important}}.factory-bootstrap-439 .visible-print,.factory-bootstrap-439 td.visible-print,.factory-bootstrap-439 th.visible-print,.factory-bootstrap-439 tr.visible-print{display:none!important}@media print{.factory-bootstrap-439 .visible-print{display:block!important}.factory-bootstrap-439 table.visible-print{display:table}.factory-bootstrap-439 tr.visible-print{display:table-row!important}.factory-bootstrap-439 td.visible-print,.factory-bootstrap-439 th.visible-print{display:table-cell!important}.factory-bootstrap-439 .hidden-print,.factory-bootstrap-439 td.hidden-print,.factory-bootstrap-439 th.hidden-print,.factory-bootstrap-439 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-439 .btn-danger,.factory-bootstrap-439 .btn-default,.factory-bootstrap-439 .btn-info,.factory-bootstrap-439 .btn-primary,.factory-bootstrap-439 .btn-success,.factory-bootstrap-439 .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-439 .btn-danger.active,.factory-bootstrap-439 .btn-danger:active,.factory-bootstrap-439 .btn-default.active,.factory-bootstrap-439 .btn-default:active,.factory-bootstrap-439 .btn-info.active,.factory-bootstrap-439 .btn-info:active,.factory-bootstrap-439 .btn-primary.active,.factory-bootstrap-439 .btn-primary:active,.factory-bootstrap-439 .btn-success.active,.factory-bootstrap-439 .btn-success:active,.factory-bootstrap-439 .btn-warning.active,.factory-bootstrap-439 .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-439 .btn.active,.factory-bootstrap-439 .btn:active{background-image:none}.factory-bootstrap-439 .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-439 .btn-default.active,.factory-bootstrap-439 .btn-default:active{background-color:#fff;border-color:#dbdbdb}.factory-bootstrap-439 .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-439 .btn-gold:focus,.factory-bootstrap-439 .btn-gold:hover{background:#fef0a1}.factory-bootstrap-439 .btn-gold.active,.factory-bootstrap-439 .btn-gold:active{background:#fef0a1;-webkit-box-shadow:inset 0 3px 8px 0 #f8ba36;box-shadow:inset 0 3px 8px 0 #f8ba36}.factory-bootstrap-439 .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-439 .btn-primary:focus,.factory-bootstrap-439 .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-439 .btn-primary.active,.factory-bootstrap-439 .btn-primary:active{background-color:#2d6ca2;border-color:#2b669a}.factory-bootstrap-439 .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-439 .btn-success:focus,.factory-bootstrap-439 .btn-success:hover{background-color:#419641;background-position:0 -15px}.factory-bootstrap-439 .btn-success.active,.factory-bootstrap-439 .btn-success:active{background-color:#419641;border-color:#3e8f3e}.factory-bootstrap-439 .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-439 .btn-warning:focus,.factory-bootstrap-439 .btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.factory-bootstrap-439 .btn-warning.active,.factory-bootstrap-439 .btn-warning:active{background-color:#eb9316;border-color:#e38d13}.factory-bootstrap-439 .btn-danger{color:#fff;background:#d9534f;border-color:#d43f3a}.factory-bootstrap-439 .btn-danger.active,.factory-bootstrap-439 .btn-danger:active,.factory-bootstrap-439 .btn-danger:focus,.factory-bootstrap-439 .btn-danger:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.factory-bootstrap-439 .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-439 .btn-info:focus,.factory-bootstrap-439 .btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.factory-bootstrap-439 .btn-info.active,.factory-bootstrap-439 .btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.factory-bootstrap-439 .img-thumbnail,.factory-bootstrap-439 .thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-439 .dropdown-menu>li>a:focus,.factory-bootstrap-439 .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-439 .dropdown-menu>.active>a,.factory-bootstrap-439 .dropdown-menu>.active>a:focus,.factory-bootstrap-439 .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-439 .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-439 .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-439 .navbar-brand,.factory-bootstrap-439 .navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.factory-bootstrap-439 .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-439 .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-439 .navbar-inverse .navbar-brand,.factory-bootstrap-439 .navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-439 .navbar-fixed-bottom,.factory-bootstrap-439 .navbar-fixed-top,.factory-bootstrap-439 .navbar-static-top{border-radius:0}.factory-bootstrap-439 .alert{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-439 .alert .actions{padding-top:10px}.factory-bootstrap-439 .alert-success{color:#3c763d;background-color:#dff0d8;border-bottom:2px solid #c8e5bc}.factory-bootstrap-439 .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-439 .alert{text-shadow:none;box-shadow:none;margin:0;margin-top:10px;margin-bottom:10px;padding:10px}.factory-bootstrap-439 .alert-normal,.factory-bootstrap-439 .alert-warning{background:#fcf8e3;color:#8a6d3b;border:1px solid #b8823b}.factory-bootstrap-439 .alert-danger{background:#cf4944;color:#fff;border-bottom:2px solid #b23e3a}.factory-bootstrap-439 .alert-danger a:not(.btn),.factory-bootstrap-439 .alert-error a:not(.btn){color:#fff}.factory-bootstrap-439 .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-439 .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-439 .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-439 .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-439 .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-439 .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-439 .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-439 .list-group-item.active,.factory-bootstrap-439 .list-group-item.active:focus,.factory-bootstrap-439 .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-439 .panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-439 .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-439 .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-439 .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-439 .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-439 .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-439 .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-439 .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-439 .factory-after{margin-left:7px;display:inline-block}.factory-bootstrap-439 .factory-hidden{display:none}.factory-bootstrap-439 .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.datepicker.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
libs/factory/bootstrap/assets/css-min/bootstrap.ectoplasm.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .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-436 .btn-primary:focus,.factory-bootstrap-436 .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-436 .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-436 .btn-primary:disabled,.factory-bootstrap-436 .btn-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.factory-bootstrap-436 .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-436 .pagination>.active>a,.factory-bootstrap-436 .pagination>.active>a:focus,.factory-bootstrap-436 .pagination>.active>a:hover,.factory-bootstrap-436 .pagination>.active>span,.factory-bootstrap-436 .pagination>.active>span:focus,.factory-bootstrap-436 .pagination>.active>span:hover{background-color:#a3b745;border-color:#839237}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .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-439 .btn-primary:focus,.factory-bootstrap-439 .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-439 .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-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.factory-bootstrap-439 .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-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#a3b745;border-color:#839237}
libs/factory/bootstrap/assets/css-min/bootstrap.form-group.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .factory-form-group .factory-legend{padding:9px 12px;background-color:#f9f9f9}.factory-bootstrap-436 .factory-form-group .factory-title{font-weight:700;font-size:14px;line-height:14px;color:#555;margin:0}.factory-bootstrap-436 .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-436 .factory-form-group .factory-hint-icon.factory-hint-icon-green{background:#8bc34a}.factory-bootstrap-436 .factory-form-group .factory-hint-icon.factory-hint-icon-grey{background:#9e9e9e}.factory-bootstrap-436 .factory-form-group .factory-hint-icon.factory-hint-icon-red{background:#E91E63}.factory-bootstrap-436 .factory-form-group .factory-hint{margin:0;font-size:12px;line-height:16px;margin-top:6px}.factory-bootstrap-436 .factory-form-group+.factory-form-group{margin-top:30px}.factory-bootstrap-436 .factory-form-group legend+.control-group{margin-top:0}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-form-group .factory-legend{padding:9px 12px;background-color:#f9f9f9}.factory-bootstrap-439 .factory-form-group .factory-title{font-weight:700;font-size:14px;line-height:14px;color:#555;margin:0}.factory-bootstrap-439 .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-439 .factory-form-group .factory-hint-icon.factory-hint-icon-green{background:#8bc34a}.factory-bootstrap-439 .factory-form-group .factory-hint-icon.factory-hint-icon-grey{background:#9e9e9e}.factory-bootstrap-439 .factory-form-group .factory-hint-icon.factory-hint-icon-red{background:#E91E63}.factory-bootstrap-439 .factory-form-group .factory-hint{margin:0;font-size:12px;line-height:16px;margin-top:6px}.factory-bootstrap-439 .factory-form-group+.factory-form-group{margin-top:30px}.factory-bootstrap-439 .factory-form-group legend+.control-group{margin-top:0}
libs/factory/bootstrap/assets/css-min/bootstrap.light.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .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-436 .btn-primary:focus,.factory-bootstrap-436 .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-436 .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-436 .btn-primary:disabled,.factory-bootstrap-436 .btn-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.factory-bootstrap-436 .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-436 .pagination>.active>a,.factory-bootstrap-436 .pagination>.active>a:focus,.factory-bootstrap-436 .pagination>.active>a:hover,.factory-bootstrap-436 .pagination>.active>span,.factory-bootstrap-436 .pagination>.active>span:focus,.factory-bootstrap-436 .pagination>.active>span:hover{background-color:#04a4cc;border-color:#037c9a}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .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-439 .btn-primary:focus,.factory-bootstrap-439 .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-439 .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-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.factory-bootstrap-439 .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-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#04a4cc;border-color:#037c9a}
libs/factory/bootstrap/assets/css-min/bootstrap.midnight.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .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-436 .btn-primary:focus,.factory-bootstrap-436 .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-436 .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-436 .btn-primary:disabled,.factory-bootstrap-436 .btn-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.factory-bootstrap-436 .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-436 .pagination>.active>a,.factory-bootstrap-436 .pagination>.active>a:focus,.factory-bootstrap-436 .pagination>.active>a:hover,.factory-bootstrap-436 .pagination>.active>span,.factory-bootstrap-436 .pagination>.active>span:focus,.factory-bootstrap-436 .pagination>.active>span:hover{background-color:#e14d43;border-color:#d02a21}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .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-439 .btn-primary:focus,.factory-bootstrap-439 .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-439 .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-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.factory-bootstrap-439 .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-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#e14d43;border-color:#d02a21}
libs/factory/bootstrap/assets/css-min/bootstrap.ocean.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .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-436 .btn-primary:focus,.factory-bootstrap-436 .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-436 .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-436 .btn-primary:disabled,.factory-bootstrap-436 .btn-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.factory-bootstrap-436 .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-436 .pagination>.active>a,.factory-bootstrap-436 .pagination>.active>a:focus,.factory-bootstrap-436 .pagination>.active>a:hover,.factory-bootstrap-436 .pagination>.active>span,.factory-bootstrap-436 .pagination>.active>span:focus,.factory-bootstrap-436 .pagination>.active>span:hover{background-color:#9ebaa0;border-color:#80a583}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .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-439 .btn-primary:focus,.factory-bootstrap-439 .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-439 .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-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.factory-bootstrap-439 .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-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#9ebaa0;border-color:#80a583}
libs/factory/bootstrap/assets/css-min/bootstrap.separator.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .factory-separator{border-bottom:1px solid #f9f9f9;border-top:1px solid #d1d1d1;margin-bottom:25px}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .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
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .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-436 .btn-primary:focus,.factory-bootstrap-436 .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-436 .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-436 .btn-primary:disabled,.factory-bootstrap-436 .btn-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.factory-bootstrap-436 .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-436 .pagination>.active>a,.factory-bootstrap-436 .pagination>.active>a:focus,.factory-bootstrap-436 .pagination>.active>a:hover,.factory-bootstrap-436 .pagination>.active>span,.factory-bootstrap-436 .pagination>.active>span:focus,.factory-bootstrap-436 .pagination>.active>span:hover{background-color:#dd823b;border-color:#c36822}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .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-439 .btn-primary:focus,.factory-bootstrap-439 .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-439 .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-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.factory-bootstrap-439 .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-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#dd823b;border-color:#c36822}
libs/factory/bootstrap/assets/css-min/control.checkbox.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- #side-sortables .factory-bootstrap-436 .factory-buttons-way{float:right;position:relative;top:-25px;left:5px;border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-436 .factory-buttons-way{border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-436 .factory-buttons-way button{padding-left:10px;padding-right:10px}.factory-bootstrap-436 .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-436 .factory-checkbox-tumbler-hint{margin-top:5px}.factory-bootstrap-436 .factory-checkbox-tumbler-hint .factory-tumbler-content{display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-436 .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-436 .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-436 .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-436 .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-436 .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-436 .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-436 .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}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ #side-sortables .factory-bootstrap-439 .factory-buttons-way{float:right;position:relative;top:-25px;left:5px;border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-439 .factory-checkbox-disabled button,.factory-bootstrap-439 .factory-checkbox-disabled input{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-439 .factory-buttons-way{border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-439 .factory-buttons-way button{padding-left:10px;padding-right:10px}.factory-bootstrap-439 .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-439 .factory-checkbox-tumbler-hint{margin-top:5px}.factory-bootstrap-439 .factory-checkbox-tumbler-hint .factory-tumbler-content{display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-439 .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-439 .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-439 .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-439 .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-439 .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-439 .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-439 .factory-buttons-way .factory-on.active{background-color:#dd823b;-webkit-box-shadow:inset 0 1px 2px #c36822;box-shadow:inset 0 1px 2px #c36822;border-top:1px solid #c36822;border-bottom:1px solid #c36822;border-left:1px solid #c36822}
libs/factory/bootstrap/assets/css-min/control.dropdown.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .factory-dropdown.factory-buttons-way .fa{margin-right:6px;position:relative}.factory-bootstrap-436 .factory-dropdown.factory-buttons-way{border:0;border-radius:0}.factory-bootstrap-436 .factory-hints .factory-hint{margin-top:5px;display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-436 .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-436 .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-436 .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-436 .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-436 .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-436 .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-436 .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-436 .factory-dropdown.factory-ddslick-way .dd-select{background-color:#fff!important}.factory-bootstrap-436 .factory-dropdown.factory-ddslick-way label{margin-bottom:1px}.factory-bootstrap-436 .factory-dropdown.factory-ddslick-way .dd-option,.factory-bootstrap-436 .factory-dropdown.factory-ddslick-way .dd-selected{padding:8px 12px 8px 11px!important}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-dropdown.factory-buttons-way .fa{margin-right:6px;position:relative}.factory-bootstrap-439 .factory-dropdown.factory-buttons-way{border:0;border-radius:0}.factory-bootstrap-439 .factory-hints .factory-hint{margin-top:5px;display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-439 .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-439 .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-439 .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-439 .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-439 .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-439 .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-439 .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-439 .factory-dropdown.factory-ddslick-way .dd-select{background-color:#fff!important}.factory-bootstrap-439 .factory-dropdown.factory-ddslick-way label{margin-bottom:1px}.factory-bootstrap-439 .factory-dropdown.factory-ddslick-way .dd-option,.factory-bootstrap-439 .factory-dropdown.factory-ddslick-way .dd-selected{padding:8px 12px 8px 11px!important}
libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .factory-mtextbox-item{position:relative;margin-bottom:5px}.factory-bootstrap-436 .factory-mtextbox-item input,.factory-mtextbox-remove-item{display:inline-block}.factory-bootstrap-436 .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-436 .factory-mtextbox-item .factory-mtextbox-remove-item:focus,.factory-bootstrap-436 .factory-mtextbox-item .factory-mtextbox-remove-item:hover{box-shadow:none;outline:0}.factory-bootstrap-436 .factory-mtextbox-add-item{display:block;margin-top:10px}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-mtextbox-item{position:relative;margin-bottom:5px}.factory-bootstrap-439 .factory-mtextbox-item input,.factory-mtextbox-remove-item{display:inline-block}.factory-bootstrap-439 .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-439 .factory-mtextbox-item .factory-mtextbox-remove-item:focus,.factory-bootstrap-439 .factory-mtextbox-item .factory-mtextbox-remove-item:hover{box-shadow:none;outline:0}.factory-bootstrap-439 .factory-mtextbox-add-item{display:block;margin-top:10px}
libs/factory/bootstrap/assets/css-min/holder.more-link.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-436 .factory-more-link-content{border-top:1px dashed #DDD;padding-top:25px;width:100%;padding-right:20px;position:relative}.factory-bootstrap-436 .factory-tab .factory-more-link-show{display:inline-block;text-decoration:none;border-bottom:1px dotted #21759b;position:relative}.factory-bootstrap-436 .factory-tab .factory-more-link-show:hover{border-color:#d54e21}.factory-bootstrap-436 .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-436 .factory-tab .factory-more-link-hide:hover{color:#999}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-more-link-content{border-top:1px dashed #DDD;padding-top:25px;width:100%;padding-right:20px;position:relative}.factory-bootstrap-439 .factory-tab .factory-more-link-show{display:inline-block;text-decoration:none;border-bottom:1px dotted #21759b;position:relative}.factory-bootstrap-439 .factory-tab .factory-more-link-show:hover{border-color:#d54e21}.factory-bootstrap-439 .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-439 .factory-tab .factory-more-link-hide:hover{color:#999}
libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -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.factoryBootstrap436_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.factoryBootstrap436_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);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
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.factoryBootstrap439_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.factoryBootstrap439_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.tooltip.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
libs/factory/bootstrap/assets/js-min/control.checkbox.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -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.factoryBootstrap436_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.factoryBootstrap436_checkboxControl.Constructor=b,a(function(){a(".factory-bootstrap-436 .factory-checkbox.factory-buttons-way").factoryBootstrap436_checkboxControl()})}(jQuery);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
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.factoryBootstrap439_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.factoryBootstrap439_checkboxControl.Constructor=b,a(function(){a(".factory-bootstrap-439 .factory-checkbox.factory-buttons-way").factoryBootstrap439_checkboxControl()})}(jQuery);
libs/factory/bootstrap/assets/js-min/control.dropdown.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -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.factoryBootstrap436_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.factoryBootstrap436_dropdownControl.Constructor=b,a(function(){a(".factory-bootstrap-436 .factory-dropdown").factoryBootstrap436_dropdownControl()})}(jQuery);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
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.factoryBootstrap439_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.factoryBootstrap439_dropdownControl.Constructor=b,a(function(){a(".factory-bootstrap-439 .factory-dropdown").factoryBootstrap439_dropdownControl()})}(jQuery);
libs/factory/bootstrap/assets/js-min/control.list.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -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.factoryBootstrap436_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.factoryBootstrap436_listControl.Constructor=b,a(function(){a(".factory-bootstrap-436 .factory-list").factoryBootstrap436_listControl()})}(jQuery);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
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.factoryBootstrap439_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.factoryBootstrap439_listControl.Constructor=b,a(function(){a(".factory-bootstrap-439 .factory-list").factoryBootstrap439_listControl()})}(jQuery);
libs/factory/bootstrap/assets/js-min/control.multiple-textbox.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -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.factoryBootstrap436_MultipleTextboxControl=function(){return this.each(function(){new b(this)})},a(function(){a(".factory-bootstrap-436 .factory-multiple-textbox-group").factoryBootstrap436_MultipleTextboxControl()})}(jQuery);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
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.factoryBootstrap439_MultipleTextboxControl=function(){return this.each(function(){new b(this)})},a(function(){a(".factory-bootstrap-439 .factory-multiple-textbox-group").factoryBootstrap439_MultipleTextboxControl()})}(jQuery);
libs/factory/bootstrap/boot.php CHANGED
@@ -19,27 +19,27 @@ if( !is_admin() ) {
19
  return;
20
  }
21
 
22
- if( defined('FACTORY_BOOTSTRAP_436_LOADED') ) {
23
  return;
24
  }
25
 
26
- define('FACTORY_BOOTSTRAP_436_VERSION', '4.3.6');
27
- define('FACTORY_BOOTSTRAP_436_LOADED', true);
28
 
29
  if( !defined('FACTORY_FLAT_ADMIN') ) {
30
  define('FACTORY_FLAT_ADMIN', true);
31
  }
32
 
33
- define('FACTORY_BOOTSTRAP_436_DIR', dirname(__FILE__));
34
- define('FACTORY_BOOTSTRAP_436_URL', plugins_url(null, __FILE__));
35
 
36
- require_once(FACTORY_BOOTSTRAP_436_DIR . '/includes/functions.php');
37
 
38
  /**
39
- * @param Wbcr_Factory436_Plugin $plugin
40
  */
41
- add_action('wbcr_factory_bootstrap_436_plugin_created', function ($plugin) {
42
- $manager = new Wbcr_FactoryBootstrap436_Manager($plugin);
43
  $plugin->setBootstap($manager);
44
  });
45
 
19
  return;
20
  }
21
 
22
+ if( defined('FACTORY_BOOTSTRAP_439_LOADED') ) {
23
  return;
24
  }
25
 
26
+ define('FACTORY_BOOTSTRAP_439_VERSION', '4.3.9');
27
+ define('FACTORY_BOOTSTRAP_439_LOADED', true);
28
 
29
  if( !defined('FACTORY_FLAT_ADMIN') ) {
30
  define('FACTORY_FLAT_ADMIN', true);
31
  }
32
 
33
+ define('FACTORY_BOOTSTRAP_439_DIR', dirname(__FILE__));
34
+ define('FACTORY_BOOTSTRAP_439_URL', plugins_url(null, __FILE__));
35
 
36
+ require_once(FACTORY_BOOTSTRAP_439_DIR . '/includes/functions.php');
37
 
38
  /**
39
+ * @param Wbcr_Factory439_Plugin $plugin
40
  */
41
+ add_action('wbcr_factory_bootstrap_439_plugin_created', function ($plugin) {
42
+ $manager = new Wbcr_FactoryBootstrap439_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 Wbcr_FactoryBootstrap436_Manager {
24
 
25
  /**
26
  * A plugin for which the manager was created.
27
  *
28
  * @since 3.2.0
29
- * @var Wbcr_Factory436_Plugin
30
  */
31
  public $plugin;
32
 
@@ -51,7 +51,7 @@ class Wbcr_FactoryBootstrap436_Manager {
51
  *
52
  * @since 1.0.0
53
  */
54
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
55
  $this->plugin = $plugin;
56
 
57
  add_action( 'admin_enqueue_scripts', [ $this, 'loadAssets' ] );
@@ -111,8 +111,8 @@ class Wbcr_FactoryBootstrap436_Manager {
111
  */
112
  public function loadAssets( $hook ) {
113
 
114
- do_action( 'wbcr_factory_436_bootstrap_enqueue_scripts', $hook );
115
- do_action( 'wbcr_factory_436_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), $hook );
116
 
117
  $dependencies = [];
118
  if ( ! empty( $this->scripts ) ) {
@@ -156,8 +156,8 @@ class Wbcr_FactoryBootstrap436_Manager {
156
  $cache_enable = apply_filters( 'wbcr/factory/bootstrap/cache_enable', true );
157
 
158
  $cache_id = md5( implode( ',', $this->scripts ) . $type . $this->plugin->getPluginVersion() );
159
- $cache_dir_path = FACTORY_BOOTSTRAP_436_DIR . '/assets/cache/';
160
- $cache_dir_url = FACTORY_BOOTSTRAP_436_URL . '/assets/cache/';
161
 
162
  $cache_filepath = $cache_dir_path . $cache_id . ".min." . $type;
163
  $cache_fileurl = $cache_dir_url . $cache_id . ".min." . $type;
@@ -184,7 +184,7 @@ class Wbcr_FactoryBootstrap436_Manager {
184
  foreach ( $scripts as $script_to_load ) {
185
  $script_to_load = sanitize_text_field( $script_to_load );
186
  if ( $cache_enable && $cache_dir_exists ) {
187
- $fname = FACTORY_BOOTSTRAP_436_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,9 +192,9 @@ class Wbcr_FactoryBootstrap436_Manager {
192
  }
193
  } else {
194
  if ( $type == 'js' ) {
195
- wp_enqueue_script( md5( $script_to_load ), FACTORY_BOOTSTRAP_436_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_436_URL . "/assets/$type-min/$script_to_load.min." . $type, [], $this->plugin->getPluginVersion() );
198
  }
199
  $is_first = false;
200
  }
20
  *
21
  * @since 3.2.0
22
  */
23
+ class Wbcr_FactoryBootstrap439_Manager {
24
 
25
  /**
26
  * A plugin for which the manager was created.
27
  *
28
  * @since 3.2.0
29
+ * @var Wbcr_Factory439_Plugin
30
  */
31
  public $plugin;
32
 
51
  *
52
  * @since 1.0.0
53
  */
54
+ public function __construct( Wbcr_Factory439_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_439_bootstrap_enqueue_scripts', $hook );
115
+ do_action( 'wbcr_factory_439_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), $hook );
116
 
117
  $dependencies = [];
118
  if ( ! empty( $this->scripts ) ) {
156
  $cache_enable = apply_filters( 'wbcr/factory/bootstrap/cache_enable', true );
157
 
158
  $cache_id = md5( implode( ',', $this->scripts ) . $type . $this->plugin->getPluginVersion() );
159
+ $cache_dir_path = FACTORY_BOOTSTRAP_439_DIR . '/assets/cache/';
160
+ $cache_dir_url = FACTORY_BOOTSTRAP_439_URL . '/assets/cache/';
161
 
162
  $cache_filepath = $cache_dir_path . $cache_id . ".min." . $type;
163
  $cache_fileurl = $cache_dir_url . $cache_id . ".min." . $type;
184
  foreach ( $scripts as $script_to_load ) {
185
  $script_to_load = sanitize_text_field( $script_to_load );
186
  if ( $cache_enable && $cache_dir_exists ) {
187
+ $fname = FACTORY_BOOTSTRAP_439_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_439_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_439_URL . "/assets/$type-min/$script_to_load.min." . $type, [], $this->plugin->getPluginVersion() );
198
  }
199
  $is_first = false;
200
  }
libs/factory/bootstrap/package-lock.json ADDED
@@ -0,0 +1,1810 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "bootstrap-generator",
3
+ "version": "1.0.1",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "abbrev": {
8
+ "version": "1.1.1",
9
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
10
+ "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg="
11
+ },
12
+ "amdefine": {
13
+ "version": "1.0.1",
14
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
15
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
16
+ "dev": true
17
+ },
18
+ "argparse": {
19
+ "version": "0.1.16",
20
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
21
+ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
22
+ "dev": true,
23
+ "requires": {
24
+ "underscore": "~1.7.0",
25
+ "underscore.string": "~2.4.0"
26
+ },
27
+ "dependencies": {
28
+ "underscore.string": {
29
+ "version": "2.4.0",
30
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
31
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
32
+ "dev": true
33
+ }
34
+ }
35
+ },
36
+ "arr-diff": {
37
+ "version": "4.0.0",
38
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
39
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
40
+ },
41
+ "arr-flatten": {
42
+ "version": "1.1.0",
43
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
44
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
45
+ },
46
+ "arr-union": {
47
+ "version": "3.1.0",
48
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
49
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
50
+ },
51
+ "array-each": {
52
+ "version": "1.0.1",
53
+ "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
54
+ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
55
+ },
56
+ "array-slice": {
57
+ "version": "1.1.0",
58
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
59
+ "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w=="
60
+ },
61
+ "array-unique": {
62
+ "version": "0.3.2",
63
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
64
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
65
+ },
66
+ "assign-symbols": {
67
+ "version": "1.0.0",
68
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
69
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
70
+ },
71
+ "async": {
72
+ "version": "0.1.22",
73
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
74
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
75
+ "dev": true
76
+ },
77
+ "atob": {
78
+ "version": "2.1.2",
79
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
80
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
81
+ },
82
+ "base": {
83
+ "version": "0.11.2",
84
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
85
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
86
+ "requires": {
87
+ "cache-base": "^1.0.1",
88
+ "class-utils": "^0.3.5",
89
+ "component-emitter": "^1.2.1",
90
+ "define-property": "^1.0.0",
91
+ "isobject": "^3.0.1",
92
+ "mixin-deep": "^1.2.0",
93
+ "pascalcase": "^0.1.1"
94
+ },
95
+ "dependencies": {
96
+ "define-property": {
97
+ "version": "1.0.0",
98
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
99
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
100
+ "requires": {
101
+ "is-descriptor": "^1.0.0"
102
+ }
103
+ },
104
+ "is-accessor-descriptor": {
105
+ "version": "1.0.0",
106
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
107
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
108
+ "requires": {
109
+ "kind-of": "^6.0.0"
110
+ }
111
+ },
112
+ "is-data-descriptor": {
113
+ "version": "1.0.0",
114
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
115
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
116
+ "requires": {
117
+ "kind-of": "^6.0.0"
118
+ }
119
+ },
120
+ "is-descriptor": {
121
+ "version": "1.0.2",
122
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
123
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
124
+ "requires": {
125
+ "is-accessor-descriptor": "^1.0.0",
126
+ "is-data-descriptor": "^1.0.0",
127
+ "kind-of": "^6.0.2"
128
+ }
129
+ }
130
+ }
131
+ },
132
+ "braces": {
133
+ "version": "2.3.2",
134
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
135
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
136
+ "requires": {
137
+ "arr-flatten": "^1.1.0",
138
+ "array-unique": "^0.3.2",
139
+ "extend-shallow": "^2.0.1",
140
+ "fill-range": "^4.0.0",
141
+ "isobject": "^3.0.1",
142
+ "repeat-element": "^1.1.2",
143
+ "snapdragon": "^0.8.1",
144
+ "snapdragon-node": "^2.0.1",
145
+ "split-string": "^3.0.2",
146
+ "to-regex": "^3.0.1"
147
+ },
148
+ "dependencies": {
149
+ "extend-shallow": {
150
+ "version": "2.0.1",
151
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
152
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
153
+ "requires": {
154
+ "is-extendable": "^0.1.0"
155
+ }
156
+ }
157
+ }
158
+ },
159
+ "cache-base": {
160
+ "version": "1.0.1",
161
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
162
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
163
+ "requires": {
164
+ "collection-visit": "^1.0.0",
165
+ "component-emitter": "^1.2.1",
166
+ "get-value": "^2.0.6",
167
+ "has-value": "^1.0.0",
168
+ "isobject": "^3.0.1",
169
+ "set-value": "^2.0.0",
170
+ "to-object-path": "^0.3.0",
171
+ "union-value": "^1.0.0",
172
+ "unset-value": "^1.0.0"
173
+ }
174
+ },
175
+ "camelcase": {
176
+ "version": "1.2.1",
177
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
178
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
179
+ "dev": true
180
+ },
181
+ "class-utils": {
182
+ "version": "0.3.6",
183
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
184
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
185
+ "requires": {
186
+ "arr-union": "^3.1.0",
187
+ "define-property": "^0.2.5",
188
+ "isobject": "^3.0.0",
189
+ "static-extend": "^0.1.1"
190
+ },
191
+ "dependencies": {
192
+ "define-property": {
193
+ "version": "0.2.5",
194
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
195
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
196
+ "requires": {
197
+ "is-descriptor": "^0.1.0"
198
+ }
199
+ }
200
+ }
201
+ },
202
+ "clean-css": {
203
+ "version": "2.0.8",
204
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-2.0.8.tgz",
205
+ "integrity": "sha1-6TfN/cxXgaAIF67EB56Fs+wVeiA=",
206
+ "dev": true,
207
+ "requires": {
208
+ "commander": "2.0.x"
209
+ }
210
+ },
211
+ "cli": {
212
+ "version": "0.4.5",
213
+ "resolved": "https://registry.npmjs.org/cli/-/cli-0.4.5.tgz",
214
+ "integrity": "sha1-ePlIXNFhtWbppsctcXDEJw6B22E=",
215
+ "dev": true,
216
+ "requires": {
217
+ "glob": ">= 3.1.4"
218
+ }
219
+ },
220
+ "coffee-script": {
221
+ "version": "1.3.3",
222
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
223
+ "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
224
+ "dev": true
225
+ },
226
+ "collection-visit": {
227
+ "version": "1.0.0",
228
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
229
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
230
+ "requires": {
231
+ "map-visit": "^1.0.0",
232
+ "object-visit": "^1.0.0"
233
+ }
234
+ },
235
+ "colors": {
236
+ "version": "0.6.2",
237
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
238
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
239
+ "dev": true
240
+ },
241
+ "commander": {
242
+ "version": "2.0.0",
243
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz",
244
+ "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=",
245
+ "dev": true
246
+ },
247
+ "component-emitter": {
248
+ "version": "1.3.0",
249
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
250
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
251
+ },
252
+ "console-browserify": {
253
+ "version": "0.1.6",
254
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-0.1.6.tgz",
255
+ "integrity": "sha1-0SijwLuINQ61YmxufHGm8P1ImDw=",
256
+ "dev": true
257
+ },
258
+ "copy-descriptor": {
259
+ "version": "0.1.1",
260
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
261
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
262
+ },
263
+ "dateformat": {
264
+ "version": "1.0.2-1.2.3",
265
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
266
+ "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
267
+ "dev": true
268
+ },
269
+ "debug": {
270
+ "version": "2.6.9",
271
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
272
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
273
+ "requires": {
274
+ "ms": "2.0.0"
275
+ }
276
+ },
277
+ "decamelize": {
278
+ "version": "1.2.0",
279
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
280
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
281
+ "dev": true
282
+ },
283
+ "decode-uri-component": {
284
+ "version": "0.2.0",
285
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
286
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
287
+ },
288
+ "define-property": {
289
+ "version": "2.0.2",
290
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
291
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
292
+ "requires": {
293
+ "is-descriptor": "^1.0.2",
294
+ "isobject": "^3.0.1"
295
+ },
296
+ "dependencies": {
297
+ "is-accessor-descriptor": {
298
+ "version": "1.0.0",
299
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
300
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
301
+ "requires": {
302
+ "kind-of": "^6.0.0"
303
+ }
304
+ },
305
+ "is-data-descriptor": {
306
+ "version": "1.0.0",
307
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
308
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
309
+ "requires": {
310
+ "kind-of": "^6.0.0"
311
+ }
312
+ },
313
+ "is-descriptor": {
314
+ "version": "1.0.2",
315
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
316
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
317
+ "requires": {
318
+ "is-accessor-descriptor": "^1.0.0",
319
+ "is-data-descriptor": "^1.0.0",
320
+ "kind-of": "^6.0.2"
321
+ }
322
+ }
323
+ }
324
+ },
325
+ "detect-file": {
326
+ "version": "1.0.0",
327
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
328
+ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc="
329
+ },
330
+ "esprima": {
331
+ "version": "1.0.4",
332
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
333
+ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
334
+ "dev": true
335
+ },
336
+ "eventemitter2": {
337
+ "version": "0.4.14",
338
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
339
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
340
+ "dev": true
341
+ },
342
+ "exit": {
343
+ "version": "0.1.2",
344
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
345
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
346
+ "dev": true
347
+ },
348
+ "expand-brackets": {
349
+ "version": "2.1.4",
350
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
351
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
352
+ "requires": {
353
+ "debug": "^2.3.3",
354
+ "define-property": "^0.2.5",
355
+ "extend-shallow": "^2.0.1",
356
+ "posix-character-classes": "^0.1.0",
357
+ "regex-not": "^1.0.0",
358
+ "snapdragon": "^0.8.1",
359
+ "to-regex": "^3.0.1"
360
+ },
361
+ "dependencies": {
362
+ "define-property": {
363
+ "version": "0.2.5",
364
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
365
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
366
+ "requires": {
367
+ "is-descriptor": "^0.1.0"
368
+ }
369
+ },
370
+ "extend-shallow": {
371
+ "version": "2.0.1",
372
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
373
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
374
+ "requires": {
375
+ "is-extendable": "^0.1.0"
376
+ }
377
+ }
378
+ }
379
+ },
380
+ "expand-tilde": {
381
+ "version": "2.0.2",
382
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
383
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
384
+ "requires": {
385
+ "homedir-polyfill": "^1.0.1"
386
+ }
387
+ },
388
+ "extend": {
389
+ "version": "3.0.2",
390
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
391
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
392
+ },
393
+ "extend-shallow": {
394
+ "version": "3.0.2",
395
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
396
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
397
+ "requires": {
398
+ "assign-symbols": "^1.0.0",
399
+ "is-extendable": "^1.0.1"
400
+ },
401
+ "dependencies": {
402
+ "is-extendable": {
403
+ "version": "1.0.1",
404
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
405
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
406
+ "requires": {
407
+ "is-plain-object": "^2.0.4"
408
+ }
409
+ }
410
+ }
411
+ },
412
+ "extglob": {
413
+ "version": "2.0.4",
414
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
415
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
416
+ "requires": {
417
+ "array-unique": "^0.3.2",
418
+ "define-property": "^1.0.0",
419
+ "expand-brackets": "^2.1.4",
420
+ "extend-shallow": "^2.0.1",
421
+ "fragment-cache": "^0.2.1",
422
+ "regex-not": "^1.0.0",
423
+ "snapdragon": "^0.8.1",
424
+ "to-regex": "^3.0.1"
425
+ },
426
+ "dependencies": {
427
+ "define-property": {
428
+ "version": "1.0.0",
429
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
430
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
431
+ "requires": {
432
+ "is-descriptor": "^1.0.0"
433
+ }
434
+ },
435
+ "extend-shallow": {
436
+ "version": "2.0.1",
437
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
438
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
439
+ "requires": {
440
+ "is-extendable": "^0.1.0"
441
+ }
442
+ },
443
+ "is-accessor-descriptor": {
444
+ "version": "1.0.0",
445
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
446
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
447
+ "requires": {
448
+ "kind-of": "^6.0.0"
449
+ }
450
+ },
451
+ "is-data-descriptor": {
452
+ "version": "1.0.0",
453
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
454
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
455
+ "requires": {
456
+ "kind-of": "^6.0.0"
457
+ }
458
+ },
459
+ "is-descriptor": {
460
+ "version": "1.0.2",
461
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
462
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
463
+ "requires": {
464
+ "is-accessor-descriptor": "^1.0.0",
465
+ "is-data-descriptor": "^1.0.0",
466
+ "kind-of": "^6.0.2"
467
+ }
468
+ }
469
+ }
470
+ },
471
+ "fill-range": {
472
+ "version": "4.0.0",
473
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
474
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
475
+ "requires": {
476
+ "extend-shallow": "^2.0.1",
477
+ "is-number": "^3.0.0",
478
+ "repeat-string": "^1.6.1",
479
+ "to-regex-range": "^2.1.0"
480
+ },
481
+ "dependencies": {
482
+ "extend-shallow": {
483
+ "version": "2.0.1",
484
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
485
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
486
+ "requires": {
487
+ "is-extendable": "^0.1.0"
488
+ }
489
+ }
490
+ }
491
+ },
492
+ "findup-sync": {
493
+ "version": "0.1.3",
494
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
495
+ "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
496
+ "dev": true,
497
+ "requires": {
498
+ "glob": "~3.2.9",
499
+ "lodash": "~2.4.1"
500
+ },
501
+ "dependencies": {
502
+ "glob": {
503
+ "version": "3.2.11",
504
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
505
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
506
+ "dev": true,
507
+ "requires": {
508
+ "inherits": "2",
509
+ "minimatch": "0.3"
510
+ }
511
+ },
512
+ "lodash": {
513
+ "version": "2.4.2",
514
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
515
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
516
+ "dev": true
517
+ },
518
+ "minimatch": {
519
+ "version": "0.3.0",
520
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
521
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
522
+ "dev": true,
523
+ "requires": {
524
+ "lru-cache": "2",
525
+ "sigmund": "~1.0.0"
526
+ }
527
+ }
528
+ }
529
+ },
530
+ "fined": {
531
+ "version": "1.2.0",
532
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
533
+ "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
534
+ "requires": {
535
+ "expand-tilde": "^2.0.2",
536
+ "is-plain-object": "^2.0.3",
537
+ "object.defaults": "^1.1.0",
538
+ "object.pick": "^1.2.0",
539
+ "parse-filepath": "^1.0.1"
540
+ }
541
+ },
542
+ "flagged-respawn": {
543
+ "version": "1.0.1",
544
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
545
+ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q=="
546
+ },
547
+ "for-in": {
548
+ "version": "1.0.2",
549
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
550
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
551
+ },
552
+ "for-own": {
553
+ "version": "1.0.0",
554
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
555
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
556
+ "requires": {
557
+ "for-in": "^1.0.1"
558
+ }
559
+ },
560
+ "fragment-cache": {
561
+ "version": "0.2.1",
562
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
563
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
564
+ "requires": {
565
+ "map-cache": "^0.2.2"
566
+ }
567
+ },
568
+ "function-bind": {
569
+ "version": "1.1.1",
570
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
571
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
572
+ },
573
+ "get-value": {
574
+ "version": "2.0.6",
575
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
576
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
577
+ },
578
+ "getobject": {
579
+ "version": "0.1.0",
580
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
581
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
582
+ "dev": true
583
+ },
584
+ "glob": {
585
+ "version": "3.1.21",
586
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
587
+ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
588
+ "dev": true,
589
+ "requires": {
590
+ "graceful-fs": "~1.2.0",
591
+ "inherits": "1",
592
+ "minimatch": "~0.2.11"
593
+ },
594
+ "dependencies": {
595
+ "inherits": {
596
+ "version": "1.0.2",
597
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
598
+ "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
599
+ "dev": true
600
+ }
601
+ }
602
+ },
603
+ "global-modules": {
604
+ "version": "1.0.0",
605
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
606
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
607
+ "requires": {
608
+ "global-prefix": "^1.0.1",
609
+ "is-windows": "^1.0.1",
610
+ "resolve-dir": "^1.0.0"
611
+ }
612
+ },
613
+ "global-prefix": {
614
+ "version": "1.0.2",
615
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
616
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
617
+ "requires": {
618
+ "expand-tilde": "^2.0.2",
619
+ "homedir-polyfill": "^1.0.1",
620
+ "ini": "^1.3.4",
621
+ "is-windows": "^1.0.1",
622
+ "which": "^1.2.14"
623
+ },
624
+ "dependencies": {
625
+ "which": {
626
+ "version": "1.3.1",
627
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
628
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
629
+ "requires": {
630
+ "isexe": "^2.0.0"
631
+ }
632
+ }
633
+ }
634
+ },
635
+ "graceful-fs": {
636
+ "version": "1.2.3",
637
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
638
+ "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
639
+ "dev": true
640
+ },
641
+ "grunt": {
642
+ "version": "0.4.5",
643
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
644
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
645
+ "dev": true,
646
+ "requires": {
647
+ "async": "~0.1.22",
648
+ "coffee-script": "~1.3.3",
649
+ "colors": "~0.6.2",
650
+ "dateformat": "1.0.2-1.2.3",
651
+ "eventemitter2": "~0.4.13",
652
+ "exit": "~0.1.1",
653
+ "findup-sync": "~0.1.2",
654
+ "getobject": "~0.1.0",
655
+ "glob": "~3.1.21",
656
+ "grunt-legacy-log": "~0.1.0",
657
+ "grunt-legacy-util": "~0.2.0",
658
+ "hooker": "~0.2.3",
659
+ "iconv-lite": "~0.2.11",
660
+ "js-yaml": "~2.0.5",
661
+ "lodash": "~0.9.2",
662
+ "minimatch": "~0.2.12",
663
+ "nopt": "~1.0.10",
664
+ "rimraf": "~2.2.8",
665
+ "underscore.string": "~2.2.1",
666
+ "which": "~1.0.5"
667
+ }
668
+ },
669
+ "grunt-cli": {
670
+ "version": "1.3.2",
671
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz",
672
+ "integrity": "sha512-8OHDiZZkcptxVXtMfDxJvmN7MVJNE8L/yIcPb4HB7TlyFD1kDvjHrb62uhySsU14wJx9ORMnTuhRMQ40lH/orQ==",
673
+ "requires": {
674
+ "grunt-known-options": "~1.1.0",
675
+ "interpret": "~1.1.0",
676
+ "liftoff": "~2.5.0",
677
+ "nopt": "~4.0.1",
678
+ "v8flags": "~3.1.1"
679
+ },
680
+ "dependencies": {
681
+ "nopt": {
682
+ "version": "4.0.3",
683
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
684
+ "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
685
+ "requires": {
686
+ "abbrev": "1",
687
+ "osenv": "^0.1.4"
688
+ }
689
+ }
690
+ }
691
+ },
692
+ "grunt-contrib-clean": {
693
+ "version": "0.5.0",
694
+ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.5.0.tgz",
695
+ "integrity": "sha1-9T397ghJsce0Dp67umn0jExgecU=",
696
+ "dev": true,
697
+ "requires": {
698
+ "rimraf": "~2.2.1"
699
+ }
700
+ },
701
+ "grunt-contrib-concat": {
702
+ "version": "0.3.0",
703
+ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.3.0.tgz",
704
+ "integrity": "sha1-SPoNQzbSm2U62CJaa9b4VrRIPjI=",
705
+ "dev": true
706
+ },
707
+ "grunt-contrib-copy": {
708
+ "version": "0.5.0",
709
+ "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-0.5.0.tgz",
710
+ "integrity": "sha1-QQB1rEWlhWuhkbHMclclRQ1KAhU=",
711
+ "dev": true
712
+ },
713
+ "grunt-contrib-cssmin": {
714
+ "version": "0.7.0",
715
+ "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.7.0.tgz",
716
+ "integrity": "sha1-pXNenx0mMUnkn+A1KU5CnYxnC6s=",
717
+ "dev": true,
718
+ "requires": {
719
+ "clean-css": "~2.0.0",
720
+ "grunt-lib-contrib": "~0.6.0"
721
+ }
722
+ },
723
+ "grunt-contrib-jshint": {
724
+ "version": "0.6.5",
725
+ "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.6.5.tgz",
726
+ "integrity": "sha1-OvtGdnRTZMxKGe7nk0wOBgCLVm4=",
727
+ "dev": true,
728
+ "requires": {
729
+ "jshint": "~2.1.10"
730
+ }
731
+ },
732
+ "grunt-contrib-uglify": {
733
+ "version": "0.2.7",
734
+ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.2.7.tgz",
735
+ "integrity": "sha1-5r2lHgxAoUWfbOrUI8Ze/XJaG/c=",
736
+ "dev": true,
737
+ "requires": {
738
+ "grunt-lib-contrib": "~0.6.1",
739
+ "uglify-js": "~2.4.0"
740
+ }
741
+ },
742
+ "grunt-known-options": {
743
+ "version": "1.1.1",
744
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
745
+ "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ=="
746
+ },
747
+ "grunt-legacy-log": {
748
+ "version": "0.1.3",
749
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
750
+ "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
751
+ "dev": true,
752
+ "requires": {
753
+ "colors": "~0.6.2",
754
+ "grunt-legacy-log-utils": "~0.1.1",
755
+ "hooker": "~0.2.3",
756
+ "lodash": "~2.4.1",
757
+ "underscore.string": "~2.3.3"
758
+ },
759
+ "dependencies": {
760
+ "lodash": {
761
+ "version": "2.4.2",
762
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
763
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
764
+ "dev": true
765
+ },
766
+ "underscore.string": {
767
+ "version": "2.3.3",
768
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
769
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
770
+ "dev": true
771
+ }
772
+ }
773
+ },
774
+ "grunt-legacy-log-utils": {
775
+ "version": "0.1.1",
776
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
777
+ "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
778
+ "dev": true,
779
+ "requires": {
780
+ "colors": "~0.6.2",
781
+ "lodash": "~2.4.1",
782
+ "underscore.string": "~2.3.3"
783
+ },
784
+ "dependencies": {
785
+ "lodash": {
786
+ "version": "2.4.2",
787
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
788
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
789
+ "dev": true
790
+ },
791
+ "underscore.string": {
792
+ "version": "2.3.3",
793
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
794
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
795
+ "dev": true
796
+ }
797
+ }
798
+ },
799
+ "grunt-legacy-util": {
800
+ "version": "0.2.0",
801
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
802
+ "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
803
+ "dev": true,
804
+ "requires": {
805
+ "async": "~0.1.22",
806
+ "exit": "~0.1.1",
807
+ "getobject": "~0.1.0",
808
+ "hooker": "~0.2.3",
809
+ "lodash": "~0.9.2",
810
+ "underscore.string": "~2.2.1",
811
+ "which": "~1.0.5"
812
+ }
813
+ },
814
+ "grunt-lib-contrib": {
815
+ "version": "0.6.1",
816
+ "resolved": "https://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.6.1.tgz",
817
+ "integrity": "sha1-P1att9oG6BR5XuJBWw6+X7iQPrs=",
818
+ "dev": true,
819
+ "requires": {
820
+ "zlib-browserify": "0.0.1"
821
+ }
822
+ },
823
+ "grunt-preprocess": {
824
+ "version": "4.2.0",
825
+ "resolved": "https://registry.npmjs.org/grunt-preprocess/-/grunt-preprocess-4.2.0.tgz",
826
+ "integrity": "sha1-SJUTzet1A1NEmn9lbVAXWvc/FfY=",
827
+ "dev": true,
828
+ "requires": {
829
+ "preprocess": "~2.3.1"
830
+ }
831
+ },
832
+ "has": {
833
+ "version": "1.0.3",
834
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
835
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
836
+ "requires": {
837
+ "function-bind": "^1.1.1"
838
+ }
839
+ },
840
+ "has-value": {
841
+ "version": "1.0.0",
842
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
843
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
844
+ "requires": {
845
+ "get-value": "^2.0.6",
846
+ "has-values": "^1.0.0",
847
+ "isobject": "^3.0.0"
848
+ }
849
+ },
850
+ "has-values": {
851
+ "version": "1.0.0",
852
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
853
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
854
+ "requires": {
855
+ "is-number": "^3.0.0",
856
+ "kind-of": "^4.0.0"
857
+ },
858
+ "dependencies": {
859
+ "kind-of": {
860
+ "version": "4.0.0",
861
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
862
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
863
+ "requires": {
864
+ "is-buffer": "^1.1.5"
865
+ }
866
+ }
867
+ }
868
+ },
869
+ "homedir-polyfill": {
870
+ "version": "1.0.3",
871
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
872
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
873
+ "requires": {
874
+ "parse-passwd": "^1.0.0"
875
+ }
876
+ },
877
+ "hooker": {
878
+ "version": "0.2.3",
879
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
880
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
881
+ "dev": true
882
+ },
883
+ "iconv-lite": {
884
+ "version": "0.2.11",
885
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
886
+ "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
887
+ "dev": true
888
+ },
889
+ "inherits": {
890
+ "version": "2.0.3",
891
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
892
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
893
+ "dev": true
894
+ },
895
+ "ini": {
896
+ "version": "1.3.5",
897
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
898
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
899
+ },
900
+ "interpret": {
901
+ "version": "1.1.0",
902
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
903
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
904
+ },
905
+ "is-absolute": {
906
+ "version": "1.0.0",
907
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
908
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
909
+ "requires": {
910
+ "is-relative": "^1.0.0",
911
+ "is-windows": "^1.0.1"
912
+ }
913
+ },
914
+ "is-accessor-descriptor": {
915
+ "version": "0.1.6",
916
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
917
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
918
+ "requires": {
919
+ "kind-of": "^3.0.2"
920
+ },
921
+ "dependencies": {
922
+ "kind-of": {
923
+ "version": "3.2.2",
924
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
925
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
926
+ "requires": {
927
+ "is-buffer": "^1.1.5"
928
+ }
929
+ }
930
+ }
931
+ },
932
+ "is-buffer": {
933
+ "version": "1.1.6",
934
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
935
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
936
+ },
937
+ "is-core-module": {
938
+ "version": "2.1.0",
939
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz",
940
+ "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==",
941
+ "requires": {
942
+ "has": "^1.0.3"
943
+ }
944
+ },
945
+ "is-data-descriptor": {
946
+ "version": "0.1.4",
947
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
948
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
949
+ "requires": {
950
+ "kind-of": "^3.0.2"
951
+ },
952
+ "dependencies": {
953
+ "kind-of": {
954
+ "version": "3.2.2",
955
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
956
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
957
+ "requires": {
958
+ "is-buffer": "^1.1.5"
959
+ }
960
+ }
961
+ }
962
+ },
963
+ "is-descriptor": {
964
+ "version": "0.1.6",
965
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
966
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
967
+ "requires": {
968
+ "is-accessor-descriptor": "^0.1.6",
969
+ "is-data-descriptor": "^0.1.4",
970
+ "kind-of": "^5.0.0"
971
+ },
972
+ "dependencies": {
973
+ "kind-of": {
974
+ "version": "5.1.0",
975
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
976
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
977
+ }
978
+ }
979
+ },
980
+ "is-extendable": {
981
+ "version": "0.1.1",
982
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
983
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
984
+ },
985
+ "is-extglob": {
986
+ "version": "2.1.1",
987
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
988
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
989
+ },
990
+ "is-glob": {
991
+ "version": "3.1.0",
992
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
993
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
994
+ "requires": {
995
+ "is-extglob": "^2.1.0"
996
+ }
997
+ },
998
+ "is-number": {
999
+ "version": "3.0.0",
1000
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
1001
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
1002
+ "requires": {
1003
+ "kind-of": "^3.0.2"
1004
+ },
1005
+ "dependencies": {
1006
+ "kind-of": {
1007
+ "version": "3.2.2",
1008
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1009
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1010
+ "requires": {
1011
+ "is-buffer": "^1.1.5"
1012
+ }
1013
+ }
1014
+ }
1015
+ },
1016
+ "is-plain-object": {
1017
+ "version": "2.0.4",
1018
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
1019
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
1020
+ "requires": {
1021
+ "isobject": "^3.0.1"
1022
+ }
1023
+ },
1024
+ "is-relative": {
1025
+ "version": "1.0.0",
1026
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
1027
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
1028
+ "requires": {
1029
+ "is-unc-path": "^1.0.0"
1030
+ }
1031
+ },
1032
+ "is-unc-path": {
1033
+ "version": "1.0.0",
1034
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
1035
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
1036
+ "requires": {
1037
+ "unc-path-regex": "^0.1.2"
1038
+ }
1039
+ },
1040
+ "is-windows": {
1041
+ "version": "1.0.2",
1042
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
1043
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
1044
+ },
1045
+ "isarray": {
1046
+ "version": "1.0.0",
1047
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1048
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1049
+ },
1050
+ "isexe": {
1051
+ "version": "2.0.0",
1052
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1053
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
1054
+ },
1055
+ "isobject": {
1056
+ "version": "3.0.1",
1057
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1058
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
1059
+ },
1060
+ "js-yaml": {
1061
+ "version": "2.0.5",
1062
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
1063
+ "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
1064
+ "dev": true,
1065
+ "requires": {
1066
+ "argparse": "~ 0.1.11",
1067
+ "esprima": "~ 1.0.2"
1068
+ }
1069
+ },
1070
+ "jshint": {
1071
+ "version": "2.1.11",
1072
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.1.11.tgz",
1073
+ "integrity": "sha1-61EI/vm6Xd67gwmD9XLSQuSeP5Y=",
1074
+ "dev": true,
1075
+ "requires": {
1076
+ "cli": "0.4.x",
1077
+ "console-browserify": "0.1.x",
1078
+ "minimatch": "0.x.x",
1079
+ "shelljs": "0.1.x",
1080
+ "underscore": "1.4.x"
1081
+ },
1082
+ "dependencies": {
1083
+ "underscore": {
1084
+ "version": "1.4.4",
1085
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
1086
+ "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
1087
+ "dev": true
1088
+ }
1089
+ }
1090
+ },
1091
+ "kind-of": {
1092
+ "version": "6.0.3",
1093
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
1094
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
1095
+ },
1096
+ "liftoff": {
1097
+ "version": "2.5.0",
1098
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
1099
+ "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
1100
+ "requires": {
1101
+ "extend": "^3.0.0",
1102
+ "findup-sync": "^2.0.0",
1103
+ "fined": "^1.0.1",
1104
+ "flagged-respawn": "^1.0.0",
1105
+ "is-plain-object": "^2.0.4",
1106
+ "object.map": "^1.0.0",
1107
+ "rechoir": "^0.6.2",
1108
+ "resolve": "^1.1.7"
1109
+ },
1110
+ "dependencies": {
1111
+ "findup-sync": {
1112
+ "version": "2.0.0",
1113
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
1114
+ "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
1115
+ "requires": {
1116
+ "detect-file": "^1.0.0",
1117
+ "is-glob": "^3.1.0",
1118
+ "micromatch": "^3.0.4",
1119
+ "resolve-dir": "^1.0.1"
1120
+ }
1121
+ }
1122
+ }
1123
+ },
1124
+ "lodash": {
1125
+ "version": "0.9.2",
1126
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
1127
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
1128
+ "dev": true
1129
+ },
1130
+ "lru-cache": {
1131
+ "version": "2.7.3",
1132
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
1133
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
1134
+ "dev": true
1135
+ },
1136
+ "make-iterator": {
1137
+ "version": "1.0.1",
1138
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
1139
+ "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
1140
+ "requires": {
1141
+ "kind-of": "^6.0.2"
1142
+ }
1143
+ },
1144
+ "map-cache": {
1145
+ "version": "0.2.2",
1146
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
1147
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
1148
+ },
1149
+ "map-visit": {
1150
+ "version": "1.0.0",
1151
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
1152
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
1153
+ "requires": {
1154
+ "object-visit": "^1.0.0"
1155
+ }
1156
+ },
1157
+ "micromatch": {
1158
+ "version": "3.1.10",
1159
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
1160
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
1161
+ "requires": {
1162
+ "arr-diff": "^4.0.0",
1163
+ "array-unique": "^0.3.2",
1164
+ "braces": "^2.3.1",
1165
+ "define-property": "^2.0.2",
1166
+ "extend-shallow": "^3.0.2",
1167
+ "extglob": "^2.0.4",
1168
+ "fragment-cache": "^0.2.1",
1169
+ "kind-of": "^6.0.2",
1170
+ "nanomatch": "^1.2.9",
1171
+ "object.pick": "^1.3.0",
1172
+ "regex-not": "^1.0.0",
1173
+ "snapdragon": "^0.8.1",
1174
+ "to-regex": "^3.0.2"
1175
+ }
1176
+ },
1177
+ "minimatch": {
1178
+ "version": "0.2.14",
1179
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
1180
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
1181
+ "dev": true,
1182
+ "requires": {
1183
+ "lru-cache": "2",
1184
+ "sigmund": "~1.0.0"
1185
+ }
1186
+ },
1187
+ "mixin-deep": {
1188
+ "version": "1.3.2",
1189
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
1190
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
1191
+ "requires": {
1192
+ "for-in": "^1.0.2",
1193
+ "is-extendable": "^1.0.1"
1194
+ },
1195
+ "dependencies": {
1196
+ "is-extendable": {
1197
+ "version": "1.0.1",
1198
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
1199
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
1200
+ "requires": {
1201
+ "is-plain-object": "^2.0.4"
1202
+ }
1203
+ }
1204
+ }
1205
+ },
1206
+ "ms": {
1207
+ "version": "2.0.0",
1208
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1209
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1210
+ },
1211
+ "nanomatch": {
1212
+ "version": "1.2.13",
1213
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
1214
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
1215
+ "requires": {
1216
+ "arr-diff": "^4.0.0",
1217
+ "array-unique": "^0.3.2",
1218
+ "define-property": "^2.0.2",
1219
+ "extend-shallow": "^3.0.2",
1220
+ "fragment-cache": "^0.2.1",
1221
+ "is-windows": "^1.0.2",
1222
+ "kind-of": "^6.0.2",
1223
+ "object.pick": "^1.3.0",
1224
+ "regex-not": "^1.0.0",
1225
+ "snapdragon": "^0.8.1",
1226
+ "to-regex": "^3.0.1"
1227
+ }
1228
+ },
1229
+ "nopt": {
1230
+ "version": "1.0.10",
1231
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
1232
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
1233
+ "dev": true,
1234
+ "requires": {
1235
+ "abbrev": "1"
1236
+ }
1237
+ },
1238
+ "object-copy": {
1239
+ "version": "0.1.0",
1240
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
1241
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
1242
+ "requires": {
1243
+ "copy-descriptor": "^0.1.0",
1244
+ "define-property": "^0.2.5",
1245
+ "kind-of": "^3.0.3"
1246
+ },
1247
+ "dependencies": {
1248
+ "define-property": {
1249
+ "version": "0.2.5",
1250
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1251
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1252
+ "requires": {
1253
+ "is-descriptor": "^0.1.0"
1254
+ }
1255
+ },
1256
+ "kind-of": {
1257
+ "version": "3.2.2",
1258
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1259
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1260
+ "requires": {
1261
+ "is-buffer": "^1.1.5"
1262
+ }
1263
+ }
1264
+ }
1265
+ },
1266
+ "object-visit": {
1267
+ "version": "1.0.1",
1268
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
1269
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
1270
+ "requires": {
1271
+ "isobject": "^3.0.0"
1272
+ }
1273
+ },
1274
+ "object.defaults": {
1275
+ "version": "1.1.0",
1276
+ "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
1277
+ "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
1278
+ "requires": {
1279
+ "array-each": "^1.0.1",
1280
+ "array-slice": "^1.0.0",
1281
+ "for-own": "^1.0.0",
1282
+ "isobject": "^3.0.0"
1283
+ }
1284
+ },
1285
+ "object.map": {
1286
+ "version": "1.0.1",
1287
+ "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
1288
+ "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
1289
+ "requires": {
1290
+ "for-own": "^1.0.0",
1291
+ "make-iterator": "^1.0.0"
1292
+ }
1293
+ },
1294
+ "object.pick": {
1295
+ "version": "1.3.0",
1296
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
1297
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
1298
+ "requires": {
1299
+ "isobject": "^3.0.1"
1300
+ }
1301
+ },
1302
+ "os-homedir": {
1303
+ "version": "1.0.2",
1304
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
1305
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
1306
+ },
1307
+ "os-tmpdir": {
1308
+ "version": "1.0.2",
1309
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1310
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
1311
+ },
1312
+ "osenv": {
1313
+ "version": "0.1.5",
1314
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
1315
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
1316
+ "requires": {
1317
+ "os-homedir": "^1.0.0",
1318
+ "os-tmpdir": "^1.0.0"
1319
+ }
1320
+ },
1321
+ "parse-filepath": {
1322
+ "version": "1.0.2",
1323
+ "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
1324
+ "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
1325
+ "requires": {
1326
+ "is-absolute": "^1.0.0",
1327
+ "map-cache": "^0.2.0",
1328
+ "path-root": "^0.1.1"
1329
+ }
1330
+ },
1331
+ "parse-passwd": {
1332
+ "version": "1.0.0",
1333
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
1334
+ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
1335
+ },
1336
+ "pascalcase": {
1337
+ "version": "0.1.1",
1338
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
1339
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
1340
+ },
1341
+ "path-parse": {
1342
+ "version": "1.0.6",
1343
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1344
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
1345
+ },
1346
+ "path-root": {
1347
+ "version": "0.1.1",
1348
+ "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
1349
+ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
1350
+ "requires": {
1351
+ "path-root-regex": "^0.1.0"
1352
+ }
1353
+ },
1354
+ "path-root-regex": {
1355
+ "version": "0.1.2",
1356
+ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
1357
+ "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
1358
+ },
1359
+ "posix-character-classes": {
1360
+ "version": "0.1.1",
1361
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
1362
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
1363
+ },
1364
+ "preprocess": {
1365
+ "version": "2.3.1",
1366
+ "resolved": "https://registry.npmjs.org/preprocess/-/preprocess-2.3.1.tgz",
1367
+ "integrity": "sha1-vaMCLmI+m1mdTAgoGG2FvZ8SxQA=",
1368
+ "dev": true
1369
+ },
1370
+ "rechoir": {
1371
+ "version": "0.6.2",
1372
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
1373
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
1374
+ "requires": {
1375
+ "resolve": "^1.1.6"
1376
+ }
1377
+ },
1378
+ "regex-not": {
1379
+ "version": "1.0.2",
1380
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
1381
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
1382
+ "requires": {
1383
+ "extend-shallow": "^3.0.2",
1384
+ "safe-regex": "^1.1.0"
1385
+ }
1386
+ },
1387
+ "repeat-element": {
1388
+ "version": "1.1.3",
1389
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
1390
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
1391
+ },
1392
+ "repeat-string": {
1393
+ "version": "1.6.1",
1394
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1395
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
1396
+ },
1397
+ "resolve": {
1398
+ "version": "1.18.1",
1399
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",
1400
+ "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==",
1401
+ "requires": {
1402
+ "is-core-module": "^2.0.0",
1403
+ "path-parse": "^1.0.6"
1404
+ }
1405
+ },
1406
+ "resolve-dir": {
1407
+ "version": "1.0.1",
1408
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
1409
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
1410
+ "requires": {
1411
+ "expand-tilde": "^2.0.0",
1412
+ "global-modules": "^1.0.0"
1413
+ }
1414
+ },
1415
+ "resolve-url": {
1416
+ "version": "0.2.1",
1417
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
1418
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
1419
+ },
1420
+ "ret": {
1421
+ "version": "0.1.15",
1422
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
1423
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
1424
+ },
1425
+ "rimraf": {
1426
+ "version": "2.2.8",
1427
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
1428
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
1429
+ "dev": true
1430
+ },
1431
+ "safe-regex": {
1432
+ "version": "1.1.0",
1433
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
1434
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
1435
+ "requires": {
1436
+ "ret": "~0.1.10"
1437
+ }
1438
+ },
1439
+ "set-value": {
1440
+ "version": "2.0.1",
1441
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
1442
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
1443
+ "requires": {
1444
+ "extend-shallow": "^2.0.1",
1445
+ "is-extendable": "^0.1.1",
1446
+ "is-plain-object": "^2.0.3",
1447
+ "split-string": "^3.0.1"
1448
+ },
1449
+ "dependencies": {
1450
+ "extend-shallow": {
1451
+ "version": "2.0.1",
1452
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1453
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1454
+ "requires": {
1455
+ "is-extendable": "^0.1.0"
1456
+ }
1457
+ }
1458
+ }
1459
+ },
1460
+ "shelljs": {
1461
+ "version": "0.1.4",
1462
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.1.4.tgz",
1463
+ "integrity": "sha1-37vnjVbDwBaNL7eeEOzR28sH7A4=",
1464
+ "dev": true
1465
+ },
1466
+ "sigmund": {
1467
+ "version": "1.0.1",
1468
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
1469
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
1470
+ "dev": true
1471
+ },
1472
+ "snapdragon": {
1473
+ "version": "0.8.2",
1474
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
1475
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
1476
+ "requires": {
1477
+ "base": "^0.11.1",
1478
+ "debug": "^2.2.0",
1479
+ "define-property": "^0.2.5",
1480
+ "extend-shallow": "^2.0.1",
1481
+ "map-cache": "^0.2.2",
1482
+ "source-map": "^0.5.6",
1483
+ "source-map-resolve": "^0.5.0",
1484
+ "use": "^3.1.0"
1485
+ },
1486
+ "dependencies": {
1487
+ "define-property": {
1488
+ "version": "0.2.5",
1489
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1490
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1491
+ "requires": {
1492
+ "is-descriptor": "^0.1.0"
1493
+ }
1494
+ },
1495
+ "extend-shallow": {
1496
+ "version": "2.0.1",
1497
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1498
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1499
+ "requires": {
1500
+ "is-extendable": "^0.1.0"
1501
+ }
1502
+ },
1503
+ "source-map": {
1504
+ "version": "0.5.7",
1505
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1506
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
1507
+ }
1508
+ }
1509
+ },
1510
+ "snapdragon-node": {
1511
+ "version": "2.1.1",
1512
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
1513
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
1514
+ "requires": {
1515
+ "define-property": "^1.0.0",
1516
+ "isobject": "^3.0.0",
1517
+ "snapdragon-util": "^3.0.1"
1518
+ },
1519
+ "dependencies": {
1520
+ "define-property": {
1521
+ "version": "1.0.0",
1522
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1523
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1524
+ "requires": {
1525
+ "is-descriptor": "^1.0.0"
1526
+ }
1527
+ },
1528
+ "is-accessor-descriptor": {
1529
+ "version": "1.0.0",
1530
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1531
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1532
+ "requires": {
1533
+ "kind-of": "^6.0.0"
1534
+ }
1535
+ },
1536
+ "is-data-descriptor": {
1537
+ "version": "1.0.0",
1538
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1539
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1540
+ "requires": {
1541
+ "kind-of": "^6.0.0"
1542
+ }
1543
+ },
1544
+ "is-descriptor": {
1545
+ "version": "1.0.2",
1546
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1547
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1548
+ "requires": {
1549
+ "is-accessor-descriptor": "^1.0.0",
1550
+ "is-data-descriptor": "^1.0.0",
1551
+ "kind-of": "^6.0.2"
1552
+ }
1553
+ }
1554
+ }
1555
+ },
1556
+ "snapdragon-util": {
1557
+ "version": "3.0.1",
1558
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
1559
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
1560
+ "requires": {
1561
+ "kind-of": "^3.2.0"
1562
+ },
1563
+ "dependencies": {
1564
+ "kind-of": {
1565
+ "version": "3.2.2",
1566
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1567
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1568
+ "requires": {
1569
+ "is-buffer": "^1.1.5"
1570
+ }
1571
+ }
1572
+ }
1573
+ },
1574
+ "source-map": {
1575
+ "version": "0.1.34",
1576
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz",
1577
+ "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=",
1578
+ "dev": true,
1579
+ "requires": {
1580
+ "amdefine": ">=0.0.4"
1581
+ }
1582
+ },
1583
+ "source-map-resolve": {
1584
+ "version": "0.5.3",
1585
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
1586
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
1587
+ "requires": {
1588
+ "atob": "^2.1.2",
1589
+ "decode-uri-component": "^0.2.0",
1590
+ "resolve-url": "^0.2.1",
1591
+ "source-map-url": "^0.4.0",
1592
+ "urix": "^0.1.0"
1593
+ }
1594
+ },
1595
+ "source-map-url": {
1596
+ "version": "0.4.0",
1597
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
1598
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
1599
+ },
1600
+ "split-string": {
1601
+ "version": "3.1.0",
1602
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
1603
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
1604
+ "requires": {
1605
+ "extend-shallow": "^3.0.0"
1606
+ }
1607
+ },
1608
+ "static-extend": {
1609
+ "version": "0.1.2",
1610
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
1611
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
1612
+ "requires": {
1613
+ "define-property": "^0.2.5",
1614
+ "object-copy": "^0.1.0"
1615
+ },
1616
+ "dependencies": {
1617
+ "define-property": {
1618
+ "version": "0.2.5",
1619
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1620
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1621
+ "requires": {
1622
+ "is-descriptor": "^0.1.0"
1623
+ }
1624
+ }
1625
+ }
1626
+ },
1627
+ "to-object-path": {
1628
+ "version": "0.3.0",
1629
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
1630
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
1631
+ "requires": {
1632
+ "kind-of": "^3.0.2"
1633
+ },
1634
+ "dependencies": {
1635
+ "kind-of": {
1636
+ "version": "3.2.2",
1637
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1638
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1639
+ "requires": {
1640
+ "is-buffer": "^1.1.5"
1641
+ }
1642
+ }
1643
+ }
1644
+ },
1645
+ "to-regex": {
1646
+ "version": "3.0.2",
1647
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
1648
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
1649
+ "requires": {
1650
+ "define-property": "^2.0.2",
1651
+ "extend-shallow": "^3.0.2",
1652
+ "regex-not": "^1.0.2",
1653
+ "safe-regex": "^1.1.0"
1654
+ }
1655
+ },
1656
+ "to-regex-range": {
1657
+ "version": "2.1.1",
1658
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
1659
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
1660
+ "requires": {
1661
+ "is-number": "^3.0.0",
1662
+ "repeat-string": "^1.6.1"
1663
+ }
1664
+ },
1665
+ "uglify-js": {
1666
+ "version": "2.4.24",
1667
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz",
1668
+ "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=",
1669
+ "dev": true,
1670
+ "requires": {
1671
+ "async": "~0.2.6",
1672
+ "source-map": "0.1.34",
1673
+ "uglify-to-browserify": "~1.0.0",
1674
+ "yargs": "~3.5.4"
1675
+ },
1676
+ "dependencies": {
1677
+ "async": {
1678
+ "version": "0.2.10",
1679
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
1680
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
1681
+ "dev": true
1682
+ }
1683
+ }
1684
+ },
1685
+ "uglify-to-browserify": {
1686
+ "version": "1.0.2",
1687
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
1688
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
1689
+ "dev": true
1690
+ },
1691
+ "unc-path-regex": {
1692
+ "version": "0.1.2",
1693
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
1694
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
1695
+ },
1696
+ "underscore": {
1697
+ "version": "1.7.0",
1698
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
1699
+ "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
1700
+ "dev": true
1701
+ },
1702
+ "underscore.string": {
1703
+ "version": "2.2.1",
1704
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
1705
+ "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
1706
+ "dev": true
1707
+ },
1708
+ "union-value": {
1709
+ "version": "1.0.1",
1710
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
1711
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
1712
+ "requires": {
1713
+ "arr-union": "^3.1.0",
1714
+ "get-value": "^2.0.6",
1715
+ "is-extendable": "^0.1.1",
1716
+ "set-value": "^2.0.1"
1717
+ }
1718
+ },
1719
+ "unset-value": {
1720
+ "version": "1.0.0",
1721
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
1722
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
1723
+ "requires": {
1724
+ "has-value": "^0.3.1",
1725
+ "isobject": "^3.0.0"
1726
+ },
1727
+ "dependencies": {
1728
+ "has-value": {
1729
+ "version": "0.3.1",
1730
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
1731
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
1732
+ "requires": {
1733
+ "get-value": "^2.0.3",
1734
+ "has-values": "^0.1.4",
1735
+ "isobject": "^2.0.0"
1736
+ },
1737
+ "dependencies": {
1738
+ "isobject": {
1739
+ "version": "2.1.0",
1740
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1741
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
1742
+ "requires": {
1743
+ "isarray": "1.0.0"
1744
+ }
1745
+ }
1746
+ }
1747
+ },
1748
+ "has-values": {
1749
+ "version": "0.1.4",
1750
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
1751
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
1752
+ }
1753
+ }
1754
+ },
1755
+ "urix": {
1756
+ "version": "0.1.0",
1757
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
1758
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
1759
+ },
1760
+ "use": {
1761
+ "version": "3.1.1",
1762
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
1763
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
1764
+ },
1765
+ "v8flags": {
1766
+ "version": "3.1.3",
1767
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz",
1768
+ "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==",
1769
+ "requires": {
1770
+ "homedir-polyfill": "^1.0.1"
1771
+ }
1772
+ },
1773
+ "which": {
1774
+ "version": "1.0.9",
1775
+ "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
1776
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
1777
+ "dev": true
1778
+ },
1779
+ "window-size": {
1780
+ "version": "0.1.0",
1781
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
1782
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
1783
+ "dev": true
1784
+ },
1785
+ "wordwrap": {
1786
+ "version": "0.0.2",
1787
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
1788
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
1789
+ "dev": true
1790
+ },
1791
+ "yargs": {
1792
+ "version": "3.5.4",
1793
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz",
1794
+ "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=",
1795
+ "dev": true,
1796
+ "requires": {
1797
+ "camelcase": "^1.0.2",
1798
+ "decamelize": "^1.0.0",
1799
+ "window-size": "0.1.0",
1800
+ "wordwrap": "0.0.2"
1801
+ }
1802
+ },
1803
+ "zlib-browserify": {
1804
+ "version": "0.0.1",
1805
+ "resolved": "https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.1.tgz",
1806
+ "integrity": "sha1-T6akXQDbwV8xikr6HZr8Aljhdsw=",
1807
+ "dev": true
1808
+ }
1809
+ }
1810
+ }
libs/factory/clearfy/assets/css/clearfy-base.css CHANGED
@@ -5,18 +5,39 @@
5
  * @copyright Webcraftic 06.10.2018
6
  * @sicne 2.0.5
7
  */
8
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-suggetion {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  padding: 30px 80px;
10
  }
11
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-suggetion h3 {
12
  margin: 0 0 20px;
13
  }
14
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-suggetion .wbcr-factory-inner-contanier {
15
  border: 2px dashed #8bc34a;
16
  background: #fff;
17
  padding: 20px;
18
  }
19
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-suggetion .wbcr-factory-activate-premium {
20
  display: inline-block;
21
  cursor: pointer;
22
  line-height: 16px;
@@ -35,16 +56,16 @@
35
  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
36
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
37
  }
38
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-suggetion .wbcr-factory-activate-premium:active {
39
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
40
  -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
41
  -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
42
  }
43
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-suggetion .wbcr-factory-activate-premium:focus {
44
  outline: none;
45
  border: 0;
46
  }
47
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-suggetion .wbcr-factory-purchase-premium {
48
  display: inline-block;
49
  cursor: pointer;
50
  line-height: 16px;
@@ -63,22 +84,22 @@
63
  -moz-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
64
  -webkit-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
65
  }
66
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-suggetion .wbcr-factory-purchase-premium:active {
67
  box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
68
  -moz-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
69
  -webkit-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
70
  }
71
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-suggetion .wbcr-factory-purchase-premium:focus {
72
  outline: none;
73
  border: 0;
74
  }
75
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion {
76
  background: #fff;
77
  color: #353535;
78
  font-weight: 600;
79
  border: 2px dashed #8bc34a;
80
  }
81
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion h3 {
82
  margin: 0 0 20px;
83
  padding: 10px 0;
84
  text-align: center;
@@ -89,16 +110,16 @@
89
  vertical-align: middle;
90
  text-transform: uppercase;
91
  }
92
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion ul {
93
  position: relative;
94
  margin-bottom: 20px;
95
  }
96
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion ul li {
97
  font-size: 15px;
98
  padding: 7px;
99
  padding-left: 20px;
100
  }
101
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion ul li:before {
102
  content: " ";
103
  display: inline-block;
104
  width: 0.4em;
@@ -112,7 +133,7 @@
112
  -o-transform: rotate(45deg);
113
  transform: rotate(45deg);
114
  }
115
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion .wbcr-factory-purchase-premium {
116
  display: block;
117
  cursor: pointer;
118
  line-height: 16px;
@@ -131,44 +152,102 @@
131
  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
132
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
133
  }
134
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion .wbcr-factory-purchase-premium:active {
135
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
136
  -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
137
  -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
138
  }
139
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion .wbcr-factory-purchase-premium:focus {
140
  outline: none;
141
  border: 0;
142
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  @media screen and (max-width: 1550px) {
144
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-clearfy-227-multisite-pro-suggetion {
145
  padding: 10px 80px;
146
  }
147
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion {
148
  padding: 10px;
149
  }
150
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion h3 {
151
  margin: 0 0 20px;
152
  padding: 10px 0;
153
  font-size: 13px;
154
  font-weight: 600;
155
  }
156
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion ul {
157
  margin-bottom: 20px;
158
  }
159
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion ul li {
160
  font-size: 13px;
161
  padding: 2px;
162
  padding-left: 10px;
163
  }
164
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion ul li:before {
165
  width: 0.4em;
166
  height: 0.7em;
167
  border-width: 0 0.2em 0.2em 0;
168
  left: 0;
169
  margin-right: 10px;
170
  }
171
- #WBCR .wbcr-factory-pages-435-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-227-pro-suggettion .wbcr-factory-purchase-premium {
172
  font-weight: 700;
173
  line-height: 16px;
174
  font-size: 12px;
5
  * @copyright Webcraftic 06.10.2018
6
  * @sicne 2.0.5
7
  */
8
+ #WBCR {
9
+ /* subscribe widget */
10
+ }
11
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .factory-checkbox.wbcr-factory-clearfy-icon-pro:after {
12
+ display: inline-block;
13
+ position: relative;
14
+ content: 'PRO';
15
+ background: #ff5722;
16
+ border-radius: 4px;
17
+ color: #fff;
18
+ font-size: 10px;
19
+ line-height: 1;
20
+ font-style: normal;
21
+ padding: 4px 6px;
22
+ margin-left: 4px;
23
+ vertical-align: top;
24
+ top: -8px;
25
+ left: -10px;
26
+ right: auto;
27
+ z-index: 11;
28
+ }
29
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion {
30
  padding: 30px 80px;
31
  }
32
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion h3 {
33
  margin: 0 0 20px;
34
  }
35
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-inner-contanier {
36
  border: 2px dashed #8bc34a;
37
  background: #fff;
38
  padding: 20px;
39
  }
40
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-activate-premium {
41
  display: inline-block;
42
  cursor: pointer;
43
  line-height: 16px;
56
  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
57
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
58
  }
59
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-activate-premium:active {
60
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
61
  -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
62
  -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
63
  }
64
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-activate-premium:focus {
65
  outline: none;
66
  border: 0;
67
  }
68
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-purchase-premium {
69
  display: inline-block;
70
  cursor: pointer;
71
  line-height: 16px;
84
  -moz-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
85
  -webkit-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
86
  }
87
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-purchase-premium:active {
88
  box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
89
  -moz-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
90
  -webkit-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
91
  }
92
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-purchase-premium:focus {
93
  outline: none;
94
  border: 0;
95
  }
96
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion {
97
  background: #fff;
98
  color: #353535;
99
  font-weight: 600;
100
  border: 2px dashed #8bc34a;
101
  }
102
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion h3 {
103
  margin: 0 0 20px;
104
  padding: 10px 0;
105
  text-align: center;
110
  vertical-align: middle;
111
  text-transform: uppercase;
112
  }
113
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul {
114
  position: relative;
115
  margin-bottom: 20px;
116
  }
117
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul li {
118
  font-size: 15px;
119
  padding: 7px;
120
  padding-left: 20px;
121
  }
122
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul li:before {
123
  content: " ";
124
  display: inline-block;
125
  width: 0.4em;
133
  -o-transform: rotate(45deg);
134
  transform: rotate(45deg);
135
  }
136
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion .wbcr-factory-purchase-premium {
137
  display: block;
138
  cursor: pointer;
139
  line-height: 16px;
152
  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
153
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
154
  }
155
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion .wbcr-factory-purchase-premium:active {
156
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
157
  -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
158
  -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
159
  }
160
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion .wbcr-factory-purchase-premium:focus {
161
  outline: none;
162
  border: 0;
163
  }
164
+ #WBCR .wbcr-factory-subscribe-widget {
165
+ margin-top: 0 !important;
166
+ border: 1px solid rgba(0, 0, 0, 0.1);
167
+ border-radius: 5px;
168
+ }
169
+ #WBCR .wbcr-factory-subscribe-widget__field {
170
+ margin: 10px auto;
171
+ display: block;
172
+ width: 100%;
173
+ text-align: center;
174
+ box-shadow: 0 0 0 transparent;
175
+ border-radius: 4px;
176
+ border: 1px solid #d6d4d4;
177
+ background-color: #fff;
178
+ color: #32373c;
179
+ }
180
+ #WBCR .wbcr-factory-subscribe-widget__button {
181
+ display: block;
182
+ width: 100%;
183
+ text-align: center;
184
+ margin: 14px 0 0;
185
+ box-shadow: none;
186
+ min-width: 100px;
187
+ background-color: #ff5722;
188
+ border: 0;
189
+ color: #fff;
190
+ }
191
+ #WBCR .wbcr-factory-subscribe-widget__button:active,
192
+ #WBCR .wbcr-factory-subscribe-widget__button:focus {
193
+ box-shadow: inset -1px 1px 1px #222;
194
+ outline: none;
195
+ }
196
+ #WBCR .wbcr-factory-subscribe-widget__msgbox {
197
+ font-weight: bold;
198
+ }
199
+ #WBCR .wbcr-factory-subscribe-widget__text {
200
+ display: none;
201
+ padding: 10px 14px;
202
+ margin: 0 0 10px;
203
+ }
204
+ #WBCR .wbcr-factory-subscribe-widget__text--success {
205
+ background: #d6efbe;
206
+ color: #61824b;
207
+ }
208
+ #WBCR .wbcr-factory-subscribe-widget__text--success2 {
209
+ background: #ffe0b3;
210
+ }
211
+ #WBCR .wbcr-factory-subscribe-widget__text--error {
212
+ background: #f1b1b6;
213
+ }
214
+ #WBCR .wbcr-factory-subscribe-widget__checkbox {
215
+ margin: 0 10px 0 0;
216
+ }
217
+ #WBCR .wbcr-factory-subscribe-widget__checkbox-label {
218
+ font-weight: normal;
219
+ color: #8c8888;
220
+ font-size: 12px;
221
+ }
222
  @media screen and (max-width: 1550px) {
223
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-pro-suggetion {
224
  padding: 10px 80px;
225
  }
226
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion {
227
  padding: 10px;
228
  }
229
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion h3 {
230
  margin: 0 0 20px;
231
  padding: 10px 0;
232
  font-size: 13px;
233
  font-weight: 600;
234
  }
235
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul {
236
  margin-bottom: 20px;
237
  }
238
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul li {
239
  font-size: 13px;
240
  padding: 2px;
241
  padding-left: 10px;
242
  }
243
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul li:before {
244
  width: 0.4em;
245
  height: 0.7em;
246
  border-width: 0 0.2em 0.2em 0;
247
  left: 0;
248
  margin-right: 10px;
249
  }
250
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion .wbcr-factory-purchase-premium {
251
  font-weight: 700;
252
  line-height: 16px;
253
  font-size: 12px;
libs/factory/clearfy/assets/css/clearfy-base.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["clearfy-base.less"],"names":[],"mappings":";;;;;;;AAoCA,KAEE,iDACE;EACE,kBAAA;;AAJN,KAEE,iDACE,8CAGE;EACE,gBAAA;;AAPR,KAEE,iDACE,8CAOE;EACE,0BAAA;EACA,gBAAA;EACA,aAAA;;AAbR,KAEE,iDACE,8CAaE;EACE,qBAAA;EA5CN,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,sCAAA;EACA,2CAAA;EACA,8CAAA;;AACA,KAaA,iDACE,8CAaE,+BA3BH;EACC,4CAAA;EACA,iDAAA;EACA,oDAAA;;AAEF,KAQA,iDACE,8CAaE,+BAtBH;EACC,aAAA;EACA,SAAA;;AAIJ,KAEE,iDACE,8CAiBE;EACE,qBAAA;EAhDN,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,yCAAA;EACA,8CAAA;EACA,iDAAA;;AACA,KAaA,iDACE,8CAiBE,+BA/BH;EACC,+CAAA;EACA,oDAAA;EACA,uDAAA;;AAEF,KAQA,iDACE,8CAiBE,+BA1BH;EACC,aAAA;EACA,SAAA;;AAIJ,KAEE,iDAwBE,oCACE;EACE,gBAAA;EACA,cAAA;EACA,gBAAA;EACA,0BAAA;;AA/BR,KAEE,iDAwBE,oCACE,yCAME;EACE,gBAAA;EACA,eAAA;EACA,kBAAA;EACA,gCAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,yBAAA;;AA1CV,KAEE,iDAwBE,oCACE,yCAkBE;EAEE,kBAAA;EACA,mBAAA;;AAhDV,KAEE,iDAwBE,oCACE,yCAkBE,GAKE;EACE,eAAA;EACA,YAAA;EACA,kBAAA;;AAIA,KAvDV,iDAwBE,oCACE,yCAkBE,GAKE,GAOG;EACC,SAAS,GAAT;EACA,qBAAA;EACA,YAAA;EACA,aAAA;EACA,qBAAA;EACA,6BAAA;EACA,OAAA;EACA,kBAAA;EACA,mBAAmB,aAAnB;EACA,gBAAgB,aAAhB;EACA,cAAc,aAAd;EACA,WAAW,aAAX;;AArEd,KAEE,iDAwBE,oCACE,yCAgDE;EACE,cAAA;EAvGR,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,sCAAA;EACA,2CAAA;EACA,8CAAA;;AACA,KAaA,iDAwBE,oCACE,yCAgDE,+BAtFL;EACC,4CAAA;EACA,iDAAA;EACA,oDAAA;;AAEF,KAQA,iDAwBE,oCACE,yCAgDE,+BAjFL;EACC,aAAA;EACA,SAAA;;AAwFJ,mBAAsC;EACpC,KACE,iDACE;IACE,kBAAA;;EAHN,KACE,iDAKE,oCACE;IACE,aAAA;;EARR,KACE,iDAKE,oCACE,yCAGE;IACE,gBAAA;IACA,eAAA;IACA,eAAA;IACA,gBAAA;;EAdV,KACE,iDAKE,oCACE,yCAUE;IACE,mBAAA;;EAlBV,KACE,iDAKE,oCACE,yCAUE,GAGE;IACE,eAAA;IACA,YAAA;IACA,kBAAA;;EAEA,KAxBV,iDAKE,oCACE,yCAUE,GAGE,GAKG;IACC,YAAA;IACA,aAAA;IACA,6BAAA;IACA,OAAA;IACA,kBAAA;;EA9Bd,KACE,iDAKE,oCACE,yCA4BE;IACE,gBAAA;IACA,iBAAA;IACA,eAAA;IACA,iBAAA;IACA,kBAAA;IACA,uBAAA;IACA,0BAAA","file":"clearfy-base.css"}
1
+ {"version":3,"sources":["clearfy-base.less"],"names":[],"mappings":";;;;;;;AAoCA;;;AAAA,KAoBE,iDACE,kBAAiB,8BAA8B;EAnB/C,qBAAA;EACA,kBAAA;EACA,SAAS,KAAT;EACA,mBAAA;EACA,kBAAA;EACA,WAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;;AAjBJ,KAoBE,iDAKE;EACE,kBAAA;;AA1BN,KAoBE,iDAKE,8CAGE;EACE,gBAAA;;AA7BR,KAoBE,iDAKE,8CAOE;EACE,0BAAA;EACA,gBAAA;EACA,aAAA;;AAnCR,KAoBE,iDAKE,8CAaE;EACE,qBAAA;EAlEN,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,sCAAA;EACA,2CAAA;EACA,8CAAA;;AACA,KA+BA,iDAKE,8CAaE,+BAjDH;EACC,4CAAA;EACA,iDAAA;EACA,oDAAA;;AAEF,KA0BA,iDAKE,8CAaE,+BA5CH;EACC,aAAA;EACA,SAAA;;AAIJ,KAoBE,iDAKE,8CAkBE;EACE,qBAAA;EAvEN,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,yCAAA;EACA,8CAAA;EACA,iDAAA;;AACA,KA+BA,iDAKE,8CAkBE,+BAtDH;EACC,+CAAA;EACA,oDAAA;EACA,uDAAA;;AAEF,KA0BA,iDAKE,8CAkBE,+BAjDH;EACC,aAAA;EACA,SAAA;;AAIJ,KAoBE,iDA6BE,oCACE;EACE,gBAAA;EACA,cAAA;EACA,gBAAA;EACA,0BAAA;;AAtDR,KAoBE,iDA6BE,oCACE,yCAME;EACE,gBAAA;EACA,eAAA;EACA,kBAAA;EACA,gCAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,yBAAA;;AAjEV,KAoBE,iDA6BE,oCACE,yCAkBE;EAEE,kBAAA;EACA,mBAAA;;AAvEV,KAoBE,iDA6BE,oCACE,yCAkBE,GAKE;EACE,eAAA;EACA,YAAA;EACA,kBAAA;;AAKA,KA7DV,iDA6BE,oCACE,yCAkBE,GAKE,GAQG;EACC,SAAS,GAAT;EACA,qBAAA;EACA,YAAA;EACA,aAAA;EACA,qBAAA;EACA,6BAAA;EACA,OAAA;EACA,kBAAA;EACA,mBAAmB,aAAnB;EACA,gBAAgB,aAAhB;EACA,cAAc,aAAd;EACA,WAAW,aAAX;;AA7Fd,KAoBE,iDA6BE,oCACE,yCAiDE;EACE,cAAA;EA/HR,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,sCAAA;EACA,2CAAA;EACA,8CAAA;;AACA,KA+BA,iDA6BE,oCACE,yCAiDE,+BA9GL;EACC,4CAAA;EACA,iDAAA;EACA,oDAAA;;AAEF,KA0BA,iDA6BE,oCACE,yCAiDE,+BAzGL;EACC,aAAA;EACA,SAAA;;AAIJ,KA6GE;EACE,wBAAA;EACA,oCAAA;EACA,kBAAA;;AAGA,KANF,+BAMG;EACC,iBAAA;EACA,cAAA;EACA,WAAA;EACA,kBAAA;EACA,6BAAA;EACA,kBAAA;EACA,yBAAA;EACA,sBAAA;EACA,cAAA;;AAGF,KAlBF,+BAkBG;EACC,cAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,SAAA;EACA,WAAA;;AAEA,KA7BJ,+BAkBG,QAWE;AAAS,KA7Bd,+BAkBG,QAWY;EACT,mCAAA;EACA,aAAA;;AAIJ,KAnCF,+BAmCG;EACC,iBAAA;;AAGF,KAvCF,+BAuCG;EACC,aAAA;EACA,kBAAA;EACA,gBAAA;;AAIF,KA9CF,+BA8CG;EACC,mBAAA;EACA,cAAA;;AAGF,KAnDF,+BAmDG;EACC,mBAAA;;AAGF,KAvDF,+BAuDG;EACC,mBAAA;;AAGF,KA3DF,+BA2DG;EACC,kBAAA;;AAGF,KA/DF,+BA+DG;EACC,mBAAA;EACA,cAAA;EACA,eAAA;;AAKN,mBAAsC;EACpC,KACE,iDACE;IACE,kBAAA;;EAHN,KACE,iDAKE,oCACE;IACE,aAAA;;EARR,KACE,iDAKE,oCACE,yCAGE;IACE,gBAAA;IACA,eAAA;IACA,eAAA;IACA,gBAAA;;EAdV,KACE,iDAKE,oCACE,yCAUE;IACE,mBAAA;;EAlBV,KACE,iDAKE,oCACE,yCAUE,GAGE;IACE,eAAA;IACA,YAAA;IACA,kBAAA;;EAEA,KAxBV,iDAKE,oCACE,yCAUE,GAGE,GAKG;IACC,YAAA;IACA,aAAA;IACA,6BAAA;IACA,OAAA;IACA,kBAAA;;EA9Bd,KACE,iDAKE,oCACE,yCA4BE;IACE,gBAAA;IACA,iBAAA;IACA,eAAA;IACA,iBAAA;IACA,kBAAA;IACA,uBAAA;IACA,0BAAA","file":"clearfy-base.css"}
libs/factory/clearfy/assets/css/clearfy-base.less CHANGED
@@ -35,8 +35,30 @@
35
  }
36
 
37
  #WBCR {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
  .wbcr-factory-pages-000-impressive-page-template {
 
 
 
 
40
  .wbcr-factory-clearfy-000-multisite-suggetion {
41
  padding: 30px 80px;
42
 
@@ -54,6 +76,7 @@
54
  display: inline-block;
55
  .button();
56
  }
 
57
  .wbcr-factory-purchase-premium {
58
  display: inline-block;
59
  .button(#fdd868, #755c0e, rgba(60, 45, 2, 0.31));
@@ -88,6 +111,7 @@
88
  font-size: 15px;
89
  padding: 7px;
90
  padding-left: 20px;
 
91
  &:before {
92
  }
93
 
@@ -116,6 +140,78 @@
116
  }
117
  }
118
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  }
120
 
121
  @media screen and (max-width: 1550px) {
35
  }
36
 
37
  #WBCR {
38
+ .premium-label(@position: relative, @positionTop:-8px, @positionLeft:-10px, @positionRight:auto) {
39
+ display: inline-block;
40
+ position: @position;
41
+ content: 'PRO';
42
+ background: #ff5722;
43
+ border-radius: 4px;
44
+ color: #fff;
45
+ font-size: 10px;
46
+ line-height: 1;
47
+ font-style: normal;
48
+ padding: 4px 6px;
49
+ margin-left: 4px;
50
+ vertical-align: top;
51
+ top: @positionTop;
52
+ left: @positionLeft;
53
+ right: @positionRight;
54
+ z-index: 11;
55
+ }
56
 
57
  .wbcr-factory-pages-000-impressive-page-template {
58
+ .factory-checkbox.wbcr-factory-clearfy-icon-pro:after {
59
+ .premium-label();
60
+ }
61
+
62
  .wbcr-factory-clearfy-000-multisite-suggetion {
63
  padding: 30px 80px;
64
 
76
  display: inline-block;
77
  .button();
78
  }
79
+
80
  .wbcr-factory-purchase-premium {
81
  display: inline-block;
82
  .button(#fdd868, #755c0e, rgba(60, 45, 2, 0.31));
111
  font-size: 15px;
112
  padding: 7px;
113
  padding-left: 20px;
114
+
115
  &:before {
116
  }
117
 
140
  }
141
  }
142
  }
143
+
144
+ /* subscribe widget */
145
+
146
+ .wbcr-factory-subscribe-widget {
147
+ margin-top: 0 !important;
148
+ border: 1px solid rgba(0, 0, 0, 0.1);
149
+ border-radius: 5px;
150
+
151
+
152
+ &__field {
153
+ margin: 10px auto;
154
+ display: block;
155
+ width: 100%;
156
+ text-align: center;
157
+ box-shadow: 0 0 0 transparent;
158
+ border-radius: 4px;
159
+ border: 1px solid #d6d4d4;
160
+ background-color: #fff;
161
+ color: #32373c;
162
+ }
163
+
164
+ &__button {
165
+ display: block;
166
+ width: 100%;
167
+ text-align: center;
168
+ margin: 14px 0 0;
169
+ box-shadow: none;
170
+ min-width: 100px;
171
+ background-color: #ff5722;
172
+ border: 0;
173
+ color: #fff;
174
+
175
+ &:active, &:focus {
176
+ box-shadow: inset -1px 1px 1px #222;
177
+ outline: none;
178
+ }
179
+ }
180
+
181
+ &__msgbox {
182
+ font-weight: bold;
183
+ }
184
+
185
+ &__text {
186
+ display: none;
187
+ padding: 10px 14px;
188
+ margin: 0 0 10px;
189
+
190
+ }
191
+
192
+ &__text--success {
193
+ background: #d6efbe;
194
+ color: #61824b;
195
+ }
196
+
197
+ &__text--success2 {
198
+ background: #ffe0b3;
199
+ }
200
+
201
+ &__text--error {
202
+ background: #f1b1b6;
203
+ }
204
+
205
+ &__checkbox {
206
+ margin: 0 10px 0 0;
207
+ }
208
+
209
+ &__checkbox-label {
210
+ font-weight: normal;
211
+ color: #8c8888;
212
+ font-size: 12px;
213
+ }
214
+ }
215
  }
216
 
217
  @media screen and (max-width: 1550px) {
libs/factory/clearfy/assets/css/components.css CHANGED
@@ -3,11 +3,11 @@
3
  * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
  * @copyright Alex Kovalev 30.09.2017
5
  */
6
- #WBCR .wbc-factory-clearfy-227-components {
7
  padding: 0 20px 20px;
8
  text-align: center;
9
  }
10
- #WBCR .wbc-factory-clearfy-227-components .plugin-card {
11
  position: relative;
12
  display: inline-block;
13
  width: 32.7%;
@@ -18,46 +18,46 @@
18
  float: none;
19
  vertical-align: top;
20
  }
21
- #WBCR .wbc-factory-clearfy-227-components .plugin-card:first-child {
22
  margin-left: 0;
23
  }
24
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .plugin-card-bottom {
25
  position: absolute;
26
  bottom: 0;
27
  right: 0;
28
  left: 0;
29
  }
30
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .plugin-card-top {
31
  min-height: 163px;
32
  }
33
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .desc,
34
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .name {
35
  margin-right: 0 !important;
36
  }
37
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .name h3 {
38
  font-size: 17px;
39
  margin-top: 0 !important;
40
  }
41
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .install-now {
42
  float: right;
43
  }
44
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .delete-now {
45
  float: right;
46
  margin-left: 5px;
47
  }
48
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .delete-now .dashicons,
49
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .delete-now .dashicons-before:before {
50
  font-size: 16px !important;
51
  line-height: 1.5 !important;
52
  color: #62696f;
53
  }
54
- #WBCR .wbc-factory-clearfy-227-components .plugin-card a.open-plugin-details-modal {
55
  color: #5c5d5f;
56
  text-decoration: none;
57
  font-weight: 600;
58
  font-size: 15px;
59
  }
60
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .plugin-card-premium-ribbon {
61
  position: absolute;
62
  bottom: 60px;
63
  right: 0;
@@ -73,7 +73,7 @@
73
  text-transform: uppercase;
74
  z-index: 1;
75
  }
76
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .plugin-card-free-ribbon {
77
  position: absolute;
78
  bottom: 60px;
79
  right: 0;
@@ -89,7 +89,7 @@
89
  text-transform: uppercase;
90
  z-index: 1;
91
  }
92
- #WBCR .wbc-factory-clearfy-227-components .plugin-card .plugin-card-freemium-ribbon {
93
  position: absolute;
94
  bottom: 60px;
95
  right: 0;
@@ -105,35 +105,35 @@
105
  text-transform: uppercase;
106
  z-index: 1;
107
  }
108
- #WBCR .wbc-factory-clearfy-227-components .plugin-card.premium {
109
  border-color: #e8d7b2;
110
  background-color: #fff9eb;
111
  }
112
- #WBCR .wbc-factory-clearfy-227-components .plugin-card.plugin-status-deactive {
113
  background-color: #f1f1f1;
114
  }
115
- #WBCR .wbc-factory-clearfy-227-components .plugin-card.plugin-status-deactive a.open-plugin-details-modal {
116
  color: #ababab;
117
  text-decoration: none;
118
  font-weight: 600;
119
  font-size: 15px;
120
  }
121
- #WBCR .wbc-factory-clearfy-227-components .plugin-card.plugin-status-deactive .plugin-icon {
122
  opacity: 0.3;
123
  }
124
- #WBCR .wbc-factory-clearfy-227-components .plugin-card.plugin-status-deactive .desc {
125
  color: #afafaf;
126
  }
127
- #WBCR .wbc-factory-clearfy-227-components .plugin-card.plugin-status-deactive.premium {
128
  background-color: #f9f2f1;
129
  }
130
  @media screen and (max-width: 1750px) {
131
- #WBCR .wbc-factory-clearfy-227-components .plugin-card {
132
  width: 49%;
133
  }
134
  }
135
  @media screen and (max-width: 1350px) {
136
- #WBCR .wbc-factory-clearfy-227-components .plugin-card {
137
  width: 100%;
138
  }
139
  }
3
  * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
  * @copyright Alex Kovalev 30.09.2017
5
  */
6
+ #WBCR .wbc-factory-clearfy-230-components {
7
  padding: 0 20px 20px;
8
  text-align: center;
9
  }
10
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card {
11
  position: relative;
12
  display: inline-block;
13
  width: 32.7%;
18
  float: none;
19
  vertical-align: top;
20
  }
21
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card:first-child {
22
  margin-left: 0;
23
  }
24
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-bottom {
25
  position: absolute;
26
  bottom: 0;
27
  right: 0;
28
  left: 0;
29
  }
30
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-top {
31
  min-height: 163px;
32
  }
33
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .desc,
34
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .name {
35
  margin-right: 0 !important;
36
  }
37
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .name h3 {
38
  font-size: 17px;
39
  margin-top: 0 !important;
40
  }
41
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .install-now {
42
  float: right;
43
  }
44
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .delete-now {
45
  float: right;
46
  margin-left: 5px;
47
  }
48
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .delete-now .dashicons,
49
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .delete-now .dashicons-before:before {
50
  font-size: 16px !important;
51
  line-height: 1.5 !important;
52
  color: #62696f;
53
  }
54
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card a.open-plugin-details-modal {
55
  color: #5c5d5f;
56
  text-decoration: none;
57
  font-weight: 600;
58
  font-size: 15px;
59
  }
60
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-premium-ribbon {
61
  position: absolute;
62
  bottom: 60px;
63
  right: 0;
73
  text-transform: uppercase;
74
  z-index: 1;
75
  }
76
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-free-ribbon {
77
  position: absolute;
78
  bottom: 60px;
79
  right: 0;
89
  text-transform: uppercase;
90
  z-index: 1;
91
  }
92
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-freemium-ribbon {
93
  position: absolute;
94
  bottom: 60px;
95
  right: 0;
105
  text-transform: uppercase;
106
  z-index: 1;
107
  }
108
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.premium {
109
  border-color: #e8d7b2;
110
  background-color: #fff9eb;
111
  }
112
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive {
113
  background-color: #f1f1f1;
114
  }
115
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive a.open-plugin-details-modal {
116
  color: #ababab;
117
  text-decoration: none;
118
  font-weight: 600;
119
  font-size: 15px;
120
  }
121
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive .plugin-icon {
122
  opacity: 0.3;
123
  }
124
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive .desc {
125
  color: #afafaf;
126
  }
127
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive.premium {
128
  background-color: #f9f2f1;
129
  }
130
  @media screen and (max-width: 1750px) {
131
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card {
132
  width: 49%;
133
  }
134
  }
135
  @media screen and (max-width: 1350px) {
136
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card {
137
  width: 100%;
138
  }
139
  }
libs/factory/clearfy/assets/css/libs/autocomplete.css CHANGED
@@ -5,39 +5,39 @@
5
  *
6
  * @since 2.2.0
7
  */
8
- #wbcr-factory-clearfy-227__search_options_form #wbcr-factory-clearfy-227__autocomplete {
9
  width: 100%;
10
  box-sizing: border-box;
11
  border-color: #d6d4d4;
12
  }
13
- #wbcr-factory-clearfy-227__search_options_form.wbcr-factory-clearfy-227__autocomplete-wrap {
14
  padding: 10px;
15
  }
16
- #wbcr-factory-clearfy-227__search_options_form .wbcr-factory-clearfy-227__autocomplete-label {
17
  display: block !important;
18
  }
19
- .wbcr-factory-clearfy-227__autocomplete-suggestions {
20
  border: 1px solid #999;
21
  background: #FFF;
22
  overflow: auto;
23
  }
24
- .wbcr-factory-clearfy-227__autocomplete-suggestion {
25
  padding: 2px 5px;
26
  white-space: nowrap;
27
  overflow: hidden;
28
  cursor: pointer;
29
  }
30
- .wbcr-factory-clearfy-227__autocomplete-selected {
31
  background: #F0F0F0;
32
  }
33
- .wbcr-factory-clearfy-227__autocomplete-suggestions strong {
34
  font-weight: normal;
35
  color: #3399FF;
36
  }
37
- .wbcr-factory-clearfy-227__autocomplete-group {
38
  padding: 2px 5px;
39
  }
40
- .wbcr-factory-clearfy-227__autocomplete-group strong {
41
  display: block;
42
  border-bottom: 1px solid #000;
43
  }
5
  *
6
  * @since 2.2.0
7
  */
8
+ #wbcr-factory-clearfy-230__search_options_form #wbcr-factory-clearfy-230__autocomplete {
9
  width: 100%;
10
  box-sizing: border-box;
11
  border-color: #d6d4d4;
12
  }
13
+ #wbcr-factory-clearfy-230__search_options_form.wbcr-factory-clearfy-230__autocomplete-wrap {
14
  padding: 10px;
15
  }
16
+ #wbcr-factory-clearfy-230__search_options_form .wbcr-factory-clearfy-230__autocomplete-label {
17
  display: block !important;
18
  }
19
+ .wbcr-factory-clearfy-230__autocomplete-suggestions {
20
  border: 1px solid #999;
21
  background: #FFF;
22
  overflow: auto;
23
  }
24
+ .wbcr-factory-clearfy-230__autocomplete-suggestion {
25
  padding: 2px 5px;
26
  white-space: nowrap;
27
  overflow: hidden;
28
  cursor: pointer;
29
  }
30
+ .wbcr-factory-clearfy-230__autocomplete-selected {
31
  background: #F0F0F0;
32
  }
33
+ .wbcr-factory-clearfy-230__autocomplete-suggestions strong {
34
  font-weight: normal;
35
  color: #3399FF;
36
  }
37
+ .wbcr-factory-clearfy-230__autocomplete-group {
38
  padding: 2px 5px;
39
  }
40
+ .wbcr-factory-clearfy-230__autocomplete-group strong {
41
  display: block;
42
  border-bottom: 1px solid #000;
43
  }
libs/factory/clearfy/assets/css/page-setup.css CHANGED
@@ -2,13 +2,13 @@
2
  margin: 0;
3
  padding: 0;
4
  }
5
- .w-factory-clearfy-227__form-buttons {
6
  text-align: right;
7
  padding: 10px;
8
  background: #f7f7f7;
9
  border-top: 1px solid #e8e8e8;
10
  }
11
- .w-factory-clearfy-227__form-buttons .w-factory-clearfy-227__skip-button {
12
  background-color: #e7e7e7;
13
  border-color: #e7e7e7;
14
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #e7e7e7;
@@ -16,29 +16,29 @@
16
  margin: 0;
17
  color: #8a8a8a;
18
  }
19
- .w-factory-clearfy-227__form-buttons .w-factory-clearfy-227__skip-button:active,
20
- .w-factory-clearfy-227__form-buttons .w-factory-clearfy-227__skip-button:hover,
21
- .w-factory-clearfy-227__form-buttons .w-factory-clearfy-227__skip-button:focus {
22
  background: #dddddd;
23
  border-color: #dddddd;
24
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #dddddd;
25
  color: #8a8a8a;
26
  }
27
- .w-factory-clearfy-227__form-buttons .w-factory-clearfy-227__continue-button {
28
  background-color: #f57d4f;
29
  border-color: #f77d50;
30
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f77d50;
31
  text-shadow: 0 -1px 1px #f77d50, 1px 0 1px #f77d50, 0 1px 1px #f77d50, -1px 0 1px #f77d50;
32
  margin: 0;
33
  }
34
- .w-factory-clearfy-227__form-buttons .w-factory-clearfy-227__continue-button:active,
35
- .w-factory-clearfy-227__form-buttons .w-factory-clearfy-227__continue-button:hover,
36
- .w-factory-clearfy-227__form-buttons .w-factory-clearfy-227__continue-button:focus {
37
  background: #f86b3b;
38
  border-color: #f86b3b;
39
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f86b3b;
40
  }
41
- .w-factory-clearfy-227-setup {
42
  text-align: center;
43
  max-width: 900px;
44
  margin: 65px auto 24px;
@@ -46,11 +46,11 @@
46
  background: #f1f1f1;
47
  padding: 0;
48
  }
49
- .w-factory-clearfy-227-setup__inner-wrap,
50
- .w-factory-clearfy-227__setup-form .factory-form-layout {
51
  padding: 30px;
52
  }
53
- .w-factory-clearfy-227-setup-steps {
54
  padding: 0 0 24px;
55
  margin: 0;
56
  list-style: none outside;
@@ -60,7 +60,7 @@
60
  display: -webkit-inline-box;
61
  display: inline-flex;
62
  }
63
- .w-factory-clearfy-227-setup-steps li {
64
  width: 100%;
65
  float: left;
66
  padding: 0 0 0.8em;
@@ -70,7 +70,7 @@
70
  border-bottom: 4px solid #ccc;
71
  line-height: 1.4;
72
  }
73
- .w-factory-clearfy-227-setup-steps li::before {
74
  content: "";
75
  border: 4px solid #ccc;
76
  border-radius: 100%;
@@ -83,15 +83,15 @@
83
  margin-bottom: -8px;
84
  background: #fff;
85
  }
86
- .w-factory-clearfy-227-setup-steps li.active {
87
  border-color: #ff1c40 !important;
88
  color: #222;
89
  font-weight: 700;
90
  }
91
- .w-factory-clearfy-227-setup-steps li.active::before {
92
  border-color: #ff1c40 !important;
93
  }
94
- .w-factory-clearfy-227-setup-steps li a {
95
  color: #a16696;
96
  text-decoration: none;
97
  padding: 1.5em;
@@ -99,67 +99,67 @@
99
  position: relative;
100
  z-index: 1;
101
  }
102
- .w-factory-clearfy-227-setup-steps li a:focus,
103
- .w-factory-clearfy-227-setup-steps li a:hover {
104
  color: #111;
105
  text-decoration: underline;
106
  }
107
- /*.w-factory-clearfy-227-setup-steps li.done {
108
  border-color: #f57d4f;
109
  color: #f57d4f
110
  }
111
 
112
- .w-factory-clearfy-227-setup-steps li.done::before {
113
  border-color: #f57d4f;
114
  background: #f57d4f
115
  }*/
116
- .w-factory-clearfy-227-setup .w-factory-clearfy-227-setup-actions {
117
  overflow: hidden;
118
  margin: 20px 0 0;
119
  position: relative;
120
  }
121
- .w-factory-clearfy-227-setup-content p:last-child {
122
  margin-bottom: 0;
123
  }
124
- .w-factory-clearfy-227-setup-content p.store-setup {
125
  margin-top: 0;
126
  }
127
- .w-factory-clearfy-227-setup-footer-links {
128
  font-size: 0.85em;
129
  color: #7b7b7b;
130
  margin: 1.18em auto;
131
  display: inline-block;
132
  text-align: center;
133
  }
134
- .w-factory-clearfy-227-logo {
135
  text-align: center;
136
  }
137
- .w-factory-clearfy-227-logo img {
138
  max-width: 250px;
139
  }
140
- .w-factory-clearfy-227-setup-content {
141
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
142
  margin: 0 0 20px;
143
  background: #fff;
144
  zoom: 1;
145
  text-align: left;
146
  }
147
- .w-factory-clearfy-227-setup-content table {
148
  font-size: 1em;
149
  line-height: 1.75;
150
  color: #666;
151
  }
152
- .w-factory-clearfy-227-setup-content table thead {
153
  background: #f1f1f1;
154
  }
155
- .w-factory-clearfy-227-setup-content table th,
156
- .w-factory-clearfy-227-setup-content table td {
157
  padding: 10px 15px;
158
  }
159
- .w-factory-clearfy-227-setup-content h1,
160
- .w-factory-clearfy-227-setup-content h2,
161
- .w-factory-clearfy-227-setup-content h3,
162
- .w-factory-clearfy-227-setup-content table {
163
  margin: 0 0 20px;
164
  border: 0;
165
  padding: 0;
@@ -167,40 +167,40 @@
167
  clear: none;
168
  font-weight: 500;
169
  }
170
- .w-factory-clearfy-227-setup-content p {
171
  margin: 20px 0;
172
  font-size: 1.15em;
173
  line-height: 1.75;
174
  color: #666;
175
  text-align: center;
176
  }
177
- .w-factory-clearfy-227-setup-step__new_onboarding-welcome {
178
  font-size: 22px !important;
179
  }
180
- .w-factory-clearfy-227-setup-content a {
181
  color: #f57d4f;
182
  }
183
- .w-factory-clearfy-227-setup-content a:focus,
184
- .w-factory-clearfy-227-setup-content a:hover {
185
  color: #111;
186
  }
187
- .w-factory-clearfy-227-setup-content table.tax-rates {
188
  width: 100%;
189
  font-size: 0.92em;
190
  }
191
- .w-factory-clearfy-227-setup-content table.tax-rates th {
192
  padding: 0;
193
  text-align: center;
194
  width: auto;
195
  vertical-align: middle;
196
  }
197
- .w-factory-clearfy-227-setup-content table.tax-rates td {
198
  border: 1px solid #f5f5f5;
199
  padding: 6px;
200
  text-align: center;
201
  vertical-align: middle;
202
  }
203
- .w-factory-clearfy-227-setup-content table.tax-rates td input {
204
  outline: 0;
205
  border: 0;
206
  padding: 0;
@@ -208,18 +208,18 @@
208
  text-align: center;
209
  width: 100%;
210
  }
211
- .w-factory-clearfy-227-setup-content table.tax-rates td.sort {
212
  cursor: move;
213
  color: #ccc;
214
  }
215
- .w-factory-clearfy-227-setup-content table.tax-rates td.sort::before {
216
  content: "\f333";
217
  font-family: dashicons;
218
  }
219
- .w-factory-clearfy-227-setup-content table.tax-rates td.readonly {
220
  background: #f5f5f5;
221
  }
222
- .w-factory-clearfy-227-setup-content table.tax-rates .add {
223
  padding: 1em 0 0 1em;
224
  line-height: 1;
225
  font-size: 1em;
@@ -230,14 +230,14 @@
230
  position: relative;
231
  display: inline-block;
232
  }
233
- .w-factory-clearfy-227-setup-content table.tax-rates .add::before {
234
  content: "\f502";
235
  font-family: dashicons;
236
  position: absolute;
237
  left: 0;
238
  top: 0;
239
  }
240
- .w-factory-clearfy-227-setup-content table.tax-rates .remove {
241
  padding: 1em 0 0 1em;
242
  line-height: 1;
243
  font-size: 1em;
@@ -248,87 +248,87 @@
248
  position: relative;
249
  display: inline-block;
250
  }
251
- .w-factory-clearfy-227-setup-content table.tax-rates .remove::before {
252
  content: "\f182";
253
  font-family: dashicons;
254
  position: absolute;
255
  left: 0;
256
  top: 0;
257
  }
258
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages {
259
  width: 100%;
260
  border-top: 1px solid #eee;
261
  }
262
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages thead th {
263
  display: none;
264
  }
265
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages .page-name {
266
  width: 30%;
267
  font-weight: 700;
268
  }
269
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages td,
270
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages th {
271
  padding: 14px 0;
272
  border-bottom: 1px solid #eee;
273
  }
274
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages td:first-child,
275
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages th:first-child {
276
  padding-right: 9px;
277
  }
278
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages th {
279
  padding-top: 0;
280
  }
281
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages .page-options p {
282
  color: #777;
283
  margin: 6px 0 0 24px;
284
  line-height: 1.75;
285
  }
286
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages .page-options p input {
287
  vertical-align: middle;
288
  margin: 1px 0 0;
289
  height: 1.75em;
290
  width: 1.75em;
291
  line-height: 1.75;
292
  }
293
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-pages .page-options p label {
294
  line-height: 1;
295
  }
296
  @media screen and (max-width: 782px) {
297
- .w-factory-clearfy-227-setup-content .form-table tbody th {
298
  width: auto;
299
  }
300
  }
301
- .w-factory-clearfy-227-setup-content .twitter-share-button {
302
  float: right;
303
  }
304
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps {
305
  overflow: hidden;
306
  margin: 0 0 24px;
307
  padding-bottom: 2px;
308
  }
309
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps h2 {
310
  margin-bottom: 12px;
311
  }
312
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps .w-factory-clearfy-227-setup-next-steps-first {
313
  float: left;
314
  width: 50%;
315
  box-sizing: border-box;
316
  }
317
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps .w-factory-clearfy-227-setup-next-steps-last {
318
  float: right;
319
  width: 50%;
320
  box-sizing: border-box;
321
  }
322
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul {
323
  padding: 0 2em 0 0;
324
  list-style: none outside;
325
  margin: 0;
326
  }
327
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul li a {
328
  display: block;
329
  padding: 0 0 0.75em;
330
  }
331
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .setup-product a.button {
332
  background-color: #f7f7f7;
333
  border-color: #ccc;
334
  color: #23282d;
@@ -342,28 +342,28 @@
342
  padding: 1em;
343
  text-align: center;
344
  }
345
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .setup-product a.button:active,
346
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .setup-product a.button:focus,
347
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .setup-product a.button:hover {
348
  background: #f5f5f5;
349
  border-color: #aaa;
350
  }
351
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .setup-product a.button-primary {
352
  color: #fff;
353
  background-color: #f19570;
354
  border-color: #f77d50;
355
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f77d50;
356
  text-shadow: 0 -1px 1px #f77d50, 1px 0 1px #f77d50, 0 1px 1px #f77d50, -1px 0 1px #f77d50;
357
  }
358
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .setup-product a.button-primary:active,
359
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .setup-product a.button-primary:focus,
360
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .setup-product a.button-primary:hover {
361
  color: #fff;
362
  background: #f77d50;
363
  border-color: #f77d50;
364
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f77d50;
365
  }
366
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul li a::before {
367
  color: #82878c;
368
  font: 400 20px/1 dashicons;
369
  speak: none;
@@ -374,50 +374,50 @@
374
  text-decoration: none !important;
375
  vertical-align: top;
376
  }
377
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .learn-more a::before {
378
  content: "\f105";
379
  }
380
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .video-walkthrough a::before {
381
  content: "\f126";
382
  }
383
- .w-factory-clearfy-227-setup-content .w-factory-clearfy-227-setup-next-steps ul .newsletter a::before {
384
  content: "\f465";
385
  }
386
- .w-factory-clearfy-227-setup-content .updated,
387
- .w-factory-clearfy-227-setup-content .woocommerce-newsletter {
388
  padding: 24px 24px 0;
389
  margin: 0 0 24px;
390
  overflow: hidden;
391
  background: #f5f5f5;
392
  }
393
- .w-factory-clearfy-227-setup-content .updated p,
394
- .w-factory-clearfy-227-setup-content .woocommerce-newsletter p {
395
  padding: 0;
396
  margin: 0 0 12px;
397
  }
398
- .w-factory-clearfy-227-setup-content .updated form,
399
- .w-factory-clearfy-227-setup-content .updated p:last-child,
400
- .w-factory-clearfy-227-setup-content .woocommerce-newsletter form,
401
- .w-factory-clearfy-227-setup-content .woocommerce-newsletter p:last-child {
402
  margin: 0 0 24px;
403
  }
404
- .w-factory-clearfy-227-setup-content .checkbox input[type=checkbox] {
405
  opacity: 0;
406
  position: absolute;
407
  left: -9999px;
408
  }
409
- .w-factory-clearfy-227-setup-content .checkbox label {
410
  position: relative;
411
  display: inline-block;
412
  padding-left: 28px;
413
  }
414
- .w-factory-clearfy-227-setup-content .checkbox label::after,
415
- .w-factory-clearfy-227-setup-content .checkbox label::before {
416
  position: absolute;
417
  content: "";
418
  display: inline-block;
419
  }
420
- .w-factory-clearfy-227-setup-content .checkbox label::before {
421
  height: 16px;
422
  width: 16px;
423
  left: 0;
@@ -426,7 +426,7 @@
426
  background-color: #fff;
427
  border-radius: 3px;
428
  }
429
- .w-factory-clearfy-227-setup-content .checkbox label::after {
430
  height: 5px;
431
  width: 9px;
432
  border-left: 2px solid;
@@ -438,16 +438,16 @@
438
  top: 7px;
439
  color: #fff;
440
  }
441
- .w-factory-clearfy-227-setup-content .checkbox input[type=checkbox] + label::after {
442
  content: none;
443
  }
444
- .w-factory-clearfy-227-setup-content .checkbox input[type=checkbox]:checked + label::after {
445
  content: "";
446
  }
447
- .w-factory-clearfy-227-setup-content .checkbox input[type=checkbox]:focus + label::before {
448
  outline: #3b99fc auto 5px;
449
  }
450
- .w-factory-clearfy-227-setup-content .checkbox input[type=checkbox]:checked + label::before {
451
  background: #935687;
452
  border-color: #935687;
453
  }
2
  margin: 0;
3
  padding: 0;
4
  }
5
+ .w-factory-clearfy-230__form-buttons {
6
  text-align: right;
7
  padding: 10px;
8
  background: #f7f7f7;
9
  border-top: 1px solid #e8e8e8;
10
  }
11
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__skip-button {
12
  background-color: #e7e7e7;
13
  border-color: #e7e7e7;
14
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #e7e7e7;
16
  margin: 0;
17
  color: #8a8a8a;
18
  }
19
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__skip-button:active,
20
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__skip-button:hover,
21
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__skip-button:focus {
22
  background: #dddddd;
23
  border-color: #dddddd;
24
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #dddddd;
25
  color: #8a8a8a;
26
  }
27
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__continue-button {
28
  background-color: #f57d4f;
29
  border-color: #f77d50;
30
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f77d50;
31
  text-shadow: 0 -1px 1px #f77d50, 1px 0 1px #f77d50, 0 1px 1px #f77d50, -1px 0 1px #f77d50;
32
  margin: 0;
33
  }
34
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__continue-button:active,
35
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__continue-button:hover,
36
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__continue-button:focus {
37
  background: #f86b3b;
38
  border-color: #f86b3b;
39
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f86b3b;
40
  }
41
+ .w-factory-clearfy-230-setup {
42
  text-align: center;
43
  max-width: 900px;
44
  margin: 65px auto 24px;
46
  background: #f1f1f1;
47
  padding: 0;
48
  }
49
+ .w-factory-clearfy-230-setup__inner-wrap,
50
+ .w-factory-clearfy-230__setup-form .factory-form-layout {
51
  padding: 30px;
52
  }
53
+ .w-factory-clearfy-230-setup-steps {
54
  padding: 0 0 24px;
55
  margin: 0;
56
  list-style: none outside;
60
  display: -webkit-inline-box;
61
  display: inline-flex;
62
  }
63
+ .w-factory-clearfy-230-setup-steps li {
64
  width: 100%;
65
  float: left;
66
  padding: 0 0 0.8em;
70
  border-bottom: 4px solid #ccc;
71
  line-height: 1.4;
72
  }
73
+ .w-factory-clearfy-230-setup-steps li::before {
74
  content: "";
75
  border: 4px solid #ccc;
76
  border-radius: 100%;
83
  margin-bottom: -8px;
84
  background: #fff;
85
  }
86
+ .w-factory-clearfy-230-setup-steps li.active {
87
  border-color: #ff1c40 !important;
88
  color: #222;
89
  font-weight: 700;
90
  }
91
+ .w-factory-clearfy-230-setup-steps li.active::before {
92
  border-color: #ff1c40 !important;
93
  }
94
+ .w-factory-clearfy-230-setup-steps li a {
95
  color: #a16696;
96
  text-decoration: none;
97
  padding: 1.5em;
99
  position: relative;
100
  z-index: 1;
101
  }
102
+ .w-factory-clearfy-230-setup-steps li a:focus,
103
+ .w-factory-clearfy-230-setup-steps li a:hover {
104
  color: #111;
105
  text-decoration: underline;
106
  }
107
+ /*.w-factory-clearfy-230-setup-steps li.done {
108
  border-color: #f57d4f;
109
  color: #f57d4f
110
  }
111
 
112
+ .w-factory-clearfy-230-setup-steps li.done::before {
113
  border-color: #f57d4f;
114
  background: #f57d4f
115
  }*/
116
+ .w-factory-clearfy-230-setup .w-factory-clearfy-230-setup-actions {
117
  overflow: hidden;
118
  margin: 20px 0 0;
119
  position: relative;
120
  }
121
+ .w-factory-clearfy-230-setup-content p:last-child {
122
  margin-bottom: 0;
123
  }
124
+ .w-factory-clearfy-230-setup-content p.store-setup {
125
  margin-top: 0;
126
  }
127
+ .w-factory-clearfy-230-setup-footer-links {
128
  font-size: 0.85em;
129
  color: #7b7b7b;
130
  margin: 1.18em auto;
131
  display: inline-block;
132
  text-align: center;
133
  }
134
+ .w-factory-clearfy-230-logo {
135
  text-align: center;
136
  }
137
+ .w-factory-clearfy-230-logo img {
138
  max-width: 250px;
139
  }
140
+ .w-factory-clearfy-230-setup-content {
141
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
142
  margin: 0 0 20px;
143
  background: #fff;
144
  zoom: 1;
145
  text-align: left;
146
  }
147
+ .w-factory-clearfy-230-setup-content table {
148
  font-size: 1em;
149
  line-height: 1.75;
150
  color: #666;
151
  }
152
+ .w-factory-clearfy-230-setup-content table thead {
153
  background: #f1f1f1;
154
  }
155
+ .w-factory-clearfy-230-setup-content table th,
156
+ .w-factory-clearfy-230-setup-content table td {
157
  padding: 10px 15px;
158
  }
159
+ .w-factory-clearfy-230-setup-content h1,
160
+ .w-factory-clearfy-230-setup-content h2,
161
+ .w-factory-clearfy-230-setup-content h3,
162
+ .w-factory-clearfy-230-setup-content table {
163
  margin: 0 0 20px;
164
  border: 0;
165
  padding: 0;
167
  clear: none;
168
  font-weight: 500;
169
  }
170
+ .w-factory-clearfy-230-setup-content p {
171
  margin: 20px 0;
172
  font-size: 1.15em;
173
  line-height: 1.75;
174
  color: #666;
175
  text-align: center;
176
  }
177
+ .w-factory-clearfy-230-setup-step__new_onboarding-welcome {
178
  font-size: 22px !important;
179
  }
180
+ .w-factory-clearfy-230-setup-content a {
181
  color: #f57d4f;
182
  }
183
+ .w-factory-clearfy-230-setup-content a:focus,
184
+ .w-factory-clearfy-230-setup-content a:hover {
185
  color: #111;
186
  }
187
+ .w-factory-clearfy-230-setup-content table.tax-rates {
188
  width: 100%;
189
  font-size: 0.92em;
190
  }
191
+ .w-factory-clearfy-230-setup-content table.tax-rates th {
192
  padding: 0;
193
  text-align: center;
194
  width: auto;
195
  vertical-align: middle;
196
  }
197
+ .w-factory-clearfy-230-setup-content table.tax-rates td {
198
  border: 1px solid #f5f5f5;
199
  padding: 6px;
200
  text-align: center;
201
  vertical-align: middle;
202
  }
203
+ .w-factory-clearfy-230-setup-content table.tax-rates td input {
204
  outline: 0;
205
  border: 0;
206
  padding: 0;
208
  text-align: center;
209
  width: 100%;
210
  }
211
+ .w-factory-clearfy-230-setup-content table.tax-rates td.sort {
212
  cursor: move;
213
  color: #ccc;
214
  }
215
+ .w-factory-clearfy-230-setup-content table.tax-rates td.sort::before {
216
  content: "\f333";
217
  font-family: dashicons;
218
  }
219
+ .w-factory-clearfy-230-setup-content table.tax-rates td.readonly {
220
  background: #f5f5f5;
221
  }
222
+ .w-factory-clearfy-230-setup-content table.tax-rates .add {
223
  padding: 1em 0 0 1em;
224
  line-height: 1;
225
  font-size: 1em;
230
  position: relative;
231
  display: inline-block;
232
  }
233
+ .w-factory-clearfy-230-setup-content table.tax-rates .add::before {
234
  content: "\f502";
235
  font-family: dashicons;
236
  position: absolute;
237
  left: 0;
238
  top: 0;
239
  }
240
+ .w-factory-clearfy-230-setup-content table.tax-rates .remove {
241
  padding: 1em 0 0 1em;
242
  line-height: 1;
243
  font-size: 1em;
248
  position: relative;
249
  display: inline-block;
250
  }
251
+ .w-factory-clearfy-230-setup-content table.tax-rates .remove::before {
252
  content: "\f182";
253
  font-family: dashicons;
254
  position: absolute;
255
  left: 0;
256
  top: 0;
257
  }
258
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages {
259
  width: 100%;
260
  border-top: 1px solid #eee;
261
  }
262
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages thead th {
263
  display: none;
264
  }
265
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages .page-name {
266
  width: 30%;
267
  font-weight: 700;
268
  }
269
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages td,
270
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages th {
271
  padding: 14px 0;
272
  border-bottom: 1px solid #eee;
273
  }
274
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages td:first-child,
275
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages th:first-child {
276
  padding-right: 9px;
277
  }
278
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages th {
279
  padding-top: 0;
280
  }
281
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages .page-options p {
282
  color: #777;
283
  margin: 6px 0 0 24px;
284
  line-height: 1.75;
285
  }
286
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages .page-options p input {
287
  vertical-align: middle;
288
  margin: 1px 0 0;
289
  height: 1.75em;
290
  width: 1.75em;
291
  line-height: 1.75;
292
  }
293
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages .page-options p label {
294
  line-height: 1;
295
  }
296
  @media screen and (max-width: 782px) {
297
+ .w-factory-clearfy-230-setup-content .form-table tbody th {
298
  width: auto;
299
  }
300
  }
301
+ .w-factory-clearfy-230-setup-content .twitter-share-button {
302
  float: right;
303
  }
304
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps {
305
  overflow: hidden;
306
  margin: 0 0 24px;
307
  padding-bottom: 2px;
308
  }
309
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps h2 {
310
  margin-bottom: 12px;
311
  }
312
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps .w-factory-clearfy-230-setup-next-steps-first {
313
  float: left;
314
  width: 50%;
315
  box-sizing: border-box;
316
  }
317
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps .w-factory-clearfy-230-setup-next-steps-last {
318
  float: right;
319
  width: 50%;
320
  box-sizing: border-box;
321
  }
322
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul {
323
  padding: 0 2em 0 0;
324
  list-style: none outside;
325
  margin: 0;
326
  }
327
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul li a {
328
  display: block;
329
  padding: 0 0 0.75em;
330
  }
331
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button {
332
  background-color: #f7f7f7;
333
  border-color: #ccc;
334
  color: #23282d;
342
  padding: 1em;
343
  text-align: center;
344
  }
345
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button:active,
346
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button:focus,
347
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button:hover {
348
  background: #f5f5f5;
349
  border-color: #aaa;
350
  }
351
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button-primary {
352
  color: #fff;
353
  background-color: #f19570;
354
  border-color: #f77d50;
355
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f77d50;
356
  text-shadow: 0 -1px 1px #f77d50, 1px 0 1px #f77d50, 0 1px 1px #f77d50, -1px 0 1px #f77d50;
357
  }
358
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button-primary:active,
359
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button-primary:focus,
360
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button-primary:hover {
361
  color: #fff;
362
  background: #f77d50;
363
  border-color: #f77d50;
364
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f77d50;
365
  }
366
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul li a::before {
367
  color: #82878c;
368
  font: 400 20px/1 dashicons;
369
  speak: none;
374
  text-decoration: none !important;
375
  vertical-align: top;
376
  }
377
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .learn-more a::before {
378
  content: "\f105";
379
  }
380
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .video-walkthrough a::before {
381
  content: "\f126";
382
  }
383
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .newsletter a::before {
384
  content: "\f465";
385
  }
386
+ .w-factory-clearfy-230-setup-content .updated,
387
+ .w-factory-clearfy-230-setup-content .woocommerce-newsletter {
388
  padding: 24px 24px 0;
389
  margin: 0 0 24px;
390
  overflow: hidden;
391
  background: #f5f5f5;
392
  }
393
+ .w-factory-clearfy-230-setup-content .updated p,
394
+ .w-factory-clearfy-230-setup-content .woocommerce-newsletter p {
395
  padding: 0;
396
  margin: 0 0 12px;
397
  }
398
+ .w-factory-clearfy-230-setup-content .updated form,
399
+ .w-factory-clearfy-230-setup-content .updated p:last-child,
400
+ .w-factory-clearfy-230-setup-content .woocommerce-newsletter form,
401
+ .w-factory-clearfy-230-setup-content .woocommerce-newsletter p:last-child {
402
  margin: 0 0 24px;
403
  }
404
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox] {
405
  opacity: 0;
406
  position: absolute;
407
  left: -9999px;
408
  }
409
+ .w-factory-clearfy-230-setup-content .checkbox label {
410
  position: relative;
411
  display: inline-block;
412
  padding-left: 28px;
413
  }
414
+ .w-factory-clearfy-230-setup-content .checkbox label::after,
415
+ .w-factory-clearfy-230-setup-content .checkbox label::before {
416
  position: absolute;
417
  content: "";
418
  display: inline-block;
419
  }
420
+ .w-factory-clearfy-230-setup-content .checkbox label::before {
421
  height: 16px;
422
  width: 16px;
423
  left: 0;
426
  background-color: #fff;
427
  border-radius: 3px;
428
  }
429
+ .w-factory-clearfy-230-setup-content .checkbox label::after {
430
  height: 5px;
431
  width: 9px;
432
  border-left: 2px solid;
438
  top: 7px;
439
  color: #fff;
440
  }
441
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox] + label::after {
442
  content: none;
443
  }
444
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox]:checked + label::after {
445
  content: "";
446
  }
447
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox]:focus + label::before {
448
  outline: #3b99fc auto 5px;
449
  }
450
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox]:checked + label::before {
451
  background: #935687;
452
  border-color: #935687;
453
  }
libs/factory/clearfy/assets/js/clearfy-globals.js CHANGED
@@ -2,8 +2,8 @@
2
  * Глобальный JS файл, который регистрирует глобальные переменные с общими методами для всех компонентов Clearfy
3
  * и самого Clearfy.
4
  *
5
- * $.wbcr_factory_clearfy_227.app - методы для работы с приложением. Скрыть, показать уведомления.
6
- * $.wbcr_factory_clearfy_227.hooks - это иммитация хуков и фильтров аналогично тем, что используются в Wordpress
7
  *
8
  * Copyright 2018, Webcraftic, http://webcraftic.com
9
  *
@@ -13,16 +13,16 @@
13
  (function($) {
14
  'use strict';
15
 
16
- if( !$.wbcr_factory_clearfy_227 ) {
17
- $.wbcr_factory_clearfy_227 = {};
18
  }
19
 
20
  //todo: Переопредление для совместимости со старыми версиями плагинов.
21
- $.wbcr_factory_clearfy_227.filters = $.wbcr_factory_clearfy_227.filters || $.wfactory_436.filters;
22
  //todo: Переопредление для совместимости со старыми версиями плагинов.
23
- $.wbcr_factory_clearfy_227.hooks = $.wbcr_factory_clearfy_227.hooks || $.wfactory_436.hooks;
24
 
25
- $.wbcr_factory_clearfy_227.app = $.wbcr_factory_clearfy_227.app || {
26
  /**
27
  * Создает и показывает уведомление внутри интерфейса Clearfy
28
  *
@@ -68,12 +68,12 @@
68
  /**
69
  * Хук выполняет проивольную функцию, после того как уведомление отображено
70
  * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
71
- * Пример регистрации хука $.wfactory_436.hooks.add('wbcr/factory_clearfy_227/updated',
72
  * function(noticeId) {});
73
  * @param {string} noticeId - id уведомления
74
  */
75
- $.wfactory_436.hooks.run('wbcr/factory_clearfy_227/showed_notice', [noticeId]);
76
- $.wfactory_436.hooks.run('wbcr/clearfy/showed_notice', [noticeId]);
77
  });
78
 
79
  return noticeId;
@@ -98,13 +98,13 @@
98
  /**
99
  * Хук выполняет проивольную функцию, после того как уведомление скрыто
100
  * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
101
- * Пример регистрации хука $.wfactory_436.hooks.add('wbcr/factory_clearfy_227/updated',
102
  * function(noticeId)
103
  * {});
104
  * @param {string} noticeId - id уведомления
105
  */
106
- $.wfactory_436.hooks.run('wbcr/factory_clearfy_227/hidded_notice', [noticeId]);
107
- $.wfactory_436.hooks.run('wbcr/clearfy/hidded_notice', [noticeId]);
108
  });
109
  },
110
 
@@ -121,7 +121,7 @@
121
 
122
  };
123
 
124
- $.wfactory_436.hooks.add('core/components/pre_activate', function(button) {
125
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
126
  if( !$('#WBCR').length ) {
127
  return false;
@@ -137,7 +137,7 @@
137
  }
138
  });
139
 
140
- $.wfactory_436.hooks.add('core/components/deactivated', function(button, data, response) {
141
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
142
  if( !$('#WBCR').length ) {
143
  return false;
@@ -156,7 +156,7 @@
156
  }
157
  });
158
 
159
- $.wfactory_436.hooks.add('core/components/deleted', function(button) {
160
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
161
  if( !$('#WBCR').length ) {
162
  return false;
@@ -175,32 +175,32 @@
175
  }
176
  });
177
 
178
- $.wfactory_436.hooks.add('core/components/activation_error', function(plugin, button, response) {
179
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
180
- if( !($('#WBCR').length && $.wbcr_factory_clearfy_227) ) {
181
  return false;
182
  }
183
 
184
  button.closest('.plugin-card').addClass('plugin-status-deactive');
185
 
186
  if( response.data && response.data.error_message ) {
187
- $.wbcr_factory_clearfy_227.app.showNotice(response.data.error_message, 'danger');
188
  }
189
  });
190
 
191
- $.wfactory_436.hooks.add('core/components/update_error', function(button, data, response) {
192
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
193
- if( !($('#WBCR').length && $.wbcr_factory_clearfy_227) ) {
194
  return false;
195
  }
196
 
197
  if( response.data && response.data.error_message ) {
198
- $.wbcr_factory_clearfy_227.app.showNotice(response.data.error_message, 'danger');
199
  }
200
 
201
  });
202
 
203
- $.wfactory_436.hooks.add('core/components/activated', function(button, data, response) {
204
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
205
  if( !$('#WBCR').length ) {
206
  return false;
@@ -209,13 +209,13 @@
209
  button.closest('.plugin-card').removeClass('plugin-status-deactive');
210
  });
211
 
212
- $.wfactory_436.hooks.add('core/components/ajax_error', function(xhr, ajaxOptions, thrownError) {
213
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
214
- if( !($('#WBCR').length && $.wbcr_factory_clearfy_227) ) {
215
  return false;
216
  }
217
 
218
- $.wbcr_factory_clearfy_227.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
219
  });
220
 
221
  })(jQuery);
2
  * Глобальный JS файл, который регистрирует глобальные переменные с общими методами для всех компонентов Clearfy
3
  * и самого Clearfy.
4
  *
5
+ * $.wbcr_factory_clearfy_230.app - методы для работы с приложением. Скрыть, показать уведомления.
6
+ * $.wbcr_factory_clearfy_230.hooks - это иммитация хуков и фильтров аналогично тем, что используются в Wordpress
7
  *
8
  * Copyright 2018, Webcraftic, http://webcraftic.com
9
  *
13
  (function($) {
14
  'use strict';
15
 
16
+ if( !$.wbcr_factory_clearfy_230 ) {
17
+ $.wbcr_factory_clearfy_230 = {};
18
  }
19
 
20
  //todo: Переопредление для совместимости со старыми версиями плагинов.
21
+ $.wbcr_factory_clearfy_230.filters = $.wbcr_factory_clearfy_230.filters || $.wfactory_439.filters;
22
  //todo: Переопредление для совместимости со старыми версиями плагинов.
23
+ $.wbcr_factory_clearfy_230.hooks = $.wbcr_factory_clearfy_230.hooks || $.wfactory_439.hooks;
24
 
25
+ $.wbcr_factory_clearfy_230.app = $.wbcr_factory_clearfy_230.app || {
26
  /**
27
  * Создает и показывает уведомление внутри интерфейса Clearfy
28
  *
68
  /**
69
  * Хук выполняет проивольную функцию, после того как уведомление отображено
70
  * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
71
+ * Пример регистрации хука $.wfactory_439.hooks.add('wbcr/factory_clearfy_230/updated',
72
  * function(noticeId) {});
73
  * @param {string} noticeId - id уведомления
74
  */
75
+ $.wfactory_439.hooks.run('wbcr/factory_clearfy_230/showed_notice', [noticeId]);
76
+ $.wfactory_439.hooks.run('wbcr/clearfy/showed_notice', [noticeId]);
77
  });
78
 
79
  return noticeId;
98
  /**
99
  * Хук выполняет проивольную функцию, после того как уведомление скрыто
100
  * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
101
+ * Пример регистрации хука $.wfactory_439.hooks.add('wbcr/factory_clearfy_230/updated',
102
  * function(noticeId)
103
  * {});
104
  * @param {string} noticeId - id уведомления
105
  */
106
+ $.wfactory_439.hooks.run('wbcr/factory_clearfy_230/hidded_notice', [noticeId]);
107
+ $.wfactory_439.hooks.run('wbcr/clearfy/hidded_notice', [noticeId]);
108
  });
109
  },
110
 
121
 
122
  };
123
 
124
+ $.wfactory_439.hooks.add('core/components/pre_activate', function(button) {
125
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
126
  if( !$('#WBCR').length ) {
127
  return false;
137
  }
138
  });
139
 
140
+ $.wfactory_439.hooks.add('core/components/deactivated', function(button, data, response) {
141
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
142
  if( !$('#WBCR').length ) {
143
  return false;
156
  }
157
  });
158
 
159
+ $.wfactory_439.hooks.add('core/components/deleted', function(button) {
160
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
161
  if( !$('#WBCR').length ) {
162
  return false;
175
  }
176
  });
177
 
178
+ $.wfactory_439.hooks.add('core/components/activation_error', function(plugin, button, response) {
179
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
180
+ if( !($('#WBCR').length && $.wbcr_factory_clearfy_230) ) {
181
  return false;
182
  }
183
 
184
  button.closest('.plugin-card').addClass('plugin-status-deactive');
185
 
186
  if( response.data && response.data.error_message ) {
187
+ $.wbcr_factory_clearfy_230.app.showNotice(response.data.error_message, 'danger');
188
  }
189
  });
190
 
191
+ $.wfactory_439.hooks.add('core/components/update_error', function(button, data, response) {
192
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
193
+ if( !($('#WBCR').length && $.wbcr_factory_clearfy_230) ) {
194
  return false;
195
  }
196
 
197
  if( response.data && response.data.error_message ) {
198
+ $.wbcr_factory_clearfy_230.app.showNotice(response.data.error_message, 'danger');
199
  }
200
 
201
  });
202
 
203
+ $.wfactory_439.hooks.add('core/components/activated', function(button, data, response) {
204
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
205
  if( !$('#WBCR').length ) {
206
  return false;
209
  button.closest('.plugin-card').removeClass('plugin-status-deactive');
210
  });
211
 
212
+ $.wfactory_439.hooks.add('core/components/ajax_error', function(xhr, ajaxOptions, thrownError) {
213
  // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
214
+ if( !($('#WBCR').length && $.wbcr_factory_clearfy_230) ) {
215
  return false;
216
  }
217
 
218
+ $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
219
  });
220
 
221
  })(jQuery);
libs/factory/clearfy/assets/js/clearfy-license-manager.js CHANGED
@@ -20,7 +20,7 @@ jQuery(function($) {
20
  licenseAction = $(this).data('action');
21
 
22
  for( i = 0; i < allNotices.length; i++ ) {
23
- $.wbcr_factory_clearfy_227.app.hideNotice(allNotices[i]);
24
  }
25
 
26
  $('.wcl-control-btn').hide();
@@ -53,7 +53,7 @@ jQuery(function($) {
53
 
54
  if( response.data ) {
55
  console.log(response.data.error_message);
56
- noticeId = $.wbcr_factory_clearfy_227.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
57
  allNotices.push(noticeId);
58
  } else {
59
  console.log(response);
@@ -63,7 +63,7 @@ jQuery(function($) {
63
  }
64
 
65
  if( response.data && response.data.message ) {
66
- noticeId = $.wbcr_factory_clearfy_227.app.showNotice(response.data.message, 'success');
67
  allNotices.push(noticeId);
68
 
69
  // todo: доработать генерацию формы, вместо перезагрузки страницы
@@ -80,7 +80,7 @@ jQuery(function($) {
80
  console.log(xhr.responseText);
81
  console.log(thrownError);
82
 
83
- var noticeId = $.wbcr_factory_clearfy_227.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
84
 
85
  allNotices.push(noticeId);
86
  }
20
  licenseAction = $(this).data('action');
21
 
22
  for( i = 0; i < allNotices.length; i++ ) {
23
+ $.wbcr_factory_clearfy_230.app.hideNotice(allNotices[i]);
24
  }
25
 
26
  $('.wcl-control-btn').hide();
53
 
54
  if( response.data ) {
55
  console.log(response.data.error_message);
56
+ noticeId = $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
57
  allNotices.push(noticeId);
58
  } else {
59
  console.log(response);
63
  }
64
 
65
  if( response.data && response.data.message ) {
66
+ noticeId = $.wbcr_factory_clearfy_230.app.showNotice(response.data.message, 'success');
67
  allNotices.push(noticeId);
68
 
69
  // todo: доработать генерацию формы, вместо перезагрузки страницы
80
  console.log(xhr.responseText);
81
  console.log(thrownError);
82
 
83
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
84
 
85
  allNotices.push(noticeId);
86
  }
libs/factory/clearfy/assets/js/clearfy-search-options.js CHANGED
@@ -28,10 +28,10 @@
28
  throw new Error('Global var {wfactory_clearfy_search_options} is not declared.');
29
  }
30
 
31
- $('#wbcr-factory-clearfy-227__autocomplete').wfactory_clearfy_autocomplete({
32
  lookup: wfactory_clearfy_search_options,
33
  onSelect: function(suggestion) {
34
- $('#wbcr-factory-clearfy-227__autocomplete').prop("disabled", true);
35
  window.location.href = suggestion.data.page_url;
36
  }
37
  });
28
  throw new Error('Global var {wfactory_clearfy_search_options} is not declared.');
29
  }
30
 
31
+ $('#wbcr-factory-clearfy-230__autocomplete').wfactory_clearfy_autocomplete({
32
  lookup: wfactory_clearfy_search_options,
33
  onSelect: function(suggestion) {
34
+ $('#wbcr-factory-clearfy-230__autocomplete').prop("disabled", true);
35
  window.location.href = suggestion.data.page_url;
36
  }
37
  });
libs/factory/clearfy/assets/js/clearfy-widgets.js ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+ $('#wbcr-factory-subscribe-widget__subscribe-form').submit(function(e) {
3
+ e.preventDefault();
4
+ var agree = $(this).find('[name=agree_terms]:checked');
5
+ if( agree.length === 0 ) {
6
+ return;
7
+ }
8
+
9
+ $.ajax({
10
+ method: "POST",
11
+ url: "https://clearfy.pro/wp-json/mailerlite/v1/subscribe/",
12
+ data: {
13
+ email: $('#wbcr-factory-subscribe-widget__email').val(),
14
+ group_id: $('#wbcr-factory-subscribe-widget__group-id').val(),
15
+ },
16
+ success: function(data) {
17
+ if( !data.message ) {
18
+ if( data.subscribed ) {
19
+ $(".wbcr-factory-subscribe-widget__text--success").show();
20
+ } else {
21
+ $(".wbcr-factory-subscribe-widget__text--success2").show();
22
+ }
23
+ } else {
24
+ console.log(data.message);
25
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + data.message + ']', 'danger');
26
+ setTimeout(function() {
27
+ $.wbcr_factory_clearfy_230.app.hideNotice(noticeId);
28
+ }, 5000);
29
+ }
30
+ },
31
+ error: function(xhr, ajaxOptions, thrownError) {
32
+
33
+ console.log(xhr.status);
34
+ console.log(xhr.responseText);
35
+ console.log(thrownError);
36
+
37
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
38
+ setTimeout(function() {
39
+ $.wbcr_factory_clearfy_230.app.hideNotice(noticeId);
40
+ }, 5000);
41
+ }
42
+ });
43
+ });
44
+ });
libs/factory/clearfy/assets/js/globals.js DELETED
@@ -1,203 +0,0 @@
1
- /*!
2
- * Глобальный JS файл, который регистрирует глобальные переменные с общими методами для всех компонентов Clearfy
3
- * и самого Clearfy.
4
- *
5
- * $.wbcr_factory_clearfy_224.app - методы для работы с приложением. Скрыть, показать уведомления.
6
- * $.wbcr_factory_clearfy_224.hooks - это иммитация хуков и фильтров аналогично тем, что используются в Wordpress
7
- *
8
- * Copyright 2018, Webcraftic, http://webcraftic.com
9
- *
10
- * @since 2.0.5
11
- * @pacakge clearfy
12
- */
13
- (function($) {
14
- 'use strict';
15
-
16
- if( !$.wbcr_factory_clearfy_224 ) {
17
- $.wbcr_factory_clearfy_224 = {};
18
- }
19
-
20
- $.wbcr_factory_clearfy_224.app = $.wbcr_factory_clearfy_224.app || {
21
- /**
22
- * Создает и показывает уведомление внутри интерфейса Clearfy
23
- *
24
- * @param {string} message - сообщение об ошибке или предупреждение
25
- * @param {string} type - тип уведомления (error, warning, success)
26
- */
27
- showNotice: function(message, type) {
28
- var noticeContanier = $('<div></div>'),
29
- noticeInnerWrap = $('<p></p>'),
30
- dashicon = $('<span></span>'),
31
- dashiconClass,
32
- noticeId = this.makeid();
33
-
34
- if( !type ) {
35
- type = 'warning';
36
- }
37
-
38
- noticeContanier.addClass('alert', 'wbcr-factory-warning-notice')
39
- .addClass('alert-' + type).addClass('wbcr-factory-' + type + '-notice');
40
-
41
- noticeContanier.append(noticeInnerWrap);
42
- noticeContanier.attr('id', 'uq-' + noticeId);
43
-
44
- if( type == 'success' ) {
45
- dashiconClass = 'dashicons-plus';
46
- } else if( type == 'error' ) {
47
- dashiconClass = 'dashicons-no';
48
- } else {
49
- dashiconClass = 'dashicons-warning';
50
- }
51
-
52
- dashicon.addClass('dashicons').addClass(dashiconClass);
53
- noticeInnerWrap.prepend(dashicon);
54
- dashicon.after(message);
55
-
56
- $([document.documentElement, document.body]).animate({
57
- scrollTop: $('.wbcr-factory-content').offset().top - 100
58
- }, 300, function() {
59
- noticeContanier.hide();
60
- $('.wbcr-factory-content').prepend(noticeContanier);
61
- noticeContanier.fadeIn();
62
-
63
- /**
64
- * Хук выполняет проивольную функцию, после того как уведомление отображено
65
- * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
66
- * Пример регистрации хука $.wbcr_factory_clearfy_224.hooks.add('wbcr/factory_clearfy_224/updated',
67
- * function(noticeId) {});
68
- * @param {string} noticeId - id уведомления
69
- */
70
- $.wbcr_factory_clearfy_224.hooks.run('wbcr/factory_clearfy_224/showed_notice', [noticeId]);
71
- $.wbcr_factory_clearfy_224.hooks.run('wbcr/clearfy/showed_notice', [noticeId]);
72
- });
73
-
74
- return noticeId;
75
- },
76
-
77
- /**
78
- * Удаляет уведомление из интерфейса Clearfy
79
- *
80
- * @param {string} noticeId - id уведомления
81
- */
82
- hideNotice: function(noticeId) {
83
- var el;
84
- if( !noticeId ) {
85
- el = $('.wbcr-factory-content').find('.alert');
86
- } else {
87
- el = $('#uq-' + noticeId);
88
- }
89
-
90
- el.fadeOut(500, function(e) {
91
- $(e).remove();
92
-
93
- /**
94
- * Хук выполняет проивольную функцию, после того как уведомление скрыто
95
- * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
96
- * Пример регистрации хука $.wbcr_factory_clearfy_224.hooks.add('wbcr/factory_clearfy_224/updated',
97
- * function(noticeId)
98
- * {});
99
- * @param {string} noticeId - id уведомления
100
- */
101
- $.wbcr_factory_clearfy_224.hooks.run('wbcr/factory_clearfy_224/hidded_notice', [noticeId]);
102
- $.wbcr_factory_clearfy_224.hooks.run('wbcr/clearfy/hidded_notice', [noticeId]);
103
- });
104
- },
105
-
106
- makeid: function() {
107
- var text = "";
108
- var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
109
-
110
- for( var i = 0; i < 32; i++ ) {
111
- text += possible.charAt(Math.floor(Math.random() * possible.length));
112
- }
113
-
114
- return text;
115
- }
116
-
117
- };
118
-
119
- $.wbcr_factory_clearfy_224.filters = $.wbcr_factory_clearfy_224.filters || {
120
-
121
- /**
122
- * A set of registered filters.
123
- */
124
- _items: {},
125
-
126
- /**
127
- * A set of priorities of registered filters.
128
- */
129
- _priorities: {},
130
-
131
- /**
132
- * Applies filters to a given input value.
133
- */
134
- run: function(filterName, args) {
135
- var input = args && args.length > 0 ? args[0] : null;
136
- if( !this._items[filterName] ) {
137
- return input;
138
- }
139
-
140
- for( var i in this._priorities[filterName] ) {
141
- if( !this._priorities[filterName].hasOwnProperty(i) ) {
142
- continue;
143
- }
144
-
145
- var priority = this._priorities[filterName][i];
146
-
147
- for( var k = 0; k < this._items[filterName][priority].length; k++ ) {
148
- var f = this._items[filterName][priority][k];
149
- input = f.apply(f, args);
150
- }
151
- }
152
-
153
- return input;
154
- },
155
-
156
- /**
157
- * Registers a new filter.
158
- */
159
- add: function(filterName, callback, priority) {
160
-
161
- if( !priority ) {
162
- priority = 10;
163
- }
164
-
165
- if( !this._items[filterName] ) {
166
- this._items[filterName] = {};
167
- }
168
- if( !this._items[filterName][priority] ) {
169
- this._items[filterName][priority] = [];
170
- }
171
- this._items[filterName][priority].push(callback);
172
-
173
- if( !this._priorities[filterName] ) {
174
- this._priorities[filterName] = [];
175
- }
176
- if( $.inArray(priority, this._priorities[filterName]) === -1 ) {
177
- this._priorities[filterName].push(priority);
178
- }
179
-
180
- this._priorities[filterName].sort(function(a, b) {
181
- return a - b;
182
- });
183
- }
184
- };
185
-
186
- $.wbcr_factory_clearfy_224.hooks = $.wbcr_factory_clearfy_224.hooks || {
187
-
188
- /**
189
- * Applies filters to a given input value.
190
- */
191
- run: function(filterName, args) {
192
- $.wbcr_factory_clearfy_224.filters.run(filterName, args);
193
- },
194
-
195
- /**
196
- * Registers a new filter.
197
- */
198
- add: function(filterName, callback, priority) {
199
- $.wbcr_factory_clearfy_224.filters.add(filterName, callback, priority);
200
- }
201
- };
202
-
203
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/clearfy/assets/js/libs/jquery.autocomplete.min.js CHANGED
@@ -5,4 +5,4 @@
5
  * Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
6
  * For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
7
  */
8
- !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports&&"function"==typeof require?require("jquery"):jQuery)}(function(a){"use strict";function b(c,d){var e=this;e.element=c,e.el=a(c),e.suggestions=[],e.badQueries=[],e.selectedIndex=-1,e.currentValue=e.element.value,e.timeoutId=null,e.cachedResponse={},e.onChangeTimeout=null,e.onChange=null,e.isLocal=!1,e.suggestionsContainer=null,e.noSuggestionsContainer=null,e.options=a.extend(!0,{},b.defaults,d),e.classes={selected:"wbcr-factory-clearfy-227__autocomplete-selected",suggestion:"wbcr-factory-clearfy-227__autocomplete-suggestion"},e.hint=null,e.hintValue="",e.selection=null,e.initialize(),e.setOptions(d)}function c(a,b,c){return a.value.toLowerCase().indexOf(c)!==-1}function d(b){return"string"==typeof b?a.parseJSON(b):b}function e(a,b){if(!b)return a.value;var c="("+g.escapeRegExChars(b)+")";return a.value.replace(new RegExp(c,"gi"),"<strong>$1</strong>").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/&lt;(\/?strong)&gt;/g,"<$1>")}function f(a,b){return'<div class="wbcr-factory-clearfy-227__autocomplete-group">'+b+"</div>"}var g=function(){return{escapeRegExChars:function(a){return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(a){var b=document.createElement("div");return b.className=a,b.style.position="absolute",b.style.display="none",b}}}(),h={ESC:27,TAB:9,RETURN:13,LEFT:37,UP:38,RIGHT:39,DOWN:40},i=a.noop;b.utils=g,a.Autocomplete=b,b.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,width:"auto",minChars:1,maxHeight:300,deferRequestBy:0,params:{},formatResult:e,formatGroup:f,delimiter:null,zIndex:9999,type:"GET",noCache:!1,onSearchStart:i,onSearchComplete:i,onSearchError:i,preserveInput:!1,containerClass:"wbcr-factory-clearfy-227__autocomplete-suggestions",tabDisabled:!1,dataType:"text",currentRequest:null,triggerSelectOnValidInput:!0,preventBadQueries:!0,lookupFilter:c,paramName:"query",transformResult:d,showNoSuggestionNotice:!1,noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1},b.prototype={initialize:function(){var c,d=this,e="."+d.classes.suggestion,f=d.classes.selected,g=d.options;d.element.setAttribute("autocomplete","off"),d.noSuggestionsContainer=a('<div class="autocomplete-no-suggestion"></div>').html(this.options.noSuggestionNotice).get(0),d.suggestionsContainer=b.utils.createNode(g.containerClass),c=a(d.suggestionsContainer),c.appendTo(g.appendTo||"body"),"auto"!==g.width&&c.css("width",g.width),c.on("mouseover.autocomplete",e,function(){d.activate(a(this).data("index"))}),c.on("mouseout.autocomplete",function(){d.selectedIndex=-1,c.children("."+f).removeClass(f)}),c.on("click.autocomplete",e,function(){d.select(a(this).data("index"))}),c.on("click.autocomplete",function(){clearTimeout(d.blurTimeoutId)}),d.fixPositionCapture=function(){d.visible&&d.fixPosition()},a(window).on("resize.autocomplete",d.fixPositionCapture),d.el.on("keydown.autocomplete",function(a){d.onKeyPress(a)}),d.el.on("keyup.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("blur.autocomplete",function(){d.onBlur()}),d.el.on("focus.autocomplete",function(){d.onFocus()}),d.el.on("change.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("input.autocomplete",function(a){d.onKeyUp(a)})},onFocus:function(){var a=this;a.disabled||(a.fixPosition(),a.el.val().length>=a.options.minChars&&a.onValueChange())},onBlur:function(){var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);b.blurTimeoutId=setTimeout(function(){b.hide(),b.selection&&b.currentValue!==e&&(c.onInvalidateSelection||a.noop).call(b.element)},200)},abortAjax:function(){var a=this;a.currentRequest&&(a.currentRequest.abort(),a.currentRequest=null)},setOptions:function(b){var c=this,d=a.extend({},c.options,b);c.isLocal=Array.isArray(d.lookup),c.isLocal&&(d.lookup=c.verifySuggestionsFormat(d.lookup)),d.orientation=c.validateOrientation(d.orientation,"bottom"),a(c.suggestionsContainer).css({"max-height":d.maxHeight+"px",width:d.width+"px","z-index":d.zIndex}),this.options=d},clearCache:function(){this.cachedResponse={},this.badQueries=[]},clear:function(){this.clearCache(),this.currentValue="",this.suggestions=[]},disable:function(){var a=this;a.disabled=!0,clearTimeout(a.onChangeTimeout),a.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){var b=this,c=a(b.suggestionsContainer),d=c.parent().get(0);if(d===document.body||b.options.forceFixPosition){var e=b.options.orientation,f=c.outerHeight(),g=b.el.outerHeight(),h=b.el.offset(),i={top:h.top,left:h.left};if("auto"===e){var j=a(window).height(),k=a(window).scrollTop(),l=-k+h.top-f,m=k+j-(h.top+g+f);e=Math.max(l,m)===l?"top":"bottom"}if("top"===e?i.top+=-f:i.top+=g,d!==document.body){var n,o=c.css("opacity");b.visible||c.css("opacity",0).show(),n=c.offsetParent().offset(),i.top-=n.top,i.top+=d.scrollTop,i.left-=n.left,b.visible||c.css("opacity",o).hide()}"auto"===b.options.width&&(i.width=b.el.outerWidth()+"px"),c.css(i)}},isCursorAtEnd:function(){var a,b=this,c=b.el.val().length,d=b.element.selectionStart;return"number"==typeof d?d===c:!document.selection||(a=document.selection.createRange(),a.moveStart("character",-c),c===a.text.length)},onKeyPress:function(a){var b=this;if(!b.disabled&&!b.visible&&a.which===h.DOWN&&b.currentValue)return void b.suggest();if(!b.disabled&&b.visible){switch(a.which){case h.ESC:b.el.val(b.currentValue),b.hide();break;case h.RIGHT:if(b.hint&&b.options.onHint&&b.isCursorAtEnd()){b.selectHint();break}return;case h.TAB:if(b.hint&&b.options.onHint)return void b.selectHint();if(b.selectedIndex===-1)return void b.hide();if(b.select(b.selectedIndex),b.options.tabDisabled===!1)return;break;case h.RETURN:if(b.selectedIndex===-1)return void b.hide();b.select(b.selectedIndex);break;case h.UP:b.moveUp();break;case h.DOWN:b.moveDown();break;default:return}a.stopImmediatePropagation(),a.preventDefault()}},onKeyUp:function(a){var b=this;if(!b.disabled){switch(a.which){case h.UP:case h.DOWN:return}clearTimeout(b.onChangeTimeout),b.currentValue!==b.el.val()&&(b.findBestHint(),b.options.deferRequestBy>0?b.onChangeTimeout=setTimeout(function(){b.onValueChange()},b.options.deferRequestBy):b.onValueChange())}},onValueChange:function(){if(this.ignoreValueChange)return void(this.ignoreValueChange=!1);var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);return b.selection&&b.currentValue!==e&&(b.selection=null,(c.onInvalidateSelection||a.noop).call(b.element)),clearTimeout(b.onChangeTimeout),b.currentValue=d,b.selectedIndex=-1,c.triggerSelectOnValidInput&&b.isExactMatch(e)?void b.select(0):void(e.length<c.minChars?b.hide():b.getSuggestions(e))},isExactMatch:function(a){var b=this.suggestions;return 1===b.length&&b[0].value.toLowerCase()===a.toLowerCase()},getQuery:function(b){var c,d=this.options.delimiter;return d?(c=b.split(d),a.trim(c[c.length-1])):b},getSuggestionsLocal:function(b){var c,d=this,e=d.options,f=b.toLowerCase(),g=e.lookupFilter,h=parseInt(e.lookupLimit,10);return c={suggestions:a.grep(e.lookup,function(a){return g(a,b,f)})},h&&c.suggestions.length>h&&(c.suggestions=c.suggestions.slice(0,h)),c},getSuggestions:function(b){var c,d,e,f,g=this,h=g.options,i=h.serviceUrl;if(h.params[h.paramName]=b,h.onSearchStart.call(g.element,h.params)!==!1){if(d=h.ignoreParams?null:h.params,a.isFunction(h.lookup))return void h.lookup(b,function(a){g.suggestions=a.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,a.suggestions)});g.isLocal?c=g.getSuggestionsLocal(b):(a.isFunction(i)&&(i=i.call(g.element,b)),e=i+"?"+a.param(d||{}),c=g.cachedResponse[e]),c&&Array.isArray(c.suggestions)?(g.suggestions=c.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,c.suggestions)):g.isBadQuery(b)?h.onSearchComplete.call(g.element,b,[]):(g.abortAjax(),f={url:i,data:d,type:h.type,dataType:h.dataType},a.extend(f,h.ajaxSettings),g.currentRequest=a.ajax(f).done(function(a){var c;g.currentRequest=null,c=h.transformResult(a,b),g.processResponse(c,b,e),h.onSearchComplete.call(g.element,b,c.suggestions)}).fail(function(a,c,d){h.onSearchError.call(g.element,b,a,c,d)}))}},isBadQuery:function(a){if(!this.options.preventBadQueries)return!1;for(var b=this.badQueries,c=b.length;c--;)if(0===a.indexOf(b[c]))return!0;return!1},hide:function(){var b=this,c=a(b.suggestionsContainer);a.isFunction(b.options.onHide)&&b.visible&&b.options.onHide.call(b.element,c),b.visible=!1,b.selectedIndex=-1,clearTimeout(b.onChangeTimeout),a(b.suggestionsContainer).hide(),b.signalHint(null)},suggest:function(){if(!this.suggestions.length)return void(this.options.showNoSuggestionNotice?this.noSuggestions():this.hide());var b,c=this,d=c.options,e=d.groupBy,f=d.formatResult,g=c.getQuery(c.currentValue),h=c.classes.suggestion,i=c.classes.selected,j=a(c.suggestionsContainer),k=a(c.noSuggestionsContainer),l=d.beforeRender,m="",n=function(a,c){var f=a.data[e];return b===f?"":(b=f,d.formatGroup(a,b))};return d.triggerSelectOnValidInput&&c.isExactMatch(g)?void c.select(0):(a.each(c.suggestions,function(a,b){e&&(m+=n(b,g,a)),m+='<div class="'+h+'" data-index="'+a+'">'+f(b,g,a)+"</div>"}),this.adjustContainerWidth(),k.detach(),j.html(m),a.isFunction(l)&&l.call(c.element,j,c.suggestions),c.fixPosition(),j.show(),d.autoSelectFirst&&(c.selectedIndex=0,j.scrollTop(0),j.children("."+h).first().addClass(i)),c.visible=!0,void c.findBestHint())},noSuggestions:function(){var b=this,c=b.options.beforeRender,d=a(b.suggestionsContainer),e=a(b.noSuggestionsContainer);this.adjustContainerWidth(),e.detach(),d.empty(),d.append(e),a.isFunction(c)&&c.call(b.element,d,b.suggestions),b.fixPosition(),d.show(),b.visible=!0},adjustContainerWidth:function(){var b,c=this,d=c.options,e=a(c.suggestionsContainer);"auto"===d.width?(b=c.el.outerWidth(),e.css("width",b>0?b:300)):"flex"===d.width&&e.css("width","")},findBestHint:function(){var b=this,c=b.el.val().toLowerCase(),d=null;c&&(a.each(b.suggestions,function(a,b){var e=0===b.value.toLowerCase().indexOf(c);return e&&(d=b),!e}),b.signalHint(d))},signalHint:function(b){var c="",d=this;b&&(c=d.currentValue+b.value.substr(d.currentValue.length)),d.hintValue!==c&&(d.hintValue=c,d.hint=b,(this.options.onHint||a.noop)(c))},verifySuggestionsFormat:function(b){return b.length&&"string"==typeof b[0]?a.map(b,function(a){return{value:a,data:null}}):b},validateOrientation:function(b,c){return b=a.trim(b||"").toLowerCase(),a.inArray(b,["auto","bottom","top"])===-1&&(b=c),b},processResponse:function(a,b,c){var d=this,e=d.options;a.suggestions=d.verifySuggestionsFormat(a.suggestions),e.noCache||(d.cachedResponse[c]=a,e.preventBadQueries&&!a.suggestions.length&&d.badQueries.push(b)),b===d.getQuery(d.currentValue)&&(d.suggestions=a.suggestions,d.suggest())},activate:function(b){var c,d=this,e=d.classes.selected,f=a(d.suggestionsContainer),g=f.find("."+d.classes.suggestion);return f.find("."+e).removeClass(e),d.selectedIndex=b,d.selectedIndex!==-1&&g.length>d.selectedIndex?(c=g.get(d.selectedIndex),a(c).addClass(e),c):null},selectHint:function(){var b=this,c=a.inArray(b.hint,b.suggestions);b.select(c)},select:function(a){var b=this;b.hide(),b.onSelect(a)},moveUp:function(){var b=this;if(b.selectedIndex!==-1)return 0===b.selectedIndex?(a(b.suggestionsContainer).children("."+b.classes.suggestion).first().removeClass(b.classes.selected),b.selectedIndex=-1,b.ignoreValueChange=!1,b.el.val(b.currentValue),void b.findBestHint()):void b.adjustScroll(b.selectedIndex-1)},moveDown:function(){var a=this;a.selectedIndex!==a.suggestions.length-1&&a.adjustScroll(a.selectedIndex+1)},adjustScroll:function(b){var c=this,d=c.activate(b);if(d){var e,f,g,h=a(d).outerHeight();e=d.offsetTop,f=a(c.suggestionsContainer).scrollTop(),g=f+c.options.maxHeight-h,e<f?a(c.suggestionsContainer).scrollTop(e):e>g&&a(c.suggestionsContainer).scrollTop(e-c.options.maxHeight+h),c.options.preserveInput||(c.ignoreValueChange=!0,c.el.val(c.getValue(c.suggestions[b].value))),c.signalHint(null)}},onSelect:function(b){var c=this,d=c.options.onSelect,e=c.suggestions[b];c.currentValue=c.getValue(e.value),c.currentValue===c.el.val()||c.options.preserveInput||c.el.val(c.currentValue),c.signalHint(null),c.suggestions=[],c.selection=e,a.isFunction(d)&&d.call(c.element,e)},getValue:function(a){var b,c,d=this,e=d.options.delimiter;return e?(b=d.currentValue,c=b.split(e),1===c.length?a:b.substr(0,b.length-c[c.length-1].length)+a):a},dispose:function(){var b=this;b.el.off(".autocomplete").removeData("autocomplete"),a(window).off("resize.autocomplete",b.fixPositionCapture),a(b.suggestionsContainer).remove()}},a.fn.devbridgeAutocomplete=function(c,d){var e="autocomplete";return arguments.length?this.each(function(){var f=a(this),g=f.data(e);"string"==typeof c?g&&"function"==typeof g[c]&&g[c](d):(g&&g.dispose&&g.dispose(),g=new b(this,c),f.data(e,g))}):this.first().data(e)},a.fn.wfactory_clearfy_autocomplete||(a.fn.wfactory_clearfy_autocomplete=a.fn.devbridgeAutocomplete)});
5
  * Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
6
  * For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
7
  */
8
+ !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports&&"function"==typeof require?require("jquery"):jQuery)}(function(a){"use strict";function b(c,d){var e=this;e.element=c,e.el=a(c),e.suggestions=[],e.badQueries=[],e.selectedIndex=-1,e.currentValue=e.element.value,e.timeoutId=null,e.cachedResponse={},e.onChangeTimeout=null,e.onChange=null,e.isLocal=!1,e.suggestionsContainer=null,e.noSuggestionsContainer=null,e.options=a.extend(!0,{},b.defaults,d),e.classes={selected:"wbcr-factory-clearfy-230__autocomplete-selected",suggestion:"wbcr-factory-clearfy-230__autocomplete-suggestion"},e.hint=null,e.hintValue="",e.selection=null,e.initialize(),e.setOptions(d)}function c(a,b,c){return a.value.toLowerCase().indexOf(c)!==-1}function d(b){return"string"==typeof b?a.parseJSON(b):b}function e(a,b){if(!b)return a.value;var c="("+g.escapeRegExChars(b)+")";return a.value.replace(new RegExp(c,"gi"),"<strong>$1</strong>").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/&lt;(\/?strong)&gt;/g,"<$1>")}function f(a,b){return'<div class="wbcr-factory-clearfy-230__autocomplete-group">'+b+"</div>"}var g=function(){return{escapeRegExChars:function(a){return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(a){var b=document.createElement("div");return b.className=a,b.style.position="absolute",b.style.display="none",b}}}(),h={ESC:27,TAB:9,RETURN:13,LEFT:37,UP:38,RIGHT:39,DOWN:40},i=a.noop;b.utils=g,a.Autocomplete=b,b.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,width:"auto",minChars:1,maxHeight:300,deferRequestBy:0,params:{},formatResult:e,formatGroup:f,delimiter:null,zIndex:9999,type:"GET",noCache:!1,onSearchStart:i,onSearchComplete:i,onSearchError:i,preserveInput:!1,containerClass:"wbcr-factory-clearfy-230__autocomplete-suggestions",tabDisabled:!1,dataType:"text",currentRequest:null,triggerSelectOnValidInput:!0,preventBadQueries:!0,lookupFilter:c,paramName:"query",transformResult:d,showNoSuggestionNotice:!1,noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1},b.prototype={initialize:function(){var c,d=this,e="."+d.classes.suggestion,f=d.classes.selected,g=d.options;d.element.setAttribute("autocomplete","off"),d.noSuggestionsContainer=a('<div class="autocomplete-no-suggestion"></div>').html(this.options.noSuggestionNotice).get(0),d.suggestionsContainer=b.utils.createNode(g.containerClass),c=a(d.suggestionsContainer),c.appendTo(g.appendTo||"body"),"auto"!==g.width&&c.css("width",g.width),c.on("mouseover.autocomplete",e,function(){d.activate(a(this).data("index"))}),c.on("mouseout.autocomplete",function(){d.selectedIndex=-1,c.children("."+f).removeClass(f)}),c.on("click.autocomplete",e,function(){d.select(a(this).data("index"))}),c.on("click.autocomplete",function(){clearTimeout(d.blurTimeoutId)}),d.fixPositionCapture=function(){d.visible&&d.fixPosition()},a(window).on("resize.autocomplete",d.fixPositionCapture),d.el.on("keydown.autocomplete",function(a){d.onKeyPress(a)}),d.el.on("keyup.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("blur.autocomplete",function(){d.onBlur()}),d.el.on("focus.autocomplete",function(){d.onFocus()}),d.el.on("change.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("input.autocomplete",function(a){d.onKeyUp(a)})},onFocus:function(){var a=this;a.disabled||(a.fixPosition(),a.el.val().length>=a.options.minChars&&a.onValueChange())},onBlur:function(){var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);b.blurTimeoutId=setTimeout(function(){b.hide(),b.selection&&b.currentValue!==e&&(c.onInvalidateSelection||a.noop).call(b.element)},200)},abortAjax:function(){var a=this;a.currentRequest&&(a.currentRequest.abort(),a.currentRequest=null)},setOptions:function(b){var c=this,d=a.extend({},c.options,b);c.isLocal=Array.isArray(d.lookup),c.isLocal&&(d.lookup=c.verifySuggestionsFormat(d.lookup)),d.orientation=c.validateOrientation(d.orientation,"bottom"),a(c.suggestionsContainer).css({"max-height":d.maxHeight+"px",width:d.width+"px","z-index":d.zIndex}),this.options=d},clearCache:function(){this.cachedResponse={},this.badQueries=[]},clear:function(){this.clearCache(),this.currentValue="",this.suggestions=[]},disable:function(){var a=this;a.disabled=!0,clearTimeout(a.onChangeTimeout),a.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){var b=this,c=a(b.suggestionsContainer),d=c.parent().get(0);if(d===document.body||b.options.forceFixPosition){var e=b.options.orientation,f=c.outerHeight(),g=b.el.outerHeight(),h=b.el.offset(),i={top:h.top,left:h.left};if("auto"===e){var j=a(window).height(),k=a(window).scrollTop(),l=-k+h.top-f,m=k+j-(h.top+g+f);e=Math.max(l,m)===l?"top":"bottom"}if("top"===e?i.top+=-f:i.top+=g,d!==document.body){var n,o=c.css("opacity");b.visible||c.css("opacity",0).show(),n=c.offsetParent().offset(),i.top-=n.top,i.top+=d.scrollTop,i.left-=n.left,b.visible||c.css("opacity",o).hide()}"auto"===b.options.width&&(i.width=b.el.outerWidth()+"px"),c.css(i)}},isCursorAtEnd:function(){var a,b=this,c=b.el.val().length,d=b.element.selectionStart;return"number"==typeof d?d===c:!document.selection||(a=document.selection.createRange(),a.moveStart("character",-c),c===a.text.length)},onKeyPress:function(a){var b=this;if(!b.disabled&&!b.visible&&a.which===h.DOWN&&b.currentValue)return void b.suggest();if(!b.disabled&&b.visible){switch(a.which){case h.ESC:b.el.val(b.currentValue),b.hide();break;case h.RIGHT:if(b.hint&&b.options.onHint&&b.isCursorAtEnd()){b.selectHint();break}return;case h.TAB:if(b.hint&&b.options.onHint)return void b.selectHint();if(b.selectedIndex===-1)return void b.hide();if(b.select(b.selectedIndex),b.options.tabDisabled===!1)return;break;case h.RETURN:if(b.selectedIndex===-1)return void b.hide();b.select(b.selectedIndex);break;case h.UP:b.moveUp();break;case h.DOWN:b.moveDown();break;default:return}a.stopImmediatePropagation(),a.preventDefault()}},onKeyUp:function(a){var b=this;if(!b.disabled){switch(a.which){case h.UP:case h.DOWN:return}clearTimeout(b.onChangeTimeout),b.currentValue!==b.el.val()&&(b.findBestHint(),b.options.deferRequestBy>0?b.onChangeTimeout=setTimeout(function(){b.onValueChange()},b.options.deferRequestBy):b.onValueChange())}},onValueChange:function(){if(this.ignoreValueChange)return void(this.ignoreValueChange=!1);var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);return b.selection&&b.currentValue!==e&&(b.selection=null,(c.onInvalidateSelection||a.noop).call(b.element)),clearTimeout(b.onChangeTimeout),b.currentValue=d,b.selectedIndex=-1,c.triggerSelectOnValidInput&&b.isExactMatch(e)?void b.select(0):void(e.length<c.minChars?b.hide():b.getSuggestions(e))},isExactMatch:function(a){var b=this.suggestions;return 1===b.length&&b[0].value.toLowerCase()===a.toLowerCase()},getQuery:function(b){var c,d=this.options.delimiter;return d?(c=b.split(d),a.trim(c[c.length-1])):b},getSuggestionsLocal:function(b){var c,d=this,e=d.options,f=b.toLowerCase(),g=e.lookupFilter,h=parseInt(e.lookupLimit,10);return c={suggestions:a.grep(e.lookup,function(a){return g(a,b,f)})},h&&c.suggestions.length>h&&(c.suggestions=c.suggestions.slice(0,h)),c},getSuggestions:function(b){var c,d,e,f,g=this,h=g.options,i=h.serviceUrl;if(h.params[h.paramName]=b,h.onSearchStart.call(g.element,h.params)!==!1){if(d=h.ignoreParams?null:h.params,a.isFunction(h.lookup))return void h.lookup(b,function(a){g.suggestions=a.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,a.suggestions)});g.isLocal?c=g.getSuggestionsLocal(b):(a.isFunction(i)&&(i=i.call(g.element,b)),e=i+"?"+a.param(d||{}),c=g.cachedResponse[e]),c&&Array.isArray(c.suggestions)?(g.suggestions=c.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,c.suggestions)):g.isBadQuery(b)?h.onSearchComplete.call(g.element,b,[]):(g.abortAjax(),f={url:i,data:d,type:h.type,dataType:h.dataType},a.extend(f,h.ajaxSettings),g.currentRequest=a.ajax(f).done(function(a){var c;g.currentRequest=null,c=h.transformResult(a,b),g.processResponse(c,b,e),h.onSearchComplete.call(g.element,b,c.suggestions)}).fail(function(a,c,d){h.onSearchError.call(g.element,b,a,c,d)}))}},isBadQuery:function(a){if(!this.options.preventBadQueries)return!1;for(var b=this.badQueries,c=b.length;c--;)if(0===a.indexOf(b[c]))return!0;return!1},hide:function(){var b=this,c=a(b.suggestionsContainer);a.isFunction(b.options.onHide)&&b.visible&&b.options.onHide.call(b.element,c),b.visible=!1,b.selectedIndex=-1,clearTimeout(b.onChangeTimeout),a(b.suggestionsContainer).hide(),b.signalHint(null)},suggest:function(){if(!this.suggestions.length)return void(this.options.showNoSuggestionNotice?this.noSuggestions():this.hide());var b,c=this,d=c.options,e=d.groupBy,f=d.formatResult,g=c.getQuery(c.currentValue),h=c.classes.suggestion,i=c.classes.selected,j=a(c.suggestionsContainer),k=a(c.noSuggestionsContainer),l=d.beforeRender,m="",n=function(a,c){var f=a.data[e];return b===f?"":(b=f,d.formatGroup(a,b))};return d.triggerSelectOnValidInput&&c.isExactMatch(g)?void c.select(0):(a.each(c.suggestions,function(a,b){e&&(m+=n(b,g,a)),m+='<div class="'+h+'" data-index="'+a+'">'+f(b,g,a)+"</div>"}),this.adjustContainerWidth(),k.detach(),j.html(m),a.isFunction(l)&&l.call(c.element,j,c.suggestions),c.fixPosition(),j.show(),d.autoSelectFirst&&(c.selectedIndex=0,j.scrollTop(0),j.children("."+h).first().addClass(i)),c.visible=!0,void c.findBestHint())},noSuggestions:function(){var b=this,c=b.options.beforeRender,d=a(b.suggestionsContainer),e=a(b.noSuggestionsContainer);this.adjustContainerWidth(),e.detach(),d.empty(),d.append(e),a.isFunction(c)&&c.call(b.element,d,b.suggestions),b.fixPosition(),d.show(),b.visible=!0},adjustContainerWidth:function(){var b,c=this,d=c.options,e=a(c.suggestionsContainer);"auto"===d.width?(b=c.el.outerWidth(),e.css("width",b>0?b:300)):"flex"===d.width&&e.css("width","")},findBestHint:function(){var b=this,c=b.el.val().toLowerCase(),d=null;c&&(a.each(b.suggestions,function(a,b){var e=0===b.value.toLowerCase().indexOf(c);return e&&(d=b),!e}),b.signalHint(d))},signalHint:function(b){var c="",d=this;b&&(c=d.currentValue+b.value.substr(d.currentValue.length)),d.hintValue!==c&&(d.hintValue=c,d.hint=b,(this.options.onHint||a.noop)(c))},verifySuggestionsFormat:function(b){return b.length&&"string"==typeof b[0]?a.map(b,function(a){return{value:a,data:null}}):b},validateOrientation:function(b,c){return b=a.trim(b||"").toLowerCase(),a.inArray(b,["auto","bottom","top"])===-1&&(b=c),b},processResponse:function(a,b,c){var d=this,e=d.options;a.suggestions=d.verifySuggestionsFormat(a.suggestions),e.noCache||(d.cachedResponse[c]=a,e.preventBadQueries&&!a.suggestions.length&&d.badQueries.push(b)),b===d.getQuery(d.currentValue)&&(d.suggestions=a.suggestions,d.suggest())},activate:function(b){var c,d=this,e=d.classes.selected,f=a(d.suggestionsContainer),g=f.find("."+d.classes.suggestion);return f.find("."+e).removeClass(e),d.selectedIndex=b,d.selectedIndex!==-1&&g.length>d.selectedIndex?(c=g.get(d.selectedIndex),a(c).addClass(e),c):null},selectHint:function(){var b=this,c=a.inArray(b.hint,b.suggestions);b.select(c)},select:function(a){var b=this;b.hide(),b.onSelect(a)},moveUp:function(){var b=this;if(b.selectedIndex!==-1)return 0===b.selectedIndex?(a(b.suggestionsContainer).children("."+b.classes.suggestion).first().removeClass(b.classes.selected),b.selectedIndex=-1,b.ignoreValueChange=!1,b.el.val(b.currentValue),void b.findBestHint()):void b.adjustScroll(b.selectedIndex-1)},moveDown:function(){var a=this;a.selectedIndex!==a.suggestions.length-1&&a.adjustScroll(a.selectedIndex+1)},adjustScroll:function(b){var c=this,d=c.activate(b);if(d){var e,f,g,h=a(d).outerHeight();e=d.offsetTop,f=a(c.suggestionsContainer).scrollTop(),g=f+c.options.maxHeight-h,e<f?a(c.suggestionsContainer).scrollTop(e):e>g&&a(c.suggestionsContainer).scrollTop(e-c.options.maxHeight+h),c.options.preserveInput||(c.ignoreValueChange=!0,c.el.val(c.getValue(c.suggestions[b].value))),c.signalHint(null)}},onSelect:function(b){var c=this,d=c.options.onSelect,e=c.suggestions[b];c.currentValue=c.getValue(e.value),c.currentValue===c.el.val()||c.options.preserveInput||c.el.val(c.currentValue),c.signalHint(null),c.suggestions=[],c.selection=e,a.isFunction(d)&&d.call(c.element,e)},getValue:function(a){var b,c,d=this,e=d.options.delimiter;return e?(b=d.currentValue,c=b.split(e),1===c.length?a:b.substr(0,b.length-c[c.length-1].length)+a):a},dispose:function(){var b=this;b.el.off(".autocomplete").removeData("autocomplete"),a(window).off("resize.autocomplete",b.fixPositionCapture),a(b.suggestionsContainer).remove()}},a.fn.devbridgeAutocomplete=function(c,d){var e="autocomplete";return arguments.length?this.each(function(){var f=a(this),g=f.data(e);"string"==typeof c?g&&"function"==typeof g[c]&&g[c](d):(g&&g.dispose&&g.dispose(),g=new b(this,c),f.data(e,g))}):this.first().data(e)},a.fn.wfactory_clearfy_autocomplete||(a.fn.wfactory_clearfy_autocomplete=a.fn.devbridgeAutocomplete)});
libs/factory/clearfy/assets/js/license-manager.js DELETED
@@ -1,92 +0,0 @@
1
- /**
2
- * Этот файл содержит скрипт исполняелся во время процедур с формой лицензирования.
3
- * Его основная роль отправка ajax запросов на проверку, активацию, деактивацию лицензии
4
- * и вывод уведомлений об ошибка или успешно выполнении проверок.
5
- *
6
- * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
- * @copyright (c) 05.10.2018, Webcraftic
8
- * @version 1.1
9
- * @since 1.4.0
10
- */
11
- jQuery(function($) {
12
-
13
- var allNotices = [];
14
-
15
- $(document).on('click', '.wcl-control-btn', function() {
16
- var wrapper = $('#wcl-license-wrapper'),
17
- loader = wrapper.data('loader'),
18
- pluginName = wrapper.data('plugin-name'),
19
- wpnonce = wrapper.data('nonce'),
20
- licenseAction = $(this).data('action');
21
-
22
- for( i = 0; i < allNotices.length; i++ ) {
23
- $.wbcr_factory_clearfy_224.app.hideNotice(allNotices[i]);
24
- }
25
-
26
- $('.wcl-control-btn').hide();
27
-
28
- $(this).after('<img class="wcl-loader" src="' + loader + '">');
29
-
30
- var data = {
31
- action: 'wbcr-clearfy-activate-license-for-' + pluginName,
32
- _wpnonce: wpnonce,
33
- plugin_name: pluginName,
34
- license_action: licenseAction,
35
- licensekey: ''
36
- };
37
-
38
- if( $(this).data('action').trim() === 'activate' ) {
39
- data.licensekey = $('#license-key').val().trim();
40
- }
41
-
42
- $.ajax(ajaxurl, {
43
- type: 'post',
44
- dataType: 'json',
45
- data: data,
46
- success: function(response) {
47
- var noticeId;
48
-
49
- if( !response || !response.success ) {
50
-
51
- $('.wcl-control-btn').show();
52
- $('.wcl-loader').remove();
53
-
54
- if( response.data ) {
55
- console.log(response.data.error_message);
56
- noticeId = $.wbcr_factory_clearfy_224.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
57
- allNotices.push(noticeId);
58
- } else {
59
- console.log(response);
60
- }
61
-
62
- return;
63
- }
64
-
65
- if( response.data && response.data.message ) {
66
- noticeId = $.wbcr_factory_clearfy_224.app.showNotice(response.data.message, 'success');
67
- allNotices.push(noticeId);
68
-
69
- // todo: доработать генерацию формы, вместо перезагрузки страницы
70
- window.location.reload();
71
- }
72
-
73
- },
74
- error: function(xhr, ajaxOptions, thrownError) {
75
-
76
- $('.wcl-control-btn').show();
77
- $('.wcl-loader').remove();
78
-
79
- console.log(xhr.status);
80
- console.log(xhr.responseText);
81
- console.log(thrownError);
82
-
83
- var noticeId = $.wbcr_factory_clearfy_224.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
84
-
85
- allNotices.push(noticeId);
86
- }
87
- });
88
-
89
- return false;
90
- });
91
-
92
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/clearfy/assets/js/search-options.js DELETED
@@ -1,40 +0,0 @@
1
- (function($) {
2
- 'use strict';
3
-
4
- $(document).ready(function() {
5
- if( '' !== window.location.hash && window.location.hash.indexOf('factory-control-') ) {
6
- let controlClass = window.location.hash.replace('#', ''),
7
- controlEl = $('.' + controlClass);
8
-
9
- if( controlEl.closest('.factory-div').length && !controlEl.is(':visible') ) {
10
- controlEl.closest('.factory-div').fadeIn();
11
- }
12
-
13
- $([document.documentElement, document.body]).animate({
14
- scrollTop: controlEl.offset().top - 150
15
- }, 500, function() {
16
-
17
- controlEl.find('.control-label').css({
18
- color: '#ff5722',
19
- fontWeight: 'bold'
20
- });
21
-
22
- history.pushState("", document.title, window.location.pathname
23
- + window.location.search);
24
- });
25
- }
26
-
27
- if( undefined === window.wfactory_clearfy_search_options ) {
28
- throw new Error('Global var {wfactory_clearfy_search_options} is not declared.');
29
- }
30
-
31
- $('#wbcr-factory-clearfy-224__autocomplete').wfactory_clearfy_autocomplete({
32
- lookup: wfactory_clearfy_search_options,
33
- onSelect: function(suggestion) {
34
- $('#wbcr-factory-clearfy-224__autocomplete').prop("disabled", true);
35
- window.location.href = suggestion.data.page_url;
36
- }
37
- });
38
- });
39
-
40
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/clearfy/boot.php CHANGED
@@ -14,22 +14,22 @@ if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
 
17
- if( defined('FACTORY_CLEARFY_227_LOADED') ) {
18
  return;
19
  }
20
 
21
- define('FACTORY_CLEARFY_227_LOADED', true);
22
 
23
- define('FACTORY_CLEARFY_227', '2.2.7');
24
 
25
- define('FACTORY_CLEARFY_227_DIR', dirname(__FILE__));
26
- define('FACTORY_CLEARFY_227_URL', plugins_url(null, __FILE__));
27
 
28
- load_plugin_textdomain('wbcr_factory_clearfy_227', false, dirname(plugin_basename(__FILE__)) . '/langs');
29
 
30
- require(FACTORY_CLEARFY_227_DIR . '/includes/ajax-handlers.php');
31
- require(FACTORY_CLEARFY_227_DIR . '/includes/class-helpers.php');
32
- require(FACTORY_CLEARFY_227_DIR . '/includes/class-configurate.php');
33
 
34
  // module provides function only for the admin area
35
  if( is_admin() ) {
@@ -37,14 +37,14 @@ if( is_admin() ) {
37
  * Подключаем скрипты для установки компонентов Clearfy
38
  * на все страницы админпанели.
39
  */
40
- add_action('admin_enqueue_scripts', function () {
41
- wp_enqueue_script('wbcr-factory-clearfy-227-global', FACTORY_CLEARFY_227_URL . '/assets/js/clearfy-globals.js', [
42
  'jquery',
43
- 'wfactory-436-core-general'
44
- ], FACTORY_CLEARFY_227);
45
 
46
- require_once FACTORY_CLEARFY_227_DIR . '/includes/class-search-options.php';
47
- $all_options = \WBCR\Factory_Clearfy_227\Search_Options::get_all_options();
48
 
49
  if( empty($all_options) ) {
50
  return;
@@ -72,18 +72,18 @@ if( is_admin() ) {
72
  return;
73
  }
74
 
75
- wp_localize_script('wbcr-factory-clearfy-227-global', 'wfactory_clearfy_search_options', $formated_options);
76
  });
77
 
78
- if( defined('FACTORY_PAGES_435_LOADED') ) {
79
- require(FACTORY_CLEARFY_227_DIR . '/pages/class-pages.php');
80
- require(FACTORY_CLEARFY_227_DIR . '/pages/class-page-more-features.php');
81
- require(FACTORY_CLEARFY_227_DIR . '/pages/class-page-license.php');
82
- require(FACTORY_CLEARFY_227_DIR . '/pages/class-pages-components.php');
83
 
84
- require(FACTORY_CLEARFY_227_DIR . '/pages/setup-parts/class-step.php');
85
- require(FACTORY_CLEARFY_227_DIR . '/pages/setup-parts/class-step-form.php');
86
- require(FACTORY_CLEARFY_227_DIR . '/pages/setup-parts/class-step-custom.php');
87
- require(FACTORY_CLEARFY_227_DIR . '/pages/class-page-setup.php');
88
  }
89
  }
14
  exit;
15
  }
16
 
17
+ if( defined('FACTORY_CLEARFY_230_LOADED') ) {
18
  return;
19
  }
20
 
21
+ define('FACTORY_CLEARFY_230_LOADED', true);
22
 
23
+ define('FACTORY_CLEARFY_230', '2.3.0');
24
 
25
+ define('FACTORY_CLEARFY_230_DIR', dirname(__FILE__));
26
+ define('FACTORY_CLEARFY_230_URL', plugins_url(null, __FILE__));
27
 
28
+ load_plugin_textdomain('wbcr_factory_clearfy_230', false, dirname(plugin_basename(__FILE__)) . '/langs');
29
 
30
+ require(FACTORY_CLEARFY_230_DIR . '/includes/ajax-handlers.php');
31
+ require(FACTORY_CLEARFY_230_DIR . '/includes/class-helpers.php');
32
+ require(FACTORY_CLEARFY_230_DIR . '/includes/class-configurate.php');
33
 
34
  // module provides function only for the admin area
35
  if( is_admin() ) {
37
  * Подключаем скрипты для установки компонентов Clearfy
38
  * на все страницы админпанели.
39
  */
40
+ add_action('admin_enqueue_scripts', function ($hook) {
41
+ wp_enqueue_script('wbcr-factory-clearfy-230-global', FACTORY_CLEARFY_230_URL . '/assets/js/clearfy-globals.js', [
42
  'jquery',
43
+ 'wfactory-439-core-general'
44
+ ], FACTORY_CLEARFY_230);
45
 
46
+ require_once FACTORY_CLEARFY_230_DIR . '/includes/class-search-options.php';
47
+ $all_options = \WBCR\Factory_Clearfy_230\Search_Options::get_all_options();
48
 
49
  if( empty($all_options) ) {
50
  return;
72
  return;
73
  }
74
 
75
+ wp_localize_script('wbcr-factory-clearfy-230-global', 'wfactory_clearfy_search_options', $formated_options);
76
  });
77
 
78
+ if( defined('FACTORY_PAGES_438_LOADED') ) {
79
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-pages.php');
80
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-page-more-features.php');
81
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-page-license.php');
82
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-pages-components.php');
83
 
84
+ require(FACTORY_CLEARFY_230_DIR . '/pages/setup-parts/class-step.php');
85
+ require(FACTORY_CLEARFY_230_DIR . '/pages/setup-parts/class-step-form.php');
86
+ require(FACTORY_CLEARFY_230_DIR . '/pages/setup-parts/class-step-custom.php');
87
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-page-setup.php');
88
  }
89
  }
libs/factory/clearfy/includes/ajax-handlers.php CHANGED
@@ -17,10 +17,10 @@ if ( ! defined( 'ABSPATH' ) ) {
17
  *
18
  * @since 2.0.7
19
  *
20
- * @param Wbcr_Factory436_Plugin $plugin_instance
21
  *
22
  */
23
- function wbcr_factory_clearfy_227_check_license( $plugin_instance ) {
24
 
25
  $plugin_name = $plugin_instance->request->post( 'plugin_name', null, true );
26
 
@@ -34,7 +34,7 @@ function wbcr_factory_clearfy_227_check_license( $plugin_instance ) {
34
  check_admin_referer( "clearfy_activate_license_for_{$plugin_name}" );
35
 
36
  if ( empty( $action ) || ! in_array( $action, [ 'activate', 'deactivate', 'sync', 'unsubscribe' ] ) ) {
37
- wp_send_json_error( [ 'error_message' => __( 'Licensing action not passed or this action is prohibited!', 'wbcr_factory_clearfy_227' ) ] );
38
  die();
39
  }
40
 
@@ -45,23 +45,23 @@ function wbcr_factory_clearfy_227_check_license( $plugin_instance ) {
45
  switch ( $action ) {
46
  case 'activate':
47
  if ( empty( $license_key ) || strlen( $license_key ) > 32 ) {
48
- wp_send_json_error( [ 'error_message' => __( 'License key is empty or license key too long (license key is 32 characters long)', 'wbcr_factory_clearfy_227' ) ] );
49
  } else {
50
  $plugin_instance->premium->activate( $license_key );
51
- $success_message = __( 'Your license has been successfully activated', 'wbcr_factory_clearfy_227' );
52
  }
53
  break;
54
  case 'deactivate':
55
  $plugin_instance->premium->deactivate();
56
- $success_message = __( 'The license is deactivated', 'wbcr_factory_clearfy_227' );
57
  break;
58
  case 'sync':
59
  $plugin_instance->premium->sync();
60
- $success_message = __( 'The license has been updated', 'wbcr_factory_clearfy_227' );
61
  break;
62
  case 'unsubscribe':
63
  $plugin_instance->premium->cancel_paid_subscription();
64
- $success_message = __( 'Subscription success cancelled', 'wbcr_factory_clearfy_227' );
65
  break;
66
  }
67
  } catch( Exception $e ) {
17
  *
18
  * @since 2.0.7
19
  *
20
+ * @param Wbcr_Factory439_Plugin $plugin_instance
21
  *
22
  */
23
+ function wbcr_factory_clearfy_230_check_license( $plugin_instance ) {
24
 
25
  $plugin_name = $plugin_instance->request->post( 'plugin_name', null, true );
26
 
34
  check_admin_referer( "clearfy_activate_license_for_{$plugin_name}" );
35
 
36
  if ( empty( $action ) || ! in_array( $action, [ 'activate', 'deactivate', 'sync', 'unsubscribe' ] ) ) {
37
+ wp_send_json_error( [ 'error_message' => __( 'Licensing action not passed or this action is prohibited!', 'wbcr_factory_clearfy_230' ) ] );
38
  die();
39
  }
40
 
45
  switch ( $action ) {
46
  case 'activate':
47
  if ( empty( $license_key ) || strlen( $license_key ) > 32 ) {
48
+ wp_send_json_error( [ 'error_message' => __( 'License key is empty or license key too long (license key is 32 characters long)', 'wbcr_factory_clearfy_230' ) ] );
49
  } else {
50
  $plugin_instance->premium->activate( $license_key );
51
+ $success_message = __( 'Your license has been successfully activated', 'wbcr_factory_clearfy_230' );
52
  }
53
  break;
54
  case 'deactivate':
55
  $plugin_instance->premium->deactivate();
56
+ $success_message = __( 'The license is deactivated', 'wbcr_factory_clearfy_230' );
57
  break;
58
  case 'sync':
59
  $plugin_instance->premium->sync();
60
+ $success_message = __( 'The license has been updated', 'wbcr_factory_clearfy_230' );
61
  break;
62
  case 'unsubscribe':
63
  $plugin_instance->premium->cancel_paid_subscription();
64
+ $success_message = __( 'Subscription success cancelled', 'wbcr_factory_clearfy_230' );
65
  break;
66
  }
67
  } catch( Exception $e ) {
libs/factory/clearfy/includes/class-configurate.php CHANGED
@@ -13,12 +13,12 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  * @copyright (c) 2018, Webcraftic Ltd
14
  *
15
  */
16
- abstract class Wbcr_FactoryClearfy227_Configurate {
17
 
18
  /**
19
- * @param Wbcr_Factory436_Plugin $plugin
20
  */
21
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
22
  $this->plugin = $plugin;
23
  $this->registerActionsAndFilters();
24
  }
13
  * @copyright (c) 2018, Webcraftic Ltd
14
  *
15
  */
16
+ abstract class Wbcr_FactoryClearfy230_Configurate {
17
 
18
  /**
19
+ * @param Wbcr_Factory439_Plugin $plugin
20
  */
21
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
22
  $this->plugin = $plugin;
23
  $this->registerActionsAndFilters();
24
  }
libs/factory/clearfy/includes/class-helpers.php CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  * @copyright (c) 2018, Webcraftic Ltd
15
  *
16
  */
17
- class WbcrFactoryClearfy227_Helpers {
18
 
19
  /**
20
  * Recursive sanitation for an array
14
  * @copyright (c) 2018, Webcraftic Ltd
15
  *
16
  */
17
+ class WbcrFactoryClearfy230_Helpers {
18
 
19
  /**
20
  * Recursive sanitation for an array
libs/factory/clearfy/includes/class-search-options.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Clearfy_227;
4
 
5
  /**
6
  * Class Search options
1
  <?php
2
 
3
+ namespace WBCR\Factory_Clearfy_230;
4
 
5
  /**
6
  * Class Search options
libs/factory/clearfy/langs/wbcr_factory_clearfy_221-ru_RU.mo DELETED
Binary file
libs/factory/clearfy/langs/wbcr_factory_clearfy_221-ru_RU.po DELETED
@@ -1,307 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: clearfy\n"
4
- "POT-Creation-Date: 2018-10-16 22:37+0300\n"
5
- "PO-Revision-Date: 2018-10-16 22:41+0300\n"
6
- "Last-Translator: alex.kovalevv@gmail.com <alex.kovalevv@gmail.com>\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-clearfy-compatibility.php:265
21
- msgid "Clearfy warning"
22
- msgstr "Clearfy предупреждение"
23
-
24
- #: includes/check-clearfy-compatibility.php:266
25
- #, php-format
26
- msgid "The %s component"
27
- msgstr "Работа компонента %s"
28
-
29
- #: includes/check-clearfy-compatibility.php:268
30
- msgid "warning"
31
- msgstr "предупреждение"
32
-
33
- #: includes/check-clearfy-compatibility.php:269
34
- #, php-format
35
- msgid "The %s plugin"
36
- msgstr "Работа плагина %s"
37
-
38
- #: includes/check-clearfy-compatibility.php:272
39
- msgid "has stopped."
40
- msgstr "была остановлена."
41
-
42
- #: includes/check-clearfy-compatibility.php:273
43
- msgid "Possible reasons:"
44
- msgstr "Возможные причины:"
45
-
46
- #: includes/check-clearfy-compatibility.php:279
47
- #, php-format
48
- msgid "You need to update the PHP version to %s or higher!"
49
- msgstr "Вам нужно обновить версию PHP до %s или выше!"
50
-
51
- #: includes/check-clearfy-compatibility.php:284
52
- #, php-format
53
- msgid "You need to update WordPress to %s or higher!"
54
- msgstr "Вам нужно обновить WordPress до %s или выше!"
55
-
56
- #: includes/check-clearfy-compatibility.php:289
57
- #, php-format
58
- msgid "You need to update the Clearfy plugin version to %s or higher!"
59
- msgstr "Вам нужно обновить версию плагина Clearfy до %s или выше!"
60
-
61
- #: includes/check-clearfy-compatibility.php:294
62
- msgid "This plugin is already activated, you are trying to activate it again."
63
- msgstr "Этот плагин уже активирован, вы пытаетесь активировать его снова."
64
-
65
- #: includes/check-clearfy-compatibility.php:299
66
- #, php-format
67
- msgid ""
68
- "Clearfy has the features of the %s plugin. Please, deactivate %s to avoid "
69
- "conflicts of plugins!"
70
- msgstr ""
71
- "Плагин Clearfy уже включает в себя функции плагина %s. Пожалуйста, "
72
- "деактивируйте плагин %s, чтобы не создавать конфликтов!"
73
-
74
- #: pages/class.pages.php:212
75
- msgid "Upgrade to Clearfy Business"
76
- msgstr "Перейти на Clearfy Бизнес"
77
-
78
- #: pages/class.pages.php:213
79
- msgid "Oops... Sorry for the inconvenience caused!"
80
- msgstr "Упс... Мы приносим свои извинения за неудобства!"
81
-
82
- #: pages/class.pages.php:214
83
- msgid ""
84
- "Complete multisite support is available in Clearfy Business and Clearfy "
85
- "Business Revolution packages only!"
86
- msgstr ""
87
- "Полная поддержка мультисайтов доступна только в пакете Clearfy Бизнес и "
88
- "Clearfy Бизнес Революция!"
89
-
90
- #: pages/class.pages.php:215
91
- msgid ""
92
- "You can activate the plugin on each website and use it with zero "
93
- "limitations. But you can’t save the plugin’s settings under the Super "
94
- "Administrator role!"
95
- msgstr ""
96
- "Вы можете активировать плагин отдельно для каждого сайта и использовать его "
97
- "без ограничений, но в режиме суперадминистратора, вы не можете сохранять "
98
- "настройки плагина!"
99
-
100
- #: pages/class.pages.php:217
101
- msgid "Activate license "
102
- msgstr "Активировать лицензию "
103
-
104
- #: pages/class.pages.php:218
105
- #, php-format
106
- msgid "Upgrade to Clearfy Business for $%d"
107
- msgstr "Обновить до Clearfy Бизнес за $%d"
108
-
109
- #: pages/class.pages.php:273
110
- msgid "MORE IN CLEARFY <span>BUSINESS</span>"
111
- msgstr "ЛУЧШЕЕ В CLEARFY <span>БИЗНЕС</span>"
112
-
113
- #: pages/class.pages.php:275
114
- msgid "4 premium components now;"
115
- msgstr "4 премиум компонента сейчас;"
116
-
117
- #: pages/class.pages.php:276
118
- msgid "40 new premium components within a year for the single price;"
119
- msgstr "40 новых премиум компонентов в год по одной цене;"
120
-
121
- #: pages/class.pages.php:277
122
- msgid "Multisite support;"
123
- msgstr "Поддержка мультисайтов;"
124
-
125
- #: pages/class.pages.php:278
126
- msgid "Advanced settings;"
127
- msgstr "Дополнительные настройки;"
128
-
129
- #: pages/class.pages.php:279
130
- msgid "No ads;"
131
- msgstr "Нет рекламы;"
132
-
133
- #: pages/class.pages.php:280
134
- msgid "Perfect support."
135
- msgstr "Лучшая поддержка."
136
-
137
- #: pages/class.pages.php:283
138
- #, php-format
139
- msgid "Upgrade for $%s"
140
- msgstr "Обновиться за $%s"
141
-
142
- #: pages/class.pages.php:299
143
- msgid ""
144
- "A neutral setting that can not harm your site, but you must be sure that you "
145
- "need to use it."
146
- msgstr ""
147
- "Нейтральная настройка, которая не может нанести вред вашему сайту, но вы "
148
- "должны быть уверены, что вам нужно ее использовать."
149
-
150
- #: pages/class.pages.php:305
151
- msgid ""
152
- "When set this option, you must be careful. Plugins and themes may depend on "
153
- "this function. You must be sure that you can disable this feature for the "
154
- "site."
155
- msgstr ""
156
- "При включении этой настройки, вы должны быть осторожны. Некоторые плагины и "
157
- "темы могут зависеть от этой функции. Вы должны быть уверены, что эту функцию "
158
- "можно отключить для сайта."
159
-
160
- #: pages/class.pages.php:311
161
- msgid "Absolutely safe setting, We recommend to use."
162
- msgstr "Абсолютно безопасная настройка, рекомендуем использовать."
163
-
164
- #: pages/class.pages.php:316
165
- msgid "Hover to the icon to get help for the feature you selected."
166
- msgstr ""
167
- "Наведите указатель мыши на значок, чтобы получить справку по выбранной "
168
- "функции."
169
-
170
- #: pages/class.pages.php:334
171
- msgid "Do you want the plugin to improved and update?"
172
- msgstr "Вы хотите, чтобы плагин улучшался и обновлялся?"
173
-
174
- #: pages/class.pages.php:337
175
- msgid ""
176
- "Help the author, leave a review on wordpress.org. Thanks to feedback, I will "
177
- "know that the plugin is really useful to you and is needed."
178
- msgstr ""
179
- "Помогите автору, оставьте отзыв на wordpress.org. Благодаря отзывам, я буду "
180
- "знать, что плагин действительно полезен для вас и необходим."
181
-
182
- #: pages/class.pages.php:339
183
- msgid "And also write your ideas on how to extend or improve the plugin."
184
- msgstr "А также напишите свои идеи о том, как расширить или улучшить плагин."
185
-
186
- #: pages/class.pages.php:344
187
- msgid "Go rate us and push ideas"
188
- msgstr "Оставить отзыв или поделиться идеей"
189
-
190
- #: pages/class.pages.php:356
191
- msgid "Donation for plugin development"
192
- msgstr "Пожертвования на развитие плагина"
193
-
194
- #: pages/more-features.php:31
195
- msgid "More features (<b>free</b>)"
196
- msgstr "Дополнительно"
197
-
198
- #: pages/more-features.php:40
199
- msgid "install the ultimate version of the plugin for free!"
200
- msgstr "установите полную версию плагина бесплатно!"
201
-
202
- #: pages/more-features.php:51
203
- msgid "Code cleaning"
204
- msgstr "Очищает код"
205
-
206
- #: pages/more-features.php:53
207
- msgid "Clears the source code of the page from unused code."
208
- msgstr "Очищает исходный код страницы от неиспользуемого кода."
209
-
210
- #: pages/more-features.php:60
211
- msgid "Improve SEO"
212
- msgstr "Улучшает SEO"
213
-
214
- #: pages/more-features.php:62
215
- msgid ""
216
- "Removes duplicate pages, closes external links, changes the headers of the "
217
- "server."
218
- msgstr ""
219
- "Удаляет дубликаты страниц, закрывает внешние ссылки, изменяет заголовки "
220
- "сервера."
221
-
222
- #: pages/more-features.php:69
223
- msgid "Site protection"
224
- msgstr "Защита сайта"
225
-
226
- #: pages/more-features.php:71
227
- msgid "Enables and disables features that improve the protection of your site."
228
- msgstr "Включает и отключает функции, которые улучшают защиту вашего сайта."
229
-
230
- #: pages/more-features.php:78
231
- msgid "Disable comments"
232
- msgstr "Отключает комментарии"
233
-
234
- #: pages/more-features.php:80
235
- msgid "Disables comments on the entire site or on specific pages."
236
- msgstr "Отключает комментарии на всем сайте или у определенных страниц."
237
-
238
- #: pages/more-features.php:87
239
- msgid "Manage updates"
240
- msgstr "Менеджер обновлений"
241
-
242
- #: pages/more-features.php:89
243
- msgid ""
244
- "Enables or disables automatically updates for plugins, themes and core. It "
245
- "is also possible\n"
246
- "\t\t\t\t\t\t\tto disable all updates."
247
- msgstr ""
248
- "Включает или отключает автоматические обновление плагинов, тем и ядра. Также "
249
- "возможно\n"
250
- "отключение всех обновлений."
251
-
252
- #: pages/more-features.php:97
253
- msgid "Manage widgets"
254
- msgstr "Управление виджетами"
255
-
256
- #: pages/more-features.php:99
257
- msgid "Allows you to remove unused widgets."
258
- msgstr "Позволяет удалить неиспользуемые виджеты."
259
-
260
- #: pages/more-features.php:106
261
- msgid "Speed Optimization"
262
- msgstr "Оптимизация производительности"
263
-
264
- #: pages/more-features.php:108
265
- msgid ""
266
- "Increases performance by disabling unused functions and reducing the number "
267
- "of requests."
268
- msgstr ""
269
- "Повышает производительность, отключая неиспользуемые функции и уменьшая "
270
- "количество запросов."
271
-
272
- #: pages/more-features.php:115
273
- msgid "Site privacy"
274
- msgstr "Конфиденциальность сайта"
275
-
276
- #: pages/more-features.php:117
277
- msgid ""
278
- "Allows you to hide the version of the site and plugins. Allows you to hide "
279
- "your\n"
280
- "\t\t\t\t\t\t\tWordPress."
281
- msgstr ""
282
- "Позволяет скрыть версию сайта и плагинов. Позволяет скрыть ваш\n"
283
- "WordPress."
284
-
285
- #: pages/more-features.php:125
286
- msgid "Easy setup"
287
- msgstr "Простая настройка"
288
-
289
- #: pages/more-features.php:127
290
- msgid ""
291
- "In quick mode, you can easily configure the plugin according to your needs."
292
- msgstr ""
293
- "В быстром режиме вы можете легко настроить плагин в соответствии с вашими "
294
- "потребностями."
295
-
296
- #: pages/more-features.php:142
297
- msgid "Get the ultimate plugin 100% FREE"
298
- msgstr "Получить полную версию бесплатно на 100%."
299
-
300
- #~ msgid "component"
301
- #~ msgstr "компонент"
302
-
303
- #~ msgid "plugin"
304
- #~ msgstr "плагин"
305
-
306
- #~ msgid "Site ptotection"
307
- #~ msgstr "Защищает ваш сайт"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.mo DELETED
Binary file
libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.po DELETED
@@ -1,307 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: clearfy\n"
4
- "POT-Creation-Date: 2018-10-16 22:37+0300\n"
5
- "PO-Revision-Date: 2018-10-16 22:41+0300\n"
6
- "Last-Translator: alex.kovalevv@gmail.com <alex.kovalevv@gmail.com>\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-clearfy-compatibility.php:265
21
- msgid "Clearfy warning"
22
- msgstr "Clearfy предупреждение"
23
-
24
- #: includes/check-clearfy-compatibility.php:266
25
- #, php-format
26
- msgid "The %s component"
27
- msgstr "Работа компонента %s"
28
-
29
- #: includes/check-clearfy-compatibility.php:268
30
- msgid "warning"
31
- msgstr "предупреждение"
32
-
33
- #: includes/check-clearfy-compatibility.php:269
34
- #, php-format
35
- msgid "The %s plugin"
36
- msgstr "Работа плагина %s"
37
-
38
- #: includes/check-clearfy-compatibility.php:272
39
- msgid "has stopped."
40
- msgstr "была остановлена."
41
-
42
- #: includes/check-clearfy-compatibility.php:273
43
- msgid "Possible reasons:"
44
- msgstr "Возможные причины:"
45
-
46
- #: includes/check-clearfy-compatibility.php:279
47
- #, php-format
48
- msgid "You need to update the PHP version to %s or higher!"
49
- msgstr "Вам нужно обновить версию PHP до %s или выше!"
50
-
51
- #: includes/check-clearfy-compatibility.php:284
52
- #, php-format
53
- msgid "You need to update WordPress to %s or higher!"
54
- msgstr "Вам нужно обновить WordPress до %s или выше!"
55
-
56
- #: includes/check-clearfy-compatibility.php:289
57
- #, php-format
58
- msgid "You need to update the Clearfy plugin version to %s or higher!"
59
- msgstr "Вам нужно обновить версию плагина Clearfy до %s или выше!"
60
-
61
- #: includes/check-clearfy-compatibility.php:294
62
- msgid "This plugin is already activated, you are trying to activate it again."
63
- msgstr "Этот плагин уже активирован, вы пытаетесь активировать его снова."
64
-
65
- #: includes/check-clearfy-compatibility.php:299
66
- #, php-format
67
- msgid ""
68
- "Clearfy has the features of the %s plugin. Please, deactivate %s to avoid "
69
- "conflicts of plugins!"
70
- msgstr ""
71
- "Плагин Clearfy уже включает в себя функции плагина %s. Пожалуйста, "
72
- "деактивируйте плагин %s, чтобы не создавать конфликтов!"
73
-
74
- #: pages/class.pages.php:212
75
- msgid "Upgrade to Clearfy Business"
76
- msgstr "Перейти на Clearfy Бизнес"
77
-
78
- #: pages/class.pages.php:213
79
- msgid "Oops... Sorry for the inconvenience caused!"
80
- msgstr "Упс... Мы приносим свои извинения за неудобства!"
81
-
82
- #: pages/class.pages.php:214
83
- msgid ""
84
- "Complete multisite support is available in Clearfy Business and Clearfy "
85
- "Business Revolution packages only!"
86
- msgstr ""
87
- "Полная поддержка мультисайтов доступна только в пакете Clearfy Бизнес и "
88
- "Clearfy Бизнес Революция!"
89
-
90
- #: pages/class.pages.php:215
91
- msgid ""
92
- "You can activate the plugin on each website and use it with zero "
93
- "limitations. But you can’t save the plugin’s settings under the Super "
94
- "Administrator role!"
95
- msgstr ""
96
- "Вы можете активировать плагин отдельно для каждого сайта и использовать его "
97
- "без ограничений, но в режиме суперадминистратора, вы не можете сохранять "
98
- "настройки плагина!"
99
-
100
- #: pages/class.pages.php:217
101
- msgid "Activate license "
102
- msgstr "Активировать лицензию "
103
-
104
- #: pages/class.pages.php:218
105
- #, php-format
106
- msgid "Upgrade to Clearfy Business for $%d"
107
- msgstr "Обновить до Clearfy Бизнес за $%d"
108
-
109
- #: pages/class.pages.php:273
110
- msgid "MORE IN CLEARFY <span>BUSINESS</span>"
111
- msgstr "ЛУЧШЕЕ В CLEARFY <span>БИЗНЕС</span>"
112
-
113
- #: pages/class.pages.php:275
114
- msgid "4 premium components now;"
115
- msgstr "4 премиум компонента сейчас;"
116
-
117
- #: pages/class.pages.php:276
118
- msgid "40 new premium components within a year for the single price;"
119
- msgstr "40 новых премиум компонентов в год по одной цене;"
120
-
121
- #: pages/class.pages.php:277
122
- msgid "Multisite support;"
123
- msgstr "Поддержка мультисайтов;"
124
-
125
- #: pages/class.pages.php:278
126
- msgid "Advanced settings;"
127
- msgstr "Дополнительные настройки;"
128
-
129
- #: pages/class.pages.php:279
130
- msgid "No ads;"
131
- msgstr "Нет рекламы;"
132
-
133
- #: pages/class.pages.php:280
134
- msgid "Perfect support."
135
- msgstr "Лучшая поддержка."
136
-
137
- #: pages/class.pages.php:283
138
- #, php-format
139
- msgid "Upgrade for $%s"
140
- msgstr "Обновиться за $%s"
141
-
142
- #: pages/class.pages.php:299
143
- msgid ""
144
- "A neutral setting that can not harm your site, but you must be sure that you "
145
- "need to use it."
146
- msgstr ""
147
- "Нейтральная настройка, которая не может нанести вред вашему сайту, но вы "
148
- "должны быть уверены, что вам нужно ее использовать."
149
-
150
- #: pages/class.pages.php:305
151
- msgid ""
152
- "When set this option, you must be careful. Plugins and themes may depend on "
153
- "this function. You must be sure that you can disable this feature for the "
154
- "site."
155
- msgstr ""
156
- "При включении этой настройки, вы должны быть осторожны. Некоторые плагины и "
157
- "темы могут зависеть от этой функции. Вы должны быть уверены, что эту функцию "
158
- "можно отключить для сайта."
159
-
160
- #: pages/class.pages.php:311
161
- msgid "Absolutely safe setting, We recommend to use."
162
- msgstr "Абсолютно безопасная настройка, рекомендуем использовать."
163
-
164
- #: pages/class.pages.php:316
165
- msgid "Hover to the icon to get help for the feature you selected."
166
- msgstr ""
167
- "Наведите указатель мыши на значок, чтобы получить справку по выбранной "
168
- "функции."
169
-
170
- #: pages/class.pages.php:334
171
- msgid "Do you want the plugin to improved and update?"
172
- msgstr "Вы хотите, чтобы плагин улучшался и обновлялся?"
173
-
174
- #: pages/class.pages.php:337
175
- msgid ""
176
- "Help the author, leave a review on wordpress.org. Thanks to feedback, I will "
177
- "know that the plugin is really useful to you and is needed."
178
- msgstr ""
179
- "Помогите автору, оставьте отзыв на wordpress.org. Благодаря отзывам, я буду "
180
- "знать, что плагин действительно полезен для вас и необходим."
181
-
182
- #: pages/class.pages.php:339
183
- msgid "And also write your ideas on how to extend or improve the plugin."
184
- msgstr "А также напишите свои идеи о том, как расширить или улучшить плагин."
185
-
186
- #: pages/class.pages.php:344
187
- msgid "Go rate us and push ideas"
188
- msgstr "Оставить отзыв или поделиться идеей"
189
-
190
- #: pages/class.pages.php:356
191
- msgid "Donation for plugin development"
192
- msgstr "Пожертвования на развитие плагина"
193
-
194
- #: pages/more-features.php:31
195
- msgid "More features (<b>free</b>)"
196
- msgstr "Дополнительно"
197
-
198
- #: pages/more-features.php:40
199
- msgid "install the ultimate version of the plugin for free!"
200
- msgstr "установите полную версию плагина бесплатно!"
201
-
202
- #: pages/more-features.php:51
203
- msgid "Code cleaning"
204
- msgstr "Очищает код"
205
-
206
- #: pages/more-features.php:53
207
- msgid "Clears the source code of the page from unused code."
208
- msgstr "Очищает исходный код страницы от неиспользуемого кода."
209
-
210
- #: pages/more-features.php:60
211
- msgid "Improve SEO"
212
- msgstr "Улучшает SEO"
213
-
214
- #: pages/more-features.php:62
215
- msgid ""
216
- "Removes duplicate pages, closes external links, changes the headers of the "
217
- "server."
218
- msgstr ""
219
- "Удаляет дубликаты страниц, закрывает внешние ссылки, изменяет заголовки "
220
- "сервера."
221
-
222
- #: pages/more-features.php:69
223
- msgid "Site protection"
224
- msgstr "Защита сайта"
225
-
226
- #: pages/more-features.php:71
227
- msgid "Enables and disables features that improve the protection of your site."
228
- msgstr "Включает и отключает функции, которые улучшают защиту вашего сайта."
229
-
230
- #: pages/more-features.php:78
231
- msgid "Disable comments"
232
- msgstr "Отключает комментарии"
233
-
234
- #: pages/more-features.php:80
235
- msgid "Disables comments on the entire site or on specific pages."
236
- msgstr "Отключает комментарии на всем сайте или у определенных страниц."
237
-
238
- #: pages/more-features.php:87
239
- msgid "Manage updates"
240
- msgstr "Менеджер обновлений"
241
-
242
- #: pages/more-features.php:89
243
- msgid ""
244
- "Enables or disables automatically updates for plugins, themes and core. It "
245
- "is also possible\n"
246
- "\t\t\t\t\t\t\tto disable all updates."
247
- msgstr ""
248
- "Включает или отключает автоматические обновление плагинов, тем и ядра. Также "
249
- "возможно\n"
250
- "отключение всех обновлений."
251
-
252
- #: pages/more-features.php:97
253
- msgid "Manage widgets"
254
- msgstr "Управление виджетами"
255
-
256
- #: pages/more-features.php:99
257
- msgid "Allows you to remove unused widgets."
258
- msgstr "Позволяет удалить неиспользуемые виджеты."
259
-
260
- #: pages/more-features.php:106
261
- msgid "Speed Optimization"
262
- msgstr "Оптимизация производительности"
263
-
264
- #: pages/more-features.php:108
265
- msgid ""
266
- "Increases performance by disabling unused functions and reducing the number "
267
- "of requests."
268
- msgstr ""
269
- "Повышает производительность, отключая неиспользуемые функции и уменьшая "
270
- "количество запросов."
271
-
272
- #: pages/more-features.php:115
273
- msgid "Site privacy"
274
- msgstr "Конфиденциальность сайта"
275
-
276
- #: pages/more-features.php:117
277
- msgid ""
278
- "Allows you to hide the version of the site and plugins. Allows you to hide "
279
- "your\n"
280
- "\t\t\t\t\t\t\tWordPress."
281
- msgstr ""
282
- "Позволяет скрыть версию сайта и плагинов. Позволяет скрыть ваш\n"
283
- "WordPress."
284
-
285
- #: pages/more-features.php:125
286
- msgid "Easy setup"
287
- msgstr "Простая настройка"
288
-
289
- #: pages/more-features.php:127
290
- msgid ""
291
- "In quick mode, you can easily configure the plugin according to your needs."
292
- msgstr ""
293
- "В быстром режиме вы можете легко настроить плагин в соответствии с вашими "
294
- "потребностями."
295
-
296
- #: pages/more-features.php:142
297
- msgid "Get the ultimate plugin 100% FREE"
298
- msgstr "Получить полную версию бесплатно на 100%."
299
-
300
- #~ msgid "component"
301
- #~ msgstr "компонент"
302
-
303
- #~ msgid "plugin"
304
- #~ msgstr "плагин"
305
-
306
- #~ msgid "Site ptotection"
307
- #~ msgstr "Защищает ваш сайт"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/clearfy/langs/wbcr_factory_clearfy_227-ru_RU.mo DELETED
Binary file
libs/factory/clearfy/langs/wbcr_factory_clearfy_227-ru_RU.po DELETED
@@ -1,307 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: clearfy\n"
4
- "POT-Creation-Date: 2018-10-16 22:37+0300\n"
5
- "PO-Revision-Date: 2018-10-16 22:41+0300\n"
6
- "Last-Translator: alex.kovalevv@gmail.com <alex.kovalevv@gmail.com>\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-clearfy-compatibility.php:265
21
- msgid "Clearfy warning"
22
- msgstr "Clearfy предупреждение"
23
-
24
- #: includes/check-clearfy-compatibility.php:266
25
- #, php-format
26
- msgid "The %s component"
27
- msgstr "Работа компонента %s"
28
-
29
- #: includes/check-clearfy-compatibility.php:268
30
- msgid "warning"
31
- msgstr "предупреждение"
32
-
33
- #: includes/check-clearfy-compatibility.php:269
34
- #, php-format
35
- msgid "The %s plugin"
36
- msgstr "Работа плагина %s"
37
-
38
- #: includes/check-clearfy-compatibility.php:272
39
- msgid "has stopped."
40
- msgstr "была остановлена."
41
-
42
- #: includes/check-clearfy-compatibility.php:273
43
- msgid "Possible reasons:"
44
- msgstr "Возможные причины:"
45
-
46
- #: includes/check-clearfy-compatibility.php:279
47
- #, php-format
48
- msgid "You need to update the PHP version to %s or higher!"
49
- msgstr "Вам нужно обновить версию PHP до %s или выше!"
50
-
51
- #: includes/check-clearfy-compatibility.php:284
52
- #, php-format
53
- msgid "You need to update WordPress to %s or higher!"
54
- msgstr "Вам нужно обновить WordPress до %s или выше!"
55
-
56
- #: includes/check-clearfy-compatibility.php:289
57
- #, php-format
58
- msgid "You need to update the Clearfy plugin version to %s or higher!"
59
- msgstr "Вам нужно обновить версию плагина Clearfy до %s или выше!"
60
-
61
- #: includes/check-clearfy-compatibility.php:294
62
- msgid "This plugin is already activated, you are trying to activate it again."
63
- msgstr "Этот плагин уже активирован, вы пытаетесь активировать его снова."
64
-
65
- #: includes/check-clearfy-compatibility.php:299
66
- #, php-format
67
- msgid ""
68
- "Clearfy has the features of the %s plugin. Please, deactivate %s to avoid "
69
- "conflicts of plugins!"
70
- msgstr ""
71
- "Плагин Clearfy уже включает в себя функции плагина %s. Пожалуйста, "
72
- "деактивируйте плагин %s, чтобы не создавать конфликтов!"
73
-
74
- #: pages/class.pages.php:212
75
- msgid "Upgrade to Clearfy Business"
76
- msgstr "Перейти на Clearfy Бизнес"
77
-
78
- #: pages/class.pages.php:213
79
- msgid "Oops... Sorry for the inconvenience caused!"
80
- msgstr "Упс... Мы приносим свои извинения за неудобства!"
81
-
82
- #: pages/class.pages.php:214
83
- msgid ""
84
- "Complete multisite support is available in Clearfy Business and Clearfy "
85
- "Business Revolution packages only!"
86
- msgstr ""
87
- "Полная поддержка мультисайтов доступна только в пакете Clearfy Бизнес и "
88
- "Clearfy Бизнес Революция!"
89
-
90
- #: pages/class.pages.php:215
91
- msgid ""
92
- "You can activate the plugin on each website and use it with zero "
93
- "limitations. But you can’t save the plugin’s settings under the Super "
94
- "Administrator role!"
95
- msgstr ""
96
- "Вы можете активировать плагин отдельно для каждого сайта и использовать его "
97
- "без ограничений, но в режиме суперадминистратора, вы не можете сохранять "
98
- "настройки плагина!"
99
-
100
- #: pages/class.pages.php:217
101
- msgid "Activate license "
102
- msgstr "Активировать лицензию "
103
-
104
- #: pages/class.pages.php:218
105
- #, php-format
106
- msgid "Upgrade to Clearfy Business for $%d"
107
- msgstr "Обновить до Clearfy Бизнес за $%d"
108
-
109
- #: pages/class.pages.php:273
110
- msgid "MORE IN CLEARFY <span>BUSINESS</span>"
111
- msgstr "ЛУЧШЕЕ В CLEARFY <span>БИЗНЕС</span>"
112
-
113
- #: pages/class.pages.php:275
114
- msgid "4 premium components now;"
115
- msgstr "4 премиум компонента сейчас;"
116
-
117
- #: pages/class.pages.php:276
118
- msgid "40 new premium components within a year for the single price;"
119
- msgstr "40 новых премиум компонентов в год по одной цене;"
120
-
121
- #: pages/class.pages.php:277
122
- msgid "Multisite support;"
123
- msgstr "Поддержка мультисайтов;"
124
-
125
- #: pages/class.pages.php:278
126
- msgid "Advanced settings;"
127
- msgstr "Дополнительные настройки;"
128
-
129
- #: pages/class.pages.php:279
130
- msgid "No ads;"
131
- msgstr "Нет рекламы;"
132
-
133
- #: pages/class.pages.php:280
134
- msgid "Perfect support."
135
- msgstr "Лучшая поддержка."
136
-
137
- #: pages/class.pages.php:283
138
- #, php-format
139
- msgid "Upgrade for $%s"
140
- msgstr "Обновиться за $%s"
141
-
142
- #: pages/class.pages.php:299
143
- msgid ""
144
- "A neutral setting that can not harm your site, but you must be sure that you "
145
- "need to use it."
146
- msgstr ""
147
- "Нейтральная настройка, которая не может нанести вред вашему сайту, но вы "
148
- "должны быть уверены, что вам нужно ее использовать."
149
-
150
- #: pages/class.pages.php:305
151
- msgid ""
152
- "When set this option, you must be careful. Plugins and themes may depend on "
153
- "this function. You must be sure that you can disable this feature for the "
154
- "site."
155
- msgstr ""
156
- "При включении этой настройки, вы должны быть осторожны. Некоторые плагины и "
157
- "темы могут зависеть от этой функции. Вы должны быть уверены, что эту функцию "
158
- "можно отключить для сайта."
159
-
160
- #: pages/class.pages.php:311
161
- msgid "Absolutely safe setting, We recommend to use."
162
- msgstr "Абсолютно безопасная настройка, рекомендуем использовать."
163
-
164
- #: pages/class.pages.php:316
165
- msgid "Hover to the icon to get help for the feature you selected."
166
- msgstr ""
167
- "Наведите указатель мыши на значок, чтобы получить справку по выбранной "
168
- "функции."
169
-
170
- #: pages/class.pages.php:334
171
- msgid "Do you want the plugin to improved and update?"
172
- msgstr "Вы хотите, чтобы плагин улучшался и обновлялся?"
173
-
174
- #: pages/class.pages.php:337
175
- msgid ""
176
- "Help the author, leave a review on wordpress.org. Thanks to feedback, I will "
177
- "know that the plugin is really useful to you and is needed."
178
- msgstr ""
179
- "Помогите автору, оставьте отзыв на wordpress.org. Благодаря отзывам, я буду "
180
- "знать, что плагин действительно полезен для вас и необходим."
181
-
182
- #: pages/class.pages.php:339
183
- msgid "And also write your ideas on how to extend or improve the plugin."
184
- msgstr "А также напишите свои идеи о том, как расширить или улучшить плагин."
185
-
186
- #: pages/class.pages.php:344
187
- msgid "Go rate us and push ideas"
188
- msgstr "Оставить отзыв или поделиться идеей"
189
-
190
- #: pages/class.pages.php:356
191
- msgid "Donation for plugin development"
192
- msgstr "Пожертвования на развитие плагина"
193
-
194
- #: pages/more-features.php:31
195
- msgid "More features (<b>free</b>)"
196
- msgstr "Дополнительно"
197
-
198
- #: pages/more-features.php:40
199
- msgid "install the ultimate version of the plugin for free!"
200
- msgstr "установите полную версию плагина бесплатно!"
201
-
202
- #: pages/more-features.php:51
203
- msgid "Code cleaning"
204
- msgstr "Очищает код"
205
-
206
- #: pages/more-features.php:53
207
- msgid "Clears the source code of the page from unused code."
208
- msgstr "Очищает исходный код страницы от неиспользуемого кода."
209
-
210
- #: pages/more-features.php:60
211
- msgid "Improve SEO"
212
- msgstr "Улучшает SEO"
213
-
214
- #: pages/more-features.php:62
215
- msgid ""
216
- "Removes duplicate pages, closes external links, changes the headers of the "
217
- "server."
218
- msgstr ""
219
- "Удаляет дубликаты страниц, закрывает внешние ссылки, изменяет заголовки "
220
- "сервера."
221
-
222
- #: pages/more-features.php:69
223
- msgid "Site protection"
224
- msgstr "Защита сайта"
225
-
226
- #: pages/more-features.php:71
227
- msgid "Enables and disables features that improve the protection of your site."
228
- msgstr "Включает и отключает функции, которые улучшают защиту вашего сайта."
229
-
230
- #: pages/more-features.php:78
231
- msgid "Disable comments"
232
- msgstr "Отключает комментарии"
233
-
234
- #: pages/more-features.php:80
235
- msgid "Disables comments on the entire site or on specific pages."
236
- msgstr "Отключает комментарии на всем сайте или у определенных страниц."
237
-
238
- #: pages/more-features.php:87
239
- msgid "Manage updates"
240
- msgstr "Менеджер обновлений"
241
-
242
- #: pages/more-features.php:89
243
- msgid ""
244
- "Enables or disables automatically updates for plugins, themes and core. It "
245
- "is also possible\n"
246
- "\t\t\t\t\t\t\tto disable all updates."
247
- msgstr ""
248
- "Включает или отключает автоматические обновление плагинов, тем и ядра. Также "
249
- "возможно\n"
250
- "отключение всех обновлений."
251
-
252
- #: pages/more-features.php:97
253
- msgid "Manage widgets"
254
- msgstr "Управление виджетами"
255
-
256
- #: pages/more-features.php:99
257
- msgid "Allows you to remove unused widgets."
258
- msgstr "Позволяет удалить неиспользуемые виджеты."
259
-
260
- #: pages/more-features.php:106
261
- msgid "Speed Optimization"
262
- msgstr "Оптимизация производительности"
263
-
264
- #: pages/more-features.php:108
265
- msgid ""
266
- "Increases performance by disabling unused functions and reducing the number "
267
- "of requests."
268
- msgstr ""
269
- "Повышает производительность, отключая неиспользуемые функции и уменьшая "
270
- "количество запросов."
271
-
272
- #: pages/more-features.php:115
273
- msgid "Site privacy"
274
- msgstr "Конфиденциальность сайта"
275
-
276
- #: pages/more-features.php:117
277
- msgid ""
278
- "Allows you to hide the version of the site and plugins. Allows you to hide "
279
- "your\n"
280
- "\t\t\t\t\t\t\tWordPress."
281
- msgstr ""
282
- "Позволяет скрыть версию сайта и плагинов. Позволяет скрыть ваш\n"
283
- "WordPress."
284
-
285
- #: pages/more-features.php:125
286
- msgid "Easy setup"
287
- msgstr "Простая настройка"
288
-
289
- #: pages/more-features.php:127
290
- msgid ""
291
- "In quick mode, you can easily configure the plugin according to your needs."
292
- msgstr ""
293
- "В быстром режиме вы можете легко настроить плагин в соответствии с вашими "
294
- "потребностями."
295
-
296
- #: pages/more-features.php:142
297
- msgid "Get the ultimate plugin 100% FREE"
298
- msgstr "Получить полную версию бесплатно на 100%."
299
-
300
- #~ msgid "component"
301
- #~ msgstr "компонент"
302
-
303
- #~ msgid "plugin"
304
- #~ msgstr "плагин"
305
-
306
- #~ msgid "Site ptotection"
307
- #~ msgstr "Защищает ваш сайт"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/clearfy/langs/{wbcr_factory_clearfy_217-ru_RU.mo → wbcr_factory_clearfy_230-ru_RU.mo} RENAMED
File without changes
libs/factory/clearfy/langs/{wbcr_factory_clearfy_217-ru_RU.po → wbcr_factory_clearfy_230-ru_RU.po} RENAMED
File without changes
libs/factory/clearfy/pages/class-page-license.php CHANGED
@@ -11,7 +11,7 @@ if( !defined('ABSPATH') ) {
11
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
12
  * @since 2.0.7
13
  */
14
- class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase {
15
 
16
  /**
17
  * {@inheritdoc}
@@ -80,7 +80,7 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
80
 
81
  /**
82
  * @since 2.0.7
83
- * @var \WBCR\Factory_436\Premium\Provider
84
  */
85
  protected $premium;
86
 
@@ -98,7 +98,7 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
98
 
99
  /**
100
  * @since 2.0.7
101
- * @var \WBCR\Factory_436\Premium\Interfaces\License
102
  */
103
  protected $premium_license;
104
 
@@ -107,9 +107,9 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
107
 
108
  /**
109
  * {@inheritdoc}
110
- * @param Wbcr_Factory436_Plugin $plugin
111
  */
112
- public function __construct(Wbcr_Factory436_Plugin $plugin)
113
  {
114
  $this->plugin = $plugin;
115
 
@@ -136,8 +136,8 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
136
  {
137
  parent::assets($scripts, $styles);
138
 
139
- $this->styles->add(FACTORY_CLEARFY_227_URL . '/assets/css/license-manager.css');
140
- $this->scripts->add(FACTORY_CLEARFY_227_URL . '/assets/js/clearfy-license-manager.js');
141
  }
142
 
143
  /**
@@ -147,7 +147,7 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
147
  */
148
  public function ajax_handler()
149
  {
150
- wbcr_factory_clearfy_227_check_license($this->plugin);
151
  }
152
 
153
  /**
@@ -157,7 +157,7 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
157
  {
158
  ?>
159
  <div id="wcl-license-wrapper"
160
- data-loader="<?php echo FACTORY_CLEARFY_227_URL . '/assets/img/loader.gif'; ?>"
161
  data-plugin-name="<?php echo esc_attr($this->plugin_name); ?>"
162
  data-nonce="<?php echo wp_create_nonce("clearfy_activate_license_for_{$this->plugin_name}") ?>">
163
  <?php $this->show_license_form(); ?>
@@ -263,11 +263,11 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
263
  if( $this->is_premium ):
264
  ?>
265
  <p style="margin-top: 10px;">
266
- <?php printf(__('<a href="%s" target="_blank" rel="noopener">Lean more</a> about the premium version and get the license key to activate it now!', 'wbcr_factory_clearfy_227'), $this->plugin->get_support()->get_pricing_url(true, 'license_page')); ?>
267
  </p>
268
  <?php else: ?>
269
  <p style="margin-top: 10px;">
270
- <?php printf(__('Can’t find your key? Go to <a href="%s" target="_blank" rel="noopener">this page</a> and login using the e-mail address associated with your purchase.', 'wbcr_factory_clearfy_227'), $this->plugin->get_support()->get_contacts_url(true, 'license_page')) ?>
271
  </p>
272
  <?php endif;
273
  }
@@ -279,16 +279,16 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
279
  {
280
  ?>
281
  <div id="license-manager"
282
- class="factory-bootstrap-436 onp-page-wrap <?= $this->get_license_type() ?>-license-manager-content">
283
  <div>
284
- <h3><?php printf(__('Activate %s', 'wbcr_factory_clearfy_227'), $this->plan_name) ?></h3>
285
  <?php echo $this->get_plan_description() ?>
286
  </div>
287
  <br>
288
  <?php if( is_wp_error($notice) ) : ?>
289
  <div class="license-message <?= $this->get_license_type() ?>-license-message">
290
  <div class="alert <?php echo esc_attr($notice->get_error_code()); ?>">
291
- <h4 class="alert-heading"><?php _e($notice->get_error_message(), 'wbcr_factory_clearfy_227') ?></h4>
292
  </div>
293
  </div>
294
  <?php endif; ?>
@@ -298,20 +298,20 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
298
  <a href="<?php echo $this->plugin->get_support()->get_pricing_url(true, 'license_page'); ?>"
299
  class="purchase-premium" target="_blank" rel="noopener">
300
  <span class="btn btn-gold btn-inner-wrap">
301
- <?php _e('Upgrade to Premium', 'wbcr_factory_clearfy_227') ?>
302
  </span>
303
  </a>
304
- <p><?php printf(__('Your current license for %1$s:', 'wbcr_factory_clearfy_227'), $this->plugin->getPluginTitle()) ?></p>
305
  <?php endif; ?>
306
  <div class="license-details-block <?= $this->get_license_type() ?>-details-block">
307
  <?php if( $this->is_premium ): ?>
308
  <a data-action="deactivate" href="#"
309
  class="btn btn-default btn-small license-delete-button wcl-control-btn">
310
- <?php _e('Delete Key', 'wbcr_factory_clearfy_227') ?>
311
  </a>
312
  <a data-action="sync" href="#"
313
  class="btn btn-default btn-small license-synchronization-button wcl-control-btn">
314
- <?php _e('Synchronization', 'wbcr_factory_clearfy_227') ?>
315
  </a>
316
  <?php endif; ?>
317
  <h3>
@@ -330,19 +330,19 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
330
  <?php endif; ?>
331
  <div class="license-key-description">
332
  <?php if( !$this->is_premium ): ?>
333
- <p><?php _e('Public License is a GPLv3 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'wbcr_factory_clearfy_227') ?></p>
334
  <?php else: ?>
335
- <p><?php _e('Сommercial license, only to the premium add-on to this free plugin. You cannot distribute or modify the premium add-on. But free plugin is a GPLv3 compatible license allowing you to change and use this version of the plugin for free.', 'wbcr_factory_clearfy_227') ?></p>
336
  <?php endif; ?>
337
  <?php if( $this->is_premium && $this->premium_has_subscription ): ?>
338
  <p class="activate-trial-hint">
339
- <?php _e('You use a paid subscription for the plugin updates. In case you don’t want to receive paid updates, please, click <a data-action="unsubscribe" class="wcl-control-btn" href="#">cancel subscription</a>', 'wbcr_factory_clearfy_227') ?>
340
  </p>
341
  <?php endif; ?>
342
 
343
  <?php if( $this->get_license_type() == 'trial' ): ?>
344
  <p class="activate-error-hint">
345
- <?php printf(__('Your license has expired, please extend the license to get updates and support.', 'wbcr_factory_clearfy_227'), '') ?>
346
  </p>
347
  <?php endif; ?>
348
  </div>
@@ -350,19 +350,19 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
350
  <tr>
351
  <!--<td class="license-param license-param-domain">
352
  <span class="license-value"><?php echo esc_attr($_SERVER['SERVER_NAME']); ?></span>
353
- <span class="license-value-name"><?php _e('domain', 'wbcr_factory_clearfy_227') ?></span>
354
  </td>-->
355
  <td class="license-param license-param-days">
356
  <span class="license-value"><?= $this->get_plan() ?></span>
357
- <span class="license-value-name"><?php _e('plan', 'wbcr_factory_clearfy_227') ?></span>
358
  </td>
359
  <?php if( $this->is_premium ) : ?>
360
  <td class="license-param license-param-sites">
361
  <span class="license-value">
362
  <?php echo esc_attr($this->premium_license->get_count_active_sites()); ?>
363
- <?php _e('of', 'wbcr_factory_clearfy_227') ?>
364
  <?php echo esc_attr($this->premium_license->get_sites_quota()); ?></span>
365
- <span class="license-value-name"><?php _e('active sites', 'wbcr_factory_clearfy_227') ?></span>
366
  </td>
367
  <?php endif; ?>
368
  <td class="license-param license-param-version">
@@ -372,8 +372,8 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
372
  <?php if( $this->is_premium ): ?>
373
  <td class="license-param license-param-days">
374
  <?php if( $this->get_license_type() == 'trial' ): ?>
375
- <span class="license-value"><?php _e('EXPIRED!', 'wbcr_factory_clearfy_227') ?></span>
376
- <span class="license-value-name"><?php _e('please update the key', 'wbcr_factory_clearfy_227') ?></span>
377
  <?php else: ?>
378
  <span class="license-value">
379
  <?php
@@ -383,9 +383,9 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
383
  echo $this->get_expiration_days();
384
  }
385
  ?>
386
- <small> <?php _e('day(s)', 'wbcr_factory_clearfy_227') ?></small>
387
  </span>
388
- <span class="license-value-name"><?php _e('remained', 'wbcr_factory_clearfy_227') ?></span>
389
  <?php endif; ?>
390
  </td>
391
  <?php endif; ?>
@@ -396,14 +396,14 @@ class Wbcr_FactoryClearfy227_LicensePage extends Wbcr_FactoryClearfy227_PageBase
396
  <div class="license-input">
397
  <form action="" method="post">
398
  <?php if($this->is_premium): ?>
399
- <p><?php _e('Have a key to activate the premium version? Paste it here:', 'wbcr_factory_clearfy_227') ?><p>
400
  <?php else: ?>
401
- <p><?php _e('Have a key to activate the plugin? Paste it here:', 'wbcr_factory_clearfy_227') ?>
402
  <p>
403
  <?php endif; ?>
404
  <button data-action="activate" class="btn btn-default wcl-control-btn" type="button"
405
  id="license-submit">
406
- <?php _e('Submit Key', 'wbcr_factory_clearfy_227') ?>
407
  </button>
408
  <div class="license-key-wrap">
409
  <input type="text" id="license-key" name="licensekey" value="" class="form-control"/>
11
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
12
  * @since 2.0.7
13
  */
14
+ class Wbcr_FactoryClearfy230_LicensePage extends Wbcr_FactoryClearfy230_PageBase {
15
 
16
  /**
17
  * {@inheritdoc}
80
 
81
  /**
82
  * @since 2.0.7
83
+ * @var \WBCR\Factory_439\Premium\Provider
84
  */
85
  protected $premium;
86
 
98
 
99
  /**
100
  * @since 2.0.7
101
+ * @var \WBCR\Factory_439\Premium\Interfaces\License
102
  */
103
  protected $premium_license;
104
 
107
 
108
  /**
109
  * {@inheritdoc}
110
+ * @param Wbcr_Factory439_Plugin $plugin
111
  */
112
+ public function __construct(Wbcr_Factory439_Plugin $plugin)
113
  {
114
  $this->plugin = $plugin;
115
 
136
  {
137
  parent::assets($scripts, $styles);
138
 
139
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/license-manager.css');
140
+ $this->scripts->add(FACTORY_CLEARFY_230_URL . '/assets/js/clearfy-license-manager.js');
141
  }
142
 
143
  /**
147
  */
148
  public function ajax_handler()
149
  {
150
+ wbcr_factory_clearfy_230_check_license($this->plugin);
151
  }
152
 
153
  /**
157
  {
158
  ?>
159
  <div id="wcl-license-wrapper"
160
+ data-loader="<?php echo FACTORY_CLEARFY_230_URL . '/assets/img/loader.gif'; ?>"
161
  data-plugin-name="<?php echo esc_attr($this->plugin_name); ?>"
162
  data-nonce="<?php echo wp_create_nonce("clearfy_activate_license_for_{$this->plugin_name}") ?>">
163
  <?php $this->show_license_form(); ?>
263
  if( $this->is_premium ):
264
  ?>
265
  <p style="margin-top: 10px;">
266
+ <?php printf(__('<a href="%s" target="_blank" rel="noopener">Lean more</a> about the premium version and get the license key to activate it now!', 'wbcr_factory_clearfy_230'), $this->plugin->get_support()->get_pricing_url(true, 'license_page')); ?>
267
  </p>
268
  <?php else: ?>
269
  <p style="margin-top: 10px;">
270
+ <?php printf(__('Can’t find your key? Go to <a href="%s" target="_blank" rel="noopener">this page</a> and login using the e-mail address associated with your purchase.', 'wbcr_factory_clearfy_230'), $this->plugin->get_support()->get_contacts_url(true, 'license_page')) ?>
271
  </p>
272
  <?php endif;
273
  }
279
  {
280
  ?>
281
  <div id="license-manager"
282
+ class="factory-bootstrap-439 onp-page-wrap <?= $this->get_license_type() ?>-license-manager-content">
283
  <div>
284
+ <h3><?php printf(__('Activate %s', 'wbcr_factory_clearfy_230'), $this->plan_name) ?></h3>
285
  <?php echo $this->get_plan_description() ?>
286
  </div>
287
  <br>
288
  <?php if( is_wp_error($notice) ) : ?>
289
  <div class="license-message <?= $this->get_license_type() ?>-license-message">
290
  <div class="alert <?php echo esc_attr($notice->get_error_code()); ?>">
291
+ <h4 class="alert-heading"><?php _e($notice->get_error_message(), 'wbcr_factory_clearfy_230') ?></h4>
292
  </div>
293
  </div>
294
  <?php endif; ?>
298
  <a href="<?php echo $this->plugin->get_support()->get_pricing_url(true, 'license_page'); ?>"
299
  class="purchase-premium" target="_blank" rel="noopener">
300
  <span class="btn btn-gold btn-inner-wrap">
301
+ <?php _e('Upgrade to Premium', 'wbcr_factory_clearfy_230') ?>
302
  </span>
303
  </a>
304
+ <p><?php printf(__('Your current license for %1$s:', 'wbcr_factory_clearfy_230'), $this->plugin->getPluginTitle()) ?></p>
305
  <?php endif; ?>
306
  <div class="license-details-block <?= $this->get_license_type() ?>-details-block">
307
  <?php if( $this->is_premium ): ?>
308
  <a data-action="deactivate" href="#"
309
  class="btn btn-default btn-small license-delete-button wcl-control-btn">
310
+ <?php _e('Delete Key', 'wbcr_factory_clearfy_230') ?>
311
  </a>
312
  <a data-action="sync" href="#"
313
  class="btn btn-default btn-small license-synchronization-button wcl-control-btn">
314
+ <?php _e('Synchronization', 'wbcr_factory_clearfy_230') ?>
315
  </a>
316
  <?php endif; ?>
317
  <h3>
330
  <?php endif; ?>
331
  <div class="license-key-description">
332
  <?php if( !$this->is_premium ): ?>
333
+ <p><?php _e('Public License is a GPLv3 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'wbcr_factory_clearfy_230') ?></p>
334
  <?php else: ?>
335
+ <p><?php _e('Сommercial license, only to the premium add-on to this free plugin. You cannot distribute or modify the premium add-on. But free plugin is a GPLv3 compatible license allowing you to change and use this version of the plugin for free.', 'wbcr_factory_clearfy_230') ?></p>
336
  <?php endif; ?>
337
  <?php if( $this->is_premium && $this->premium_has_subscription ): ?>
338
  <p class="activate-trial-hint">
339
+ <?php _e('You use a paid subscription for the plugin updates. In case you don’t want to receive paid updates, please, click <a data-action="unsubscribe" class="wcl-control-btn" href="#">cancel subscription</a>', 'wbcr_factory_clearfy_230') ?>
340
  </p>
341
  <?php endif; ?>
342
 
343
  <?php if( $this->get_license_type() == 'trial' ): ?>
344
  <p class="activate-error-hint">
345
+ <?php printf(__('Your license has expired, please extend the license to get updates and support.', 'wbcr_factory_clearfy_230'), '') ?>
346
  </p>
347
  <?php endif; ?>
348
  </div>
350
  <tr>
351
  <!--<td class="license-param license-param-domain">
352
  <span class="license-value"><?php echo esc_attr($_SERVER['SERVER_NAME']); ?></span>
353
+ <span class="license-value-name"><?php _e('domain', 'wbcr_factory_clearfy_230') ?></span>
354
  </td>-->
355
  <td class="license-param license-param-days">
356
  <span class="license-value"><?= $this->get_plan() ?></span>
357
+ <span class="license-value-name"><?php _e('plan', 'wbcr_factory_clearfy_230') ?></span>
358
  </td>
359
  <?php if( $this->is_premium ) : ?>
360
  <td class="license-param license-param-sites">
361
  <span class="license-value">
362
  <?php echo esc_attr($this->premium_license->get_count_active_sites()); ?>
363
+ <?php _e('of', 'wbcr_factory_clearfy_230') ?>
364
  <?php echo esc_attr($this->premium_license->get_sites_quota()); ?></span>
365
+ <span class="license-value-name"><?php _e('active sites', 'wbcr_factory_clearfy_230') ?></span>
366
  </td>
367
  <?php endif; ?>
368
  <td class="license-param license-param-version">
372
  <?php if( $this->is_premium ): ?>
373
  <td class="license-param license-param-days">
374
  <?php if( $this->get_license_type() == 'trial' ): ?>
375
+ <span class="license-value"><?php _e('EXPIRED!', 'wbcr_factory_clearfy_230') ?></span>
376
+ <span class="license-value-name"><?php _e('please update the key', 'wbcr_factory_clearfy_230') ?></span>
377
  <?php else: ?>
378
  <span class="license-value">
379
  <?php
383
  echo $this->get_expiration_days();
384
  }
385
  ?>
386
+ <small> <?php _e('day(s)', 'wbcr_factory_clearfy_230') ?></small>
387
  </span>
388
+ <span class="license-value-name"><?php _e('remained', 'wbcr_factory_clearfy_230') ?></span>
389
  <?php endif; ?>
390
  </td>
391
  <?php endif; ?>
396
  <div class="license-input">
397
  <form action="" method="post">
398
  <?php if($this->is_premium): ?>
399
+ <p><?php _e('Have a key to activate the premium version? Paste it here:', 'wbcr_factory_clearfy_230') ?><p>
400
  <?php else: ?>
401
+ <p><?php _e('Have a key to activate the plugin? Paste it here:', 'wbcr_factory_clearfy_230') ?>
402
  <p>
403
  <?php endif; ?>
404
  <button data-action="activate" class="btn btn-default wcl-control-btn" type="button"
405
  id="license-submit">
406
+ <?php _e('Submit Key', 'wbcr_factory_clearfy_230') ?>
407
  </button>
408
  <div class="license-key-wrap">
409
  <input type="text" id="license-key" name="licensekey" value="" class="form-control"/>
libs/factory/clearfy/pages/class-page-more-features.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  }
16
 
17
 
18
- class Wbcr_FactoryClearfy227_MoreFeaturesPage extends Wbcr_FactoryPages435_ImpressiveThemplate {
19
 
20
  /**
21
  * {@inheritDoc}
@@ -60,8 +60,8 @@ class Wbcr_FactoryClearfy227_MoreFeaturesPage extends Wbcr_FactoryPages435_Impre
60
  */
61
  public $internal = true;
62
 
63
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
64
- $this->menu_title = __( 'More features (<b>free</b>)', 'wbcr_factory_clearfy_227' );
65
 
66
  parent::__construct( $plugin );
67
 
@@ -74,7 +74,7 @@ class Wbcr_FactoryClearfy227_MoreFeaturesPage extends Wbcr_FactoryPages435_Impre
74
  * @return string
75
  */
76
  public function getPageTitle() {
77
- return __( 'More features', 'wbcr_factory_clearfy_227' );
78
  }
79
 
80
  /**
@@ -88,66 +88,66 @@ class Wbcr_FactoryClearfy227_MoreFeaturesPage extends Wbcr_FactoryPages435_Impre
88
  <div class="col-sm-4">
89
  <div class="wbcr-factory-feature-box">
90
  <span class="dashicons dashicons-yes"></span>
91
- <h3><?php _e( 'Code cleaning', 'wbcr_factory_clearfy_227' ) ?></h3>
92
- <p><?php _e( 'Clears the source code of the page from unused code.', 'wbcr_factory_clearfy_227' ) ?></p>
93
  </div>
94
  </div>
95
  <div class="col-sm-4">
96
  <div class="wbcr-factory-feature-box">
97
  <span class="dashicons dashicons-chart-bar"></span>
98
- <h3><?php _e( 'Improve SEO', 'wbcr_factory_clearfy_227' ) ?></h3>
99
- <p><?php _e( 'Removes duplicate pages, closes external links, changes the headers of the server.', 'wbcr_factory_clearfy_227' ) ?></p>
100
  </div>
101
  </div>
102
  <div class="col-sm-4">
103
  <div class="wbcr-factory-feature-box">
104
  <span class="dashicons dashicons-shield-alt"></span>
105
- <h3><?php _e( 'Site protection', 'wbcr_factory_clearfy_227' ) ?></h3>
106
- <p><?php _e( 'Enables and disables features that improve the protection of your site.', 'wbcr_factory_clearfy_227' ) ?></p>
107
  </div>
108
  </div>
109
  <div class="col-sm-4">
110
  <div class="wbcr-factory-feature-box">
111
  <span class="dashicons dashicons-welcome-comments"></span>
112
- <h3><?php _e( 'Disable comments', 'wbcr_factory_clearfy_227' ) ?></h3>
113
- <p><?php _e( 'Disables comments on the entire site or on specific pages.', 'wbcr_factory_clearfy_227' ) ?></p>
114
  </div>
115
  </div>
116
  <div class="col-sm-4">
117
  <div class="wbcr-factory-feature-box">
118
  <span class="dashicons dashicons-update"></span>
119
- <h3><?php _e( 'Manage updates', 'wbcr_factory_clearfy_227' ) ?></h3>
120
  <p><?php _e( 'Enables or disables automatically updates for plugins, themes and core. It is also possible
121
- to disable all updates.', 'wbcr_factory_clearfy_227' ) ?></p>
122
  </div>
123
  </div>
124
  <div class="col-sm-4">
125
  <div class="wbcr-factory-feature-box">
126
  <span class="dashicons dashicons-admin-plugins"></span>
127
- <h3><?php _e( 'Manage widgets', 'wbcr_factory_clearfy_227' ) ?></h3>
128
- <p><?php _e( 'Allows you to remove unused widgets.', 'wbcr_factory_clearfy_227' ) ?></p>
129
  </div>
130
  </div>
131
  <div class="col-sm-4">
132
  <div class="wbcr-factory-feature-box">
133
  <span class="dashicons dashicons-dashboard"></span>
134
- <h3><?php _e( 'Speed Optimization', 'wbcr_factory_clearfy_227' ) ?></h3>
135
- <p><?php _e( 'Increases performance by disabling unused functions and reducing the number of requests.', 'wbcr_factory_clearfy_227' ) ?></p>
136
  </div>
137
  </div>
138
  <div class="col-sm-4">
139
  <div class="wbcr-factory-feature-box">
140
  <span class="dashicons dashicons-visibility"></span>
141
- <h3><?php _e( 'Site privacy', 'wbcr_factory_clearfy_227' ) ?></h3>
142
  <p><?php _e( 'Allows you to hide the version of the site and plugins. Allows you to hide your
143
- WordPress.', 'wbcr_factory_clearfy_227' ) ?></p>
144
  </div>
145
  </div>
146
  <div class="col-sm-4">
147
  <div class="wbcr-factory-feature-box">
148
  <span class="dashicons dashicons-admin-settings"></span>
149
- <h3><?php _e( 'Easy setup', 'wbcr_factory_clearfy_227' ) ?></h3>
150
- <p><?php _e( 'In quick mode, you can easily configure the plugin according to your needs.', 'wbcr_factory_clearfy_227' ) ?></p>
151
  </div>
152
  </div>
153
  </div>
@@ -161,7 +161,7 @@ class Wbcr_FactoryClearfy227_MoreFeaturesPage extends Wbcr_FactoryPages435_Impre
161
  $url .= '?utm_source=wordpress.org&utm_campaign=' . $this->plugin->getPluginName();
162
  ?>
163
  <a href="<?= $url ?>" class="wbcr-factory-premium-button" target="_blank">
164
- <?php _e( 'Get the ultimate plugin 100% FREE', 'wbcr_factory_clearfy_227' ) ?>
165
  </a>
166
  </div>
167
  <?php
15
  }
16
 
17
 
18
+ class Wbcr_FactoryClearfy230_MoreFeaturesPage extends Wbcr_FactoryPages438_ImpressiveThemplate {
19
 
20
  /**
21
  * {@inheritDoc}
60
  */
61
  public $internal = true;
62
 
63
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
64
+ $this->menu_title = __( 'More features (<b>free</b>)', 'wbcr_factory_clearfy_230' );
65
 
66
  parent::__construct( $plugin );
67
 
74
  * @return string
75
  */
76
  public function getPageTitle() {
77
+ return __( 'More features', 'wbcr_factory_clearfy_230' );
78
  }
79
 
80
  /**
88
  <div class="col-sm-4">
89
  <div class="wbcr-factory-feature-box">
90
  <span class="dashicons dashicons-yes"></span>
91
+ <h3><?php _e( 'Code cleaning', 'wbcr_factory_clearfy_230' ) ?></h3>
92
+ <p><?php _e( 'Clears the source code of the page from unused code.', 'wbcr_factory_clearfy_230' ) ?></p>
93
  </div>
94
  </div>
95
  <div class="col-sm-4">
96
  <div class="wbcr-factory-feature-box">
97
  <span class="dashicons dashicons-chart-bar"></span>
98
+ <h3><?php _e( 'Improve SEO', 'wbcr_factory_clearfy_230' ) ?></h3>
99
+ <p><?php _e( 'Removes duplicate pages, closes external links, changes the headers of the server.', 'wbcr_factory_clearfy_230' ) ?></p>
100
  </div>
101
  </div>
102
  <div class="col-sm-4">
103
  <div class="wbcr-factory-feature-box">
104
  <span class="dashicons dashicons-shield-alt"></span>
105
+ <h3><?php _e( 'Site protection', 'wbcr_factory_clearfy_230' ) ?></h3>
106
+ <p><?php _e( 'Enables and disables features that improve the protection of your site.', 'wbcr_factory_clearfy_230' ) ?></p>
107
  </div>
108
  </div>
109
  <div class="col-sm-4">
110
  <div class="wbcr-factory-feature-box">
111
  <span class="dashicons dashicons-welcome-comments"></span>
112
+ <h3><?php _e( 'Disable comments', 'wbcr_factory_clearfy_230' ) ?></h3>
113
+ <p><?php _e( 'Disables comments on the entire site or on specific pages.', 'wbcr_factory_clearfy_230' ) ?></p>
114
  </div>
115
  </div>
116
  <div class="col-sm-4">
117
  <div class="wbcr-factory-feature-box">
118
  <span class="dashicons dashicons-update"></span>
119
+ <h3><?php _e( 'Manage updates', 'wbcr_factory_clearfy_230' ) ?></h3>
120
  <p><?php _e( 'Enables or disables automatically updates for plugins, themes and core. It is also possible
121
+ to disable all updates.', 'wbcr_factory_clearfy_230' ) ?></p>
122
  </div>
123
  </div>
124
  <div class="col-sm-4">
125
  <div class="wbcr-factory-feature-box">
126
  <span class="dashicons dashicons-admin-plugins"></span>
127
+ <h3><?php _e( 'Manage widgets', 'wbcr_factory_clearfy_230' ) ?></h3>
128
+ <p><?php _e( 'Allows you to remove unused widgets.', 'wbcr_factory_clearfy_230' ) ?></p>
129
  </div>
130
  </div>
131
  <div class="col-sm-4">
132
  <div class="wbcr-factory-feature-box">
133
  <span class="dashicons dashicons-dashboard"></span>
134
+ <h3><?php _e( 'Speed Optimization', 'wbcr_factory_clearfy_230' ) ?></h3>
135
+ <p><?php _e( 'Increases performance by disabling unused functions and reducing the number of requests.', 'wbcr_factory_clearfy_230' ) ?></p>
136
  </div>
137
  </div>
138
  <div class="col-sm-4">
139
  <div class="wbcr-factory-feature-box">
140
  <span class="dashicons dashicons-visibility"></span>
141
+ <h3><?php _e( 'Site privacy', 'wbcr_factory_clearfy_230' ) ?></h3>
142
  <p><?php _e( 'Allows you to hide the version of the site and plugins. Allows you to hide your
143
+ WordPress.', 'wbcr_factory_clearfy_230' ) ?></p>
144
  </div>
145
  </div>
146
  <div class="col-sm-4">
147
  <div class="wbcr-factory-feature-box">
148
  <span class="dashicons dashicons-admin-settings"></span>
149
+ <h3><?php _e( 'Easy setup', 'wbcr_factory_clearfy_230' ) ?></h3>
150
+ <p><?php _e( 'In quick mode, you can easily configure the plugin according to your needs.', 'wbcr_factory_clearfy_230' ) ?></p>
151
  </div>
152
  </div>
153
  </div>
161
  $url .= '?utm_source=wordpress.org&utm_campaign=' . $this->plugin->getPluginName();
162
  ?>
163
  <a href="<?= $url ?>" class="wbcr-factory-premium-button" target="_blank">
164
+ <?php _e( 'Get the ultimate plugin 100% FREE', 'wbcr_factory_clearfy_230' ) ?>
165
  </a>
166
  </div>
167
  <?php
libs/factory/clearfy/pages/class-page-setup.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\FactoryClearfy227\Pages;
4
 
5
  // Exit if accessed directly
6
  if( !defined('ABSPATH') ) {
@@ -10,15 +10,15 @@ if( !defined('ABSPATH') ) {
10
  /**
11
  * Класс страницы, которая реализует функции мастера установки.
12
  *
13
- * Этот класс унаследован от стандартного шаблона страницы \Wbcr_FactoryPages435_ImpressiveThemplate,
14
  * поэтому все его инструменты могут быть применены и в этом классе. Но вы должны учитывать, что
15
  * поведение экшенов страницы было изменено. В данной реализации экшены используется для пагинации шагов.
16
  *
17
- * @package WBCR\FactoryClearfy227\Pages
18
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
19
  * @since 2.2.2
20
  */
21
- class Setup extends \Wbcr_FactoryPages435_ImpressiveThemplate {
22
 
23
  const DEFAULT_STEP = 'step0';
24
 
@@ -68,20 +68,20 @@ class Setup extends \Wbcr_FactoryPages435_ImpressiveThemplate {
68
  private $steps = [];
69
 
70
  /**
71
- * @param \Wbcr_Factory436_Plugin $plugin
72
  */
73
- public function __construct(\Wbcr_Factory436_Plugin $plugin)
74
  {
75
  $this->id = 'setup';
76
 
77
- $this->menu_title = __('Setup master', 'wbcr_factory_clearfy_227');
78
- $this->page_menu_short_description = __('Setup master', 'wbcr_factory_clearfy_227');
79
  parent::__construct($plugin);
80
  }
81
 
82
  public function getPageTitle()
83
  {
84
- return __('Setup', 'wbcr_factory_clearfy_227');
85
  }
86
 
87
  public function get_close_wizard_url()
@@ -135,18 +135,18 @@ class Setup extends \Wbcr_FactoryPages435_ImpressiveThemplate {
135
  /**
136
  * Requests assets (js and css) for the page.
137
  *
138
- * @param \Wbcr_Factory436_ScriptList $scripts
139
- * @param \Wbcr_Factory436_StyleList $styles
140
  *
141
  * @return void
142
- * @see Wbcr_FactoryPages435_AdminPage
143
  *
144
  */
145
  public function assets($scripts, $styles)
146
  {
147
  parent::assets($scripts, $styles);
148
 
149
- $this->styles->add(FACTORY_CLEARFY_227_URL . '/assets/css/page-setup.css');
150
 
151
  // Require step assets
152
  if( isset($_GET['action']) && false !== strpos($_GET['action'], 'step') && isset($this->steps[$_GET['action']]) ) {
@@ -163,8 +163,8 @@ class Setup extends \Wbcr_FactoryPages435_ImpressiveThemplate {
163
  protected function showPage($content = null)
164
  {
165
  ?>
166
- <div class="w-factory-clearfy-227-setup">
167
- <ol class="w-factory-clearfy-227-setup-steps">
168
  <?php foreach($this->steps as $step): ?>
169
  <?php if( self::DEFAULT_STEP === $step->get_id() ) {
170
  continue;
@@ -172,11 +172,11 @@ class Setup extends \Wbcr_FactoryPages435_ImpressiveThemplate {
172
  <li <?php if($this->current_step === $step->get_id()): ?>class="active"<?php endif; ?>><?php echo $step->get_title(); ?></li>
173
  <?php endforeach; ?>
174
  </ol>
175
- <div class="w-factory-clearfy-227-setup-content">
176
  <?php echo $content; ?>
177
  </div>
178
- <a class="w-factory-clearfy-227-setup-footer-links" href="<?php echo esc_url($this->get_close_wizard_url()); ?>">
179
- <?php _e('Not now', 'wbcr_factory_clearfy_227') ?>
180
  </a>
181
  </div>
182
  <?php
1
  <?php
2
 
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
 
5
  // Exit if accessed directly
6
  if( !defined('ABSPATH') ) {
10
  /**
11
  * Класс страницы, которая реализует функции мастера установки.
12
  *
13
+ * Этот класс унаследован от стандартного шаблона страницы \Wbcr_FactoryPages438_ImpressiveThemplate,
14
  * поэтому все его инструменты могут быть применены и в этом классе. Но вы должны учитывать, что
15
  * поведение экшенов страницы было изменено. В данной реализации экшены используется для пагинации шагов.
16
  *
17
+ * @package WBCR\FactoryClearfy230\Pages
18
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
19
  * @since 2.2.2
20
  */
21
+ class Setup extends \Wbcr_FactoryPages438_ImpressiveThemplate {
22
 
23
  const DEFAULT_STEP = 'step0';
24
 
68
  private $steps = [];
69
 
70
  /**
71
+ * @param \Wbcr_Factory439_Plugin $plugin
72
  */
73
+ public function __construct(\Wbcr_Factory439_Plugin $plugin)
74
  {
75
  $this->id = 'setup';
76
 
77
+ $this->menu_title = __('Setup master', 'wbcr_factory_clearfy_230');
78
+ $this->page_menu_short_description = __('Setup master', 'wbcr_factory_clearfy_230');
79
  parent::__construct($plugin);
80
  }
81
 
82
  public function getPageTitle()
83
  {
84
+ return __('Setup', 'wbcr_factory_clearfy_230');
85
  }
86
 
87
  public function get_close_wizard_url()
135
  /**
136
  * Requests assets (js and css) for the page.
137
  *
138
+ * @param \Wbcr_Factory439_ScriptList $scripts
139
+ * @param \Wbcr_Factory439_StyleList $styles
140
  *
141
  * @return void
142
+ * @see Wbcr_FactoryPages438_AdminPage
143
  *
144
  */
145
  public function assets($scripts, $styles)
146
  {
147
  parent::assets($scripts, $styles);
148
 
149
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/page-setup.css');
150
 
151
  // Require step assets
152
  if( isset($_GET['action']) && false !== strpos($_GET['action'], 'step') && isset($this->steps[$_GET['action']]) ) {
163
  protected function showPage($content = null)
164
  {
165
  ?>
166
+ <div class="w-factory-clearfy-230-setup">
167
+ <ol class="w-factory-clearfy-230-setup-steps">
168
  <?php foreach($this->steps as $step): ?>
169
  <?php if( self::DEFAULT_STEP === $step->get_id() ) {
170
  continue;
172
  <li <?php if($this->current_step === $step->get_id()): ?>class="active"<?php endif; ?>><?php echo $step->get_title(); ?></li>
173
  <?php endforeach; ?>
174
  </ol>
175
+ <div class="w-factory-clearfy-230-setup-content">
176
  <?php echo $content; ?>
177
  </div>
178
+ <a class="w-factory-clearfy-230-setup-footer-links" href="<?php echo esc_url($this->get_close_wizard_url()); ?>">
179
+ <?php _e('Not now', 'wbcr_factory_clearfy_230') ?>
180
  </a>
181
  </div>
182
  <?php
libs/factory/clearfy/pages/class-pages-components.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\FactoryClearfy227\Pages;
4
 
5
  /**
6
  * This file is the add-ons page.
@@ -16,7 +16,7 @@ if( !defined('ABSPATH') ) {
16
  exit;
17
  }
18
 
19
- class Components extends \Wbcr_FactoryClearfy227_PageBase {
20
 
21
  /**
22
  * The id of the page in the admin menu.
@@ -24,7 +24,7 @@ class Components extends \Wbcr_FactoryClearfy227_PageBase {
24
  * Mainly used to navigate between pages.
25
  *
26
  * @since 1.0.0
27
- * @see FactoryPages435_AdminPage
28
  *
29
  * @var string
30
  */
@@ -41,12 +41,12 @@ class Components extends \Wbcr_FactoryClearfy227_PageBase {
41
  public $available_for_multisite = true;
42
 
43
  /**
44
- * @param \Wbcr_Factory436_Plugin $plugin
45
  */
46
- public function __construct(\Wbcr_Factory436_Plugin $plugin)
47
  {
48
- $this->menu_title = __('Components', 'wbcr_factory_clearfy_227');
49
- $this->page_menu_short_description = __('More features for plugin', 'wbcr_factory_clearfy_227');
50
 
51
  parent::__construct($plugin);
52
 
@@ -58,18 +58,18 @@ class Components extends \Wbcr_FactoryClearfy227_PageBase {
58
  *
59
  * @return void
60
  * @since 1.0.0
61
- * @see FactoryPages435_AdminPage
62
  *
63
  */
64
  public function assets($scripts, $styles)
65
  {
66
  parent::assets($scripts, $styles);
67
 
68
- $this->styles->add(FACTORY_CLEARFY_227_URL . '/assets/css/components.css');
69
 
70
  /**
71
- * @param \Wbcr_Factory436_StyleList $styles
72
- * @param \Wbcr_Factory436_ScriptList $scripts
73
  * @since 1.4.0
74
  *
75
  */
@@ -80,10 +80,10 @@ class Components extends \Wbcr_FactoryClearfy227_PageBase {
80
  * We register notifications for some actions
81
  *
82
  * @param $notices
83
- * @param \Wbcr_Factory436_Plugin $plugin
84
  *
85
  * @return array
86
- * @see libs\factory\pages\themplates\FactoryPages435_ImpressiveThemplate
87
  */
88
  public function getActionNotices($notices)
89
  {
@@ -92,7 +92,7 @@ class Components extends \Wbcr_FactoryClearfy227_PageBase {
92
  'wbcr-force-update-components-success' => 1
93
  ],
94
  'type' => 'success',
95
- 'message' => __('Components have been successfully updated to the latest version.', 'wbcr_factory_clearfy_227')
96
  ];
97
 
98
  $notices[] = [
@@ -100,7 +100,7 @@ class Components extends \Wbcr_FactoryClearfy227_PageBase {
100
  'wbcr-force-update-components-error' => 'inactive_licence'
101
  ],
102
  'type' => 'danger',
103
- 'message' => __('To use premium components, you need activate a license!', 'wbcr_factory_clearfy_227') . '<a href="admin.php?page=license-wbcr_clearfy" class="btn btn-gold">' . __('Activate license', 'wbcr_factory_clearfy_227') . '</a>'
104
  ];
105
 
106
  $notices[] = [
@@ -173,12 +173,12 @@ class Components extends \Wbcr_FactoryClearfy227_PageBase {
173
  $components = apply_filters('wbcr/clearfy/components/items_list', $components);
174
 
175
  ?>
176
- <div class="wbcr-factory-page-group-header"><?php _e('<strong>Plugin Components</strong>.', 'wbcr_factory_clearfy_227') ?>
177
  <p>
178
- <?php _e('These are components of the plugin bundle. When you activate the plugin, all the components turned on by default. If you don’t need some function, you can easily turn it off on this page.', 'wbcr_factory_clearfy_227') ?>
179
  </p>
180
  </div>
181
- <div class="wbc-factory-clearfy-227-components">
182
  <?php
183
  /**
184
  * @since 1.4.0
@@ -228,7 +228,7 @@ class Components extends \Wbcr_FactoryClearfy227_PageBase {
228
  </div>
229
  <div class="plugin-card-bottom">
230
  <?php if( 'premium' === $component['build'] && !($this->plugin->premium->is_activate() && $this->plugin->premium->is_install_package()) ): ?>
231
- <a target="_blank" href="<?php echo esc_url($component['url']) ?>" class="button button-default install-now"><?php _e('Read more', 'wbcr_factory_clearfy_227'); ?></a>
232
  <?php else: ?>
233
  <?php $delete_button->render_button(); ?><?php $install_button->render_button(); ?>
234
  <?php endif; ?>
1
  <?php
2
 
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
 
5
  /**
6
  * This file is the add-ons page.
16
  exit;
17
  }
18
 
19
+ class Components extends \Wbcr_FactoryClearfy230_PageBase {
20
 
21
  /**
22
  * The id of the page in the admin menu.
24
  * Mainly used to navigate between pages.
25
  *
26
  * @since 1.0.0
27
+ * @see FactoryPages438_AdminPage
28
  *
29
  * @var string
30
  */
41
  public $available_for_multisite = true;
42
 
43
  /**
44
+ * @param \Wbcr_Factory439_Plugin $plugin
45
  */
46
+ public function __construct(\Wbcr_Factory439_Plugin $plugin)
47
  {
48
+ $this->menu_title = __('Components', 'wbcr_factory_clearfy_230');
49
+ $this->page_menu_short_description = __('More features for plugin', 'wbcr_factory_clearfy_230');
50
 
51
  parent::__construct($plugin);
52
 
58
  *
59
  * @return void
60
  * @since 1.0.0
61
+ * @see FactoryPages438_AdminPage
62
  *
63
  */
64
  public function assets($scripts, $styles)
65
  {
66
  parent::assets($scripts, $styles);
67
 
68
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/components.css');
69
 
70
  /**
71
+ * @param \Wbcr_Factory439_StyleList $styles
72
+ * @param \Wbcr_Factory439_ScriptList $scripts
73
  * @since 1.4.0
74
  *
75
  */
80
  * We register notifications for some actions
81
  *
82
  * @param $notices
83
+ * @param \Wbcr_Factory439_Plugin $plugin
84
  *
85
  * @return array
86
+ * @see libs\factory\pages\themplates\FactoryPages438_ImpressiveThemplate
87
  */
88
  public function getActionNotices($notices)
89
  {
92
  'wbcr-force-update-components-success' => 1
93
  ],
94
  'type' => 'success',
95
+ 'message' => __('Components have been successfully updated to the latest version.', 'wbcr_factory_clearfy_230')
96
  ];
97
 
98
  $notices[] = [
100
  'wbcr-force-update-components-error' => 'inactive_licence'
101
  ],
102
  'type' => 'danger',
103
+ 'message' => __('To use premium components, you need activate a license!', 'wbcr_factory_clearfy_230') . '<a href="admin.php?page=license-wbcr_clearfy" class="btn btn-gold">' . __('Activate license', 'wbcr_factory_clearfy_230') . '</a>'
104
  ];
105
 
106
  $notices[] = [
173
  $components = apply_filters('wbcr/clearfy/components/items_list', $components);
174
 
175
  ?>
176
+ <div class="wbcr-factory-page-group-header"><?php _e('<strong>Plugin Components</strong>.', 'wbcr_factory_clearfy_230') ?>
177
  <p>
178
+ <?php _e('These are components of the plugin bundle. When you activate the plugin, all the components turned on by default. If you don’t need some function, you can easily turn it off on this page.', 'wbcr_factory_clearfy_230') ?>
179
  </p>
180
  </div>
181
+ <div class="wbc-factory-clearfy-230-components">
182
  <?php
183
  /**
184
  * @since 1.4.0
228
  </div>
229
  <div class="plugin-card-bottom">
230
  <?php if( 'premium' === $component['build'] && !($this->plugin->premium->is_activate() && $this->plugin->premium->is_install_package()) ): ?>
231
+ <a target="_blank" href="<?php echo esc_url($component['url']) ?>" class="button button-default install-now"><?php _e('Read more', 'wbcr_factory_clearfy_230'); ?></a>
232
  <?php else: ?>
233
  <?php $delete_button->render_button(); ?><?php $install_button->render_button(); ?>
234
  <?php endif; ?>
libs/factory/clearfy/pages/class-pages.php CHANGED
@@ -14,15 +14,16 @@ if( !defined('ABSPATH') ) {
14
  }
15
 
16
  /**
17
- * Class Wbcr_FactoryPages435_ImpressiveThemplate
18
  *
19
  * @method string getInfoWidget() - get widget content information
20
  * @method string getRatingWidget(array $args = []) - get widget content rating
21
  * @method string getDonateWidget() - get widget content donate
 
22
  * @method string getBusinessSuggetionWidget()
23
  * @method string getSupportWidget
24
  */
25
- class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThemplate {
26
 
27
  /**
28
  * {@inheritDoc}
@@ -57,9 +58,9 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
57
  public $show_search_options_form = true;
58
 
59
  /**
60
- * @param Wbcr_Factory436_Plugin $plugin
61
  */
62
- public function __construct(Wbcr_Factory436_Plugin $plugin)
63
  {
64
  parent::__construct($plugin);
65
 
@@ -95,30 +96,38 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
95
  /**
96
  * Requests assets (js and css) for the page.
97
  *
98
- * @param Wbcr_Factory436_ScriptList $scripts
99
- * @param Wbcr_Factory436_StyleList $styles
100
  *
101
  * @return void
102
- * @see Wbcr_FactoryPages435_AdminPage
103
  *
104
  */
105
  public function assets($scripts, $styles)
106
  {
107
  parent::assets($scripts, $styles);
108
 
109
- $this->styles->add(FACTORY_CLEARFY_227_URL . '/assets/css/clearfy-base.css');
110
 
111
  // todo: вынести все общие скрипты и стили фреймворка, продумать совместимость с другими плагинами
112
  if( defined('WCL_PLUGIN_URL') ) {
113
  $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/general.css');
114
  }
115
 
 
 
 
 
 
 
 
 
116
  // Script for search form on plugin options
117
  if( $this->show_search_options_form && "options" === $this->type ) {
118
- $this->styles->add(FACTORY_CLEARFY_227_URL . '/assets/css/libs/autocomplete.css');
119
 
120
- $this->scripts->add(FACTORY_CLEARFY_227_URL . '/assets/js/libs/jquery.autocomplete.min.js');
121
- $this->scripts->add(FACTORY_CLEARFY_227_URL . '/assets/js/clearfy-search-options.js');
122
  }
123
 
124
  /**
@@ -131,7 +140,7 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
131
  }
132
 
133
  /**
134
- * @return Wbcr_Factory436_Request
135
  */
136
  public function request()
137
  {
@@ -218,8 +227,11 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
218
  $widgets['rating_widget'] = $this->getRatingWidget();
219
  $widgets['support_widget'] = $this->getSupportWidget();
220
  //$widgets['donate_widget'] = $this->getDonateWidget();
221
- } else if( $position == 'right' ) {
222
  $widgets['business_suggetion'] = $this->getBusinessSuggetionWidget();
 
 
 
223
  $widgets['info_widget'] = $this->getInfoWidget();
224
  $widgets['rating_widget'] = $this->getRatingWidget();
225
  }
@@ -227,7 +239,7 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
227
  /**
228
  * @since 4.0.9 - является устаревшим
229
  */
230
- $widgets = wbcr_factory_436_apply_filters_deprecated('wbcr_factory_pages_435_imppage_get_widgets', [
231
  $widgets,
232
  $position,
233
  $this->plugin,
@@ -256,24 +268,24 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
256
  $purchase_url = $this->plugin->get_support()->get_pricing_url(true, 'right_sidebar_ads');
257
 
258
  $default_features = [
259
- '4_premium' => __('4 premium components now;', 'wbcr_factory_clearfy_227'),
260
- '40_premium' => __('40 new premium components within a year for the single price;', 'wbcr_factory_clearfy_227'),
261
- 'multisite_support' => __('Multisite support;', 'wbcr_factory_clearfy_227'),
262
- 'advance_settings' => __('Advanced settings;', 'wbcr_factory_clearfy_227'),
263
- 'no_ads' => __('No ads;', 'wbcr_factory_clearfy_227'),
264
- 'perfect_support' => __('Perfect support.', 'wbcr_factory_clearfy_227')
265
  ];
266
 
267
  /**
268
  * @since 2.0.8 - added
269
  */
270
- $suggetion_title = __('MORE IN CLEARFY <span>BUSINESS</span>', 'wbcr_factory_clearfy_227');
271
  $suggetion_title = apply_filters('wbcr/clearfy/pages/suggetion_title', $suggetion_title, $plugin_name, $this->id);
272
 
273
  /**
274
  * @since 2.0.8 - deprecated
275
  */
276
- $suggetion_features = wbcr_factory_436_apply_filters_deprecated('wbcr/clearfy/page_bussines_suggetion_features', [
277
  $default_features,
278
  $this->plugin->getPluginName(),
279
  $this->id
@@ -289,18 +301,18 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
289
  $suggetion_features = $default_features;
290
  }
291
  ?>
292
- <div class="wbcr-factory-sidebar-widget wbcr-factory-clearfy-227-pro-suggettion">
293
  <h3><?php echo $suggetion_title; ?></h3>
294
  <ul>
295
  <?php if( !empty($suggetion_features) ): ?>
296
  <?php foreach($suggetion_features as $feature): ?>
297
- <li><?= $feature ?></li>
298
  <?php endforeach; ?>
299
  <?php endif; ?>
300
  </ul>
301
  <a href="<?php echo $purchase_url ?>" class="wbcr-factory-purchase-premium" target="_blank"
302
  rel="noopener">
303
- <?php printf(__('Upgrade for $%s', 'wbcr_factory_clearfy_227'), $upgrade_price) ?>
304
  </a>
305
  </div>
306
  <?php
@@ -322,25 +334,25 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
322
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
323
  alt=""/>
324
  </span>
325
- - <?php _e('A neutral setting that can not harm your site, but you must be sure that you need to use it.', 'wbcr_factory_clearfy_227'); ?>
326
  </li>
327
  <li>
328
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
329
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
330
  alt=""/>
331
  </span>
332
- - <?php _e('When set this option, you must be careful. Plugins and themes may depend on this function. You must be sure that you can disable this feature for the site.', 'wbcr_factory_clearfy_227'); ?>
333
  </li>
334
  <li>
335
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
336
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
337
  alt=""/>
338
  </span>
339
- - <?php _e('Absolutely safe setting, We recommend to use.', 'wbcr_factory_clearfy_227'); ?>
340
  </li>
341
  </ul>
342
  ----------<br>
343
- <p><?php _e('Hover to the icon to get help for the feature you selected.', 'wbcr_factory_clearfy_227'); ?></p>
344
  </div>
345
  <?php
346
  }
@@ -362,19 +374,19 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
362
  $page_url = $args[0];
363
  }
364
 
365
- $page_url = apply_filters('wbcr_factory_pages_435_imppage_rating_widget_url', $page_url, $this->plugin->getPluginName(), $this->getResultId());
366
 
367
  ?>
368
  <div class="wbcr-factory-sidebar-widget">
369
  <p>
370
- <strong><?php _e('Do you want the plugin to improved and update?', 'wbcr_factory_clearfy_227'); ?></strong>
371
  </p>
372
- <p><?php _e('Help the author, leave a review on wordpress.org. Thanks to feedback, I will know that the plugin is really useful to you and is needed.', 'wbcr_factory_clearfy_227'); ?></p>
373
- <p><?php _e('And also write your ideas on how to extend or improve the plugin.', 'wbcr_factory_clearfy_227'); ?></p>
374
  <p>
375
  <i class="wbcr-factory-icon-5stars"></i>
376
- <a href="<?= $page_url ?>" title="Go rate us" target="_blank">
377
- <strong><?php _e('Go rate us and push ideas', 'wbcr_factory_clearfy_227'); ?></strong>
378
  </a>
379
  </p>
380
  </div>
@@ -392,7 +404,7 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
392
  ?>
393
  <div class="wbcr-factory-sidebar-widget">
394
  <p>
395
- <strong><?php _e('Donation for plugin development', 'wbcr_factory_clearfy_227'); ?></strong>
396
  </p>
397
  <?php if( get_locale() !== 'ru_RU' ): ?>
398
  <form id="wbcr-factory-paypal-donation-form" action="https://www.paypal.com/cgi-bin/webscr"
@@ -400,7 +412,7 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
400
  <input type="hidden" name="cmd" value="_s-xclick">
401
  <input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
402
  <div class="wbcr-factory-donation-price">5$</div>
403
- <input type="image" src="<?= FACTORY_PAGES_435_URL ?>/templates/assets/img/paypal-donate.png"
404
  border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
405
  </form>
406
  <?php else: ?>
@@ -425,19 +437,19 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
425
 
426
  ?>
427
  <div id="wbcr-clr-support-widget" class="wbcr-factory-sidebar-widget">
428
- <p><strong><?php _e('Having Issues?', 'clearfy'); ?></strong></p>
429
  <div class="wbcr-clr-support-widget-body">
430
  <p>
431
- <?php _e('We provide free support for this plugin. If you are pushed with a problem, just create a new ticket. We will definitely help you!', 'clearfy'); ?>
432
  </p>
433
  <ul>
434
  <li><span class="dashicons dashicons-sos"></span>
435
- <a href="<?= $free_support_url ?>" target="_blank"
436
- rel="noopener"><?php _e('Get starting free support', 'clearfy'); ?></a>
437
  </li>
438
  <li style="margin-top: 15px;background: #fff4f1;padding: 10px;color: #a58074;">
439
  <span class="dashicons dashicons-warning"></span>
440
- <?php printf(__('If you find a php error or a vulnerability in plugin, you can <a href="%s" target="_blank" rel="noopener">create ticket</a> in hot support that we responded instantly.', 'clearfy'), $hot_support_url); ?>
441
  </li>
442
  </ul>
443
  </div>
@@ -445,6 +457,40 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
445
  <?php
446
  }
447
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
448
  /**
449
  * Registers page options in the options registry
450
  *
@@ -452,13 +498,13 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
452
  */
453
  public function register_options_to_search()
454
  {
455
- require_once FACTORY_CLEARFY_227_DIR . '/includes/class-search-options.php';
456
 
457
  $options = $this->getPageOptions();
458
  $page_url = $this->getBaseUrl();
459
  $page_id = $this->getResultId();
460
 
461
- \WBCR\Factory_Clearfy_227\Search_Options::register_options($options, $page_url, $page_id);
462
  }
463
 
464
  /**
@@ -472,12 +518,12 @@ class Wbcr_FactoryClearfy227_PageBase extends Wbcr_FactoryPages435_ImpressiveThe
472
  return;
473
  }
474
  ?>
475
- <div id="wbcr-factory-clearfy-227__search_options_form" class="wbcr-factory-clearfy-227__autocomplete-wrap">
476
- <label for="autocomplete" class="wbcr-factory-clearfy-227__autocomplete-label">
477
- <?php _e('Can\'t find the settings you need? Use the search by the plugin options:', 'wbcr_factory_clearfy_227'); ?>
478
  </label>
479
- <input type="text" name="country" id="wbcr-factory-clearfy-227__autocomplete"/>
480
-
481
  </div>
482
  <?php
483
  }
14
  }
15
 
16
  /**
17
+ * Class Wbcr_FactoryPages438_ImpressiveThemplate
18
  *
19
  * @method string getInfoWidget() - get widget content information
20
  * @method string getRatingWidget(array $args = []) - get widget content rating
21
  * @method string getDonateWidget() - get widget content donate
22
+ * @method string getSubscribeWidget()
23
  * @method string getBusinessSuggetionWidget()
24
  * @method string getSupportWidget
25
  */
26
+ class Wbcr_FactoryClearfy230_PageBase extends Wbcr_FactoryPages438_ImpressiveThemplate {
27
 
28
  /**
29
  * {@inheritDoc}
58
  public $show_search_options_form = true;
59
 
60
  /**
61
+ * @param Wbcr_Factory439_Plugin $plugin
62
  */
63
+ public function __construct(Wbcr_Factory439_Plugin $plugin)
64
  {
65
  parent::__construct($plugin);
66
 
96
  /**
97
  * Requests assets (js and css) for the page.
98
  *
99
+ * @param Wbcr_Factory439_ScriptList $scripts
100
+ * @param Wbcr_Factory439_StyleList $styles
101
  *
102
  * @return void
103
+ * @see Wbcr_FactoryPages438_AdminPage
104
  *
105
  */
106
  public function assets($scripts, $styles)
107
  {
108
  parent::assets($scripts, $styles);
109
 
110
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/clearfy-base.css');
111
 
112
  // todo: вынести все общие скрипты и стили фреймворка, продумать совместимость с другими плагинами
113
  if( defined('WCL_PLUGIN_URL') ) {
114
  $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/general.css');
115
  }
116
 
117
+ if( !($this->plugin->has_premium() && $this->plugin->premium->is_active()) ) {
118
+ $this->scripts->add(FACTORY_CLEARFY_230_URL . '/assets/js/clearfy-widgets.js', [
119
+ 'jquery',
120
+ 'wfactory-439-core-general',
121
+ 'wbcr-factory-clearfy-230-global'
122
+ ], 'wbcr-factory-clearfy-230-widgets');
123
+ }
124
+
125
  // Script for search form on plugin options
126
  if( $this->show_search_options_form && "options" === $this->type ) {
127
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/libs/autocomplete.css');
128
 
129
+ $this->scripts->add(FACTORY_CLEARFY_230_URL . '/assets/js/libs/jquery.autocomplete.min.js');
130
+ $this->scripts->add(FACTORY_CLEARFY_230_URL . '/assets/js/clearfy-search-options.js');
131
  }
132
 
133
  /**
140
  }
141
 
142
  /**
143
+ * @return Wbcr_Factory439_Request
144
  */
145
  public function request()
146
  {
227
  $widgets['rating_widget'] = $this->getRatingWidget();
228
  $widgets['support_widget'] = $this->getSupportWidget();
229
  //$widgets['donate_widget'] = $this->getDonateWidget();
230
+ } else if( $position == 'right' && !($this->plugin->has_premium() && $this->plugin->premium->is_activate()) ) {
231
  $widgets['business_suggetion'] = $this->getBusinessSuggetionWidget();
232
+ if( $this->plugin->getPluginInfoAttr('subscribe_widget') ) {
233
+ $widgets['subscribe'] = $this->getSubscribeWidget();
234
+ }
235
  $widgets['info_widget'] = $this->getInfoWidget();
236
  $widgets['rating_widget'] = $this->getRatingWidget();
237
  }
239
  /**
240
  * @since 4.0.9 - является устаревшим
241
  */
242
+ $widgets = wbcr_factory_439_apply_filters_deprecated('wbcr_factory_pages_438_imppage_get_widgets', [
243
  $widgets,
244
  $position,
245
  $this->plugin,
268
  $purchase_url = $this->plugin->get_support()->get_pricing_url(true, 'right_sidebar_ads');
269
 
270
  $default_features = [
271
+ '4_premium' => __('4 premium components now;', 'wbcr_factory_clearfy_230'),
272
+ '40_premium' => __('40 new premium components within a year for the single price;', 'wbcr_factory_clearfy_230'),
273
+ 'multisite_support' => __('Multisite support;', 'wbcr_factory_clearfy_230'),
274
+ 'advance_settings' => __('Advanced settings;', 'wbcr_factory_clearfy_230'),
275
+ 'no_ads' => __('No ads;', 'wbcr_factory_clearfy_230'),
276
+ 'perfect_support' => __('Perfect support.', 'wbcr_factory_clearfy_230')
277
  ];
278
 
279
  /**
280
  * @since 2.0.8 - added
281
  */
282
+ $suggetion_title = __('MORE IN CLEARFY <span>BUSINESS</span>', 'wbcr_factory_clearfy_230');
283
  $suggetion_title = apply_filters('wbcr/clearfy/pages/suggetion_title', $suggetion_title, $plugin_name, $this->id);
284
 
285
  /**
286
  * @since 2.0.8 - deprecated
287
  */
288
+ $suggetion_features = wbcr_factory_439_apply_filters_deprecated('wbcr/clearfy/page_bussines_suggetion_features', [
289
  $default_features,
290
  $this->plugin->getPluginName(),
291
  $this->id
301
  $suggetion_features = $default_features;
302
  }
303
  ?>
304
+ <div class="wbcr-factory-sidebar-widget wbcr-factory-clearfy-230-pro-suggettion">
305
  <h3><?php echo $suggetion_title; ?></h3>
306
  <ul>
307
  <?php if( !empty($suggetion_features) ): ?>
308
  <?php foreach($suggetion_features as $feature): ?>
309
+ <li><?php echo $feature; ?></li>
310
  <?php endforeach; ?>
311
  <?php endif; ?>
312
  </ul>
313
  <a href="<?php echo $purchase_url ?>" class="wbcr-factory-purchase-premium" target="_blank"
314
  rel="noopener">
315
+ <?php printf(__('Upgrade for $%s', 'wbcr_factory_clearfy_230'), $upgrade_price) ?>
316
  </a>
317
  </div>
318
  <?php
334
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
335
  alt=""/>
336
  </span>
337
+ - <?php _e('A neutral setting that can not harm your site, but you must be sure that you need to use it.', 'wbcr_factory_clearfy_230'); ?>
338
  </li>
339
  <li>
340
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
341
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
342
  alt=""/>
343
  </span>
344
+ - <?php _e('When set this option, you must be careful. Plugins and themes may depend on this function. You must be sure that you can disable this feature for the site.', 'wbcr_factory_clearfy_230'); ?>
345
  </li>
346
  <li>
347
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
348
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
349
  alt=""/>
350
  </span>
351
+ - <?php _e('Absolutely safe setting, We recommend to use.', 'wbcr_factory_clearfy_230'); ?>
352
  </li>
353
  </ul>
354
  ----------<br>
355
+ <p><?php _e('Hover to the icon to get help for the feature you selected.', 'wbcr_factory_clearfy_230'); ?></p>
356
  </div>
357
  <?php
358
  }
374
  $page_url = $args[0];
375
  }
376
 
377
+ $page_url = apply_filters('wbcr_factory_pages_438_imppage_rating_widget_url', $page_url, $this->plugin->getPluginName(), $this->getResultId());
378
 
379
  ?>
380
  <div class="wbcr-factory-sidebar-widget">
381
  <p>
382
+ <strong><?php _e('Do you want the plugin to improved and update?', 'wbcr_factory_clearfy_230'); ?></strong>
383
  </p>
384
+ <p><?php _e('Help the author, leave a review on wordpress.org. Thanks to feedback, I will know that the plugin is really useful to you and is needed.', 'wbcr_factory_clearfy_230'); ?></p>
385
+ <p><?php _e('And also write your ideas on how to extend or improve the plugin.', 'wbcr_factory_clearfy_230'); ?></p>
386
  <p>
387
  <i class="wbcr-factory-icon-5stars"></i>
388
+ <a href="<?php echo $page_url; ?>" title="Go rate us" target="_blank">
389
+ <strong><?php _e('Go rate us and push ideas', 'wbcr_factory_clearfy_230'); ?></strong>
390
  </a>
391
  </p>
392
  </div>
404
  ?>
405
  <div class="wbcr-factory-sidebar-widget">
406
  <p>
407
+ <strong><?php _e('Donation for plugin development', 'wbcr_factory_clearfy_230'); ?></strong>
408
  </p>
409
  <?php if( get_locale() !== 'ru_RU' ): ?>
410
  <form id="wbcr-factory-paypal-donation-form" action="https://www.paypal.com/cgi-bin/webscr"
412
  <input type="hidden" name="cmd" value="_s-xclick">
413
  <input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
414
  <div class="wbcr-factory-donation-price">5$</div>
415
+ <input type="image" src="<?php echo FACTORY_PAGES_438_URL ?>/templates/assets/img/paypal-donate.png"
416
  border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
417
  </form>
418
  <?php else: ?>
437
 
438
  ?>
439
  <div id="wbcr-clr-support-widget" class="wbcr-factory-sidebar-widget">
440
+ <p><strong><?php _e('Having Issues?', 'wbcr_factory_clearfy_230'); ?></strong></p>
441
  <div class="wbcr-clr-support-widget-body">
442
  <p>
443
+ <?php _e('We provide free support for this plugin. If you are pushed with a problem, just create a new ticket. We will definitely help you!', 'wbcr_factory_clearfy_230'); ?>
444
  </p>
445
  <ul>
446
  <li><span class="dashicons dashicons-sos"></span>
447
+ <a href="<?php echo $free_support_url; ?>" target="_blank"
448
+ rel="noopener"><?php _e('Get starting free support', 'wbcr_factory_clearfy_230'); ?></a>
449
  </li>
450
  <li style="margin-top: 15px;background: #fff4f1;padding: 10px;color: #a58074;">
451
  <span class="dashicons dashicons-warning"></span>
452
+ <?php printf(__('If you find a php error or a vulnerability in plugin, you can <a href="%s" target="_blank" rel="noopener">create ticket</a> in hot support that we responded instantly.', 'wbcr_factory_clearfy_230'), $hot_support_url); ?>
453
  </li>
454
  </ul>
455
  </div>
457
  <?php
458
  }
459
 
460
+ public function showSubscribeWidget()
461
+ {
462
+ $widget_settings = $this->plugin->getPluginInfoAttr('subscribe_settings');
463
+ $group_id = isset($widget_settings['group_id']) ? $widget_settings['group_id'] : 0;
464
+ $terms = "https://cm-wp.com/?bizpanda=privacy-policy";
465
+ ?>
466
+ <div id="wbcr-clr-subscribe-widget" class="wbcr-factory-sidebar-widget wbcr-factory-subscribe-widget">
467
+ <p><strong><?php _e('Subscribe to plugin’s newsletter', 'wbcr_factory_clearfy_230'); ?></strong></p>
468
+ <div class="wbcr-clr-subscribe-widget-body">
469
+
470
+ <div class="wbcr-factory-subscribe-widget__message-contanier">
471
+ <div class="wbcr-factory-subscribe-widget__text wbcr-factory-subscribe-widget__text--success">
472
+ <?php _e("Thank you, you have successfully subscribed!", 'wbcr_factory_clearfy_230') ?>
473
+ </div>
474
+ <div class="wbcr-factory-subscribe-widget__text wbcr-factory-subscribe-widget__text--success2">
475
+ <?php _e("Thank you for your subscription, a confirmation email has been sent to you. You need to confirm your subscription to complete this process.", 'wbcr_factory_clearfy_230'); ?>
476
+ </div>
477
+ </div>
478
+
479
+ <form id="wbcr-factory-subscribe-widget__subscribe-form" method="post">
480
+ <input id="wbcr-factory-subscribe-widget__email" class="wbcr-factory-subscribe-widget__field" type="email" name="email" placeholder="<?php _e('Enter your email address', 'wbcr_factory_clearfy_230'); ?>" required>
481
+ <label class="wbcr-factory-subscribe-widget__checkbox-label">
482
+ <input class="wbcr-factory-subscribe-widget__checkbox" type="checkbox" name="agree_terms" required>
483
+ <?php echo sprintf(__("I confirm to subscribe to the CreativeMotion newsletter to receive the latest news. You can find how we use your information on our %s Privacy Policy %s", 'wbcr_factory_clearfy_230'), '<a href="' . $terms . '" target="_blank">', '</a>'); ?>
484
+ </label>
485
+ <input type="hidden" id="wbcr-factory-subscribe-widget__group-id" value="<?php echo esc_attr($group_id); ?>">
486
+ <input type="submit" class="btn wbcr-factory-subscribe-widget__button" value="<?php _e('Subscribe', 'wbcr_factory_clearfy_230'); ?>">
487
+ </form>
488
+ </div>
489
+ </div>
490
+
491
+ <?php
492
+ }
493
+
494
  /**
495
  * Registers page options in the options registry
496
  *
498
  */
499
  public function register_options_to_search()
500
  {
501
+ require_once FACTORY_CLEARFY_230_DIR . '/includes/class-search-options.php';
502
 
503
  $options = $this->getPageOptions();
504
  $page_url = $this->getBaseUrl();
505
  $page_id = $this->getResultId();
506
 
507
+ \WBCR\Factory_Clearfy_230\Search_Options::register_options($options, $page_url, $page_id);
508
  }
509
 
510
  /**
518
  return;
519
  }
520
  ?>
521
+ <div id="wbcr-factory-clearfy-230__search_options_form" class="wbcr-factory-clearfy-230__autocomplete-wrap">
522
+ <label for="autocomplete" class="wbcr-factory-clearfy-230__autocomplete-label">
523
+ <?php _e('Can\'t find the settings you need? Use the search by the plugin options:', 'wbcr_factory_clearfy_230'); ?>
524
  </label>
525
+ <input type="text" name="country" id="wbcr-factory-clearfy-230__autocomplete"/>
526
+
527
  </div>
528
  <?php
529
  }
libs/factory/clearfy/pages/setup-parts/class-step-custom.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\FactoryClearfy227\Pages;
4
 
5
  /**
6
  * Step
@@ -18,10 +18,10 @@ class Step_Custom extends Step {
18
  public function render_button($continue = true, $skip = false, $custom_title = null, $align = 'right')
19
  {
20
  $this->set_button_handler();
21
- $button_title = !empty($custom_title) ? $custom_title : __('Continue', 'wbcr_factory_clearfy_227');
22
 
23
  if( !$this->get_next_id() ) {
24
- $button_title = __('Finish', 'wbcr_factory_clearfy_227');
25
  }
26
 
27
  if( !in_array($align, ['center', 'left', 'right']) ) {
@@ -29,13 +29,13 @@ class Step_Custom extends Step {
29
  }
30
 
31
  ?>
32
- <form method="post" id="w-factory-clearfy-227__setup-form-<?php echo $this->get_id() ?>" class="form-horizontal">
33
- <div class="w-factory-clearfy-227__form-buttons" style="text-align: <?php echo esc_attr($align); ?>">
34
  <?php if( $skip ): ?>
35
- <input type="submit" name="skip_button_<?php echo $this->get_id() ?>" class="button-primary button button-large w-factory-clearfy-227__skip-button" value="<?php _e('Skip', 'wbcr_factory_clearfy_227') ?>">
36
  <?php endif; ?>
37
  <?php if( $continue ): ?>
38
- <input type="submit" name="continue_button_<?php echo $this->get_id() ?>" class="button-primary button button-large w-factory-clearfy-227__continue-button" value="<?php echo $button_title; ?>">
39
  <?php endif; ?>
40
  </div>
41
  </form>
1
  <?php
2
 
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
 
5
  /**
6
  * Step
18
  public function render_button($continue = true, $skip = false, $custom_title = null, $align = 'right')
19
  {
20
  $this->set_button_handler();
21
+ $button_title = !empty($custom_title) ? $custom_title : __('Continue', 'wbcr_factory_clearfy_230');
22
 
23
  if( !$this->get_next_id() ) {
24
+ $button_title = __('Finish', 'wbcr_factory_clearfy_230');
25
  }
26
 
27
  if( !in_array($align, ['center', 'left', 'right']) ) {
29
  }
30
 
31
  ?>
32
+ <form method="post" id="w-factory-clearfy-230__setup-form-<?php echo $this->get_id() ?>" class="form-horizontal">
33
+ <div class="w-factory-clearfy-230__form-buttons" style="text-align: <?php echo esc_attr($align); ?>">
34
  <?php if( $skip ): ?>
35
+ <input type="submit" name="skip_button_<?php echo $this->get_id() ?>" class="button-primary button button-large w-factory-clearfy-230__skip-button" value="<?php _e('Skip', 'wbcr_factory_clearfy_230') ?>">
36
  <?php endif; ?>
37
  <?php if( $continue ): ?>
38
+ <input type="submit" name="continue_button_<?php echo $this->get_id() ?>" class="button-primary button button-large w-factory-clearfy-230__continue-button" value="<?php echo $button_title; ?>">
39
  <?php endif; ?>
40
  </div>
41
  </form>
libs/factory/clearfy/pages/setup-parts/class-step-form.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\FactoryClearfy227\Pages;
4
 
5
  /**
6
  * Step
@@ -10,7 +10,7 @@ namespace WBCR\FactoryClearfy227\Pages;
10
  */
11
  class Step_Form extends Step {
12
 
13
- public function __construct(\WBCR\FactoryClearfy227\Pages\Setup $page)
14
  {
15
  parent::__construct($page);
16
  }
@@ -33,12 +33,12 @@ class Step_Form extends Step {
33
  protected function instance_form($options)
34
  {
35
 
36
- $form = new \Wbcr_FactoryForms433_Form([
37
  'scope' => rtrim($this->plugin->getPrefix(), '_'),
38
  'name' => $this->page->getResultId() . "-options-" . $this->get_id()
39
  ], $this->plugin);
40
 
41
- $form->setProvider(new \Wbcr_FactoryForms433_OptionsValueProvider($this->plugin));
42
 
43
  $form_options = [];
44
 
@@ -83,20 +83,20 @@ class Step_Form extends Step {
83
  return $form;
84
  }
85
 
86
- protected function render_form(\Wbcr_FactoryForms433_Form $form)
87
  {
88
  ?>
89
- <form method="post" id="w-factory-clearfy-227__setup-form-<?php echo $this->get_id() ?>" class="w-factory-clearfy-227__setup-form form-horizontal">
90
  <?php $form->html(); ?>
91
- <div class="w-factory-clearfy-227__form-buttons">
92
- <!--<input type="submit" name="skip_button_<?php /*echo $this->get_id() */ ?>" class="button-primary button button-large w-factory-clearfy-227__skip-button" value="<?php /*_e('Skip', 'wbcr_factory_clearfy_227') */ ?>">-->
93
- <input type="submit" name="continue_button_<?php echo $this->get_id() ?>" class="button-primary button button-large w-factory-clearfy-227__continue-button" value="<?php _e('Continue', 'wbcr_factory_clearfy_227') ?>">
94
  </div>
95
  </form>
96
  <?php
97
  }
98
 
99
- protected function set_form_handler(\Wbcr_FactoryForms433_Form $form)
100
  {
101
  if( isset($_POST['continue_button_' . $this->get_id()]) ) {
102
  $form->save();
@@ -121,8 +121,8 @@ class Step_Form extends Step {
121
  $form = $this->instance_form($this->get_form_options());
122
  ?>
123
  <div id="WBCR" class="wrap">
124
- <div class="wbcr-factory-pages-435-impressive-page-template factory-bootstrap-436 factory-fontawesome-000">
125
- <div class="w-factory-clearfy-227-setup__inner-wrap">
126
  <h3><?php echo $this->get_title(); ?></h3>
127
  <p style="text-align: left;"><?php echo $this->get_form_description(); ?></p>
128
  </div>
1
  <?php
2
 
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
 
5
  /**
6
  * Step
10
  */
11
  class Step_Form extends Step {
12
 
13
+ public function __construct(\WBCR\FactoryClearfy230\Pages\Setup $page)
14
  {
15
  parent::__construct($page);
16
  }
33
  protected function instance_form($options)
34
  {
35
 
36
+ $form = new \Wbcr_FactoryForms436_Form([
37
  'scope' => rtrim($this->plugin->getPrefix(), '_'),
38
  'name' => $this->page->getResultId() . "-options-" . $this->get_id()
39
  ], $this->plugin);
40
 
41
+ $form->setProvider(new \Wbcr_FactoryForms436_OptionsValueProvider($this->plugin));
42
 
43
  $form_options = [];
44
 
83
  return $form;
84
  }
85
 
86
+ protected function render_form(\Wbcr_FactoryForms436_Form $form)
87
  {
88
  ?>
89
+ <form method="post" id="w-factory-clearfy-230__setup-form-<?php echo $this->get_id() ?>" class="w-factory-clearfy-230__setup-form form-horizontal">
90
  <?php $form->html(); ?>
91
+ <div class="w-factory-clearfy-230__form-buttons">
92
+ <!--<input type="submit" name="skip_button_<?php /*echo $this->get_id() */ ?>" class="button-primary button button-large w-factory-clearfy-230__skip-button" value="<?php /*_e('Skip', 'wbcr_factory_clearfy_230') */ ?>">-->
93
+ <input type="submit" name="continue_button_<?php echo $this->get_id() ?>" class="button-primary button button-large w-factory-clearfy-230__continue-button" value="<?php _e('Continue', 'wbcr_factory_clearfy_230') ?>">
94
  </div>
95
  </form>
96
  <?php
97
  }
98
 
99
+ protected function set_form_handler(\Wbcr_FactoryForms436_Form $form)
100
  {
101
  if( isset($_POST['continue_button_' . $this->get_id()]) ) {
102
  $form->save();
121
  $form = $this->instance_form($this->get_form_options());
122
  ?>
123
  <div id="WBCR" class="wrap">
124
+ <div class="wbcr-factory-pages-438-impressive-page-template factory-bootstrap-439 factory-fontawesome-000">
125
+ <div class="w-factory-clearfy-230-setup__inner-wrap">
126
  <h3><?php echo $this->get_title(); ?></h3>
127
  <p style="text-align: left;"><?php echo $this->get_form_description(); ?></p>
128
  </div>
libs/factory/clearfy/pages/setup-parts/class-step.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\FactoryClearfy227\Pages;
4
 
5
  /**
6
  * Step
@@ -16,16 +16,16 @@ abstract class Step {
16
  protected $next_id = false;
17
 
18
  /**
19
- * @var \WBCR\FactoryClearfy227\Pages\Setup
20
  */
21
  protected $page;
22
 
23
  /**
24
- * @var \Wbcr_Factory436_Plugin
25
  */
26
  protected $plugin;
27
 
28
- public function __construct(\WBCR\FactoryClearfy227\Pages\Setup $page)
29
  {
30
  $this->page = $page;
31
  $this->plugin = $page->plugin;
@@ -51,7 +51,7 @@ abstract class Step {
51
  *
52
  * @return void
53
  * @since 1.0.0
54
- * @see FactoryPages435_AdminPage
55
  *
56
  */
57
  public function assets($scripts, $styles)
1
  <?php
2
 
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
 
5
  /**
6
  * Step
16
  protected $next_id = false;
17
 
18
  /**
19
+ * @var \WBCR\FactoryClearfy230\Pages\Setup
20
  */
21
  protected $page;
22
 
23
  /**
24
+ * @var \Wbcr_Factory439_Plugin
25
  */
26
  protected $plugin;
27
 
28
+ public function __construct(\WBCR\FactoryClearfy230\Pages\Setup $page)
29
  {
30
  $this->page = $page;
31
  $this->plugin = $page->plugin;
51
  *
52
  * @return void
53
  * @since 1.0.0
54
+ * @see FactoryPages438_AdminPage
55
  *
56
  */
57
  public function assets($scripts, $styles)
libs/factory/core/ajax/install-addons.php CHANGED
@@ -15,7 +15,7 @@ if( !defined('ABSPATH') ) {
15
  /**
16
  * This action allows you to process Ajax requests to activate external components Clearfy
17
  */
18
- function wfactory_436_install_components($plugin_instance)
19
  {
20
  check_ajax_referer('updates');
21
 
@@ -24,11 +24,11 @@ function wfactory_436_install_components($plugin_instance)
24
  $storage = $plugin_instance->request->post('storage', null, true);
25
 
26
  if( !current_user_can('update_plugins') ) {
27
- wp_die(__('You don\'t have enough capability to edit this information.', 'wbcr_factory_436'), __('Something went wrong.'), 403);
28
  }
29
 
30
  if( empty($slug) || empty($action) ) {
31
- wp_send_json_error(['error_message' => __('Required attributes are not passed or empty.', 'wbcr_factory_436')]);
32
  }
33
  $success = false;
34
  $send_data = [];
@@ -44,7 +44,7 @@ function wfactory_436_install_components($plugin_instance)
44
  $success = true;
45
  }
46
  } else {
47
- wp_send_json_error(['error_message' => __('You are trying to perform an invalid action.', 'wbcr_factory_436')]);
48
  }
49
  } else if( $storage == 'wordpress' || $storage == 'creativemotion' ) {
50
  if( !empty($slug) ) {
@@ -80,7 +80,7 @@ function wfactory_436_install_components($plugin_instance)
80
  /*if ( $action == 'deactivate' ) {
81
  $is_need_rewrite_rules = $plugin_instance->getPopulateOption( 'need_rewrite_rules' );
82
  if ( $is_need_rewrite_rules ) {
83
- $send_data['need_rewrite_rules'] = sprintf( '<span class="wbcr-clr-need-rewrite-rules-message">' . __( 'When you deactivate some components, permanent links may work incorrectly. If this happens, please, <a href="%s">update the permalinks</a>, so you could complete the deactivation.', 'wbcr_factory_436' ), admin_url( 'options-permalink.php' ) . '</span>' );
84
  }
85
  }*/
86
 
@@ -94,7 +94,7 @@ function wfactory_436_install_components($plugin_instance)
94
  wp_send_json_success($send_data);
95
  }
96
 
97
- wp_send_json_error(['error_message' => __('An unknown error occurred during the activation of the component.', 'wbcr_factory_436')]);
98
  }
99
 
100
  /**
@@ -102,18 +102,18 @@ function wfactory_436_install_components($plugin_instance)
102
  * to get the component to work. Usually this is a call to the installation functions,
103
  * but in some cases, overwriting permanent references or compatibility checks.
104
  */
105
- function wfactory_436_prepare_component($plugin_instance)
106
  {
107
  check_ajax_referer('updates');
108
 
109
  $component_name = $plugin_instance->request->post('plugin', null, true);
110
 
111
  if( !current_user_can('update_plugins') ) {
112
- wp_send_json_error(['error_message' => __('You don\'t have enough capability to edit this information.', 'wbcr_factory_436')], 403);
113
  }
114
 
115
  if( empty($component_name) ) {
116
- wp_send_json_error(['error_message' => __('Required attribute [component_name] is empty.', 'wbcr_factory_436')]);
117
  }
118
  // todo: для совместимости с плагином Clearfy
119
  if( "wbcr_clearfy" === $plugin_instance->getPluginName() ) {
@@ -133,7 +133,7 @@ function wfactory_436_prepare_component($plugin_instance)
133
  *
134
  * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
135
  */
136
- function wfactory_436_creativemotion_install_plugin($plugin_instance)
137
  {
138
  check_ajax_referer('updates');
139
 
15
  /**
16
  * This action allows you to process Ajax requests to activate external components Clearfy
17
  */
18
+ function wfactory_439_install_components($plugin_instance)
19
  {
20
  check_ajax_referer('updates');
21
 
24
  $storage = $plugin_instance->request->post('storage', null, true);
25
 
26
  if( !current_user_can('update_plugins') ) {
27
+ wp_die(__('You don\'t have enough capability to edit this information.', 'wbcr_factory_439'), __('Something went wrong.'), 403);
28
  }
29
 
30
  if( empty($slug) || empty($action) ) {
31
+ wp_send_json_error(['error_message' => __('Required attributes are not passed or empty.', 'wbcr_factory_439')]);
32
  }
33
  $success = false;
34
  $send_data = [];
44
  $success = true;
45
  }
46
  } else {
47
+ wp_send_json_error(['error_message' => __('You are trying to perform an invalid action.', 'wbcr_factory_439')]);
48
  }
49
  } else if( $storage == 'wordpress' || $storage == 'creativemotion' ) {
50
  if( !empty($slug) ) {
80
  /*if ( $action == 'deactivate' ) {
81
  $is_need_rewrite_rules = $plugin_instance->getPopulateOption( 'need_rewrite_rules' );
82
  if ( $is_need_rewrite_rules ) {
83
+ $send_data['need_rewrite_rules'] = sprintf( '<span class="wbcr-clr-need-rewrite-rules-message">' . __( 'When you deactivate some components, permanent links may work incorrectly. If this happens, please, <a href="%s">update the permalinks</a>, so you could complete the deactivation.', 'wbcr_factory_439' ), admin_url( 'options-permalink.php' ) . '</span>' );
84
  }
85
  }*/
86
 
94
  wp_send_json_success($send_data);
95
  }
96
 
97
+ wp_send_json_error(['error_message' => __('An unknown error occurred during the activation of the component.', 'wbcr_factory_439')]);
98
  }
99
 
100
  /**
102
  * to get the component to work. Usually this is a call to the installation functions,
103
  * but in some cases, overwriting permanent references or compatibility checks.
104
  */
105
+ function wfactory_439_prepare_component($plugin_instance)
106
  {
107
  check_ajax_referer('updates');
108
 
109
  $component_name = $plugin_instance->request->post('plugin', null, true);
110
 
111
  if( !current_user_can('update_plugins') ) {
112
+ wp_send_json_error(['error_message' => __('You don\'t have enough capability to edit this information.', 'wbcr_factory_439')], 403);
113
  }
114
 
115
  if( empty($component_name) ) {
116
+ wp_send_json_error(['error_message' => __('Required attribute [component_name] is empty.', 'wbcr_factory_439')]);
117
  }
118
  // todo: для совместимости с плагином Clearfy
119
  if( "wbcr_clearfy" === $plugin_instance->getPluginName() ) {
133
  *
134
  * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
135
  */
136
+ function wfactory_439_creativemotion_install_plugin($plugin_instance)
137
  {
138
  check_ajax_referer('updates');
139
 
libs/factory/core/assets/js/core-components.js CHANGED
@@ -20,7 +20,7 @@
20
  * This event is intended for installation, removal, activation, deactivation of external add-ons
21
  */
22
 
23
- $(document).on('click', '.wfactory-436-process-button', function() {
24
  var $this = $(this),
25
  button_i18n = $(this).data('i18n'),
26
  plugin_slug = $(this).data('slug'),
@@ -30,11 +30,11 @@
30
  wpnonce = $(this).data('wpnonce');
31
 
32
  var action = ('creativemotion' === storage)
33
- ? 'wfactory-436-creativemotion-install-plugin'
34
  : 'install-plugin';
35
 
36
  if( storage === 'freemius' || ((storage === 'wordpress' || storage === 'creativemotion' || storage === 'internal') && (plugin_action === 'activate' || plugin_action === 'deactivate')) ) {
37
- action = 'wfactory-436-intall-component';
38
  } else if( storage === 'wordpress' && plugin_action === 'delete' ) {
39
  action = 'delete-plugin';
40
  }
@@ -54,11 +54,11 @@
54
 
55
  $this.addClass('disabled').text(button_i18n.loading);
56
 
57
- $.wfactory_436.hooks.run('core/components/pre_update', [$this, data]);
58
 
59
  self.sendRequest(data, function(response) {
60
  if( !response || !response.success ) {
61
- $.wfactory_436.hooks.run('core/components/update_error', [
62
  $this,
63
  data,
64
  response
@@ -80,7 +80,7 @@
80
  $this.removeClass('button-default').addClass('button-primary');
81
  }
82
 
83
- $.wfactory_436.hooks.run('core/components/installed', [
84
  $this,
85
  data,
86
  response
@@ -96,7 +96,7 @@
96
  $this.removeClass('button-primary').addClass('button-default');
97
  }
98
 
99
- $.wfactory_436.hooks.run('core/components/pre_activate', [
100
  $this,
101
  data,
102
  response
@@ -124,7 +124,7 @@
124
  $this.removeClass('button-default').addClass('button-primary');
125
  }
126
 
127
- $.wfactory_436.hooks.run('core/components/deactivated', [
128
  $this,
129
  data,
130
  response
@@ -134,7 +134,7 @@
134
 
135
  plugin_action = 'install';
136
 
137
- $.wfactory_436.hooks.run('core/components/deleted', [$this, data, response]);
138
  }
139
  } else {
140
  if( plugin_action === 'install' ) {
@@ -144,7 +144,7 @@
144
 
145
  $this.text(button_i18n[plugin_action]);
146
 
147
- $.wfactory_436.hooks.run('core/components/updated', [$this, data, response]);
148
  });
149
 
150
  return false;
@@ -169,7 +169,7 @@
169
  .addClass('disabled')
170
  .text(button_i18n.preparation);
171
 
172
- sendData.action = 'wfactory-436-prepare-component';
173
 
174
  this.sendRequest(sendData, function(response) {
175
  componentButton.removeClass('disabled');
@@ -177,7 +177,7 @@
177
  if( !response || !response.success ) {
178
  componentButton.text(button_i18n['activate']);
179
 
180
- $.wfactory_436.hooks.run('core/components/activation_error', [
181
  componentButton,
182
  sendData,
183
  response
@@ -187,7 +187,7 @@
187
 
188
  componentButton.removeClass('button-primary').text(button_i18n['deactivate']);
189
 
190
- $.wfactory_436.hooks.run('core/components/activated', [
191
  componentButton,
192
  sendData,
193
  response
@@ -210,7 +210,7 @@
210
  console.log(xhr.responseText);
211
  console.log(thrownError);
212
 
213
- $.wfactory_436.hooks.run('core/components/ajax_error', [
214
  xhr,
215
  ajaxOptions,
216
  thrownError
20
  * This event is intended for installation, removal, activation, deactivation of external add-ons
21
  */
22
 
23
+ $(document).on('click', '.wfactory-439-process-button', function() {
24
  var $this = $(this),
25
  button_i18n = $(this).data('i18n'),
26
  plugin_slug = $(this).data('slug'),
30
  wpnonce = $(this).data('wpnonce');
31
 
32
  var action = ('creativemotion' === storage)
33
+ ? 'wfactory-439-creativemotion-install-plugin'
34
  : 'install-plugin';
35
 
36
  if( storage === 'freemius' || ((storage === 'wordpress' || storage === 'creativemotion' || storage === 'internal') && (plugin_action === 'activate' || plugin_action === 'deactivate')) ) {
37
+ action = 'wfactory-439-intall-component';
38
  } else if( storage === 'wordpress' && plugin_action === 'delete' ) {
39
  action = 'delete-plugin';
40
  }
54
 
55
  $this.addClass('disabled').text(button_i18n.loading);
56
 
57
+ $.wfactory_439.hooks.run('core/components/pre_update', [$this, data]);
58
 
59
  self.sendRequest(data, function(response) {
60
  if( !response || !response.success ) {
61
+ $.wfactory_439.hooks.run('core/components/update_error', [
62
  $this,
63
  data,
64
  response
80
  $this.removeClass('button-default').addClass('button-primary');
81
  }
82
 
83
+ $.wfactory_439.hooks.run('core/components/installed', [
84
  $this,
85
  data,
86
  response
96
  $this.removeClass('button-primary').addClass('button-default');
97
  }
98
 
99
+ $.wfactory_439.hooks.run('core/components/pre_activate', [
100
  $this,
101
  data,
102
  response
124
  $this.removeClass('button-default').addClass('button-primary');
125
  }
126
 
127
+ $.wfactory_439.hooks.run('core/components/deactivated', [
128
  $this,
129
  data,
130
  response
134
 
135
  plugin_action = 'install';
136
 
137
+ $.wfactory_439.hooks.run('core/components/deleted', [$this, data, response]);
138
  }
139
  } else {
140
  if( plugin_action === 'install' ) {
144
 
145
  $this.text(button_i18n[plugin_action]);
146
 
147
+ $.wfactory_439.hooks.run('core/components/updated', [$this, data, response]);
148
  });
149
 
150
  return false;
169
  .addClass('disabled')
170
  .text(button_i18n.preparation);
171
 
172
+ sendData.action = 'wfactory-439-prepare-component';
173
 
174
  this.sendRequest(sendData, function(response) {
175
  componentButton.removeClass('disabled');
177
  if( !response || !response.success ) {
178
  componentButton.text(button_i18n['activate']);
179
 
180
+ $.wfactory_439.hooks.run('core/components/activation_error', [
181
  componentButton,
182
  sendData,
183
  response
187
 
188
  componentButton.removeClass('button-primary').text(button_i18n['deactivate']);
189
 
190
+ $.wfactory_439.hooks.run('core/components/activated', [
191
  componentButton,
192
  sendData,
193
  response
210
  console.log(xhr.responseText);
211
  console.log(thrownError);
212
 
213
+ $.wfactory_439.hooks.run('core/components/ajax_error', [
214
  xhr,
215
  ajaxOptions,
216
  thrownError
libs/factory/core/assets/js/core-general.js CHANGED
@@ -8,11 +8,11 @@
8
  (function($) {
9
  'use strict';
10
 
11
- if( !$.wfactory_436 ) {
12
- $.wfactory_436 = {};
13
  }
14
 
15
- $.wfactory_436.filters = $.wfactory_436.filters || {
16
 
17
  /**
18
  * A set of registered filters.
@@ -79,20 +79,20 @@
79
  }
80
  };
81
 
82
- $.wfactory_436.hooks = $.wfactory_436.hooks || {
83
 
84
  /**
85
  * Applies filters to a given input value.
86
  */
87
  run: function(filterName, args) {
88
- $.wfactory_436.filters.run(filterName, args);
89
  },
90
 
91
  /**
92
  * Registers a new filter.
93
  */
94
  add: function(filterName, callback, priority) {
95
- $.wfactory_436.filters.add(filterName, callback, priority);
96
  }
97
  };
98
 
8
  (function($) {
9
  'use strict';
10
 
11
+ if( !$.wfactory_439 ) {
12
+ $.wfactory_439 = {};
13
  }
14
 
15
+ $.wfactory_439.filters = $.wfactory_439.filters || {
16
 
17
  /**
18
  * A set of registered filters.
79
  }
80
  };
81
 
82
+ $.wfactory_439.hooks = $.wfactory_439.hooks || {
83
 
84
  /**
85
  * Applies filters to a given input value.
86
  */
87
  run: function(filterName, args) {
88
+ $.wfactory_439.filters.run(filterName, args);
89
  },
90
 
91
  /**
92
  * Registers a new filter.
93
  */
94
  add: function(filterName, callback, priority) {
95
+ $.wfactory_439.filters.add(filterName, callback, priority);
96
  }
97
  };
98
 
libs/factory/core/boot.php CHANGED
@@ -14,59 +14,59 @@ if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
 
17
- if( defined('FACTORY_436_LOADED') ) {
18
  return;
19
  }
20
 
21
- define('FACTORY_436_LOADED', true);
22
 
23
- define('FACTORY_436_VERSION', '4.3.6');
24
 
25
- define('FACTORY_436_DIR', dirname(__FILE__));
26
- define('FACTORY_436_URL', plugins_url(null, __FILE__));
27
 
28
- load_plugin_textdomain('wbcr_factory_436', false, dirname(plugin_basename(__FILE__)) . '/langs');
29
 
30
  #comp merge
31
- require_once(FACTORY_436_DIR . '/includes/functions.php');
32
 
33
- require_once(FACTORY_436_DIR . '/includes/entities/class-factory-paths.php');
34
- require_once(FACTORY_436_DIR . '/includes/entities/class-factory-support.php');
35
 
36
- require_once(FACTORY_436_DIR . '/includes/class-factory-requests.php');
37
- require_once(FACTORY_436_DIR . '/includes/class-factory-options.php');
38
- require_once(FACTORY_436_DIR . '/includes/class-factory-plugin-base.php');
39
- require_once(FACTORY_436_DIR . '/includes/class-factory-migrations.php');
40
- require_once(FACTORY_436_DIR . '/includes/class-factory-notices.php');
41
 
42
  // ASSETS
43
- require_once(FACTORY_436_DIR . '/includes/assets-managment/class-factory-assets-list.php');
44
- require_once(FACTORY_436_DIR . '/includes/assets-managment/class-factory-script-list.php');
45
- require_once(FACTORY_436_DIR . '/includes/assets-managment/class-factory-style-list.php');
46
 
47
  // PREMIUM
48
- require_once(FACTORY_436_DIR . '/includes/premium/class-factory-license-interface.php');
49
- require_once(FACTORY_436_DIR . '/includes/premium/class-factory-provider-abstract.php');
50
- require_once(FACTORY_436_DIR . '/includes/premium/class-factory-manager.php');
51
 
52
  // UPDATES
53
- require_once(FACTORY_436_DIR . '/includes/updates/repositories/class-factory-repository-abstract.php');
54
- require_once(FACTORY_436_DIR . '/includes/updates/repositories/class-factory-wordpress.php');
55
- require_once(FACTORY_436_DIR . '/includes/updates/class-factory-upgrader.php');
56
- require_once(FACTORY_436_DIR . '/includes/updates/class-factory-premium-upgrader.php');
57
 
58
- require_once(FACTORY_436_DIR . '/includes/class-factory-plugin-abstract.php');
59
 
60
- require_once(FACTORY_436_DIR . '/includes/activation/class-factory-activator.php');
61
- require_once(FACTORY_436_DIR . '/includes/activation/class-factory-update.php');
62
  #endcomp
63
 
64
  add_action('admin_enqueue_scripts', function () {
65
- wp_enqueue_script('wfactory-436-core-general', FACTORY_436_URL . '/assets/js/core-general.js', [
66
  'jquery'
67
- ], FACTORY_436_VERSION);
68
- wp_enqueue_script('wfactory-436-core-components', FACTORY_436_URL . '/assets/js/core-components.js', [
69
  'jquery',
70
- 'wfactory-436-core-general'
71
- ], FACTORY_436_VERSION);
72
  });
14
  exit;
15
  }
16
 
17
+ if( defined('FACTORY_439_LOADED') ) {
18
  return;
19
  }
20
 
21
+ define('FACTORY_439_LOADED', true);
22
 
23
+ define('FACTORY_439_VERSION', '4.3.9');
24
 
25
+ define('FACTORY_439_DIR', dirname(__FILE__));
26
+ define('FACTORY_439_URL', plugins_url(null, __FILE__));
27
 
28
+ load_plugin_textdomain('wbcr_factory_439', false, dirname(plugin_basename(__FILE__)) . '/langs');
29
 
30
  #comp merge
31
+ require_once(FACTORY_439_DIR . '/includes/functions.php');
32
 
33
+ require_once(FACTORY_439_DIR . '/includes/entities/class-factory-paths.php');
34
+ require_once(FACTORY_439_DIR . '/includes/entities/class-factory-support.php');
35
 
36
+ require_once(FACTORY_439_DIR . '/includes/class-factory-requests.php');
37
+ require_once(FACTORY_439_DIR . '/includes/class-factory-options.php');
38
+ require_once(FACTORY_439_DIR . '/includes/class-factory-plugin-base.php');
39
+ require_once(FACTORY_439_DIR . '/includes/class-factory-migrations.php');
40
+ require_once(FACTORY_439_DIR . '/includes/class-factory-notices.php');
41
 
42
  // ASSETS
43
+ require_once(FACTORY_439_DIR . '/includes/assets-managment/class-factory-assets-list.php');
44
+ require_once(FACTORY_439_DIR . '/includes/assets-managment/class-factory-script-list.php');
45
+ require_once(FACTORY_439_DIR . '/includes/assets-managment/class-factory-style-list.php');
46
 
47
  // PREMIUM
48
+ require_once(FACTORY_439_DIR . '/includes/premium/class-factory-license-interface.php');
49
+ require_once(FACTORY_439_DIR . '/includes/premium/class-factory-provider-abstract.php');
50
+ require_once(FACTORY_439_DIR . '/includes/premium/class-factory-manager.php');
51
 
52
  // UPDATES
53
+ require_once(FACTORY_439_DIR . '/includes/updates/repositories/class-factory-repository-abstract.php');
54
+ require_once(FACTORY_439_DIR . '/includes/updates/repositories/class-factory-wordpress.php');
55
+ require_once(FACTORY_439_DIR . '/includes/updates/class-factory-upgrader.php');
56
+ require_once(FACTORY_439_DIR . '/includes/updates/class-factory-premium-upgrader.php');
57
 
58
+ require_once(FACTORY_439_DIR . '/includes/class-factory-plugin-abstract.php');
59
 
60
+ require_once(FACTORY_439_DIR . '/includes/activation/class-factory-activator.php');
61
+ require_once(FACTORY_439_DIR . '/includes/activation/class-factory-update.php');
62
  #endcomp
63
 
64
  add_action('admin_enqueue_scripts', function () {
65
+ wp_enqueue_script('wfactory-439-core-general', FACTORY_439_URL . '/assets/js/core-general.js', [
66
  'jquery'
67
+ ], FACTORY_439_VERSION);
68
+ wp_enqueue_script('wfactory-439-core-components', FACTORY_439_URL . '/assets/js/core-components.js', [
69
  'jquery',
70
+ 'wfactory-439-core-general'
71
+ ], FACTORY_439_VERSION);
72
  });
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 Wbcr_Factory436_Activator {
23
 
24
  /**
25
  * Curent plugin.
26
  *
27
- * @var Wbcr_Factory436_Plugin
28
  */
29
  public $plugin;
30
 
31
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
32
  $this->plugin = $plugin;
33
  }
34
 
19
  *
20
  * @since 1.0.0
21
  */
22
+ abstract class Wbcr_Factory439_Activator {
23
 
24
  /**
25
  * Curent plugin.
26
  *
27
+ * @var Wbcr_Factory439_Plugin
28
  */
29
  public $plugin;
30
 
31
+ public function __construct( Wbcr_Factory439_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 Wbcr_Factory436_Update {
24
 
25
  /**
26
  * Current plugin
27
  *
28
- * @var Wbcr_Factory436_Plugin
29
  */
30
  var $plugin;
31
 
32
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
33
  $this->plugin = $plugin;
34
  }
35
 
20
  *
21
  * @since 1.0.0
22
  */
23
+ abstract class Wbcr_Factory439_Update {
24
 
25
  /**
26
  * Current plugin
27
  *
28
+ * @var Wbcr_Factory439_Plugin
29
  */
30
  var $plugin;
31
 
32
+ public function __construct( Wbcr_Factory439_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 Wbcr_Factory436_AssetsList {
23
 
24
  protected $all = [];
25
  public $header_place = [];
@@ -29,15 +29,15 @@ class Wbcr_Factory436_AssetsList {
29
  protected $default_place;
30
 
31
  /**
32
- * @var Wbcr_Factory436_Plugin
33
  */
34
  protected $plugin;
35
 
36
  /**
37
- * @param Wbcr_Factory436_Plugin $plugin
38
  * @param bool $defaultIsFooter
39
  */
40
- public function __construct( Wbcr_Factory436_Plugin $plugin, $defaultIsFooter = true ) {
41
  $this->plugin = $plugin;
42
 
43
  if ( $defaultIsFooter ) {
19
  *
20
  * @since 1.0.0
21
  */
22
+ class Wbcr_Factory439_AssetsList {
23
 
24
  protected $all = [];
25
  public $header_place = [];
29
  protected $default_place;
30
 
31
  /**
32
+ * @var Wbcr_Factory439_Plugin
33
  */
34
  protected $plugin;
35
 
36
  /**
37
+ * @param Wbcr_Factory439_Plugin $plugin
38
  * @param bool $defaultIsFooter
39
  */
40
+ public function __construct( Wbcr_Factory439_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 Wbcr_Factory436_ScriptList extends Wbcr_Factory436_AssetsList {
24
 
25
  public $localize_data = [];
26
  public $use_ajax = false;
@@ -149,7 +149,7 @@ class Wbcr_Factory436_ScriptList extends Wbcr_Factory436_AssetsList {
149
  * @param string $varname
150
  * @param array $data
151
  *
152
- * @return Wbcr_Factory436_ScriptList $this
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_Factory439_ScriptList extends Wbcr_Factory439_AssetsList {
24
 
25
  public $localize_data = [];
26
  public $use_ajax = false;
149
  * @param string $varname
150
  * @param array $data
151
  *
152
+ * @return Wbcr_Factory439_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 Wbcr_Factory436_StyleList extends Wbcr_Factory436_AssetsList {
24
 
25
  /**
26
  * Adds new items to the collection (default place).
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_Factory439_StyleList extends Wbcr_Factory439_AssetsList {
24
 
25
  /**
26
  * Adds new items to the collection (default place).
libs/factory/core/includes/class-check-compatibility.php CHANGED
@@ -75,19 +75,19 @@ if ( ! class_exists( 'Wbcr_Factory_Compatibility' ) ) {
75
  $notice_text = $notice_default_text = '';
76
  $notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
77
 
78
- $notice_default_text .= sprintf( __( 'The %s plugin has stopped.', 'wbcr_factory_clearfy_227' ), $this->plugin_title ) . ' ';
79
  $notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
80
 
81
  $has_one = false;
82
 
83
  if ( ! $this->isPhpCompatibility() ) {
84
  $has_one = true;
85
- $notice_text .= '- ' . sprintf( __( 'You need to update the PHP version to %s or higher!', 'wbcr_factory_436' ), $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_436' ), $this->required_wp_version ) . '<br>';
91
  }
92
 
93
  if ( $has_one ) {
75
  $notice_text = $notice_default_text = '';
76
  $notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
77
 
78
+ $notice_default_text .= sprintf( __( 'The %s plugin has stopped.', 'wbcr_factory_clearfy_230' ), $this->plugin_title ) . ' ';
79
  $notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
80
 
81
  $has_one = false;
82
 
83
  if ( ! $this->isPhpCompatibility() ) {
84
  $has_one = true;
85
+ $notice_text .= '- ' . sprintf( __( 'You need to update the PHP version to %s or higher!', 'wbcr_factory_439' ), $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_439' ), $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\Factory_436;
4
 
5
  use Exception;
6
- use Wbcr_Factory436_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
@@ -35,11 +35,11 @@ class Migrations {
35
  /**
36
  * Migrations constructor.
37
  *
38
- * @param Wbcr_Factory436_Plugin $plugin
39
  *
40
  * @throws Exception
41
  */
42
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
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', 'wbcr_factory_436' ) . "</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_436' ) . '</b><br>' . $notice_text . '</p>'
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:", "wbcr_factory_436" ) . ' ' . date( "Y-m-d H:i:s", $this->get_plugin_activated_time() ) . "<br>";
166
 
167
- $notice_text .= __( "Old plugin version (debug):", "wbcr_factory_436" ) . ' ' . $this->get_old_plugin_version() . "<br>";
168
- $notice_text .= __( "Current plugin version:", "wbcr_factory_436" ) . ' ' . $this->get_current_plugin_version() . "<br>";
169
- $notice_text .= __( "Need migration:", "wbcr_factory_436" ) . ' ' . ( $this->need_migration() ? "true" : "false" ) . "<br><br>";
170
- $notice_text .= "<a href='{$migrate_url}' class='button button-default'>" . __( "Migrate now", "wbcr_factory_436" ) . "</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_436' ) . '</b><br>' . $notice_text . '</p>'
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.', 'wbcr_factory_436' ) );
509
  }
510
 
511
  $tokens = token_get_all( $phpCode );
1
  <?php
2
 
3
+ namespace WBCR\Factory_439;
4
 
5
  use Exception;
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
35
  /**
36
  * Migrations constructor.
37
  *
38
+ * @param Wbcr_Factory439_Plugin $plugin
39
  *
40
  * @throws Exception
41
  */
42
+ public function __construct( Wbcr_Factory439_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_439' ) . "</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_439' ) . '</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_439" ) . ' ' . date( "Y-m-d H:i:s", $this->get_plugin_activated_time() ) . "<br>";
166
 
167
+ $notice_text .= __( "Old plugin version (debug):", "wbcr_factory_439" ) . ' ' . $this->get_old_plugin_version() . "<br>";
168
+ $notice_text .= __( "Current plugin version:", "wbcr_factory_439" ) . ' ' . $this->get_current_plugin_version() . "<br>";
169
+ $notice_text .= __( "Need migration:", "wbcr_factory_439" ) . ' ' . ( $this->need_migration() ? "true" : "false" ) . "<br><br>";
170
+ $notice_text .= "<a href='{$migrate_url}' class='button button-default'>" . __( "Migrate now", "wbcr_factory_439" ) . "</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_439' ) . '</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_439' ) );
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\Factory_436;
4
 
5
- use Wbcr_Factory436_Plugin;
6
 
7
  // Exit if accessed directly
8
  if( !defined('ABSPATH') ) {
@@ -27,7 +27,7 @@ if( !defined('ABSPATH') ) {
27
  class Notices {
28
 
29
  /**
30
- * @var Wbcr_Factory436_Plugin
31
  */
32
  protected $plugin;
33
  /**
@@ -58,7 +58,7 @@ class Notices {
58
  /**
59
  * Инициализируем уведомлений сразу после загрузки модуля уведомлений
60
  *
61
- * @param Wbcr_Factory436_Plugin $plugin
62
  */
63
  public function __construct($plugin)
64
  {
@@ -86,7 +86,7 @@ class Notices {
86
  public function currentScreenAction()
87
  {
88
  /**
89
- * @since 2.1.2 - Добавлен, модуль factory_notices_000 был удален. Поэтому в этому хуке мы заменили префикс на factory_436
90
  */
91
  $this->notices = apply_filters('wbcr/factory/admin_notices', $this->notices, $this->plugin->getPluginName());
92
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_439;
4
 
5
+ use Wbcr_Factory439_Plugin;
6
 
7
  // Exit if accessed directly
8
  if( !defined('ABSPATH') ) {
27
  class Notices {
28
 
29
  /**
30
+ * @var Wbcr_Factory439_Plugin
31
  */
32
  protected $plugin;
33
  /**
58
  /**
59
  * Инициализируем уведомлений сразу после загрузки модуля уведомлений
60
  *
61
+ * @param Wbcr_Factory439_Plugin $plugin
62
  */
63
  public function __construct($plugin)
64
  {
86
  public function currentScreenAction()
87
  {
88
  /**
89
+ * @since 2.1.2 - Добавлен, модуль factory_notices_000 был удален. Поэтому в этому хуке мы заменили префикс на factory_439
90
  */
91
  $this->notices = apply_filters('wbcr/factory/admin_notices', $this->notices, $this->plugin->getPluginName());
92
 
libs/factory/core/includes/class-factory-options.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_436;
4
 
5
  // Exit if accessed directly
6
  use Exception;
@@ -10,7 +10,7 @@ if ( ! defined( 'ABSPATH' ) ) {
10
  }
11
 
12
  /**
13
- * Трейт используется для расширения базового класса плагина Wbcr_Factory436_Base, позволяя работать с опциями плагина.
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_439;
4
 
5
  // Exit if accessed directly
6
  use Exception;
10
  }
11
 
12
  /**
13
+ * Трейт используется для расширения базового класса плагина Wbcr_Factory439_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 Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
28
 
29
  /**
30
- * Instance class Wbcr_Factory436_Request, required manages http requests
31
  *
32
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/390561806
33
- * @var Wbcr_Factory436_Request
34
  */
35
  public $request;
36
 
37
  /**
38
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/393936924
39
- * @var \WBCR\Factory_436\Premium\Provider
40
  */
41
  public $premium;
42
 
43
  /**
44
  * The Bootstrap Manager class
45
  *
46
- * @var Wbcr_FactoryBootstrap436_Manager
47
  */
48
  public $bootstrap;
49
 
50
  /**
51
  * The Bootstrap Manager class
52
  *
53
- * @var Wbcr_FactoryForms433_Manager
54
  */
55
  public $forms;
56
 
57
  /**
58
- * Простой массив со списком зарегистрированных классов унаследованных от Wbcr_Factory436_Activator.
59
  * Классы активации используются для упаковки набора функций, которые нужно выполнить во время
60
  * активации плагина.
61
  *
62
- * @var array[] Wbcr_Factory436_Activator
63
  */
64
  protected $activator_class = [];
65
 
@@ -86,10 +86,19 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
86
  *
87
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
88
  * @since 4.1.9
89
- * @var WBCR\Factory_Adverts_114\Base
90
  */
91
  private $adverts;
92
 
 
 
 
 
 
 
 
 
 
93
  /**
94
  * Инициализирует компоненты фреймворка и плагина.
95
  *
@@ -106,8 +115,8 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
106
 
107
  parent::__construct($plugin_path, $data);
108
 
109
- $this->request = new Wbcr_Factory436_Request();
110
- //$this->route = new Wbcr_Factory436_Route();
111
 
112
  // INIT PLUGIN FRAMEWORK MODULES
113
  // Framework modules should always be loaded first,
@@ -135,15 +144,15 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
135
  $this->init_plugin_components();
136
 
137
  if( wp_doing_ajax() && isset($_REQUEST['action']) ) {
138
- if( "wfactory-436-intall-component" == $_REQUEST['action'] ) {
139
- add_action('wp_ajax_wfactory-436-intall-component', [$this, 'ajax_handler_install_components']);
140
  }
141
 
142
- if( "wfactory-436-prepare-component" == $_REQUEST['action'] ) {
143
- add_action('wp_ajax_wfactory-436-prepare-component', [$this, 'ajax_handler_prepare_component']);
144
  }
145
- if( "wfactory-436-creativemotion-install-plugin" == $_REQUEST['action'] ) {
146
- add_action('wp_ajax_wfactory-436-creativemotion-install-plugin', [
147
  $this,
148
  'ajax_handler_install_creativemotion_plugins'
149
  ]);
@@ -156,20 +165,20 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
156
 
157
  public function ajax_handler_install_components()
158
  {
159
- require_once FACTORY_436_DIR . '/ajax/install-addons.php';
160
- wfactory_436_install_components($this);
161
  }
162
 
163
  public function ajax_handler_prepare_component()
164
  {
165
- require_once FACTORY_436_DIR . '/ajax/install-addons.php';
166
- wfactory_436_prepare_component($this);
167
  }
168
 
169
  public function ajax_handler_install_creativemotion_plugins()
170
  {
171
- require_once FACTORY_436_DIR . '/ajax/install-addons.php';
172
- wfactory_436_creativemotion_install_plugin($this);
173
  }
174
  // --------------------------------------------------------
175
 
@@ -177,9 +186,9 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
177
  * Устанавливает класс менеджер, которому плагин будет делегировать подключение ресурсов (картинок,
178
  * скриптов, стилей) фреймворка.
179
  *
180
- * @param Wbcr_FactoryBootstrap436_Manager $bootstrap
181
  */
182
- public function setBootstap(Wbcr_FactoryBootstrap436_Manager $bootstrap)
183
  {
184
  $this->bootstrap = $bootstrap;
185
  }
@@ -187,9 +196,9 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
187
  /**
188
  * Устанавливает класс менеджер, которому будет делегирована работа с html формами фреймворка.
189
  *
190
- * @param Wbcr_FactoryForms433_Manager $forms
191
  */
192
- public function setForms(Wbcr_FactoryForms433_Manager $forms)
193
  {
194
  $this->forms = $forms;
195
  }
@@ -207,6 +216,22 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
207
  }
208
  }
209
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
210
  /**
211
  * Устанавливает класс провайдера лицензий
212
  *
@@ -221,8 +246,8 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
221
  */
222
  public function set_license_provider($name, $class_name)
223
  {
224
- if( !isset(WBCR\Factory_436\Premium\Manager::$providers[$name]) ) {
225
- WBCR\Factory_436\Premium\Manager::$providers[$name] = $class_name;
226
  }
227
  }
228
 
@@ -240,8 +265,8 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
240
  */
241
  public function set_update_repository($name, $class_name)
242
  {
243
- if( !isset(WBCR\Factory_436\Updates\Upgrader::$repositories[$name]) ) {
244
- WBCR\Factory_436\Updates\Upgrader::$repositories[$name] = $class_name;
245
  }
246
  }
247
 
@@ -251,7 +276,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
251
  * Доступен глобально через метод app(), чаще всего используется для создания точек для ротации
252
  * рекламных объявлений.
253
  *
254
- * @return \WBCR\Factory_Adverts_114\Base
255
  * @since 1.1
256
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
257
  */
@@ -287,18 +312,18 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
287
 
288
  public function newScriptList()
289
  {
290
- return new Wbcr_Factory436_ScriptList($this);
291
  }
292
 
293
  public function newStyleList()
294
  {
295
- return new Wbcr_Factory436_StyleList($this);
296
  }
297
 
298
  /**
299
  * Все страницы плагина создаются через специальную обертку, за которую отвечает модуль
300
  * фреймворка pages. Разработчик создает собственный класс, унаследованный от
301
- * Wbcr_FactoryPages435_AdminPage, а затем регистрирует его через этот метод.
302
  * Метод выполняет подключение класса страницы и регистрирует его в модуле фреймворка
303
  * pages.
304
  *
@@ -308,7 +333,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
308
  * @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/222887949 - документация по созданию страниц
309
  *
310
  * @param string $class_name Имя регистрируемого класса страницы. Пример: WCL_Page_Name.
311
- * Регистрируемый класс должен быть унаследован от класса Wbcr_FactoryPages435_AdminPage.
312
  * @param string $file_path Абсолютный путь к файлу с классом страницы.
313
  *
314
  * @throws Exception
@@ -330,11 +355,11 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
330
  throw new Exception('A class with this name {' . $class_name . '} does not exist.');
331
  }
332
 
333
- if( !class_exists('Wbcr_FactoryPages435') ) {
334
- throw new Exception('The factory_pages_435 module is not included.');
335
  }
336
 
337
- Wbcr_FactoryPages435::register($this, $class_name);
338
  }
339
 
340
  /**
@@ -384,16 +409,16 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
384
  /**
385
  * @since 4.1.1 - change hook name
386
  */
387
- if( apply_filters("wbcr/factory_436/cancel_plugin_activation_{$this->plugin_name}", false) ) {
388
  return;
389
  }
390
 
391
  /**
392
- * wbcr_factory_436_plugin_activation
393
  *
394
  * @since 4.1.1 - deprecated
395
  */
396
- wbcr_factory_436_do_action_deprecated('wbcr_factory_436_plugin_activation', [
397
  $this
398
  ], '4.1.1', "wbcr/factory/plugin_activation");
399
 
@@ -402,7 +427,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
402
  *
403
  * @since 4.1.2 - deprecated
404
  */
405
- wbcr_factory_436_do_action_deprecated('wbcr/factory/plugin_activation', [
406
  $this
407
  ], '4.1.2', "wbcr/factory/before_plugin_activation");
408
 
@@ -418,16 +443,16 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
418
  *
419
  * @since 4.1.2 - deprecated
420
  */
421
- wbcr_factory_436_do_action_deprecated("wbcr/factory/plugin_{$this->plugin_name}_activation", [
422
  $this
423
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_activation");
424
 
425
  /**
426
- * wbcr_factory_436_plugin_activation_' . $this->plugin_name
427
  *
428
  * @since 4.1.1 - deprecated
429
  */
430
- wbcr_factory_436_do_action_deprecated('wbcr_factory_436_plugin_activation_' . $this->plugin_name, [
431
  $this
432
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_activation");
433
 
@@ -468,16 +493,16 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
468
  /**
469
  * @since 4.1.1 - change hook name
470
  */
471
- if( apply_filters("wbcr/factory_436/cancel_plugin_deactivation_{$this->plugin_name}", false) ) {
472
  return;
473
  }
474
 
475
  /**
476
- * wbcr_factory_436_plugin_deactivation
477
  *
478
  * @since 4.1.1 - deprecated
479
  */
480
- wbcr_factory_436_do_action_deprecated('wbcr_factory_436_plugin_deactivation', [
481
  $this
482
  ], '4.1.1', "wbcr/factory/plugin_deactivation");
483
 
@@ -486,7 +511,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
486
  *
487
  * @since 4.1.2 - deprecated
488
  */
489
- wbcr_factory_436_do_action_deprecated('wbcr/factory/plugin_deactivation', [
490
  $this
491
  ], '4.1.2', "wbcr/factory/before_plugin_deactivation");
492
 
@@ -498,11 +523,11 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
498
  do_action('wbcr/factory/plugin_deactivation', $this);
499
 
500
  /**
501
- * wbcr_factory_436_plugin_deactivation_ . $this->plugin_name
502
  *
503
  * @since 4.1.1 - deprecated
504
  */
505
- wbcr_factory_436_do_action_deprecated('wbcr_factory_436_plugin_deactivation_' . $this->plugin_name, [
506
  $this
507
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation");
508
 
@@ -511,7 +536,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
511
  *
512
  * @since 4.1.2 - deprecated
513
  */
514
- wbcr_factory_436_do_action_deprecated("wbcr/factory/plugin_{$this->plugin_name}_deactivation", [
515
  $this
516
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation");
517
 
@@ -549,8 +574,8 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
549
  */
550
  public function getPluginPageUrl($page_id, $args = [])
551
  {
552
- if( !class_exists('Wbcr_FactoryPages435') ) {
553
- throw new Exception('The factory_pages_435 module is not included.');
554
  }
555
 
556
  if( !is_admin() ) {
@@ -559,7 +584,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
559
  return null;
560
  }
561
 
562
- return Wbcr_FactoryPages435::getPageUrl($this, $page_id, $args);
563
  }
564
 
565
  /**
@@ -569,13 +594,13 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
569
  * @param $slug
570
  * param $premium
571
  *
572
- * @return \WBCR\Factory_436\Components\Install_Button
573
  */
574
  public function get_install_component_button($component_type, $slug)
575
  {
576
- require_once FACTORY_436_DIR . '/includes/components/class-install-component-button.php';
577
 
578
- return new \WBCR\Factory_436\Components\Install_Button($this, $component_type, $slug);
579
  }
580
 
581
  /**
@@ -584,13 +609,13 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
584
  * @param $component_type
585
  * @param $slug
586
  *
587
- * @return \WBCR\Factory_436\Components\Delete_Button
588
  */
589
  public function get_delete_component_button($component_type, $slug)
590
  {
591
- require_once FACTORY_436_DIR . '/includes/components/class-delete-component-button.php';
592
 
593
- return new WBCR\Factory_436\Components\Delete_Button($this, $component_type, $slug);
594
  }
595
 
596
  /**
@@ -773,12 +798,12 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
773
  /**
774
  * @since 4.1.1 - deprecated
775
  */
776
- wbcr_factory_436_do_action_deprecated('wbcr_factory_436_core_modules_loaded-' . $this->plugin_name, [], '4.1.1', "wbcr/factory_436/modules_loaded-" . $this->plugin_name);
777
 
778
  /**
779
  * @since 4.1.1 - add
780
  */
781
- do_action('wbcr/factory_436/modules_loaded-' . $this->plugin_name);
782
  }
783
 
784
 
@@ -805,7 +830,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
805
  });
806
 
807
  if( is_admin() ) {
808
- add_filter('wbcr_factory_436_core_admin_allow_multisite', '__return_true');
809
 
810
  register_activation_hook($this->get_paths()->main_file, [$this, 'activation_hook']);
811
  register_deactivation_hook($this->get_paths()->main_file, [$this, 'deactivation_hook']);
@@ -821,7 +846,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
821
  */
822
  protected function init_plugin_migrations()
823
  {
824
- new WBCR\Factory_436\Migrations($this);
825
  }
826
 
827
  /**
@@ -832,7 +857,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
832
  */
833
  protected function init_plugin_notices()
834
  {
835
- new Wbcr\Factory_436\Notices($this);
836
  }
837
 
838
  /**
@@ -848,7 +873,7 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
848
  protected function init_plugin_updates()
849
  {
850
  if( $this->has_updates ) {
851
- new WBCR\Factory_436\Updates\Upgrader($this);
852
  }
853
  }
854
 
@@ -871,11 +896,11 @@ abstract class Wbcr_Factory436_Plugin extends Wbcr_Factory436_Base {
871
  }
872
 
873
  // Создаем экземляр премиум менеджера, мы сможем к нему обращаться глобально.
874
- $this->premium = WBCR\Factory_436\Premium\Manager::instance($this, $this->license_settings);
875
 
876
  // Подключаем премиум апгрейдер
877
  if( isset($this->license_settings['has_updates']) && $this->license_settings['has_updates'] ) {
878
- new WBCR\Factory_436\Updates\Premium_Upgrader($this);
879
  }
880
  }
881
  }
24
  * @package factory-core
25
  *
26
  */
27
+ abstract class Wbcr_Factory439_Plugin extends Wbcr_Factory439_Base {
28
 
29
  /**
30
+ * Instance class Wbcr_Factory439_Request, required manages http requests
31
  *
32
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/390561806
33
+ * @var Wbcr_Factory439_Request
34
  */
35
  public $request;
36
 
37
  /**
38
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/393936924
39
+ * @var \WBCR\Factory_439\Premium\Provider
40
  */
41
  public $premium;
42
 
43
  /**
44
  * The Bootstrap Manager class
45
  *
46
+ * @var Wbcr_FactoryBootstrap439_Manager
47
  */
48
  public $bootstrap;
49
 
50
  /**
51
  * The Bootstrap Manager class
52
  *
53
+ * @var Wbcr_FactoryForms436_Manager
54
  */
55
  public $forms;
56
 
57
  /**
58
+ * Простой массив со списком зарегистрированных классов унаследованных от Wbcr_Factory439_Activator.
59
  * Классы активации используются для упаковки набора функций, которые нужно выполнить во время
60
  * активации плагина.
61
  *
62
+ * @var array[] Wbcr_Factory439_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_117\Base
90
  */
91
  private $adverts;
92
 
93
+ /**
94
+ * The Logger class
95
+ *
96
+ * @author Artem Prihodko <webtemyk@yandex.ru>
97
+ * @since 4.3.7
98
+ * @var WBCR\Factory_Logger_000\Logger
99
+ */
100
+ public $logger;
101
+
102
  /**
103
  * Инициализирует компоненты фреймворка и плагина.
104
  *
115
 
116
  parent::__construct($plugin_path, $data);
117
 
118
+ $this->request = new Wbcr_Factory439_Request();
119
+ //$this->route = new Wbcr_Factory439_Route();
120
 
121
  // INIT PLUGIN FRAMEWORK MODULES
122
  // Framework modules should always be loaded first,
144
  $this->init_plugin_components();
145
 
146
  if( wp_doing_ajax() && isset($_REQUEST['action']) ) {
147
+ if( "wfactory-439-intall-component" == $_REQUEST['action'] ) {
148
+ add_action('wp_ajax_wfactory-439-intall-component', [$this, 'ajax_handler_install_components']);
149
  }
150
 
151
+ if( "wfactory-439-prepare-component" == $_REQUEST['action'] ) {
152
+ add_action('wp_ajax_wfactory-439-prepare-component', [$this, 'ajax_handler_prepare_component']);
153
  }
154
+ if( "wfactory-439-creativemotion-install-plugin" == $_REQUEST['action'] ) {
155
+ add_action('wp_ajax_wfactory-439-creativemotion-install-plugin', [
156
  $this,
157
  'ajax_handler_install_creativemotion_plugins'
158
  ]);
165
 
166
  public function ajax_handler_install_components()
167
  {
168
+ require_once FACTORY_439_DIR . '/ajax/install-addons.php';
169
+ wfactory_439_install_components($this);
170
  }
171
 
172
  public function ajax_handler_prepare_component()
173
  {
174
+ require_once FACTORY_439_DIR . '/ajax/install-addons.php';
175
+ wfactory_439_prepare_component($this);
176
  }
177
 
178
  public function ajax_handler_install_creativemotion_plugins()
179
  {
180
+ require_once FACTORY_439_DIR . '/ajax/install-addons.php';
181
+ wfactory_439_creativemotion_install_plugin($this);
182
  }
183
  // --------------------------------------------------------
184
 
186
  * Устанавливает класс менеджер, которому плагин будет делегировать подключение ресурсов (картинок,
187
  * скриптов, стилей) фреймворка.
188
  *
189
+ * @param Wbcr_FactoryBootstrap439_Manager $bootstrap
190
  */
191
+ public function setBootstap(Wbcr_FactoryBootstrap439_Manager $bootstrap)
192
  {
193
  $this->bootstrap = $bootstrap;
194
  }
196
  /**
197
  * Устанавливает класс менеджер, которому будет делегирована работа с html формами фреймворка.
198
  *
199
+ * @param Wbcr_FactoryForms436_Manager $forms
200
  */
201
+ public function setForms(Wbcr_FactoryForms436_Manager $forms)
202
  {
203
  $this->forms = $forms;
204
  }
216
  }
217
  }
218
 
219
+ /**
220
+ * Устанавливает класс менеджер, которому будет делегирована работа с объявлениями в Wordpress
221
+ *
222
+ * @param string $class_name Logger class name
223
+ * @param array $settings Logger settings
224
+ *
225
+ * @author Artem Prihodko <webtemyk@yandex.ru>
226
+ * @since 4.3.7
227
+ */
228
+ public function set_logger($class_name, $settings = [])
229
+ {
230
+ if( empty($this->logger) ) {
231
+ $this->logger = new $class_name($this, $settings);
232
+ }
233
+ }
234
+
235
  /**
236
  * Устанавливает класс провайдера лицензий
237
  *
246
  */
247
  public function set_license_provider($name, $class_name)
248
  {
249
+ if( !isset(WBCR\Factory_439\Premium\Manager::$providers[$name]) ) {
250
+ WBCR\Factory_439\Premium\Manager::$providers[$name] = $class_name;
251
  }
252
  }
253
 
265
  */
266
  public function set_update_repository($name, $class_name)
267
  {
268
+ if( !isset(WBCR\Factory_439\Updates\Upgrader::$repositories[$name]) ) {
269
+ WBCR\Factory_439\Updates\Upgrader::$repositories[$name] = $class_name;
270
  }
271
  }
272
 
276
  * Доступен глобально через метод app(), чаще всего используется для создания точек для ротации
277
  * рекламных объявлений.
278
  *
279
+ * @return \WBCR\Factory_Adverts_117\Base
280
  * @since 1.1
281
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
282
  */
312
 
313
  public function newScriptList()
314
  {
315
+ return new Wbcr_Factory439_ScriptList($this);
316
  }
317
 
318
  public function newStyleList()
319
  {
320
+ return new Wbcr_Factory439_StyleList($this);
321
  }
322
 
323
  /**
324
  * Все страницы плагина создаются через специальную обертку, за которую отвечает модуль
325
  * фреймворка pages. Разработчик создает собственный класс, унаследованный от
326
+ * Wbcr_FactoryPages438_AdminPage, а затем регистрирует его через этот метод.
327
  * Метод выполняет подключение класса страницы и регистрирует его в модуле фреймворка
328
  * pages.
329
  *
333
  * @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/222887949 - документация по созданию страниц
334
  *
335
  * @param string $class_name Имя регистрируемого класса страницы. Пример: WCL_Page_Name.
336
+ * Регистрируемый класс должен быть унаследован от класса Wbcr_FactoryPages438_AdminPage.
337
  * @param string $file_path Абсолютный путь к файлу с классом страницы.
338
  *
339
  * @throws Exception
355
  throw new Exception('A class with this name {' . $class_name . '} does not exist.');
356
  }
357
 
358
+ if( !class_exists('Wbcr_FactoryPages438') ) {
359
+ throw new Exception('The factory_pages_438 module is not included.');
360
  }
361
 
362
+ Wbcr_FactoryPages438::register($this, $class_name);
363
  }
364
 
365
  /**
409
  /**
410
  * @since 4.1.1 - change hook name
411
  */
412
+ if( apply_filters("wbcr/factory_439/cancel_plugin_activation_{$this->plugin_name}", false) ) {
413
  return;
414
  }
415
 
416
  /**
417
+ * wbcr_factory_439_plugin_activation
418
  *
419
  * @since 4.1.1 - deprecated
420
  */
421
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_plugin_activation', [
422
  $this
423
  ], '4.1.1', "wbcr/factory/plugin_activation");
424
 
427
  *
428
  * @since 4.1.2 - deprecated
429
  */
430
+ wbcr_factory_439_do_action_deprecated('wbcr/factory/plugin_activation', [
431
  $this
432
  ], '4.1.2', "wbcr/factory/before_plugin_activation");
433
 
443
  *
444
  * @since 4.1.2 - deprecated
445
  */
446
+ wbcr_factory_439_do_action_deprecated("wbcr/factory/plugin_{$this->plugin_name}_activation", [
447
  $this
448
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_activation");
449
 
450
  /**
451
+ * wbcr_factory_439_plugin_activation_' . $this->plugin_name
452
  *
453
  * @since 4.1.1 - deprecated
454
  */
455
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_plugin_activation_' . $this->plugin_name, [
456
  $this
457
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_activation");
458
 
493
  /**
494
  * @since 4.1.1 - change hook name
495
  */
496
+ if( apply_filters("wbcr/factory_439/cancel_plugin_deactivation_{$this->plugin_name}", false) ) {
497
  return;
498
  }
499
 
500
  /**
501
+ * wbcr_factory_439_plugin_deactivation
502
  *
503
  * @since 4.1.1 - deprecated
504
  */
505
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_plugin_deactivation', [
506
  $this
507
  ], '4.1.1', "wbcr/factory/plugin_deactivation");
508
 
511
  *
512
  * @since 4.1.2 - deprecated
513
  */
514
+ wbcr_factory_439_do_action_deprecated('wbcr/factory/plugin_deactivation', [
515
  $this
516
  ], '4.1.2', "wbcr/factory/before_plugin_deactivation");
517
 
523
  do_action('wbcr/factory/plugin_deactivation', $this);
524
 
525
  /**
526
+ * wbcr_factory_439_plugin_deactivation_ . $this->plugin_name
527
  *
528
  * @since 4.1.1 - deprecated
529
  */
530
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_plugin_deactivation_' . $this->plugin_name, [
531
  $this
532
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation");
533
 
536
  *
537
  * @since 4.1.2 - deprecated
538
  */
539
+ wbcr_factory_439_do_action_deprecated("wbcr/factory/plugin_{$this->plugin_name}_deactivation", [
540
  $this
541
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation");
542
 
574
  */
575
  public function getPluginPageUrl($page_id, $args = [])
576
  {
577
+ if( !class_exists('Wbcr_FactoryPages438') ) {
578
+ throw new Exception('The factory_pages_438 module is not included.');
579
  }
580
 
581
  if( !is_admin() ) {
584
  return null;
585
  }
586
 
587
+ return Wbcr_FactoryPages438::getPageUrl($this, $page_id, $args);
588
  }
589
 
590
  /**
594
  * @param $slug
595
  * param $premium
596
  *
597
+ * @return \WBCR\Factory_439\Components\Install_Button
598
  */
599
  public function get_install_component_button($component_type, $slug)
600
  {
601
+ require_once FACTORY_439_DIR . '/includes/components/class-install-component-button.php';
602
 
603
+ return new \WBCR\Factory_439\Components\Install_Button($this, $component_type, $slug);
604
  }
605
 
606
  /**
609
  * @param $component_type
610
  * @param $slug
611
  *
612
+ * @return \WBCR\Factory_439\Components\Delete_Button
613
  */
614
  public function get_delete_component_button($component_type, $slug)
615
  {
616
+ require_once FACTORY_439_DIR . '/includes/components/class-delete-component-button.php';
617
 
618
+ return new WBCR\Factory_439\Components\Delete_Button($this, $component_type, $slug);
619
  }
620
 
621
  /**
798
  /**
799
  * @since 4.1.1 - deprecated
800
  */
801
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_core_modules_loaded-' . $this->plugin_name, [], '4.1.1', "wbcr/factory_439/modules_loaded-" . $this->plugin_name);
802
 
803
  /**
804
  * @since 4.1.1 - add
805
  */
806
+ do_action('wbcr/factory_439/modules_loaded-' . $this->plugin_name);
807
  }
808
 
809
 
830
  });
831
 
832
  if( is_admin() ) {
833
+ add_filter('wbcr_factory_439_core_admin_allow_multisite', '__return_true');
834
 
835
  register_activation_hook($this->get_paths()->main_file, [$this, 'activation_hook']);
836
  register_deactivation_hook($this->get_paths()->main_file, [$this, 'deactivation_hook']);
846
  */
847
  protected function init_plugin_migrations()
848
  {
849
+ new WBCR\Factory_439\Migrations($this);
850
  }
851
 
852
  /**
857
  */
858
  protected function init_plugin_notices()
859
  {
860
+ new Wbcr\Factory_439\Notices($this);
861
  }
862
 
863
  /**
873
  protected function init_plugin_updates()
874
  {
875
  if( $this->has_updates ) {
876
+ new WBCR\Factory_439\Updates\Upgrader($this);
877
  }
878
  }
879
 
896
  }
897
 
898
  // Создаем экземляр премиум менеджера, мы сможем к нему обращаться глобально.
899
+ $this->premium = WBCR\Factory_439\Premium\Manager::instance($this, $this->license_settings);
900
 
901
  // Подключаем премиум апгрейдер
902
  if( isset($this->license_settings['has_updates']) && $this->license_settings['has_updates'] ) {
903
+ new WBCR\Factory_439\Updates\Premium_Upgrader($this);
904
  }
905
  }
906
  }
libs/factory/core/includes/class-factory-plugin-base.php CHANGED
@@ -5,7 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
5
  }
6
 
7
  /**
8
- * Базовый класс для создания нового плагина. Полную реализацию класса смотрите в Wbcr_Factory436_Plugin
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 Wbcr_Factory436_Base {
21
 
22
- use WBCR\Factory_436\Options;
23
 
24
  /**
25
  * Обязательное свойство. Префикс, используется для создания пространство имен.
@@ -81,7 +81,7 @@ class Wbcr_Factory436_Base {
81
  * https://robin-image-optimizer.webcraftic.com/premium-features.
82
  *
83
  * Это свойство заполняется для того, чтобы в процессе разработки вы могли использовать
84
- * экземпляр класса \WBCR\Factory_436\Entities\Support, для получения информации о сайте плагина.
85
  * Тем самым вы избавляете себя от жесткого прописывания ссылок на лендинг плагина и
86
  * можете изменить все ссылки в одном месте.
87
  *
@@ -127,7 +127,7 @@ class Wbcr_Factory436_Base {
127
  * к примеру: freemius, codecanyon, templatemonster, вам нужно указать только настройки для
128
  * взаимодействия с выбранным вами провайдером. Каждая реализация провайдера лицензий может иметь
129
  * индивидуальный настройки, в этом примере приведены настройки для freemius провайдера
130
- * WBCR\Factory_436\Premium\Provider > WBCR\Factory_Freemius_123\Premium\Provider
131
  *
132
  * На текущий момент существует только реализация для freemius провайдера.
133
  *
@@ -177,9 +177,9 @@ class Wbcr_Factory436_Base {
177
  * }
178
  */
179
  protected $load_factory_modules = [
180
- [ 'libs/factory/bootstrap', 'factory_bootstrap_436', 'admin' ],
181
- [ 'libs/factory/forms', 'factory_forms_433', 'admin' ],
182
- [ 'libs/factory/pages', 'factory_pages_435', 'admin' ],
183
  ];
184
 
185
  /**
@@ -209,20 +209,20 @@ class Wbcr_Factory436_Base {
209
 
210
 
211
  /**
212
- * Экземпляр класса \WBCR\Factory_436\Entities\Support используется для получения информации
213
  * о сайте плагина. Чаще всего используется для получения ссылки на страницу с тарифами или
214
  * ссылки на форму обратной связи. Встроен механизм отслеживания по utm меткам.
215
  *
216
- * @var \WBCR\Factory_436\Entities\Support
217
  */
218
  protected $support;
219
 
220
  /**
221
- * Экземпляр класса \WBCR\Factory_436\Entities\Paths используется для получения информации о
222
  * путях плагина. Часто используется для получения путей или ссылок на место хранения плагина
223
  * или его входного файла.
224
  *
225
- * @var \WBCR\Factory_436\Entities\Paths
226
  */
227
  protected $paths;
228
 
@@ -270,8 +270,8 @@ class Wbcr_Factory436_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\Factory_436\Entities\Support( $this->support_details );
274
- $this->paths = new \WBCR\Factory_436\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,7 +391,7 @@ class Wbcr_Factory436_Base {
391
  * Проверяет, включен ли премиум для этого плагина или нет.
392
  *
393
  * @return bool Возвращает true, если премиум пакет включен для этого плагина.
394
- * См. Wbcr_Factory436_Base::has_premium
395
  */
396
  public function has_premium() {
397
  return $this->has_premium;
@@ -400,7 +400,7 @@ class Wbcr_Factory436_Base {
400
  /**
401
  * Позволяет получить заголовок плагина.
402
  *
403
- * @return string Возвращает заголовок плагина. См. Wbcr_Factory436_Base::plugin_title
404
  */
405
  public function getPluginTitle() {
406
  return $this->plugin_title;
@@ -409,7 +409,7 @@ class Wbcr_Factory436_Base {
409
  /**
410
  * Позволяет получить префикс плагина.
411
  *
412
- * @return string Возвращает префикс плагина.См. Wbcr_Factory436_Base::prefix
413
  */
414
  public function getPrefix() {
415
  return $this->prefix;
@@ -418,7 +418,7 @@ class Wbcr_Factory436_Base {
418
  /**
419
  * Позволяет получить имя плагина.
420
  *
421
- * @return string Возвращает имя плагина. См. Wbcr_Factory436_Base::plugin_name
422
  */
423
  public function getPluginName() {
424
  return $this->plugin_name;
@@ -427,7 +427,7 @@ class Wbcr_Factory436_Base {
427
  /**
428
  * Позволяет получить версию плагина.
429
  *
430
- * @return string Возвращает версию плагина. См. Wbcr_Factory436_Base::plugin_version
431
  */
432
  public function getPluginVersion() {
433
  return $this->plugin_version;
@@ -449,7 +449,7 @@ class Wbcr_Factory436_Base {
449
  * какие-то данные не описанные в интерфейсе этого плагина.
450
  *
451
  * @param string $attr_name Имя атрибута, который нужно получить. Идентично ключу в массиве
452
- * Wbcr_Factory436_Base::plugin_data
453
  *
454
  * @return null
455
  */
@@ -462,18 +462,18 @@ class Wbcr_Factory436_Base {
462
  }
463
 
464
  /**
465
- * Предоставляет доступ к экземпляру класса \WBCR\Factory_436\Entities\Support.
466
  *
467
- * @return \WBCR\Factory_436\Entities\Support
468
  */
469
  public function get_support() {
470
  return $this->support;
471
  }
472
 
473
  /**
474
- * Предоставляет доступ к экземпляру класса \WBCR\Factory_436\Entities\Paths.
475
  *
476
- * @return \WBCR\Factory_436\Entities\Paths
477
  */
478
  public function get_paths() {
479
  return $this->paths;
@@ -482,7 +482,7 @@ class Wbcr_Factory436_Base {
482
  /**
483
  * Позволяет получить сырые данные плагина в виде объекта StdClass.
484
  *
485
- * @return object Возвращает объект с сырыми данными плагина. См. Wbcr_Factory436_Base::plugin_data
486
  */
487
  public function getPluginInfo() {
488
  return (object) $this->plugin_data;
5
  }
6
 
7
  /**
8
+ * Базовый класс для создания нового плагина. Полную реализацию класса смотрите в Wbcr_Factory439_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_Factory439_Base {
21
 
22
+ use WBCR\Factory_439\Options;
23
 
24
  /**
25
  * Обязательное свойство. Префикс, используется для создания пространство имен.
81
  * https://robin-image-optimizer.webcraftic.com/premium-features.
82
  *
83
  * Это свойство заполняется для того, чтобы в процессе разработки вы могли использовать
84
+ * экземпляр класса \WBCR\Factory_439\Entities\Support, для получения информации о сайте плагина.
85
  * Тем самым вы избавляете себя от жесткого прописывания ссылок на лендинг плагина и
86
  * можете изменить все ссылки в одном месте.
87
  *
127
  * к примеру: freemius, codecanyon, templatemonster, вам нужно указать только настройки для
128
  * взаимодействия с выбранным вами провайдером. Каждая реализация провайдера лицензий может иметь
129
  * индивидуальный настройки, в этом примере приведены настройки для freemius провайдера
130
+ * WBCR\Factory_439\Premium\Provider > WBCR\Factory_Freemius_126\Premium\Provider
131
  *
132
  * На текущий момент существует только реализация для freemius провайдера.
133
  *
177
  * }
178
  */
179
  protected $load_factory_modules = [
180
+ [ 'libs/factory/bootstrap', 'factory_bootstrap_439', 'admin' ],
181
+ [ 'libs/factory/forms', 'factory_forms_436', 'admin' ],
182
+ [ 'libs/factory/pages', 'factory_pages_438', 'admin' ],
183
  ];
184
 
185
  /**
209
 
210
 
211
  /**
212
+ * Экземпляр класса \WBCR\Factory_439\Entities\Support используется для получения информации
213
  * о сайте плагина. Чаще всего используется для получения ссылки на страницу с тарифами или
214
  * ссылки на форму обратной связи. Встроен механизм отслеживания по utm меткам.
215
  *
216
+ * @var \WBCR\Factory_439\Entities\Support
217
  */
218
  protected $support;
219
 
220
  /**
221
+ * Экземпляр класса \WBCR\Factory_439\Entities\Paths используется для получения информации о
222
  * путях плагина. Часто используется для получения путей или ссылок на место хранения плагина
223
  * или его входного файла.
224
  *
225
+ * @var \WBCR\Factory_439\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_439\Entities\Support( $this->support_details );
274
+ $this->paths = new \WBCR\Factory_439\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_Factory439_Base::has_premium
395
  */
396
  public function has_premium() {
397
  return $this->has_premium;
400
  /**
401
  * Позволяет получить заголовок плагина.
402
  *
403
+ * @return string Возвращает заголовок плагина. См. Wbcr_Factory439_Base::plugin_title
404
  */
405
  public function getPluginTitle() {
406
  return $this->plugin_title;
409
  /**
410
  * Позволяет получить префикс плагина.
411
  *
412
+ * @return string Возвращает префикс плагина.См. Wbcr_Factory439_Base::prefix
413
  */
414
  public function getPrefix() {
415
  return $this->prefix;
418
  /**
419
  * Позволяет получить имя плагина.
420
  *
421
+ * @return string Возвращает имя плагина. См. Wbcr_Factory439_Base::plugin_name
422
  */
423
  public function getPluginName() {
424
  return $this->plugin_name;
427
  /**
428
  * Позволяет получить версию плагина.
429
  *
430
+ * @return string Возвращает версию плагина. См. Wbcr_Factory439_Base::plugin_version
431
  */
432
  public function getPluginVersion() {
433
  return $this->plugin_version;
449
  * какие-то данные не описанные в интерфейсе этого плагина.
450
  *
451
  * @param string $attr_name Имя атрибута, который нужно получить. Идентично ключу в массиве
452
+ * Wbcr_Factory439_Base::plugin_data
453
  *
454
  * @return null
455
  */
462
  }
463
 
464
  /**
465
+ * Предоставляет доступ к экземпляру класса \WBCR\Factory_439\Entities\Support.
466
  *
467
+ * @return \WBCR\Factory_439\Entities\Support
468
  */
469
  public function get_support() {
470
  return $this->support;
471
  }
472
 
473
  /**
474
+ * Предоставляет доступ к экземпляру класса \WBCR\Factory_439\Entities\Paths.
475
  *
476
+ * @return \WBCR\Factory_439\Entities\Paths
477
  */
478
  public function get_paths() {
479
  return $this->paths;
482
  /**
483
  * Позволяет получить сырые данные плагина в виде объекта StdClass.
484
  *
485
+ * @return object Возвращает объект с сырыми данными плагина. См. Wbcr_Factory439_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 Wbcr_Factory436_Request {
15
 
16
  /**
17
  * @param null $param
11
  * @package factory-core
12
  */
13
 
14
+ class Wbcr_Factory439_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( 'Wbcr_Factory436_Requirements' ) ) {
16
- class Wbcr_Factory436_Requirements {
17
 
18
  /**
19
  * Factory framework version
@@ -242,7 +242,7 @@ if ( ! class_exists( 'Wbcr_Factory436_Requirements' ) ) {
242
  $notice_text = $notice_default_text = '';
243
  $notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
244
 
245
- $notice_default_text .= sprintf( __( 'The %s plugin has stopped.', 'wbcr_factory_clearfy_227' ), $this->plugin_title ) . ' ';
246
  $notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
247
 
248
  $has_one = false;
@@ -273,21 +273,21 @@ if ( ! class_exists( 'Wbcr_Factory436_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!', 'wbcr_factory_436' ), $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_436' ), $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_436' ), $this->plugin_title );
291
  }
292
  }
293
  }
12
  * @since 4.0.9
13
  */
14
  // @formatter:off
15
+ if ( ! class_exists( 'Wbcr_Factory439_Requirements' ) ) {
16
+ class Wbcr_Factory439_Requirements {
17
 
18
  /**
19
  * Factory framework version
242
  $notice_text = $notice_default_text = '';
243
  $notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
244
 
245
+ $notice_default_text .= sprintf( __( 'The %s plugin has stopped.', 'wbcr_factory_clearfy_230' ), $this->plugin_title ) . ' ';
246
  $notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
247
 
248
  $has_one = false;
273
  * @return string
274
  */
275
  protected function get_php_incompat_text() {
276
+ return sprintf( __( 'You need to update the PHP version to %s or higher!', 'wbcr_factory_439' ), $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_439' ), $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_439' ), $this->plugin_title );
291
  }
292
  }
293
  }
libs/factory/core/includes/components/class-delete-component-button.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_436\Components;
4
 
5
  /**
6
  * This file groups the settings for quick setup
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Components;
4
 
5
  /**
6
  * This file groups the settings for quick setup
libs/factory/core/includes/components/class-install-component-button.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_436\Components;
4
 
5
  /**
6
  * This file groups the settings for quick setup
@@ -22,7 +22,7 @@ class Install_Button {
22
 
23
  protected $classes = [
24
  'button',
25
- 'wfactory-436-process-button'
26
  ];
27
  protected $data = [];
28
  protected $base_path;
@@ -37,7 +37,7 @@ class Install_Button {
37
  * @throws \Exception
38
  * @since 4.3.3
39
  */
40
- public function __construct(\Wbcr_Factory436_Plugin $plugin, $type, $plugin_slug)
41
  {
42
  if( empty($type) || !is_string($plugin_slug) ) {
43
  throw new \Exception('Empty type or plugin_slug attribute.');
@@ -67,7 +67,7 @@ class Install_Button {
67
 
68
  // Set default data
69
  $this->add_data('storage', $this->type);
70
- $this->add_data('i18n', \WbcrFactoryClearfy227_Helpers::getEscapeJson($this->get_i18n()));
71
  $this->add_data('wpnonce', wp_create_nonce('updates'));
72
  }
73
 
@@ -420,13 +420,13 @@ class Install_Button {
420
  protected function get_i18n()
421
  {
422
  return [
423
- 'activate' => __('Activate', 'wbcr_factory_436'),
424
- 'install' => __('Install', 'wbcr_factory_436'),
425
- 'deactivate' => __('Deactivate', 'wbcr_factory_436'),
426
- 'delete' => __('Delete', 'wbcr_factory_436'),
427
- 'loading' => __('Please wait...', 'wbcr_factory_436'),
428
- 'preparation' => __('Preparation...', 'wbcr_factory_436'),
429
- 'read' => __('Read more', 'wbcr_factory_436')
430
  ];
431
  }
432
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Components;
4
 
5
  /**
6
  * This file groups the settings for quick setup
22
 
23
  protected $classes = [
24
  'button',
25
+ 'wfactory-439-process-button'
26
  ];
27
  protected $data = [];
28
  protected $base_path;
37
  * @throws \Exception
38
  * @since 4.3.3
39
  */
40
+ public function __construct(\Wbcr_Factory439_Plugin $plugin, $type, $plugin_slug)
41
  {
42
  if( empty($type) || !is_string($plugin_slug) ) {
43
  throw new \Exception('Empty type or plugin_slug attribute.');
67
 
68
  // Set default data
69
  $this->add_data('storage', $this->type);
70
+ $this->add_data('i18n', \WbcrFactoryClearfy230_Helpers::getEscapeJson($this->get_i18n()));
71
  $this->add_data('wpnonce', wp_create_nonce('updates'));
72
  }
73
 
420
  protected function get_i18n()
421
  {
422
  return [
423
+ 'activate' => __('Activate', 'wbcr_factory_439'),
424
+ 'install' => __('Install', 'wbcr_factory_439'),
425
+ 'deactivate' => __('Deactivate', 'wbcr_factory_439'),
426
+ 'delete' => __('Delete', 'wbcr_factory_439'),
427
+ 'loading' => __('Please wait...', 'wbcr_factory_439'),
428
+ 'preparation' => __('Preparation...', 'wbcr_factory_439'),
429
+ 'read' => __('Read more', 'wbcr_factory_439')
430
  ];
431
  }
432
 
libs/factory/core/includes/entities/class-factory-paths.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_436\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\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\Factory_436\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\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 wbcr_factory_436_deprecated_hook()
57
  *
58
  */
59
- function wbcr_factory_436_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_436_deprecated_hook( $tag, $version, $replacement, $message );
67
 
68
  return apply_filters_ref_array( $tag, $args );
69
  }
@@ -89,7 +89,7 @@ function wbcr_factory_436_apply_filters_deprecated( $tag, $args, $version, $repl
89
  * @see _deprecated_hook()
90
  *
91
  */
92
- function wbcr_factory_436_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,14 +98,14 @@ function wbcr_factory_436_do_action_deprecated( $tag, $args, $version, $replacem
98
  if ( ! has_action( $tag ) ) {
99
  return;
100
  }
101
- wbcr_factory_436_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_436_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,7 +123,7 @@ function wbcr_factory_436_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 wbcr_factory_436_deprecated_hook( $hook, $version, $replacement = null, $message = null ) {
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_439_deprecated_hook()
57
  *
58
  */
59
+ function wbcr_factory_439_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_439_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_439_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_439_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_439_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_439_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\Factory_436\Premium\Interfaces;
4
 
5
  // Exit if accessed directly
6
  if ( ! defined( 'ABSPATH' ) ) {
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\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\Factory_436\Premium;
4
 
5
  use Exception;
6
- use Wbcr_Factory436_Plugin;
7
 
8
  // Exit if accessed directly
9
  if ( ! defined( 'ABSPATH' ) ) {
@@ -24,7 +24,7 @@ class Manager {
24
  public static $providers;
25
 
26
  /**
27
- * @var Wbcr_Factory436_Plugin
28
  */
29
  protected $plugin;
30
 
@@ -36,24 +36,24 @@ class Manager {
36
  /**
37
  * Manager constructor.
38
  *
39
- * @param Wbcr_Factory436_Plugin $plugin
40
  * @param array $settings
41
  *
42
  * @throws Exception
43
  */
44
- public function __construct( Wbcr_Factory436_Plugin $plugin, array $settings ) {
45
  $this->plugin = $plugin;
46
  $this->settings = $settings;
47
  }
48
 
49
  /**
50
- * @param Wbcr_Factory436_Plugin $plugin
51
  * @param array $settings
52
  *
53
- * @return \WBCR\Factory_Freemius_123\Premium\Provider
54
  * @throws Exception
55
  */
56
- public static function instance( Wbcr_Factory436_Plugin $plugin, array $settings ) {
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\Factory_Freemius_123\Premium\Provider
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\Factory_436\Premium\Provider interface!" );
74
  }
75
 
76
  return new self::$providers[ $provider_name ]( $this->plugin, $this->settings );
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Premium;
4
 
5
  use Exception;
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  // Exit if accessed directly
9
  if ( ! defined( 'ABSPATH' ) ) {
24
  public static $providers;
25
 
26
  /**
27
+ * @var Wbcr_Factory439_Plugin
28
  */
29
  protected $plugin;
30
 
36
  /**
37
  * Manager constructor.
38
  *
39
+ * @param Wbcr_Factory439_Plugin $plugin
40
  * @param array $settings
41
  *
42
  * @throws Exception
43
  */
44
+ public function __construct( Wbcr_Factory439_Plugin $plugin, array $settings ) {
45
  $this->plugin = $plugin;
46
  $this->settings = $settings;
47
  }
48
 
49
  /**
50
+ * @param Wbcr_Factory439_Plugin $plugin
51
  * @param array $settings
52
  *
53
+ * @return \WBCR\Factory_Freemius_126\Premium\Provider
54
  * @throws Exception
55
  */
56
+ public static function instance( Wbcr_Factory439_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_126\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_439\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\Factory_436\Premium;
4
 
5
  use Exception;
6
- use Wbcr_Factory436_Plugin;
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 Wbcr_Factory436_Plugin
25
  */
26
  protected $plugin;
27
 
@@ -38,10 +38,10 @@ abstract class Provider {
38
  /**
39
  * Provider constructor.
40
  *
41
- * @param Wbcr_Factory436_Plugin $plugin
42
  * @param array $settings
43
  */
44
- public function __construct(Wbcr_Factory436_Plugin $plugin, array $settings)
45
  {
46
  $this->plugin = $plugin;
47
  $this->settings = $settings;
@@ -244,7 +244,7 @@ abstract class Provider {
244
  abstract public function get_billing_cycle();
245
 
246
  /**
247
- * @return \WBCR\Factory_436\Premium\Interfaces\License
248
  */
249
  abstract public function get_license();
250
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Premium;
4
 
5
  use Exception;
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  // Exit if accessed directly
9
  if( !defined('ABSPATH') ) {
21
  abstract class Provider {
22
 
23
  /**
24
+ * @var Wbcr_Factory439_Plugin
25
  */
26
  protected $plugin;
27
 
38
  /**
39
  * Provider constructor.
40
  *
41
+ * @param Wbcr_Factory439_Plugin $plugin
42
  * @param array $settings
43
  */
44
+ public function __construct(Wbcr_Factory439_Plugin $plugin, array $settings)
45
  {
46
  $this->plugin = $plugin;
47
  $this->settings = $settings;
244
  abstract public function get_billing_cycle();
245
 
246
  /**
247
+ * @return \WBCR\Factory_439\Premium\Interfaces\License
248
  */
249
  abstract public function get_license();
250
 
libs/factory/core/includes/updates/class-factory-premium-upgrader.php CHANGED
@@ -1,12 +1,12 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_436\Updates;
4
 
5
  use Exception;
6
  use Plugin_Installer_Skin;
7
  use Plugin_Upgrader;
8
- use Wbcr_Factory436_Plugin;
9
- use Wbcr_FactoryPages435_ImpressiveThemplate;
10
  use WP_Filesystem_Base;
11
  use WP_Upgrader;
12
  use WP_Upgrader_Skin;
@@ -45,13 +45,13 @@ class Premium_Upgrader extends Upgrader {
45
  * @param $args
46
  * @param bool $is_premium
47
  *
48
- * @param Wbcr_Factory436_Plugin $plugin
49
  *
50
  * @throws Exception
51
  * @since 4.1.1
52
  *
53
  */
54
- public function __construct(Wbcr_Factory436_Plugin $plugin)
55
  {
56
  parent::__construct($plugin);
57
 
@@ -242,9 +242,9 @@ class Premium_Upgrader extends Upgrader {
242
  /**
243
  * Выводит уведомление внутри интерфейса плагина, на всех страницах плагина.
244
  *
245
- * @param Wbcr_FactoryPages435_ImpressiveThemplate $obj
246
  *
247
- * @param Wbcr_Factory436_Plugin $plugin
248
  *
249
  * @return void
250
  * @since 4.1.1
@@ -808,12 +808,12 @@ class Premium_Upgrader extends Upgrader {
808
  $cancel_license_url = $this->get_action_url('cancel_license');
809
 
810
  $texts = [
811
- 'need_activate_license' => __('License activation required. A license is required to get premium plugin updates, as well as to get additional services.', 'wbcr_factory_436'),
812
- '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_436'),
813
  'please_install_premium' => sprintf(__('Congratulations, you have activated a premium license! Please install premium add-on to use pro features now.
814
- <a href="%s">Install</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_436'), $upgrade_url, $cancel_license_url),
815
  'please_activate_premium' => sprintf(__('Congratulations, you have activated a premium license! Please activate premium add-on to use pro features now.
816
- <a href="%s">Activate</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_436'), $activate_plugin_url, $cancel_license_url)
817
  ];
818
 
819
  if( isset($texts[$type]) ) {
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Updates;
4
 
5
  use Exception;
6
  use Plugin_Installer_Skin;
7
  use Plugin_Upgrader;
8
+ use Wbcr_Factory439_Plugin;
9
+ use Wbcr_FactoryPages438_ImpressiveThemplate;
10
  use WP_Filesystem_Base;
11
  use WP_Upgrader;
12
  use WP_Upgrader_Skin;
45
  * @param $args
46
  * @param bool $is_premium
47
  *
48
+ * @param Wbcr_Factory439_Plugin $plugin
49
  *
50
  * @throws Exception
51
  * @since 4.1.1
52
  *
53
  */
54
+ public function __construct(Wbcr_Factory439_Plugin $plugin)
55
  {
56
  parent::__construct($plugin);
57
 
242
  /**
243
  * Выводит уведомление внутри интерфейса плагина, на всех страницах плагина.
244
  *
245
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $obj
246
  *
247
+ * @param Wbcr_Factory439_Plugin $plugin
248
  *
249
  * @return void
250
  * @since 4.1.1
808
  $cancel_license_url = $this->get_action_url('cancel_license');
809
 
810
  $texts = [
811
+ 'need_activate_license' => __('License activation required. A license is required to get premium plugin updates, as well as to get additional services.', 'wbcr_factory_439'),
812
+ '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_439'),
813
  'please_install_premium' => sprintf(__('Congratulations, you have activated a premium license! Please install premium add-on to use pro features now.
814
+ <a href="%s">Install</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_439'), $upgrade_url, $cancel_license_url),
815
  'please_activate_premium' => sprintf(__('Congratulations, you have activated a premium license! Please activate premium add-on to use pro features now.
816
+ <a href="%s">Activate</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_439'), $activate_plugin_url, $cancel_license_url)
817
  ];
818
 
819
  if( isset($texts[$type]) ) {
libs/factory/core/includes/updates/class-factory-upgrader.php CHANGED
@@ -1,10 +1,10 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_436\Updates;
4
 
5
  use Exception;
6
  use stdClass;
7
- use Wbcr_Factory436_Plugin;
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\Factory_Freemius_123\Updates\Freemius_Repository',
32
- * 'freemius' => '\WBCR\Factory_436\Updates\Wordpress_Repository'
33
  * ]
34
  */
35
  public static $repositories = [];
@@ -42,7 +42,7 @@ class Upgrader {
42
  protected $type = 'default';
43
 
44
  /**
45
- * @var Wbcr_Factory436_Plugin
46
  */
47
  protected $plugin;
48
 
@@ -90,13 +90,13 @@ class Upgrader {
90
  *
91
  * @since 4.1.1
92
  *
93
- * @param Wbcr_Factory436_Plugin $plugin
94
  * @param $args
95
  * @param bool $is_premium
96
  *
97
  * @throws Exception
98
  */
99
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
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\Factory_436\Updates\Wordpress_Repository';
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\Factory_436\Updates\Repository interface!" );
291
  }
292
 
293
  return new self::$repositories[ $repository_name ]( $this->plugin );
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Updates;
4
 
5
  use Exception;
6
  use stdClass;
7
+ use Wbcr_Factory439_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_126\Updates\Freemius_Repository',
32
+ * 'freemius' => '\WBCR\Factory_439\Updates\Wordpress_Repository'
33
  * ]
34
  */
35
  public static $repositories = [];
42
  protected $type = 'default';
43
 
44
  /**
45
+ * @var Wbcr_Factory439_Plugin
46
  */
47
  protected $plugin;
48
 
90
  *
91
  * @since 4.1.1
92
  *
93
+ * @param Wbcr_Factory439_Plugin $plugin
94
  * @param $args
95
  * @param bool $is_premium
96
  *
97
  * @throws Exception
98
  */
99
+ public function __construct( Wbcr_Factory439_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_439\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_439\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\Factory_436\Updates;
4
 
5
  // Exit if accessed directly
6
- use Wbcr_Factory436_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
@@ -23,17 +23,17 @@ abstract class Repository {
23
  protected $initialized = false;
24
 
25
  /**
26
- * @var Wbcr_Factory436_Plugin
27
  */
28
  protected $plugin;
29
 
30
  /**
31
  * Repository constructor.
32
  *
33
- * @param Wbcr_Factory436_Plugin $plugin
34
  * @param bool $is_premium
35
  */
36
- abstract public function __construct( Wbcr_Factory436_Plugin $plugin );
37
 
38
  /**
39
  * @return void
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Updates;
4
 
5
  // Exit if accessed directly
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
23
  protected $initialized = false;
24
 
25
  /**
26
+ * @var Wbcr_Factory439_Plugin
27
  */
28
  protected $plugin;
29
 
30
  /**
31
  * Repository constructor.
32
  *
33
+ * @param Wbcr_Factory439_Plugin $plugin
34
  * @param bool $is_premium
35
  */
36
+ abstract public function __construct( Wbcr_Factory439_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\Factory_436\Updates;
4
 
5
  // Exit if accessed directly
6
- use Wbcr_Factory436_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
@@ -20,10 +20,10 @@ class Wordpress_Repository extends Repository {
20
  /**
21
  * Wordpress constructor.
22
  *
23
- * @param Wbcr_Factory436_Plugin $plugin
24
  * @param bool $is_premium
25
  */
26
- public function __construct( Wbcr_Factory436_Plugin $plugin ) {
27
  $this->plugin = $plugin;
28
  }
29
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Updates;
4
 
5
  // Exit if accessed directly
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
20
  /**
21
  * Wordpress constructor.
22
  *
23
+ * @param Wbcr_Factory439_Plugin $plugin
24
  * @param bool $is_premium
25
  */
26
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
27
  $this->plugin = $plugin;
28
  }
29
 
libs/factory/core/langs/wbcr_factory_425-ru_RU.mo DELETED
Binary file
libs/factory/core/langs/wbcr_factory_429-ru_RU.mo DELETED
Binary file
libs/factory/core/langs/wbcr_factory_429-ru_RU.po DELETED
@@ -1,128 +0,0 @@
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/core/langs/wbcr_factory_432-ru_RU.mo DELETED
Binary file
libs/factory/core/langs/wbcr_factory_432-ru_RU.po DELETED
@@ -1,128 +0,0 @@
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/core/langs/wbcr_factory_436-ru_RU.mo DELETED
Binary file
libs/factory/core/langs/wbcr_factory_436-ru_RU.po DELETED
@@ -1,128 +0,0 @@
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-