Clearfy – WordPress optimization plugin and disable ultimate tweaker - Version 1.6.1

Version Description

(13.11.2019) = * Fixed: Compatibility with Wordpress 5.3 * Fixed: [Assets manager component] Minor bugs. Added an admin notice about great release. * Fixed: [Assets manager component] Conditional logic in the premium plugin didn't work in previous version due an error. * Added: [Assets manager component] You can control asset requires. Now if you disabled asset and it required for which other asset, you will get prompt with warning. * Added: [Assets manager component] If you click on the "requires" tag, you will be gone to the asset for which require the current asset. * Added: Restored plugin Hide my wp for premium build. And added compatibility Clearfy with Hide my wp.

Download this release

Release Info

Developer alexkovalevv
Plugin Icon 128x128 Clearfy – WordPress optimization plugin and disable ultimate tweaker
Version 1.6.1
Comparing to
See all releases

Code changes from version 1.6.0 to 1.6.1

Files changed (271) hide show
  1. admin/activation.php +7 -14
  2. admin/ajax/configurate.php +1 -1
  3. admin/ajax/import-settings.php +2 -2
  4. admin/assets/css/general.css +2 -2
  5. admin/assets/js/general.js +13 -13
  6. admin/assets/js/install-addons.js +15 -15
  7. admin/assets/js/license-manager.js +4 -4
  8. admin/boot.php +10 -10
  9. admin/includes/compatibility.php +80 -96
  10. admin/includes/sidebar-widgets.php +4 -4
  11. admin/pages/class-page.php +1 -1
  12. admin/pages/class-pages-advanced.php +1 -1
  13. admin/pages/class-pages-clearfy-settings.php +2 -2
  14. admin/pages/class-pages-components.php +33 -18
  15. admin/pages/class-pages-defence.php +2 -2
  16. admin/pages/class-pages-hide-login-page.php +3 -3
  17. admin/pages/class-pages-image-optimization.php +3 -3
  18. admin/pages/class-pages-license.php +3 -3
  19. admin/pages/class-pages-performance-google.php +1 -1
  20. admin/pages/class-pages-quick-start.php +2 -2
  21. admin/pages/class-pages-seo-double-pages.php +1 -1
  22. admin/pages/class-pages-seo.php +1 -1
  23. admin/pages/class-pages-widgets.php +1 -1
  24. clearfy.php +12 -12
  25. components/assets-manager/admin/activation.php +2 -2
  26. components/assets-manager/admin/ajax/save-settings.php +136 -8
  27. components/assets-manager/admin/boot.php +27 -4
  28. components/assets-manager/admin/pages/class-pages-more-features.php +1 -1
  29. components/assets-manager/admin/pages/class-pages-settings.php +6 -6
  30. components/assets-manager/assets/css/assets-conditions.css +5 -0
  31. components/assets-manager/assets/css/assets-conditions.css.map +1 -1
  32. components/assets-manager/assets/css/assets-conditions.less +10 -0
  33. components/assets-manager/assets/css/assets-manager.css +50 -16
  34. components/assets-manager/assets/css/assets-manager.css.map +1 -1
  35. components/assets-manager/assets/css/assets-manager.less +12 -4
  36. components/assets-manager/assets/css/float-panel.less +1 -1
  37. components/assets-manager/assets/css/tables.css +41 -352
  38. components/assets-manager/assets/css/tables.css.map +1 -1
  39. components/assets-manager/assets/css/tables.less +26 -16
  40. components/assets-manager/assets/css/tabs.less +24 -1
  41. components/assets-manager/assets/js/index.php +0 -0
  42. components/assets-manager/assets/js/{wam-jquery-migrate.min.js → libs/wam-jquery-migrate.min.js} +0 -0
  43. components/assets-manager/assets/js/{wam-jquery.js → libs/wam-jquery.js} +0 -0
  44. components/assets-manager/assets/js/libs/wam-pnotify-confirm.js +790 -0
  45. components/assets-manager/assets/js/libs/wam-pnotify-history.js +305 -0
  46. components/assets-manager/assets/js/{PNotify.js → libs/wam-pnotify.js} +1 -1
  47. components/assets-manager/assets/js/{assets-conditions.js → wam-assets-conditions.js} +0 -0
  48. components/assets-manager/assets/js/{assets-manager.js → wam-assets-manager.js} +139 -28
  49. components/assets-manager/clearfy.php +1 -1
  50. components/assets-manager/gonzales.php +9 -9
  51. components/assets-manager/includes/class-plugin.php +3 -3
  52. components/assets-manager/includes/classes/class-assets-manager-global.php +586 -313
  53. components/assets-manager/includes/classes/class-check-conditions.php +200 -82
  54. components/assets-manager/includes/classes/class-views.php +4 -4
  55. components/assets-manager/migrations/010100.php +1 -1
  56. components/assets-manager/migrations/010108.php +2 -1
  57. components/assets-manager/mu-plugins/assets-manager.php +227 -55
  58. components/assets-manager/readme.txt +8 -2
  59. components/assets-manager/uninstall.php +6 -1
  60. components/assets-manager/views/assets-manager.php +3 -3
  61. components/assets-manager/views/part-assets-manager-header.php +1 -1
  62. components/assets-manager/views/part-assets-manager-info-bar.php +2 -2
  63. components/assets-manager/views/part-tab-content-assets-plugins-settings.php +15 -1
  64. components/assets-manager/views/tab-content-assets-plugins.php +1 -1
  65. components/assets-manager/views/tab-content-assets.php +15 -1
  66. components/comments-plus/admin/boot.php +1 -1
  67. components/comments-plus/admin/pages/class-page-comments.php +3 -3
  68. components/comments-plus/admin/pages/class-page-delete-comments.php +6 -6
  69. components/comments-plus/admin/pages/class-page-more-features.php +1 -1
  70. components/comments-plus/comments-plus.php +7 -7
  71. components/comments-plus/includes/class-plugin.php +3 -3
  72. components/comments-plus/includes/classes/class-configurate-comments.php +3 -3
  73. components/cyrlitera/admin/activation.php +2 -2
  74. components/cyrlitera/admin/boot.php +1 -1
  75. components/cyrlitera/admin/pages/class-page-cyrlitera.php +4 -4
  76. components/cyrlitera/admin/pages/class-page-more-features.php +1 -1
  77. components/cyrlitera/cyrlitera.php +7 -7
  78. components/cyrlitera/includes/class-plugin.php +3 -3
  79. components/cyrlitera/includes/classes/class-configurate-cyrlitera.php +2 -2
  80. components/cyrlitera/migrations/010004.php +1 -1
  81. components/disable-admin-notices/admin/boot.php +1 -1
  82. components/disable-admin-notices/admin/options.php +2 -2
  83. components/disable-admin-notices/admin/pages/class-pages-more-features.php +1 -1
  84. components/disable-admin-notices/admin/pages/class-pages-notices.php +4 -4
  85. components/disable-admin-notices/disable-admin-notices.php +7 -7
  86. components/disable-admin-notices/includes/class-plugin.php +4 -4
  87. components/disable-admin-notices/includes/classes/class-configurate-notices.php +1 -1
  88. components/disable-admin-notices/migrations/010007.php +1 -1
  89. components/ga-cache/admin/activation.php +2 -2
  90. components/ga-cache/admin/boot.php +3 -3
  91. components/ga-cache/admin/options.php +1 -1
  92. components/ga-cache/admin/pages/class-pages-general-settings.php +3 -3
  93. components/ga-cache/admin/pages/class-pages-more-features.php +1 -1
  94. components/ga-cache/includes/class-plugin.php +3 -3
  95. components/ga-cache/includes/classes/class-configurate-ga.php +1 -1
  96. components/ga-cache/migrations/030002.php +1 -1
  97. components/ga-cache/simple_google_analytics.php +6 -6
  98. components/html-minify/admin/pages/class-pages-settings.php +3 -3
  99. components/html-minify/html-minify.php +7 -7
  100. components/html-minify/includes/class-plugin.php +3 -3
  101. components/minify-and-combine/admin/pages/class-pages-settings.php +3 -3
  102. components/minify-and-combine/includes/class-plugin.php +3 -3
  103. components/minify-and-combine/includes/classes/class-cache.php +1 -1
  104. components/minify-and-combine/includes/classes/class-styles.php +4 -4
  105. components/minify-and-combine/minify-and-combine.php +7 -7
  106. components/updates-manager/admin/activation.php +2 -2
  107. components/updates-manager/admin/assets/js/ajax-components.js +4 -4
  108. components/updates-manager/admin/boot.php +1 -1
  109. components/updates-manager/admin/includes/class-abstract-filters.php +1 -1
  110. components/updates-manager/admin/pages/class-page-advanced.php +5 -5
  111. components/updates-manager/admin/pages/class-page-more-features.php +1 -1
  112. components/updates-manager/admin/pages/class-page-plugins.php +5 -5
  113. components/updates-manager/admin/pages/class-page-themes.php +4 -4
  114. components/updates-manager/admin/pages/class-page-updates.php +5 -5
  115. components/updates-manager/includes/class-plugin.php +3 -3
  116. components/updates-manager/includes/classes/class-configurate-updates.php +1 -1
  117. components/updates-manager/migrations/010008.php +1 -1
  118. components/updates-manager/webcraftic-updates-manager.php +7 -7
  119. includes/boot.php +4 -4
  120. includes/class.plugin.php +7 -3
  121. includes/classes/class.configurate-advanced.php +1 -1
  122. includes/classes/class.configurate-google-performance.php +1 -1
  123. includes/classes/class.configurate-performance.php +1 -1
  124. includes/classes/class.configurate-privacy.php +1 -1
  125. includes/classes/class.configurate-security.php +1 -1
  126. includes/classes/class.configurate-seo.php +1 -1
  127. libs/factory/adverts/boot.php +12 -12
  128. libs/factory/adverts/includes/class-base.php +6 -6
  129. libs/factory/adverts/includes/class-dashboard-widget.php +4 -4
  130. libs/factory/adverts/includes/class-rest-request.php +4 -4
  131. libs/factory/adverts/langs/{wbcr_factory_adverts_103-ru_RU.mo → wbcr_factory_adverts_104-ru_RU.mo} +0 -0
  132. libs/factory/adverts/langs/{wbcr_factory_adverts_103-ru_RU.po → wbcr_factory_adverts_104-ru_RU.po} +0 -0
  133. libs/factory/bootstrap/assets/css-min/bootstrap.accordion.min.css +1 -1
  134. libs/factory/bootstrap/assets/css-min/bootstrap.blue.min.css +1 -1
  135. libs/factory/bootstrap/assets/css-min/bootstrap.coffee.min.css +1 -1
  136. libs/factory/bootstrap/assets/css-min/bootstrap.core.min.css +2 -2
  137. libs/factory/bootstrap/assets/css-min/bootstrap.ectoplasm.min.css +1 -1
  138. libs/factory/bootstrap/assets/css-min/bootstrap.form-group.min.css +1 -1
  139. libs/factory/bootstrap/assets/css-min/bootstrap.light.min.css +1 -1
  140. libs/factory/bootstrap/assets/css-min/bootstrap.midnight.min.css +1 -1
  141. libs/factory/bootstrap/assets/css-min/bootstrap.ocean.min.css +1 -1
  142. libs/factory/bootstrap/assets/css-min/bootstrap.separator.min.css +1 -1
  143. libs/factory/bootstrap/assets/css-min/bootstrap.sunrise.min.css +1 -1
  144. libs/factory/bootstrap/assets/css-min/control.checkbox.min.css +1 -1
  145. libs/factory/bootstrap/assets/css-min/control.dropdown.min.css +1 -1
  146. libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css +1 -1
  147. libs/factory/bootstrap/assets/css-min/holder.more-link.min.css +1 -1
  148. libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js +1 -1
  149. libs/factory/bootstrap/assets/js-min/control.checkbox.min.js +1 -1
  150. libs/factory/bootstrap/assets/js-min/control.dropdown.min.js +1 -1
  151. libs/factory/bootstrap/assets/js-min/control.list.min.js +1 -1
  152. libs/factory/bootstrap/assets/js-min/control.multiple-textbox.min.js +1 -1
  153. libs/factory/bootstrap/boot.php +9 -9
  154. libs/factory/bootstrap/includes/functions.php +15 -15
  155. libs/factory/clearfy/assets/css/clearfy-base.css +24 -24
  156. libs/factory/clearfy/assets/js/globals.js +15 -15
  157. libs/factory/clearfy/assets/js/license-manager.js +4 -4
  158. libs/factory/clearfy/boot.php +14 -14
  159. libs/factory/clearfy/includes/ajax-handlers.php +8 -8
  160. libs/factory/clearfy/includes/class-configurate.php +3 -3
  161. libs/factory/clearfy/includes/class-helpers.php +1 -1
  162. libs/factory/clearfy/langs/{wbcr_factory_clearfy_213-ru_RU.mo → wbcr_factory_clearfy_214-ru_RU.mo} +0 -0
  163. libs/factory/clearfy/langs/{wbcr_factory_clearfy_213-ru_RU.po → wbcr_factory_clearfy_214-ru_RU.po} +0 -0
  164. libs/factory/clearfy/pages/class-page-license.php +32 -32
  165. libs/factory/clearfy/pages/class-page-more-features.php +23 -23
  166. libs/factory/clearfy/pages/class-pages.php +41 -41
  167. libs/factory/core/boot.php +27 -27
  168. libs/factory/core/includes/activation/class-factory-activator.php +3 -3
  169. libs/factory/core/includes/activation/class-factory-update.php +3 -3
  170. libs/factory/core/includes/assets-managment/class-factory-assets-list.php +4 -4
  171. libs/factory/core/includes/assets-managment/class-factory-script-list.php +2 -2
  172. libs/factory/core/includes/assets-managment/class-factory-style-list.php +1 -1
  173. libs/factory/core/includes/class-check-compatibility.php +3 -3
  174. libs/factory/core/includes/class-factory-migrations.php +13 -13
  175. libs/factory/core/includes/class-factory-notices.php +6 -6
  176. libs/factory/core/includes/class-factory-options.php +2 -2
  177. libs/factory/core/includes/class-factory-plugin-abstract.php +52 -52
  178. libs/factory/core/includes/class-factory-plugin-base.php +25 -25
  179. libs/factory/core/includes/class-factory-requests.php +1 -1
  180. libs/factory/core/includes/class-factory-requirements.php +16 -15
  181. libs/factory/core/includes/entities/class-factory-paths.php +1 -1
  182. libs/factory/core/includes/entities/class-factory-support.php +1 -1
  183. libs/factory/core/includes/functions.php +7 -7
  184. libs/factory/core/includes/premium/class-factory-license-interface.php +1 -1
  185. libs/factory/core/includes/premium/class-factory-manager.php +10 -10
  186. libs/factory/core/includes/premium/class-factory-provider-abstract.php +6 -6
  187. libs/factory/core/includes/updates/class-factory-premium-upgrader.php +36 -22
  188. libs/factory/core/includes/updates/class-factory-upgrader.php +9 -9
  189. libs/factory/core/includes/updates/repositories/class-factory-repository-abstract.php +5 -5
  190. libs/factory/core/includes/updates/repositories/class-factory-wordpress.php +4 -4
  191. libs/factory/core/langs/{wbcr_factory_421-ru_RU.mo → wbcr_factory_422-ru_RU.mo} +0 -0
  192. libs/factory/core/langs/{wbcr_factory_421-ru_RU.po → wbcr_factory_422-ru_RU.po} +0 -0
  193. libs/factory/forms/boot.php +95 -95
  194. libs/factory/forms/controls/checkbox.php +4 -4
  195. libs/factory/forms/controls/color-and-opacity.php +4 -4
  196. libs/factory/forms/controls/color.php +2 -2
  197. libs/factory/forms/controls/customs/html.php +2 -2
  198. libs/factory/forms/controls/customs/separator.php +2 -2
  199. libs/factory/forms/controls/datepicker-range.php +4 -4
  200. libs/factory/forms/controls/dropdown-and-colors.php +6 -6
  201. libs/factory/forms/controls/dropdown.php +5 -5
  202. libs/factory/forms/controls/font.php +11 -11
  203. libs/factory/forms/controls/google-font.php +8 -8
  204. libs/factory/forms/controls/gradient.php +4 -4
  205. libs/factory/forms/controls/hidden.php +2 -2
  206. libs/factory/forms/controls/holders/accordion-item.php +2 -2
  207. libs/factory/forms/controls/holders/accordion.php +2 -2
  208. libs/factory/forms/controls/holders/columns.php +2 -2
  209. libs/factory/forms/controls/holders/control-group-item.php +2 -2
  210. libs/factory/forms/controls/holders/control-group.php +3 -3
  211. libs/factory/forms/controls/holders/div.php +2 -2
  212. libs/factory/forms/controls/holders/form-group.php +2 -2
  213. libs/factory/forms/controls/holders/more-link.php +2 -2
  214. libs/factory/forms/controls/holders/tab-item.php +2 -2
  215. libs/factory/forms/controls/holders/tab.php +4 -4
  216. libs/factory/forms/controls/integer.php +2 -2
  217. libs/factory/forms/controls/list.php +4 -4
  218. libs/factory/forms/controls/multiple-textbox.php +3 -3
  219. libs/factory/forms/controls/paddings-editor.php +3 -3
  220. libs/factory/forms/controls/pattern.php +9 -9
  221. libs/factory/forms/controls/radio-colors.php +2 -2
  222. libs/factory/forms/controls/radio.php +2 -2
  223. libs/factory/forms/controls/textarea.php +2 -2
  224. libs/factory/forms/controls/textbox.php +2 -2
  225. libs/factory/forms/controls/url.php +3 -3
  226. libs/factory/forms/controls/wp-editor.php +3 -3
  227. libs/factory/forms/includes/complex-control.class.php +4 -4
  228. libs/factory/forms/includes/control-holder.class.php +5 -5
  229. libs/factory/forms/includes/control.class.php +5 -5
  230. libs/factory/forms/includes/custom-element.class.php +2 -2
  231. libs/factory/forms/includes/form-element.class.php +7 -7
  232. libs/factory/forms/includes/form-layout.class.php +5 -5
  233. libs/factory/forms/includes/form.class.php +39 -39
  234. libs/factory/forms/includes/holder.class.php +6 -6
  235. libs/factory/forms/includes/html-builder.class.php +2 -2
  236. libs/factory/forms/includes/providers/meta-value-provider.class.php +2 -2
  237. libs/factory/forms/includes/providers/options-value-provider.class.php +3 -3
  238. libs/factory/forms/includes/providers/value-provider.interface.php +2 -2
  239. libs/factory/forms/langs/{wbcr_factory_forms_419-ru_RU.mo → wbcr_factory_forms_420-ru_RU.mo} +0 -0
  240. libs/factory/forms/langs/{wbcr_factory_forms_419-ru_RU.po → wbcr_factory_forms_420-ru_RU.po} +0 -0
  241. libs/factory/forms/layouts/bootstrap-3/bootstrap-3.php +7 -7
  242. libs/factory/freemius/boot.php +18 -18
  243. libs/factory/freemius/includes/class-freemius-api.php +7 -7
  244. libs/factory/freemius/includes/entities/class-freemius-entity.php +1 -1
  245. libs/factory/freemius/includes/entities/class-freemius-license.php +2 -2
  246. libs/factory/freemius/includes/entities/class-freemius-plugin.php +1 -1
  247. libs/factory/freemius/includes/entities/class-freemius-scope.php +1 -1
  248. libs/factory/freemius/includes/entities/class-freemius-site.php +1 -1
  249. libs/factory/freemius/includes/entities/class-freemius-user.php +1 -1
  250. libs/factory/freemius/includes/licensing/class-freemius-provider.php +18 -18
  251. libs/factory/freemius/includes/updates/class-freemius-repository.php +7 -7
  252. libs/factory/pages/boot.php +10 -10
  253. libs/factory/pages/includes/admin-page.class.php +7 -8
  254. libs/factory/pages/includes/page.class.php +7 -7
  255. libs/factory/pages/langs/{wbcr_factory_pages_421-fr_FR.mo → wbcr_factory_pages_422-fr_FR.mo} +0 -0
  256. libs/factory/pages/langs/{wbcr_factory_pages_421-fr_FR.po → wbcr_factory_pages_422-fr_FR.po} +0 -0
  257. libs/factory/pages/langs/{wbcr_factory_pages_421-ru_RU.mo → wbcr_factory_pages_422-ru_RU.mo} +0 -0
  258. libs/factory/pages/langs/{wbcr_factory_pages_421-ru_RU.po → wbcr_factory_pages_422-ru_RU.po} +0 -0
  259. libs/factory/pages/pages.php +11 -11
  260. libs/factory/pages/templates/assets/css/impressive.page.template.css +116 -116
  261. libs/factory/pages/templates/impressive-page.class.php +31 -31
  262. migrations/010103.php +1 -1
  263. migrations/010108.php +1 -1
  264. migrations/010200.php +1 -1
  265. migrations/010300.php +1 -1
  266. migrations/010402.php +1 -1
  267. migrations/010501.php +1 -1
  268. migrations/010504.php +1 -1
  269. migrations/010505.php +2 -2
  270. migrations/010601.php +12 -0
  271. readme.txt +9 -1
admin/activation.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * @author Webcraftic <wordpress.webraftic@gmail.com>
6
  * @copyright (c) 09.09.2017, Webcraftic
7
- * @see Factory421_Activator
8
  * @version 1.0
9
  */
10
 
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  exit;
14
  }
15
 
16
- class WCL_Activation extends Wbcr_Factory421_Activator {
17
 
18
  /**
19
  * Runs activation actions.
@@ -60,9 +60,6 @@ class WCL_Activation extends Wbcr_Factory421_Activator {
60
  WCL_Plugin::app()->deactivateComponent( 'cyrlitera' );
61
  }
62
 
63
- //$package_plugin = WCL_Package::instance();
64
- //$package_plugin->active();
65
-
66
  /**
67
  * @since 1.4.1
68
  */
@@ -74,24 +71,20 @@ class WCL_Activation extends Wbcr_Factory421_Activator {
74
  *
75
  * @since 1.0.0
76
  */
77
- /*public function deactivate() {
78
- if ( wp_next_scheduled( 'wbcr_clearfy_license_autosync' ) ) {
79
- wp_clear_scheduled_hook( 'wbcr_clearfy_license_autosync' );
80
- }
81
-
82
- $dependent = 'clearfy_package/clearfy-package.php';
83
 
84
  require_once ABSPATH . '/wp-admin/includes/plugin.php';
85
  if ( is_plugin_active( $dependent ) ) {
86
  add_action( 'update_option_active_plugins', [ $this, 'deactivateDependent' ] );
87
  }
88
- add_action( 'update_site_option_active_sitewide_plugins', [ $this, 'deactivateDependent' ] );
89
 
90
  /**
91
  * @since 1.4.1
92
  */
93
- //do_action( 'wbcr/clearfy/deactivated' );
94
- //}*/
95
 
96
  /**
97
  * Deactivate clearfy package
4
  *
5
  * @author Webcraftic <wordpress.webraftic@gmail.com>
6
  * @copyright (c) 09.09.2017, Webcraftic
7
+ * @see Factory422_Activator
8
  * @version 1.0
9
  */
10
 
13
  exit;
14
  }
15
 
16
+ class WCL_Activation extends Wbcr_Factory422_Activator {
17
 
18
  /**
19
  * Runs activation actions.
60
  WCL_Plugin::app()->deactivateComponent( 'cyrlitera' );
61
  }
62
 
 
 
 
63
  /**
64
  * @since 1.4.1
65
  */
71
  *
72
  * @since 1.0.0
73
  */
74
+ public function deactivate() {
75
+ /*$dependent = 'clearfy_package/clearfy-package.php';
 
 
 
 
76
 
77
  require_once ABSPATH . '/wp-admin/includes/plugin.php';
78
  if ( is_plugin_active( $dependent ) ) {
79
  add_action( 'update_option_active_plugins', [ $this, 'deactivateDependent' ] );
80
  }
81
+ add_action( 'update_site_option_active_sitewide_plugins', [ $this, 'deactivateDependent' ] );*/
82
 
83
  /**
84
  * @since 1.4.1
85
  */
86
+ do_action( 'wbcr/clearfy/deactivated' );
87
+ }
88
 
89
  /**
90
  * Deactivate clearfy package
admin/ajax/configurate.php CHANGED
@@ -57,7 +57,7 @@
57
  }
58
 
59
  if( !$flush_redirect ) {
60
- WbcrFactoryClearfy213_Helpers::flushPageCache();
61
  }
62
 
63
  do_action('wbcr_clearfy_configurated_quick_mode', $mode_name);
57
  }
58
 
59
  if( !$flush_redirect ) {
60
+ WbcrFactoryClearfy214_Helpers::flushPageCache();
61
  }
62
 
63
  do_action('wbcr_clearfy_configurated_quick_mode', $mode_name);
admin/ajax/import-settings.php CHANGED
@@ -62,7 +62,7 @@
62
  }
63
 
64
  if( is_array($option_value) || is_object($option_value) ) {
65
- $option_value = WbcrFactoryClearfy213_Helpers::recursiveSanitizeArray($option_value, 'wp_kses_post');
66
  $option_value = maybe_serialize($option_value);
67
  } else {
68
  $option_value = wp_kses_post($option_value);
@@ -140,7 +140,7 @@
140
  //$send_data['update_notice'] = $package_plugin->getUpdateNotice();
141
 
142
  // Сбрасываем кеш для кеширующих плагинов
143
- WbcrFactoryClearfy213_Helpers::flushPageCache();
144
 
145
  do_action('wbcr_clearfy_imported_settings');
146
 
62
  }
63
 
64
  if( is_array($option_value) || is_object($option_value) ) {
65
+ $option_value = WbcrFactoryClearfy214_Helpers::recursiveSanitizeArray($option_value, 'wp_kses_post');
66
  $option_value = maybe_serialize($option_value);
67
  } else {
68
  $option_value = wp_kses_post($option_value);
140
  //$send_data['update_notice'] = $package_plugin->getUpdateNotice();
141
 
142
  // Сбрасываем кеш для кеширующих плагинов
143
+ WbcrFactoryClearfy214_Helpers::flushPageCache();
144
 
145
  do_action('wbcr_clearfy_imported_settings');
146
 
admin/assets/css/general.css CHANGED
@@ -33,10 +33,10 @@
33
  //float: right;
34
  }*/
35
  }
36
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header {
37
  height: 80px !important;
38
  }
39
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo span {
40
  display: inline-block !important;
41
  }
42
  #WBCR .row {
33
  //float: right;
34
  }*/
35
  }
36
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header {
37
  height: 80px !important;
38
  }
39
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo span {
40
  display: inline-block !important;
41
  }
42
  #WBCR .row {
admin/assets/js/general.js CHANGED
@@ -87,13 +87,13 @@
87
  * Хук выполняет проивольную функцию, после того как получен ajax ответ о том, что в
88
  * результате конфигурации произошла ошибка Реализация системы фильтров и хуков в файле
89
  * libs/clearfy/admin/assests/js/global.js Пример регистрации хука
90
- * $.wbcr_factory_clearfy_213.hooks.add('wbcr/factory_clearfy_213/updated',
91
  * function(noticeId) {});
92
  * @param {string} modeName - имя режима конфигурации
93
  * @param {object} data
94
  */
95
 
96
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/quick_start/configurated_error', [
97
  modeName,
98
  data
99
  ]);
@@ -110,12 +110,12 @@
110
  * Хук выполняет проивольную функцию, после того как получен ajax ответ об успешном выполнении
111
  * конфигурации Реализация системы фильтров и хуков в файле
112
  * libs/clearfy/admin/assests/js/global.js Пример регистрации хука
113
- * $.wbcr_factory_clearfy_213.hooks.add('wbcr/factory_clearfy_213/updated', function(noticeId)
114
  * {});
115
  * @param {string} modeName - имя режима конфигурации
116
  * @param {object} data
117
  */
118
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/quick_start/configurated', [modeName, data]);
119
 
120
  if( modeName != 'reset' ) {
121
  switcher.addClass('wbcr-clearfy-active');
@@ -183,12 +183,12 @@
183
  $this = $(this);
184
 
185
  if( !settings ) {
186
- $.wbcr_factory_clearfy_213.app.showNotice('Import options is empty!', 'danger');
187
  return false;
188
  }
189
 
190
  if( void 0 == wbcr_clearfy_ajax || !wbcr_clearfy_ajax.import_options_nonce ) {
191
- $.wbcr_factory_clearfy_213.app.showNotice('Unknown Javascript error, most likely the wbcr_clearfy_ajax variable does not exist!', 'danger');
192
  return false;
193
  }
194
 
@@ -203,7 +203,7 @@
203
 
204
  if( response.data.update_notice ) {
205
  if( !$('.wbcr-clr-update-package').length ) {
206
- $.wbcr_factory_clearfy_213.app.showNotice(response.data.update_notice);
207
  }
208
  } else {
209
  if( $('.wbcr-clr-update-package').length ) {
@@ -240,15 +240,15 @@
240
  console.log(data);
241
 
242
  if( data ) {
243
- noticeId = $.wbcr_factory_clearfy_213.app.showNotice(data.error_message, 'danger');
244
  } else {
245
  if( void 0 != wbcr_clearfy_ajax ) {
246
- noticeId = $.wbcr_factory_clearfy_213.app.showNotice(wbcr_clearfy_ajax.i18n.unknown_error, 'danger');
247
  }
248
  }
249
 
250
  setTimeout(function() {
251
- $.wbcr_factory_clearfy_213.app.hideNotice(noticeId);
252
  }, 5000);
253
  return;
254
  }
@@ -257,10 +257,10 @@
257
 
258
  if( !request_data.flush_redirect ) {
259
  if( void 0 != wbcr_clearfy_ajax ) {
260
- noticeId = $.wbcr_factory_clearfy_213.app.showNotice(wbcr_clearfy_ajax.i18n.success_update_settings, 'success');
261
 
262
  setTimeout(function() {
263
- $.wbcr_factory_clearfy_213.app.hideNotice(noticeId);
264
  }, 5000);
265
  }
266
  return;
@@ -275,7 +275,7 @@
275
  console.log(xhr.responseText);
276
  console.log(thrownError);
277
 
278
- var noticeId = $.wbcr_factory_clearfy_213.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
279
  }
280
  });
281
  }
87
  * Хук выполняет проивольную функцию, после того как получен ajax ответ о том, что в
88
  * результате конфигурации произошла ошибка Реализация системы фильтров и хуков в файле
89
  * libs/clearfy/admin/assests/js/global.js Пример регистрации хука
90
+ * $.wbcr_factory_clearfy_214.hooks.add('wbcr/factory_clearfy_214/updated',
91
  * function(noticeId) {});
92
  * @param {string} modeName - имя режима конфигурации
93
  * @param {object} data
94
  */
95
 
96
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/quick_start/configurated_error', [
97
  modeName,
98
  data
99
  ]);
110
  * Хук выполняет проивольную функцию, после того как получен ajax ответ об успешном выполнении
111
  * конфигурации Реализация системы фильтров и хуков в файле
112
  * libs/clearfy/admin/assests/js/global.js Пример регистрации хука
113
+ * $.wbcr_factory_clearfy_214.hooks.add('wbcr/factory_clearfy_214/updated', function(noticeId)
114
  * {});
115
  * @param {string} modeName - имя режима конфигурации
116
  * @param {object} data
117
  */
118
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/quick_start/configurated', [modeName, data]);
119
 
120
  if( modeName != 'reset' ) {
121
  switcher.addClass('wbcr-clearfy-active');
183
  $this = $(this);
184
 
185
  if( !settings ) {
186
+ $.wbcr_factory_clearfy_214.app.showNotice('Import options is empty!', 'danger');
187
  return false;
188
  }
189
 
190
  if( void 0 == wbcr_clearfy_ajax || !wbcr_clearfy_ajax.import_options_nonce ) {
191
+ $.wbcr_factory_clearfy_214.app.showNotice('Unknown Javascript error, most likely the wbcr_clearfy_ajax variable does not exist!', 'danger');
192
  return false;
193
  }
194
 
203
 
204
  if( response.data.update_notice ) {
205
  if( !$('.wbcr-clr-update-package').length ) {
206
+ $.wbcr_factory_clearfy_214.app.showNotice(response.data.update_notice);
207
  }
208
  } else {
209
  if( $('.wbcr-clr-update-package').length ) {
240
  console.log(data);
241
 
242
  if( data ) {
243
+ noticeId = $.wbcr_factory_clearfy_214.app.showNotice(data.error_message, 'danger');
244
  } else {
245
  if( void 0 != wbcr_clearfy_ajax ) {
246
+ noticeId = $.wbcr_factory_clearfy_214.app.showNotice(wbcr_clearfy_ajax.i18n.unknown_error, 'danger');
247
  }
248
  }
249
 
250
  setTimeout(function() {
251
+ $.wbcr_factory_clearfy_214.app.hideNotice(noticeId);
252
  }, 5000);
253
  return;
254
  }
257
 
258
  if( !request_data.flush_redirect ) {
259
  if( void 0 != wbcr_clearfy_ajax ) {
260
+ noticeId = $.wbcr_factory_clearfy_214.app.showNotice(wbcr_clearfy_ajax.i18n.success_update_settings, 'success');
261
 
262
  setTimeout(function() {
263
+ $.wbcr_factory_clearfy_214.app.hideNotice(noticeId);
264
  }, 5000);
265
  }
266
  return;
275
  console.log(xhr.responseText);
276
  console.log(thrownError);
277
 
278
+ var noticeId = $.wbcr_factory_clearfy_214.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
279
  }
280
  });
281
  }
admin/assets/js/install-addons.js CHANGED
@@ -53,16 +53,16 @@
53
 
54
  $this.addClass('disabled').text(button_i18n.loading);
55
 
56
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/components/pre_update', [$this, data]);
57
 
58
  self.sendRequest(data, function(response) {
59
  if( !response || !response.success ) {
60
 
61
  if( response.data && response.data.error_message ) {
62
- $.wbcr_factory_clearfy_213.app.showNotice(response.data.error_message, 'danger');
63
  }
64
 
65
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/components/update_error', [
66
  $this,
67
  data,
68
  response.data.error_message,
@@ -78,7 +78,7 @@
78
  if( storage == 'freemius' ) {
79
  if( response.data.update_notice ) {
80
  if( !$('.wbcr-clr-update-package').length ) {
81
- $.wbcr_factory_clearfy_213.app.showNotice(response.data.update_notice);
82
  }
83
  } else {
84
  if( $('.wbcr-clr-update-package').length ) {
@@ -97,7 +97,7 @@
97
  $this.removeClass('button-default').addClass('button-primary');
98
  }
99
 
100
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/components/installed', [
101
  $this,
102
  data,
103
  response
@@ -147,7 +147,7 @@
147
  $this.closest('.plugin-card').find('.delete-now').remove();
148
  }
149
 
150
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/components/pre_activate', [
151
  $this,
152
  data,
153
  response
@@ -194,7 +194,7 @@
194
  $this.closest('.wbcr-hide-after-action').remove();
195
  }
196
 
197
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/components/deactivated', [
198
  $this,
199
  data,
200
  response
@@ -217,7 +217,7 @@
217
  $this.remove();
218
  }
219
 
220
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/components/deleted', [$this, data, response]);
221
  }
222
  } else {
223
  if( plugin_action == 'install' ) {
@@ -228,10 +228,10 @@
228
  $this.text(button_i18n[plugin_action]);
229
 
230
  if( response.data.need_rewrite_rules && !$('.wbcr-clr-need-rewrite-rules-message').length ) {
231
- $.wbcr_factory_clearfy_213.app.showNotice(response.data.need_rewrite_rules, 'warning');
232
  }
233
 
234
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/components/updated', [$this, data, response]);
235
  });
236
 
237
  return false;
@@ -254,7 +254,7 @@
254
  self.sendRequest(data, function(response) {
255
  if( !response || !response.success ) {
256
  if( response.data && response.data.error_message ) {
257
- $.wbcr_factory_clearfy_213.app.showNotice(response.data.error_message, 'danger');
258
  }
259
  return;
260
  }
@@ -317,17 +317,17 @@
317
  self.setComponentDeactivate(componentButton);
318
 
319
  if( response.data && response.data.error_message ) {
320
- $.wbcr_factory_clearfy_213.app.showNotice(response.data.error_message, 'danger');
321
  }
322
 
323
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/components/activated_error', [sendData.plugin]);
324
  return;
325
  }
326
 
327
  componentButton.removeClass('button-primary').text(button_i18n['deactivate']);
328
  self.setComponentActivate(componentButton);
329
 
330
- $.wbcr_factory_clearfy_213.hooks.run('clearfy/components/activated', [sendData.plugin]);
331
  });
332
  },
333
 
@@ -346,7 +346,7 @@
346
  console.log(xhr.responseText);
347
  console.log(thrownError);
348
 
349
- $.wbcr_factory_clearfy_213.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
350
  }
351
  });
352
  }
53
 
54
  $this.addClass('disabled').text(button_i18n.loading);
55
 
56
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/components/pre_update', [$this, data]);
57
 
58
  self.sendRequest(data, function(response) {
59
  if( !response || !response.success ) {
60
 
61
  if( response.data && response.data.error_message ) {
62
+ $.wbcr_factory_clearfy_214.app.showNotice(response.data.error_message, 'danger');
63
  }
64
 
65
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/components/update_error', [
66
  $this,
67
  data,
68
  response.data.error_message,
78
  if( storage == 'freemius' ) {
79
  if( response.data.update_notice ) {
80
  if( !$('.wbcr-clr-update-package').length ) {
81
+ $.wbcr_factory_clearfy_214.app.showNotice(response.data.update_notice);
82
  }
83
  } else {
84
  if( $('.wbcr-clr-update-package').length ) {
97
  $this.removeClass('button-default').addClass('button-primary');
98
  }
99
 
100
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/components/installed', [
101
  $this,
102
  data,
103
  response
147
  $this.closest('.plugin-card').find('.delete-now').remove();
148
  }
149
 
150
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/components/pre_activate', [
151
  $this,
152
  data,
153
  response
194
  $this.closest('.wbcr-hide-after-action').remove();
195
  }
196
 
197
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/components/deactivated', [
198
  $this,
199
  data,
200
  response
217
  $this.remove();
218
  }
219
 
220
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/components/deleted', [$this, data, response]);
221
  }
222
  } else {
223
  if( plugin_action == 'install' ) {
228
  $this.text(button_i18n[plugin_action]);
229
 
230
  if( response.data.need_rewrite_rules && !$('.wbcr-clr-need-rewrite-rules-message').length ) {
231
+ $.wbcr_factory_clearfy_214.app.showNotice(response.data.need_rewrite_rules, 'warning');
232
  }
233
 
234
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/components/updated', [$this, data, response]);
235
  });
236
 
237
  return false;
254
  self.sendRequest(data, function(response) {
255
  if( !response || !response.success ) {
256
  if( response.data && response.data.error_message ) {
257
+ $.wbcr_factory_clearfy_214.app.showNotice(response.data.error_message, 'danger');
258
  }
259
  return;
260
  }
317
  self.setComponentDeactivate(componentButton);
318
 
319
  if( response.data && response.data.error_message ) {
320
+ $.wbcr_factory_clearfy_214.app.showNotice(response.data.error_message, 'danger');
321
  }
322
 
323
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/components/activated_error', [sendData.plugin]);
324
  return;
325
  }
326
 
327
  componentButton.removeClass('button-primary').text(button_i18n['deactivate']);
328
  self.setComponentActivate(componentButton);
329
 
330
+ $.wbcr_factory_clearfy_214.hooks.run('clearfy/components/activated', [sendData.plugin]);
331
  });
332
  },
333
 
346
  console.log(xhr.responseText);
347
  console.log(thrownError);
348
 
349
+ $.wbcr_factory_clearfy_214.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
350
  }
351
  });
352
  }
admin/assets/js/license-manager.js CHANGED
@@ -20,7 +20,7 @@ jQuery(function($) {
20
  // Глобальные уведомления не трогаем
21
 
22
  for( i = 0; i < allNotices.length; i++ ) {
23
- $.wbcr_factory_clearfy_213.app.hideNotice(allNotices[i]);
24
  }
25
 
26
  $('.wcl-control-btn').hide();
@@ -55,7 +55,7 @@ jQuery(function($) {
55
 
56
  if( response.data ) {
57
  console.log(response.data.error_message);
58
- noticeId = $.wbcr_factory_clearfy_213.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
59
  allNotices.push(noticeId);
60
  } else {
61
  console.log(response);
@@ -65,7 +65,7 @@ jQuery(function($) {
65
  }
66
 
67
  if( response.data && response.data.message ) {
68
- noticeId = $.wbcr_factory_clearfy_213.app.showNotice(response.data.message, 'success');
69
  allNotices.push(noticeId);
70
 
71
  // todo: доработать генерацию формы, вместо перезагрузки страницы
@@ -82,7 +82,7 @@ jQuery(function($) {
82
  console.log(xhr.responseText);
83
  console.log(thrownError);
84
 
85
- var noticeId = $.wbcr_factory_clearfy_213.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
86
 
87
  allNotices.push(noticeId);
88
  }
20
  // Глобальные уведомления не трогаем
21
 
22
  for( i = 0; i < allNotices.length; i++ ) {
23
+ $.wbcr_factory_clearfy_214.app.hideNotice(allNotices[i]);
24
  }
25
 
26
  $('.wcl-control-btn').hide();
55
 
56
  if( response.data ) {
57
  console.log(response.data.error_message);
58
+ noticeId = $.wbcr_factory_clearfy_214.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
59
  allNotices.push(noticeId);
60
  } else {
61
  console.log(response);
65
  }
66
 
67
  if( response.data && response.data.message ) {
68
+ noticeId = $.wbcr_factory_clearfy_214.app.showNotice(response.data.message, 'success');
69
  allNotices.push(noticeId);
70
 
71
  // todo: доработать генерацию формы, вместо перезагрузки страницы
82
  console.log(xhr.responseText);
83
  console.log(thrownError);
84
 
85
+ var noticeId = $.wbcr_factory_clearfy_214.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
86
 
87
  allNotices.push(noticeId);
88
  }
admin/boot.php CHANGED
@@ -33,8 +33,8 @@ add_action( 'wbcr/factory/pages/impressive/header', function ( $plugin_name ) {
33
 
34
  /**
35
  * @param $form
36
- * @param Wbcr_Factory421_Plugin $plugin
37
- * @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
38
  */
39
  function wbcr_clearfy_multisite_before_save( $form, $plugin, $obj ) {
40
  if ( $plugin->getPluginName() !== WCL_Plugin::app()->getPluginName() ) {
@@ -74,7 +74,7 @@ add_action( 'admin_enqueue_scripts', function () {
74
  wp_enqueue_style( 'wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/css/install-addons.css', [], WCL_Plugin::app()->getPluginVersion() );
75
  wp_enqueue_script( 'wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/js/install-addons.js', [
76
  'jquery',
77
- 'wbcr-factory-clearfy-213-global'
78
  ], WCL_Plugin::app()->getPluginVersion() );
79
  } );
80
 
@@ -83,30 +83,30 @@ add_action( 'admin_enqueue_scripts', function () {
83
  * Уведомление будет показано на всех страницах Clearfy и его компонентах.
84
  *
85
  * @param WCL_Plugin $plugin
86
- * @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
87
  */
88
- /*function wbcr_clearfy_print_notice_rewrite_rules( $plugin, $obj ) {
89
  if ( WCL_Plugin::app()->getPopulateOption( 'need_rewrite_rules' ) ) {
90
  $obj->printWarningNotice( 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.', 'clearfy' ), admin_url( 'options-permalink.php' ) ) . '</span>' );
91
  }
92
  }
93
 
94
- add_action( 'wbcr/factory/pages/impressive/print_all_notices', 'wbcr_clearfy_print_notice_rewrite_rules', 10, 2 );*/
95
 
96
  /**
97
  * Удалем уведомление Clearfy о том, что нужно перезаписать постоянные ссылоки.s
98
  */
99
- /*function wbcr_clearfy_flush_rewrite_rules() {
100
  WCL_Plugin::app()->deletePopulateOption( 'need_rewrite_rules', 1 );
101
  }
102
 
103
- add_action( 'flush_rewrite_rules_hard', 'wbcr_clearfy_flush_rewrite_rules' );*/
104
 
105
  /**
106
  * Обновить постоынные ссылки, после выполнения быстрых настроек
107
  *
108
  * @param WHM_Plugin $plugin
109
- * @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
110
  */
111
  function wbcr_clearfy_after_form_save( $plugin, $obj ) {
112
  if ( ! WCL_Plugin::app()->currentUserCan() ) {
@@ -128,7 +128,7 @@ add_action( 'wbcr/factory/pages/impressive/after_form_save', 'wbcr_clearfy_after
128
  *
129
  * @param array $widgets
130
  * @param string $position
131
- * @param Wbcr_Factory421_Plugin $plugin
132
  */
133
 
134
  add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
33
 
34
  /**
35
  * @param $form
36
+ * @param Wbcr_Factory422_Plugin $plugin
37
+ * @param Wbcr_FactoryPages422_ImpressiveThemplate $obj
38
  */
39
  function wbcr_clearfy_multisite_before_save( $form, $plugin, $obj ) {
40
  if ( $plugin->getPluginName() !== WCL_Plugin::app()->getPluginName() ) {
74
  wp_enqueue_style( 'wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/css/install-addons.css', [], WCL_Plugin::app()->getPluginVersion() );
75
  wp_enqueue_script( 'wbcr-clearfy-install-components', WCL_PLUGIN_URL . '/admin/assets/js/install-addons.js', [
76
  'jquery',
77
+ 'wbcr-factory-clearfy-214-global'
78
  ], WCL_Plugin::app()->getPluginVersion() );
79
  } );
80
 
83
  * Уведомление будет показано на всех страницах Clearfy и его компонентах.
84
  *
85
  * @param WCL_Plugin $plugin
86
+ * @param Wbcr_FactoryPages422_ImpressiveThemplate $obj
87
  */
88
+ function wbcr_clearfy_print_notice_rewrite_rules( $plugin, $obj ) {
89
  if ( WCL_Plugin::app()->getPopulateOption( 'need_rewrite_rules' ) ) {
90
  $obj->printWarningNotice( 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.', 'clearfy' ), admin_url( 'options-permalink.php' ) ) . '</span>' );
91
  }
92
  }
93
 
94
+ add_action( 'wbcr/factory/pages/impressive/print_all_notices', 'wbcr_clearfy_print_notice_rewrite_rules', 10, 2 );
95
 
96
  /**
97
  * Удалем уведомление Clearfy о том, что нужно перезаписать постоянные ссылоки.s
98
  */
99
+ function wbcr_clearfy_flush_rewrite_rules() {
100
  WCL_Plugin::app()->deletePopulateOption( 'need_rewrite_rules', 1 );
101
  }
102
 
103
+ add_action( 'flush_rewrite_rules_hard', 'wbcr_clearfy_flush_rewrite_rules' );
104
 
105
  /**
106
  * Обновить постоынные ссылки, после выполнения быстрых настроек
107
  *
108
  * @param WHM_Plugin $plugin
109
+ * @param Wbcr_FactoryPages422_ImpressiveThemplate $obj
110
  */
111
  function wbcr_clearfy_after_form_save( $plugin, $obj ) {
112
  if ( ! WCL_Plugin::app()->currentUserCan() ) {
128
  *
129
  * @param array $widgets
130
  * @param string $position
131
+ * @param Wbcr_Factory422_Plugin $plugin
132
  */
133
 
134
  add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
admin/includes/compatibility.php CHANGED
@@ -1,112 +1,96 @@
1
  <?php
2
- /**
3
- * Compatibility with Clearfy old components
4
- * @author Webcraftic <wordpress.webraftic@gmail.com>
5
- * @copyright (c) 22.10.2018, Webcraftic
6
- * @version 1.0
7
- */
 
8
 
9
- add_action('plugins_loaded', function () {
10
- if( defined('WIO_PLUGIN_ACTIVE') ) {
11
- if( !file_exists(WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php') ) {
12
- return;
13
- }
14
 
15
- $plugin = get_plugin_data(WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php');
16
 
17
- if( isset($plugin['Version']) && version_compare($plugin['Version'], '1.0.8', '<=') ) {
18
- $notice = __('Please update the plugin Robin image Optimizer to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy');
19
- /**
20
- * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина.
21
- * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
22
- * иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
23
- *
24
- * @param Wbcr_Factory421_Plugin $plugin
25
- * @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
26
- * @return bool
27
- */
28
- add_action('wbcr/factory/pages/impressive/print_all_notices', function ($plugin, $obj) use ($notice) {
29
- $obj->printErrorNotice($notice);
30
- }, 10, 2);
 
31
 
32
- // Специально для преидущей версии фреймворка (407)
33
- add_action('wbcr_factory_pages_407_imppage_print_all_notices', function ($plugin, $obj) use ($notice) {
34
- $obj->printErrorNotice($notice);
35
- }, 10, 2);
36
- }
37
  }
 
38
 
39
- if( defined('WHLP_PLUGIN_ACTIVE') ) {
40
- if( !file_exists(WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php') ) {
41
- return;
42
- }
43
 
44
- $plugin = get_plugin_data(WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php');
45
 
46
- if( isset($plugin['Version']) && version_compare($plugin['Version'], '1.0.5', '<=') ) {
47
- $notice = __('Please update the plugin Hide login page to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy');
48
- /**
49
- * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина.
50
- * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
51
- * иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
52
- *
53
- * @param Wbcr_Factory421_Plugin $plugin
54
- * @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
55
- * @return bool
56
- */
57
- add_action('wbcr/factory/pages/impressive/print_all_notices', function ($plugin, $obj) use ($notice) {
58
- $obj->printErrorNotice($notice);
59
- }, 10, 2);
 
60
 
61
- // Специально для преидущей версии фреймворка (407)
62
- add_action('wbcr_factory_pages_407_imppage_print_all_notices', function ($plugin, $obj) use ($notice) {
63
- $obj->printErrorNotice($notice);
64
- }, 10, 2);
65
- }
66
  }
67
- });
68
-
69
- /**
70
- * Дополнительная подсказка, что форма импорта, экспорта перемещена
71
- */
72
- add_action('admin_enqueue_scripts', function ($page_id) {
73
 
74
- if( !WbcrFactoryClearfy213_Helpers::strContains($page_id, WCL_Plugin::app()->getPluginName()) ) {
75
- return;
76
- }
 
 
77
 
78
- wp_enqueue_style('wp-pointer');
79
- wp_enqueue_script('wp-pointer');
 
80
 
81
- add_action('admin_print_footer_scripts', function () {
82
- $dismissed_pointers = explode(',', get_user_meta(get_current_user_id(), 'dismissed_wp_pointers', true));
 
83
 
84
- $pointer_setting_content = "<h3>" . sprintf(__('Welcome to Clearfy (%s)', 'clearfy'), '1.4.x') . "</h3>";
85
- $pointer_setting_content .= "<p>" . __('We moved the form to import and export plugin settings to another page. Now all settings that relate only to the Clearfy plugin, we will post on this additional page.', 'clearfy') . "</p>";
 
 
 
 
 
86
 
87
- ?>
88
- <script>
89
- //<![CDATA[
90
- jQuery(document).ready(function($) {
91
- <?php if( !in_array('wbcr_clearfy_settings_pointer_1_4_2', $dismissed_pointers) ): ?>
92
- $('.wbcr-factory-type-settings').pointer({
93
- content: '<?php echo $pointer_setting_content; ?>',
94
- position: {
95
- edge: 'top', // arrow direction
96
- align: 'center' // vertical alignment
97
- },
98
- pointerWidth: 350,
99
- close: function() {
100
- $.post(ajaxurl, {
101
- pointer: 'wbcr_clearfy_settings_pointer_1_4_2', // pointer ID
102
- action: 'dismiss-wp-pointer'
103
- });
104
- }
105
- }).pointer('open');
106
- <?php endif; ?>
107
- });
108
- //]]>
109
- </script>
110
- <?php
111
- }, 20);
112
- });
1
  <?php
2
+ /**
3
+ * Compatibility with Clearfy old components
4
+ *
5
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
6
+ * @copyright (c) 22.10.2018, Webcraftic
7
+ * @version 1.0
8
+ */
9
 
10
+ add_action( 'plugins_loaded', function () {
11
+ if ( defined( 'WIO_PLUGIN_ACTIVE' ) ) {
12
+ if ( ! file_exists( WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php' ) ) {
13
+ return;
14
+ }
15
 
16
+ $plugin = get_plugin_data( WP_PLUGIN_DIR . '/robin-image-optimizer/robin-image-optimizer.php' );
17
 
18
+ if ( isset( $plugin['Version'] ) && version_compare( $plugin['Version'], '1.0.8', '<=' ) ) {
19
+ $notice = __( 'Please update the plugin Robin image Optimizer to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy' );
20
+ /**
21
+ * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина.
22
+ * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
23
+ * иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
24
+ *
25
+ * @param Wbcr_Factory422_Plugin $plugin
26
+ * @param Wbcr_FactoryPages422_ImpressiveThemplate $obj
27
+ *
28
+ * @return bool
29
+ */
30
+ add_action( 'wbcr/factory/pages/impressive/print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
31
+ $obj->printErrorNotice( $notice );
32
+ }, 10, 2 );
33
 
34
+ // Специально для преидущей версии фреймворка (407)
35
+ add_action( 'wbcr_factory_pages_407_imppage_print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
36
+ $obj->printErrorNotice( $notice );
37
+ }, 10, 2 );
 
38
  }
39
+ }
40
 
41
+ if ( defined( 'WHLP_PLUGIN_ACTIVE' ) ) {
42
+ if ( ! file_exists( WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php' ) ) {
43
+ return;
44
+ }
45
 
46
+ $plugin = get_plugin_data( WP_PLUGIN_DIR . '/hide-login-page/hide-login-page.php' );
47
 
48
+ if ( isset( $plugin['Version'] ) && version_compare( $plugin['Version'], '1.0.5', '<=' ) ) {
49
+ $notice = __( 'Please update the plugin Hide login page to the latest version, as it may not work correctly with the new version of Clearfy!', 'clearfy' );
50
+ /**
51
+ * Выводит уведомление внутри интерфейса Clearfy, на всех страницах плагина.
52
+ * Это необходимо, чтоб напомнить пользователю обновить конфигурацию компонентов плагина,
53
+ * иначе вновь активированные компоненты не будет зайдествованы в работе плагина.
54
+ *
55
+ * @param Wbcr_Factory422_Plugin $plugin
56
+ * @param Wbcr_FactoryPages422_ImpressiveThemplate $obj
57
+ *
58
+ * @return bool
59
+ */
60
+ add_action( 'wbcr/factory/pages/impressive/print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
61
+ $obj->printErrorNotice( $notice );
62
+ }, 10, 2 );
63
 
64
+ // Специально для преидущей версии фреймворка (407)
65
+ add_action( 'wbcr_factory_pages_407_imppage_print_all_notices', function ( $plugin, $obj ) use ( $notice ) {
66
+ $obj->printErrorNotice( $notice );
67
+ }, 10, 2 );
 
68
  }
69
+ }
 
 
 
 
 
70
 
71
+ if ( defined( 'WCLRP_PLUGIN_ACTIVE' ) ) {
72
+ add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) {
73
+ if ( $plugin_name != WGZ_Plugin::app()->getPluginName() ) {
74
+ return $notices;
75
+ }
76
 
77
+ if ( ! current_user_can( 'update_plugins' ) ) {
78
+ return $notices;
79
+ }
80
 
81
+ $nonce_action = 'upgrade-plugin_' . WCLRP_PLUGIN_BASE;
82
+ $upgrade_url = wp_nonce_url( self_admin_url( "update.php?action=upgrade-plugin&plugin=" . urlencode( WCLRP_PLUGIN_BASE ) ), $nonce_action );
83
+ $notice_text = sprintf( __( 'You must <a href="%s">upgrade the premium version</a> of the Clearfy plugin to version 1.1.3, since the new Clearfy release isn\'t compatible with the previous version of the premium plugin.', 'gonzales' ), $upgrade_url );
84
 
85
+ $notices[] = [
86
+ 'id' => 'clearfy-package_-compatibility-113',
87
+ 'type' => 'error',
88
+ 'dismissible' => false,
89
+ 'dismiss_expires' => 0,
90
+ 'text' => '<p><b>' . __( 'Clearfy', 'clearfy' ) . ': </b>' . $notice_text . '</p>'
91
+ ];
92
 
93
+ return $notices;
94
+ }, 10, 2 );
95
+ }
96
+ }, 30 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/includes/sidebar-widgets.php CHANGED
@@ -12,8 +12,8 @@
12
  */
13
  function wbcr_clearfy_get_sidebar_premium_widget() {
14
 
15
- $buy_premium_url = WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'pricing', 'license_page' );
16
- $upgrade_price = WbcrFactoryClearfy213_Helpers::getClearfyBusinessPrice();
17
 
18
  ob_start();
19
  ?>
@@ -49,8 +49,8 @@ function wbcr_clearfy_get_sidebar_support_widget() {
49
 
50
  $output = '';
51
 
52
- $free_support_url = WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'support', 'support_widget' );
53
- $page_hot_support_url = WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'hot-support', 'support_widget' );
54
 
55
  ob_start();
56
  ?>
12
  */
13
  function wbcr_clearfy_get_sidebar_premium_widget() {
14
 
15
+ $buy_premium_url = WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'pricing', 'license_page' );
16
+ $upgrade_price = WbcrFactoryClearfy214_Helpers::getClearfyBusinessPrice();
17
 
18
  ob_start();
19
  ?>
49
 
50
  $output = '';
51
 
52
+ $free_support_url = WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'support', 'support_widget' );
53
+ $page_hot_support_url = WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'hot-support', 'support_widget' );
54
 
55
  ob_start();
56
  ?>
admin/pages/class-page.php CHANGED
@@ -7,6 +7,6 @@
7
  * @version 1.0
8
  */
9
 
10
- class WCL_Page extends Wbcr_FactoryClearfy213_PageBase {
11
 
12
  }
7
  * @version 1.0
8
  */
9
 
10
+ class WCL_Page extends Wbcr_FactoryClearfy214_PageBase {
11
 
12
  }
admin/pages/class-pages-advanced.php CHANGED
@@ -17,7 +17,7 @@
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
- * @see FactoryPages421_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
+ * @see FactoryPages422_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
admin/pages/class-pages-clearfy-settings.php CHANGED
@@ -19,7 +19,7 @@ class WCL_ClearfySettingsPage extends WCL_Page {
19
  * Mainly used to navigate between pages.
20
  *
21
  * @since 1.0.0
22
- * @see FactoryPages421_AdminPage
23
  *
24
  * @var string
25
  */
@@ -58,7 +58,7 @@ class WCL_ClearfySettingsPage extends WCL_Page {
58
  *
59
  * @since 1.0.0
60
  * @return void
61
- * @see FactoryPages421_AdminPage
62
  *
63
  */
64
  public function assets( $scripts, $styles ) {
19
  * Mainly used to navigate between pages.
20
  *
21
  * @since 1.0.0
22
+ * @see FactoryPages422_AdminPage
23
  *
24
  * @var string
25
  */
58
  *
59
  * @since 1.0.0
60
  * @return void
61
+ * @see FactoryPages422_AdminPage
62
  *
63
  */
64
  public function assets( $scripts, $styles ) {
admin/pages/class-pages-components.php CHANGED
@@ -21,7 +21,7 @@ class WCL_ComponentsPage extends WCL_Page {
21
  * Mainly used to navigate between pages.
22
  *
23
  * @since 1.0.0
24
- * @see FactoryPages421_AdminPage
25
  *
26
  * @var string
27
  */
@@ -54,7 +54,7 @@ class WCL_ComponentsPage extends WCL_Page {
54
  *
55
  * @since 1.0.0
56
  * @return void
57
- * @see FactoryPages421_AdminPage
58
  *
59
  */
60
  public function assets( $scripts, $styles ) {
@@ -65,8 +65,8 @@ class WCL_ComponentsPage extends WCL_Page {
65
  /**
66
  * @since 1.4.0
67
  *
68
- * @param Wbcr_Factory421_StyleList $styles
69
- * @param Wbcr_Factory421_ScriptList $scripts
70
  */
71
  do_action( 'wbcr/clearfy/components/page_assets', $scripts, $styles );
72
  }
@@ -75,10 +75,10 @@ class WCL_ComponentsPage extends WCL_Page {
75
  * We register notifications for some actions
76
  *
77
  * @param $notices
78
- * @param Wbcr_Factory421_Plugin $plugin
79
  *
80
  * @return array
81
- * @see libs\factory\pages\themplates\FactoryPages421_ImpressiveThemplate
82
  */
83
  public function getActionNotices( $notices ) {
84
  $notices[] = [
@@ -154,7 +154,7 @@ class WCL_ComponentsPage extends WCL_Page {
154
  $response = [];
155
 
156
  $response = array_merge( $response, [
157
- /*[
158
  'name' => 'hide_my_wp',
159
  'title' => __( 'Hide my wp', 'clearfy' ),
160
  'type' => 'internal',
@@ -162,8 +162,9 @@ class WCL_ComponentsPage extends WCL_Page {
162
  'url' => 'http://clearfy.pro/hide-my-wp/',
163
  'icon' => '//s3-us-west-2.amazonaws.com/freemius/plugins/2318/icons/db36219969de82e3d07042cc03eb53b0.png',
164
  'description' => __( 'You can protect your WP by preventing the hacker from knowing which CMS, plugins, themes you use. It disables identification of your CMS.', 'clearfy' )
165
- ],*/ [
166
- 'name' => 'seo_friendly_images_premium',
 
167
  'title' => __( 'Seo friendly images', 'clearfy' ),
168
  'type' => 'internal',
169
  'build' => 'premium',
@@ -245,15 +246,6 @@ class WCL_ComponentsPage extends WCL_Page {
245
  'icon' => $default_image,
246
  'description' => __( 'Disable unused widgets such as tag cloud, links, calendar etc.', 'clearfy' )
247
  ],
248
- [
249
- 'name' => 'assets_manager',
250
- 'title' => __( 'Asset manager', 'clearfy' ),
251
- 'url' => '#',
252
- 'type' => 'internal',
253
- 'build' => 'freemium',
254
- 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png',
255
- 'description' => __( 'Selectively disable unused scripts and styles on the pages of your website.', 'clearfy' )
256
- ],
257
  [
258
  'name' => 'disable_notices',
259
  'title' => __( 'Disable admin notices', 'clearfy' ),
@@ -283,6 +275,29 @@ class WCL_ComponentsPage extends WCL_Page {
283
  ]
284
  ] );
285
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  $response[] = [
287
  'name' => 'cyrlitera',
288
  'title' => __( 'Transliteration of Cyrillic alphabet', 'clearfy' ),
21
  * Mainly used to navigate between pages.
22
  *
23
  * @since 1.0.0
24
+ * @see FactoryPages422_AdminPage
25
  *
26
  * @var string
27
  */
54
  *
55
  * @since 1.0.0
56
  * @return void
57
+ * @see FactoryPages422_AdminPage
58
  *
59
  */
60
  public function assets( $scripts, $styles ) {
65
  /**
66
  * @since 1.4.0
67
  *
68
+ * @param Wbcr_Factory422_StyleList $styles
69
+ * @param Wbcr_Factory422_ScriptList $scripts
70
  */
71
  do_action( 'wbcr/clearfy/components/page_assets', $scripts, $styles );
72
  }
75
  * We register notifications for some actions
76
  *
77
  * @param $notices
78
+ * @param Wbcr_Factory422_Plugin $plugin
79
  *
80
  * @return array
81
+ * @see libs\factory\pages\themplates\FactoryPages422_ImpressiveThemplate
82
  */
83
  public function getActionNotices( $notices ) {
84
  $notices[] = [
154
  $response = [];
155
 
156
  $response = array_merge( $response, [
157
+ [
158
  'name' => 'hide_my_wp',
159
  'title' => __( 'Hide my wp', 'clearfy' ),
160
  'type' => 'internal',
162
  'url' => 'http://clearfy.pro/hide-my-wp/',
163
  'icon' => '//s3-us-west-2.amazonaws.com/freemius/plugins/2318/icons/db36219969de82e3d07042cc03eb53b0.png',
164
  'description' => __( 'You can protect your WP by preventing the hacker from knowing which CMS, plugins, themes you use. It disables identification of your CMS.', 'clearfy' )
165
+ ],
166
+ [
167
+ 'name' => 'seo_friendly_images',
168
  'title' => __( 'Seo friendly images', 'clearfy' ),
169
  'type' => 'internal',
170
  'build' => 'premium',
246
  'icon' => $default_image,
247
  'description' => __( 'Disable unused widgets such as tag cloud, links, calendar etc.', 'clearfy' )
248
  ],
 
 
 
 
 
 
 
 
 
249
  [
250
  'name' => 'disable_notices',
251
  'title' => __( 'Disable admin notices', 'clearfy' ),
275
  ]
276
  ] );
277
 
278
+ if ( ! is_plugin_active( 'gonzales/gonzales.php' ) ) {
279
+ array_unshift( $response, [
280
+ 'name' => 'assets_manager',
281
+ 'title' => __( 'Asset manager', 'clearfy' ),
282
+ 'url' => '#',
283
+ 'type' => 'internal',
284
+ 'build' => 'freemium',
285
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png',
286
+ 'description' => __( 'Selectively disable unused scripts and styles on the pages of your website.', 'clearfy' )
287
+ ] );
288
+ } else {
289
+ array_unshift( $response, [
290
+ 'name' => 'gonzales',
291
+ 'title' => __( 'Asset manager', 'clearfy' ),
292
+ 'url' => 'https://wordpress.org/plugins/robin-image-optimizer/',
293
+ 'type' => 'wordpress',
294
+ 'build' => 'freemium',
295
+ 'base_path' => 'gonzales/gonzales.php',
296
+ 'icon' => WCL_PLUGIN_URL . '/admin/assets/img/asm-icon-128x128.png',
297
+ 'description' => __( 'Selectively disable unused scripts and styles on the pages of your website.', 'clearfy' )
298
+ ] );
299
+ }
300
+
301
  $response[] = [
302
  'name' => 'cyrlitera',
303
  'title' => __( 'Transliteration of Cyrillic alphabet', 'clearfy' ),
admin/pages/class-pages-defence.php CHANGED
@@ -17,7 +17,7 @@ class WCL_DefencePage extends WCL_Page {
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
- * @see FactoryPages421_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
@@ -132,7 +132,7 @@ class WCL_DefencePage extends WCL_Page {
132
  //'cssClass' => 'postbox'
133
  );
134
 
135
- return wbcr_factory_421_apply_filters_deprecated( 'wbcr_clr_defence_form_options', array(
136
  $form_options,
137
  $this
138
  ), '1.3.1', 'wbcr_clearfy_defence_form_options' );
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
+ * @see FactoryPages422_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
132
  //'cssClass' => 'postbox'
133
  );
134
 
135
+ return wbcr_factory_422_apply_filters_deprecated( 'wbcr_clr_defence_form_options', array(
136
  $form_options,
137
  $this
138
  ), '1.3.1', 'wbcr_clearfy_defence_form_options' );
admin/pages/class-pages-hide-login-page.php CHANGED
@@ -17,7 +17,7 @@
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
- * @see FactoryPages421_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
@@ -78,7 +78,7 @@
78
  ?>
79
  <script>
80
  jQuery(document).ready(function($) {
81
- $.wbcr_factory_clearfy_213.hooks.add('clearfy/components/updated', function(button, component_name) {
82
  if( component_name.plugin_action == 'install' ) {
83
  button.removeClass('wbcr-factory-purchase-premium');
84
  button.addClass('wbcr-factory-activate-premium');
@@ -91,7 +91,7 @@
91
  });
92
  });
93
  </script>
94
- <div class="wbcr-factory-clearfy-213-multisite-suggetion">
95
  <div class="wbcr-factory-inner-contanier">
96
  <h3><?php _e('Install Hide login page component', 'clearfy') ?></h3>
97
 
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
+ * @see FactoryPages422_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
78
  ?>
79
  <script>
80
  jQuery(document).ready(function($) {
81
+ $.wbcr_factory_clearfy_214.hooks.add('clearfy/components/updated', function(button, component_name) {
82
  if( component_name.plugin_action == 'install' ) {
83
  button.removeClass('wbcr-factory-purchase-premium');
84
  button.addClass('wbcr-factory-activate-premium');
91
  });
92
  });
93
  </script>
94
+ <div class="wbcr-factory-clearfy-214-multisite-suggetion">
95
  <div class="wbcr-factory-inner-contanier">
96
  <h3><?php _e('Install Hide login page component', 'clearfy') ?></h3>
97
 
admin/pages/class-pages-image-optimization.php CHANGED
@@ -19,7 +19,7 @@ class WCL_ImageOptimizationPage extends WCL_Page {
19
  * Mainly used to navigate between pages.
20
  *
21
  * @since 1.0.0
22
- * @see FactoryPages421_AdminPage
23
  *
24
  * @var string
25
  */
@@ -79,7 +79,7 @@ class WCL_ImageOptimizationPage extends WCL_Page {
79
  ?>
80
  <script>
81
  jQuery(document).ready(function($) {
82
- $.wbcr_factory_clearfy_213.hooks.add('clearfy/components/updated', function(button, component_name) {
83
  if( component_name.plugin_action == 'install' ) {
84
  button.removeClass('wbcr-factory-purchase-premium');
85
  button.addClass('wbcr-factory-activate-premium');
@@ -92,7 +92,7 @@ class WCL_ImageOptimizationPage extends WCL_Page {
92
  });
93
  });
94
  </script>
95
- <div class="wbcr-factory-clearfy-213-multisite-suggetion">
96
  <div class="wbcr-factory-inner-contanier">
97
  <h3><?php _e( 'Install Robin Image Optimizer component', 'clearfy' ) ?></h3>
98
  <p><?php _e( 'To start optimizing images, you need to install the additional component Robin image optimizer!', 'clearfy' ) ?></p>
19
  * Mainly used to navigate between pages.
20
  *
21
  * @since 1.0.0
22
+ * @see FactoryPages422_AdminPage
23
  *
24
  * @var string
25
  */
79
  ?>
80
  <script>
81
  jQuery(document).ready(function($) {
82
+ $.wbcr_factory_clearfy_214.hooks.add('clearfy/components/updated', function(button, component_name) {
83
  if( component_name.plugin_action == 'install' ) {
84
  button.removeClass('wbcr-factory-purchase-premium');
85
  button.addClass('wbcr-factory-activate-premium');
92
  });
93
  });
94
  </script>
95
+ <div class="wbcr-factory-clearfy-214-multisite-suggetion">
96
  <div class="wbcr-factory-inner-contanier">
97
  <h3><?php _e( 'Install Robin Image Optimizer component', 'clearfy' ) ?></h3>
98
  <p><?php _e( 'To start optimizing images, you need to install the additional component Robin image optimizer!', 'clearfy' ) ?></p>
admin/pages/class-pages-license.php CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  *
14
  * @copyright (c) 2018 Webraftic Ltd
15
  */
16
- class WCL_LicensePage extends Wbcr_FactoryClearfy213_LicensePage {
17
 
18
  /**
19
  * {@inheritdoc}
@@ -38,9 +38,9 @@ class WCL_LicensePage extends Wbcr_FactoryClearfy213_LicensePage {
38
  *
39
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
40
  *
41
- * @param \Wbcr_Factory421_Plugin $plugin
42
  */
43
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
44
  $this->menu_title = __( 'License', 'robin-image-optimizer' );
45
  $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
46
  $this->plan_name = __( 'Clearfy Business', 'robin-image-optimizer' );
13
  *
14
  * @copyright (c) 2018 Webraftic Ltd
15
  */
16
+ class WCL_LicensePage extends Wbcr_FactoryClearfy214_LicensePage {
17
 
18
  /**
19
  * {@inheritdoc}
38
  *
39
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
40
  *
41
+ * @param \Wbcr_Factory422_Plugin $plugin
42
  */
43
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
44
  $this->menu_title = __( 'License', 'robin-image-optimizer' );
45
  $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
46
  $this->plan_name = __( 'Clearfy Business', 'robin-image-optimizer' );
admin/pages/class-pages-performance-google.php CHANGED
@@ -16,7 +16,7 @@
16
  * The id of the page in the admin menu.
17
  *
18
  * Mainly used to navigate between pages.
19
- * @see FactoryPages421_AdminPage
20
  *
21
  * @since 1.0.0
22
  * @var string
16
  * The id of the page in the admin menu.
17
  *
18
  * Mainly used to navigate between pages.
19
+ * @see FactoryPages422_AdminPage
20
  *
21
  * @since 1.0.0
22
  * @var string
admin/pages/class-pages-quick-start.php CHANGED
@@ -17,7 +17,7 @@
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
- * @see FactoryPages421_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
@@ -79,7 +79,7 @@
79
  /**
80
  * Requests assets (js and css) for the page.
81
  *
82
- * @see FactoryPages421_AdminPage
83
  *
84
  * @since 1.0.0
85
  * @return void
17
  * The id of the page in the admin menu.
18
  *
19
  * Mainly used to navigate between pages.
20
+ * @see FactoryPages422_AdminPage
21
  *
22
  * @since 1.0.0
23
  * @var string
79
  /**
80
  * Requests assets (js and css) for the page.
81
  *
82
+ * @see FactoryPages422_AdminPage
83
  *
84
  * @since 1.0.0
85
  * @return void
admin/pages/class-pages-seo-double-pages.php CHANGED
@@ -16,7 +16,7 @@
16
  * The id of the page in the admin menu.
17
  *
18
  * Mainly used to navigate between pages.
19
- * @see FactoryPages421_AdminPage
20
  *
21
  * @since 1.0.0
22
  * @var string
16
  * The id of the page in the admin menu.
17
  *
18
  * Mainly used to navigate between pages.
19
+ * @see FactoryPages422_AdminPage
20
  *
21
  * @since 1.0.0
22
  * @var string
admin/pages/class-pages-seo.php CHANGED
@@ -16,7 +16,7 @@
16
  * The id of the page in the admin menu.
17
  *
18
  * Mainly used to navigate between pages.
19
- * @see FactoryPages421_AdminPage
20
  *
21
  * @since 1.0.0
22
  * @var string
16
  * The id of the page in the admin menu.
17
  *
18
  * Mainly used to navigate between pages.
19
+ * @see FactoryPages422_AdminPage
20
  *
21
  * @since 1.0.0
22
  * @var string
admin/pages/class-pages-widgets.php CHANGED
@@ -16,7 +16,7 @@
16
  * The id of the page in the admin menu.
17
  *
18
  * Mainly used to navigate between pages.
19
- * @see FactoryPages421_AdminPage
20
  *
21
  * @since 1.0.0
22
  * @var string
16
  * The id of the page in the admin menu.
17
  *
18
  * Mainly used to navigate between pages.
19
+ * @see FactoryPages422_AdminPage
20
  *
21
  * @since 1.0.0
22
  * @var string
clearfy.php CHANGED
@@ -4,11 +4,11 @@
4
  * Plugin URI: https://wordpress.org/plugins/clearfy/
5
  * Description: Disables unused Wordpress features, improves performance and increases SEO rankings, using Clearfy, which makes WordPress very easy.
6
  * Author: Webcraftic <wordpress.webraftic@gmail.com>
7
- * Version: 1.6.0
8
  * Text Domain: clearfy
9
  * Domain Path: /languages/
10
  * Author URI: http://clearfy.pro
11
- * Framework Version: FACTORY_421_VERSION
12
  */
13
 
14
  // Exit if accessed directly
@@ -53,7 +53,7 @@ $plugin_info = array(
53
  'slug' => 'clearfy_package',
54
  'plugin_id' => '2315',
55
  'public_key' => 'pk_70e226af07d37d2b9a69720e0952c',
56
- 'price' => 19,
57
  'has_updates' => true,
58
  'updates_settings' => array(
59
  'maybe_rollback' => true,
@@ -71,12 +71,12 @@ $plugin_info = array(
71
  ),
72
  // FRAMEWORK MODULES
73
  'load_factory_modules' => array(
74
- array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
75
- array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
76
- array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
77
- array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
78
- array( 'libs/factory/freemius', 'factory_freemius_109', 'all' ),
79
- array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
80
  ),
81
  'load_plugin_components' => array(
82
  'disable_notices' => array(
@@ -116,7 +116,7 @@ $plugin_info = array(
116
 
117
 
118
 
119
- $clearfy_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $plugin_info, array(
120
  'plugin_already_activate' => defined( 'WCL_PLUGIN_ACTIVE' ),
121
  'required_php_version' => '5.4',
122
  'required_wp_version' => '4.2.0',
@@ -148,7 +148,7 @@ define( 'WBCR_CLEARFY_PLUGIN_ACTIVE', true );
148
 
149
  // Plugin version
150
  define( 'WCL_PLUGIN_VERSION', $clearfy_compatibility->get_plugin_version() );
151
- define( 'WCL_FRAMEWORK_VER', 'FACTORY_421_VERSION' );
152
 
153
  define( 'WCL_PLUGIN_DIR', dirname( __FILE__ ) );
154
  define( 'WCL_PLUGIN_BASE', plugin_basename( __FILE__ ) );
@@ -185,4 +185,4 @@ try {
185
  add_action( 'admin_notices', $clearfy_plugin_error_func );
186
  add_action( 'network_admin_notices', $clearfy_plugin_error_func );
187
  }
188
- // @formatter:on
4
  * Plugin URI: https://wordpress.org/plugins/clearfy/
5
  * Description: Disables unused Wordpress features, improves performance and increases SEO rankings, using Clearfy, which makes WordPress very easy.
6
  * Author: Webcraftic <wordpress.webraftic@gmail.com>
7
+ * Version: 1.6.1
8
  * Text Domain: clearfy
9
  * Domain Path: /languages/
10
  * Author URI: http://clearfy.pro
11
+ * Framework Version: FACTORY_422_VERSION
12
  */
13
 
14
  // Exit if accessed directly
53
  'slug' => 'clearfy_package',
54
  'plugin_id' => '2315',
55
  'public_key' => 'pk_70e226af07d37d2b9a69720e0952c',
56
+ 'price' => 35,
57
  'has_updates' => true,
58
  'updates_settings' => array(
59
  'maybe_rollback' => true,
71
  ),
72
  // FRAMEWORK MODULES
73
  'load_factory_modules' => array(
74
+ array( 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ),
75
+ array( 'libs/factory/forms', 'factory_forms_420', 'admin' ),
76
+ array( 'libs/factory/pages', 'factory_pages_422', 'admin' ),
77
+ array( 'libs/factory/clearfy', 'factory_clearfy_214', 'all' ),
78
+ array( 'libs/factory/freemius', 'factory_freemius_110', 'all' ),
79
+ array( 'libs/factory/adverts', 'factory_adverts_104', 'admin')
80
  ),
81
  'load_plugin_components' => array(
82
  'disable_notices' => array(
116
 
117
 
118
 
119
+ $clearfy_compatibility = new Wbcr_Factory422_Requirements( __FILE__, array_merge( $plugin_info, array(
120
  'plugin_already_activate' => defined( 'WCL_PLUGIN_ACTIVE' ),
121
  'required_php_version' => '5.4',
122
  'required_wp_version' => '4.2.0',
148
 
149
  // Plugin version
150
  define( 'WCL_PLUGIN_VERSION', $clearfy_compatibility->get_plugin_version() );
151
+ define( 'WCL_FRAMEWORK_VER', 'FACTORY_422_VERSION' );
152
 
153
  define( 'WCL_PLUGIN_DIR', dirname( __FILE__ ) );
154
  define( 'WCL_PLUGIN_BASE', plugin_basename( __FILE__ ) );
185
  add_action( 'admin_notices', $clearfy_plugin_error_func );
186
  add_action( 'network_admin_notices', $clearfy_plugin_error_func );
187
  }
188
+ // @formatter:on
components/assets-manager/admin/activation.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
  * @copyright (c) 09.03.2018, Webcraftic
8
- * @see Wbcr_Factory421_Activator
9
  * @version 1.0
10
  */
11
 
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- class WGNZ_Activation extends Wbcr_Factory421_Activator {
18
 
19
  /**
20
  * Runs activation actions.
5
  *
6
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
  * @copyright (c) 09.03.2018, Webcraftic
8
+ * @see Wbcr_Factory422_Activator
9
  * @version 1.0
10
  */
11
 
14
  exit;
15
  }
16
 
17
+ class WGNZ_Activation extends Wbcr_Factory422_Activator {
18
 
19
  /**
20
  * Runs activation actions.
components/assets-manager/admin/ajax/save-settings.php CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  }
14
 
15
  /**
16
- * Ajax действие для сохранения настроек менеджера скриптов
17
  *
18
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
19
  * @since 2.0.0
@@ -21,19 +21,134 @@ if ( ! defined( 'ABSPATH' ) ) {
21
  function wam_save_settings_action() {
22
  check_ajax_referer( 'wam_save_settigns' );
23
 
24
- if ( ! WCL_Plugin::app()->currentUserCan() ) {
25
  wp_send_json_error( [
26
  'error_message_title' => __( 'Save settings failed!', 'gonzales' ),
27
  'error_message_content' => __( 'You don\'t have enough capability to edit this information.', 'gonzales' )
28
  ] );
29
  }
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  $save_message_title = __( 'Settings saved successfully!', 'clearfy' );
32
  $save_message_content = __( 'If you use test mode, do not forget to disable it. We also recommend that you flush the cache if you use caching plugins.', 'clearfy' );
33
- $raw_updated_settings = WGZ_Plugin::app()->request->post( 'settings' );
 
34
 
35
  if ( ! empty( $raw_updated_settings ) ) {
36
- $settings = WGZ_Plugin::app()->getOption( 'assets_states', [] );
 
 
 
 
 
 
37
 
38
  if ( ! defined( 'WGZP_PLUGIN_ACTIVE' ) || ( is_array( $settings ) && ! isset( $settings['save_mode'] ) ) ) {
39
  $settings['save_mode'] = false;
@@ -67,15 +182,28 @@ function wam_save_settings_action() {
67
  $settings['misc'] = $raw_updated_settings['misc'];
68
  }
69
 
70
- $settings = apply_filters( 'wam/before_save_settings', $settings, $raw_updated_settings );
71
-
72
- WGZ_Plugin::app()->updateOption( 'assets_states', $settings );
 
 
 
 
 
 
 
 
 
 
 
 
 
73
 
74
  // If mu plugin does not exist, install it.
75
  wbcr_gnz_deploy_mu_plugin();
76
 
77
  // Flush cache for all cache plugins
78
- WbcrFactoryClearfy213_Helpers::flushPageCache();
79
  }
80
 
81
  wp_send_json_success( [
13
  }
14
 
15
  /**
16
+ * Ajax action for save plugin settings.
17
  *
18
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
19
  * @since 2.0.0
21
  function wam_save_settings_action() {
22
  check_ajax_referer( 'wam_save_settigns' );
23
 
24
+ if ( ! current_user_can( 'manage_options' ) ) {
25
  wp_send_json_error( [
26
  'error_message_title' => __( 'Save settings failed!', 'gonzales' ),
27
  'error_message_content' => __( 'You don\'t have enough capability to edit this information.', 'gonzales' )
28
  ] );
29
  }
30
 
31
+ /*$scrape_key = md5( rand() );
32
+ $transient = 'scrape_key_' . $scrape_key;
33
+ $scrape_nonce = strval( rand() );
34
+ set_transient( $transient, $scrape_nonce, 60 ); // It shouldn't take more than 60 seconds to make the two loopback requests.
35
+
36
+ $cookies = wp_unslash( $_COOKIE );
37
+ $scrape_params = array(
38
+ 'wp_scrape_key' => $scrape_key,
39
+ 'wp_scrape_nonce' => $scrape_nonce,
40
+ );
41
+ $headers = array(
42
+ 'Cache-Control' => 'no-cache',
43
+ );
44
+
45
+ /** This filter is documented in wp-includes/class-wp-http-streams.php */ ///*$sslverify = apply_filters( 'https_local_ssl_verify', false );
46
+ //
47
+ //// Include Basic auth in loopback requests.
48
+ //if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] ) ) {
49
+ // $headers['Authorization'] = 'Basic ' . base64_encode( wp_unslash( $_SERVER['PHP_AUTH_USER'] ) . ':' . wp_unslash( $_SERVER['PHP_AUTH_PW'] ) );
50
+ //}
51
+ //
52
+ //// Make sure PHP process doesn't die before loopback requests complete.
53
+ //set_time_limit( 300 );
54
+ //
55
+ //// Time to wait for loopback requests to finish.
56
+ //$timeout = 100;
57
+ //
58
+ //$needle_start = "###### wp_scraping_result_start:$scrape_key ######";
59
+ //$needle_end = "###### wp_scraping_result_end:$scrape_key ######";
60
+ //
61
+ //// Attempt loopback request to editor to see if user just whitescreened themselves.
62
+ //if ( $plugin ) {
63
+ // $url = add_query_arg( compact( 'plugin', 'file' ), admin_url( 'plugin-editor.php' ) );
64
+ //} elseif ( isset( $stylesheet ) ) {
65
+ // $url = add_query_arg(
66
+ // array(
67
+ // 'theme' => $stylesheet,
68
+ // 'file' => $file,
69
+ // ),
70
+ // admin_url( 'theme-editor.php' )
71
+ // );
72
+ //} else {
73
+ // $url = admin_url();
74
+ //}
75
+ //$url = add_query_arg( $scrape_params, $url );
76
+ //$r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout', 'sslverify' ) );
77
+ //$body = wp_remote_retrieve_body( $r );
78
+ //$scrape_result_position = strpos( $body, $needle_start );
79
+ //
80
+ //$loopback_request_failure = array(
81
+ // 'code' => 'loopback_request_failed',
82
+ // 'message' => __( 'Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.' ),
83
+ //);
84
+ //$json_parse_failure = array(
85
+ // 'code' => 'json_parse_error',
86
+ //);
87
+ //
88
+ //$result = null;
89
+ //if ( false === $scrape_result_position ) {
90
+ // $result = $loopback_request_failure;
91
+ //} else {
92
+ // $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
93
+ // $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
94
+ // $result = json_decode( trim( $error_output ), true );
95
+ // if ( empty( $result ) ) {
96
+ // $result = $json_parse_failure;
97
+ // }
98
+ //}
99
+ //
100
+ //// Try making request to homepage as well to see if visitors have been whitescreened.
101
+ //if ( true === $result ) {
102
+ // $url = home_url( '/' );
103
+ // $url = add_query_arg( $scrape_params, $url );
104
+ // $r = wp_remote_get( $url, compact( 'cookies', 'headers', 'timeout' ) );
105
+ // $body = wp_remote_retrieve_body( $r );
106
+ // $scrape_result_position = strpos( $body, $needle_start );
107
+ //
108
+ // if ( false === $scrape_result_position ) {
109
+ // $result = $loopback_request_failure;
110
+ // } else {
111
+ // $error_output = substr( $body, $scrape_result_position + strlen( $needle_start ) );
112
+ // $error_output = substr( $error_output, 0, strpos( $error_output, $needle_end ) );
113
+ // $result = json_decode( trim( $error_output ), true );
114
+ // if ( empty( $result ) ) {
115
+ // $result = $json_parse_failure;
116
+ // }
117
+ // }
118
+ //}
119
+ //
120
+ //delete_transient( $transient );
121
+ //
122
+ //if ( true !== $result ) {
123
+ //
124
+ // // Roll-back file change.
125
+ // file_put_contents( $real_file, $previous_content );
126
+ // if ( function_exists( 'opcache_invalidate' ) ) {
127
+ // opcache_invalidate( $real_file, true );
128
+ // }
129
+ //
130
+ // if ( ! isset( $result['message'] ) ) {
131
+ // $message = __( 'Something went wrong.' );
132
+ // } else {
133
+ // $message = $result['message'];
134
+ // unset( $result['message'] );
135
+ // }
136
+ // return new WP_Error( 'php_error', $message, $result );
137
+ //}*/
138
+
139
  $save_message_title = __( 'Settings saved successfully!', 'clearfy' );
140
  $save_message_content = __( 'If you use test mode, do not forget to disable it. We also recommend that you flush the cache if you use caching plugins.', 'clearfy' );
141
+ $scope = WGZ_Plugin::app()->request->post( 'scope', 'frontend' );
142
+ $raw_updated_settings = WGZ_Plugin::app()->request->post( 'settings', [], true );
143
 
144
  if ( ! empty( $raw_updated_settings ) ) {
145
+ if ( 'networkadmin' === $scope ) {
146
+ $settings = WGZ_Plugin::app()->getNetworkOption( 'backend_assets_states', [] );
147
+ } else if ( 'admin' === $scope ) {
148
+ $settings = WGZ_Plugin::app()->getOption( 'backend_assets_states', [] );
149
+ } else {
150
+ $settings = WGZ_Plugin::app()->getOption( 'assets_states', [] );
151
+ }
152
 
153
  if ( ! defined( 'WGZP_PLUGIN_ACTIVE' ) || ( is_array( $settings ) && ! isset( $settings['save_mode'] ) ) ) {
154
  $settings['save_mode'] = false;
182
  $settings['misc'] = $raw_updated_settings['misc'];
183
  }
184
 
185
+ /**
186
+ * Filter run before save settings.
187
+ *
188
+ * @param array $settings
189
+ * @param array $raw_updated_settings
190
+ * @param string $scope
191
+ */
192
+ $settings = apply_filters( 'wam/before_save_settings', $settings, $raw_updated_settings, $scope );
193
+
194
+ if ( 'networkadmin' === $scope ) {
195
+ WGZ_Plugin::app()->updateNetworkOption( 'backend_assets_states', $settings );
196
+ } else if ( 'admin' === $scope ) {
197
+ WGZ_Plugin::app()->updateOption( 'backend_assets_states', $settings );
198
+ } else {
199
+ WGZ_Plugin::app()->updateOption( 'assets_states', $settings );
200
+ }
201
 
202
  // If mu plugin does not exist, install it.
203
  wbcr_gnz_deploy_mu_plugin();
204
 
205
  // Flush cache for all cache plugins
206
+ WbcrFactoryClearfy214_Helpers::flushPageCache();
207
  }
208
 
209
  wp_send_json_success( [
components/assets-manager/admin/boot.php CHANGED
@@ -12,6 +12,27 @@ if ( ! defined( 'ABSPATH' ) ) {
12
  exit;
13
  }
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
16
 
17
  /**
@@ -146,10 +167,12 @@ if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
146
  *
147
  * @param array $widgets
148
  * @param string $position
149
- * @param Wbcr_Factory421_Plugin $plugin
150
  */
151
  add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
152
  if ( $plugin->getPluginName() == WGZ_Plugin::app()->getPluginName() ) {
 
 
153
  if ( $position == 'right' ) {
154
  unset( $widgets['donate_widget'] );
155
  unset( $widgets['rating_widget'] );
@@ -167,7 +190,7 @@ if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
167
  * @param string $page_id
168
  * @param string $plugin
169
  */
170
- add_filter( 'wbcr/clearfy/page_bussines_suggetion_features', function ( $features, $plugin_name, $page_id ) {
171
 
172
  if ( ! empty( $plugin_name ) && ( $plugin_name == WGZ_Plugin::app()->getPluginName() ) ) {
173
  $upgrade_feature = [];
@@ -185,7 +208,7 @@ if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
185
 
186
  function wbcr_gnz_set_plugin_meta( $links, $file ) {
187
  if ( $file == WGZ_PLUGIN_BASE ) {
188
- $url = WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'assets-manager', 'plugin_row' );
189
  $links[] = '<a href="' . $url . '" style="color: #FF5722;font-weight: bold;" target="_blank">' . __( 'Get premium', 'gonzales' ) . '</a>';
190
  }
191
 
@@ -202,5 +225,5 @@ if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
202
  return $page_url;
203
  }
204
 
205
- add_filter( 'wbcr_factory_pages_421_imppage_rating_widget_url', 'wbcr_gnz_rating_widget_url', 10, 2 );
206
  }
12
  exit;
13
  }
14
 
15
+ /**
16
+ * Печатает ошибки совместимости с похожими плагинами
17
+ */
18
+ add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) {
19
+ if ( $plugin_name != WGZ_Plugin::app()->getPluginName() ) {
20
+ return $notices;
21
+ }
22
+
23
+ $notice_text = __( 'We released great plugin upgrade! But, some plugin settings can\'t be migrated. Please check the disabled assets in the plugin, if they are configured incorrectly, you will need to fix the settings. Make sure the plugin works for you.', 'gonzales' );
24
+
25
+ $notices[] = [
26
+ 'id' => 'am-great-release-warning',
27
+ 'type' => 'warning',
28
+ 'dismissible' => true,
29
+ 'dismiss_expires' => 0,
30
+ 'text' => '<p><b>' . __( 'Assets manager', 'gonzales' ) . ': </b>' . $notice_text . '</p>'
31
+ ];
32
+
33
+ return $notices;
34
+ }, 10, 2 );
35
+
36
  if ( defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
37
 
38
  /**
167
  *
168
  * @param array $widgets
169
  * @param string $position
170
+ * @param Wbcr_Factory422_Plugin $plugin
171
  */
172
  add_filter( 'wbcr/factory/pages/impressive/widgets', function ( $widgets, $position, $plugin ) {
173
  if ( $plugin->getPluginName() == WGZ_Plugin::app()->getPluginName() ) {
174
+ unset( $widgets['business_suggetion'] );
175
+
176
  if ( $position == 'right' ) {
177
  unset( $widgets['donate_widget'] );
178
  unset( $widgets['rating_widget'] );
190
  * @param string $page_id
191
  * @param string $plugin
192
  */
193
+ add_filter( 'wbcr/clearfy/pages/suggetion_features', function ( $features, $plugin_name, $page_id ) {
194
 
195
  if ( ! empty( $plugin_name ) && ( $plugin_name == WGZ_Plugin::app()->getPluginName() ) ) {
196
  $upgrade_feature = [];
208
 
209
  function wbcr_gnz_set_plugin_meta( $links, $file ) {
210
  if ( $file == WGZ_PLUGIN_BASE ) {
211
+ $url = WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'assets-manager', 'plugin_row' );
212
  $links[] = '<a href="' . $url . '" style="color: #FF5722;font-weight: bold;" target="_blank">' . __( 'Get premium', 'gonzales' ) . '</a>';
213
  }
214
 
225
  return $page_url;
226
  }
227
 
228
+ add_filter( 'wbcr_factory_pages_422_imppage_rating_widget_url', 'wbcr_gnz_rating_widget_url', 10, 2 );
229
  }
components/assets-manager/admin/pages/class-pages-more-features.php CHANGED
@@ -17,6 +17,6 @@ if ( ! defined( 'ABSPATH' ) ) {
17
  *
18
  * @copyright (c) 2018 Webraftic Ltd
19
  */
20
- class WGZ_MoreFeaturesPage extends Wbcr_FactoryClearfy213_MoreFeaturesPage {
21
 
22
  }
17
  *
18
  * @copyright (c) 2018 Webraftic Ltd
19
  */
20
+ class WGZ_MoreFeaturesPage extends Wbcr_FactoryClearfy214_MoreFeaturesPage {
21
 
22
  }
components/assets-manager/admin/pages/class-pages-settings.php CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  *
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
- class WGZ_AssetsManagerPage extends Wbcr_FactoryClearfy213_PageBase {
20
 
21
  /**
22
  * The id of the page in the admin menu.
@@ -24,7 +24,7 @@ class WGZ_AssetsManagerPage extends Wbcr_FactoryClearfy213_PageBase {
24
  * Mainly used to navigate between pages.
25
  *
26
  * @since 1.0.0
27
- * @see FactoryPages421_AdminPage
28
  *
29
  * @var string
30
  */
@@ -48,9 +48,9 @@ class WGZ_AssetsManagerPage extends Wbcr_FactoryClearfy213_PageBase {
48
  public $available_for_multisite = true;
49
 
50
  /**
51
- * @param Wbcr_Factory421_Plugin $plugin
52
  */
53
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
54
  $this->menu_title = __( 'Assets manager', 'gonzales' );
55
 
56
  if ( ! defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
@@ -135,7 +135,7 @@ class WGZ_AssetsManagerPage extends Wbcr_FactoryClearfy213_PageBase {
135
  'hint' => __( 'Disables assets manager initialization for frontend.', 'gonzales' ),
136
  'default' => false
137
  ],
138
- /*[
139
  'type' => 'checkbox',
140
  'way' => 'buttons',
141
  'name' => 'disable_assets_manager_on_backend',
@@ -143,7 +143,7 @@ class WGZ_AssetsManagerPage extends Wbcr_FactoryClearfy213_PageBase {
143
  'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
144
  'hint' => __( 'Disables assets manager initialization for backend.', 'gonzales' ),
145
  'default' => true
146
- ]*/
147
  ]
148
  ];
149
 
16
  *
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
+ class WGZ_AssetsManagerPage extends Wbcr_FactoryClearfy214_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 FactoryPages422_AdminPage
28
  *
29
  * @var string
30
  */
48
  public $available_for_multisite = true;
49
 
50
  /**
51
+ * @param Wbcr_Factory422_Plugin $plugin
52
  */
53
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
54
  $this->menu_title = __( 'Assets manager', 'gonzales' );
55
 
56
  if ( ! defined( 'LOADING_ASSETS_MANAGER_AS_ADDON' ) ) {
135
  'hint' => __( 'Disables assets manager initialization for frontend.', 'gonzales' ),
136
  'default' => false
137
  ],
138
+ [
139
  'type' => 'checkbox',
140
  'way' => 'buttons',
141
  'name' => 'disable_assets_manager_on_backend',
143
  'layout' => [ 'hint-type' => 'icon', 'hint-icon-color' => 'grey' ],
144
  'hint' => __( 'Disables assets manager initialization for backend.', 'gonzales' ),
145
  'default' => true
146
+ ]
147
  ]
148
  ];
149
 
components/assets-manager/assets/css/assets-conditions.css CHANGED
@@ -10,6 +10,11 @@
10
  top: 0;
11
  padding: 4px;
12
  }
 
 
 
 
 
13
  #WBCR-AM .wam-cleditor .wam-cleditor__text {
14
  width: 300px;
15
  }
10
  top: 0;
11
  padding: 4px;
12
  }
13
+ #WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-taxonomy"],
14
+ #WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-post-type"],
15
+ #WBCR-AM .wam-cleditor.wam-cleditor__disable-plugin-mode .wam-cleditor__param-select option[value="location-some-page"] {
16
+ display: none;
17
+ }
18
  #WBCR-AM .wam-cleditor .wam-cleditor__text {
19
  width: 300px;
20
  }
components/assets-manager/assets/css/assets-conditions.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["assets-conditions.less"],"names":[],"mappings":";AACA,QAGE;EACE,sBAAA;;;;AAJJ,QAGE,cAGE;EACE,WAAA;EACA,kBAAA;EACA,MAAA;EACA,YAAA;;AAVN,QAGE,cAJD;EAeK,YAAA;;AAdN,QAGE,cAJD;EAmBK,4BAAA;EACA,2BAAA;EACA,yBAAA;;AApBN,QAGE,cAJD;EAyBK,aAAA;;AAxBN,QAGE,cAJD,qBAEE;EA2BG,cAAA;;AA5BN,QAGE,cAJD;EAiCK,aAAA;EACA,cAAA;EACA,sBAAA;EACA,6BAAA;EACA,2BAAA;EACA,kBAAA;;AArCN,QAGE,cAJD,oBAAA;AACD,QAGE,cAJD,oBAEO;EAuCA,qBAAA;;AAxCR,QAGE,cAJD,oBAAA;EA6CO,gBAAA;EACA,WAAA;;AA7CR,QAGE,cAJD,oBAAA;EAkDO,iBAAA;EACA,WAAA;;AAlDR,QAGE,cAJD,oBAAA;EAuDO,yBAAA;EACA,SAAA;EACA,gBAAA;EACA,eAAA;EACA,gBAAA;;AA1DR,QAGE,cAJD,oBAEC;EA8DI,kBAAA;EACA,2BAAA;;AAhEN,QAGE,cAJD,sBAAA;EAuEO,sBAAA;EACA,yBAAA;EACA,mBAAA;EACA,WAAA;EACA,YAAA;EACA,cAAA;EACA,kBAAA;EACA,kBAAA;EACA,gBAAA;;AA9ER,QAGE,cAJD,sBAAA,qBAEC;EAiFM,kBAAA;EACA,SAAS,GAAT;EACA,cAAA;EACA,WAAA;EACA,0BAAA;EACA,iBAAA;EACA,eAAA;;AAxFR,QAGE,cAJD;;;;;AACD,QAGE,cAJD,qBAAA;EA+FO,aAAA;EACA,yBAAA;EACA,SAAA;EACA,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,kBAAA;EACA,kBAAA;EACA,0BAAA;;AAzGR,QAGE,cAJD,qBAEE;EAiHG,aAAA;;AAlHN,QAGE,cAJD;EAyHK,kBAAA;;AAxHN,QAGE,cAJD,yBAAA;AACD,QAGE,cAJD,yBAEE;EA2HK,aAAA;;AA5HR,QAGE,cAJD,yBAAA;EAiIO,kBAAA;EACA,qBAAA;EACA,oBAAA;;AAlIR,QAGE,cAJD,yBAAA;EAuIO,gBAAgB,4CAAhB;EACA,kBAAA;EACA,YAAA;EACA,WAAA;EACA,qBAAA;EACA,YAAA;EACA,sBAAA;EACA,SAAA;EACA,aAAA;;AA9IR,QAGE,cAJD,yBAAA,oBAEA,MAAO;EAiJA,cAAA;EACA,kBAAA;EACA,YAAA;EACA,oCAAA;EACA,mBAAA;EACA,4BAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;;AA7JR,QAGE,cAJD,yBAAA,oBAEC;AADF,QAGE,cAJD,yBAIA,oBACE,4BAED;EA4JM,WAAA;;AAlKR,QAGE,cAJD,yBAAA;EAuKO,cAAA;EACA,yBAAA;EACA,iBAAA;EACA,0BAAA;EACA,cAAA;EACA,kBAAA;;AA3KR,QAGE,cAJD,yBAAA,4BAgLO;EACE,kBAAA;EACA,UAAA;EACA,yBAAA;EACA,kBAAA;EACA,yBAAA;;AArLT,QAIC,cAJD,yBAAC,YACK;EAyLC,aAAA;;AAGF,QAzLJ,cAJD,yBA6LO;EACA,qBAAA;EACA,mBAAA;;AA9LR,QAGE,cAJD,yBAAA;EAmMO,kBAAA;EACA,QAAA;;AAnMR,QAGE,cAJD;EA4MK,gBAAA","file":"assets-conditions.css"}
1
+ {"version":3,"sources":["assets-conditions.less"],"names":[],"mappings":";AACA,QAGE;EACE,sBAAA;;;;AAJJ,QAGE,cAGE;EACE,WAAA;EACA,kBAAA;EACA,MAAA;EACA,YAAA;;AAXL,QAIC,cAJA,kCAAD,4BAgBO,OAAM;AAhBb,QAIC,cAJA,kCAAD,4BAiBO,OAAM;AAjBb,QAIC,cAJA,kCAAD,4BAkBO,OAAM;EACJ,aAAA;;AAlBV,QAGE,cAJD;EAyBK,YAAA;;AAxBN,QAGE,cAJD;EA6BK,4BAAA;EACA,2BAAA;EACA,yBAAA;;AA9BN,QAGE,cAJD;EAmCK,aAAA;;AAlCN,QAGE,cAJD,qBAEE;EAqCG,cAAA;;AAtCN,QAGE,cAJD;EA2CK,aAAA;EACA,cAAA;EACA,sBAAA;EACA,6BAAA;EACA,2BAAA;EACA,kBAAA;;AA/CN,QAGE,cAJD,oBAAA;AACD,QAGE,cAJD,oBAEO;EAiDA,qBAAA;;AAlDR,QAGE,cAJD,oBAAA;EAuDO,gBAAA;EACA,WAAA;;AAvDR,QAGE,cAJD,oBAAA;EA4DO,iBAAA;EACA,WAAA;;AA5DR,QAGE,cAJD,oBAAA;EAiEO,yBAAA;EACA,SAAA;EACA,gBAAA;EACA,eAAA;EACA,gBAAA;;AApER,QAGE,cAJD,oBAEC;EAwEI,kBAAA;EACA,2BAAA;;AA1EN,QAGE,cAJD,sBAAA;EAiFO,sBAAA;EACA,yBAAA;EACA,mBAAA;EACA,WAAA;EACA,YAAA;EACA,cAAA;EACA,kBAAA;EACA,kBAAA;EACA,gBAAA;;AAxFR,QAGE,cAJD,sBAAA,qBAEC;EA2FM,kBAAA;EACA,SAAS,GAAT;EACA,cAAA;EACA,WAAA;EACA,0BAAA;EACA,iBAAA;EACA,eAAA;;AAlGR,QAGE,cAJD;;;;;AACD,QAGE,cAJD,qBAAA;EAyGO,aAAA;EACA,yBAAA;EACA,SAAA;EACA,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,kBAAA;EACA,kBAAA;EACA,0BAAA;;AAnHR,QAGE,cAJD,qBAEE;EA2HG,aAAA;;AA5HN,QAGE,cAJD;EAmIK,kBAAA;;AAlIN,QAGE,cAJD,yBAAA;AACD,QAGE,cAJD,yBAEE;EAqIK,aAAA;;AAtIR,QAGE,cAJD,yBAAA;EA2IO,kBAAA;EACA,qBAAA;EACA,oBAAA;;AA5IR,QAGE,cAJD,yBAAA;EAiJO,gBAAgB,4CAAhB;EACA,kBAAA;EACA,YAAA;EACA,WAAA;EACA,qBAAA;EACA,YAAA;EACA,sBAAA;EACA,SAAA;EACA,aAAA;;AAxJR,QAGE,cAJD,yBAAA,oBAEA,MAAO;EA2JA,cAAA;EACA,kBAAA;EACA,YAAA;EACA,oCAAA;EACA,mBAAA;EACA,4BAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;;AAvKR,QAGE,cAJD,yBAAA,oBAEC;AADF,QAGE,cAJD,yBAIA,oBACE,4BAED;EAsKM,WAAA;;AA5KR,QAGE,cAJD,yBAAA;EAiLO,cAAA;EACA,yBAAA;EACA,iBAAA;EACA,0BAAA;EACA,cAAA;EACA,kBAAA;;AArLR,QAGE,cAJD,yBAAA,4BA0LO;EACE,kBAAA;EACA,UAAA;EACA,yBAAA;EACA,kBAAA;EACA,yBAAA;;AA/LT,QAIC,cAJD,yBAAC,YACK;EAmMC,aAAA;;AAGF,QAnMJ,cAJD,yBAuMO;EACA,qBAAA;EACA,mBAAA;;AAxMR,QAGE,cAJD,yBAAA;EA6MO,kBAAA;EACA,QAAA;;AA7MR,QAGE,cAJD;EAsNK,gBAAA","file":"assets-conditions.css"}
components/assets-manager/assets/css/assets-conditions.less CHANGED
@@ -12,6 +12,16 @@
12
  padding: 4px;
13
  }
14
 
 
 
 
 
 
 
 
 
 
 
15
  @{prefix}__text {
16
  width: 300px;
17
  }
12
  padding: 4px;
13
  }
14
 
15
+ &@{prefix}__disable-plugin-mode {
16
+ @{prefix}__param-select {
17
+ option[value="location-taxonomy"],
18
+ option[value="location-post-type"],
19
+ option[value="location-some-page"] {
20
+ display: none;
21
+ }
22
+ }
23
+ }
24
+
25
  @{prefix}__text {
26
  width: 300px;
27
  }
components/assets-manager/assets/css/assets-manager.css CHANGED
@@ -390,9 +390,17 @@ body p {
390
  box-sizing: border-box;
391
  table-layout: fixed;
392
  border-collapse: collapse;
393
- /*td:first-child {
394
- width: 20%;
395
- }*/
 
 
 
 
 
 
 
 
396
  }
397
  #WBCR-AM .wam-table tr:nth-child(2n) > td {
398
  background: #f9f9f9;
@@ -407,22 +415,12 @@ body p {
407
  #WBCR-AM .wam-table th:not(:last-child) {
408
  border-right: 2px solid #FFF;
409
  }
410
- #WBCR-AM .wam-table td {
411
- padding: 17px 10px;
412
- vertical-align: top;
413
- border-bottom: 1px solid #ECEDED;
414
- text-align: left;
415
- box-shadow: none;
416
- }
417
  #WBCR-AM .wam-table__th-actions {
418
  width: 200px;
419
  }
420
  #WBCR-AM .wam-table__th-type {
421
  width: 100px;
422
  }
423
- #WBCR-AM .wam-table__td-handle {
424
- word-break: break-word;
425
- }
426
  #WBCR-AM .wam-table__th-version {
427
  width: 100px;
428
  }
@@ -433,6 +431,15 @@ body p {
433
  #WBCR-AM .wam-table__td-plugins-list {
434
  width: 350px;
435
  }
 
 
 
 
 
 
 
 
 
436
  #WBCR-AM .wam-table__td-plugins-list {
437
  padding: 0 !important;
438
  }
@@ -507,7 +514,7 @@ body p {
507
  #WBCR-AM .wam-float-panel {
508
  position: fixed;
509
  z-index: 50;
510
- top: 30px;
511
  right: 0;
512
  left: 0;
513
  width: 100%;
@@ -751,7 +758,7 @@ body p {
751
  }
752
  #WBCR-AM .wam-assets-type-tabs {
753
  position: fixed;
754
- top: 92px;
755
  bottom: 0;
756
  left: 0;
757
  width: 75px;
@@ -837,6 +844,7 @@ body p {
837
  list-style: none;
838
  }
839
  #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab {
 
840
  text-align: left;
841
  margin-bottom: 3px;
842
  }
@@ -861,6 +869,26 @@ body p {
861
  #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab.wam-nav-plugins__tab--active a {
862
  background: #e8e8e8;
863
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
864
  #WBCR-AM .wam-nav-plugins__tab-content {
865
  display: none;
866
  }
@@ -895,6 +923,12 @@ body p {
895
  background: #9757a5;
896
  color: #ffffff;
897
  }
 
 
 
 
 
 
898
  #WBCR-AM .wam-button {
899
  display: inline-block;
900
  vertical-align: bottom;
@@ -986,7 +1020,7 @@ body p {
986
  min-width: 1365px;
987
  position: fixed;
988
  z-index: 99999999;
989
- top: 32px;
990
  bottom: 0;
991
  left: 0;
992
  right: 0;
390
  box-sizing: border-box;
391
  table-layout: fixed;
392
  border-collapse: collapse;
393
+ }
394
+ #WBCR-AM .wam-table__handle-deps {
395
+ margin-top: 15px;
396
+ }
397
+ #WBCR-AM .wam-table__handle-deps span,
398
+ #WBCR-AM .wam-table__handle-deps a {
399
+ font-size: 11px !important;
400
+ }
401
+ #WBCR-AM .wam-table__handle-deps a {
402
+ color: red;
403
+ text-decoration: underline;
404
  }
405
  #WBCR-AM .wam-table tr:nth-child(2n) > td {
406
  background: #f9f9f9;
415
  #WBCR-AM .wam-table th:not(:last-child) {
416
  border-right: 2px solid #FFF;
417
  }
 
 
 
 
 
 
 
418
  #WBCR-AM .wam-table__th-actions {
419
  width: 200px;
420
  }
421
  #WBCR-AM .wam-table__th-type {
422
  width: 100px;
423
  }
 
 
 
424
  #WBCR-AM .wam-table__th-version {
425
  width: 100px;
426
  }
431
  #WBCR-AM .wam-table__td-plugins-list {
432
  width: 350px;
433
  }
434
+ #WBCR-AM .wam-table td {
435
+ padding: 17px 10px;
436
+ vertical-align: top;
437
+ text-align: left;
438
+ box-shadow: none;
439
+ }
440
+ #WBCR-AM .wam-table__td-handle {
441
+ word-break: break-word;
442
+ }
443
  #WBCR-AM .wam-table__td-plugins-list {
444
  padding: 0 !important;
445
  }
514
  #WBCR-AM .wam-float-panel {
515
  position: fixed;
516
  z-index: 50;
517
+ top: 0;
518
  right: 0;
519
  left: 0;
520
  width: 100%;
758
  }
759
  #WBCR-AM .wam-assets-type-tabs {
760
  position: fixed;
761
+ top: 62px;
762
  bottom: 0;
763
  left: 0;
764
  width: 75px;
844
  list-style: none;
845
  }
846
  #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab {
847
+ position: relative;
848
  text-align: left;
849
  margin-bottom: 3px;
850
  }
869
  #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab.wam-nav-plugins__tab--active a {
870
  background: #e8e8e8;
871
  }
872
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--enable::after,
873
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-plugin::after,
874
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-assets::after {
875
+ display: block;
876
+ content: '';
877
+ position: absolute;
878
+ bottom: 10px;
879
+ right: 10px;
880
+ width: 10px;
881
+ height: 10px;
882
+ background: #8bc34a;
883
+ text-align: center;
884
+ font-size: 11px;
885
+ font-weight: 600;
886
+ border-radius: 4px;
887
+ }
888
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-assets::after,
889
+ #WBCR-AM .wam-nav-plugins .wam-nav-plugins__tab-load-mode--disable-plugin::after {
890
+ background: #d47b7b;
891
+ }
892
  #WBCR-AM .wam-nav-plugins__tab-content {
893
  display: none;
894
  }
923
  background: #9757a5;
924
  color: #ffffff;
925
  }
926
+ #WBCR-AM .wam-colors--red {
927
+ color: red;
928
+ }
929
+ #WBCR-AM .wam-colors--grey {
930
+ color: grey;
931
+ }
932
  #WBCR-AM .wam-button {
933
  display: inline-block;
934
  vertical-align: bottom;
1020
  min-width: 1365px;
1021
  position: fixed;
1022
  z-index: 99999999;
1023
+ top: 0;
1024
  bottom: 0;
1025
  left: 0;
1026
  right: 0;
components/assets-manager/assets/css/assets-manager.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["assets-manager.less","reset.less","tables.less","tooltip.less","float-panel.less","tabs.less"],"names":[],"mappings":";;;;;AAMA;AAAM;EACJ,2BAAA;;AAGF;EACE,iBAAA;EACA,yCAAA;EACA,sBAAA;;AAGF;EACE,oBAAA;EACA,qBAAA;EACA,gBAAA;;AAEA;AALF,IAKK;EACD,oBAAoB,4BAApB;;AAIJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,QCpBA;ADoBA,QCpBG,EAAC;ADoBJ,QCpBa,EAAC;EACZ,8BAAA;EACA,2BAAA;EACA,sBAAA;;AAGF;ADcA,QCbA;ADaA,QCbI;ADaJ,QCbQ;ADaR,QCbY;ADaZ,QCbgB;ADahB,QCZA;ADYA,QCZG;ADYH,QCZW;ADYX,QCZc;ADYd,QCXA;ADWA,QCXI;ADWJ,QCXO;ADWP,QCXU;ADWV,QCXe;ADWf,QCVA;ADUA,QCVS;ADUT,QCVa;ADUb,QCTA,MAAK;ADSL,QCTsB,MAAK;ADS3B,QCRA;EACE,oBAAoB,4BAApB;EACA,eAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;EACA,iBAAA;;ADEF,QCCA;EACE,cAAA;EACA,gBAAA;;ADHF,QCMA;EACE,uBAAA;EACA,SAAA;EACA,iBAAA;;ADTF,QCYA;EACE,iCAAA;EACA,cAAA;;ADdF,QCiBA;EACE,6BAAA;;ADlBF,QCqBA,KAAI;EACF,mBAAA;EACA,iCAAA;;ADvBF,QC0BA;AD1BA,QC0BG;EACD,mBAAA;;AD3BF,QC8BA;AD9BA,QC8BM;AD9BN,QC8BW;EACT,iCAAA;EACA,cAAA;;ADhCF,QCmCA;EACE,cAAA;;ADpCF,QCuCA;ADvCA,QCuCK;EACH,cAAA;EACA,cAAA;EACA,kBAAA;EACA,wBAAA;;AD3CF,QC8CA;EACE,eAAA;;AD/CF,QCkDA;EACE,WAAA;;ADnDF,QCsDA;EACE,kBAAA;;ADvDF,QC0DA;AD1DA,QC2DA;AD3DA,QC4DA;AD5DA,QC6DA;AD7DA,QC8DA;EACE,oBAAA;EACA,eAAA;EACA,iBAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;;AACA,QAXF;AAWE,QAVF;AAUE,QATF;AASE,QARF;AAQE,QAPF;AAOK,QAXL,OAWM;AAAD,QAVL,MAUM;AAAD,QATL,SASM;AAAD,QARL,OAQM;AAAD,QAPL,SAOM;AAAQ,QAXd,OAWe;AAAD,QAVd,MAUe;AAAD,QATd,SASe;AAAD,QARd,OAQe;AAAD,QAPd,SAOe;EACX,qBAAA;EACA,oBAAA;EACA,wBAAA;EACA,mBAAA;;ADzEJ,QC6EA;AD7EA,QC8EA;EACE,iBAAA;;AD/EF,QCkFA;ADlFA,QCmFA;EACE,oBAAA;;ADpFF,QCuFA;ADvFA,QCwFA;ADxFA,QCyFA;ADzFA,QC0FA;EACE,0BAAA;;AD3FF,QC8FA,OAAM;AD9FN,QC+FA,gBAAe;AD/Ff,QCgGA,eAAc;ADhGd,QCiGA,gBAAe;EACb,kBAAA;EACA,UAAA;;ADnGF,QCsGA,OAAM;ADtGN,QCuGA,gBAAe;ADvGf,QCwGA,eAAc;ADxGd,QCyGA,gBAAe;EACb,8BAAA;;AD1GF,QC6GA;EACE,8BAAA;;AD9GF,QCiHA;EACE,sBAAA;EACA,cAAA;EACA,cAAA;EACA,eAAA;EACA,UAAA;EACA,mBAAA;;ADvHF,QC0HA;EACE,cAAA;;AD3HF,QC8HA;AD9HA,QC+HA;EACE,sBAAA;EACA,UAAA;;ADjIF,QCoIA,gBAAe;ADpIf,QCqIA,gBAAe;EACb,YAAA;;ADtIF,QCyIA;EACE,6BAAA;EACA,oBAAA;;AD3IF,QC8IA,gBAAe;EACb,wBAAA;;AD/IF,QCkJA;EACE,0BAAA;EACA,aAAA;;ADpJF,QCuJA;EACE,8BAAA;;ADxJF,QC2JA;EACE,sBAAA;EACA,cAAA;EACA,cAAA;EACA,eAAA;EACA,UAAA;EACA,mBAAA;;ADjKF,QCoKA;EACE,wBAAA;;ADrKF,QCwKA;EACE,cAAA;;ADzKF,QC4KA;AD5KA,QC4KiB;EACf,sBAAA;EACA,UAAA;;AD9KF,QCiLA,cAAa;ADjLb,QCiL0C,cAAa;EACrD,YAAA;;ADlLF,QCqLA;EACE,6BAAA;EACA,oBAAA;;ADvLF,QC0LA,cAAa;EACX,wBAAA;;AD3LF,QC8LA;EACE,0BAAA;EACA,aAAA;;ADhMF,QCmMA;EACE,cAAA;;ADpMF,QCuMA;EACE,kBAAA;;ADxMF,QC2MA;EACE,aAAA;;AD5MF,QC+MA;EACE,aAAA;;ADhNF,QCmNA;ADnNA,QCmNO;ADnNP,QCmNgB;ADnNhB,QCmNuB;ADnNvB,QCmN8B;ADnN9B,QCmNqC;ADnNrC,QCmNyC;ADnNzC,QCmN6C;EAC3C,SAAA;EACA,UAAA;EACA,SAAA;EACA,eAAA;EACA,aAAA;EACA,sBAAA;EACA,gBAAA;;AD1NF,QC6NA;EACE,kBAAA;EACA,yBAAA;EACA,iBAAA;;ADhOF,QAIE;EACE,eAAA;EACA,SAAA;;AANJ,QAaE,MAAK,aAAa;EAChB,cAAA;;AAdJ,QAiBE,MAAK,aAAa;AAjBpB,QAiBiD,SAAQ;EACrD,cAAA;;AAlBJ,QAqBE,MAAK,aAAa;AArBpB,QAqB4C,SAAQ;EAChD,cAAA;;AAtBJ,QAyBE,MAAK,aAAa;AAzBpB,QAyB6C,SAAQ;EACjD,cAAA;;AA1BJ,QA6BE,MAAK,aAAa;AA7BpB,QA6BmC,SAAQ;EACvC,cAAA;;AA9BJ,QAiCE;EACE,qBAAA;EACA,cAAA;EACA,YAAA;EACA,gBAAA;;AAEA,QANF,EAMG;EACC,0BAAA;EACA,eAAA;EACA,mBAAA;;AA1CN,QA8CE;AA9CF,QA8CU;EACN,YAAA;EACA,gBAAA;EACA,UAAA;EACA,gBAAA;;AAlDJ,QAqDE;EACE,YAAA;EACA,SAAA;EACA,gBAAA;;AAxDJ,QA2DE;AA3DF,QA2DU;EACN,YAAA;;AA5DJ,QA+DE;EACE,kBAAA;EACA,gBAAA;EACA,MAAM,aAAN;EACA,mBAAmB,WAAnB;EACA,WAAW,WAAX;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,mBAAA;EACA,SAAA;;AA1EJ,QEnBA;EAEE,WAAA;EACA,sBAAA;EACA,mBAAA;EACA,yBAAA;;;;;AFcF,QEnBA,WAOE,GAAE,UAAU,IAAK;EACf,mBAAA;;AFWJ,QEnBA,WAYE;EACE,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;EACA,gBAAA;;AFEJ,QEnBA,WAoBE,GAAE,IAAI;EACJ,4BAAA;;AFFJ,QEnBA,WAwBE;EACE,kBAAA;EACA,mBAAA;EAEA,gCAAA;EACA,gBAAA;EACA,gBAAA;;AAOF,QArCF,WAqCG;EACC,YAAA;;AAGF,QAzCF,WAyCG;EACC,YAAA;;AAGF,QA7CF,WA6CG;EACC,sBAAA;;AAGF,QAjDF,WAiDG;EACC,YAAA;;AAGF,QArDF,WAqDG;EACC,YAAA;;AAGF,QAzDF,WAyDG;AAAmB,QAzDtB,WAyDuB;EACnB,YAAA;;AAGF,QA7DF,WA6DG;EACC,qBAAA;;AAGF,QAjEF,WAiEG;AAAuB,QAjE1B,WAiE2B;EACvB,UAAA;EACA,aAAA;EACA,gBAAA;;AFjDJ,QEnBA,WAuEE;EACE,mBAAA;EACA,YAAA;;AAGF,QA5EF,WA4EG;EACC,aAAA;EACA,mBAAA;EACA,cAAA;EACA,eAAA;EACA,2BAAA;;AAEA,QAnFJ,WA4EG,2BAOG;EACA,yBAAA;;AFjEN,QGnBA;EACE,kBAAA;;AHkBF,QGfA,aAAY;EACV,SAAS,EAAT;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,aAAA;EACA,WAAA;EACA,YAAA;;AHQF,QGLA,aAAY;EACV,SAAS,kBAAT;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,aAAA;EACA,gBAAA;EACA,iBAAA;EACA,cAAA;EACA,mBAAA;EACA,eAAA;EACA,mBAAA;EACA,gBAAA;;AHPF,QGUA,iBAAgB;EACd,YAAA;EACA,YAAY,qFAAZ;;AHZF,QGeA,iBAAgB;EACd,YAAA;EACA,gBAAA;EACA,4BAAA;;AHlBF,QGqBA,qBAAoB;EAClB,SAAA;EACA,YAAY,oFAAZ;;AHvBF,QG0BA,qBAAoB;EAClB,SAAA;EACA,gBAAA;EACA,4BAAA;;AH7BF,QGgCA,aAAY,MAAM;AHhClB,QGiCA,aAAY,MAAM;EAChB,cAAA;;AHlCF,QInBA;EACE,eAAA;EACA,WAAA;EACA,SAAA;EACA,QAAA;EACA,OAAA;EACA,WAAA;EACA,qBAAA;EACA,oBAAA;EACA,aAAA;EACA,sBAAA;EACA,sCAAA;EACA,8BAAA;EACA,YAAA;EACA,eAAA;EACA,SAAA;EACA,WAAA;EACA,mBAAA;EACA,eAAA;EACA,6BAAA;;AAEA,QArBF,iBAqBG;EACC,kBAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,kBAAA;;AAEA,QA7BJ,iBAqBG,SAQE;EACC,eAAA;;AATJ,QArBF,iBAqBG,SAYC;EACE,kBAAA;EACA,YAAA;EACA,QAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,cAAA;EACA,mBAAA;EACA,WAAA;EACA,kBAAA;EACA,kBAAA;EACA,oBAAA;EACA,gBAAA;;AAGF,QAjDJ,iBAqBG,SA4BE;EACC,cAAA;EACA,SAAS,EAAT;EACA,kBAAA;EACA,QAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;;AAIJ,QA7DF,iBA6DG;AACD,QA9DF,iBA8DG;EACC,qBAAA;EACA,oBAAA;EACA,aAAA;EACA,2BAAA;EACA,mBAAA;EACA,sBAAA;;AAGF,QAvEF,iBAuEG;EACC,gBAAA;EACA,kBAAA;;AAGF,QA5EF,iBA4EG;EACC,WAAA;EACA,YAAA;EACA,kBAAA;EACA,gBAAgB,ymEAAhB;;AAGF,QAnFF,iBAmFG;EACC,qBAAA;EACA,oBAAA;EACA,aAAA;EACA,2BAAA;EACA,mBAAA;EACA,sBAAA;EACA,eAAA;EACA,UAAA;EACA,gBAAA;;AAGF,QA/FF,iBA+FG,MAAM,IAAI;EACT,kBAAA;;AAGF,QAnGF,iBAmGG;EACC,cAAA;EACA,cAAA;EACA,kBAAA;EACA,mBAAA;EACA,kBAAA;;AAGF,QA3GF,iBA2GG;EACC,aAAA;EACA,kBAAA;;AAGF,QAhHF,iBAgHG,aAAc;EACb,sBAAA;;AAGF,QApHF,iBAoHG;EACC,eAAA;EACA,cAAA;EACA,mBAAA;EACA,kBAAA;EACA,gBAAA;;AAKA,QA9HJ,iBA4HG;AAEC,QA9HJ,iBA6HG;AACI,QA9HP,iBA4HG,OAEK,MAAM;AAAP,QA9HP,iBA6HG,MACK,MAAM;EACR,qBAAA;EACA,qBAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,oCAAA;EACA,YAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,WAAA;;AAKJ,QA9IF,iBA8IG,OAAO;AACR,QA/IF,iBA+IG,MAAM;AACP,QAhJF,iBAgJG,OAAO;AACR,QAjJF,iBAiJG,MAAM;EACL,aAAA;EACA,qBAAA;;AAGF,QAtJF,iBAsJG,OAAO;AACR,QAvJF,iBAuJG,MAAM;EACL,mBAAmB,eAAnB;EACA,WAAW,eAAX;;AAIA,QA7JJ,iBA4JG;AACI,QA7JP,iBA4JG,OACK,MAAM;EACR,kBAAA;EACA,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,yBAAA;;AAIJ,QAtKF,iBAsKG,OAAO;AACR,QAvKF,iBAuKG,OAAO;EACN,mBAAA;;AAGF,QA3KF,iBA2KG,OAAO;EACN,yBAAA;;AAIA,QAhLJ,iBA+KG;AACI,QAhLP,iBA+KG,MACK,MAAM;EACR,kBAAA;EACA,mBAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,yBAAA;;AAGF,QAzLJ,iBA+KG,MAUE;AAAQ,QAzLb,iBA+KG,MAUW;EACR,mBAAA;EACA,yBAAA;;AAGF,QA9LJ,iBA+KG,MAeE;EACC,mBAAA;EACA,yBAAA;;AAGF,QAnMJ,iBA+KG,MAoBG;EACA,SAAA;;AAIJ,QAxMF,iBAwMG;EACC,eAAA;EACA,eAAA;EACA,eAAA;;AAGF,QA9MF,iBA8MG;AAAiB,QA9MpB,iBA8MqB;EACjB,kBAAA;EACA,mBAAA;;AAEA,QAlNJ,iBA8MG,eAIE;AAAD,QAlNJ,iBA8MqB,uBAIhB;EACC,SAAS,EAAT;EACA,kBAAA;EACA,SAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,mBAAA;;AAOE,QAjOR,iBA8NG,gBACE,QACG,kCACC;AAAD,QAjOR,iBA8NG,gBACE,QACwC,0CACpC;EACC,SAAS,EAAT;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,mBAAmB,cAAnB;EACA,WAAW,cAAX;EACA,kBAAA;EACA,yBAAA;;AAMR,QAjPF,iBAiPG;EACC,eAAA;EACA,+BAAA;;AAFF,QAjPF,iBAiPG,uBAIC;EACE,qBAAA;EACA,cAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;EACA,WAAA;EACA,cAAA;EACA,kBAAA;EACA,mBAAA;EACA,kBAAA;EACA,gBAAA;;AAGF,QAnQJ,iBAiPG,uBAkBE;EACC,oCAAA;;AAIJ,QAxQF,iBAwQG;AAAS,QAxQZ,iBAwQa,OAAO;EAChB,WAAA;EACA,YAAA;EACA,qBAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAgB,ijBAAhB;;AAOA,QAvRJ,iBAwQG,OAeE;AAAD,QAvRJ,iBAwQa,OAAO,MAef;EACC,YAAA;EACA,aAAA;;AJtQN,QKnBA;EACE,eAAA;EACA,SAAA;EACA,SAAA;EACA,OAAA;EACA,WAAA;EACA,SAAA;EACA,UAAA;EACA,gBAAA;EACA,mBAAA;EACA,wCAAA;;ALSF,QKnBA,sBAYE;EACE,SAAA;EACA,UAAA;;ALKJ,QKDA;EACE,kBAAA;EACA,cAAA;EACA,WAAA;EACA,aAAA;EACA,eAAA;EACA,YAAA;EACA,mBAAA;EACA,gBAAA;EACA,gBAAA;EACA,qBAAA;EACA,oBAAA;EACA,wBAAA;EACA,mBAAA;;AAEA,QAfF,8BAeG;AAAQ,QAfX,8BAeY;AAAQ,QAfpB,8BAeqB;AAAQ,QAf7B,8BAe8B;AAAS,QAfvC,8BAewC,MAAM;AAAQ,QAftD,8BAeuD,OAAO;EAC1D,qBAAA;EACA,oBAAA;EACA,wBAAA;EACA,mBAAA;;ALlBJ,QKsBA,8BAA6B;EAC3B,SAAS,EAAT;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;EACA,aAAA;;AL7BF,QKgCA,oCAAmC;EACjC,gBAAgB,+8FAAhB;;ALjCF,QKoCA,qCAAoC;EAClC,gBAAgB,unEAAhB;;ALrCF,QKwCA,uCAAsC;EACpC,gBAAgB,2iHAAhB;;ALzCF,QK4CA,8BAA6B;AL5C7B,QK6CA,8BAA6B;EAC3B,aAAA;EACA,mBAAA;;AL/CF,QKkDA,8BAA6B,MAAM;ALlDnC,QKmDA,8BAA6B,MAAM;EACjC,UAAA;;AAIA,QADF,8BACG;EACC,mBAAA;;AAEA,QAJJ,8BACG,4BAGE;EACC,UAAA;;AL5DN,QKiEA;EACE,aAAA;EACA,kBAAA;;AAIA,QADF,6BACG;EACC,yBAAA;;ALxEJ,QK8EA;EAEE,UAAA;EACA,SAAA;EACA,gBAAA;;ALlFF,QK8EA,iBAME;EACE,gBAAA;EACA,kBAAA;;ALtFJ,QK8EA,iBAME,sBAIE;EACE,cAAA;EACA,kBAAA;EACA,mBAAA;EACA,WAAA;;AL5FN,QK8EA,iBAME,sBAIE,EAME;AL9FN,QK8EA,iBAME,sBAIE,EAMU;EACN,cAAA;;AL/FR,QK8EA,iBAME,sBAIE,EAUE;EACE,eAAA;EACA,cAAA;;AAIJ,QA1BJ,iBAME,sBAoBG,MACC;EACE,mBAAA;EACA,qBAAA;;AAIJ,QAjCJ,iBAME,sBA2BG,6BACC;EACE,mBAAA;;ALjHR,QKuHA;EAEE,aAAA;;AAnJD,QAiJD,8BAjJE;EAsJE,yBAAA;;AL5HJ,QAuGE;EACE,qBAAA;EACA,kBAAA;EACA,0DAAA;EACA,YAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,SAAA;;AA/GJ,QAkHE;EACE,qBAAA;EACA,iBAAA;EACA,eAAA;EACA,yBAAA;EACA,kBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;;AAEA,QAVF,gBAUG;EACC,mBAAA;EACA,cAAA;;AAGF,QAfF,gBAeG;EACC,mBAAA;EACA,cAAA;;AAnIN,QAyIE;EAGE,qBAAA;EACA,sBAAA;EACA,iBAAA;EACA,qBAAA;EACA,gBAAA;EACA,gBAAA;EACA,kBAAA;;AAEA,QAXF,YAWG;EACC,gBAAA;EACA,eAAA;;AKhLL,QLmKC,YKnKA;ELoLI,aAAA;;AAGF,QApBF,YAoBG;EACC,eAAA;EACA,qBAAA;EACA,gBAAA;;AAGF,QA1BF,YA0BG;EACC,aAAA;EACA,gBAAA;;AAGF,QA/BF,YA+BG;EACC,YAAA;EACA,WAAA;EACA,YAAA;EACA,cAAA;;AKtML,QLmKC,YKnKA;EL0MI,gBAAgB,mCAAhB;;AK1ML,QLmKC,YKnKA;EL8MI,gBAAgB,oCAAhB;;AAGF,QA9CF,YA8CG;EACC,yBAAA;EACA,WAAA;EACA,yBAAA;;AAEA,QAnDJ,YA8CG,SAKE;EACC,eAAA;EACA,sBAAA;EACA,yBAAA;;AAIJ,QA1DF,YA0DG;EAEC,sBAAA;EACA,cAAA;EACA,yBAAA;;AAEA,QAhEJ,YA0DG,QAME;EACC,sBAAA;EACA,WAAA;EACA,yBAAA;;AAIJ,QAvEF,YAuEG;EAEC,sBAAA;EACA,cAAA;EACA,yBAAA;;AAEA,QA7EJ,YAuEG,QAME;EACC,sBAAA;EACA,WAAA;EACA,yBAAA;;AAzNR,QAkOE;EAGE,qBAAA;EACA,sBAAA;EACA,YAAA;EACA,iBAAA;;AKlQH,QL4PC,YK5PA;ELqQI,mBAAA;EACA,cAAA;EACA,yBAAA;;AKvQL,QL4PC,YK5PA;EL2QI,mBAAA;EACA,yBAAA;EACA,cAAA;;AAGF,QApBF,YAoBG;EACC,aAAA;EACA,gBAAA;;AAMJ,QAAC;EACC,iBAAA;EACA,eAAA;EACA,iBAAA;EACA,SAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,gBAAA;EACA,gBAAA;;AAvQJ,QA0QE;EACE,cAAA;EACA,WAAA;EACA,SAAA;EACA,sBAAA;;AA9QJ,QAiRE;EACE,cAAA;EAEA,oBAAA;EACA,cAAA;EACA,eAAA;EACA,iBAAA;;AAvRJ,QAiRE,kBAQE;EACE,eAAA;EACA,SAAA;;AAEA,QAZJ,kBAQE,EAIG,IAAI;EACH,mBAAA;;AA9RR,QAiRE,kBAiBE;AAlSJ,QAiRE,kBAiB8B;EAC1B,mBAAA;EACA,UAAA;EACA,gBAAA;EACA,mBAAA;EACA,aAAA;EACA,mBAAA;EAEA,4BAAA;;AA1SN,QAiRE,kBA6BE;EACE,mBAAA;EAEA,2BAAA;EACA,iBAAA;;AAlTN,QAiRE,kBA6BE,iCAME;EACE,kBAAA;EACA,gBAAA;EACA,eAAA;EACA,gBAAA;EACA,gCAAA;EACA,sBAAA;;AA1TR,QAiRE,kBA6BE,iCAME,GAQE;EACE,cAAA;EACA,eAAA;EACA,gBAAA;EACA,cAAA;EACA,yBAAA;;AAjUV,QAiRE,kBA6BE,iCAuBE;EACE,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,UAAA;;AAzUR,QAiRE,kBA6BE,iCAuBE,GAME;EACE,kBAAA;EACA,gBAAA;EACA,eAAA;EACA,cAAA;EACA,UAAA;;AAEA,QAjER,kBA6BE,iCAuBE,GAME,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;;AA9VZ,QAqWE;EAEE,oBAAA;;AAEA,QAJF,qBAIG;EACC,mBAAA;;AA1WN,QAqWE,qBK/XD;ELwYK,aAAA;EACA,aAAA;;AAKN,mBAAsC;EACpC,KACE;IACE,eAAA;;EAFJ,KAKE;IACE,sBAAA;;EANJ,KASE,uBACE;IACE,cAAA;;EAXN,KAeE,wBACE;IACE,eAAA;;EAjBN,KAeE,wBAKE;EApBJ,KAeE,wBAK2B;IACvB,eAAA;;EArBN,KAeE,wBASE;IACE,eAAA;IACA,cAAA;IACA,gBAAA;;EA3BN,KAeE,wBAgBE;IACE,WAAA;IACA,YAAA;IACA,qBAAA;IACA,sBAAA;;EAnCN,KAuCE;IACE,UAAA;;EAEA,KAHF;EAvCF,KAuCE,kBAGK;IACD,eAAA;;EA3CN,KAuCE,kBAOE;IACE,uBAAA;;EA/CN,KAmDE;IACE,eAAA;;EApDJ,KAuDE;IACE,SAAA;;EAxDJ,KAuDE,WAGE;IACE,eAAA;;EA3DN,KAuDE,WAOE,iBACE;IACE,eAAA;;EAIA,KAbN,WAOE,iBAKE;EACE,KAbN,WAOE,iBAK2B;EACvB,KAbN,WAOE,iBAKqD;EAnEzD,KAuDE,WAOE,iBAKE,wBACK;EApEX,KAuDE,WAOE,iBAK2B,yBACpB;EApEX,KAuDE,WAOE,iBAKqD,qBAC9C;IACD,eAAA;;EArEV,KAuDE,WAmBE;IACE,eAAA;;EA3EN,KAuDE,WAmBE,wBAGE;IACE,eAAA;IACA,oBAAA;IACA,gBAAA;IACA,iBAAA;;EAjFR,KAuDE,WA8BE,wBACE;IACE,eAAA;;EAvFR,KAuDE,WAoCE;IACE,UAAA;;EA5FN,KAuDE,WAoCE,0BAGE;EA9FN,KAuDE,WAoCE,0BAGkC;IAC9B,eAAA;;EA/FR,KAuDE,WAoCE,0BAOE;IACE,eAAA;;EAnGR,KAuDE,WAgDE;IACE,UAAA;;;AAMR,mBAAsC;EACpC,KACE;IACE,aAAA;;EAFJ,KAKE;IACE,cAAA","file":"assets-manager.css"}
1
+ {"version":3,"sources":["assets-manager.less","reset.less","tables.less","tooltip.less","float-panel.less","tabs.less"],"names":[],"mappings":";;;;;AAMA;AAAM;EACJ,2BAAA;;AAGF;EACE,iBAAA;EACA,yCAAA;EACA,sBAAA;;AAGF;EACE,oBAAA;EACA,qBAAA;EACA,gBAAA;;AAEA;AALF,IAKK;EACD,oBAAoB,4BAApB;;AAIJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,QCpBA;ADoBA,QCpBG,EAAC;ADoBJ,QCpBa,EAAC;EACZ,8BAAA;EACA,2BAAA;EACA,sBAAA;;AAGF;ADcA,QCbA;ADaA,QCbI;ADaJ,QCbQ;ADaR,QCbY;ADaZ,QCbgB;ADahB,QCZA;ADYA,QCZG;ADYH,QCZW;ADYX,QCZc;ADYd,QCXA;ADWA,QCXI;ADWJ,QCXO;ADWP,QCXU;ADWV,QCXe;ADWf,QCVA;ADUA,QCVS;ADUT,QCVa;ADUb,QCTA,MAAK;ADSL,QCTsB,MAAK;ADS3B,QCRA;EACE,oBAAoB,4BAApB;EACA,eAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;EACA,iBAAA;;ADEF,QCCA;EACE,cAAA;EACA,gBAAA;;ADHF,QCMA;EACE,uBAAA;EACA,SAAA;EACA,iBAAA;;ADTF,QCYA;EACE,iCAAA;EACA,cAAA;;ADdF,QCiBA;EACE,6BAAA;;ADlBF,QCqBA,KAAI;EACF,mBAAA;EACA,iCAAA;;ADvBF,QC0BA;AD1BA,QC0BG;EACD,mBAAA;;AD3BF,QC8BA;AD9BA,QC8BM;AD9BN,QC8BW;EACT,iCAAA;EACA,cAAA;;ADhCF,QCmCA;EACE,cAAA;;ADpCF,QCuCA;ADvCA,QCuCK;EACH,cAAA;EACA,cAAA;EACA,kBAAA;EACA,wBAAA;;AD3CF,QC8CA;EACE,eAAA;;AD/CF,QCkDA;EACE,WAAA;;ADnDF,QCsDA;EACE,kBAAA;;ADvDF,QC0DA;AD1DA,QC2DA;AD3DA,QC4DA;AD5DA,QC6DA;AD7DA,QC8DA;EACE,oBAAA;EACA,eAAA;EACA,iBAAA;EACA,SAAA;EACA,YAAA;EACA,WAAA;;AACA,QAXF;AAWE,QAVF;AAUE,QATF;AASE,QARF;AAQE,QAPF;AAOK,QAXL,OAWM;AAAD,QAVL,MAUM;AAAD,QATL,SASM;AAAD,QARL,OAQM;AAAD,QAPL,SAOM;AAAQ,QAXd,OAWe;AAAD,QAVd,MAUe;AAAD,QATd,SASe;AAAD,QARd,OAQe;AAAD,QAPd,SAOe;EACX,qBAAA;EACA,oBAAA;EACA,wBAAA;EACA,mBAAA;;ADzEJ,QC6EA;AD7EA,QC8EA;EACE,iBAAA;;AD/EF,QCkFA;ADlFA,QCmFA;EACE,oBAAA;;ADpFF,QCuFA;ADvFA,QCwFA;ADxFA,QCyFA;ADzFA,QC0FA;EACE,0BAAA;;AD3FF,QC8FA,OAAM;AD9FN,QC+FA,gBAAe;AD/Ff,QCgGA,eAAc;ADhGd,QCiGA,gBAAe;EACb,kBAAA;EACA,UAAA;;ADnGF,QCsGA,OAAM;ADtGN,QCuGA,gBAAe;ADvGf,QCwGA,eAAc;ADxGd,QCyGA,gBAAe;EACb,8BAAA;;AD1GF,QC6GA;EACE,8BAAA;;AD9GF,QCiHA;EACE,sBAAA;EACA,cAAA;EACA,cAAA;EACA,eAAA;EACA,UAAA;EACA,mBAAA;;ADvHF,QC0HA;EACE,cAAA;;AD3HF,QC8HA;AD9HA,QC+HA;EACE,sBAAA;EACA,UAAA;;ADjIF,QCoIA,gBAAe;ADpIf,QCqIA,gBAAe;EACb,YAAA;;ADtIF,QCyIA;EACE,6BAAA;EACA,oBAAA;;AD3IF,QC8IA,gBAAe;EACb,wBAAA;;AD/IF,QCkJA;EACE,0BAAA;EACA,aAAA;;ADpJF,QCuJA;EACE,8BAAA;;ADxJF,QC2JA;EACE,sBAAA;EACA,cAAA;EACA,cAAA;EACA,eAAA;EACA,UAAA;EACA,mBAAA;;ADjKF,QCoKA;EACE,wBAAA;;ADrKF,QCwKA;EACE,cAAA;;ADzKF,QC4KA;AD5KA,QC4KiB;EACf,sBAAA;EACA,UAAA;;AD9KF,QCiLA,cAAa;ADjLb,QCiL0C,cAAa;EACrD,YAAA;;ADlLF,QCqLA;EACE,6BAAA;EACA,oBAAA;;ADvLF,QC0LA,cAAa;EACX,wBAAA;;AD3LF,QC8LA;EACE,0BAAA;EACA,aAAA;;ADhMF,QCmMA;EACE,cAAA;;ADpMF,QCuMA;EACE,kBAAA;;ADxMF,QC2MA;EACE,aAAA;;AD5MF,QC+MA;EACE,aAAA;;ADhNF,QCmNA;ADnNA,QCmNO;ADnNP,QCmNgB;ADnNhB,QCmNuB;ADnNvB,QCmN8B;ADnN9B,QCmNqC;ADnNrC,QCmNyC;ADnNzC,QCmN6C;EAC3C,SAAA;EACA,UAAA;EACA,SAAA;EACA,eAAA;EACA,aAAA;EACA,sBAAA;EACA,gBAAA;;AD1NF,QC6NA;EACE,kBAAA;EACA,yBAAA;EACA,iBAAA;;ADhOF,QAIE;EACE,eAAA;EACA,SAAA;;AANJ,QAaE,MAAK,aAAa;EAChB,cAAA;;AAdJ,QAiBE,MAAK,aAAa;AAjBpB,QAiBiD,SAAQ;EACrD,cAAA;;AAlBJ,QAqBE,MAAK,aAAa;AArBpB,QAqB4C,SAAQ;EAChD,cAAA;;AAtBJ,QAyBE,MAAK,aAAa;AAzBpB,QAyB6C,SAAQ;EACjD,cAAA;;AA1BJ,QA6BE,MAAK,aAAa;AA7BpB,QA6BmC,SAAQ;EACvC,cAAA;;AA9BJ,QAiCE;EACE,qBAAA;EACA,cAAA;EACA,YAAA;EACA,gBAAA;;AAEA,QANF,EAMG;EACC,0BAAA;EACA,eAAA;EACA,mBAAA;;AA1CN,QA8CE;AA9CF,QA8CU;EACN,YAAA;EACA,gBAAA;EACA,UAAA;EACA,gBAAA;;AAlDJ,QAqDE;EACE,YAAA;EACA,SAAA;EACA,gBAAA;;AAxDJ,QA2DE;AA3DF,QA2DU;EACN,YAAA;;AA5DJ,QA+DE;EACE,kBAAA;EACA,gBAAA;EACA,MAAM,aAAN;EACA,mBAAmB,WAAnB;EACA,WAAW,WAAX;EACA,UAAA;EACA,WAAA;EACA,YAAA;EACA,UAAA;EACA,mBAAA;EACA,SAAA;;AA1EJ,QEnBA;EAEE,WAAA;EACA,sBAAA;EACA,mBAAA;EACA,yBAAA;;AAEA,QAPF,WAOG;EACC,gBAAA;;AADF,QAPF,WAOG,aAGC;AAHF,QAPF,WAOG,aAGO;EACJ,0BAAA;;AAJJ,QAPF,WAOG,aAOC;EACE,UAAA;EACA,0BAAA;;AFGN,QEnBA,WAoBE,GAAE,UAAU,IAAK;EACf,mBAAA;;AFFJ,QEnBA,WAyBE;EACE,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;EACA,gBAAA;;AFXJ,QEnBA,WAiCE,GAAE,IAAI;EACJ,4BAAA;;AAIF,QAtCF,WAsCG;EACC,YAAA;;AAGF,QA1CF,WA0CG;EACC,YAAA;;AAGF,QA9CF,WA8CG;EACC,YAAA;;AAGF,QAlDF,WAkDG;EACC,YAAA;;AAGF,QAtDF,WAsDG;AAAmB,QAtDtB,WAsDuB;EACnB,YAAA;;AFpCJ,QEnBA,WA0DE;EACE,kBAAA;EACA,mBAAA;EAGA,gBAAA;EACA,gBAAA;;AAGF,QAnEF,WAmEG;EACC,sBAAA;;AAGF,QAvEF,WAuEG;EACC,qBAAA;;AAGF,QA3EF,WA2EG;AAAuB,QA3E1B,WA2E2B;EACvB,UAAA;EACA,aAAA;EACA,gBAAA;;AF3DJ,QEnBA,WAiFE;EACE,mBAAA;EACA,YAAA;;AAGF,QAtFF,WAsFG;EACC,aAAA;EACA,mBAAA;EACA,cAAA;EACA,eAAA;EACA,2BAAA;;AAEA,QA7FJ,WAsFG,2BAOG;EACA,yBAAA;;AF3EN,QGnBA;EACE,kBAAA;;AHkBF,QGfA,aAAY;EACV,SAAS,EAAT;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,aAAA;EACA,WAAA;EACA,YAAA;;AHQF,QGLA,aAAY;EACV,SAAS,kBAAT;EACA,kBAAA;EACA,WAAA;EACA,SAAA;EACA,aAAA;EACA,gBAAA;EACA,iBAAA;EACA,cAAA;EACA,mBAAA;EACA,eAAA;EACA,mBAAA;EACA,gBAAA;;AHPF,QGUA,iBAAgB;EACd,YAAA;EACA,YAAY,qFAAZ;;AHZF,QGeA,iBAAgB;EACd,YAAA;EACA,gBAAA;EACA,4BAAA;;AHlBF,QGqBA,qBAAoB;EAClB,SAAA;EACA,YAAY,oFAAZ;;AHvBF,QG0BA,qBAAoB;EAClB,SAAA;EACA,gBAAA;EACA,4BAAA;;AH7BF,QGgCA,aAAY,MAAM;AHhClB,QGiCA,aAAY,MAAM;EAChB,cAAA;;AHlCF,QInBA;EACE,eAAA;EACA,WAAA;EACA,MAAA;EACA,QAAA;EACA,OAAA;EACA,WAAA;EACA,qBAAA;EACA,oBAAA;EACA,aAAA;EACA,sBAAA;EACA,sCAAA;EACA,8BAAA;EACA,YAAA;EACA,eAAA;EACA,SAAA;EACA,WAAA;EACA,mBAAA;EACA,eAAA;EACA,6BAAA;;AAEA,QArBF,iBAqBG;EACC,kBAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,kBAAA;;AAEA,QA7BJ,iBAqBG,SAQE;EACC,eAAA;;AATJ,QArBF,iBAqBG,SAYC;EACE,kBAAA;EACA,YAAA;EACA,QAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,cAAA;EACA,mBAAA;EACA,WAAA;EACA,kBAAA;EACA,kBAAA;EACA,oBAAA;EACA,gBAAA;;AAGF,QAjDJ,iBAqBG,SA4BE;EACC,cAAA;EACA,SAAS,EAAT;EACA,kBAAA;EACA,QAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;;AAIJ,QA7DF,iBA6DG;AACD,QA9DF,iBA8DG;EACC,qBAAA;EACA,oBAAA;EACA,aAAA;EACA,2BAAA;EACA,mBAAA;EACA,sBAAA;;AAGF,QAvEF,iBAuEG;EACC,gBAAA;EACA,kBAAA;;AAGF,QA5EF,iBA4EG;EACC,WAAA;EACA,YAAA;EACA,kBAAA;EACA,gBAAgB,ymEAAhB;;AAGF,QAnFF,iBAmFG;EACC,qBAAA;EACA,oBAAA;EACA,aAAA;EACA,2BAAA;EACA,mBAAA;EACA,sBAAA;EACA,eAAA;EACA,UAAA;EACA,gBAAA;;AAGF,QA/FF,iBA+FG,MAAM,IAAI;EACT,kBAAA;;AAGF,QAnGF,iBAmGG;EACC,cAAA;EACA,cAAA;EACA,kBAAA;EACA,mBAAA;EACA,kBAAA;;AAGF,QA3GF,iBA2GG;EACC,aAAA;EACA,kBAAA;;AAGF,QAhHF,iBAgHG,aAAc;EACb,sBAAA;;AAGF,QApHF,iBAoHG;EACC,eAAA;EACA,cAAA;EACA,mBAAA;EACA,kBAAA;EACA,gBAAA;;AAKA,QA9HJ,iBA4HG;AAEC,QA9HJ,iBA6HG;AACI,QA9HP,iBA4HG,OAEK,MAAM;AAAP,QA9HP,iBA6HG,MACK,MAAM;EACR,qBAAA;EACA,qBAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,oCAAA;EACA,YAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,WAAA;;AAKJ,QA9IF,iBA8IG,OAAO;AACR,QA/IF,iBA+IG,MAAM;AACP,QAhJF,iBAgJG,OAAO;AACR,QAjJF,iBAiJG,MAAM;EACL,aAAA;EACA,qBAAA;;AAGF,QAtJF,iBAsJG,OAAO;AACR,QAvJF,iBAuJG,MAAM;EACL,mBAAmB,eAAnB;EACA,WAAW,eAAX;;AAIA,QA7JJ,iBA4JG;AACI,QA7JP,iBA4JG,OACK,MAAM;EACR,kBAAA;EACA,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,yBAAA;;AAIJ,QAtKF,iBAsKG,OAAO;AACR,QAvKF,iBAuKG,OAAO;EACN,mBAAA;;AAGF,QA3KF,iBA2KG,OAAO;EACN,yBAAA;;AAIA,QAhLJ,iBA+KG;AACI,QAhLP,iBA+KG,MACK,MAAM;EACR,kBAAA;EACA,mBAAA;EACA,kBAAA;EACA,WAAA;EACA,mBAAA;EACA,yBAAA;;AAGF,QAzLJ,iBA+KG,MAUE;AAAQ,QAzLb,iBA+KG,MAUW;EACR,mBAAA;EACA,yBAAA;;AAGF,QA9LJ,iBA+KG,MAeE;EACC,mBAAA;EACA,yBAAA;;AAGF,QAnMJ,iBA+KG,MAoBG;EACA,SAAA;;AAIJ,QAxMF,iBAwMG;EACC,eAAA;EACA,eAAA;EACA,eAAA;;AAGF,QA9MF,iBA8MG;AAAiB,QA9MpB,iBA8MqB;EACjB,kBAAA;EACA,mBAAA;;AAEA,QAlNJ,iBA8MG,eAIE;AAAD,QAlNJ,iBA8MqB,uBAIhB;EACC,SAAS,EAAT;EACA,kBAAA;EACA,SAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,mBAAA;;AAOE,QAjOR,iBA8NG,gBACE,QACG,kCACC;AAAD,QAjOR,iBA8NG,gBACE,QACwC,0CACpC;EACC,SAAS,EAAT;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,mBAAmB,cAAnB;EACA,WAAW,cAAX;EACA,kBAAA;EACA,yBAAA;;AAMR,QAjPF,iBAiPG;EACC,eAAA;EACA,+BAAA;;AAFF,QAjPF,iBAiPG,uBAIC;EACE,qBAAA;EACA,cAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;EACA,WAAA;EACA,cAAA;EACA,kBAAA;EACA,mBAAA;EACA,kBAAA;EACA,gBAAA;;AAGF,QAnQJ,iBAiPG,uBAkBE;EACC,oCAAA;;AAIJ,QAxQF,iBAwQG;AAAS,QAxQZ,iBAwQa,OAAO;EAChB,WAAA;EACA,YAAA;EACA,qBAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,kBAAA;EACA,gBAAgB,ijBAAhB;;AAOA,QAvRJ,iBAwQG,OAeE;AAAD,QAvRJ,iBAwQa,OAAO,MAef;EACC,YAAA;EACA,aAAA;;AJtQN,QKnBA;EACE,eAAA;EACA,SAAA;EACA,SAAA;EACA,OAAA;EACA,WAAA;EACA,SAAA;EACA,UAAA;EACA,gBAAA;EACA,mBAAA;EACA,wCAAA;;ALSF,QKnBA,sBAYE;EACE,SAAA;EACA,UAAA;;ALKJ,QKDA;EACE,kBAAA;EACA,cAAA;EACA,WAAA;EACA,aAAA;EACA,eAAA;EACA,YAAA;EACA,mBAAA;EACA,gBAAA;EACA,gBAAA;EACA,qBAAA;EACA,oBAAA;EACA,wBAAA;EACA,mBAAA;;AAEA,QAfF,8BAeG;AAAQ,QAfX,8BAeY;AAAQ,QAfpB,8BAeqB;AAAQ,QAf7B,8BAe8B;AAAS,QAfvC,8BAewC,MAAM;AAAQ,QAftD,8BAeuD,OAAO;EAC1D,qBAAA;EACA,oBAAA;EACA,wBAAA;EACA,mBAAA;;ALlBJ,QKsBA,8BAA6B;EAC3B,SAAS,EAAT;EACA,kBAAA;EACA,MAAA;EACA,QAAA;EACA,SAAA;EACA,OAAA;EACA,aAAA;;AL7BF,QKgCA,oCAAmC;EACjC,gBAAgB,+8FAAhB;;ALjCF,QKoCA,qCAAoC;EAClC,gBAAgB,unEAAhB;;ALrCF,QKwCA,uCAAsC;EACpC,gBAAgB,2iHAAhB;;ALzCF,QK4CA,8BAA6B;AL5C7B,QK6CA,8BAA6B;EAC3B,aAAA;EACA,mBAAA;;AL/CF,QKkDA,8BAA6B,MAAM;ALlDnC,QKmDA,8BAA6B,MAAM;EACjC,UAAA;;AAIA,QADF,8BACG;EACC,mBAAA;;AAEA,QAJJ,8BACG,4BAGE;EACC,UAAA;;AL5DN,QKiEA;EACE,aAAA;EACA,kBAAA;;AAIA,QADF,6BACG;EACC,yBAAA;;ALxEJ,QK8EA;EAEE,UAAA;EACA,SAAA;EACA,gBAAA;;ALlFF,QK8EA,iBAME;EACE,kBAAA;EACA,gBAAA;EACA,kBAAA;;ALvFJ,QK8EA,iBAME,sBAKE;EACE,cAAA;EACA,kBAAA;EACA,mBAAA;EACA,WAAA;;AL7FN,QK8EA,iBAME,sBAKE,EAME;AL/FN,QK8EA,iBAME,sBAKE,EAMU;EACN,cAAA;;ALhGR,QK8EA,iBAME,sBAKE,EAUE;EACE,eAAA;EACA,cAAA;;AAIJ,QA3BJ,iBAME,sBAqBG,MACC;EACE,mBAAA;EACA,qBAAA;;AAIJ,QAlCJ,iBAME,sBA4BG,6BACC;EACE,mBAAA;;AAIJ,QAxCJ,iBAME,sBAkCG,kBAAkB;AACnB,QAzCJ,iBAME,sBAmCG,0BAA0B;AAC3B,QA1CJ,iBAME,sBAoCG,0BAA0B;EACzB,cAAA;EACA,SAAS,EAAT;EACA,kBAAA;EACA,YAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;;AAGF,QAzDJ,iBAME,sBAmDG,0BAA0B;AAC3B,QA1DJ,iBAME,sBAoDG,0BAA0B;EACzB,mBAAA;;ALzIN,QK8IA;EAEE,aAAA;;AA1KD,QAwKD,8BAxKE;EA6KE,yBAAA;;ALnJJ,QAuGE;EACE,qBAAA;EACA,kBAAA;EACA,0DAAA;EACA,YAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,SAAA;;AA/GJ,QAkHE;EACE,qBAAA;EACA,iBAAA;EACA,eAAA;EACA,yBAAA;EACA,kBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;;AAEA,QAVF,gBAUG;EACC,mBAAA;EACA,cAAA;;AAGF,QAfF,gBAeG;EACC,mBAAA;EACA,cAAA;;AAnIN,QAuIE;EACE,UAAA;;AAxIJ,QA2IE;EACE,WAAA;;AA5IJ,QAiJE;EAGE,qBAAA;EACA,sBAAA;EACA,iBAAA;EACA,qBAAA;EACA,gBAAA;EACA,gBAAA;EACA,kBAAA;;AAEA,QAXF,YAWG;EACC,gBAAA;EACA,eAAA;;AKxLL,QL2KC,YK3KA;EL4LI,aAAA;;AAGF,QApBF,YAoBG;EACC,eAAA;EACA,qBAAA;EACA,gBAAA;;AAGF,QA1BF,YA0BG;EACC,aAAA;EACA,gBAAA;;AAGF,QA/BF,YA+BG;EACC,YAAA;EACA,WAAA;EACA,YAAA;EACA,cAAA;;AK9ML,QL2KC,YK3KA;ELkNI,gBAAgB,mCAAhB;;AKlNL,QL2KC,YK3KA;ELsNI,gBAAgB,oCAAhB;;AAGF,QA9CF,YA8CG;EACC,yBAAA;EACA,WAAA;EACA,yBAAA;;AAEA,QAnDJ,YA8CG,SAKE;EACC,eAAA;EACA,sBAAA;EACA,yBAAA;;AAIJ,QA1DF,YA0DG;EAEC,sBAAA;EACA,cAAA;EACA,yBAAA;;AAEA,QAhEJ,YA0DG,QAME;EACC,sBAAA;EACA,WAAA;EACA,yBAAA;;AAIJ,QAvEF,YAuEG;EAEC,sBAAA;EACA,cAAA;EACA,yBAAA;;AAEA,QA7EJ,YAuEG,QAME;EACC,sBAAA;EACA,WAAA;EACA,yBAAA;;AAjOR,QA0OE;EAGE,qBAAA;EACA,sBAAA;EACA,YAAA;EACA,iBAAA;;AK1QH,QLoQC,YKpQA;EL6QI,mBAAA;EACA,cAAA;EACA,yBAAA;;AK/QL,QLoQC,YKpQA;ELmRI,mBAAA;EACA,yBAAA;EACA,cAAA;;AAGF,QApBF,YAoBG;EACC,aAAA;EACA,gBAAA;;AAMJ,QAAC;EACC,iBAAA;EACA,eAAA;EACA,iBAAA;EACA,MAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,gBAAA;EACA,gBAAA;;AA/QJ,QAkRE;EACE,cAAA;EACA,WAAA;EACA,SAAA;EACA,sBAAA;;AAtRJ,QAyRE;EACE,cAAA;EAEA,oBAAA;EACA,cAAA;EACA,eAAA;EACA,iBAAA;;AA/RJ,QAyRE,kBAQE;EACE,eAAA;EACA,SAAA;;AAEA,QAZJ,kBAQE,EAIG,IAAI;EACH,mBAAA;;AAtSR,QAyRE,kBAiBE;AA1SJ,QAyRE,kBAiB8B;EAC1B,mBAAA;EACA,UAAA;EACA,gBAAA;EACA,mBAAA;EACA,aAAA;EACA,mBAAA;EAEA,4BAAA;;AAlTN,QAyRE,kBA6BE;EACE,mBAAA;EAEA,2BAAA;EACA,iBAAA;;AA1TN,QAyRE,kBA6BE,iCAME;EACE,kBAAA;EACA,gBAAA;EACA,eAAA;EACA,gBAAA;EACA,gCAAA;EACA,sBAAA;;AAlUR,QAyRE,kBA6BE,iCAME,GAQE;EACE,cAAA;EACA,eAAA;EACA,gBAAA;EACA,cAAA;EACA,yBAAA;;AAzUV,QAyRE,kBA6BE,iCAuBE;EACE,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,UAAA;;AAjVR,QAyRE,kBA6BE,iCAuBE,GAME;EACE,kBAAA;EACA,gBAAA;EACA,eAAA;EACA,cAAA;EACA,UAAA;;AAEA,QAjER,kBA6BE,iCAuBE,GAME,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;;AAtWZ,QA6WE;EAEE,oBAAA;;AAEA,QAJF,qBAIG;EACC,mBAAA;;AAlXN,QA6WE,qBKvYD;ELgZK,aAAA;EACA,aAAA;;AAKN,mBAAsC;EACpC,KACE;IACE,eAAA;;EAFJ,KAKE;IACE,sBAAA;;EANJ,KASE,uBACE;IACE,cAAA;;EAXN,KAeE,wBACE;IACE,eAAA;;EAjBN,KAeE,wBAKE;EApBJ,KAeE,wBAK2B;IACvB,eAAA;;EArBN,KAeE,wBASE;IACE,eAAA;IACA,cAAA;IACA,gBAAA;;EA3BN,KAeE,wBAgBE;IACE,WAAA;IACA,YAAA;IACA,qBAAA;IACA,sBAAA;;EAnCN,KAuCE;IACE,UAAA;;EAEA,KAHF;EAvCF,KAuCE,kBAGK;IACD,eAAA;;EA3CN,KAuCE,kBAOE;IACE,uBAAA;;EA/CN,KAmDE;IACE,eAAA;;EApDJ,KAuDE;IACE,SAAA;;EAxDJ,KAuDE,WAGE;IACE,eAAA;;EA3DN,KAuDE,WAOE,iBACE;IACE,eAAA;;EAIA,KAbN,WAOE,iBAKE;EACE,KAbN,WAOE,iBAK2B;EACvB,KAbN,WAOE,iBAKqD;EAnEzD,KAuDE,WAOE,iBAKE,wBACK;EApEX,KAuDE,WAOE,iBAK2B,yBACpB;EApEX,KAuDE,WAOE,iBAKqD,qBAC9C;IACD,eAAA;;EArEV,KAuDE,WAmBE;IACE,eAAA;;EA3EN,KAuDE,WAmBE,wBAGE;IACE,eAAA;IACA,oBAAA;IACA,gBAAA;IACA,iBAAA;;EAjFR,KAuDE,WA8BE,wBACE;IACE,eAAA;;EAvFR,KAuDE,WAoCE;IACE,UAAA;;EA5FN,KAuDE,WAoCE,0BAGE;EA9FN,KAuDE,WAoCE,0BAGkC;IAC9B,eAAA;;EA/FR,KAuDE,WAoCE,0BAOE;IACE,eAAA;;EAnGR,KAuDE,WAgDE;IACE,UAAA;;;AAMR,mBAAsC;EACpC,KACE;IACE,aAAA;;EAFJ,KAKE;IACE,cAAA","file":"assets-manager.css"}
components/assets-manager/assets/css/assets-manager.less CHANGED
@@ -159,8 +159,16 @@ body {
159
  }
160
  }
161
 
 
 
 
 
 
 
 
 
162
  // BUTTONS
163
- // --------------------------------------------------------------
164
  .wam-button {
165
  @buttonClass: ~"wam-button";
166
 
@@ -246,10 +254,10 @@ body {
246
  }
247
  }
248
 
249
- // --------------------------------------------------------------
250
 
251
  // CONTROLS
252
- // --------------------------------------------------------------
253
  .wam-select {
254
  @selectClass: ~"wam-select";
255
 
@@ -282,7 +290,7 @@ body {
282
  min-width: 1365px;
283
  position: fixed;
284
  z-index: 99999999;
285
- top: 32px;
286
  bottom: 0;
287
  left: 0;
288
  right: 0;
159
  }
160
  }
161
 
162
+ .wam-colors--red {
163
+ color: red;
164
+ }
165
+
166
+ .wam-colors--grey {
167
+ color: grey;
168
+ }
169
+
170
  // BUTTONS
171
+ // ------------------------------------------------------------
172
  .wam-button {
173
  @buttonClass: ~"wam-button";
174
 
254
  }
255
  }
256
 
257
+ // -------------------------------------------------------------
258
 
259
  // CONTROLS
260
+ // -------------------------------------------------------------
261
  .wam-select {
262
  @selectClass: ~"wam-select";
263
 
290
  min-width: 1365px;
291
  position: fixed;
292
  z-index: 99999999;
293
+ top: 0;
294
  bottom: 0;
295
  left: 0;
296
  right: 0;
components/assets-manager/assets/css/float-panel.less CHANGED
@@ -8,7 +8,7 @@
8
  .wam-float-panel {
9
  position: fixed;
10
  z-index: 50;
11
- top: 30px;
12
  right: 0;
13
  left: 0;
14
  width: 100%;
8
  .wam-float-panel {
9
  position: fixed;
10
  z-index: 50;
11
+ top: 0;
12
  right: 0;
13
  left: 0;
14
  width: 100%;
components/assets-manager/assets/css/tables.css CHANGED
@@ -5,13 +5,24 @@
5
  * @copyright Webcraftic 26.08.2019
6
  */
7
  .wam-table {
 
 
8
  table-layout: fixed;
9
  border-collapse: collapse;
10
- margin: 0 30px;
11
  }
12
- .wam-table tbody:nth-child(2n) {
 
 
 
 
 
 
 
 
 
 
 
13
  background: #f9f9f9;
14
- border-bottom: 15px solid white;
15
  }
16
  .wam-table th {
17
  padding: 12px 10px;
@@ -23,374 +34,52 @@
23
  .wam-table th:not(:last-child) {
24
  border-right: 2px solid #FFF;
25
  }
26
- .wam-table td {
27
- vertical-align: top;
28
- border-bottom: 1px solid #ECEDED;
29
- text-align: left;
30
- background: none;
31
- box-shadow: none;
32
- }
33
- .wam-table td:first-child {
34
- width: 20%;
35
- }
36
- .wam-table__th-plugins-list {
37
- width: 350px;
38
- }
39
- .wam-table__td-plugin-settings {
40
- width: 80%;
41
- padding: 15px;
42
- text-align: left;
43
- }
44
- .wam-table__alternate th {
45
- background: #eceded;
46
- font-weight: 600;
47
- }
48
- .wam-table__column_switch {
49
- vertical-align: top;
50
- width: 10%;
51
- }
52
- th.wam-table__column_switch {
53
- padding: 0 !important;
54
- }
55
- th.wam-table__column_switch em {
56
- display: block;
57
- padding: 10px 12px;
58
- font-style: normal;
59
- font-size: 11px;
60
- font-weight: lighter;
61
- }
62
- th.wam-table__column_switch b {
63
- display: block;
64
- padding: 10px 12px;
65
- font-weight: 600;
66
- }
67
- .wam-table__column_condition {
68
- width: 30%;
69
  }
70
- .wam-table__loaded {
71
  width: 100px;
72
- text-align: center;
73
  }
74
- .wam-table__th-external-plugin {
75
- display: block;
76
- position: relative;
77
- font-size: 13px;
78
- background: #e0e0e0;
79
- color: #444444;
80
- padding: 5px 10px;
81
- margin-top: 0;
82
- }
83
- .wam-table__th-external-plugin .wam-help-hint {
84
- display: block;
85
- position: absolute;
86
- top: 4px;
87
- right: 4px;
88
- line-height: 1.2;
89
- }
90
- .wam-table__loaded-state {
91
- position: relative;
92
- display: inline-block;
93
- width: 30px;
94
- height: 30px;
95
- vertical-align: middle;
96
- border-radius: 20px;
97
- }
98
- .wam-table__loaded-state::after {
99
- content: "";
100
- position: absolute;
101
- top: 9px;
102
- left: 8px;
103
- width: 15px;
104
- height: 7px;
105
- -webkit-transform: rotate(-45deg);
106
- transform: rotate(-45deg);
107
- border: solid #FFF;
108
- border-width: 0 0 2px 2px;
109
- }
110
- .wam-table__loaded-super-no {
111
- background: #C8CFD7 !important;
112
- }
113
- .wam-table__loaded-no {
114
- background: #C8CFD7;
115
- }
116
- .wam-table__loaded-yes {
117
- background: #8BC34A;
118
- }
119
- .wam-table__size {
120
- width: 75px;
121
  }
122
- .wam-table__size-value {
123
- color: #737373;
124
- font-size: 15px;
125
- line-height: 20px;
126
  }
127
- .wam-table__item {
128
- color: #737373;
 
129
  }
130
- td.wam-table__item:nth-child(2) {
 
 
131
  text-align: left;
 
132
  }
133
- .wam-table__item-name {
134
- margin: 0 0 3px;
135
- text-transform: uppercase;
136
- font-size: 16px;
137
- font-weight: bold;
138
- }
139
- .wam-table__item-author {
140
- margin: 0 0 4px;
141
- }
142
- .wam-table__script-name {
143
- color: #737373;
144
- font-size: 16px;
145
- font-weight: bold;
146
- }
147
- .wam-table__script-name b {
148
- display: inline-block;
149
- padding: 5px 10px;
150
- font-size: 13px;
151
- text-transform: uppercase;
152
- text-align: center;
153
- border-radius: 3px;
154
- vertical-align: middle;
155
- margin-right: 15px;
156
- }
157
- .wam-table__script-name b.wbcr-wgz-resource-type-js {
158
- background: #ffcb1e;
159
- color: #403102;
160
- }
161
- .wam-table__script-name b.wbcr-wgz-resource-type-css {
162
- background: #9757a5;
163
- color: #ffffff;
164
- }
165
- .wam-table__script-name:not(:last-child) {
166
- margin-bottom: 5px;
167
- }
168
- .wam-table__script-path {
169
- color: #BBBBBA;
170
- }
171
- .wam-table__script-path,
172
- .wam-table__script-path a {
173
- font-size: 12px;
174
- }
175
- .wam-table__script-version {
176
- color: #BBBBBA;
177
- font-size: 12px;
178
- padding: 5px 0;
179
- }
180
- .wam-table__state {
181
- width: 200px;
182
- }
183
- .wam-table__turn-on {
184
- width: 500px;
185
- }
186
- .wam-table__note {
187
- color: #BBB;
188
- font-style: italic;
189
- line-height: 21px;
190
- }
191
- .wam-table__note p {
192
- margin: 0;
193
- }
194
- .wam-table__note p:not(:last-child) {
195
- margin-bottom: 12px;
196
- }
197
- .wam-table__select-wrapper::before,
198
- .wam-table__select-wrapper::after {
199
- display: none !important;
200
- }
201
- .wam-table__select {
202
- padding: 8px 28px 8px 10px;
203
- color: #4B4E51;
204
- border: none;
205
- border-radius: 3px;
206
- background: #F2F3F3 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFCAYAAACXU8ZrAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFNJREFUeNpinDZtWgQDA0MjEKsxYAeLmDIzM1cAGbNwKQDKxzNBOXOBOBeI76ArADEY////DxedPn16EpCaBMRrYQpAgAXN+I1ALA1U0IwsCBBgADmdFtA7IxcEAAAAAElFTkSuQmCC") no-repeat right 10px top 50%;
207
- font-size: 13px;
208
- -webkit-appearance: none;
209
- -moz-appearance: none;
210
- appearance: none;
211
- }
212
- .wam-table__select:not(:last-child) {
213
- margin-bottom: 16px;
214
- }
215
- .wam-table__select:focus {
216
- outline: none;
217
- background-color: #E5E7E7;
218
- box-shadow: 0 0 0 2px rgba(255, 203, 30, 0.5);
219
- }
220
- .wam-table__select::-ms-expand {
221
- display: none;
222
- }
223
- .wam-table__select-pro {
224
- color: rgba(242, 39, 20, 0.34);
225
- }
226
- .wam-table__label {
227
- display: block;
228
- margin: 15px 0 15px 10px;
229
- padding-bottom: 5px;
230
- color: #414B56;
231
- font-size: 13px;
232
- font-weight: bold;
233
- border-bottom: 2px solid #efefef;
234
- }
235
- .wam-table__label .wam-help-hint {
236
- vertical-align: bottom;
237
- }
238
- .wam-table__wrap-options {
239
- height: 150px;
240
- overflow-y: scroll;
241
- border: 1px solid #eceded;
242
- background: #f5f5f5;
243
- padding: 10px;
244
- margin-left: 10px;
245
- }
246
- .wam-table__options {
247
- display: block;
248
- max-width: 380px;
249
- margin: 0 0 -15px 10px;
250
- padding: 0;
251
- list-style: none;
252
- color: #646D78;
253
- font-size: 13px;
254
- }
255
- .wam-table__options-item-group {
256
- margin: 10px 0 5px;
257
- }
258
- .wam-table__options-item {
259
- display: block;
260
- padding: 0 20px 5px 0;
261
- }
262
- .wam-table__checkbox {
263
- cursor: pointer;
264
- }
265
- .wam-table__checkbox-text {
266
- position: relative;
267
- padding: 0 0 0 20px;
268
- color: #6f7275;
269
- font-size: 13px;
270
- }
271
- .wam-table__checkbox-text::before {
272
- content: "";
273
- position: absolute;
274
- top: 1px;
275
- left: 0;
276
- width: 13px;
277
- height: 13px;
278
- border-radius: 2px;
279
- background: #c8cfd7;
280
- }
281
- .wam-table__checkbox-input:checked ~ .wam-table__checkbox-text {
282
- color: #646D78;
283
- }
284
- .wam-table__checkbox-input:checked ~ .wam-table__checkbox-text::before {
285
- background: #FFCB1E;
286
- }
287
- .wam-table__checkbox-input:checked ~ .wam-table__checkbox-text::after {
288
- content: "";
289
- position: absolute;
290
- top: 5px;
291
- left: 4px;
292
- width: 6px;
293
- height: 4px;
294
- -webkit-transform: rotate(-45deg);
295
- transform: rotate(-45deg);
296
- border: solid #FFF;
297
- border-width: 0 0 2px 2px;
298
- }
299
- .wam-table__field {
300
- font-size: 13px;
301
- }
302
- .wam-table__field-item {
303
- display: -webkit-flex;
304
- display: -ms-flexbox;
305
- display: flex;
306
- margin: 0 0 10px;
307
- }
308
- .wam-table__field-input,
309
- .wam-table__textarea {
310
- width: 70%;
311
- padding: 8px 10px;
312
- margin-left: 10px;
313
- color: #4B4E51;
314
- border: none;
315
- border-radius: 3px;
316
- background: #ececec;
317
- font-size: 100%;
318
- }
319
- .wam-table__field-input:focus,
320
- .wam-table__textarea:focus {
321
- outline: none;
322
- /*box-shadow: 0 0 0 2px rgba(255, 203, 30, .5);*/
323
- }
324
- .wam-table__field-add {
325
- width: 30px;
326
- margin: 0 0 0 5px;
327
- cursor: pointer;
328
- border: none;
329
- border-radius: 3px;
330
- background: #FFCB1E;
331
- }
332
- .wam-table__field-add::before {
333
- content: "+";
334
- color: #4E3E09;
335
- }
336
- .wam-table__field-add:hover {
337
- background: #FBC100;
338
- }
339
- .wam-table__field-add:focus {
340
- outline: none;
341
- box-shadow: 0 0 0 2px rgba(255, 203, 30, 0.5);
342
- }
343
- .wam-table__textarea {
344
- width: 95%;
345
- padding-right: 10px;
346
- margin: 0 0 10px 10px;
347
- }
348
- .wam-table__also {
349
- font-size: 12px;
350
- font-weight: bold;
351
- margin-top: 15px;
352
- }
353
- .wam-table__also .wam-table__label {
354
- font-size: 12px;
355
- padding: 5px 5px 5px 0;
356
- margin: 0;
357
- }
358
- .wam-table__also-url {
359
- color: #A9AAAA;
360
- }
361
- .wam-table__also-url span {
362
- display: block;
363
- }
364
- .wam-table__also-url span a {
365
- text-decoration: underline;
366
- color: #adaeae;
367
- font-size: 12px;
368
- }
369
- .wgz-td,
370
- .wgz-th {
371
- max-width: 600px;
372
- }
373
- .wgz-td {
374
- word-wrap: break-word;
375
  }
376
- .wam-assets-table {
377
- width: 100%;
378
  }
379
- .wam-assets-table td {
380
- padding: 17px 10px;
 
 
 
381
  }
382
- .wam-assets-table .js-wam-table__tr--disabled-section {
383
  background: #fbf5f4;
384
  opacity: 0.7;
385
  }
386
- .wam-assets-table__asset-settings-conditions {
387
  display: none;
388
  background: #f3f3f3;
389
  color: #7b7b7b;
390
  font-size: 13px;
391
  box-shadow: 0 2px 0 #d4d4d4;
392
  }
393
- .wam-assets-table__asset-settings-conditions > td {
394
- padding: 0px 25px 15px 25px !important;
395
  }
396
  /*# sourceMappingURL=tables.css.map */
5
  * @copyright Webcraftic 26.08.2019
6
  */
7
  .wam-table {
8
+ width: 100%;
9
+ box-sizing: border-box;
10
  table-layout: fixed;
11
  border-collapse: collapse;
 
12
  }
13
+ .wam-table__handle-deps {
14
+ margin-top: 15px;
15
+ }
16
+ .wam-table__handle-deps span,
17
+ .wam-table__handle-deps a {
18
+ font-size: 11px !important;
19
+ }
20
+ .wam-table__handle-deps a {
21
+ color: red;
22
+ text-decoration: underline;
23
+ }
24
+ .wam-table tr:nth-child(2n) > td {
25
  background: #f9f9f9;
 
26
  }
27
  .wam-table th {
28
  padding: 12px 10px;
34
  .wam-table th:not(:last-child) {
35
  border-right: 2px solid #FFF;
36
  }
37
+ .wam-table__th-actions {
38
+ width: 200px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  }
40
+ .wam-table__th-type {
41
  width: 100px;
 
42
  }
43
+ .wam-table__th-version {
44
+ width: 100px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
46
+ .wam-table__th-size {
47
+ width: 100px;
 
 
48
  }
49
+ .wam-table__th-plugins-list,
50
+ .wam-table__td-plugins-list {
51
+ width: 350px;
52
  }
53
+ .wam-table td {
54
+ padding: 17px 10px;
55
+ vertical-align: top;
56
  text-align: left;
57
+ box-shadow: none;
58
  }
59
+ .wam-table__td-handle {
60
+ word-break: break-word;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  }
62
+ .wam-table__td-plugins-list {
63
+ padding: 0 !important;
64
  }
65
+ .wam-table__th-plugins-settings,
66
+ .wam-table__td-plugins-settings {
67
+ width: 80%;
68
+ padding: 15px;
69
+ text-align: left;
70
  }
71
+ .wam-table .js-wam-table__tr--disabled-section {
72
  background: #fbf5f4;
73
  opacity: 0.7;
74
  }
75
+ .wam-table__asset-settings-conditions {
76
  display: none;
77
  background: #f3f3f3;
78
  color: #7b7b7b;
79
  font-size: 13px;
80
  box-shadow: 0 2px 0 #d4d4d4;
81
  }
82
+ .wam-table__asset-settings-conditions > td {
83
+ padding: 0 25px 15px 25px;
84
  }
85
  /*# sourceMappingURL=tables.css.map */
components/assets-manager/assets/css/tables.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["tables.less"],"names":[],"mappings":";;;;;;AAOA;EACE,mBAAA;EACA,yBAAA;EACA,cAAA;;AAHF,UAKE,MAAK,UAAU;EACb,mBAAA;EACA,+BAAA;;AAPJ,UAUE;EACE,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;EACA,gBAAA;;AAfJ,UAkBE,GAAE,IAAI;EACJ,4BAAA;;AAnBJ,UAsBE;EAEE,mBAAA;EACA,gCAAA;EACA,gBAAA;EACA,gBAAA;EACA,gBAAA;;AA5BJ,UA+BE,GAAE;EACA,UAAA;;AAGF,UAAC;EACC,YAAA;;AAGF,UAAC;EACC,UAAA;EACA,aAAA;EACA,gBAAA;;AAIJ,qBAAsB;EACpB,mBAAA;EACA,gBAAA;;AAGF;EACE,mBAAA;EACA,UAAA;;AAIF,EAAE;EACA,qBAAA;;AAGF,EAAE,yBAA0B;EAC1B,cAAA;EACA,kBAAA;EACA,kBAAA;EACA,eAAA;EACA,oBAAA;;AAGF,EAAE,yBAA0B;EAC1B,cAAA;EACA,kBAAA;EACA,gBAAA;;AAGF;EACE,UAAA;;AAGF;EACE,YAAA;EACA,kBAAA;;AAGF;EACE,cAAA;EACA,kBAAA;EACA,eAAA;EACA,mBAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;;AAPF,8BASE;EACE,cAAA;EACA,kBAAA;EACA,QAAA;EACA,UAAA;EACA,gBAAA;;AAIJ;EACE,kBAAA;EACA,qBAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,mBAAA;;AAGF,wBAAwB;EACtB,SAAS,EAAT;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,mBAAmB,cAAnB;EACA,WAAW,cAAX;EACA,kBAAA;EACA,yBAAA;;AAGF;EACE,mBAAA;;AAGF;EACE,mBAAA;;AAGF;EACE,mBAAA;;AAGF;EACE,WAAA;;AAGF;EACE,cAAA;EACA,eAAA;EACA,iBAAA;;AAGF;EACE,cAAA;;AAGF,EAAE,gBAAgB,UAAU;EAC1B,gBAAA;;AAGF;EACE,eAAA;EACA,yBAAA;EACA,eAAA;EACA,iBAAA;;AAGF;EACE,eAAA;;AAGF;EACE,cAAA;EACA,eAAA;EACA,iBAAA;;AAHF,uBAKE;EACE,qBAAA;EACA,iBAAA;EACA,eAAA;EACA,yBAAA;EACA,kBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;;AAEA,uBAVF,EAUG;EACC,mBAAA;EACA,cAAA;;AAGF,uBAfF,EAeG;EACC,mBAAA;EACA,cAAA;;AAKN,uBAAuB,IAAI;EACzB,kBAAA;;AAGF;EACE,cAAA;;AAEA;AAHF,uBAGK;EACD,eAAA;;AAIJ;EACE,cAAA;EACA,eAAA;EACA,cAAA;;AAGF;EACE,YAAA;;AAGF;EACE,YAAA;;AAGF;EACE,WAAA;EACA,kBAAA;EACA,iBAAA;;AAGF,gBAAiB;EACf,SAAA;;AAGF,gBAAiB,EAAC,IAAI;EACpB,mBAAA;;AAIA,0BAAC;AAAU,0BAAC;EACV,wBAAA;;AAIJ;EACE,0BAAA;EACA,cAAA;EACA,YAAA;EACA,kBAAA;EACA,wBAAwB,kSAAxB;EACA,eAAA;EAEA,wBAAA;EACA,qBAAA;EACA,gBAAA;;AAGF,kBAAkB,IAAI;EACpB,mBAAA;;AAGF,kBAAkB;EAChB,aAAA;EACA,yBAAA;EACA,6CAAA;;AAGF,kBAAkB;EAChB,aAAA;;AAGF;EACE,8BAAA;;AAGF;EACE,cAAA;EACA,wBAAA;EACA,mBAAA;EACA,cAAA;EACA,eAAA;EACA,iBAAA;EACA,gCAAA;;AAPF,iBASE;EACE,sBAAA;;AAIJ;EACE,aAAA;EACA,kBAAA;EACA,yBAAA;EACA,mBAAA;EACA,aAAA;EACA,iBAAA;;AAGF;EACE,cAAA;EACA,gBAAA;EACA,sBAAA;EACA,UAAA;EACA,gBAAA;EACA,cAAA;EACA,eAAA;;AAGF;EACE,kBAAA;;AAGF;EACE,cAAA;EACA,qBAAA;;AAGF;EACE,eAAA;;AAGF;EACE,kBAAA;EACA,mBAAA;EACA,cAAA;EACA,eAAA;;AAGF,yBAAyB;EACvB,SAAS,EAAT;EACA,kBAAA;EACA,QAAA;EACA,OAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;EACA,mBAAA;;AAGF,0BAA0B,QAAS;EACjC,cAAA;;AAGF,0BAA0B,QAAS,4BAA2B;EAC5D,mBAAA;;AAGF,0BAA0B,QAAS,4BAA2B;EAC5D,SAAS,EAAT;EACA,kBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,mBAAmB,cAAnB;EACA,WAAW,cAAX;EACA,kBAAA;EACA,yBAAA;;AAGF;EACE,eAAA;;AAGF;EACE,qBAAA;EACA,oBAAA;EACA,aAAA;EACA,gBAAA;;AAGF;AACA;EACE,UAAA;EACA,iBAAA;EACA,iBAAA;EACA,cAAA;EACA,YAAA;EACA,kBAAA;EACA,mBAAA;EACA,eAAA;;AAGF,uBAAuB;AACvB,oBAAoB;EAClB,aAAA;;;AAIF;EACE,WAAA;EACA,iBAAA;EACA,eAAA;EACA,YAAA;EACA,kBAAA;EACA,mBAAA;;AAGF,qBAAqB;EACnB,SAAS,GAAT;EACA,cAAA;;AAGF,qBAAqB;EACnB,mBAAA;;AAGF,qBAAqB;EACnB,aAAA;EACA,6CAAA;;AAGF;EACE,UAAA;EACA,mBAAA;EACA,qBAAA;;AAGF;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;;AAGF,gBAAiB;EACf,eAAA;EACA,sBAAA;EACA,SAAA;;AAGF;EACE,cAAA;;AADF,oBAGE;EACE,cAAA;;AAJJ,oBAGE,KAGE;EACE,0BAAA;EACA,cAAA;EACA,eAAA;;AAKN;AAAS;EACP,gBAAA;;AAGF;EACE,qBAAA;;AAGF;EAGE,WAAA;;AAHF,iBAKE;EACE,kBAAA;;AANJ,iBArcC;EA+cG,mBAAA;EACA,YAAA;;AAGF,iBAAC;EACC,aAAA;EACA,mBAAA;EACA,cAAA;EACA,eAAA;EACA,2BAAA;;AAEA,iBAPD,2BAOG;EACA,sCAAA","file":"tables.css"}
1
+ {"version":3,"sources":["tables.less"],"names":[],"mappings":";;;;;;AAOA;EAEE,WAAA;EACA,sBAAA;EACA,mBAAA;EACA,yBAAA;;AAEA,UAAC;EACC,gBAAA;;AADF,UAAC,aAGC;AAHF,UAAC,aAGO;EACJ,0BAAA;;AAJJ,UAAC,aAOC;EACE,UAAA;EACA,0BAAA;;AAhBN,UAoBE,GAAE,UAAU,IAAK;EACf,mBAAA;;AArBJ,UAyBE;EACE,kBAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;EACA,gBAAA;;AA9BJ,UAiCE,GAAE,IAAI;EACJ,4BAAA;;AAIF,UAAC;EACC,YAAA;;AAGF,UAAC;EACC,YAAA;;AAGF,UAAC;EACC,YAAA;;AAGF,UAAC;EACC,YAAA;;AAGF,UAAC;AAAmB,UAAC;EACnB,YAAA;;AAvDJ,UA0DE;EACE,kBAAA;EACA,mBAAA;EAGA,gBAAA;EACA,gBAAA;;AAGF,UAAC;EACC,sBAAA;;AAGF,UAAC;EACC,qBAAA;;AAGF,UAAC;AAAuB,UAAC;EACvB,UAAA;EACA,aAAA;EACA,gBAAA;;AA9EJ,UAiFE;EACE,mBAAA;EACA,YAAA;;AAGF,UAAC;EACC,aAAA;EACA,mBAAA;EACA,cAAA;EACA,eAAA;EACA,2BAAA;;AAEA,UAPD,2BAOG;EACA,yBAAA","file":"tables.css"}
components/assets-manager/assets/css/tables.less CHANGED
@@ -12,6 +12,19 @@
12
  table-layout: fixed;
13
  border-collapse: collapse;
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  tr:nth-child(2n) > td {
16
  background: #f9f9f9;
17
  //border-bottom: 15px solid white;
@@ -29,18 +42,6 @@
29
  border-right: 2px solid #FFF;
30
  }
31
 
32
- td {
33
- padding: 17px 10px;
34
- vertical-align: top;
35
- //background: #f9f9f9;
36
- border-bottom: 1px solid #ECEDED;
37
- text-align: left;
38
- box-shadow: none;
39
- }
40
-
41
- /*td:first-child {
42
- width: 20%;
43
- }*/
44
 
45
  &__th-actions {
46
  width: 200px;
@@ -50,10 +51,6 @@
50
  width: 100px;
51
  }
52
 
53
- &__td-handle {
54
- word-break: break-word;
55
- }
56
-
57
  &__th-version {
58
  width: 100px
59
  }
@@ -66,6 +63,19 @@
66
  width: 350px;
67
  }
68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  &__td-plugins-list {
70
  padding: 0 !important;
71
  }
12
  table-layout: fixed;
13
  border-collapse: collapse;
14
 
15
+ &__handle-deps {
16
+ margin-top: 15px;
17
+
18
+ span, a {
19
+ font-size: 11px !important;
20
+ }
21
+
22
+ a {
23
+ color: red;
24
+ text-decoration: underline;
25
+ }
26
+ }
27
+
28
  tr:nth-child(2n) > td {
29
  background: #f9f9f9;
30
  //border-bottom: 15px solid white;
42
  border-right: 2px solid #FFF;
43
  }
44
 
 
 
 
 
 
 
 
 
 
 
 
 
45
 
46
  &__th-actions {
47
  width: 200px;
51
  width: 100px;
52
  }
53
 
 
 
 
 
54
  &__th-version {
55
  width: 100px
56
  }
63
  width: 350px;
64
  }
65
 
66
+ td {
67
+ padding: 17px 10px;
68
+ vertical-align: top;
69
+ //background: #f9f9f9;
70
+ //border-bottom: 1px solid #ECEDED;
71
+ text-align: left;
72
+ box-shadow: none;
73
+ }
74
+
75
+ &__td-handle {
76
+ word-break: break-word;
77
+ }
78
+
79
  &__td-plugins-list {
80
  padding: 0 !important;
81
  }
components/assets-manager/assets/css/tabs.less CHANGED
@@ -7,7 +7,7 @@
7
 
8
  .wam-assets-type-tabs {
9
  position: fixed;
10
- top: 92px;
11
  bottom: 0;
12
  left: 0;
13
  width: 75px;
@@ -109,6 +109,7 @@
109
  list-style: none;
110
 
111
  .wam-nav-plugins__tab {
 
112
  text-align: left;
113
  margin-bottom: 3px;
114
 
@@ -140,6 +141,28 @@
140
  background: #e8e8e8;
141
  }
142
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  }
144
  }
145
 
7
 
8
  .wam-assets-type-tabs {
9
  position: fixed;
10
+ top: 62px;
11
  bottom: 0;
12
  left: 0;
13
  width: 75px;
109
  list-style: none;
110
 
111
  .wam-nav-plugins__tab {
112
+ position: relative;
113
  text-align: left;
114
  margin-bottom: 3px;
115
 
141
  background: #e8e8e8;
142
  }
143
  }
144
+
145
+ &-load-mode--enable::after,
146
+ &-load-mode--disable-plugin::after,
147
+ &-load-mode--disable-assets::after {
148
+ display: block;
149
+ content: '';
150
+ position: absolute;
151
+ bottom: 10px;
152
+ right: 10px;
153
+ width: 10px;
154
+ height: 10px;
155
+ background: #8bc34a;
156
+ text-align: center;
157
+ font-size: 11px;
158
+ font-weight: 600;
159
+ border-radius: 4px;
160
+ }
161
+
162
+ &-load-mode--disable-assets::after,
163
+ &-load-mode--disable-plugin::after {
164
+ background: #d47b7b;
165
+ }
166
  }
167
  }
168
 
components/assets-manager/assets/js/index.php DELETED
File without changes
components/assets-manager/assets/js/{wam-jquery-migrate.min.js → libs/wam-jquery-migrate.min.js} RENAMED
File without changes
components/assets-manager/assets/js/{wam-jquery.js → libs/wam-jquery.js} RENAMED
File without changes
components/assets-manager/assets/js/libs/wam-pnotify-confirm.js ADDED
@@ -0,0 +1,790 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
2
+
3
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
4
+
5
+ /* src/PNotifyConfirm.html generated by Svelte v2.16.1 */
6
+ var WamPnotifyConfirm = function (PNotify) {
7
+ "use strict";
8
+
9
+ PNotify = PNotify && PNotify.__esModule ? PNotify["default"] : PNotify;
10
+
11
+ function data() {
12
+ return _extends({
13
+ '_notice': null, // The PNotify notice.
14
+ '_options': {} // The options for the notice.
15
+ }, PNotify.modules.Confirm.defaults);
16
+ };
17
+
18
+ var methods = {
19
+ initModule: function initModule(options) {
20
+ this.set(options);
21
+ },
22
+ afterOpen: function afterOpen() {
23
+ if (this.get().prompt && this.get().focus !== false) {
24
+ if (this.get().promptMultiLine) {
25
+ this.refs.promptMulti.focus();
26
+ } else {
27
+ this.refs.promptSingle.focus();
28
+ }
29
+ } else if (this.get().confirm && (this.get().focus === true || this.get().focus === null && this.get()._options.stack.modal)) {
30
+ var buttons = this.get().buttons;
31
+ if (buttons.length) {
32
+ var i = buttons.length - 1;
33
+ while (i >= 0) {
34
+ if (buttons[i].promptTrigger) {
35
+ break;
36
+ }
37
+ i--;
38
+ }
39
+ this.refs.buttons.children[i].focus();
40
+ }
41
+ }
42
+ },
43
+ handleClick: function handleClick(button, event) {
44
+ if (button.click) {
45
+ button.click(this.get()._notice, this.get().prompt ? this.get().promptValue : null, event);
46
+ }
47
+ },
48
+ handleKeyPress: function handleKeyPress(event) {
49
+ if (event.keyCode === 13 && !event.shiftKey) {
50
+ event.preventDefault();
51
+
52
+ var _get = this.get(),
53
+ buttons = _get.buttons;
54
+
55
+ for (var i = 0; i < buttons.length; i++) {
56
+ if (buttons[i].promptTrigger && buttons[i].click) {
57
+ buttons[i].click(this.get()._notice, this.get().prompt ? this.get().promptValue : null, event);
58
+ }
59
+ }
60
+ }
61
+ }
62
+ };
63
+
64
+ function oncreate() {
65
+ this.fire('init', { module: this });
66
+ };
67
+
68
+ function setup(Component) {
69
+ Component.key = 'Confirm';
70
+
71
+ Component.defaults = {
72
+ // Make a confirmation box.
73
+ confirm: false,
74
+ // Make a prompt.
75
+ prompt: false,
76
+ // Classes to add to the input element of the prompt.
77
+ promptClass: '',
78
+ // The value of the prompt.
79
+ promptValue: '',
80
+ // Whether the prompt should accept multiple lines of text.
81
+ promptMultiLine: false,
82
+ // For confirmation boxes, true means the first button or the button with promptTrigger will be focused, and null means focus will change only for modal notices. For prompts, true or null means focus the prompt. When false, focus will not change.
83
+ focus: null,
84
+ // Where to align the buttons. (flex-start, center, flex-end, space-around, space-between)
85
+ align: 'flex-end',
86
+ // The buttons to display, and their callbacks.
87
+ buttons: [{
88
+ text: 'Ok',
89
+ textTrusted: false,
90
+ addClass: '',
91
+ primary: true,
92
+ // Whether to trigger this button when the user hits enter in a single line prompt. Also, focus the button if it is a modal prompt.
93
+ promptTrigger: true,
94
+ click: function click(notice, value) {
95
+ notice.close();
96
+ notice.fire('pnotify.confirm', { notice: notice, value: value });
97
+ }
98
+ }, {
99
+ text: 'Cancel',
100
+ textTrusted: false,
101
+ addClass: '',
102
+ click: function click(notice) {
103
+ notice.close();
104
+ notice.fire('pnotify.cancel', { notice: notice });
105
+ }
106
+ }]
107
+ };
108
+
109
+ // Register the module with PNotify.
110
+ PNotify.modules.Confirm = Component;
111
+ // Append this module to the container.
112
+ PNotify.modulesAppendContainer.push(Component);
113
+
114
+ // Add button styles to styling objects.
115
+ _extends(PNotify.styling.brighttheme, {
116
+ actionBar: '',
117
+ promptBar: '',
118
+ btn: '',
119
+ btnPrimary: 'brighttheme-primary',
120
+ input: ''
121
+ });
122
+ _extends(PNotify.styling.bootstrap3, {
123
+ actionBar: 'ui-pnotify-confirm-ml',
124
+ promptBar: 'ui-pnotify-confirm-ml',
125
+ btn: 'btn btn-default ui-pnotify-confirm-mx-1',
126
+ btnPrimary: 'btn btn-default ui-pnotify-confirm-mx-1 btn-primary',
127
+ input: 'form-control'
128
+ });
129
+ _extends(PNotify.styling.bootstrap4, {
130
+ actionBar: 'ui-pnotify-confirm-ml',
131
+ promptBar: 'ui-pnotify-confirm-ml',
132
+ btn: 'btn btn-secondary mx-1',
133
+ btnPrimary: 'btn btn-primary mx-1',
134
+ input: 'form-control'
135
+ });
136
+ if (!PNotify.styling.material) {
137
+ PNotify.styling.material = {};
138
+ }
139
+ _extends(PNotify.styling.material, {
140
+ actionBar: '',
141
+ promptBar: '',
142
+ btn: '',
143
+ btnPrimary: 'ui-pnotify-material-primary',
144
+ input: ''
145
+ });
146
+ };
147
+
148
+ function add_css() {
149
+ var style = createElement("style");
150
+ style.id = 'svelte-1y9suua-style';
151
+ style.textContent = ".ui-pnotify-action-bar.svelte-1y9suua,.ui-pnotify-prompt-bar.svelte-1y9suua{margin-top:5px;clear:both}.ui-pnotify-action-bar.svelte-1y9suua{display:flex;flex-wrap:wrap;justify-content:flex-end}.ui-pnotify-prompt-input.svelte-1y9suua{margin-bottom:5px;display:block;width:100%}.ui-pnotify-confirm-mx-1.svelte-1y9suua{margin:0 5px}.ui-pnotify.ui-pnotify-with-icon .ui-pnotify-confirm-ml.svelte-1y9suua{margin-left:24px}[dir=rtl] .ui-pnotify.ui-pnotify-with-icon .ui-pnotify-confirm-ml.svelte-1y9suua{margin-right:24px;margin-left:0}";
152
+ append(document.head, style);
153
+ }
154
+
155
+ function click_handler(event) {
156
+ var _svelte = this._svelte,
157
+ component = _svelte.component,
158
+ ctx = _svelte.ctx;
159
+
160
+
161
+ component.handleClick(ctx.button, event);
162
+ }
163
+
164
+ function get_each_context(ctx, list, i) {
165
+ var child_ctx = Object.create(ctx);
166
+ child_ctx.button = list[i];
167
+ return child_ctx;
168
+ }
169
+
170
+ function create_main_fragment(component, ctx) {
171
+ var if_block_anchor;
172
+
173
+ var if_block = (ctx.confirm || ctx.prompt) && create_if_block(component, ctx);
174
+
175
+ return {
176
+ c: function c() {
177
+ if (if_block) if_block.c();
178
+ if_block_anchor = createComment();
179
+ },
180
+ m: function m(target, anchor) {
181
+ if (if_block) if_block.m(target, anchor);
182
+ insert(target, if_block_anchor, anchor);
183
+ },
184
+ p: function p(changed, ctx) {
185
+ if (ctx.confirm || ctx.prompt) {
186
+ if (if_block) {
187
+ if_block.p(changed, ctx);
188
+ } else {
189
+ if_block = create_if_block(component, ctx);
190
+ if_block.c();
191
+ if_block.m(if_block_anchor.parentNode, if_block_anchor);
192
+ }
193
+ } else if (if_block) {
194
+ if_block.d(1);
195
+ if_block = null;
196
+ }
197
+ },
198
+ d: function d(detach) {
199
+ if (if_block) if_block.d(detach);
200
+ if (detach) {
201
+ detachNode(if_block_anchor);
202
+ }
203
+ }
204
+ };
205
+ }
206
+
207
+ // (1:0) {#if confirm || prompt}
208
+ function create_if_block(component, ctx) {
209
+ var div1, text, div0, div0_class_value;
210
+
211
+ var if_block = ctx.prompt && create_if_block_2(component, ctx);
212
+
213
+ var each_value = ctx.buttons;
214
+
215
+ var each_blocks = [];
216
+
217
+ for (var i = 0; i < each_value.length; i += 1) {
218
+ each_blocks[i] = create_each_block(component, get_each_context(ctx, each_value, i));
219
+ }
220
+
221
+ return {
222
+ c: function c() {
223
+ div1 = createElement("div");
224
+ if (if_block) if_block.c();
225
+ text = createText("\n ");
226
+ div0 = createElement("div");
227
+
228
+ for (var i = 0; i < each_blocks.length; i += 1) {
229
+ each_blocks[i].c();
230
+ }
231
+ div0.className = div0_class_value = "\n ui-pnotify-action-bar\n " + (ctx._notice.get()._styles.actionBar ? ctx._notice.get()._styles.actionBar : '') + "\n " + (ctx._notice.get()._styles.text ? ctx._notice.get()._styles.text : '') + "\n " + " svelte-1y9suua";
232
+ setStyle(div0, "justify-content", ctx.align);
233
+ div1.className = "ui-pnotify-confirm";
234
+ },
235
+ m: function m(target, anchor) {
236
+ insert(target, div1, anchor);
237
+ if (if_block) if_block.m(div1, null);
238
+ append(div1, text);
239
+ append(div1, div0);
240
+
241
+ for (var i = 0; i < each_blocks.length; i += 1) {
242
+ each_blocks[i].m(div0, null);
243
+ }
244
+
245
+ component.refs.buttons = div0;
246
+ },
247
+ p: function p(changed, ctx) {
248
+ if (ctx.prompt) {
249
+ if (if_block) {
250
+ if_block.p(changed, ctx);
251
+ } else {
252
+ if_block = create_if_block_2(component, ctx);
253
+ if_block.c();
254
+ if_block.m(div1, text);
255
+ }
256
+ } else if (if_block) {
257
+ if_block.d(1);
258
+ if_block = null;
259
+ }
260
+
261
+ if (changed.buttons || changed._notice) {
262
+ each_value = ctx.buttons;
263
+
264
+ for (var i = 0; i < each_value.length; i += 1) {
265
+ var child_ctx = get_each_context(ctx, each_value, i);
266
+
267
+ if (each_blocks[i]) {
268
+ each_blocks[i].p(changed, child_ctx);
269
+ } else {
270
+ each_blocks[i] = create_each_block(component, child_ctx);
271
+ each_blocks[i].c();
272
+ each_blocks[i].m(div0, null);
273
+ }
274
+ }
275
+
276
+ for (; i < each_blocks.length; i += 1) {
277
+ each_blocks[i].d(1);
278
+ }
279
+ each_blocks.length = each_value.length;
280
+ }
281
+
282
+ if (changed._notice && div0_class_value !== (div0_class_value = "\n ui-pnotify-action-bar\n " + (ctx._notice.get()._styles.actionBar ? ctx._notice.get()._styles.actionBar : '') + "\n " + (ctx._notice.get()._styles.text ? ctx._notice.get()._styles.text : '') + "\n " + " svelte-1y9suua")) {
283
+ div0.className = div0_class_value;
284
+ }
285
+
286
+ if (changed.align) {
287
+ setStyle(div0, "justify-content", ctx.align);
288
+ }
289
+ },
290
+ d: function d(detach) {
291
+ if (detach) {
292
+ detachNode(div1);
293
+ }
294
+
295
+ if (if_block) if_block.d();
296
+
297
+ destroyEach(each_blocks, detach);
298
+
299
+ if (component.refs.buttons === div0) component.refs.buttons = null;
300
+ }
301
+ };
302
+ }
303
+
304
+ // (3:4) {#if prompt}
305
+ function create_if_block_2(component, ctx) {
306
+ var div, div_class_value;
307
+
308
+ function select_block_type(ctx) {
309
+ if (ctx.promptMultiLine) return create_if_block_3;
310
+ return create_else_block_1;
311
+ }
312
+
313
+ var current_block_type = select_block_type(ctx);
314
+ var if_block = current_block_type(component, ctx);
315
+
316
+ return {
317
+ c: function c() {
318
+ div = createElement("div");
319
+ if_block.c();
320
+ div.className = div_class_value = "\n ui-pnotify-prompt-bar\n " + (ctx._notice.get()._styles.promptBar ? ctx._notice.get()._styles.promptBar : '') + "\n " + (ctx._notice.get()._styles.text ? ctx._notice.get()._styles.text : '') + "\n " + " svelte-1y9suua";
321
+ },
322
+ m: function m(target, anchor) {
323
+ insert(target, div, anchor);
324
+ if_block.m(div, null);
325
+ },
326
+ p: function p(changed, ctx) {
327
+ if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {
328
+ if_block.p(changed, ctx);
329
+ } else {
330
+ if_block.d(1);
331
+ if_block = current_block_type(component, ctx);
332
+ if_block.c();
333
+ if_block.m(div, null);
334
+ }
335
+
336
+ if (changed._notice && div_class_value !== (div_class_value = "\n ui-pnotify-prompt-bar\n " + (ctx._notice.get()._styles.promptBar ? ctx._notice.get()._styles.promptBar : '') + "\n " + (ctx._notice.get()._styles.text ? ctx._notice.get()._styles.text : '') + "\n " + " svelte-1y9suua")) {
337
+ div.className = div_class_value;
338
+ }
339
+ },
340
+ d: function d(detach) {
341
+ if (detach) {
342
+ detachNode(div);
343
+ }
344
+
345
+ if_block.d();
346
+ }
347
+ };
348
+ }
349
+
350
+ // (21:8) {:else}
351
+ function create_else_block_1(component, ctx) {
352
+ var input,
353
+ input_updating = false,
354
+ input_class_value;
355
+
356
+ function input_input_handler() {
357
+ input_updating = true;
358
+ component.set({ promptValue: input.value });
359
+ input_updating = false;
360
+ }
361
+
362
+ function keypress_handler(event) {
363
+ component.handleKeyPress(event);
364
+ }
365
+
366
+ return {
367
+ c: function c() {
368
+ input = createElement("input");
369
+ addListener(input, "input", input_input_handler);
370
+ addListener(input, "keypress", keypress_handler);
371
+ setAttribute(input, "type", "text");
372
+ input.className = input_class_value = "\n ui-pnotify-prompt-input\n " + (ctx._notice.get()._styles.input ? ctx._notice.get()._styles.input : '') + "\n " + ctx.promptClass + "\n " + " svelte-1y9suua";
373
+ },
374
+ m: function m(target, anchor) {
375
+ insert(target, input, anchor);
376
+ component.refs.promptSingle = input;
377
+
378
+ input.value = ctx.promptValue;
379
+ },
380
+ p: function p(changed, ctx) {
381
+ if (!input_updating && changed.promptValue) input.value = ctx.promptValue;
382
+ if ((changed._notice || changed.promptClass) && input_class_value !== (input_class_value = "\n ui-pnotify-prompt-input\n " + (ctx._notice.get()._styles.input ? ctx._notice.get()._styles.input : '') + "\n " + ctx.promptClass + "\n " + " svelte-1y9suua")) {
383
+ input.className = input_class_value;
384
+ }
385
+ },
386
+ d: function d(detach) {
387
+ if (detach) {
388
+ detachNode(input);
389
+ }
390
+
391
+ removeListener(input, "input", input_input_handler);
392
+ removeListener(input, "keypress", keypress_handler);
393
+ if (component.refs.promptSingle === input) component.refs.promptSingle = null;
394
+ }
395
+ };
396
+ }
397
+
398
+ // (10:8) {#if promptMultiLine}
399
+ function create_if_block_3(component, ctx) {
400
+ var textarea,
401
+ textarea_updating = false,
402
+ textarea_class_value;
403
+
404
+ function textarea_input_handler() {
405
+ textarea_updating = true;
406
+ component.set({ promptValue: textarea.value });
407
+ textarea_updating = false;
408
+ }
409
+
410
+ function keypress_handler(event) {
411
+ component.handleKeyPress(event);
412
+ }
413
+
414
+ return {
415
+ c: function c() {
416
+ textarea = createElement("textarea");
417
+ addListener(textarea, "input", textarea_input_handler);
418
+ addListener(textarea, "keypress", keypress_handler);
419
+ textarea.rows = "5";
420
+ textarea.className = textarea_class_value = "\n ui-pnotify-prompt-input\n " + (ctx._notice.get()._styles.input ? ctx._notice.get()._styles.input : '') + "\n " + ctx.promptClass + "\n " + " svelte-1y9suua";
421
+ },
422
+ m: function m(target, anchor) {
423
+ insert(target, textarea, anchor);
424
+ component.refs.promptMulti = textarea;
425
+
426
+ textarea.value = ctx.promptValue;
427
+ },
428
+ p: function p(changed, ctx) {
429
+ if (!textarea_updating && changed.promptValue) textarea.value = ctx.promptValue;
430
+ if ((changed._notice || changed.promptClass) && textarea_class_value !== (textarea_class_value = "\n ui-pnotify-prompt-input\n " + (ctx._notice.get()._styles.input ? ctx._notice.get()._styles.input : '') + "\n " + ctx.promptClass + "\n " + " svelte-1y9suua")) {
431
+ textarea.className = textarea_class_value;
432
+ }
433
+ },
434
+ d: function d(detach) {
435
+ if (detach) {
436
+ detachNode(textarea);
437
+ }
438
+
439
+ removeListener(textarea, "input", textarea_input_handler);
440
+ removeListener(textarea, "keypress", keypress_handler);
441
+ if (component.refs.promptMulti === textarea) component.refs.promptMulti = null;
442
+ }
443
+ };
444
+ }
445
+
446
+ // (51:57) {:else}
447
+ function create_else_block(component, ctx) {
448
+ var text_value = ctx.button.text,
449
+ text;
450
+
451
+ return {
452
+ c: function c() {
453
+ text = createText(text_value);
454
+ },
455
+ m: function m(target, anchor) {
456
+ insert(target, text, anchor);
457
+ },
458
+ p: function p(changed, ctx) {
459
+ if (changed.buttons && text_value !== (text_value = ctx.button.text)) {
460
+ setData(text, text_value);
461
+ }
462
+ },
463
+ d: function d(detach) {
464
+ if (detach) {
465
+ detachNode(text);
466
+ }
467
+ }
468
+ };
469
+ }
470
+
471
+ // (51:14) {#if button.textTrusted}
472
+ function create_if_block_1(component, ctx) {
473
+ var raw_value = ctx.button.text,
474
+ raw_before,
475
+ raw_after;
476
+
477
+ return {
478
+ c: function c() {
479
+ raw_before = createElement('noscript');
480
+ raw_after = createElement('noscript');
481
+ },
482
+ m: function m(target, anchor) {
483
+ insert(target, raw_before, anchor);
484
+ raw_before.insertAdjacentHTML("afterend", raw_value);
485
+ insert(target, raw_after, anchor);
486
+ },
487
+ p: function p(changed, ctx) {
488
+ if (changed.buttons && raw_value !== (raw_value = ctx.button.text)) {
489
+ detachBetween(raw_before, raw_after);
490
+ raw_before.insertAdjacentHTML("afterend", raw_value);
491
+ }
492
+ },
493
+ d: function d(detach) {
494
+ if (detach) {
495
+ detachBetween(raw_before, raw_after);
496
+ detachNode(raw_before);
497
+ detachNode(raw_after);
498
+ }
499
+ }
500
+ };
501
+ }
502
+
503
+ // (43:6) {#each buttons as button}
504
+ function create_each_block(component, ctx) {
505
+ var button, button_class_value;
506
+
507
+ function select_block_type_1(ctx) {
508
+ if (ctx.button.textTrusted) return create_if_block_1;
509
+ return create_else_block;
510
+ }
511
+
512
+ var current_block_type = select_block_type_1(ctx);
513
+ var if_block = current_block_type(component, ctx);
514
+
515
+ return {
516
+ c: function c() {
517
+ button = createElement("button");
518
+ if_block.c();
519
+ button._svelte = { component: component, ctx: ctx };
520
+
521
+ addListener(button, "click", click_handler);
522
+ button.type = "button";
523
+ button.className = button_class_value = "\n ui-pnotify-action-button\n " + (ctx.button.primary ? ctx._notice.get()._styles.btnPrimary ? ctx._notice.get()._styles.btnPrimary : '' : ctx._notice.get()._styles.btn ? ctx._notice.get()._styles.btn : '') + "\n " + (ctx.button.addClass ? ctx.button.addClass : '') + "\n " + " svelte-1y9suua";
524
+ },
525
+ m: function m(target, anchor) {
526
+ insert(target, button, anchor);
527
+ if_block.m(button, null);
528
+ },
529
+ p: function p(changed, _ctx) {
530
+ ctx = _ctx;
531
+ if (current_block_type === (current_block_type = select_block_type_1(ctx)) && if_block) {
532
+ if_block.p(changed, ctx);
533
+ } else {
534
+ if_block.d(1);
535
+ if_block = current_block_type(component, ctx);
536
+ if_block.c();
537
+ if_block.m(button, null);
538
+ }
539
+
540
+ button._svelte.ctx = ctx;
541
+ if ((changed.buttons || changed._notice) && button_class_value !== (button_class_value = "\n ui-pnotify-action-button\n " + (ctx.button.primary ? ctx._notice.get()._styles.btnPrimary ? ctx._notice.get()._styles.btnPrimary : '' : ctx._notice.get()._styles.btn ? ctx._notice.get()._styles.btn : '') + "\n " + (ctx.button.addClass ? ctx.button.addClass : '') + "\n " + " svelte-1y9suua")) {
542
+ button.className = button_class_value;
543
+ }
544
+ },
545
+ d: function d(detach) {
546
+ if (detach) {
547
+ detachNode(button);
548
+ }
549
+
550
+ if_block.d();
551
+ removeListener(button, "click", click_handler);
552
+ }
553
+ };
554
+ }
555
+
556
+ function PNotifyConfirm(options) {
557
+ var _this = this;
558
+
559
+ init(this, options);
560
+ this.refs = {};
561
+ this._state = assign(data(), options.data);
562
+ this._intro = true;
563
+
564
+ if (!document.getElementById("svelte-1y9suua-style")) add_css();
565
+
566
+ this._fragment = create_main_fragment(this, this._state);
567
+
568
+ this.root._oncreate.push(function () {
569
+ oncreate.call(_this);
570
+ _this.fire("update", { changed: assignTrue({}, _this._state), current: _this._state });
571
+ });
572
+
573
+ if (options.target) {
574
+ this._fragment.c();
575
+ this._mount(options.target, options.anchor);
576
+
577
+ flush(this);
578
+ }
579
+ }
580
+
581
+ assign(PNotifyConfirm.prototype, {
582
+ destroy: destroy,
583
+ get: get,
584
+ fire: fire,
585
+ on: on,
586
+ set: set,
587
+ _set: _set,
588
+ _stage: _stage,
589
+ _mount: _mount,
590
+ _differs: _differs
591
+ });
592
+ assign(PNotifyConfirm.prototype, methods);
593
+
594
+ PNotifyConfirm.prototype._recompute = noop;
595
+
596
+ setup(PNotifyConfirm);
597
+
598
+ function createElement(name) {
599
+ return document.createElement(name);
600
+ }
601
+
602
+ function append(target, node) {
603
+ target.appendChild(node);
604
+ }
605
+
606
+ function createComment() {
607
+ return document.createComment('');
608
+ }
609
+
610
+ function insert(target, node, anchor) {
611
+ target.insertBefore(node, anchor);
612
+ }
613
+
614
+ function detachNode(node) {
615
+ node.parentNode.removeChild(node);
616
+ }
617
+
618
+ function createText(data) {
619
+ return document.createTextNode(data);
620
+ }
621
+
622
+ function setStyle(node, key, value) {
623
+ node.style.setProperty(key, value);
624
+ }
625
+
626
+ function destroyEach(iterations, detach) {
627
+ for (var i = 0; i < iterations.length; i += 1) {
628
+ if (iterations[i]) iterations[i].d(detach);
629
+ }
630
+ }
631
+
632
+ function addListener(node, event, handler, options) {
633
+ node.addEventListener(event, handler, options);
634
+ }
635
+
636
+ function setAttribute(node, attribute, value) {
637
+ if (value == null) node.removeAttribute(attribute);else node.setAttribute(attribute, value);
638
+ }
639
+
640
+ function removeListener(node, event, handler, options) {
641
+ node.removeEventListener(event, handler, options);
642
+ }
643
+
644
+ function setData(text, data) {
645
+ text.data = '' + data;
646
+ }
647
+
648
+ function detachBetween(before, after) {
649
+ while (before.nextSibling && before.nextSibling !== after) {
650
+ before.parentNode.removeChild(before.nextSibling);
651
+ }
652
+ }
653
+
654
+ function init(component, options) {
655
+ component._handlers = blankObject();
656
+ component._slots = blankObject();
657
+ component._bind = options._bind;
658
+ component._staged = {};
659
+
660
+ component.options = options;
661
+ component.root = options.root || component;
662
+ component.store = options.store || component.root.store;
663
+
664
+ if (!options.root) {
665
+ component._beforecreate = [];
666
+ component._oncreate = [];
667
+ component._aftercreate = [];
668
+ }
669
+ }
670
+
671
+ function assign(tar, src) {
672
+ for (var k in src) {
673
+ tar[k] = src[k];
674
+ }return tar;
675
+ }
676
+
677
+ function assignTrue(tar, src) {
678
+ for (var k in src) {
679
+ tar[k] = 1;
680
+ }return tar;
681
+ }
682
+
683
+ function flush(component) {
684
+ component._lock = true;
685
+ callAll(component._beforecreate);
686
+ callAll(component._oncreate);
687
+ callAll(component._aftercreate);
688
+ component._lock = false;
689
+ }
690
+
691
+ function destroy(detach) {
692
+ this.destroy = noop;
693
+ this.fire('destroy');
694
+ this.set = noop;
695
+
696
+ this._fragment.d(detach !== false);
697
+ this._fragment = null;
698
+ this._state = {};
699
+ }
700
+
701
+ function get() {
702
+ return this._state;
703
+ }
704
+
705
+ function fire(eventName, data) {
706
+ var handlers = eventName in this._handlers && this._handlers[eventName].slice();
707
+ if (!handlers) return;
708
+
709
+ for (var i = 0; i < handlers.length; i += 1) {
710
+ var handler = handlers[i];
711
+
712
+ if (!handler.__calling) {
713
+ try {
714
+ handler.__calling = true;
715
+ handler.call(this, data);
716
+ } finally {
717
+ handler.__calling = false;
718
+ }
719
+ }
720
+ }
721
+ }
722
+
723
+ function on(eventName, handler) {
724
+ var handlers = this._handlers[eventName] || (this._handlers[eventName] = []);
725
+ handlers.push(handler);
726
+
727
+ return {
728
+ cancel: function cancel() {
729
+ var index = handlers.indexOf(handler);
730
+ if (~index) handlers.splice(index, 1);
731
+ }
732
+ };
733
+ }
734
+
735
+ function set(newState) {
736
+ this._set(assign({}, newState));
737
+ if (this.root._lock) return;
738
+ flush(this.root);
739
+ }
740
+
741
+ function _set(newState) {
742
+ var oldState = this._state,
743
+ changed = {},
744
+ dirty = false;
745
+
746
+ newState = assign(this._staged, newState);
747
+ this._staged = {};
748
+
749
+ for (var key in newState) {
750
+ if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true;
751
+ }
752
+ if (!dirty) return;
753
+
754
+ this._state = assign(assign({}, oldState), newState);
755
+ this._recompute(changed, this._state);
756
+ if (this._bind) this._bind(changed, this._state);
757
+
758
+ if (this._fragment) {
759
+ this.fire("state", { changed: changed, current: this._state, previous: oldState });
760
+ this._fragment.p(changed, this._state);
761
+ this.fire("update", { changed: changed, current: this._state, previous: oldState });
762
+ }
763
+ }
764
+
765
+ function _stage(newState) {
766
+ assign(this._staged, newState);
767
+ }
768
+
769
+ function _mount(target, anchor) {
770
+ this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null);
771
+ }
772
+
773
+ function _differs(a, b) {
774
+ return a != a ? b == b : a !== b || a && (typeof a === "undefined" ? "undefined" : _typeof(a)) === 'object' || typeof a === 'function';
775
+ }
776
+
777
+ function noop() {}
778
+
779
+ function blankObject() {
780
+ return Object.create(null);
781
+ }
782
+
783
+ function callAll(fns) {
784
+ while (fns && fns.length) {
785
+ fns.shift()();
786
+ }
787
+ }
788
+ return PNotifyConfirm;
789
+ }(WamPnotify);
790
+ //# sourceMappingURL=PNotifyConfirm.js.map
components/assets-manager/assets/js/libs/wam-pnotify-history.js ADDED
@@ -0,0 +1,305 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
2
+
3
+ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
4
+
5
+ /* src/PNotifyHistory.html generated by Svelte v2.16.1 */
6
+ var WamPnotifyHistory = function (PNotify) {
7
+ "use strict";
8
+
9
+ PNotify = PNotify && PNotify.__esModule ? PNotify["default"] : PNotify;
10
+
11
+ function data() {
12
+ return _extends({
13
+ '_notice': null, // The PNotify notice.
14
+ '_options': {} // The options for the notice.
15
+ }, PNotify.modules.History.defaults);
16
+ };
17
+
18
+ var methods = {
19
+ initModule: function initModule(options) {
20
+ this.set(options);
21
+
22
+ if (this.get().history) {
23
+ // Don't destroy notices that are in history.
24
+ var _get = this.get(),
25
+ _notice = _get._notice;
26
+
27
+ if (_notice.get().destroy) {
28
+ _notice.set({ 'destroy': false });
29
+ }
30
+ }
31
+ },
32
+ beforeOpen: function beforeOpen() {
33
+ var _get2 = this.get(),
34
+ maxInStack = _get2.maxInStack,
35
+ _options = _get2._options;
36
+
37
+ if (maxInStack === Infinity) {
38
+ return;
39
+ }
40
+
41
+ var stack = _options.stack;
42
+ if (stack === false) {
43
+ return;
44
+ }
45
+
46
+ // Remove oldest notifications leaving only maxInStack from the stack.
47
+ if (PNotify.notices && PNotify.notices.length > maxInStack) {
48
+ // Oldest are normally in front of array, or if stack.push=='top' then
49
+ // they are at the end of the array!
50
+ var top = stack.push === 'top';
51
+ var forRemoval = [];
52
+ var currentOpen = 0;
53
+
54
+ for (var i = top ? 0 : PNotify.notices.length - 1; top ? i < PNotify.notices.length : i >= 0; top ? i++ : i--) {
55
+ if (['opening', 'open'].indexOf(PNotify.notices[i].get()._state) !== -1 && PNotify.notices[i].get().stack === stack) {
56
+ if (currentOpen >= maxInStack) {
57
+ forRemoval.push(PNotify.notices[i]);
58
+ } else {
59
+ currentOpen++;
60
+ }
61
+ }
62
+ }
63
+
64
+ for (var _i = 0; _i < forRemoval.length; _i++) {
65
+ forRemoval[_i].close(false);
66
+ }
67
+ }
68
+ }
69
+ };
70
+
71
+ function setup(Component) {
72
+ Component.key = 'History';
73
+
74
+ Component.defaults = {
75
+ // Place the notice in the history.
76
+ history: true,
77
+ // Maximum number of notices to have open in its stack.
78
+ maxInStack: Infinity
79
+ };
80
+
81
+ Component.init = function (notice) {
82
+ return new Component({ target: document.body });
83
+ };
84
+
85
+ Component.showLast = function (stack) {
86
+ if (stack === undefined) {
87
+ stack = PNotify.defaultStack;
88
+ }
89
+ if (stack === false) {
90
+ return;
91
+ }
92
+ var top = stack.push === 'top';
93
+
94
+ // Look up the last history notice, and display it.
95
+ var i = top ? 0 : PNotify.notices.length - 1;
96
+
97
+ var notice = void 0;
98
+ do {
99
+ notice = PNotify.notices[i];
100
+
101
+ if (!notice) {
102
+ return;
103
+ }
104
+
105
+ i += top ? 1 : -1;
106
+ } while (notice.get().stack !== stack || !notice.get()._modules.History.get().history || notice.get()._state === 'opening' || notice.get()._state === 'open');
107
+
108
+ notice.open();
109
+ };
110
+
111
+ Component.showAll = function (stack) {
112
+ if (stack === undefined) {
113
+ stack = PNotify.defaultStack;
114
+ }
115
+ if (stack === false) {
116
+ return;
117
+ }
118
+
119
+ // Display all notices. (Disregarding non-history notices.)
120
+ for (var i = 0; i < PNotify.notices.length; i++) {
121
+ var notice = PNotify.notices[i];
122
+ if ((stack === true || notice.get().stack === stack) && notice.get()._modules.History.get().history) {
123
+ notice.open();
124
+ }
125
+ }
126
+ };
127
+
128
+ // Register the module with PNotify.
129
+ PNotify.modules.History = Component;
130
+ };
131
+
132
+ function create_main_fragment(component, ctx) {
133
+
134
+ return {
135
+ c: noop,
136
+
137
+ m: noop,
138
+
139
+ p: noop,
140
+
141
+ d: noop
142
+ };
143
+ }
144
+
145
+ function PNotifyHistory(options) {
146
+ init(this, options);
147
+ this._state = assign(data(), options.data);
148
+ this._intro = true;
149
+
150
+ this._fragment = create_main_fragment(this, this._state);
151
+
152
+ if (options.target) {
153
+ this._fragment.c();
154
+ this._mount(options.target, options.anchor);
155
+ }
156
+ }
157
+
158
+ assign(PNotifyHistory.prototype, {
159
+ destroy: destroy,
160
+ get: get,
161
+ fire: fire,
162
+ on: on,
163
+ set: set,
164
+ _set: _set,
165
+ _stage: _stage,
166
+ _mount: _mount,
167
+ _differs: _differs
168
+ });
169
+ assign(PNotifyHistory.prototype, methods);
170
+
171
+ PNotifyHistory.prototype._recompute = noop;
172
+
173
+ setup(PNotifyHistory);
174
+
175
+ function noop() {}
176
+
177
+ function init(component, options) {
178
+ component._handlers = blankObject();
179
+ component._slots = blankObject();
180
+ component._bind = options._bind;
181
+ component._staged = {};
182
+
183
+ component.options = options;
184
+ component.root = options.root || component;
185
+ component.store = options.store || component.root.store;
186
+
187
+ if (!options.root) {
188
+ component._beforecreate = [];
189
+ component._oncreate = [];
190
+ component._aftercreate = [];
191
+ }
192
+ }
193
+
194
+ function assign(tar, src) {
195
+ for (var k in src) {
196
+ tar[k] = src[k];
197
+ }return tar;
198
+ }
199
+
200
+ function destroy(detach) {
201
+ this.destroy = noop;
202
+ this.fire('destroy');
203
+ this.set = noop;
204
+
205
+ this._fragment.d(detach !== false);
206
+ this._fragment = null;
207
+ this._state = {};
208
+ }
209
+
210
+ function get() {
211
+ return this._state;
212
+ }
213
+
214
+ function fire(eventName, data) {
215
+ var handlers = eventName in this._handlers && this._handlers[eventName].slice();
216
+ if (!handlers) return;
217
+
218
+ for (var i = 0; i < handlers.length; i += 1) {
219
+ var handler = handlers[i];
220
+
221
+ if (!handler.__calling) {
222
+ try {
223
+ handler.__calling = true;
224
+ handler.call(this, data);
225
+ } finally {
226
+ handler.__calling = false;
227
+ }
228
+ }
229
+ }
230
+ }
231
+
232
+ function on(eventName, handler) {
233
+ var handlers = this._handlers[eventName] || (this._handlers[eventName] = []);
234
+ handlers.push(handler);
235
+
236
+ return {
237
+ cancel: function cancel() {
238
+ var index = handlers.indexOf(handler);
239
+ if (~index) handlers.splice(index, 1);
240
+ }
241
+ };
242
+ }
243
+
244
+ function set(newState) {
245
+ this._set(assign({}, newState));
246
+ if (this.root._lock) return;
247
+ flush(this.root);
248
+ }
249
+
250
+ function _set(newState) {
251
+ var oldState = this._state,
252
+ changed = {},
253
+ dirty = false;
254
+
255
+ newState = assign(this._staged, newState);
256
+ this._staged = {};
257
+
258
+ for (var key in newState) {
259
+ if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true;
260
+ }
261
+ if (!dirty) return;
262
+
263
+ this._state = assign(assign({}, oldState), newState);
264
+ this._recompute(changed, this._state);
265
+ if (this._bind) this._bind(changed, this._state);
266
+
267
+ if (this._fragment) {
268
+ this.fire("state", { changed: changed, current: this._state, previous: oldState });
269
+ this._fragment.p(changed, this._state);
270
+ this.fire("update", { changed: changed, current: this._state, previous: oldState });
271
+ }
272
+ }
273
+
274
+ function _stage(newState) {
275
+ assign(this._staged, newState);
276
+ }
277
+
278
+ function _mount(target, anchor) {
279
+ this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null);
280
+ }
281
+
282
+ function _differs(a, b) {
283
+ return a != a ? b == b : a !== b || a && (typeof a === "undefined" ? "undefined" : _typeof(a)) === 'object' || typeof a === 'function';
284
+ }
285
+
286
+ function blankObject() {
287
+ return Object.create(null);
288
+ }
289
+
290
+ function flush(component) {
291
+ component._lock = true;
292
+ callAll(component._beforecreate);
293
+ callAll(component._oncreate);
294
+ callAll(component._aftercreate);
295
+ component._lock = false;
296
+ }
297
+
298
+ function callAll(fns) {
299
+ while (fns && fns.length) {
300
+ fns.shift()();
301
+ }
302
+ }
303
+ return PNotifyHistory;
304
+ }(WamPnotify);
305
+ //# sourceMappingURL=PNotifyHistory.js.map
components/assets-manager/assets/js/{PNotify.js → libs/wam-pnotify.js} RENAMED
@@ -3,7 +3,7 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
3
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4
 
5
  /* src/PNotify.html generated by Svelte v2.16.1 */
6
- var PNotify = function () {
7
  "use strict";
8
 
9
  var PNotify = void 0;
3
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
4
 
5
  /* src/PNotify.html generated by Svelte v2.16.1 */
6
+ var WamPnotify = function () {
7
  "use strict";
8
 
9
  var PNotify = void 0;
components/assets-manager/assets/js/{assets-conditions.js → wam-assets-conditions.js} RENAMED
File without changes
components/assets-manager/assets/js/{assets-manager.js → wam-assets-manager.js} RENAMED
@@ -4,27 +4,46 @@
4
  * @copyright (c) 13.11.2017, Webcraftic
5
  * @version 1.0
6
  */
7
- // [{"type":"group","conditions":[{"param":"location-some-page","operator":"equals","type":"select","value":"base_web"}]}]
8
- // [{"type":"group","conditions":[{"param":"location-some-page","operator":"equals","type":"select","value":"base_web"}]}]
9
 
10
  (function($) {
11
  'use strict';
12
 
13
  class AssetsManager {
14
  constructor() {
15
- var tabHash = window.location.hash.replace('#', '');
16
-
17
- if( tabHash ) {
18
- $('.js-wam-assets-type-tabs__button[data-type="' + tabHash + '"]').click();
19
  }
20
 
 
 
21
  this.initEvents();
22
  this.updateStat();
 
23
  }
24
 
25
  initEvents() {
26
  var self = this;
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  $('.js-wam-assets-type-tabs__button').click(function() {
29
  self.switchCategoryTab($(this));
30
  return false;
@@ -62,12 +81,46 @@
62
  });
63
 
64
  $('.js-wam-select-asset-load-mode').change(function() {
65
- let selectElement = $(this);
 
66
 
67
  if( 'enable' === selectElement.val() ) {
68
  self.enableAsset(selectElement);
69
  return false;
70
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71
  self.disableAsset(selectElement);
72
  return false;
73
  });
@@ -81,6 +134,49 @@
81
  self.openAssetSettings($(this));
82
  return false;
83
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  }
85
 
86
  switchCategoryTab(element) {
@@ -217,15 +313,12 @@ notice.on('pnotify.cancel', function() {
217
 
218
  this.createConditionsEditor(editorContainerElement, function(e) {
219
  function a() {
220
- let params = ['location-some-page', 'location-taxonomy', 'location-post-type'],
221
- loadMode = containerElement.find('.js-wam-select-plugin-load-mode').val();
222
 
223
  if( "disable_plugin" === loadMode ) {
224
- for( let i = 0; i < params.length; i++ ) {
225
- e.element.find('.wam-cleditor__param-select').find('option[value="' + params[i] + '"]').hide();
226
- }
227
  } else {
228
- e.element.find('.wam-cleditor__param-select').find('option').show();
229
  }
230
  }
231
 
@@ -361,10 +454,6 @@ notice.on('pnotify.cancel', function() {
361
  };
362
  }
363
  });
364
-
365
- if( undefined === typeof window.wam_localize_data || !wam_localize_data.ajaxurl ) {
366
- throw new Error("Undefined wam_localize_data, please check the var in source!");
367
- }
368
  });
369
 
370
  $('.wam-conditions-builder__settings', '#wam-assets-type-tab-content__theme,#wam-assets-type-tab-content__misc').each(function() {
@@ -388,34 +477,36 @@ notice.on('pnotify.cancel', function() {
388
  'firstpos2': 25
389
  };
390
 
391
- PNotify.closeAll();
392
- PNotify.alert({
393
  title: 'Saving settings!',
394
  text: 'Please wait, saving settings ...',
395
  stack: stackBottomRight,
396
  hide: false
397
  });
398
 
399
- $.ajax(wam_localize_data.ajaxurl, {
400
  type: 'post',
401
  dataType: 'json',
402
  data: {
403
  action: 'wam-save-settings',
 
404
  settings: settings,
405
  _wpnonce: $('#wam-save-button').data('nonce')
406
  },
407
  success: function(response) {
408
- PNotify.closeAll();
409
 
410
  if( !response || !response.success ) {
411
  if( response.data ) {
412
  console.log(response.data.error_message_content);
413
- PNotify.alert({
414
  title: response.data.error_message_title,
415
  text: response.data.error_message_content,
416
  stack: stackBottomRight,
417
  type: 'error',
418
- //hide: false
 
419
  });
420
  } else {
421
  console.log(response);
@@ -423,17 +514,18 @@ notice.on('pnotify.cancel', function() {
423
  return;
424
  }
425
  if( response.data ) {
426
- PNotify.alert({
427
  title: response.data.save_massage_title,
428
  text: response.data.save_message_content,
429
  stack: stackBottomRight,
430
  type: 'success',
431
- //hide: false
 
432
  });
433
  }
434
  },
435
  error: function(xhr, ajaxOptions, thrownError) {
436
- PNotify.alert({
437
  title: 'Unknown error',
438
  text: thrownError,
439
  stack: {
@@ -443,7 +535,8 @@ notice.on('pnotify.cancel', function() {
443
  'firstpos2': 25
444
  },
445
  type: 'error',
446
- //hide: false
 
447
  });
448
  }
449
  });
@@ -463,7 +556,7 @@ notice.on('pnotify.cancel', function() {
463
  "param": "current-url",
464
  "operator": "equals",
465
  "type": "default",
466
- "value": $(location).attr('pathname')
467
  }
468
 
469
  ]
@@ -474,6 +567,24 @@ notice.on('pnotify.cancel', function() {
474
  });
475
  }
476
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
477
  destroyCoditionEditor(element) {
478
  element.find('.wam-cleditor').remove();
479
  element.find('.wam-conditions-builder__settings').val('');
4
  * @copyright (c) 13.11.2017, Webcraftic
5
  * @version 1.0
6
  */
 
 
7
 
8
  (function($) {
9
  'use strict';
10
 
11
  class AssetsManager {
12
  constructor() {
13
+ if( undefined === typeof window.wam_localize_data || !wam_localize_data.ajaxurl ) {
14
+ throw new Error("Undefined wam_localize_data, please check the var in source!");
 
 
15
  }
16
 
17
+ this.pluginVars = window.wam_localize_data;
18
+
19
  this.initEvents();
20
  this.updateStat();
21
+ this.setDefaultCategoryTab();
22
  }
23
 
24
  initEvents() {
25
  var self = this;
26
 
27
+ $('.js-wam-require-handle-tag').click(function() {
28
+ let handle = $(this).data('tag-handle'),
29
+ assetElement = $('[data-asset-handle="' + handle + '"]'),
30
+ currentTabElement = $(this).closest('.wam-assets-type-tab-content'),
31
+ searchTabElement = assetElement.closest('.wam-assets-type-tab-content');
32
+
33
+ self.switchCategoryTab($('.wam-assets-type-tabs__button--' + searchTabElement.data('category')));
34
+
35
+ assetElement.get(0).scrollIntoView({
36
+ block: 'center'
37
+ });
38
+
39
+ assetElement.css('border', '1px solid red');
40
+ setTimeout(function() {
41
+ assetElement.css('border', '0');
42
+ }, 2000)
43
+
44
+ return false;
45
+ });
46
+
47
  $('.js-wam-assets-type-tabs__button').click(function() {
48
  self.switchCategoryTab($(this));
49
  return false;
81
  });
82
 
83
  $('.js-wam-select-asset-load-mode').change(function() {
84
+ let selectElement = $(this),
85
+ requires = selectElement.closest('tr').find('.js-wam-table__asset-requires');
86
 
87
  if( 'enable' === selectElement.val() ) {
88
  self.enableAsset(selectElement);
89
  return false;
90
  }
91
+
92
+ if( requires.length ) {
93
+ // show warning
94
+ var notice = WamPnotify.notice({
95
+ title: self.pluginVars.i18n.asset_canbe_required_title,
96
+ text: self.pluginVars.i18n.asset_canbe_required_text.replace('%s', requires.text()),
97
+ icon: 'fas fa-question-circle',
98
+ hide: false,
99
+ stack: {
100
+ 'dir1': 'down',
101
+ 'modal': true,
102
+ 'firstpos1': 25
103
+ },
104
+ modules: {
105
+ Confirm: {
106
+ confirm: true
107
+ },
108
+ Buttons: {
109
+ closer: false,
110
+ sticker: false
111
+ },
112
+ History: {
113
+ history: false
114
+ },
115
+ }
116
+ });
117
+ notice.on('pnotify.confirm', function() {
118
+ self.disableAsset(selectElement);
119
+ });
120
+
121
+ return false;
122
+ }
123
+
124
  self.disableAsset(selectElement);
125
  return false;
126
  });
134
  self.openAssetSettings($(this));
135
  return false;
136
  });
137
+
138
+ $('.js-wam-reset-settings').click(function() {
139
+ self.setWarningForClearSettingsAction($(this));
140
+ return false;
141
+ });
142
+ }
143
+
144
+ setWarningForClearSettingsAction(button) {
145
+ var notice = WamPnotify.notice({
146
+ title: this.pluginVars.i18n.reset_settings_warning_title,
147
+ text: this.pluginVars.i18n.reset_settings_warning_text,
148
+ icon: 'fas fa-question-circle',
149
+ hide: false,
150
+ stack: {
151
+ 'dir1': 'down',
152
+ 'modal': true,
153
+ 'firstpos1': 25
154
+ },
155
+ modules: {
156
+ Confirm: {
157
+ confirm: true
158
+ },
159
+ Buttons: {
160
+ closer: false,
161
+ sticker: false
162
+ },
163
+ History: {
164
+ history: false
165
+ },
166
+ }
167
+ });
168
+ notice.on('pnotify.confirm', function() {
169
+ window.location.href = button.attr('href');
170
+ });
171
+ /*notice.on('pnotify.cancel', function() {
172
+ alert('Oh ok. Chicken, I see.');
173
+ });*/
174
+ }
175
+
176
+ setDefaultCategoryTab() {
177
+ let tabHash = window.location.hash.replace('#', '');
178
+
179
+ tabHash && $('.js-wam-assets-type-tabs__button[data-type="' + tabHash + '"]').click();
180
  }
181
 
182
  switchCategoryTab(element) {
313
 
314
  this.createConditionsEditor(editorContainerElement, function(e) {
315
  function a() {
316
+ let loadMode = containerElement.find('.js-wam-select-plugin-load-mode').val();
 
317
 
318
  if( "disable_plugin" === loadMode ) {
319
+ e.element.addClass('wam-cleditor__disable-plugin-mode');
 
 
320
  } else {
321
+ e.element.removeClass('wam-cleditor__disable-plugin-mode');
322
  }
323
  }
324
 
454
  };
455
  }
456
  });
 
 
 
 
457
  });
458
 
459
  $('.wam-conditions-builder__settings', '#wam-assets-type-tab-content__theme,#wam-assets-type-tab-content__misc').each(function() {
477
  'firstpos2': 25
478
  };
479
 
480
+ WamPnotify.closeAll();
481
+ WamPnotify.alert({
482
  title: 'Saving settings!',
483
  text: 'Please wait, saving settings ...',
484
  stack: stackBottomRight,
485
  hide: false
486
  });
487
 
488
+ $.ajax(this.pluginVars.ajaxurl, {
489
  type: 'post',
490
  dataType: 'json',
491
  data: {
492
  action: 'wam-save-settings',
493
+ scope: this.pluginVars.scope,
494
  settings: settings,
495
  _wpnonce: $('#wam-save-button').data('nonce')
496
  },
497
  success: function(response) {
498
+ WamPnotify.closeAll();
499
 
500
  if( !response || !response.success ) {
501
  if( response.data ) {
502
  console.log(response.data.error_message_content);
503
+ WamPnotify.alert({
504
  title: response.data.error_message_title,
505
  text: response.data.error_message_content,
506
  stack: stackBottomRight,
507
  type: 'error',
508
+ delay: 15000,
509
+ hide: true
510
  });
511
  } else {
512
  console.log(response);
514
  return;
515
  }
516
  if( response.data ) {
517
+ WamPnotify.alert({
518
  title: response.data.save_massage_title,
519
  text: response.data.save_message_content,
520
  stack: stackBottomRight,
521
  type: 'success',
522
+ delay: 3000,
523
+ hide: true
524
  });
525
  }
526
  },
527
  error: function(xhr, ajaxOptions, thrownError) {
528
+ WamPnotify.alert({
529
  title: 'Unknown error',
530
  text: thrownError,
531
  stack: {
535
  'firstpos2': 25
536
  },
537
  type: 'error',
538
+ delay: 15000,
539
+ hide: true
540
  });
541
  }
542
  });
556
  "param": "current-url",
557
  "operator": "equals",
558
  "type": "default",
559
+ "value": this.getCurrentUrl()
560
  }
561
 
562
  ]
567
  });
568
  }
569
 
570
+ /**
571
+ * Get current url
572
+ *
573
+ * if it is the admin area url would be with query string
574
+ *
575
+ * @returns {jQuery|*|*}
576
+ */
577
+ getCurrentUrl() {
578
+ let path = $(location).attr('pathname'),
579
+ queryString = $(location).attr('search');
580
+
581
+ if( "admin" === this.pluginVars.scope || "networkadmin" === this.pluginVars.scope ) {
582
+ return path + queryString.replace(/[?&]{1}wbcr_assets_manager=1/g, '');
583
+ }
584
+
585
+ return path;
586
+ }
587
+
588
  destroyCoditionEditor(element) {
589
  element.find('.wam-cleditor').remove();
590
  element.find('.wam-conditions-builder__settings').val('');
components/assets-manager/clearfy.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  }
16
 
17
  if ( ! defined( 'WGZ_PLUGIN_ACTIVE' ) ) {
18
- define( 'WGZ_PLUGIN_VERSION', '2.0.1' );
19
  define( 'WGZ_PLUGIN_ACTIVE', true );
20
 
21
  // Этот плагин загружен, как аддон для плагина Clearfy
15
  }
16
 
17
  if ( ! defined( 'WGZ_PLUGIN_ACTIVE' ) ) {
18
+ define( 'WGZ_PLUGIN_VERSION', '2.0.3' );
19
  define( 'WGZ_PLUGIN_ACTIVE', true );
20
 
21
  // Этот плагин загружен, как аддон для плагина Clearfy
components/assets-manager/gonzales.php CHANGED
@@ -4,11 +4,11 @@
4
  * Plugin URI: https://wordpress.org/plugins/gonzales/
5
  * Description: Increase the speed of the pages by disabling unused scripts (.JS) and styles (.CSS). Make your website REACTIVE!
6
  * Author: Webcraftic <wordpress.webraftic@gmail.com>
7
- * Version: 2.0.1
8
  * Text Domain: gonzales
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
- * Framework Version: FACTORY_421_VERSION
12
  */
13
 
14
  // Exit if accessed directly
@@ -47,7 +47,7 @@ $wgnz_plugin_info = array(
47
 
48
  // PLUGIN SUPPORT
49
  'support_details' => array(
50
- 'url' => 'https://webcraftic.com',
51
  'pages_map' => array(
52
  'support' => 'support', // {site}/support
53
  'docs' => 'docs' // {site}/docs
@@ -64,15 +64,15 @@ $wgnz_plugin_info = array(
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
- array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
68
- array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
69
- array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
70
- array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
71
- array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
72
  )
73
  );
74
 
75
- $wgnz_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $wgnz_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WGZ_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
4
  * Plugin URI: https://wordpress.org/plugins/gonzales/
5
  * Description: Increase the speed of the pages by disabling unused scripts (.JS) and styles (.CSS). Make your website REACTIVE!
6
  * Author: Webcraftic <wordpress.webraftic@gmail.com>
7
+ * Version: 2.0.3
8
  * Text Domain: gonzales
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
+ * Framework Version: FACTORY_422_VERSION
12
  */
13
 
14
  // Exit if accessed directly
47
 
48
  // PLUGIN SUPPORT
49
  'support_details' => array(
50
+ 'url' => 'https://clearfy.pro',
51
  'pages_map' => array(
52
  'support' => 'support', // {site}/support
53
  'docs' => 'docs' // {site}/docs
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
+ array( 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ),
68
+ array( 'libs/factory/forms', 'factory_forms_420', 'admin' ),
69
+ array( 'libs/factory/pages', 'factory_pages_422', 'admin' ),
70
+ array( 'libs/factory/clearfy', 'factory_clearfy_214', 'all' ),
71
+ array( 'libs/factory/adverts', 'factory_adverts_104', 'admin')
72
  )
73
  );
74
 
75
+ $wgnz_compatibility = new Wbcr_Factory422_Requirements( __FILE__, array_merge( $wgnz_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WGZ_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
components/assets-manager/includes/class-plugin.php CHANGED
@@ -11,11 +11,11 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  * @version 1.0
13
  */
14
- class WGZ_Plugin extends Wbcr_Factory421_Plugin {
15
 
16
  /**
17
  * @see self::app()
18
- * @var Wbcr_Factory421_Plugin
19
  */
20
  private static $app;
21
 
@@ -53,7 +53,7 @@ class WGZ_Plugin extends Wbcr_Factory421_Plugin {
53
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
54
  * классам.
55
  *
56
- * @return \Wbcr_Factory421_Plugin|\WGZ_Plugin
57
  */
58
  public static function app() {
59
  return self::$app;
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  * @version 1.0
13
  */
14
+ class WGZ_Plugin extends Wbcr_Factory422_Plugin {
15
 
16
  /**
17
  * @see self::app()
18
+ * @var Wbcr_Factory422_Plugin
19
  */
20
  private static $app;
21
 
53
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
54
  * классам.
55
  *
56
+ * @return \Wbcr_Factory422_Plugin|\WGZ_Plugin
57
  */
58
  public static function app() {
59
  return self::$app;
components/assets-manager/includes/classes/class-assets-manager-global.php CHANGED
@@ -21,19 +21,18 @@ class WGZ_Assets_Manager_Public {
21
  public $collection = [];
22
 
23
  /**
24
- * @param Wbcr_Factory421_Plugin $plugin
25
  */
26
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
27
  $this->plugin = $plugin;
28
 
29
  $this->register_hooks();
30
  }
31
 
32
  /**
33
- * Проверяет права пользователя
34
  *
35
- * Пользователь должен иметь права администратора или суперадминистратора,
36
- * чтобы использовать менеджер скриптов.
37
  *
38
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
39
  * @since 1.1.0
@@ -73,7 +72,6 @@ class WGZ_Assets_Manager_Public {
73
  }
74
 
75
  if ( ! is_admin() && ! $on_frontend ) {
76
- add_action( 'template_redirect', [ $this, 'clean_source_code' ], 9999 );
77
  add_action( 'wp_head', [ $this, 'collect_assets' ], 10000 );
78
  add_action( 'wp_footer', [ $this, 'collect_assets' ], 10000 );
79
  }
@@ -91,12 +89,17 @@ class WGZ_Assets_Manager_Public {
91
  }
92
  }
93
 
 
 
 
 
94
  ##Login/Logout
95
  add_action( 'wp_login', [ $this, 'user_logged_in' ], 99, 2 );
96
  add_action( 'wp_logout', [ $this, 'user_logged_out' ] );
97
 
98
  // Stop optimizing scripts and caching the asset manager page.
99
- add_action( 'wp', [ $this, 'stop_caching_and_script_optimize' ] );
 
100
 
101
  // Disable autoptimize on Assets manager page
102
  add_filter( 'autoptimize_filter_noptimize', [ $this, 'autoptimize_noptimize' ], 10, 0 );
@@ -107,6 +110,14 @@ class WGZ_Assets_Manager_Public {
107
  }
108
  }
109
 
 
 
 
 
 
 
 
 
110
  public function print_save_mode_fake_checkbox( $data ) {
111
  if ( defined( 'WGZP_PLUGIN_ACTIVE' ) ) {
112
  return;
@@ -120,10 +131,10 @@ class WGZ_Assets_Manager_Public {
120
  }
121
 
122
  /**
123
- * Записываем cookie с ролями пользователя
124
  *
125
- * Это нужно для идентификации в MU плагине, так как мы не можем использовать
126
- * большинство функций wordpress.
127
  *
128
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
129
  * @since 2.0.0
@@ -142,7 +153,7 @@ class WGZ_Assets_Manager_Public {
142
  }
143
 
144
  /**
145
- * Удаляем cookie с ролями
146
  *
147
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
148
  * @since 2.0.0
@@ -186,6 +197,26 @@ class WGZ_Assets_Manager_Public {
186
  if ( ! defined( 'DONOTMINIFY' ) ) {
187
  define( 'DONOTMINIFY', true );
188
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  }
190
 
191
  /**
@@ -204,144 +235,33 @@ class WGZ_Assets_Manager_Public {
204
  }
205
 
206
  /**
207
- * We remove scripts and styles of themes, plugins to avoidE
208
- * unnecessary conflicts during the use of the asset manager.
209
  *
210
- * todo: the method requires better study. Sorry, I don't have time for this.
211
  *
212
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
213
- * @since 1.0.8
214
  */
215
- public function clean_source_code() {
216
  if ( ! isset( $_GET['wbcr_assets_manager'] ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
217
- return false;
218
  }
219
 
220
- ob_start( function ( $html ) {
221
-
222
- $raw_html = $html;
223
-
224
- $html = preg_replace( [
225
- "'<\s*style.*?<\s*/\s*style\s*>'is",
226
- ], [
227
- ""
228
- ], $html );
229
-
230
- $html = preg_replace_callback( [
231
- "'<\s*link.*?>'is",
232
- ], function ( $matches ) {
233
- $doc = new DOMDocument();
234
- $doc->loadHTML( $matches[0] );
235
- $imageTags = $doc->getElementsByTagName( 'link' );
236
-
237
- foreach ( $imageTags as $tag ) {
238
- $src = $tag->getAttribute( 'href' );
239
-
240
- $white_list_js = [
241
- 'wp-includes/css/dashicons.min.css',
242
- 'wp-includes/css/admin-bar.min.css',
243
- // --
244
- 'assets-manager/assets/css/assets-manager.css',
245
- 'assets-manager-premium/assets/css/assets-manager.css',
246
- 'assets-manager-premium-premium/assets/css/assets-manager.css',
247
- // --
248
- 'assets-manager/assets/css/assets-conditions.css',
249
- 'assets-manager-premium/assets/css/assets-conditions.css',
250
- 'assets-manager-premium-premium/assets/css/assets-conditions.css',
251
- // --
252
- 'clearfy/assets/css/admin-bar.css',
253
- // --
254
- 'assets-manager/assets/css/PNotifyBrightTheme.css',
255
- 'assets-manager-premium/assets/css/PNotifyBrightTheme.css',
256
- 'assets-manager-premium-premium/assets/css/PNotifyBrightTheme.css',
257
-
258
- ];
259
-
260
- if ( ! empty( $src ) ) {
261
- foreach ( $white_list_js as $js ) {
262
- if ( false !== strpos( $src, $js ) ) {
263
- return $matches[0];
264
- }
265
- }
266
- }
267
-
268
- return '';
269
- }
270
- }, $html );
271
-
272
- $html = preg_replace_callback( [
273
- "'<\s*script.*?<\s*\/\s*script\s*>'is",
274
- ], function ( $matches ) {
275
- if ( false !== strpos( $matches[0], 'wam_localize_data' ) ) {
276
- return $matches[0];
277
- }
278
- if ( false !== strpos( $matches[0], 'wam-conditions-builder-template' ) ) {
279
- return $matches[0];
280
- }
281
-
282
- $doc = new DOMDocument();
283
- $doc->loadHTML( $matches[0] );
284
- $imageTags = $doc->getElementsByTagName( 'script' );
285
-
286
- foreach ( $imageTags as $tag ) {
287
- $src = $tag->getAttribute( 'src' );
288
-
289
- $white_list_js = [
290
- 'wam-jquery.js',
291
- 'wam-jquery-migrate.min.js',
292
- 'wp-includes/js/admin-bar.min.js',
293
- // --
294
- 'assets-manager/assets/js/assets-manager.js',
295
- 'assets-manager-premium/assets/js/assets-manager.js',
296
- 'assets-manager-premium-premium/assets/js/assets-manager.js',
297
- // --
298
- 'assets-manager/assets/js/assets-conditions.js',
299
- 'assets-manager-premium/assets/js/assets-conditions.js',
300
- 'assets-manager-premium-premium/assets/js/assets-conditions.js',
301
- // --
302
- 'assets-manager/assets/js/PNotify.js',
303
- 'assets-manager-premium/assets/js/PNotify.js',
304
- 'assets-manager-premium-premium/assets/js/PNotify.js',
305
-
306
- ];
307
-
308
- if ( ! empty( $src ) ) {
309
- foreach ( $white_list_js as $js ) {
310
- if ( false !== strpos( $src, $js ) ) {
311
- return $matches[0];
312
- }
313
- }
314
- }
315
-
316
- return '';
317
- }
318
- //return $matches[0];
319
- }, $html );
320
-
321
- if ( empty( $html ) ) {
322
- return $raw_html;
323
- }
324
-
325
- return $html;
326
- } );
327
  }
328
 
329
  /**
330
- * Добавляем ссылку для перехода к менджеру в меню Clearfy (которое в админбаре)
331
  *
332
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
333
  * @since 1.1.0
334
  *
335
- * @param array $menu_items Массив ссылок из меню Clearfy
336
  *
337
  * @return mixed
338
  */
339
- function clearfy_admin_bar_menu_filter( $menu_items ) {
340
- //todo: Закрыть функциональность для админки
341
- if ( is_admin() ) {
342
- return $menu_items;
343
- }
344
-
345
  $current_url = add_query_arg( [ 'wbcr_assets_manager' => 1 ] );
346
 
347
  $menu_items['assets_manager_render_template'] = [
@@ -353,19 +273,14 @@ class WGZ_Assets_Manager_Public {
353
  }
354
 
355
  /**
356
- * Добавляем меню для перехода к менджеру в админбар
357
  *
358
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
359
  * @since 1.1.0
360
  *
361
  * @param WP_Admin_Bar $wp_admin_bar
362
  */
363
- function assets_manager_add_admin_bar_menu( $wp_admin_bar ) {
364
- //todo: Закрыть функциональность для админки
365
- if ( ! $this->is_user_can() || is_admin() ) {
366
- return;
367
- }
368
-
369
  $current_url = add_query_arg( [ 'wbcr_assets_manager' => 1 ] );
370
 
371
  $args = [
@@ -377,33 +292,23 @@ class WGZ_Assets_Manager_Public {
377
  }
378
 
379
  /**
380
- * Печатает шаблон менеджера скриптов в теле страницы
381
  *
382
- * Это функция обратного вызова, для хуков admin_footer,
383
- * wp_footer
384
  *
385
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
386
  * @since 2.0.0
387
  * @throws \Exception
388
  */
389
- function assets_manager_render_template() {
390
  if ( ! $this->is_user_can() || ! isset( $_GET['wbcr_assets_manager'] ) ) {
391
  return;
392
  }
393
 
394
- // Reset settings
395
- if ( isset( $_GET['wam_reset_settings'] ) ) {
396
- check_admin_referer( 'wam_reset_settings' );
397
- $this->plugin->updateOption( 'assets_states', [] );
398
- wp_redirect( untrailingslashit( $this->get_current_url() ) . '?wbcr_assets_manager' );
399
- die();
400
- }
401
-
402
- $settings = $this->plugin->getOption( 'assets_states', [] );
403
 
404
  $views = new WGZ_Views( WGZ_PLUGIN_DIR );
405
  $views->print_template( 'assets-manager', [
406
- 'current_url' => esc_url( $this->get_current_url() ),
407
  'save_mode' => isset( $settings['save_mode'] ) ? (bool) $settings['save_mode'] : false,
408
  'collection' => $this->collection,
409
  'loaded_plugins' => $this->get_loaded_plugins(),
@@ -417,16 +322,21 @@ class WGZ_Assets_Manager_Public {
417
  }
418
 
419
  /**
 
 
 
 
420
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
421
  * @since 2.0.0
422
  *
423
- * @param $src
424
- * @param $handle
425
  *
426
- * @return mixed
 
427
  */
428
- function filter_load_assets( $src, $handle ) {
429
- $settings = $this->plugin->getOption( 'assets_states', [] );
430
 
431
  if ( isset( $_GET['wbcr_assets_manager'] ) || empty( $settings ) || ( true === $settings['save_mode'] && ! $this->is_user_can() ) ) {
432
  return $src;
@@ -518,15 +428,21 @@ class WGZ_Assets_Manager_Public {
518
  $resource_type = 'misc';
519
  }
520
 
521
- $resource_name = '';
 
522
  if ( 'plugins' == $resource_type ) {
523
  $clean_url = str_replace( WP_PLUGIN_URL . '/', '', $url );
524
  $url_parts = explode( '/', $clean_url );
525
- $resource_name = isset( $url_parts[0] ) ? $url_parts[0] : '';
 
 
 
 
 
526
  }
527
 
528
- if ( ! isset( $this->collection[ $resource_type ][ $resource_name ][ $type ][ $el ] ) ) {
529
- $this->collection[ $resource_type ][ $resource_name ][ $type ][ $el ] = [
530
  'url_full' => $url,
531
  'url_short' => $url_short,
532
  //'state' => $this->get_visibility($type, $el),
@@ -565,7 +481,7 @@ class WGZ_Assets_Manager_Public {
565
  }
566
 
567
  /**
568
- * Подключаем скрипты и стили плагина
569
  *
570
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
571
  * @since 2.0.0
@@ -577,21 +493,6 @@ class WGZ_Assets_Manager_Public {
577
  wp_enqueue_style( 'wam-assets-manager', WGZ_PLUGIN_URL . '/assets/css/assets-manager.css', [], $plugin_ver );
578
  wp_enqueue_style( 'wam-assets-conditions', WGZ_PLUGIN_URL . '/assets/css/assets-conditions.css', [], $plugin_ver );
579
  wp_enqueue_style( 'wam-pnotify', WGZ_PLUGIN_URL . '/assets/css/PNotifyBrightTheme.css', [], $plugin_ver );
580
-
581
- // Фикс для рукожопов, которые отключают jquery из ядра
582
- /*if ( ! wp_script_is( 'jquery' ) ) {
583
- wp_enqueue_script( 'jquery', '/wp-includes/js/jquery/jquery.js', [], '1.12.4-wp' );
584
- }*/
585
- /*wp_enqueue_script( 'wam-pnotify', WGZ_PLUGIN_URL . '/assets/js/PNotify.js', [], $plugin_ver, true );
586
- wp_enqueue_script( 'wam-assets-conditions', WGZ_PLUGIN_URL . '/assets/js/assets-conditions.js', [ 'jquery' ], $plugin_ver, true );
587
- wp_enqueue_script( 'wam-assets-manager', WGZ_PLUGIN_URL . '/assets/js/assets-manager.js', [
588
- 'jquery',
589
- 'wam-assets-conditions'
590
- ], $plugin_ver, true );
591
-
592
- wp_localize_script( 'wam-assets-manager', 'wam_localize_data', [
593
- 'ajaxurl' => admin_url( 'admin-ajax.php', is_ssl() ? 'admin' : 'http' )
594
- ] );*/
595
  }
596
  }
597
 
@@ -602,21 +503,172 @@ class WGZ_Assets_Manager_Public {
602
  * @since 2.0.0
603
  */
604
  public function print_plugin_scripts() {
 
 
 
 
 
 
 
605
  ?>
606
  <script>
607
  var wam_localize_data = <?php echo json_encode( [
608
- 'ajaxurl' => admin_url( 'admin-ajax.php', is_ssl() ? 'admin' : 'http' )
 
 
 
 
 
 
 
609
  ] ) ?>;
610
  </script>
611
- <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/wam-jquery.js'; ?>'></script>
612
- <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/wam-jquery-migrate.min.js'; ?>'></script>
613
- <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/PNotify.js'; ?>'></script>
614
- <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/assets-conditions.js'; ?>'></script>
615
- <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/assets-manager.js'; ?>'></script>
 
 
616
  <?php
617
  }
618
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
619
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
620
  private function get_collected_assets( $type ) {
621
  $assets = [];
622
 
@@ -626,15 +678,51 @@ class WGZ_Assets_Manager_Public {
626
 
627
  foreach ( (array) $this->collection as $resource_type => $resources ) {
628
  if ( $type == $resource_type ) {
629
- foreach ( $resources as $resource_name => $types ) {
630
- $assets = $this->get_parsed_asset_settings( $types, $resource_type );
631
- }
632
  }
633
  }
634
 
635
  return $assets;
636
  }
637
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
638
  /**
639
  * Позволяет получить список плагинов, которые загружаются на странице
640
  *
@@ -688,7 +776,7 @@ class WGZ_Assets_Manager_Public {
688
  * @throws \Exception
689
  */
690
  private function get_parsed_plugin_settings( $plugin_name, $setting_name = null ) {
691
- $settings = $this->plugin->getOption( 'assets_states', [] );
692
  $default_settings = [
693
  'load_mode' => 'enable',
694
  'visability' => "",
@@ -745,7 +833,7 @@ class WGZ_Assets_Manager_Public {
745
  private function get_parsed_asset_settings( array $assets, $group_name, $plugin_name = null ) {
746
  $plugin_group = false;
747
  $settings_formated = [];
748
- $settings = $this->plugin->getOption( 'assets_states', [] );
749
 
750
  if ( ! isset( $assets['js'] ) ) {
751
  $assets['js'] = [];
@@ -797,7 +885,8 @@ class WGZ_Assets_Manager_Public {
797
  $s['settings_button_classes'] = " js-wam-button--hidden";
798
  }
799
 
800
- $s = array_merge( $s, $attrs );
 
801
  }
802
  }
803
 
@@ -834,6 +923,28 @@ class WGZ_Assets_Manager_Public {
834
  return $data;
835
  }
836
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
837
  /**
838
  * Exception for address starting from "//example.com" instead of
839
  * "http://example.com". WooCommerce likes such a format
@@ -857,15 +968,23 @@ class WGZ_Assets_Manager_Public {
857
  *
858
  * @return string
859
  */
860
- private function get_current_url() {
861
- $url = explode( '?', $_SERVER['REQUEST_URI'], 2 );
862
- if ( strlen( $url[0] ) > 1 ) {
863
- $out = rtrim( $url[0], '/' );
864
- } else {
865
- $out = $url[0];
 
 
 
 
866
  }
867
 
868
- return $out;
 
 
 
 
869
  }
870
 
871
  /**
@@ -904,7 +1023,7 @@ class WGZ_Assets_Manager_Public {
904
  $roles_param_values = [
905
  [
906
  'value' => 'guest',
907
- 'title' => __( 'Guest', 'insert-php' ),
908
  ]
909
  ];
910
 
@@ -944,6 +1063,274 @@ class WGZ_Assets_Manager_Public {
944
 
945
  $pro_label = ! defined( 'WGZP_PLUGIN_ACTIVE' ) ? ' (Pro)' : '';
946
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
947
  $grouped_filter_params = [
948
  [
949
  'id' => 'user',
@@ -987,121 +1374,7 @@ class WGZ_Assets_Manager_Public {
987
  [
988
  'id' => 'location',
989
  'title' => __( 'Location', 'gonzales' ),
990
- 'items' => [
991
- [
992
- 'id' => 'current-url',
993
- 'title' => __( 'Current URL', 'gonzales' ),
994
- 'type' => 'default',
995
- 'default_value' => ( "/" === $this->get_current_url() ? "/" : trailingslashit( $this->get_current_url() ) ),
996
- 'description' => __( 'Current Url', 'gonzales' )
997
- ],
998
- [
999
- 'id' => 'location-page',
1000
- 'title' => __( 'Custom URL', 'gonzales' ) . $pro_label,
1001
- 'type' => 'text',
1002
- 'description' => __( 'An URL of the current page where a user who views your website is located.', 'gonzales' ),
1003
- 'disabled' => ! defined( 'WGZP_PLUGIN_ACTIVE' )
1004
- ],
1005
- [
1006
- 'id' => 'regular-expression',
1007
- 'title' => __( 'Regular Expression', 'gonzales' ) . $pro_label,
1008
- 'type' => 'regexp',
1009
- 'placeholder' => '^(about-page-[0-9]+|contacts-[0-9]{,2})',
1010
- 'description' => __( 'Regular expressions can be used by experts. This tool creates flexible conditions to disable the resource. For example, if you specify this expression: ^([A-z0-9]+-)?gifts? then the resource will be disabled at the following pages http://yoursite.test/get-gift/, http://yoursite.test/gift/, http://yoursite.test/get-gifts/, http://yoursite.test/gifts/. The plugin ignores the backslash at the beginning of the query string, so you can dismiss it. Check your regular expressions in here: https://regex101.com, this will prevent you from the mistakes. This feature is available at the paid version.', 'gonzales' ),
1011
- 'disabled' => ! defined( 'WGZP_PLUGIN_ACTIVE' )
1012
- ],
1013
- [
1014
- 'id' => 'location-some-page',
1015
- 'title' => __( 'Page', 'gonzales' ),
1016
- 'type' => 'select',
1017
- 'params' => [
1018
- 'Basic' => [
1019
- [
1020
- 'value' => 'base_web',
1021
- 'title' => __( 'Entire Website', 'insert-php' ),
1022
- ],
1023
- [
1024
- 'value' => 'base_sing',
1025
- 'title' => __( 'All Singulars', 'insert-php' ),
1026
- ],
1027
- [
1028
- 'value' => 'base_arch',
1029
- 'title' => __( 'All Archives', 'insert-php' ),
1030
- ],
1031
- ],
1032
- 'Special Pages' => [
1033
- [
1034
- 'value' => 'spec_404',
1035
- 'title' => __( '404 Page', 'insert-php' )
1036
- ],
1037
- [
1038
- 'value' => 'spec_search',
1039
- 'title' => __( 'Search Page', 'insert-php' )
1040
- ],
1041
- [
1042
- 'value' => 'spec_blog',
1043
- 'title' => __( 'Blog / Posts Page', 'insert-php' )
1044
- ],
1045
- [
1046
- 'value' => 'spec_front',
1047
- 'title' => __( 'Front Page', 'insert-php' )
1048
- ],
1049
- [
1050
- 'value' => 'spec_date',
1051
- 'title' => __( 'Date Archive', 'insert-php' )
1052
- ],
1053
- [
1054
- 'value' => 'spec_auth',
1055
- 'title' => __( 'Author Archive', 'insert-php' )
1056
- ],
1057
- ],
1058
- 'Posts' => [
1059
- [
1060
- 'value' => 'post_all',
1061
- 'title' => __( 'All Posts', 'insert-php' )
1062
- ],
1063
- [
1064
- 'value' => 'post_arch',
1065
- 'title' => __( 'All Posts Archive', 'insert-php' )
1066
- ],
1067
- [
1068
- 'value' => 'post_cat',
1069
- 'title' => __( 'All Categories Archive', 'insert-php' )
1070
- ],
1071
- [
1072
- 'value' => 'post_tag',
1073
- 'title' => __( 'All Tags Archive', 'insert-php' )
1074
- ],
1075
- ],
1076
- 'Pages' => [
1077
- [
1078
- 'value' => 'page_all',
1079
- 'title' => __( 'All Pages', 'insert-php' )
1080
- ],
1081
- [
1082
- 'value' => 'page_arch',
1083
- 'title' => __( 'All Pages Archive', 'insert-php' )
1084
- ],
1085
- ],
1086
-
1087
- ],
1088
- 'description' => __( 'List of specific pages.', 'gonzales' )
1089
- ],
1090
- [
1091
- 'id' => 'location-post-type',
1092
- 'title' => __( 'Post type', 'gonzales' ),
1093
- 'type' => 'select',
1094
- 'params' => $post_types_param_values,
1095
- 'description' => __( 'A post type of the current page.', 'gonzales' ),
1096
- ],
1097
- [
1098
- 'id' => 'location-taxonomy',
1099
- 'title' => __( 'Taxonomy', 'gonzales' ),
1100
- 'type' => 'select',
1101
- 'params' => $taxonomies_param_values,
1102
- 'description' => __( 'A taxonomy of the current page.', 'gonzales' ),
1103
- ]
1104
- ]
1105
  ]
1106
  ];
1107
 
21
  public $collection = [];
22
 
23
  /**
24
+ * @param Wbcr_Factory422_Plugin $plugin
25
  */
26
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
27
  $this->plugin = $plugin;
28
 
29
  $this->register_hooks();
30
  }
31
 
32
  /**
33
+ * Check user permissions
34
  *
35
+ * User must have administrator or super administrator permissions to use the plugin.
 
36
  *
37
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
38
  * @since 1.1.0
72
  }
73
 
74
  if ( ! is_admin() && ! $on_frontend ) {
 
75
  add_action( 'wp_head', [ $this, 'collect_assets' ], 10000 );
76
  add_action( 'wp_footer', [ $this, 'collect_assets' ], 10000 );
77
  }
89
  }
90
  }
91
 
92
+ # Reset plugin settings and clean source code
93
+ //add_action( 'template_redirect', [ $this, 'redirects' ], 9999 );
94
+ add_action( 'init', [ $this, 'redirects' ], 9999 );
95
+
96
  ##Login/Logout
97
  add_action( 'wp_login', [ $this, 'user_logged_in' ], 99, 2 );
98
  add_action( 'wp_logout', [ $this, 'user_logged_out' ] );
99
 
100
  // Stop optimizing scripts and caching the asset manager page.
101
+ //add_action( 'plugins_loaded', [ $this, 'stop_caching_and_script_optimize' ] );
102
+ $this->stop_caching_and_script_optimize();
103
 
104
  // Disable autoptimize on Assets manager page
105
  add_filter( 'autoptimize_filter_noptimize', [ $this, 'autoptimize_noptimize' ], 10, 0 );
110
  }
111
  }
112
 
113
+ /**
114
+ * Render a fake checkbox to show for user, it is pro feature.
115
+ *
116
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
117
+ * @since 1.1
118
+ *
119
+ * @param array $data Temlate data
120
+ */
121
  public function print_save_mode_fake_checkbox( $data ) {
122
  if ( defined( 'WGZP_PLUGIN_ACTIVE' ) ) {
123
  return;
131
  }
132
 
133
  /**
134
+ * Write cookie with user roles
135
  *
136
+ * MU plugin will use cookie for identity user role. We can't use all wordpress
137
+ * features before full wp load.
138
  *
139
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
140
  * @since 2.0.0
153
  }
154
 
155
  /**
156
+ * Delete cookie with user roles when user logged out
157
  *
158
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
159
  * @since 2.0.0
197
  if ( ! defined( 'DONOTMINIFY' ) ) {
198
  define( 'DONOTMINIFY', true );
199
  }
200
+
201
+ if ( ! defined( 'DONOTROCKETOPTIMIZE' ) ) {
202
+ define( 'DONOTROCKETOPTIMIZE', true );
203
+ }
204
+
205
+ if ( ! defined( 'DONOTMINIFYJS' ) ) {
206
+ define( 'DONOTMINIFYJS', true );
207
+ }
208
+
209
+ if ( ! defined( 'DONOTASYNCCSS' ) ) {
210
+ define( 'DONOTASYNCCSS', true );
211
+ }
212
+
213
+ if ( ! defined( 'DONOTMINIFYCSS' ) ) {
214
+ define( 'DONOTMINIFYCSS', true );
215
+ }
216
+
217
+ if ( ! defined( 'WHM_DO_NOT_HIDE_WP' ) ) {
218
+ define( 'WHM_DO_NOT_HIDE_WP', true );
219
+ }
220
  }
221
 
222
  /**
235
  }
236
 
237
  /**
238
+ * Adds two actions "Reset options" and "Clean source code"
 
239
  *
240
+ * The method will call in init action.
241
  *
242
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
243
+ * @since 1.1.0
244
  */
245
+ public function redirects() {
246
  if ( ! isset( $_GET['wbcr_assets_manager'] ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
247
+ return;
248
  }
249
 
250
+ $this->reset_plugin_settings_redirect();
251
+ $this->clean_source_code();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  }
253
 
254
  /**
255
+ * Adds a link in Clearfy admin bar menu to go to the Assets manager
256
  *
257
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
258
  * @since 1.1.0
259
  *
260
+ * @param array $menu_items Array links of Clearfy menu
261
  *
262
  * @return mixed
263
  */
264
+ public function clearfy_admin_bar_menu_filter( $menu_items ) {
 
 
 
 
 
265
  $current_url = add_query_arg( [ 'wbcr_assets_manager' => 1 ] );
266
 
267
  $menu_items['assets_manager_render_template'] = [
273
  }
274
 
275
  /**
276
+ * Add Assets Manager menu to admin bar.
277
  *
278
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
279
  * @since 1.1.0
280
  *
281
  * @param WP_Admin_Bar $wp_admin_bar
282
  */
283
+ public function assets_manager_add_admin_bar_menu( $wp_admin_bar ) {
 
 
 
 
 
284
  $current_url = add_query_arg( [ 'wbcr_assets_manager' => 1 ] );
285
 
286
  $args = [
292
  }
293
 
294
  /**
295
+ * Render Assets Manager view in the page body.
296
  *
297
+ * This is callback function for admin_footer and wp_footer hooks.
 
298
  *
299
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
300
  * @since 2.0.0
301
  * @throws \Exception
302
  */
303
+ public function assets_manager_render_template() {
304
  if ( ! $this->is_user_can() || ! isset( $_GET['wbcr_assets_manager'] ) ) {
305
  return;
306
  }
307
 
308
+ $settings = $this->get_settings();
 
 
 
 
 
 
 
 
309
 
310
  $views = new WGZ_Views( WGZ_PLUGIN_DIR );
311
  $views->print_template( 'assets-manager', [
 
312
  'save_mode' => isset( $settings['save_mode'] ) ? (bool) $settings['save_mode'] : false,
313
  'collection' => $this->collection,
314
  'loaded_plugins' => $this->get_loaded_plugins(),
322
  }
323
 
324
  /**
325
+ * Filter loaded assets by user conditions.
326
+ *
327
+ * If enabled save mode or onened Assets Manager panel, assets will not be filtered. *
328
+ *
329
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
330
  * @since 2.0.0
331
  *
332
+ * @param string $src
333
+ * @param string $handle
334
  *
335
+ * @return bool
336
+ * @throws \Exception
337
  */
338
+ public function filter_load_assets( $src, $handle ) {
339
+ $settings = $this->get_settings();
340
 
341
  if ( isset( $_GET['wbcr_assets_manager'] ) || empty( $settings ) || ( true === $settings['save_mode'] && ! $this->is_user_can() ) ) {
342
  return $src;
428
  $resource_type = 'misc';
429
  }
430
 
431
+ $collection = &$this->collection[ $resource_type ];
432
+
433
  if ( 'plugins' == $resource_type ) {
434
  $clean_url = str_replace( WP_PLUGIN_URL . '/', '', $url );
435
  $url_parts = explode( '/', $clean_url );
436
+ $resource_name = ! empty( $url_parts[0] ) ? $url_parts[0] : null;
437
+
438
+ if ( empty( $resource_name ) ) {
439
+ continue;
440
+ }
441
+ $collection = &$this->collection[ $resource_type ][ $resource_name ];
442
  }
443
 
444
+ if ( ! isset( $collection[ $type ][ $el ] ) ) {
445
+ $collection[ $type ][ $el ] = [
446
  'url_full' => $url,
447
  'url_short' => $url_short,
448
  //'state' => $this->get_visibility($type, $el),
481
  }
482
 
483
  /**
484
+ * Enqueue scripts and styles of the plugin
485
  *
486
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
487
  * @since 2.0.0
493
  wp_enqueue_style( 'wam-assets-manager', WGZ_PLUGIN_URL . '/assets/css/assets-manager.css', [], $plugin_ver );
494
  wp_enqueue_style( 'wam-assets-conditions', WGZ_PLUGIN_URL . '/assets/css/assets-conditions.css', [], $plugin_ver );
495
  wp_enqueue_style( 'wam-pnotify', WGZ_PLUGIN_URL . '/assets/css/PNotifyBrightTheme.css', [], $plugin_ver );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
496
  }
497
  }
498
 
503
  * @since 2.0.0
504
  */
505
  public function print_plugin_scripts() {
506
+ $scope = 'frontend';
507
+
508
+ if ( $this->plugin->isNetworkActive() && $this->plugin->isNetworkAdmin() ) {
509
+ $scope = 'networkadmin';
510
+ } else if ( is_admin() ) {
511
+ $scope = 'admin';
512
+ }
513
  ?>
514
  <script>
515
  var wam_localize_data = <?php echo json_encode( [
516
+ 'ajaxurl' => admin_url( 'admin-ajax.php', is_ssl() ? 'admin' : 'http' ),
517
+ 'scope' => $scope,
518
+ 'i18n' => [
519
+ 'asset_canbe_required_title' => __( 'Warning', 'gonzales' ),
520
+ 'asset_canbe_required_text' => __( 'The asset is required for %s. If you will disable the asset, other assets which in dependence on this asset also will disabled.', 'gonzales' ),
521
+ 'reset_settings_warning_title' => __( 'Are you sure you want to reset all plugin settings?', 'gonzales' ),
522
+ 'reset_settings_warning_text' => __( 'If you click OK, all conditions settings will be reset, including settings that you made on other pages and in the admin panel. ', 'gonzales' )
523
+ ]
524
  ] ) ?>;
525
  </script>
526
+ <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/libs/wam-jquery.js'; ?>'></script>
527
+ <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/libs/wam-jquery-migrate.min.js'; ?>'></script>
528
+ <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/libs/wam-pnotify.js'; ?>'></script>
529
+ <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/libs/wam-pnotify-confirm.js'; ?>'></script>
530
+ <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/libs/wam-pnotify-history.js'; ?>'></script>
531
+ <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/wam-assets-conditions.js'; ?>'></script>
532
+ <script type='text/javascript' src='<?php echo WGZ_PLUGIN_URL . '/assets/js/wam-assets-manager.js'; ?>'></script>
533
  <?php
534
  }
535
 
536
+ /**
537
+ * We remove scripts and styles of themes, plugins to avoidE
538
+ * unnecessary conflicts during the use of the asset manager.
539
+ *
540
+ * todo: the method requires better study. Sorry, I don't have time for this.
541
+ *
542
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
543
+ * @since 1.0.8
544
+ */
545
+ private function clean_source_code() {
546
+ ob_start( function ( $html ) {
547
+
548
+ $raw_html = $html;
549
+
550
+ $html = preg_replace( [
551
+ "'<\s*style.*?<\s*/\s*style\s*>'is",
552
+ ], [
553
+ ""
554
+ ], $html );
555
+
556
+ $html = preg_replace_callback( [
557
+ "'<\s*link.*?>'is",
558
+ ], function ( $matches ) {
559
+ $doc = new DOMDocument();
560
+ $doc->loadHTML( $matches[0] );
561
+ $imageTags = $doc->getElementsByTagName( 'link' );
562
+
563
+ foreach ( $imageTags as $tag ) {
564
+ $src = $tag->getAttribute( 'href' );
565
 
566
+ $white_list_js = [
567
+ 'wp-includes/css/dashicons.min.css',
568
+ 'wp-includes/css/admin-bar.min.css',
569
+ 'assets/css/assets-manager.css',
570
+ 'assets/css/assets-conditions.css',
571
+ 'clearfy/assets/css/admin-bar.css',
572
+ 'assets/css/PNotifyBrightTheme.css'
573
+ ];
574
+
575
+ if ( ! empty( $src ) ) {
576
+ foreach ( $white_list_js as $js ) {
577
+ if ( false !== strpos( $src, $js ) ) {
578
+ return $matches[0];
579
+ }
580
+ }
581
+ }
582
+
583
+ return '';
584
+ }
585
+ }, $html );
586
+
587
+ $html = preg_replace_callback( [
588
+ "'<\s*script.*?<\s*\/\s*script\s*>'is",
589
+ ], function ( $matches ) {
590
+ if ( false !== strpos( $matches[0], 'wam_localize_data' ) ) {
591
+ return $matches[0];
592
+ }
593
+ if ( false !== strpos( $matches[0], 'wam-conditions-builder-template' ) ) {
594
+ return $matches[0];
595
+ }
596
+
597
+ $doc = new DOMDocument();
598
+ $doc->loadHTML( $matches[0] );
599
+ $imageTags = $doc->getElementsByTagName( 'script' );
600
+
601
+ foreach ( $imageTags as $tag ) {
602
+ $src = $tag->getAttribute( 'src' );
603
+
604
+ $white_list_js = [
605
+ 'wam-jquery.js',
606
+ 'wam-jquery-migrate.min.js',
607
+ 'wp-includes/js/admin-bar.min.js',
608
+ // --
609
+ 'assets/js/wam-assets-manager.js',
610
+ 'assets/js/wam-assets-conditions.js',
611
+ // --
612
+ 'assets/js/libs/wam-pnotify.js',
613
+ 'assets/js/libs/wam-pnotify-confirm.js',
614
+ 'assets/js/libs/wam-pnotify-history.js',
615
+
616
+ ];
617
+
618
+ if ( ! empty( $src ) ) {
619
+ foreach ( $white_list_js as $js ) {
620
+ if ( false !== strpos( $src, $js ) ) {
621
+ return $matches[0];
622
+ }
623
+ }
624
+ }
625
+
626
+ return '';
627
+ }
628
+ //return $matches[0];
629
+ }, $html );
630
+
631
+ if ( empty( $html ) ) {
632
+ return $raw_html;
633
+ }
634
+
635
+ return $html;
636
+ } );
637
+ }
638
+
639
+ /**
640
+ * If exists GET var, the method make redirect to Assets Manager
641
+ *
642
+ * Before redirecting, the method will clear some options to completely reset settings.
643
+ *
644
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
645
+ * @since 2.0.0
646
+ */
647
+ private function reset_plugin_settings_redirect() {
648
+ // Reset settings
649
+ if ( isset( $_GET['wbcr_assets_manager'] ) && isset( $_GET['wam_reset_settings'] ) ) {
650
+ check_admin_referer( 'wam_reset_settings' );
651
+ $this->plugin->updateOption( 'assets_states', [] );
652
+ $this->plugin->updateOption( 'backend_assets_states', [] );
653
+
654
+ if ( $this->plugin->isNetworkActive() ) {
655
+ $this->plugin->updateNetworkOption( 'backend_assets_states', [] );
656
+ }
657
+
658
+ wp_redirect( remove_query_arg( [ 'wam_reset_settings', '_wpnonce' ] ) );
659
+ die();
660
+ }
661
+ }
662
+
663
+ /**
664
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
665
+ * @since 2.0.0
666
+ *
667
+ * @param string $type
668
+ *
669
+ * @return array
670
+ * @throws \Exception
671
+ */
672
  private function get_collected_assets( $type ) {
673
  $assets = [];
674
 
678
 
679
  foreach ( (array) $this->collection as $resource_type => $resources ) {
680
  if ( $type == $resource_type ) {
681
+ $assets = $this->get_parsed_asset_settings( $resources, $resource_type );
 
 
682
  }
683
  }
684
 
685
  return $assets;
686
  }
687
 
688
+ private function get_asset_requires( $handle ) {
689
+ $requires = [];
690
+
691
+ if ( empty( $this->collection ) ) {
692
+ return $requires;
693
+ }
694
+
695
+ foreach ( (array) $this->collection as $resource_type => $resources ) {
696
+ if ( empty( $resources ) ) {
697
+ continue;
698
+ }
699
+
700
+ if ( 'plugins' == $resource_type ) {
701
+ foreach ( (array) $resources as $plugin_name => $plugin_types ) {
702
+ if ( ! empty( $plugin_types ) ) {
703
+ foreach ( (array) $plugin_types as $plugin_type_name => $plugin_resources ) {
704
+ foreach ( (array) $plugin_resources as $plugin_resource_name => $plugin_resource ) {
705
+ if ( ! empty( $plugin_resource['deps'] ) && in_array( $handle, $plugin_resource['deps'] ) ) {
706
+ $requires[] = '<a class="js-wam-require-handle-tag" data-tag-handle="' . esc_attr( $plugin_resource_name . '-' . $plugin_type_name ) . '" href="#">' . esc_attr( $plugin_resource_name ) . '</a>';
707
+ }
708
+ }
709
+ }
710
+ }
711
+ }
712
+ } else {
713
+ foreach ( (array) $resources as $other_type_name => $other_resources ) {
714
+ foreach ( (array) $other_resources as $other_resource_name => $other_resource ) {
715
+ if ( ! empty( $other_resource['deps'] ) && in_array( $handle, $other_resource['deps'] ) ) {
716
+ $requires[] = '<a class="js-wam-require-handle-tag" data-tag-handle="' . esc_attr( $other_resource_name . '-' . $other_type_name ) . '" href="#">' . esc_attr( $other_resource_name ) . '</a>';
717
+ }
718
+ }
719
+ }
720
+ }
721
+ }
722
+
723
+ return $requires;
724
+ }
725
+
726
  /**
727
  * Позволяет получить список плагинов, которые загружаются на странице
728
  *
776
  * @throws \Exception
777
  */
778
  private function get_parsed_plugin_settings( $plugin_name, $setting_name = null ) {
779
+ $settings = $this->get_settings();
780
  $default_settings = [
781
  'load_mode' => 'enable',
782
  'visability' => "",
833
  private function get_parsed_asset_settings( array $assets, $group_name, $plugin_name = null ) {
834
  $plugin_group = false;
835
  $settings_formated = [];
836
+ $settings = $this->get_settings();
837
 
838
  if ( ! isset( $assets['js'] ) ) {
839
  $assets['js'] = [];
885
  $s['settings_button_classes'] = " js-wam-button--hidden";
886
  }
887
 
888
+ $s['requires'] = $this->get_asset_requires( $name );
889
+ $s = array_merge( $s, $attrs );
890
  }
891
  }
892
 
923
  return $data;
924
  }
925
 
926
+ /**
927
+ * Get all plugin settings in dependence on logic.
928
+ *
929
+ * If plugin loaded in admin area, the method will return settings for the admin area. *
930
+ *
931
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
932
+ * @since 2.0.1
933
+ * @return array All plugin settings
934
+ * @throws \Exception
935
+ */
936
+ private function get_settings() {
937
+ if ( is_admin() ) {
938
+ if ( $this->plugin->isNetworkActive() && $this->plugin->isNetworkAdmin() ) {
939
+ return $this->plugin->getNetworkOption( 'backend_assets_states', [] );
940
+ }
941
+
942
+ return $this->plugin->getOption( 'backend_assets_states', [] );
943
+ }
944
+
945
+ return $this->plugin->getOption( 'assets_states', [] );
946
+ }
947
+
948
  /**
949
  * Exception for address starting from "//example.com" instead of
950
  * "http://example.com". WooCommerce likes such a format
968
  *
969
  * @return string
970
  */
971
+ private function get_current_url_path() {
972
+ if ( ! is_admin() ) {
973
+ $url = explode( '?', $_SERVER['REQUEST_URI'], 2 );
974
+ if ( strlen( $url[0] ) > 1 ) {
975
+ $out = rtrim( $url[0], '/' );
976
+ } else {
977
+ $out = $url[0];
978
+ }
979
+
980
+ return "/" === $out ? "/" : untrailingslashit( $out );
981
  }
982
 
983
+ $removeble_args = array_merge( [ 'wbcr_assets_manager' ], wp_removable_query_args() );
984
+
985
+ $url = remove_query_arg( $removeble_args, $_SERVER['REQUEST_URI'] );
986
+
987
+ return untrailingslashit( $url );
988
  }
989
 
990
  /**
1023
  $roles_param_values = [
1024
  [
1025
  'value' => 'guest',
1026
+ 'title' => __( 'Guest', 'gonzales' ),
1027
  ]
1028
  ];
1029
 
1063
 
1064
  $pro_label = ! defined( 'WGZP_PLUGIN_ACTIVE' ) ? ' (Pro)' : '';
1065
 
1066
+ $location_items = [
1067
+ [
1068
+ 'id' => 'current-url',
1069
+ 'title' => __( 'Current URL', 'gonzales' ),
1070
+ 'type' => 'default',
1071
+ 'default_value' => $this->get_current_url_path(),
1072
+ 'description' => __( 'Current Url', 'gonzales' )
1073
+ ],
1074
+ [
1075
+ 'id' => 'location-page',
1076
+ 'title' => __( 'Custom URL', 'gonzales' ) . $pro_label,
1077
+ 'type' => 'text',
1078
+ 'description' => __( 'An URL of the current page where a user who views your website is located.', 'gonzales' ),
1079
+ 'disabled' => ! defined( 'WGZP_PLUGIN_ACTIVE' )
1080
+ ],
1081
+ [
1082
+ 'id' => 'regular-expression',
1083
+ 'title' => __( 'Regular Expression', 'gonzales' ) . $pro_label,
1084
+ 'type' => 'regexp',
1085
+ 'placeholder' => '^(about-page-[0-9]+|contacts-[0-9]{,2})',
1086
+ 'description' => __( 'Regular expressions can be used by experts. This tool creates flexible conditions to disable the resource. For example, if you specify this expression: ^([A-z0-9]+-)?gifts? then the resource will be disabled at the following pages http://yoursite.test/get-gift/, http://yoursite.test/gift/, http://yoursite.test/get-gifts/, http://yoursite.test/gifts/. The plugin ignores the backslash at the beginning of the query string, so you can dismiss it. Check your regular expressions in here: https://regex101.com, this will prevent you from the mistakes. This feature is available at the paid version.', 'gonzales' ),
1087
+ 'disabled' => ! defined( 'WGZP_PLUGIN_ACTIVE' )
1088
+ ]
1089
+ ];
1090
+
1091
+ if ( ! is_admin() ) {
1092
+ $location_items[] = [
1093
+ 'id' => 'location-some-page',
1094
+ 'title' => __( 'Page', 'gonzales' ),
1095
+ 'type' => 'select',
1096
+ 'params' => [
1097
+ 'Basic' => [
1098
+ [
1099
+ 'value' => 'base_web',
1100
+ 'title' => __( 'Entire Website', 'gonzales' ),
1101
+ ],
1102
+ [
1103
+ 'value' => 'base_sing',
1104
+ 'title' => __( 'All Singulars', 'gonzales' ),
1105
+ ],
1106
+ [
1107
+ 'value' => 'base_arch',
1108
+ 'title' => __( 'All Archives', 'gonzales' ),
1109
+ ],
1110
+ ],
1111
+ 'Special Pages' => [
1112
+ [
1113
+ 'value' => 'spec_404',
1114
+ 'title' => __( '404 Page', 'gonzales' )
1115
+ ],
1116
+ [
1117
+ 'value' => 'spec_search',
1118
+ 'title' => __( 'Search Page', 'gonzales' )
1119
+ ],
1120
+ [
1121
+ 'value' => 'spec_blog',
1122
+ 'title' => __( 'Blog / Posts Page', 'gonzales' )
1123
+ ],
1124
+ [
1125
+ 'value' => 'spec_front',
1126
+ 'title' => __( 'Front Page', 'gonzales' )
1127
+ ],
1128
+ [
1129
+ 'value' => 'spec_date',
1130
+ 'title' => __( 'Date Archive', 'gonzales' )
1131
+ ],
1132
+ [
1133
+ 'value' => 'spec_auth',
1134
+ 'title' => __( 'Author Archive', 'gonzales' )
1135
+ ],
1136
+ ],
1137
+ 'Posts' => [
1138
+ [
1139
+ 'value' => 'post_all',
1140
+ 'title' => __( 'All Posts', 'gonzales' )
1141
+ ],
1142
+ [
1143
+ 'value' => 'post_arch',
1144
+ 'title' => __( 'All Posts Archive', 'gonzales' )
1145
+ ],
1146
+ [
1147
+ 'value' => 'post_cat',
1148
+ 'title' => __( 'All Categories Archive', 'gonzales' )
1149
+ ],
1150
+ [
1151
+ 'value' => 'post_tag',
1152
+ 'title' => __( 'All Tags Archive', 'gonzales' )
1153
+ ],
1154
+ ],
1155
+ 'Pages' => [
1156
+ [
1157
+ 'value' => 'page_all',
1158
+ 'title' => __( 'All Pages', 'gonzales' )
1159
+ ],
1160
+ [
1161
+ 'value' => 'page_arch',
1162
+ 'title' => __( 'All Pages Archive', 'gonzales' )
1163
+ ],
1164
+ ],
1165
+
1166
+ ],
1167
+ 'description' => __( 'List of specific pages.', 'gonzales' )
1168
+ ];
1169
+ $location_items[] = [
1170
+ 'id' => 'location-post-type',
1171
+ 'title' => __( 'Post type', 'gonzales' ),
1172
+ 'type' => 'select',
1173
+ 'params' => $post_types_param_values,
1174
+ 'description' => __( 'A post type of the current page.', 'gonzales' ),
1175
+ ];
1176
+ $location_items[] = [
1177
+ 'id' => 'location-taxonomy',
1178
+ 'title' => __( 'Taxonomy', 'gonzales' ),
1179
+ 'type' => 'select',
1180
+ 'params' => $taxonomies_param_values,
1181
+ 'description' => __( 'A taxonomy of the current page.', 'gonzales' ),
1182
+ ];
1183
+ } else {
1184
+ $location_items[] = [
1185
+ 'id' => 'location-some-page',
1186
+ 'title' => __( 'Page', 'gonzales' ),
1187
+ 'type' => 'select',
1188
+ 'params' => [
1189
+ 'Basic' => [
1190
+ [
1191
+ 'value' => 'all_admin_area',
1192
+ 'title' => __( 'All Admin Pages', 'gonzales' ),
1193
+ ],
1194
+ [
1195
+ 'value' => 'posts_all',
1196
+ 'title' => __( 'All Posts', 'gonzales' )
1197
+ ],
1198
+ [
1199
+ 'value' => 'posts_add_new',
1200
+ 'title' => __( 'Add New Post', 'gonzales' )
1201
+ ],
1202
+ [
1203
+ 'value' => 'posts_taxonomies',
1204
+ 'title' => __( 'All Taxonomies', 'gonzales' )
1205
+ ]
1206
+ ],
1207
+ 'Dashboard' => [
1208
+ [
1209
+ 'value' => 'dashboard_home',
1210
+ 'title' => __( 'Home', 'gonzales' )
1211
+ ],
1212
+ [
1213
+ 'value' => 'dashboard_wordpress_updates',
1214
+ 'title' => __( 'WordPress Updates', 'gonzales' )
1215
+ ],
1216
+ ],
1217
+ 'Media' => [
1218
+ [
1219
+ 'value' => 'media_library',
1220
+ 'title' => __( 'Library', 'gonzales' )
1221
+ ],
1222
+ [
1223
+ 'value' => 'media_library_add_new',
1224
+ 'title' => __( 'Add new', 'gonzales' )
1225
+ ]
1226
+ ],
1227
+ 'Appearance' => [
1228
+ [
1229
+ 'value' => 'appearance_themes',
1230
+ 'title' => __( 'Themes', 'gonzales' )
1231
+ ],
1232
+ [
1233
+ 'value' => 'appearance_customize',
1234
+ 'title' => __( 'Customize', 'gonzales' )
1235
+ ],
1236
+ [
1237
+ 'value' => 'appearance_widgets',
1238
+ 'title' => __( 'Widgets', 'gonzales' )
1239
+ ],
1240
+ [
1241
+ 'value' => 'appearance_menus',
1242
+ 'title' => __( 'Menus', 'gonzales' )
1243
+ ],
1244
+ [
1245
+ 'value' => 'appearance_theme_editor',
1246
+ 'title' => __( 'Theme Editor', 'gonzales' )
1247
+ ]
1248
+ ],
1249
+ 'Plugins' => [
1250
+ [
1251
+ 'value' => 'plugins_installed',
1252
+ 'title' => __( 'Installed Plugins', 'gonzales' )
1253
+ ],
1254
+ [
1255
+ 'value' => 'plugins_add_new',
1256
+ 'title' => __( 'Add New', 'gonzales' )
1257
+ ],
1258
+ [
1259
+ 'value' => 'plugins_editor',
1260
+ 'title' => __( 'Plugin Editor', 'gonzales' )
1261
+ ]
1262
+ ],
1263
+ 'Users' => [
1264
+ [
1265
+ 'value' => 'users_all',
1266
+ 'title' => __( 'All Users', 'gonzales' )
1267
+ ],
1268
+ [
1269
+ 'value' => 'users_add_new',
1270
+ 'title' => __( 'Add New', 'gonzales' )
1271
+ ],
1272
+ [
1273
+ 'value' => 'users_your_profile',
1274
+ 'title' => __( 'Your profile', 'gonzales' )
1275
+ ]
1276
+ ],
1277
+ 'Tools' => [
1278
+ [
1279
+ 'value' => 'tools_available',
1280
+ 'title' => __( 'Available Tools', 'gonzales' )
1281
+ ],
1282
+ [
1283
+ 'value' => 'tools_import',
1284
+ 'title' => __( 'Import', 'gonzales' )
1285
+ ],
1286
+ [
1287
+ 'value' => 'tools_export',
1288
+ 'title' => __( 'Export', 'gonzales' )
1289
+ ],
1290
+ [
1291
+ 'value' => 'tools_site_health',
1292
+ 'title' => __( 'Site Health', 'gonzales' )
1293
+ ],
1294
+ [
1295
+ 'value' => 'tools_export_personal_data',
1296
+ 'title' => __( 'Export Personal Data', 'gonzales' )
1297
+ ],
1298
+ [
1299
+ 'value' => 'tools_erase_personal_data',
1300
+ 'title' => __( 'Erase Personal Data', 'gonzales' )
1301
+ ]
1302
+ ],
1303
+ 'Settings' => [
1304
+ [
1305
+ 'value' => 'settings_general',
1306
+ 'title' => __( 'General', 'gonzales' )
1307
+ ],
1308
+ [
1309
+ 'value' => 'settings_writing',
1310
+ 'title' => __( 'Writing', 'gonzales' )
1311
+ ],
1312
+ [
1313
+ 'value' => 'settings_reading',
1314
+ 'title' => __( 'Reading', 'gonzales' )
1315
+ ],
1316
+ [
1317
+ 'value' => 'settings_media',
1318
+ 'title' => __( 'Media', 'gonzales' )
1319
+ ],
1320
+ [
1321
+ 'value' => 'settings_permalinks',
1322
+ 'title' => __( 'Permalinks', 'gonzales' )
1323
+ ],
1324
+ [
1325
+ 'value' => 'settings_privacy',
1326
+ 'title' => __( 'Privacy', 'gonzales' )
1327
+ ]
1328
+ ],
1329
+ ],
1330
+ 'description' => __( 'List of specific pages.', 'gonzales' )
1331
+ ];
1332
+ }
1333
+
1334
  $grouped_filter_params = [
1335
  [
1336
  'id' => 'user',
1374
  [
1375
  'id' => 'location',
1376
  'title' => __( 'Location', 'gonzales' ),
1377
+ 'items' => $location_items
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1378
  ]
1379
  ];
1380
 
components/assets-manager/includes/classes/class-check-conditions.php CHANGED
@@ -24,16 +24,6 @@ class WGZ_Check_Conditions {
24
  }
25
  }
26
 
27
- /*public function __call( $method ) {
28
- $extended_methods = apply_filters( 'wam/conditions/extended_methods', [] );
29
-
30
- if ( isset( $extended_methods[ $method ] ) ) {
31
- return $extended_methods[ $method ]();
32
- }
33
-
34
- return null;
35
- }*/
36
-
37
  /**
38
  * Проверяем в правильном ли формате нам передано условие
39
  *
@@ -125,14 +115,15 @@ class WGZ_Check_Conditions {
125
  }
126
 
127
  /**
128
- * Get current URL
 
 
 
129
  *
130
  * @return string
131
  */
132
- protected function get_current_url_path() {
133
- $url = explode( '?', $_SERVER['REQUEST_URI'], 2 );
134
-
135
- return ! empty( $url[0] ) ? trailingslashit( $url[0] ) : '/';
136
  }
137
 
138
  /**
@@ -150,6 +141,30 @@ class WGZ_Check_Conditions {
150
  return $out ? urldecode( $out ) : '/';
151
  }
152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  /**
154
  * Check by operator
155
  *
@@ -238,72 +253,174 @@ class WGZ_Check_Conditions {
238
  * @return boolean
239
  */
240
  protected function location_some_page( $operator, $value ) {
241
- $post_id = ( ! is_404() && ! is_search() && ! is_archive() && ! is_home() ) ? get_the_ID() : false;
242
-
243
- switch ( $value ) {
244
- case 'base_web': // Basic - Entire Website
245
- $result = true;
246
- break;
247
- case 'base_sing': // Basic - All Singulars
248
- $result = is_singular();
249
- break;
250
- case 'base_arch': // Basic - All Archives
251
- $result = is_archive();
252
- break;
253
- case 'spec_404': // Special Pages - 404 Page
254
- $result = is_404();
255
- break;
256
- case 'spec_search': // Special Pages - Search Page
257
- $result = is_search();
258
- break;
259
- case 'spec_blog': // Special Pages - Blog / Posts Page
260
- $result = is_home();
261
- break;
262
- case 'spec_front': // Special Pages - Front Page
263
- $result = is_front_page();
264
- break;
265
- case 'spec_date': // Special Pages - Date Archive
266
- $result = is_date();
267
- break;
268
- case 'spec_auth': // Special Pages - Author Archive
269
- $result = is_author();
270
- break;
271
- case 'post_all': // Posts - All Posts
272
- case 'page_all': // Pages - All Pages
273
- $result = false;
274
- if ( false !== $post_id ) {
275
- $post_type = 'post_all' == $value ? 'post' : 'page';
276
- $result = $post_type == get_post_type( $post_id );
277
- }
278
- break;
279
- case 'post_arch': // Posts - All Posts Archive
280
- case 'page_arch': // Pages - All Pages Archive
281
- $result = false;
282
- if ( is_archive() ) {
283
- $post_type = 'post_arch' == $value ? 'post' : 'page';
284
- $result = $post_type == get_post_type();
285
- }
286
- break;
287
- case 'post_cat': // Posts - All Categories Archive
288
- case 'post_tag': // Posts - All Tags Archive
289
- $result = false;
290
- if ( is_archive() && 'post' == get_post_type() ) {
291
- $taxonomy = 'post_tag' == $value ? 'post_tag' : 'category';
292
- $obj = get_queried_object();
293
-
294
- $current_taxonomy = '';
295
- if ( '' !== $obj && null !== $obj ) {
296
- $current_taxonomy = $obj->taxonomy;
297
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
298
 
299
- if ( $current_taxonomy == $taxonomy ) {
300
- $result = true;
 
301
  }
302
- }
303
- break;
304
 
305
- default:
306
- $result = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
307
  }
308
 
309
  return $this->apply_operator( $operator, $result, true );
@@ -322,9 +439,10 @@ class WGZ_Check_Conditions {
322
  * @param string $value
323
  */
324
  protected function current_url( $operator, $value ) {
325
- $value = trailingslashit( $value );
 
326
 
327
- return $this->apply_operator( $operator, $value, $this->get_current_url_path() );
328
  }
329
 
330
  /**
@@ -355,13 +473,13 @@ class WGZ_Check_Conditions {
355
  * @return boolean
356
  */
357
  protected function location_taxonomy( $operator, $value ) {
358
- $term_name = null;
359
 
360
  if ( is_tax() || is_tag() || is_category() ) {
361
- $term_name = get_queried_object()->name;
362
  }
363
 
364
- return $this->apply_operator( $operator, $term_name, $value );
365
  }
366
 
367
 
24
  }
25
  }
26
 
 
 
 
 
 
 
 
 
 
 
27
  /**
28
  * Проверяем в правильном ли формате нам передано условие
29
  *
115
  }
116
 
117
  /**
118
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
119
+ * @since 2.0.0
120
+ *
121
+ * @param string $path
122
  *
123
  * @return string
124
  */
125
+ protected function get_admin_url_path( $path ) {
126
+ return str_replace( site_url(), '', admin_url( $path ) );
 
 
127
  }
128
 
129
  /**
141
  return $out ? urldecode( $out ) : '/';
142
  }
143
 
144
+ /**
145
+ * Get current URL
146
+ *
147
+ * @return string
148
+ */
149
+ protected function get_current_url_path( $clear_query = false ) {
150
+ if ( ! is_admin() && ! $clear_query ) {
151
+ $url = explode( '?', $_SERVER['REQUEST_URI'], 2 );
152
+ if ( strlen( $url[0] ) > 1 ) {
153
+ $out = rtrim( $url[0], '/' );
154
+ } else {
155
+ $out = $url[0];
156
+ }
157
+
158
+ return "/" === $out ? "/" : untrailingslashit( $out );
159
+ }
160
+
161
+ $removeble_args = array_merge( [ 'wbcr_assets_manager' ], wp_removable_query_args() );
162
+
163
+ $url = remove_query_arg( $removeble_args, $_SERVER['REQUEST_URI'] );
164
+
165
+ return untrailingslashit( $url );
166
+ }
167
+
168
  /**
169
  * Check by operator
170
  *
253
  * @return boolean
254
  */
255
  protected function location_some_page( $operator, $value ) {
256
+ if ( ! is_admin() ) {
257
+ // For frontend area
258
+ switch ( $value ) {
259
+ case 'base_web': // Basic - Entire Website
260
+ $result = ! is_admin();
261
+ break;
262
+ case 'base_sing': // Basic - All Singulars
263
+ $result = is_singular();
264
+ break;
265
+ case 'base_arch': // Basic - All Archives
266
+ $result = is_archive();
267
+ break;
268
+ case 'spec_404': // Special Pages - 404 Page
269
+ $result = is_404();
270
+ break;
271
+ case 'spec_search': // Special Pages - Search Page
272
+ $result = is_search();
273
+ break;
274
+ case 'spec_blog': // Special Pages - Blog / Posts Page
275
+ $result = is_home();
276
+ break;
277
+ case 'spec_front': // Special Pages - Front Page
278
+ $result = is_front_page();
279
+ break;
280
+ case 'spec_date': // Special Pages - Date Archive
281
+ $result = is_date();
282
+ break;
283
+ case 'spec_auth': // Special Pages - Author Archive
284
+ $result = is_author();
285
+ break;
286
+ case 'post_all': // Posts - All Posts
287
+ case 'page_all': // Pages - All Pages
288
+ $result = false;
289
+ $post_id = ( ! is_404() && ! is_search() && ! is_archive() && ! is_home() ) ? get_the_ID() : false;
290
+
291
+ if ( false !== $post_id ) {
292
+ $post_type = 'post_all' == $value ? 'post' : 'page';
293
+ $result = $post_type == get_post_type( $post_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
  }
295
+ break;
296
+ case 'post_arch': // Posts - All Posts Archive
297
+ case 'page_arch': // Pages - All Pages Archive
298
+ $result = false;
299
+ if ( is_archive() ) {
300
+ $post_type = 'post_arch' == $value ? 'post' : 'page';
301
+ $result = $post_type == get_post_type();
302
+ }
303
+ break;
304
+ case 'post_cat': // Posts - All Categories Archive
305
+ case 'post_tag': // Posts - All Tags Archive
306
+ $result = false;
307
+ if ( is_archive() && 'post' == get_post_type() ) {
308
+ $taxonomy = 'post_tag' == $value ? 'post_tag' : 'category';
309
+ $obj = get_queried_object();
310
+
311
+ $current_taxonomy = '';
312
+ if ( '' !== $obj && null !== $obj ) {
313
+ $current_taxonomy = $obj->taxonomy;
314
+ }
315
 
316
+ if ( $current_taxonomy == $taxonomy ) {
317
+ $result = true;
318
+ }
319
  }
320
+ break;
 
321
 
322
+ default:
323
+ $result = true;
324
+ }
325
+ } else {
326
+ // For admin area
327
+ switch ( $value ) {
328
+ case 'all_admin_area':
329
+ $result = is_admin();
330
+ break;
331
+ case 'dashboard_home':
332
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'index.php' );
333
+ break;
334
+ case 'dashboard_wordpress_updates':
335
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'update-core.php' );
336
+ break;
337
+ case 'posts_all':
338
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'edit.php' );
339
+ break;
340
+ case 'posts_add_new':
341
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'post-new.php' );
342
+ break;
343
+ case 'posts_taxonomies':
344
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'edit-tags.php' );
345
+ break;
346
+ case 'media_library':
347
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'upload.php' );
348
+ break;
349
+ case 'media_library_add_new':
350
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'media-new.php' );
351
+ break;
352
+ case 'appearance_themes':
353
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'themes.php' );
354
+ break;
355
+ case 'appearance_customize':
356
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'customize.php' );
357
+ break;
358
+ case 'appearance_widgets':
359
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'widgets.php' );
360
+ break;
361
+ case 'appearance_menus':
362
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'nav-menus.php' );
363
+ break;
364
+ case 'appearance_theme_editor':
365
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'theme-editor.php' );
366
+ break;
367
+ case 'plugins_installed':
368
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'plugins.php' );
369
+ break;
370
+ case 'plugins_add_new':
371
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'plugin-install.php' );
372
+ break;
373
+ case 'plugins_editor':
374
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'plugin-editor.php' );
375
+ break;
376
+ case 'users_all':
377
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'users.php' );
378
+ break;
379
+ case 'users_add_new':
380
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'user-new.php' );
381
+ break;
382
+ case 'users_your_profile':
383
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'profile.php' );
384
+ break;
385
+ case 'tools_available':
386
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'tools.php' );
387
+ break;
388
+ case 'tools_import':
389
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'import.php' );
390
+ break;
391
+ case 'tools_export':
392
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'export.php' );
393
+ break;
394
+ case 'tools_site_health':
395
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'site-health.php' );
396
+ break;
397
+ case 'tools_export_personal_data':
398
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'tools.php' );
399
+ break;
400
+ case 'tools_erase_personal_data':
401
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'tools.php' );
402
+ break;
403
+ case 'settings_general':
404
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'options-general.php' );
405
+ break;
406
+ case 'settings_writing':
407
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'options-writing.php' );
408
+ break;
409
+ case 'settings_reading':
410
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'options-reading.php' );
411
+ break;
412
+ case 'settings_media':
413
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'options-media.php' );
414
+ break;
415
+ case 'settings_permalinks':
416
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'options-permalink.php' );
417
+ break;
418
+ case 'settings_privacy':
419
+ $result = $this->get_current_url_path( true ) === $this->get_admin_url_path( 'privacy.php' );
420
+ break;
421
+ default:
422
+ $result = true;
423
+ }
424
  }
425
 
426
  return $this->apply_operator( $operator, $result, true );
439
  * @param string $value
440
  */
441
  protected function current_url( $operator, $value ) {
442
+ $value = ( "/" === $value ) ? "/" : untrailingslashit( $value );
443
+ $current_url = $this->get_current_url_path();
444
 
445
+ return $this->apply_operator( $operator, $value, $current_url );
446
  }
447
 
448
  /**
473
  * @return boolean
474
  */
475
  protected function location_taxonomy( $operator, $value ) {
476
+ $taxonomy = null;
477
 
478
  if ( is_tax() || is_tag() || is_category() ) {
479
+ $taxonomy = get_queried_object()->taxonomy;
480
  }
481
 
482
+ return $this->apply_operator( $operator, $taxonomy, $value );
483
  }
484
 
485
 
components/assets-manager/includes/classes/class-views.php CHANGED
@@ -63,11 +63,11 @@ class WGZ_Views {
63
  *
64
  * @param string $template The template name.
65
  * @param mixed $data Some data to pass to the template.
66
- * @param Wbcr_FactoryClearfy213_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_FactoryClearfy213_PageBase $page = null ) {
71
  $template = str_replace( '_', '-', $template );
72
  $path = $this->plugin_dir . '/views/' . $template . '.php';
73
 
@@ -92,9 +92,9 @@ class WGZ_Views {
92
  *
93
  * @param string $template The template name.
94
  * @param mixed $data Some data to pass to the template.
95
- * @param Wbcr_FactoryClearfy213_PageBase $page
96
  */
97
- public function print_template( $template, $data = [], Wbcr_FactoryClearfy213_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_FactoryClearfy214_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_FactoryClearfy214_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_FactoryClearfy214_PageBase $page
96
  */
97
+ public function print_template( $template, $data = [], Wbcr_FactoryClearfy214_PageBase $page = null ) {
98
  echo $this->get_template( $template, $data, $page );
99
  }
100
  }
components/assets-manager/migrations/010100.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WGZUpdate010100 extends Wbcr_Factory421_Update {
8
 
9
  public function install()
10
  {
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WGZUpdate010100 extends Wbcr_Factory422_Update {
8
 
9
  public function install()
10
  {
components/assets-manager/migrations/010108.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WGZUpdate010108 extends Wbcr_Factory421_Update {
8
 
9
  /**
10
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
@@ -80,6 +80,7 @@ class WGZUpdate010108 extends Wbcr_Factory421_Update {
80
  }
81
  }
82
 
 
83
  update_option( $this->plugin->getPrefix() . 'assets_states', $settings );
84
  }
85
 
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WGZUpdate010108 extends Wbcr_Factory422_Update {
8
 
9
  /**
10
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
80
  }
81
  }
82
 
83
+ //update_option( $this->plugin->getPrefix() . 'backend_assets_states', $settings );
84
  update_option( $this->plugin->getPrefix() . 'assets_states', $settings );
85
  }
86
 
components/assets-manager/mu-plugins/assets-manager.php CHANGED
@@ -1,20 +1,17 @@
1
  <?php
2
- /*
3
- Plugin Name: Webcraftic AM plugin load filter
4
- Description: Dynamically activated only plugins that you have selected in each page. [Note] Webcraftic AM has been automatically installed/deleted by Activate/Deactivate of "load filter plugin".
5
- Version: 1.0.3
6
- Plugin URI: https://wordpress.org/plugins/gonzales/
7
- Author: Webcraftic <alex.kovalevv@gmail.com>
8
- Author URI: https://clearfy.pro/assets-manager
9
- Framework Version: FACTORY_421_VERSION
10
- */
11
- // TODO: The plugin does not support backend
12
  // todo: проверить, как работает кеширование
13
  // todo: замерить, скорость работы этого решения
14
 
15
  defined( 'ABSPATH' ) || exit;
16
 
17
- if ( defined( 'WP_SETUP_CONFIG' ) || defined( 'WP_INSTALLING' ) || is_admin() || isset( $_GET['wbcr_assets_manager'] ) ) {
18
  return;
19
  }
20
 
@@ -25,7 +22,9 @@ if ( defined( 'WP_SETUP_CONFIG' ) || defined( 'WP_INSTALLING' ) || is_admin() ||
25
 
26
  class WGNZ_Plugins_Loader {
27
 
28
- protected $prefix = 'wbcr_gnz_';
 
 
29
  protected $parent_plugin_dir;
30
  protected $settings;
31
  protected $active_plugins = array();
@@ -35,44 +34,32 @@ class WGNZ_Plugins_Loader {
35
  # task or a rest api request. Otherwise, the user may have problems
36
  # with the work of plugins.
37
  if ( $this->doing_ajax() || $this->doing_cron() || $this->doing_rest_api() ) {
38
- return false;
39
  }
40
 
41
- $is_assets_manager_active = false;
42
  $is_clearfy_active = false;
43
 
44
- $active_plugins = $this->get_active_plugins();
45
 
46
- if ( in_array( 'clearfy/clearfy.php', $active_plugins ) || in_array( 'wp-plugin-clearfy/clearfy.php', $active_plugins ) ) {
47
- $this->prefix = 'wbcr_clearfy_';
48
 
49
- if ( is_multisite() ) {
50
- $deactivate_components = get_site_option( $this->prefix . 'deactive_preinstall_components', array() );
51
- } else {
52
- $deactivate_components = get_option( $this->prefix . 'deactive_preinstall_components', array() );
53
- }
54
 
55
  if ( empty( $deactivate_components ) || ! in_array( 'assets_manager', $deactivate_components ) ) {
56
  $is_clearfy_active = true;
57
  }
58
- if ( in_array( 'wp-plugin-clearfy/clearfy.php', $active_plugins ) ) {
59
- $this->parent_plugin_dir = WP_PLUGIN_DIR . '/wp-plugin-clearfy/components/assets-manager/';
60
- } else {
61
- $this->parent_plugin_dir = WP_PLUGIN_DIR . '/clearfy/components/assets-manager/';
62
- }
63
- } else if ( in_array( 'gonzales/gonzales.php', $active_plugins ) || in_array( 'wp-plugin-gonzales/gonzales.php', $active_plugins ) ) {
64
- $is_assets_manager_active = true;
65
- $this->prefix = 'wbcr_gnz_';
66
- $this->parent_plugin_dir = WP_PLUGIN_DIR . '/gonzales/';
67
  }
68
 
69
- if( !file_exists($this->parent_plugin_dir) ) {
70
- return false;
 
 
71
  }
72
 
73
  # Disable plugins only if Asset Manager and Clearfy are activated
74
- if ( $is_clearfy_active || $is_assets_manager_active ) {
75
- $this->settings = get_option( $this->prefix . 'assets_states', array() );
76
 
77
  if ( ! empty( $this->settings ) ) {
78
  if ( is_multisite() ) {
@@ -154,6 +141,36 @@ class WGNZ_Plugins_Loader {
154
  return $plugins_list;
155
  }
156
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  /**
158
  * Get a list of active plugins.
159
  *
@@ -174,6 +191,8 @@ class WGNZ_Plugins_Loader {
174
  }
175
 
176
  /**
 
 
177
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
178
  * @since 1.0.0
179
  *
@@ -199,7 +218,8 @@ class WGNZ_Plugins_Loader {
199
  }
200
 
201
  if ( ! empty( $this->settings['plugins'] ) && isset( $this->settings['plugins'][ $plugin_base_part[0] ] ) && 'disable_plugin' === $this->settings['plugins'][ $plugin_base_part[0] ]['load_mode'] ) {
202
- require_once $this->parent_plugin_dir . '/includes/classes/class-check-conditions.php';
 
203
  if ( ! empty( $this->settings['plugins'][ $plugin_base_part[0] ]['visability'] ) ) {
204
  $condition = new WGZ_Check_Conditions( $this->settings['plugins'][ $plugin_base_part[0] ]['visability'] );
205
  if ( $condition->validate() ) {
@@ -211,23 +231,6 @@ class WGNZ_Plugins_Loader {
211
  return false;
212
  }
213
 
214
-
215
- /**
216
- * Get current URL
217
- *
218
- * @return string
219
- */
220
- private function get_current_url() {
221
- $url = explode( '?', $_SERVER['REQUEST_URI'], 2 );
222
- if ( strlen( $url[0] ) > 1 ) {
223
- $out = rtrim( $url[0], '/' );
224
- } else {
225
- $out = $url[0];
226
- }
227
-
228
- return $out;
229
- }
230
-
231
  /**
232
  * Checks if the current request is a WP REST API request.
233
  *
@@ -259,8 +262,10 @@ class WGNZ_Plugins_Loader {
259
  }
260
 
261
  /**
 
 
262
  * @since 1.0.0
263
- * @return bool
264
  */
265
  private function doing_ajax() {
266
  if ( function_exists( 'wp_doing_ajax' ) ) {
@@ -271,8 +276,10 @@ class WGNZ_Plugins_Loader {
271
  }
272
 
273
  /**
 
 
274
  * @since 1.0.0
275
- * @return bool
276
  */
277
  private function doing_cron() {
278
  if ( function_exists( 'wp_doing_cron' ) ) {
@@ -281,6 +288,171 @@ class WGNZ_Plugins_Loader {
281
 
282
  return defined( 'DOING_CRON' ) && DOING_CRON;
283
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
284
  }
285
 
286
  new WGNZ_Plugins_Loader();
1
  <?php
2
+ /**
3
+ * Webcraftic AM plugin load filter
4
+ * Dynamically activated only plugins that you have selected in each page. [Note] Webcraftic AM has been automatically installed/deleted by Activate/Deactivate of "load filter plugin".
5
+ * Version: 1.0.8
6
+ * Framework Version: FACTORY_422_VERSION
7
+ */
8
+
 
 
 
9
  // todo: проверить, как работает кеширование
10
  // todo: замерить, скорость работы этого решения
11
 
12
  defined( 'ABSPATH' ) || exit;
13
 
14
+ if ( defined( 'WP_SETUP_CONFIG' ) || defined( 'WP_INSTALLING' ) || isset( $_GET['wbcr_assets_manager'] ) ) {
15
  return;
16
  }
17
 
22
 
23
  class WGNZ_Plugins_Loader {
24
 
25
+ const DEFAULT_OPTIONS_PREFIX = 'wbcr_gnz_';
26
+ const CLEARFY_OPTIONS_PREFIX = 'wbcr_clearfy_';
27
+
28
  protected $parent_plugin_dir;
29
  protected $settings;
30
  protected $active_plugins = array();
34
  # task or a rest api request. Otherwise, the user may have problems
35
  # with the work of plugins.
36
  if ( $this->doing_ajax() || $this->doing_cron() || $this->doing_rest_api() ) {
37
+ return;
38
  }
39
 
 
40
  $is_clearfy_active = false;
41
 
42
+ $this->active_plugins = $this->get_active_plugins();
43
 
44
+ add_filter( 'wam/conditions/call_method', [ $this, 'check_conditions_method' ], 10, 4 );
 
45
 
46
+ if ( $this->is_active_clearfy() ) {
47
+ $deactivate_components = $this->get_clearfy_deactivate_components();
 
 
 
48
 
49
  if ( empty( $deactivate_components ) || ! in_array( 'assets_manager', $deactivate_components ) ) {
50
  $is_clearfy_active = true;
51
  }
 
 
 
 
 
 
 
 
 
52
  }
53
 
54
+ $parent_plugin_dir = $this->get_parent_plugin_dir();
55
+
56
+ if( empty($parent_plugin_dir) || !file_exists($parent_plugin_dir) ) {
57
+ return;
58
  }
59
 
60
  # Disable plugins only if Asset Manager and Clearfy are activated
61
+ if ( $is_clearfy_active || $this->is_active_assets_manager_standalone() ) {
62
+ $this->settings = $this->get_assets_manager_options();
63
 
64
  if ( ! empty( $this->settings ) ) {
65
  if ( is_multisite() ) {
141
  return $plugins_list;
142
  }
143
 
144
+ /**
145
+ * Extra method for extend WGZ_Check_Conditions class.
146
+ *
147
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
148
+ * @since 1.0.7
149
+ *
150
+ * @param mixed $default
151
+ * @param string $method_name
152
+ * @param string $operator
153
+ * @param mixed $value
154
+ *
155
+ * @return mixed
156
+ */
157
+ public function check_conditions_method( $default, $method_name, $operator, $value ) {
158
+ $premium_plugin_dir = $this->get_parent_premium_plugin_dir();
159
+
160
+ if( $premium_plugin_dir && file_exists($premium_plugin_dir) ) {
161
+ require_once $premium_plugin_dir . '/includes/class-check-conditions.php';
162
+ if(class_exists('WGNZP_Check_Conditions')) {
163
+ $conditions = new WGNZP_Check_Conditions();
164
+
165
+ if ( method_exists( $conditions, $method_name ) ) {
166
+ return $conditions->$method_name( $operator, $value );
167
+ }
168
+ }
169
+ }
170
+
171
+ return $default;
172
+ }
173
+
174
  /**
175
  * Get a list of active plugins.
176
  *
191
  }
192
 
193
  /**
194
+ * Determines whether the current plugin is disabled
195
+ *
196
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
197
  * @since 1.0.0
198
  *
218
  }
219
 
220
  if ( ! empty( $this->settings['plugins'] ) && isset( $this->settings['plugins'][ $plugin_base_part[0] ] ) && 'disable_plugin' === $this->settings['plugins'][ $plugin_base_part[0] ]['load_mode'] ) {
221
+ require_once $this->get_parent_plugin_dir() . '/includes/classes/class-check-conditions.php';
222
+
223
  if ( ! empty( $this->settings['plugins'][ $plugin_base_part[0] ]['visability'] ) ) {
224
  $condition = new WGZ_Check_Conditions( $this->settings['plugins'][ $plugin_base_part[0] ]['visability'] );
225
  if ( $condition->validate() ) {
231
  return false;
232
  }
233
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
234
  /**
235
  * Checks if the current request is a WP REST API request.
236
  *
262
  }
263
 
264
  /**
265
+ * Determines whether the current request is a WordPress Ajax request.
266
+ *
267
  * @since 1.0.0
268
+ * @return bool True if it's a WordPress Ajax request, false otherwise.
269
  */
270
  private function doing_ajax() {
271
  if ( function_exists( 'wp_doing_ajax' ) ) {
276
  }
277
 
278
  /**
279
+ * Determines whether the current request is a WordPress cron request.
280
+ *
281
  * @since 1.0.0
282
+ * @return bool True if it's a WordPress cron request, false otherwise.
283
  */
284
  private function doing_cron() {
285
  if ( function_exists( 'wp_doing_cron' ) ) {
288
 
289
  return defined( 'DOING_CRON' ) && DOING_CRON;
290
  }
291
+
292
+ /**
293
+ * Is Clearfy plugin actives?
294
+ *
295
+ * @since 1.0.7
296
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
297
+ * @return string|null
298
+ */
299
+ private function is_active_clearfy() {
300
+ return $this->is_active_clearfy_dev() || $this->is_active_clearfy_prod();
301
+ }
302
+
303
+ /**
304
+ * Is Clearfy Dev plugin actives?
305
+ *
306
+ * @since 1.0.7
307
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
308
+ * @return string|null
309
+ */
310
+ private function is_active_clearfy_dev() {
311
+ return in_array( 'wp-plugin-clearfy/clearfy.php', $this->active_plugins );
312
+ }
313
+
314
+ /**
315
+ * Is Clearfy Prod plugin actives?
316
+ *
317
+ * @since 1.0.7
318
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
319
+ * @return string|null
320
+ */
321
+ private function is_active_clearfy_prod() {
322
+ return in_array( 'clearfy/clearfy.php', $this->active_plugins );
323
+ }
324
+
325
+ /**
326
+ * Is Assets Manager standalone actives?
327
+ *
328
+ * @since 1.0.7
329
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
330
+ * @return string|null
331
+ */
332
+ private function is_active_assets_manager_standalone() {
333
+ return $this->is_active_assets_manager_standalone_prod() || $this->is_active_assets_manager_standalone_dev();
334
+ }
335
+
336
+ /**
337
+ * Is Assets Manager standalone prod actives?
338
+ *
339
+ * @since 1.0.7
340
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
341
+ * @return string|null
342
+ */
343
+ private function is_active_assets_manager_standalone_prod() {
344
+ return in_array( 'gonzales/gonzales.php', $this->active_plugins );
345
+ }
346
+
347
+ /**
348
+ * Is Assets Manager standalone dev actives?
349
+ *
350
+ * @since 1.0.7
351
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
352
+ * @return string|null
353
+ */
354
+ private function is_active_assets_manager_standalone_dev() {
355
+ return in_array( 'wp-plugin-gonzales/gonzales.php', $this->active_plugins );
356
+ }
357
+
358
+ /**
359
+ * Get options prefix
360
+ *
361
+ * @since 1.0.7
362
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
363
+ * @return string|null
364
+ */
365
+ private function get_options_prefix() {
366
+ if( $this->is_active_clearfy() ) {
367
+ return self::CLEARFY_OPTIONS_PREFIX;
368
+ }
369
+ return self::DEFAULT_OPTIONS_PREFIX;
370
+ }
371
+
372
+ /**
373
+ * Get Clearfy deactivated components
374
+ *
375
+ * @since 1.0.7
376
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
377
+ * @return array|null
378
+ */
379
+ private function get_clearfy_deactivate_components() {
380
+ if ( is_multisite() ) {
381
+ return get_site_option( $this->get_options_prefix() . 'deactive_preinstall_components', array() );
382
+ }
383
+
384
+ return get_option( $this->get_options_prefix() . 'deactive_preinstall_components', array() );
385
+ }
386
+
387
+ /**
388
+ * Get Assets Manager options
389
+ *
390
+ * @since 1.0.7
391
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
392
+ * @return string|null
393
+ */
394
+ private function get_assets_manager_options() {
395
+ if( is_multisite() && is_network_admin() ) {
396
+ return get_site_option( $this->get_options_prefix() . 'backend_assets_states', array() );
397
+ } else if( is_admin() ) {
398
+ return get_option( $this->get_options_prefix() . 'backend_assets_states', array() );
399
+ }
400
+
401
+ return get_option( $this->get_options_prefix() . 'assets_states', array() );
402
+ }
403
+
404
+ /**
405
+ * Get parent plugin dir
406
+ *
407
+ * @since 1.0.7
408
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
409
+ * @return string|null
410
+ */
411
+ private function get_parent_plugin_dir() {
412
+ if ( $this->is_active_clearfy() ) {
413
+ if ( $this->is_active_clearfy_dev() ) {
414
+ return WP_PLUGIN_DIR . '/wp-plugin-clearfy/components/assets-manager/';
415
+ }
416
+
417
+ return WP_PLUGIN_DIR . '/clearfy/components/assets-manager/';
418
+ } else if ( $this->is_active_assets_manager_standalone() ) {
419
+ if ( $this->is_active_assets_manager_standalone_dev() ) {
420
+ return WP_PLUGIN_DIR . '/wp-plugin-gonzales/';
421
+ }
422
+
423
+ return WP_PLUGIN_DIR . '/gonzales/';
424
+ }
425
+
426
+ return null;
427
+ }
428
+
429
+ /**
430
+ * Get premium plugin dir in dependence on environment
431
+ *
432
+ * @since 1.0.7
433
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
434
+ * @return string|null
435
+ */
436
+ private function get_parent_premium_plugin_dir() {
437
+ $is_active_prod = in_array( 'clearfy_package/clearfy-package.php', $this->active_plugins );
438
+ $is_active_dev = in_array( 'wp-plugin-clearfy-package/clearfy-package.php', $this->active_plugins );
439
+ $is_active_stand_alone_prod = in_array( 'assets-manager-premium/assets-manager-premium.php', $this->active_plugins );
440
+ $is_active_stand_alone_dev = in_array( 'wp-plugin-assets-manager-premium/assets-manager-premium.php', $this->active_plugins );
441
+
442
+ if($is_active_dev) {
443
+ $premium_plugin_dir = WP_PLUGIN_DIR .'/wp-plugin-clearfy-package/plugins/assets-manager-premium';
444
+ } else if($is_active_prod) {
445
+ $premium_plugin_dir = WP_PLUGIN_DIR .'/clearfy_package/assets-manager-premium';
446
+ } else if($is_active_stand_alone_prod){
447
+ $premium_plugin_dir = WP_PLUGIN_DIR .'/assets-manager-premium/';
448
+ } else if($is_active_stand_alone_dev) {
449
+ $premium_plugin_dir = WP_PLUGIN_DIR .'/wp-plugin-assets-manager-premium/';
450
+ } else {
451
+ return null;
452
+ }
453
+
454
+ return wp_normalize_path($premium_plugin_dir);
455
+ }
456
  }
457
 
458
  new WGNZ_Plugins_Loader();
components/assets-manager/readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Tags: dequeue script, dequeue style, pagespeed, speed, unload style, gonzales, assets clean, assets, assets cleanup, page speed optimizer, perfmatters, disable script, disable style, disable jquery, disable jquery-migrate, disable fonts
3
  Contributors: webcraftic, creativemotion, alexkovalevv
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VDX7JNTQPNPFW
5
- Requires at least: 4.7
6
- Tested up to: 5.2
7
  Requires PHP: 5.4
8
  Stable tag: trunk
9
  License: GPLv2
@@ -59,6 +59,12 @@ We invite you to check out a few other related free plugins that our team has al
59
  2. Assets manager
60
 
61
  == Changelog ==
 
 
 
 
 
 
62
  = 2.0.1 (12.10.2019) =
63
  * Fixed: The bug with save mode.
64
  * Fixed: Some conditions (entire website) didn't work. It could be due save mode.
2
  Tags: dequeue script, dequeue style, pagespeed, speed, unload style, gonzales, assets clean, assets, assets cleanup, page speed optimizer, perfmatters, disable script, disable style, disable jquery, disable jquery-migrate, disable fonts
3
  Contributors: webcraftic, creativemotion, alexkovalevv
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VDX7JNTQPNPFW
5
+ Requires at least: 4.8
6
+ Tested up to: 5.3
7
  Requires PHP: 5.4
8
  Stable tag: trunk
9
  License: GPLv2
59
  2. Assets manager
60
 
61
  == Changelog ==
62
+ = 2.0.3 (13.11.2019) =
63
+ * Fixed: Minor bugs. Comment head of mu plugin determined as main.
64
+
65
+ = 2.0.2 (13.11.2019) =
66
+ * Fixed: Minor bugs. Added an admin notice about great release.
67
+
68
  = 2.0.1 (12.10.2019) =
69
  * Fixed: The bug with save mode.
70
  * Fixed: Some conditions (entire website) didn't work. It could be due save mode.
components/assets-manager/uninstall.php CHANGED
@@ -8,6 +8,10 @@ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
8
  // remove plugin options
9
  global $wpdb;
10
 
 
 
 
 
11
  if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
12
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
13
  }
@@ -43,5 +47,6 @@ if ( is_multisite() ) {
43
  }
44
 
45
  // Remove mu plugin
46
- require_once dirname( __FILE__ ) . 'includes/functions.php';
 
47
  wbcr_gnz_remove_mu_plugin();
8
  // remove plugin options
9
  global $wpdb;
10
 
11
+ if ( ! defined( 'WGZ_PLUGIN_DIR' ) ) {
12
+ define( 'WGZ_PLUGIN_DIR', dirname( __FILE__ ) );
13
+ }
14
+
15
  if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
16
  require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
17
  }
47
  }
48
 
49
  // Remove mu plugin
50
+ require_once WGZ_PLUGIN_DIR . '/includes/functions.php';
51
+ // todo: for the function require the constant WGZ_PLUGIN_DIR
52
  wbcr_gnz_remove_mu_plugin();
components/assets-manager/views/assets-manager.php CHANGED
@@ -13,19 +13,19 @@ defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
13
  <main class="wam-content">
14
  <?php $this->print_template( 'part-assets-manager-tabs-menu' ); ?>
15
  <?php //$this->print_template( 'part-assets-manager-info-bar' ); ?>
16
- <div id="wam-assets-type-tab-content__theme" class="wam-assets-type-tab-content">
17
  <?php $this->print_template( 'tab-content-assets', [
18
  'type' => 'theme',
19
  'assets' => $data['theme_assets']
20
  ] ); ?>
21
  </div>
22
- <div id="wam-assets-type-tab-content__misc" class="wam-assets-type-tab-content">
23
  <?php $this->print_template( 'tab-content-assets', [
24
  'type' => 'misc',
25
  'assets' => $data['misc_assets']
26
  ] ); ?>
27
  </div>
28
- <div id="wam-assets-type-tab-content__plugins" class="wam-assets-type-tab-content wam-assets-type-tab-content__active">
29
  <?php $this->print_template( 'tab-content-assets-plugins', $data ); ?>
30
  </div>
31
  </main>
13
  <main class="wam-content">
14
  <?php $this->print_template( 'part-assets-manager-tabs-menu' ); ?>
15
  <?php //$this->print_template( 'part-assets-manager-info-bar' ); ?>
16
+ <div id="wam-assets-type-tab-content__theme" data-category="theme" class="wam-assets-type-tab-content">
17
  <?php $this->print_template( 'tab-content-assets', [
18
  'type' => 'theme',
19
  'assets' => $data['theme_assets']
20
  ] ); ?>
21
  </div>
22
+ <div id="wam-assets-type-tab-content__misc" data-category="misc" class="wam-assets-type-tab-content">
23
  <?php $this->print_template( 'tab-content-assets', [
24
  'type' => 'misc',
25
  'assets' => $data['misc_assets']
26
  ] ); ?>
27
  </div>
28
+ <div id="wam-assets-type-tab-content__plugins" data-category="plugins" class="wam-assets-type-tab-content wam-assets-type-tab-content__active">
29
  <?php $this->print_template( 'tab-content-assets-plugins', $data ); ?>
30
  </div>
31
  </main>
components/assets-manager/views/part-assets-manager-header.php CHANGED
@@ -31,7 +31,7 @@ defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
31
  </ul>
32
  </div>
33
  <div class="wam-float-panel__right">
34
- <a class="wam-float-panel__reset wbcr-reset-button" href="<?php echo esc_url( wp_nonce_url( add_query_arg( [ 'wam_reset_settings' => 1 ] ), 'wam_reset_settings' ) ); ?>">
35
  <?php _e( 'Reset', 'gonzales' ) ?>
36
  </a>
37
  <button id="wam-save-button" class="wam-float-panel__save js-wam-top-panel__save-button" data-nonce="<?php echo wp_create_nonce( 'wam_save_settigns' ); ?>"><?php _e( 'Save', 'gonzales' ) ?></button>
31
  </ul>
32
  </div>
33
  <div class="wam-float-panel__right">
34
+ <a class="wam-float-panel__reset wbcr-reset-button js-wam-reset-settings" href="<?php echo esc_url( wp_nonce_url( add_query_arg( [ 'wam_reset_settings' => 1 ] ), 'wam_reset_settings' ) ); ?>">
35
  <?php _e( 'Reset', 'gonzales' ) ?>
36
  </a>
37
  <button id="wam-save-button" class="wam-float-panel__save js-wam-top-panel__save-button" data-nonce="<?php echo wp_create_nonce( 'wam_save_settigns' ); ?>"><?php _e( 'Save', 'gonzales' ) ?></button>
components/assets-manager/views/part-assets-manager-info-bar.php CHANGED
@@ -22,10 +22,10 @@ defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
22
  To enable the changes for other users, uncheck Safe mode.', 'gonzales' ) ?>
23
  </p>
24
  <p>
25
- <?php echo sprintf( __( 'For more details and user guides, check the plugin’s <a href="%s" target="_blank" rel="noreferrer noopener">documentation</a>.', 'gonzales' ), WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'docs' ) ) ?>
26
  </p>
27
  </div>
28
- <a class="wbcr-gnz-button__pro" href="<?php echo WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'assets-manager' ) ?>" target="_blank" rel="noreferrer noopener">'
29
  <?php _e( 'Upgrade to Premium', 'gonzales' ) ?></a>
30
  <div class="wam-info-section__go-to-premium">
31
  <h3>
22
  To enable the changes for other users, uncheck Safe mode.', 'gonzales' ) ?>
23
  </p>
24
  <p>
25
+ <?php echo sprintf( __( 'For more details and user guides, check the plugin’s <a href="%s" target="_blank" rel="noreferrer noopener">documentation</a>.', 'gonzales' ), WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'docs' ) ) ?>
26
  </p>
27
  </div>
28
+ <a class="wbcr-gnz-button__pro" href="<?php echo WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( WGZ_Plugin::app()->getPluginName(), 'assets-manager' ) ?>" target="_blank" rel="noreferrer noopener">'
29
  <?php _e( 'Upgrade to Premium', 'gonzales' ) ?></a>
30
  <div class="wam-info-section__go-to-premium">
31
  <h3>
components/assets-manager/views/part-tab-content-assets-plugins-settings.php CHANGED
@@ -41,7 +41,7 @@ $plugin_name = $data['name'];
41
  <?php if ( ! empty( $data['assets'] ) ): ?>
42
  <?php foreach ( (array) $data['assets'] as $resource_type => $assets ): ?>
43
  <?php foreach ( (array) $assets as $resource_handle => $item ): ?>
44
- <tr data-size="<?php echo esc_attr( $item['size'] ); ?>" class="js-wam-asset js-wam-<?php echo esc_attr( $resource_type ); ?>-asset wam-table__asset-settings<?php echo $item['row_classes']; ?>" id="wam-table__loaded-resourse-<?php echo md5( $resource_handle . $resource_type . $item['url_full'] ); ?>">
45
  <td class="wam-table__td-actions">
46
  <select class="wam-select<?php echo $item['select_control_classes']; ?> js-wam-select-asset-load-mode"<?php disabled( 'enable' !== $data['load_mode'] ) ?>>
47
  <option value="enable"<?php selected( 'enable', $item['load_mode'] ) ?>>
@@ -63,6 +63,20 @@ $plugin_name = $data['name'];
63
  <a href="<?php echo esc_url( $item['url_full'] ); ?>">
64
  <?php echo esc_html( $item['url_short'] ); ?>
65
  </a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  </td>
67
  <td class="wam-table__td-version"><?php echo esc_html( $item['ver'] ); ?></td>
68
  <td class="wam-table__td-size"><?php echo esc_html( $item['size'] ); ?> KB</td>
41
  <?php if ( ! empty( $data['assets'] ) ): ?>
42
  <?php foreach ( (array) $data['assets'] as $resource_type => $assets ): ?>
43
  <?php foreach ( (array) $assets as $resource_handle => $item ): ?>
44
+ <tr data-size="<?php echo esc_attr( $item['size'] ); ?>" data-asset-handle="<?php echo esc_attr( $resource_handle . '-' . $resource_type ); ?>" class="js-wam-asset js-wam-<?php echo esc_attr( $resource_type ); ?>-asset wam-table__asset-settings<?php echo $item['row_classes']; ?>" id="wam-table__loaded-resourse-<?php echo md5( $resource_handle . $resource_type . $item['url_full'] ); ?>">
45
  <td class="wam-table__td-actions">
46
  <select class="wam-select<?php echo $item['select_control_classes']; ?> js-wam-select-asset-load-mode"<?php disabled( 'enable' !== $data['load_mode'] ) ?>>
47
  <option value="enable"<?php selected( 'enable', $item['load_mode'] ) ?>>
63
  <a href="<?php echo esc_url( $item['url_full'] ); ?>">
64
  <?php echo esc_html( $item['url_short'] ); ?>
65
  </a>
66
+ <div class="wam-table__handle-deps">
67
+ <?php if ( ! empty( $item['deps'] ) ): ?>
68
+ <span class="wam-colors--grey"><?php _e( 'Dependency by', 'gonzales' ) ?></span>:
69
+ <span class="wam-table__asset-deps js-wam-table__asset-deps">
70
+ <?php echo implode( ', ', $item['deps'] ); ?>
71
+ </span><br>
72
+ <?php endif; ?>
73
+ <?php if ( ! empty( $item['requires'] ) ): ?>
74
+ <span class="wam-colors--red"><?php _e( 'Requires for', 'gonzales' ) ?></span>:
75
+ <span class="wam-table__asset-requires js-wam-table__asset-requires">
76
+ <?php echo implode( ', ', $item['requires'] ); ?>
77
+ </span>
78
+ <?php endif; ?>
79
+ </div>
80
  </td>
81
  <td class="wam-table__td-version"><?php echo esc_html( $item['ver'] ); ?></td>
82
  <td class="wam-table__td-size"><?php echo esc_html( $item['size'] ); ?> KB</td>
components/assets-manager/views/tab-content-assets-plugins.php CHANGED
@@ -26,7 +26,7 @@ $active_plugin = reset( $data['loaded_plugins'] );
26
  <td class="wam-table__td-plugins-list">
27
  <ul class="wam-nav-plugins">
28
  <?php foreach ( (array) $data['loaded_plugins'] as $plugin_name => $plugin ): ?>
29
- <li class="wam-nav-plugins__tab js-wam-nav-plugins__tab-switch<?php echo( $active_plugin['name'] == $plugin_name ? ' wam-nav-plugins__tab--active' : '' ) ?>">
30
  <a href="#wam-<?php echo esc_attr( $plugin_name ); ?>">
31
  <strong class="wam-plugin-name"><?php echo $plugin['info']['Title']; ?></strong>
32
  <span><?php _e( 'Author', 'gonzales' ) ?>: <?php echo $plugin['info']['Author']; ?></span>
26
  <td class="wam-table__td-plugins-list">
27
  <ul class="wam-nav-plugins">
28
  <?php foreach ( (array) $data['loaded_plugins'] as $plugin_name => $plugin ): ?>
29
+ <li class="wam-nav-plugins__tab wam-nav-plugins__tab-load-mode--<?php echo esc_attr( str_replace( '_', '-', $plugin['load_mode'] ) ); ?> js-wam-nav-plugins__tab-switch<?php echo( $active_plugin['name'] == $plugin_name ? ' wam-nav-plugins__tab--active' : '' ) ?>">
30
  <a href="#wam-<?php echo esc_attr( $plugin_name ); ?>">
31
  <strong class="wam-plugin-name"><?php echo $plugin['info']['Title']; ?></strong>
32
  <span><?php _e( 'Author', 'gonzales' ) ?>: <?php echo $plugin['info']['Author']; ?></span>
components/assets-manager/views/tab-content-assets.php CHANGED
@@ -24,7 +24,7 @@ if ( empty( $data['assets'] ) ) {
24
  <?php if ( ! empty( $data['assets'] ) ): ?>
25
  <?php foreach ( (array) $data['assets'] as $resource_type => $assets ): ?>
26
  <?php foreach ( (array) $assets as $resource_handle => $item ): ?>
27
- <tr data-size="<?php echo esc_attr( $item['size'] ); ?>" class="js-wam-asset js-wam-<?php echo esc_attr( $resource_type ); ?>-asset wam-table__asset-settings<?php echo $item['row_classes']; ?>" id="wam-table__loaded-resourse-<?php echo md5( $resource_handle . $resource_type . $item['url_full'] ); ?>">
28
  <td class="wam-table__td-actions">
29
  <select class="wam-select<?php echo $item['select_control_classes']; ?> js-wam-select-asset-load-mode">
30
  <option value="enable"<?php selected( 'enable', $item['load_mode'] ) ?>>
@@ -46,6 +46,20 @@ if ( empty( $data['assets'] ) ) {
46
  <a href="<?php echo esc_url( $item['url_full'] ); ?>">
47
  <?php echo esc_html( $item['url_short'] ); ?>
48
  </a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  </td>
50
  <td class="wam-assets__table-td-version"><?php echo esc_html( $item['ver'] ); ?></td>
51
  <td class="wam-assets__table-td-size"><?php echo esc_html( $item['size'] ); ?> KB</td>
24
  <?php if ( ! empty( $data['assets'] ) ): ?>
25
  <?php foreach ( (array) $data['assets'] as $resource_type => $assets ): ?>
26
  <?php foreach ( (array) $assets as $resource_handle => $item ): ?>
27
+ <tr data-size="<?php echo esc_attr( $item['size'] ); ?>" data-asset-handle="<?php echo esc_attr( $resource_handle . '-' . $resource_type ); ?>" class="js-wam-asset js-wam-<?php echo esc_attr( $resource_type ); ?>-asset wam-table__asset-settings<?php echo $item['row_classes']; ?>" id="wam-table__loaded-resourse-<?php echo md5( $resource_handle . $resource_type . $item['url_full'] ); ?>">
28
  <td class="wam-table__td-actions">
29
  <select class="wam-select<?php echo $item['select_control_classes']; ?> js-wam-select-asset-load-mode">
30
  <option value="enable"<?php selected( 'enable', $item['load_mode'] ) ?>>
46
  <a href="<?php echo esc_url( $item['url_full'] ); ?>">
47
  <?php echo esc_html( $item['url_short'] ); ?>
48
  </a>
49
+ <div class="wam-table__handle-deps">
50
+ <?php if ( ! empty( $item['deps'] ) ): ?>
51
+ <span class="wam-colors--grey"><?php _e( 'Dependency by', 'gonzales' ) ?></span>:
52
+ <span class="wam-table__asset-deps js-wam-table__asset-deps">
53
+ <?php echo implode( ', ', $item['deps'] ); ?>
54
+ </span><br>
55
+ <?php endif; ?>
56
+ <?php if ( ! empty( $item['requires'] ) ): ?>
57
+ <span class="wam-colors--red"><?php _e( 'Requires for', 'gonzales' ) ?></span>:
58
+ <span class="wam-table__asset-requires js-wam-table__asset-requires">
59
+ <?php echo implode( ', ', $item['requires'] ); ?>
60
+ </span>
61
+ <?php endif; ?>
62
+ </div>
63
  </td>
64
  <td class="wam-assets__table-td-version"><?php echo esc_html( $item['ver'] ); ?></td>
65
  <td class="wam-assets__table-td-size"><?php echo esc_html( $item['size'] ); ?> KB</td>
components/comments-plus/admin/boot.php CHANGED
@@ -101,7 +101,7 @@ if ( ! defined( 'LOADING_COMMENTS_PLUS_AS_ADDON' ) ) {
101
  return $page_url;
102
  }
103
 
104
- add_filter( 'wbcr_factory_pages_421_imppage_rating_widget_url', 'wbcr_cmp_rating_widget_url', 10, 2 );
105
 
106
  /**
107
  * Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
101
  return $page_url;
102
  }
103
 
104
+ add_filter( 'wbcr_factory_pages_422_imppage_rating_widget_url', 'wbcr_cmp_rating_widget_url', 10, 2 );
105
 
106
  /**
107
  * Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
components/comments-plus/admin/pages/class-page-comments.php CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  *
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
- class WbcrCmp_CommentsPage extends Wbcr_FactoryClearfy213_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
@@ -52,9 +52,9 @@ class WbcrCmp_CommentsPage extends Wbcr_FactoryClearfy213_PageBase {
52
  *
53
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
54
  *
55
- * @param \Wbcr_Factory421_Plugin $plugin
56
  */
57
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
58
  $this->menu_title = __( 'Disable comments', 'comments-plus' );
59
  $this->page_menu_short_description = __( 'Manage site comments', 'comments-plus' );
60
 
16
  *
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
+ class WbcrCmp_CommentsPage extends Wbcr_FactoryClearfy214_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
52
  *
53
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
54
  *
55
+ * @param \Wbcr_Factory422_Plugin $plugin
56
  */
57
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
58
  $this->menu_title = __( 'Disable comments', 'comments-plus' );
59
  $this->page_menu_short_description = __( 'Manage site comments', 'comments-plus' );
60
 
components/comments-plus/admin/pages/class-page-delete-comments.php CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  *
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
- class WbcrCmp_DeleteCommentsPage extends Wbcr_FactoryClearfy213_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
@@ -66,9 +66,9 @@ class WbcrCmp_DeleteCommentsPage extends Wbcr_FactoryClearfy213_PageBase {
66
  *
67
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
68
  *
69
- * @param \Wbcr_Factory421_Plugin $plugin
70
  */
71
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
72
  $this->menu_title = __( 'Comments cleaner', 'comments-plus' );
73
 
74
  parent::__construct( $plugin );
@@ -78,10 +78,10 @@ class WbcrCmp_DeleteCommentsPage extends Wbcr_FactoryClearfy213_PageBase {
78
  * {@inheritDoc}
79
  *
80
  * @param $notices
81
- * @param Wbcr_Factory421_Plugin $plugin
82
  *
83
  * @return array
84
- * @see libs\factory\pages\themplates\FactoryPages421_ImpressiveThemplate
85
  */
86
  public function getActionNotices( $notices ) {
87
 
@@ -200,7 +200,7 @@ class WbcrCmp_DeleteCommentsPage extends Wbcr_FactoryClearfy213_PageBase {
200
  /**
201
  * Prints the content of the page
202
  *
203
- * @see libs\factory\pages\themplates\FactoryPages421_ImpressiveThemplate
204
  */
205
  public function showPageContent() {
206
  $stats = $this->getStats();
16
  *
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
+ class WbcrCmp_DeleteCommentsPage extends Wbcr_FactoryClearfy214_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
66
  *
67
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
68
  *
69
+ * @param \Wbcr_Factory422_Plugin $plugin
70
  */
71
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
72
  $this->menu_title = __( 'Comments cleaner', 'comments-plus' );
73
 
74
  parent::__construct( $plugin );
78
  * {@inheritDoc}
79
  *
80
  * @param $notices
81
+ * @param Wbcr_Factory422_Plugin $plugin
82
  *
83
  * @return array
84
+ * @see libs\factory\pages\themplates\FactoryPages422_ImpressiveThemplate
85
  */
86
  public function getActionNotices( $notices ) {
87
 
200
  /**
201
  * Prints the content of the page
202
  *
203
+ * @see libs\factory\pages\themplates\FactoryPages422_ImpressiveThemplate
204
  */
205
  public function showPageContent() {
206
  $stats = $this->getStats();
components/comments-plus/admin/pages/class-page-more-features.php CHANGED
@@ -19,6 +19,6 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  *
20
  * @copyright (c) 2018 Webraftic Ltd
21
  */
22
- class WbcrCmp_MoreFeaturesPage extends Wbcr_FactoryClearfy213_MoreFeaturesPage {
23
 
24
  }
19
  *
20
  * @copyright (c) 2018 Webraftic Ltd
21
  */
22
+ class WbcrCmp_MoreFeaturesPage extends Wbcr_FactoryClearfy214_MoreFeaturesPage {
23
 
24
  }
components/comments-plus/comments-plus.php CHANGED
@@ -8,7 +8,7 @@
8
  * Text Domain: comments-plus
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
- * Framework Version: FACTORY_421_VERSION
12
  */
13
 
14
  // Exit if accessed directly
@@ -64,15 +64,15 @@ $wcm_plugin_info = array(
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
- array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
68
- array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
69
- array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
70
- array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
71
- array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
72
  )
73
  );
74
 
75
- $wcm_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $wcm_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WCM_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
8
  * Text Domain: comments-plus
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
+ * Framework Version: FACTORY_422_VERSION
12
  */
13
 
14
  // Exit if accessed directly
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
+ array( 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ),
68
+ array( 'libs/factory/forms', 'factory_forms_420', 'admin' ),
69
+ array( 'libs/factory/pages', 'factory_pages_422', 'admin' ),
70
+ array( 'libs/factory/clearfy', 'factory_clearfy_214', 'all' ),
71
+ array( 'libs/factory/adverts', 'factory_adverts_104', 'admin')
72
  )
73
  );
74
 
75
+ $wcm_compatibility = new Wbcr_Factory422_Requirements( __FILE__, array_merge( $wcm_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WCM_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
components/comments-plus/includes/class-plugin.php CHANGED
@@ -10,11 +10,11 @@ if ( ! defined( 'ABSPATH' ) ) {
10
  * @author Alex Kovalev <alex.kovalevv@gmail.com>
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  */
13
- class WCM_Plugin extends Wbcr_Factory421_Plugin {
14
 
15
  /**
16
  * @see self::app()
17
- * @var Wbcr_Factory421_Plugin
18
  */
19
  private static $app;
20
 
@@ -59,7 +59,7 @@ class WCM_Plugin extends Wbcr_Factory421_Plugin {
59
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
60
  * классам.
61
  *
62
- * @return \Wbcr_Factory421_Plugin|\WCM_Plugin
63
  */
64
  public static function app() {
65
  return self::$app;
10
  * @author Alex Kovalev <alex.kovalevv@gmail.com>
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  */
13
+ class WCM_Plugin extends Wbcr_Factory422_Plugin {
14
 
15
  /**
16
  * @see self::app()
17
+ * @var Wbcr_Factory422_Plugin
18
  */
19
  private static $app;
20
 
59
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
60
  * классам.
61
  *
62
+ * @return \Wbcr_Factory422_Plugin|\WCM_Plugin
63
  */
64
  public static function app() {
65
  return self::$app;
components/comments-plus/includes/classes/class-configurate-comments.php CHANGED
@@ -12,14 +12,14 @@ if ( ! defined( 'ABSPATH' ) ) {
12
  *
13
  * @copyright (c) 2017 Webraftic Ltd
14
  */
15
- class WbcrCmp_ConfigComments extends Wbcr_FactoryClearfy213_Configurate {
16
 
17
  private $modified_types = [];
18
 
19
  /**
20
- * @param Wbcr_Factory421_Plugin $plugin
21
  */
22
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
23
  parent::__construct( $plugin );
24
  $this->plugin = $plugin;
25
  }
12
  *
13
  * @copyright (c) 2017 Webraftic Ltd
14
  */
15
+ class WbcrCmp_ConfigComments extends Wbcr_FactoryClearfy214_Configurate {
16
 
17
  private $modified_types = [];
18
 
19
  /**
20
+ * @param Wbcr_Factory422_Plugin $plugin
21
  */
22
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
23
  parent::__construct( $plugin );
24
  $this->plugin = $plugin;
25
  }
components/cyrlitera/admin/activation.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
  * @copyright (c) 09.03.2018, Webcraftic
8
- * @see Wbcr_Factory421_Activator
9
  * @version 1.0
10
  */
11
 
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- class WCTR_Activation extends Wbcr_Factory421_Activator {
18
 
19
  /**
20
  * Runs activation actions.
5
  *
6
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
  * @copyright (c) 09.03.2018, Webcraftic
8
+ * @see Wbcr_Factory422_Activator
9
  * @version 1.0
10
  */
11
 
14
  exit;
15
  }
16
 
17
+ class WCTR_Activation extends Wbcr_Factory422_Activator {
18
 
19
  /**
20
  * Runs activation actions.
components/cyrlitera/admin/boot.php CHANGED
@@ -135,7 +135,7 @@ if ( ! defined( 'LOADING_CYRLITERA_AS_ADDON' ) ) {
135
  return $page_url;
136
  }
137
 
138
- add_filter( 'wbcr_factory_pages_421_imppage_rating_widget_url', 'wbcr_cyrlitera_rating_widget_url', 10, 2 );
139
 
140
  /**
141
  * Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
135
  return $page_url;
136
  }
137
 
138
+ add_filter( 'wbcr_factory_pages_422_imppage_rating_widget_url', 'wbcr_cyrlitera_rating_widget_url', 10, 2 );
139
 
140
  /**
141
  * Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
components/cyrlitera/admin/pages/class-page-cyrlitera.php CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  * @copyright (c) 2018 Webraftic Ltd
17
  * @version 1.0
18
  */
19
- class WCTR_CyrliteraPage extends Wbcr_FactoryClearfy213_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
@@ -59,9 +59,9 @@ class WCTR_CyrliteraPage extends Wbcr_FactoryClearfy213_PageBase {
59
  *
60
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
61
  *
62
- * @param \Wbcr_Factory421_Plugin $plugin
63
  */
64
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
65
  $this->menu_title = __( 'Cyrlitera', 'cyrlitera' );
66
 
67
  if ( ! defined( 'LOADING_CYRLITERA_AS_ADDON' ) ) {
@@ -202,7 +202,7 @@ class WCTR_CyrliteraPage extends Wbcr_FactoryClearfy213_PageBase {
202
  }
203
 
204
  /**
205
- * @param $html_builder Wbcr_FactoryForms419_Html
206
  */
207
  public function rollbackButton( $html_builder ) {
208
  $form_name = $html_builder->getFormName();
16
  * @copyright (c) 2018 Webraftic Ltd
17
  * @version 1.0
18
  */
19
+ class WCTR_CyrliteraPage extends Wbcr_FactoryClearfy214_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
59
  *
60
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
61
  *
62
+ * @param \Wbcr_Factory422_Plugin $plugin
63
  */
64
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
65
  $this->menu_title = __( 'Cyrlitera', 'cyrlitera' );
66
 
67
  if ( ! defined( 'LOADING_CYRLITERA_AS_ADDON' ) ) {
202
  }
203
 
204
  /**
205
+ * @param $html_builder Wbcr_FactoryForms420_Html
206
  */
207
  public function rollbackButton( $html_builder ) {
208
  $form_name = $html_builder->getFormName();
components/cyrlitera/admin/pages/class-page-more-features.php CHANGED
@@ -18,6 +18,6 @@ if ( ! defined( 'ABSPATH' ) ) {
18
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
19
  * @copyright (c) 2018 Webraftic Ltd
20
  */
21
- class WCTR_MoreFeaturesPage extends Wbcr_FactoryClearfy213_MoreFeaturesPage {
22
 
23
  }
18
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
19
  * @copyright (c) 2018 Webraftic Ltd
20
  */
21
+ class WCTR_MoreFeaturesPage extends Wbcr_FactoryClearfy214_MoreFeaturesPage {
22
 
23
  }
components/cyrlitera/cyrlitera.php CHANGED
@@ -8,7 +8,7 @@
8
  * Text Domain: cyrlitera
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
- * Framework Version: FACTORY_421_VERSION
12
  */
13
 
14
  // Exit if accessed directly
@@ -64,15 +64,15 @@ $wctr_plugin_info = array(
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
- array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
68
- array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
69
- array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
70
- array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
71
- array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
72
  )
73
  );
74
 
75
- $wctr_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $wctr_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WCTR_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
8
  * Text Domain: cyrlitera
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
+ * Framework Version: FACTORY_422_VERSION
12
  */
13
 
14
  // Exit if accessed directly
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
+ array( 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ),
68
+ array( 'libs/factory/forms', 'factory_forms_420', 'admin' ),
69
+ array( 'libs/factory/pages', 'factory_pages_422', 'admin' ),
70
+ array( 'libs/factory/clearfy', 'factory_clearfy_214', 'all' ),
71
+ array( 'libs/factory/adverts', 'factory_adverts_104', 'admin')
72
  )
73
  );
74
 
75
+ $wctr_compatibility = new Wbcr_Factory422_Requirements( __FILE__, array_merge( $wctr_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WCTR_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
components/cyrlitera/includes/class-plugin.php CHANGED
@@ -10,11 +10,11 @@ if ( ! defined( 'ABSPATH' ) ) {
10
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  */
13
- class WCTR_Plugin extends Wbcr_Factory421_Plugin {
14
 
15
  /**
16
  * @see self::app()
17
- * @var Wbcr_Factory421_Plugin
18
  */
19
  private static $app;
20
 
@@ -57,7 +57,7 @@ class WCTR_Plugin extends Wbcr_Factory421_Plugin {
57
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
58
  * классам.
59
  *
60
- * @return \Wbcr_Factory421_Plugin|\WCTR_Plugin
61
  */
62
  public static function app() {
63
  return self::$app;
10
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  */
13
+ class WCTR_Plugin extends Wbcr_Factory422_Plugin {
14
 
15
  /**
16
  * @see self::app()
17
+ * @var Wbcr_Factory422_Plugin
18
  */
19
  private static $app;
20
 
57
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
58
  * классам.
59
  *
60
+ * @return \Wbcr_Factory422_Plugin|\WCTR_Plugin
61
  */
62
  public static function app() {
63
  return self::$app;
components/cyrlitera/includes/classes/class-configurate-cyrlitera.php CHANGED
@@ -12,7 +12,7 @@ if ( ! defined( 'ABSPATH' ) ) {
12
  exit;
13
  }
14
 
15
- class WCTR_ConfigurateCyrlitera extends Wbcr_FactoryClearfy213_Configurate {
16
 
17
  public function registerActionsAndFilters() {
18
 
@@ -235,7 +235,7 @@ class WCTR_ConfigurateCyrlitera extends Wbcr_FactoryClearfy213_Configurate {
235
  * Перенаправление со старых url, которые были уже преобразованы
236
  */
237
  public function redirectFromOldUrls() {
238
- if ( ! WbcrFactoryClearfy213_Helpers::isPermalink() ) {
239
  return;
240
  }
241
  $is404 = is_404();
12
  exit;
13
  }
14
 
15
+ class WCTR_ConfigurateCyrlitera extends Wbcr_FactoryClearfy214_Configurate {
16
 
17
  public function registerActionsAndFilters() {
18
 
235
  * Перенаправление со старых url, которые были уже преобразованы
236
  */
237
  public function redirectFromOldUrls() {
238
+ if ( ! WbcrFactoryClearfy214_Helpers::isPermalink() ) {
239
  return;
240
  }
241
  $is404 = is_404();
components/cyrlitera/migrations/010004.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WCTR_Update010004 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  WCTR_Plugin::app()->deletePopulateOption( 'custom_symbols_pack' );
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WCTR_Update010004 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  WCTR_Plugin::app()->deletePopulateOption( 'custom_symbols_pack' );
components/disable-admin-notices/admin/boot.php CHANGED
@@ -44,7 +44,7 @@ if ( ! defined( 'LOADING_DISABLE_ADMIN_NOTICES_AS_ADDON' ) ) {
44
  *
45
  * @return string
46
  */
47
- add_filter( 'wbcr_factory_pages_421_imppage_rating_widget_url', function ( $page_url, $plugin_name ) {
48
  if ( $plugin_name == WDN_Plugin::app()->getPluginName() ) {
49
  return 'https://goo.gl/68ucHp';
50
  }
44
  *
45
  * @return string
46
  */
47
+ add_filter( 'wbcr_factory_pages_422_imppage_rating_widget_url', function ( $page_url, $plugin_name ) {
48
  if ( $plugin_name == WDN_Plugin::app()->getPluginName() ) {
49
  return 'https://goo.gl/68ucHp';
50
  }
components/disable-admin-notices/admin/options.php CHANGED
@@ -131,7 +131,7 @@ function wbcr_dan_get_plugin_options() {
131
  * с настройками этого плагина, потому что это ухудшает юзабилити.
132
  *
133
  * @param array $form Массив с группой настроек, страницы "Дополнительно" в плагине Clearfy
134
- * @param Wbcr_FactoryPages421_ImpressiveThemplate $page Экземпляр страницы
135
  *
136
  * @return mixed Отсортированный массив с группой опций
137
  */
@@ -161,7 +161,7 @@ add_filter( 'wbcr_clr_additionally_form_options', 'wbcr_dan_additionally_form_op
161
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
162
  * @since 1.0
163
  *
164
- * @param @param $html_builder Wbcr_FactoryForms419_Html
165
  */
166
  function wbcr_dan_reset_notices_button( $html_builder ) {
167
  global $wpdb;
131
  * с настройками этого плагина, потому что это ухудшает юзабилити.
132
  *
133
  * @param array $form Массив с группой настроек, страницы "Дополнительно" в плагине Clearfy
134
+ * @param Wbcr_FactoryPages422_ImpressiveThemplate $page Экземпляр страницы
135
  *
136
  * @return mixed Отсортированный массив с группой опций
137
  */
161
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
162
  * @since 1.0
163
  *
164
+ * @param @param $html_builder Wbcr_FactoryForms420_Html
165
  */
166
  function wbcr_dan_reset_notices_button( $html_builder ) {
167
  global $wpdb;
components/disable-admin-notices/admin/pages/class-pages-more-features.php CHANGED
@@ -22,6 +22,6 @@ if ( ! defined( 'ABSPATH' ) ) {
22
  exit;
23
  }
24
 
25
- class WDN_MoreFeaturesPage extends Wbcr_FactoryClearfy213_MoreFeaturesPage {
26
 
27
  }
22
  exit;
23
  }
24
 
25
+ class WDN_MoreFeaturesPage extends Wbcr_FactoryClearfy214_MoreFeaturesPage {
26
 
27
  }
components/disable-admin-notices/admin/pages/class-pages-notices.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  exit;
20
  }
21
 
22
- class WDN_NoticesPage extends Wbcr_FactoryClearfy213_PageBase {
23
 
24
  /**
25
  * {@inheritDoc}
@@ -52,9 +52,9 @@ class WDN_NoticesPage extends Wbcr_FactoryClearfy213_PageBase {
52
 
53
 
54
  /**
55
- * @param Wbcr_Factory421_Plugin $plugin
56
  */
57
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
58
  $this->menu_title = __( 'Hide admin notices', 'disable-admin-notices' );
59
 
60
  $this->internal = false;
@@ -86,7 +86,7 @@ class WDN_NoticesPage extends Wbcr_FactoryClearfy213_PageBase {
86
  'wbcr_dan_code' => 'interal_error'
87
  ),
88
  'type' => 'danger',
89
- 'message' => __('An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'factory_pages_421')
90
  );*/
91
 
92
  return $notices;
19
  exit;
20
  }
21
 
22
+ class WDN_NoticesPage extends Wbcr_FactoryClearfy214_PageBase {
23
 
24
  /**
25
  * {@inheritDoc}
52
 
53
 
54
  /**
55
+ * @param Wbcr_Factory422_Plugin $plugin
56
  */
57
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
58
  $this->menu_title = __( 'Hide admin notices', 'disable-admin-notices' );
59
 
60
  $this->internal = false;
86
  'wbcr_dan_code' => 'interal_error'
87
  ),
88
  'type' => 'danger',
89
+ 'message' => __('An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'factory_pages_422')
90
  );*/
91
 
92
  return $notices;
components/disable-admin-notices/disable-admin-notices.php CHANGED
@@ -8,7 +8,7 @@
8
  * Text Domain: disable-admin-notices
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
- * Framework Version: FACTORY_421_VERSION
12
  */
13
 
14
  /**
@@ -64,15 +64,15 @@ $wdan_plugin_info = array(
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
- array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
68
- array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
69
- array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
70
- array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
71
- array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
72
  )
73
  );
74
 
75
- $wdan_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $wdan_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WDN_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
8
  * Text Domain: disable-admin-notices
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
+ * Framework Version: FACTORY_422_VERSION
12
  */
13
 
14
  /**
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
+ array( 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ),
68
+ array( 'libs/factory/forms', 'factory_forms_420', 'admin' ),
69
+ array( 'libs/factory/pages', 'factory_pages_422', 'admin' ),
70
+ array( 'libs/factory/clearfy', 'factory_clearfy_214', 'all' ),
71
+ array( 'libs/factory/adverts', 'factory_adverts_104', 'admin')
72
  )
73
  );
74
 
75
+ $wdan_compatibility = new Wbcr_Factory422_Requirements( __FILE__, array_merge( $wdan_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WDN_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
components/disable-admin-notices/includes/class-plugin.php CHANGED
@@ -9,16 +9,16 @@
9
  */
10
 
11
  // Exit if accessed directly
12
- //use WBCR\Factory_Adverts_103\Base;
13
 
14
  if ( ! defined( 'ABSPATH' ) ) {
15
  exit;
16
  }
17
 
18
- class WDN_Plugin extends Wbcr_Factory421_Plugin {
19
 
20
  /**
21
- * @var Wbcr_Factory421_Plugin
22
  */
23
  private static $app;
24
  private $plugin_data;
@@ -44,7 +44,7 @@ class WDN_Plugin extends Wbcr_Factory421_Plugin {
44
  }
45
 
46
  /**
47
- * @return Wbcr_Factory421_Plugin
48
  */
49
  public static function app() {
50
  return self::$app;
9
  */
10
 
11
  // Exit if accessed directly
12
+ //use WBCR\Factory_Adverts_104\Base;
13
 
14
  if ( ! defined( 'ABSPATH' ) ) {
15
  exit;
16
  }
17
 
18
+ class WDN_Plugin extends Wbcr_Factory422_Plugin {
19
 
20
  /**
21
+ * @var Wbcr_Factory422_Plugin
22
  */
23
  private static $app;
24
  private $plugin_data;
44
  }
45
 
46
  /**
47
+ * @return Wbcr_Factory422_Plugin
48
  */
49
  public static function app() {
50
  return self::$app;
components/disable-admin-notices/includes/classes/class-configurate-notices.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  exit;
16
  }
17
 
18
- class WDN_ConfigHideNotices extends Wbcr_FactoryClearfy213_Configurate {
19
 
20
  public function registerActionsAndFilters() {
21
  if ( is_admin() ) {
15
  exit;
16
  }
17
 
18
+ class WDN_ConfigHideNotices extends Wbcr_FactoryClearfy214_Configurate {
19
 
20
  public function registerActionsAndFilters() {
21
  if ( is_admin() ) {
components/disable-admin-notices/migrations/010007.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WDNUpdate010007 extends Wbcr_Factory421_Update {
8
 
9
  public function install()
10
  {
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WDNUpdate010007 extends Wbcr_Factory422_Update {
8
 
9
  public function install()
10
  {
components/ga-cache/admin/activation.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
  * @copyright (c) 09.09.2017, Webcraftic
8
- * @see Factory421_Activator
9
  * @version 1.0
10
  */
11
 
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- class WGA_Activation extends Wbcr_Factory421_Activator {
18
 
19
  /**
20
  * Runs activation actions.
5
  *
6
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
  * @copyright (c) 09.09.2017, Webcraftic
8
+ * @see Factory422_Activator
9
  * @version 1.0
10
  */
11
 
14
  exit;
15
  }
16
 
17
+ class WGA_Activation extends Wbcr_Factory422_Activator {
18
 
19
  /**
20
  * Runs activation actions.
components/ga-cache/admin/boot.php CHANGED
@@ -23,13 +23,13 @@ if ( ! defined( 'ABSPATH' ) ) {
23
  *
24
  * @since 3.0.1
25
  *
26
- * @param Wbcr_FactoryPages421_ImpressiveThemplate $page
27
  *
28
- * @param Wbcr_Factory421_Plugin $plugin
29
  *
30
  * @return void
31
  */
32
- add_action( 'wbcr_factory_421_imppage_after_form_save', function ( $plugin, $page ) {
33
  if ( WGA_Plugin::app()->getPluginName() != $plugin->getPluginName() ) {
34
  return;
35
  }
23
  *
24
  * @since 3.0.1
25
  *
26
+ * @param Wbcr_FactoryPages422_ImpressiveThemplate $page
27
  *
28
+ * @param Wbcr_Factory422_Plugin $plugin
29
  *
30
  * @return void
31
  */
32
+ add_action( 'wbcr_factory_422_imppage_after_form_save', function ( $plugin, $page ) {
33
  if ( WGA_Plugin::app()->getPluginName() != $plugin->getPluginName() ) {
34
  return;
35
  }
components/ga-cache/admin/options.php CHANGED
@@ -117,7 +117,7 @@ function wbcr_ga_get_plugin_options() {
117
 
118
  /**
119
  * @param $form
120
- * @param $page Wbcr_FactoryPages421_ImpressiveThemplate
121
  *
122
  * @return mixed
123
  */
117
 
118
  /**
119
  * @param $form
120
+ * @param $page Wbcr_FactoryPages422_ImpressiveThemplate
121
  *
122
  * @return mixed
123
  */
components/ga-cache/admin/pages/class-pages-general-settings.php CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  * @copyright (c) 2018 Webraftic Ltd
17
  * @version 1.0
18
  */
19
- class WGA_CachePage extends Wbcr_FactoryClearfy213_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
@@ -48,9 +48,9 @@ class WGA_CachePage extends Wbcr_FactoryClearfy213_PageBase {
48
  public $show_right_sidebar_in_options = true;
49
 
50
  /**
51
- * @param Wbcr_Factory421_Plugin $plugin
52
  */
53
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
54
  $this->menu_title = __( 'Local Google Analytics', 'simple-google-analytics' );
55
 
56
  if ( ! defined( 'LOADING_GA_CACHE_AS_ADDON' ) ) {
16
  * @copyright (c) 2018 Webraftic Ltd
17
  * @version 1.0
18
  */
19
+ class WGA_CachePage extends Wbcr_FactoryClearfy214_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
48
  public $show_right_sidebar_in_options = true;
49
 
50
  /**
51
+ * @param Wbcr_Factory422_Plugin $plugin
52
  */
53
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
54
  $this->menu_title = __( 'Local Google Analytics', 'simple-google-analytics' );
55
 
56
  if ( ! defined( 'LOADING_GA_CACHE_AS_ADDON' ) ) {
components/ga-cache/admin/pages/class-pages-more-features.php CHANGED
@@ -16,6 +16,6 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
- class WGA_MoreFeaturesPage extends Wbcr_FactoryClearfy213_MoreFeaturesPage {
20
 
21
  }
16
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
+ class WGA_MoreFeaturesPage extends Wbcr_FactoryClearfy214_MoreFeaturesPage {
20
 
21
  }
components/ga-cache/includes/class-plugin.php CHANGED
@@ -10,11 +10,11 @@ if ( ! defined( 'ABSPATH' ) ) {
10
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  */
13
- class WGA_Plugin extends Wbcr_Factory421_Plugin {
14
 
15
  /**
16
  * @see self::app()
17
- * @var Wbcr_Factory421_Plugin
18
  */
19
  private static $app;
20
 
@@ -58,7 +58,7 @@ class WGA_Plugin extends Wbcr_Factory421_Plugin {
58
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
59
  * классам.
60
  *
61
- * @return \Wbcr_Factory421_Plugin|\WGA_Plugin
62
  */
63
  public static function app() {
64
  return self::$app;
10
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  */
13
+ class WGA_Plugin extends Wbcr_Factory422_Plugin {
14
 
15
  /**
16
  * @see self::app()
17
+ * @var Wbcr_Factory422_Plugin
18
  */
19
  private static $app;
20
 
58
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
59
  * классам.
60
  *
61
+ * @return \Wbcr_Factory422_Plugin|\WGA_Plugin
62
  */
63
  public static function app() {
64
  return self::$app;
components/ga-cache/includes/classes/class-configurate-ga.php CHANGED
@@ -12,7 +12,7 @@ if ( ! defined( 'ABSPATH' ) ) {
12
  exit;
13
  }
14
 
15
- class WGA_ConfigGACache extends Wbcr_FactoryClearfy213_Configurate {
16
 
17
 
18
  public function registerActionsAndFilters() {
12
  exit;
13
  }
14
 
15
+ class WGA_ConfigGACache extends Wbcr_FactoryClearfy214_Configurate {
16
 
17
 
18
  public function registerActionsAndFilters() {
components/ga-cache/migrations/030002.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WGACUpdate030002 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  /**
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WGACUpdate030002 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  /**
components/ga-cache/simple_google_analytics.php CHANGED
@@ -63,15 +63,15 @@ $plugin_info = array(
63
 
64
  // FRAMEWORK MODULES
65
  'load_factory_modules' => array(
66
- array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
67
- array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
68
- array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
69
- array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
70
- array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
71
  )
72
  );
73
 
74
- $wga_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $plugin_info, array(
75
  'plugin_already_activate' => defined( 'WGA_PLUGIN_ACTIVE' ),
76
  'required_php_version' => '5.4',
77
  'required_wp_version' => '4.2.0',
63
 
64
  // FRAMEWORK MODULES
65
  'load_factory_modules' => array(
66
+ array( 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ),
67
+ array( 'libs/factory/forms', 'factory_forms_420', 'admin' ),
68
+ array( 'libs/factory/pages', 'factory_pages_422', 'admin' ),
69
+ array( 'libs/factory/clearfy', 'factory_clearfy_214', 'all' ),
70
+ array( 'libs/factory/adverts', 'factory_adverts_104', 'admin')
71
  )
72
  );
73
 
74
+ $wga_compatibility = new Wbcr_Factory422_Requirements( __FILE__, array_merge( $plugin_info, array(
75
  'plugin_already_activate' => defined( 'WGA_PLUGIN_ACTIVE' ),
76
  'required_php_version' => '5.4',
77
  'required_wp_version' => '4.2.0',
components/html-minify/admin/pages/class-pages-settings.php CHANGED
@@ -9,7 +9,7 @@ if ( ! defined( 'ABSPATH' ) ) {
9
  *
10
  * @since 1.0.0
11
  */
12
- class WHTM_SettingsPage extends Wbcr_FactoryClearfy213_PageBase {
13
 
14
  /**
15
  * {@inheritDoc}
@@ -52,9 +52,9 @@ class WHTM_SettingsPage extends Wbcr_FactoryClearfy213_PageBase {
52
  *
53
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
54
  *
55
- * @param \Wbcr_Factory421_Plugin $plugin
56
  */
57
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
58
  // Заголовок страницы
59
  $this->menu_title = __( 'HTML Minify', 'html-minify' );
60
 
9
  *
10
  * @since 1.0.0
11
  */
12
+ class WHTM_SettingsPage extends Wbcr_FactoryClearfy214_PageBase {
13
 
14
  /**
15
  * {@inheritDoc}
52
  *
53
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
54
  *
55
+ * @param \Wbcr_Factory422_Plugin $plugin
56
  */
57
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
58
  // Заголовок страницы
59
  $this->menu_title = __( 'HTML Minify', 'html-minify' );
60
 
components/html-minify/html-minify.php CHANGED
@@ -8,7 +8,7 @@
8
  * Text Domain: html-minify
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
- * Framework Version: FACTORY_421_VERSION
12
  */
13
 
14
  /*
@@ -59,15 +59,15 @@ $whtml_plugin_info = array(
59
 
60
  // FRAMEWORK MODULES
61
  'load_factory_modules' => array(
62
- array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
63
- array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
64
- array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
65
- array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
66
- array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
67
  )
68
  );
69
 
70
- $whtml_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $whtml_plugin_info, array(
71
  'plugin_already_activate' => defined( 'WHTM_PLUGIN_ACTIVE' ),
72
  'required_php_version' => '5.4',
73
  'required_wp_version' => '4.2.0',
8
  * Text Domain: html-minify
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
+ * Framework Version: FACTORY_422_VERSION
12
  */
13
 
14
  /*
59
 
60
  // FRAMEWORK MODULES
61
  'load_factory_modules' => array(
62
+ array( 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ),
63
+ array( 'libs/factory/forms', 'factory_forms_420', 'admin' ),
64
+ array( 'libs/factory/pages', 'factory_pages_422', 'admin' ),
65
+ array( 'libs/factory/clearfy', 'factory_clearfy_214', 'all' ),
66
+ array( 'libs/factory/adverts', 'factory_adverts_104', 'admin')
67
  )
68
  );
69
 
70
+ $whtml_compatibility = new Wbcr_Factory422_Requirements( __FILE__, array_merge( $whtml_plugin_info, array(
71
  'plugin_already_activate' => defined( 'WHTM_PLUGIN_ACTIVE' ),
72
  'required_php_version' => '5.4',
73
  'required_wp_version' => '4.2.0',
components/html-minify/includes/class-plugin.php CHANGED
@@ -13,11 +13,11 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  }
14
 
15
 
16
- class WHTM_Plugin extends Wbcr_Factory421_Plugin {
17
 
18
  /**
19
  * @see self::app()
20
- * @var Wbcr_Factory421_Plugin
21
  */
22
  private static $app;
23
 
@@ -53,7 +53,7 @@ class WHTM_Plugin extends Wbcr_Factory421_Plugin {
53
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
54
  * классам.
55
  *
56
- * @return \Wbcr_Factory421_Plugin|\WCM_Plugin
57
  */
58
  public static function app() {
59
  return self::$app;
13
  }
14
 
15
 
16
+ class WHTM_Plugin extends Wbcr_Factory422_Plugin {
17
 
18
  /**
19
  * @see self::app()
20
+ * @var Wbcr_Factory422_Plugin
21
  */
22
  private static $app;
23
 
53
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
54
  * классам.
55
  *
56
+ * @return \Wbcr_Factory422_Plugin|\WCM_Plugin
57
  */
58
  public static function app() {
59
  return self::$app;
components/minify-and-combine/admin/pages/class-pages-settings.php CHANGED
@@ -9,7 +9,7 @@ if ( ! defined( 'ABSPATH' ) ) {
9
  *
10
  * @since 1.0.0
11
  */
12
- class WMAC_MinifyAndCombineSettingsPage extends Wbcr_FactoryClearfy213_PageBase {
13
 
14
  /**
15
  * {@inheritDoc}
@@ -52,9 +52,9 @@ class WMAC_MinifyAndCombineSettingsPage extends Wbcr_FactoryClearfy213_PageBase
52
  *
53
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
54
  *
55
- * @param \Wbcr_Factory421_Plugin $plugin
56
  */
57
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
58
  $this->menu_title = __( 'Minify (JS/CSS)', 'minify-and-combine' );
59
 
60
  if ( ! defined( 'LOADING_MINIFY_AND_COMBINE_AS_ADDON' ) ) {
9
  *
10
  * @since 1.0.0
11
  */
12
+ class WMAC_MinifyAndCombineSettingsPage extends Wbcr_FactoryClearfy214_PageBase {
13
 
14
  /**
15
  * {@inheritDoc}
52
  *
53
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
54
  *
55
+ * @param \Wbcr_Factory422_Plugin $plugin
56
  */
57
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
58
  $this->menu_title = __( 'Minify (JS/CSS)', 'minify-and-combine' );
59
 
60
  if ( ! defined( 'LOADING_MINIFY_AND_COMBINE_AS_ADDON' ) ) {
components/minify-and-combine/includes/class-plugin.php CHANGED
@@ -13,11 +13,11 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  }
14
 
15
 
16
- class WMAC_Plugin extends Wbcr_Factory421_Plugin {
17
 
18
  /**
19
  * @see self::app()
20
- * @var Wbcr_Factory421_Plugin
21
  */
22
  private static $app;
23
 
@@ -55,7 +55,7 @@ class WMAC_Plugin extends Wbcr_Factory421_Plugin {
55
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
56
  * классам.
57
  *
58
- * @return \Wbcr_Factory421_Plugin|\WCM_Plugin
59
  */
60
  public static function app() {
61
  return self::$app;
13
  }
14
 
15
 
16
+ class WMAC_Plugin extends Wbcr_Factory422_Plugin {
17
 
18
  /**
19
  * @see self::app()
20
+ * @var Wbcr_Factory422_Plugin
21
  */
22
  private static $app;
23
 
55
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
56
  * классам.
57
  *
58
+ * @return \Wbcr_Factory422_Plugin|\WCM_Plugin
59
  */
60
  public static function app() {
61
  return self::$app;
components/minify-and-combine/includes/classes/class-cache.php CHANGED
@@ -385,7 +385,7 @@ class WMAC_PluginCache {
385
  }
386
  }
387
  add_action( 'shutdown', 'wmac_do_cachepurged_action', 11 );
388
- add_action( 'wmac_action_cachepurged', [ 'WbcrFactoryClearfy213_Helpers', 'flushPageCache' ], 10, 0 );
389
  }
390
 
391
  // Warm cache (part of speedupper)!
385
  }
386
  }
387
  add_action( 'shutdown', 'wmac_do_cachepurged_action', 11 );
388
+ add_action( 'wmac_action_cachepurged', [ 'WbcrFactoryClearfy214_Helpers', 'flushPageCache' ], 10, 0 );
389
  }
390
 
391
  // Warm cache (part of speedupper)!
components/minify-and-combine/includes/classes/class-styles.php CHANGED
@@ -810,9 +810,9 @@ class WMAC_PluginStyles extends WMAC_PluginBase {
810
 
811
  // Adds preload polyfill at end of body tag.
812
  $this->injectInHtml( apply_filters( 'wmac_css_preload_polyfill', $preload_polyfill ), [
813
- '</body>',
814
- 'before'
815
- ] );
816
  }
817
  }
818
 
@@ -1011,7 +1011,7 @@ class WMAC_PluginStyles extends WMAC_PluginBase {
1011
  * @return string
1012
  */
1013
  public function getAoCssPreloadPolyfill() {
1014
- $preload_poly = apply_filters( 'autoptimize_css_preload_polyfill', '<script data-cfasync=\'false\'>!function(t){"use strict";t.loadCSS||(t.loadCSS=function(){});var e=loadCSS.relpreload={};if(e.support=function(){var e;try{e=t.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),e.bindMediaToggle=function(t){function e(){t.media=a}var a=t.media||"all";t.addEventListener?t.addEventListener("load",e):t.attachEvent&&t.attachEvent("onload",e),setTimeout(function(){t.rel="stylesheet",t.media="only x"}),setTimeout(e,3e3)},e.poly=function(){if(!e.support())for(var a=t.document.getElementsByTagName("link"),n=0;n<a.length;n++){var o=a[n];"preload"!==o.rel||"style"!==o.getAttribute("as")||o.getAttribute("data-loadcss")||(o.setAttribute("data-loadcss",!0),e.bindMediaToggle(o))}},!e.support()){e.poly();var a=t.setInterval(e.poly,500);t.addEventListener?t.addEventListener("load",function(){e.poly(),t.clearInterval(a)}):t.attachEvent&&t.attachEvent("onload",function(){e.poly(),t.clearInterval(a)})}"undefined"!=typeof exports?exports.loadCSS=loadCSS:t.loadCSS=loadCSS}("undefined"!=typeof global?global:this);</script>' );
1015
 
1016
  return $preload_poly;
1017
  }
810
 
811
  // Adds preload polyfill at end of body tag.
812
  $this->injectInHtml( apply_filters( 'wmac_css_preload_polyfill', $preload_polyfill ), [
813
+ '</body>',
814
+ 'before'
815
+ ] );
816
  }
817
  }
818
 
1011
  * @return string
1012
  */
1013
  public function getAoCssPreloadPolyfill() {
1014
+ $preload_poly = apply_filters( 'wmac_filter_css_preload_polyfill', '<script data-cfasync=\'false\'>!function(t){"use strict";t.loadCSS||(t.loadCSS=function(){});var e=loadCSS.relpreload={};if(e.support=function(){var e;try{e=t.document.createElement("link").relList.supports("preload")}catch(t){e=!1}return function(){return e}}(),e.bindMediaToggle=function(t){function e(){t.media=a}var a=t.media||"all";t.addEventListener?t.addEventListener("load",e):t.attachEvent&&t.attachEvent("onload",e),setTimeout(function(){t.rel="stylesheet",t.media="only x"}),setTimeout(e,3e3)},e.poly=function(){if(!e.support())for(var a=t.document.getElementsByTagName("link"),n=0;n<a.length;n++){var o=a[n];"preload"!==o.rel||"style"!==o.getAttribute("as")||o.getAttribute("data-loadcss")||(o.setAttribute("data-loadcss",!0),e.bindMediaToggle(o))}},!e.support()){e.poly();var a=t.setInterval(e.poly,500);t.addEventListener?t.addEventListener("load",function(){e.poly(),t.clearInterval(a)}):t.attachEvent&&t.attachEvent("onload",function(){e.poly(),t.clearInterval(a)})}"undefined"!=typeof exports?exports.loadCSS=loadCSS:t.loadCSS=loadCSS}("undefined"!=typeof global?global:this);</script>' );
1015
 
1016
  return $preload_poly;
1017
  }
components/minify-and-combine/minify-and-combine.php CHANGED
@@ -8,7 +8,7 @@
8
  * Text Domain: minify-and-combine
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
- * Framework Version: FACTORY_421_VERSION
12
  */
13
 
14
  /*
@@ -59,15 +59,15 @@ $wmac_plugin_info = array(
59
 
60
  // FRAMEWORK MODULES
61
  'load_factory_modules' => array(
62
- array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
63
- array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
64
- array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
65
- array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
66
- array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
67
  )
68
  );
69
 
70
- $wmac_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $wmac_plugin_info, array(
71
  'plugin_already_activate' => defined( 'WMAC_PLUGIN_ACTIVE' ),
72
  'required_php_version' => '5.4',
73
  'required_wp_version' => '4.2.0',
8
  * Text Domain: minify-and-combine
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
+ * Framework Version: FACTORY_422_VERSION
12
  */
13
 
14
  /*
59
 
60
  // FRAMEWORK MODULES
61
  'load_factory_modules' => array(
62
+ array( 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ),
63
+ array( 'libs/factory/forms', 'factory_forms_420', 'admin' ),
64
+ array( 'libs/factory/pages', 'factory_pages_422', 'admin' ),
65
+ array( 'libs/factory/clearfy', 'factory_clearfy_214', 'all' ),
66
+ array( 'libs/factory/adverts', 'factory_adverts_104', 'admin')
67
  )
68
  );
69
 
70
+ $wmac_compatibility = new Wbcr_Factory422_Requirements( __FILE__, array_merge( $wmac_plugin_info, array(
71
  'plugin_already_activate' => defined( 'WMAC_PLUGIN_ACTIVE' ),
72
  'required_php_version' => '5.4',
73
  'required_wp_version' => '4.2.0',
components/updates-manager/admin/activation.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
  * @copyright (c) 09.09.2017, Webcraftic
8
- * @see Factory421_Activator
9
  */
10
 
11
  // Exit if accessed directly
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  exit;
14
  }
15
 
16
- class WUPM_Activation extends Wbcr_Factory421_Activator {
17
 
18
  /**
19
  * Runs activation actions.
5
  *
6
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
7
  * @copyright (c) 09.09.2017, Webcraftic
8
+ * @see Factory422_Activator
9
  */
10
 
11
  // Exit if accessed directly
13
  exit;
14
  }
15
 
16
+ class WUPM_Activation extends Wbcr_Factory422_Activator {
17
 
18
  /**
19
  * Runs activation actions.
components/updates-manager/admin/assets/js/ajax-components.js CHANGED
@@ -59,15 +59,15 @@ jQuery(function($) {
59
 
60
  if( !response || !response.success ) {
61
  if( response.data.error_message ) {
62
- $.wbcr_factory_clearfy_213.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
63
  }
64
  return false;
65
  }
66
 
67
- /*var noticeId = $.wbcr_factory_clearfy_213.app.showNotice('Settings successfully updated', 'success');
68
 
69
  setTimeout(function() {
70
- $.wbcr_factory_clearfy_213.app.hideNotice(noticeId);
71
  }, 5000);*/
72
  },
73
  error: function(xhr, ajaxOptions, thrownError) {
@@ -75,7 +75,7 @@ jQuery(function($) {
75
  console.log(xhr.responseText);
76
  console.log(thrownError);
77
 
78
- $.wbcr_factory_clearfy_213.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
79
  }
80
  });
81
  });
59
 
60
  if( !response || !response.success ) {
61
  if( response.data.error_message ) {
62
+ $.wbcr_factory_clearfy_214.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
63
  }
64
  return false;
65
  }
66
 
67
+ /*var noticeId = $.wbcr_factory_clearfy_214.app.showNotice('Settings successfully updated', 'success');
68
 
69
  setTimeout(function() {
70
+ $.wbcr_factory_clearfy_214.app.hideNotice(noticeId);
71
  }, 5000);*/
72
  },
73
  error: function(xhr, ajaxOptions, thrownError) {
75
  console.log(xhr.responseText);
76
  console.log(thrownError);
77
 
78
+ $.wbcr_factory_clearfy_214.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
79
  }
80
  });
81
  });
components/updates-manager/admin/boot.php CHANGED
@@ -48,7 +48,7 @@ if ( ! defined( 'LOADING_UPDATES_MANAGER_AS_ADDON' ) ) {
48
  return $page_url;
49
  }
50
 
51
- add_filter( 'wbcr_factory_pages_421_imppage_rating_widget_url', 'wbcr_upm_rating_widget_url', 10, 2 );
52
 
53
  /**
54
  * Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
48
  return $page_url;
49
  }
50
 
51
+ add_filter( 'wbcr_factory_pages_422_imppage_rating_widget_url', 'wbcr_upm_rating_widget_url', 10, 2 );
52
 
53
  /**
54
  * Удаляем лишние виджеты из правого сайдбара в интерфейсе плагина
components/updates-manager/admin/includes/class-abstract-filters.php CHANGED
@@ -14,7 +14,7 @@ abstract class WUPM_AbstractFilters {
14
  protected $is_disable_translation_updates;
15
 
16
 
17
- function __construct( Wbcr_Factory421_Plugin $plugin ) {
18
  $this->plugin = $plugin;
19
  $this->load();
20
  }
14
  protected $is_disable_translation_updates;
15
 
16
 
17
+ function __construct( Wbcr_Factory422_Plugin $plugin ) {
18
  $this->plugin = $plugin;
19
  $this->load();
20
  }
components/updates-manager/admin/pages/class-page-advanced.php CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
- class WUPM_AdvancedPage extends Wbcr_FactoryClearfy213_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
@@ -66,9 +66,9 @@ class WUPM_AdvancedPage extends Wbcr_FactoryClearfy213_PageBase {
66
  *
67
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
68
  *
69
- * @param \Wbcr_Factory421_Plugin $plugin
70
  */
71
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
72
  $this->menu_title = __( 'Advanced', 'webcraftic-updates-manager' );
73
 
74
  parent::__construct( $plugin );
@@ -79,8 +79,8 @@ class WUPM_AdvancedPage extends Wbcr_FactoryClearfy213_PageBase {
79
  *
80
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
81
  *
82
- * @param \Wbcr_Factory421_ScriptList $scripts
83
- * @param \Wbcr_Factory421_StyleList $styles
84
  */
85
  public function assets( $scripts, $styles ) {
86
  parent::assets( $scripts, $styles );
16
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
+ class WUPM_AdvancedPage extends Wbcr_FactoryClearfy214_PageBase {
20
 
21
  /**
22
  * {@inheritDoc}
66
  *
67
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
68
  *
69
+ * @param \Wbcr_Factory422_Plugin $plugin
70
  */
71
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
72
  $this->menu_title = __( 'Advanced', 'webcraftic-updates-manager' );
73
 
74
  parent::__construct( $plugin );
79
  *
80
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
81
  *
82
+ * @param \Wbcr_Factory422_ScriptList $scripts
83
+ * @param \Wbcr_Factory422_StyleList $styles
84
  */
85
  public function assets( $scripts, $styles ) {
86
  parent::assets( $scripts, $styles );
components/updates-manager/admin/pages/class-page-more-features.php CHANGED
@@ -16,6 +16,6 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
- class WUPM_MoreFeaturesPage extends Wbcr_FactoryClearfy213_MoreFeaturesPage {
20
 
21
  }
16
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
+ class WUPM_MoreFeaturesPage extends Wbcr_FactoryClearfy214_MoreFeaturesPage {
20
 
21
  }
components/updates-manager/admin/pages/class-page-plugins.php CHANGED
@@ -16,7 +16,7 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  *
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
- class WUPM_PluginsPage extends Wbcr_FactoryClearfy213_PageBase {
20
 
21
  /**
22
  *{@inheritDoc}
@@ -83,9 +83,9 @@ class WUPM_PluginsPage extends Wbcr_FactoryClearfy213_PageBase {
83
  *
84
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
85
  *
86
- * @param \Wbcr_Factory421_Plugin $plugin
87
  */
88
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
89
  $this->menu_title = __( 'Plugins', 'webcraftic-updates-manager' );
90
 
91
  parent::__construct( $plugin );
@@ -121,8 +121,8 @@ class WUPM_PluginsPage extends Wbcr_FactoryClearfy213_PageBase {
121
  *
122
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
123
  *
124
- * @param \Wbcr_Factory421_ScriptList $scripts
125
- * @param \Wbcr_Factory421_StyleList $styles
126
  */
127
  public function assets( $scripts, $styles ) {
128
  parent::assets( $scripts, $styles );
16
  *
17
  * @copyright (c) 2018 Webraftic Ltd
18
  */
19
+ class WUPM_PluginsPage extends Wbcr_FactoryClearfy214_PageBase {
20
 
21
  /**
22
  *{@inheritDoc}
83
  *
84
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
85
  *
86
+ * @param \Wbcr_Factory422_Plugin $plugin
87
  */
88
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
89
  $this->menu_title = __( 'Plugins', 'webcraftic-updates-manager' );
90
 
91
  parent::__construct( $plugin );
121
  *
122
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
123
  *
124
+ * @param \Wbcr_Factory422_ScriptList $scripts
125
+ * @param \Wbcr_Factory422_StyleList $styles
126
  */
127
  public function assets( $scripts, $styles ) {
128
  parent::assets( $scripts, $styles );
components/updates-manager/admin/pages/class-page-themes.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
16
  * @copyright (c) 2018 Webraftic Ltd
17
  */
18
- class WUPM_ThemesPage extends Wbcr_FactoryClearfy213_PageBase {
19
 
20
  /**
21
  * {@inheritDoc}
@@ -85,9 +85,9 @@ class WUPM_ThemesPage extends Wbcr_FactoryClearfy213_PageBase {
85
  private $themes_update_filters = [];
86
 
87
  /**
88
- * @param Wbcr_Factory421_Plugin $plugin
89
  */
90
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
91
  $this->menu_title = __( 'Themes', 'webcraftic-updates-manager' );
92
 
93
  parent::__construct( $plugin );
@@ -123,7 +123,7 @@ class WUPM_ThemesPage extends Wbcr_FactoryClearfy213_PageBase {
123
  *
124
  * @since 1.0.0
125
  * @return void
126
- * @see FactoryPages421_AdminPage
127
  *
128
  */
129
  public function assets( $scripts, $styles ) {
15
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
16
  * @copyright (c) 2018 Webraftic Ltd
17
  */
18
+ class WUPM_ThemesPage extends Wbcr_FactoryClearfy214_PageBase {
19
 
20
  /**
21
  * {@inheritDoc}
85
  private $themes_update_filters = [];
86
 
87
  /**
88
+ * @param Wbcr_Factory422_Plugin $plugin
89
  */
90
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
91
  $this->menu_title = __( 'Themes', 'webcraftic-updates-manager' );
92
 
93
  parent::__construct( $plugin );
123
  *
124
  * @since 1.0.0
125
  * @return void
126
+ * @see FactoryPages422_AdminPage
127
  *
128
  */
129
  public function assets( $scripts, $styles ) {
components/updates-manager/admin/pages/class-page-updates.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
16
  * @copyright (c) 2018 Webraftic Ltd
17
  */
18
- class WUPM_UpdatesPage extends Wbcr_FactoryClearfy213_PageBase {
19
 
20
  /**
21
  * {@inheritDoc}
@@ -51,9 +51,9 @@ class WUPM_UpdatesPage extends Wbcr_FactoryClearfy213_PageBase {
51
  *
52
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
53
  *
54
- * @param \Wbcr_Factory421_Plugin $plugin
55
  */
56
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
57
  $this->menu_title = __( 'Updates manager', 'webcraftic-updates-manager' );
58
  $this->page_menu_short_description = __( 'Manage all site updates', 'webcraftic-updates-manager' );
59
 
@@ -85,8 +85,8 @@ class WUPM_UpdatesPage extends Wbcr_FactoryClearfy213_PageBase {
85
  *
86
  * @author Alexander Kovalev <alex.kovalevv@gmail.com> *
87
  *
88
- * @param \Wbcr_Factory421_ScriptList $scripts
89
- * @param \Wbcr_Factory421_StyleList $styles
90
  */
91
  public function assets( $scripts, $styles ) {
92
  parent::assets( $scripts, $styles );
15
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
16
  * @copyright (c) 2018 Webraftic Ltd
17
  */
18
+ class WUPM_UpdatesPage extends Wbcr_FactoryClearfy214_PageBase {
19
 
20
  /**
21
  * {@inheritDoc}
51
  *
52
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
53
  *
54
+ * @param \Wbcr_Factory422_Plugin $plugin
55
  */
56
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
57
  $this->menu_title = __( 'Updates manager', 'webcraftic-updates-manager' );
58
  $this->page_menu_short_description = __( 'Manage all site updates', 'webcraftic-updates-manager' );
59
 
85
  *
86
  * @author Alexander Kovalev <alex.kovalevv@gmail.com> *
87
  *
88
+ * @param \Wbcr_Factory422_ScriptList $scripts
89
+ * @param \Wbcr_Factory422_StyleList $styles
90
  */
91
  public function assets( $scripts, $styles ) {
92
  parent::assets( $scripts, $styles );
components/updates-manager/includes/class-plugin.php CHANGED
@@ -10,11 +10,11 @@ if ( ! defined( 'ABSPATH' ) ) {
10
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  */
13
- class WUPM_Plugin extends Wbcr_Factory421_Plugin {
14
 
15
  /**
16
  * @see self::app()
17
- * @var Wbcr_Factory421_Plugin
18
  */
19
  private static $app;
20
 
@@ -57,7 +57,7 @@ class WUPM_Plugin extends Wbcr_Factory421_Plugin {
57
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
58
  * классам.
59
  *
60
- * @return \Wbcr_Factory421_Plugin|\WUPM_Plugin
61
  */
62
  public static function app() {
63
  return self::$app;
10
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
11
  * @copyright (c) 19.02.2018, Webcraftic
12
  */
13
+ class WUPM_Plugin extends Wbcr_Factory422_Plugin {
14
 
15
  /**
16
  * @see self::app()
17
+ * @var Wbcr_Factory422_Plugin
18
  */
19
  private static $app;
20
 
57
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
58
  * классам.
59
  *
60
+ * @return \Wbcr_Factory422_Plugin|\WUPM_Plugin
61
  */
62
  public static function app() {
63
  return self::$app;
components/updates-manager/includes/classes/class-configurate-updates.php CHANGED
@@ -12,7 +12,7 @@ require_once WUPM_PLUGIN_DIR . '/admin/includes/class-plugin-filters.php';
12
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
13
  * @copyright (c) 2017 Webraftic Ltd
14
  */
15
- class WUPM_ConfigUpdates extends Wbcr_FactoryClearfy213_Configurate {
16
 
17
  public function registerActionsAndFilters() {
18
  /**
12
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
13
  * @copyright (c) 2017 Webraftic Ltd
14
  */
15
+ class WUPM_ConfigUpdates extends Wbcr_FactoryClearfy214_Configurate {
16
 
17
  public function registerActionsAndFilters() {
18
  /**
components/updates-manager/migrations/010008.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WUPMUpdate010008 extends Wbcr_Factory421_Update {
8
 
9
  public function install()
10
  {
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WUPMUpdate010008 extends Wbcr_Factory422_Update {
8
 
9
  public function install()
10
  {
components/updates-manager/webcraftic-updates-manager.php CHANGED
@@ -8,7 +8,7 @@
8
  * Text Domain: webcraftic-updates-manager
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
- * Framework Version: FACTORY_421_VERSION
12
  */
13
 
14
  // Exit if accessed directly
@@ -64,15 +64,15 @@ $wupm_plugin_info = array(
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
- array( 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ),
68
- array( 'libs/factory/forms', 'factory_forms_419', 'admin' ),
69
- array( 'libs/factory/pages', 'factory_pages_421', 'admin' ),
70
- array( 'libs/factory/clearfy', 'factory_clearfy_213', 'all' ),
71
- array( 'libs/factory/adverts', 'factory_adverts_103', 'admin')
72
  )
73
  );
74
 
75
- $wupm_compatibility = new Wbcr_Factory421_Requirements( __FILE__, array_merge( $wupm_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WUPM_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
8
  * Text Domain: webcraftic-updates-manager
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
+ * Framework Version: FACTORY_422_VERSION
12
  */
13
 
14
  // Exit if accessed directly
64
 
65
  // FRAMEWORK MODULES
66
  'load_factory_modules' => array(
67
+ array( 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ),
68
+ array( 'libs/factory/forms', 'factory_forms_420', 'admin' ),
69
+ array( 'libs/factory/pages', 'factory_pages_422', 'admin' ),
70
+ array( 'libs/factory/clearfy', 'factory_clearfy_214', 'all' ),
71
+ array( 'libs/factory/adverts', 'factory_adverts_104', 'admin')
72
  )
73
  );
74
 
75
+ $wupm_compatibility = new Wbcr_Factory422_Requirements( __FILE__, array_merge( $wupm_plugin_info, array(
76
  'plugin_already_activate' => defined( 'WUPM_PLUGIN_ACTIVE' ),
77
  'required_php_version' => '5.4',
78
  'required_wp_version' => '4.2.0',
includes/boot.php CHANGED
@@ -54,7 +54,7 @@ function wbcr_clr_admin_bar_menu( $wp_admin_bar ) {
54
  * @since 1.1.3 - добавлен
55
  * @since 1.1.4 - является устаревшим
56
  */
57
- $menu_items = wbcr_factory_421_apply_filters_deprecated( 'wbcr_clearfy_admin_bar_menu_items', [ $menu_items ], '1.4.0', 'wbcr/clearfy/adminbar_menu_items' );
58
 
59
  /**
60
  * @since 1.1.3 - добавлен
@@ -65,7 +65,7 @@ function wbcr_clr_admin_bar_menu( $wp_admin_bar ) {
65
  $menu_items['clearfy-docs'] = [
66
  'id' => 'clearfy-docs',
67
  'title' => '<span class="dashicons dashicons-book"></span> ' . __( 'Documentation', 'gonzales' ),
68
- 'href' => WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'docs', 'adminbar_menu' )
69
  ];
70
 
71
  $menu_items['clearfy-rating'] = [
@@ -76,14 +76,14 @@ function wbcr_clr_admin_bar_menu( $wp_admin_bar ) {
76
  $menu_items['clearfy-support'] = [
77
  'id' => 'clearfy-rating',
78
  'title' => '<span class="dashicons dashicons-sos"></span> ' . __( 'Getting started free support', 'gonzales' ),
79
- 'href' => WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'support', 'adminbar_menu' )
80
  ];
81
 
82
  if ( ! WCL_Plugin::app()->premium->is_activate() ) {
83
  $menu_items['clearfy-premium'] = [
84
  'id' => 'clearfy-premium',
85
  'title' => '<span class="dashicons dashicons-star-filled"></span> ' . __( 'Upgrade to premium', 'gonzales' ),
86
- 'href' => WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'pricing', 'adminbar_menu' )
87
  ];
88
  }
89
 
54
  * @since 1.1.3 - добавлен
55
  * @since 1.1.4 - является устаревшим
56
  */
57
+ $menu_items = wbcr_factory_422_apply_filters_deprecated( 'wbcr_clearfy_admin_bar_menu_items', [ $menu_items ], '1.4.0', 'wbcr/clearfy/adminbar_menu_items' );
58
 
59
  /**
60
  * @since 1.1.3 - добавлен
65
  $menu_items['clearfy-docs'] = [
66
  'id' => 'clearfy-docs',
67
  'title' => '<span class="dashicons dashicons-book"></span> ' . __( 'Documentation', 'gonzales' ),
68
+ 'href' => WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'docs', 'adminbar_menu' )
69
  ];
70
 
71
  $menu_items['clearfy-rating'] = [
76
  $menu_items['clearfy-support'] = [
77
  'id' => 'clearfy-rating',
78
  'title' => '<span class="dashicons dashicons-sos"></span> ' . __( 'Getting started free support', 'gonzales' ),
79
+ 'href' => WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'support', 'adminbar_menu' )
80
  ];
81
 
82
  if ( ! WCL_Plugin::app()->premium->is_activate() ) {
83
  $menu_items['clearfy-premium'] = [
84
  'id' => 'clearfy-premium',
85
  'title' => '<span class="dashicons dashicons-star-filled"></span> ' . __( 'Upgrade to premium', 'gonzales' ),
86
+ 'href' => WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( WCL_Plugin::app()->getPluginName(), 'pricing', 'adminbar_menu' )
87
  ];
88
  }
89
 
includes/class.plugin.php CHANGED
@@ -12,11 +12,11 @@ if ( ! defined( 'ABSPATH' ) ) {
12
  exit;
13
  }
14
 
15
- class WCL_Plugin extends Wbcr_Factory421_Plugin {
16
 
17
  /**
18
  * @see self::app()
19
- * @var Wbcr_Factory421_Plugin
20
  */
21
  private static $app;
22
 
@@ -70,7 +70,7 @@ class WCL_Plugin extends Wbcr_Factory421_Plugin {
70
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
71
  * классам.
72
  *
73
- * @return \Wbcr_Factory421_Plugin|\WCL_Plugin
74
  */
75
  public static function app() {
76
  return self::$app;
@@ -113,6 +113,10 @@ class WCL_Plugin extends Wbcr_Factory421_Plugin {
113
  }
114
  }
115
 
 
 
 
 
116
  return $load_components;
117
  }
118
 
12
  exit;
13
  }
14
 
15
+ class WCL_Plugin extends Wbcr_Factory422_Plugin {
16
 
17
  /**
18
  * @see self::app()
19
+ * @var Wbcr_Factory422_Plugin
20
  */
21
  private static $app;
22
 
70
  * Используется для получения настроек плагина, информации о плагине, для доступа к вспомогательным
71
  * классам.
72
  *
73
+ * @return \Wbcr_Factory422_Plugin|\WCL_Plugin
74
  */
75
  public static function app() {
76
  return self::$app;
113
  }
114
  }
115
 
116
+ if ( is_plugin_active( 'gonzales/gonzales.php' ) ) {
117
+ unset( $load_components['assets_manager'] );
118
+ }
119
+
120
  return $load_components;
121
  }
122
 
includes/classes/class.configurate-advanced.php CHANGED
@@ -11,7 +11,7 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  exit;
12
  }
13
 
14
- class WCL_ConfigAdvanced extends Wbcr_FactoryClearfy213_Configurate {
15
 
16
  /**
17
  * @param WCL_Plugin $plugin
11
  exit;
12
  }
13
 
14
+ class WCL_ConfigAdvanced extends Wbcr_FactoryClearfy214_Configurate {
15
 
16
  /**
17
  * @param WCL_Plugin $plugin
includes/classes/class.configurate-google-performance.php CHANGED
@@ -12,7 +12,7 @@ if ( ! defined( 'ABSPATH' ) ) {
12
  exit;
13
  }
14
 
15
- class WCL_ConfigGooglePerformance extends Wbcr_FactoryClearfy213_Configurate {
16
 
17
  /**
18
  * @param WCL_Plugin $plugin
12
  exit;
13
  }
14
 
15
+ class WCL_ConfigGooglePerformance extends Wbcr_FactoryClearfy214_Configurate {
16
 
17
  /**
18
  * @param WCL_Plugin $plugin
includes/classes/class.configurate-performance.php CHANGED
@@ -12,7 +12,7 @@ if ( ! defined( 'ABSPATH' ) ) {
12
  exit;
13
  }
14
 
15
- class WCL_ConfigPerformance extends Wbcr_FactoryClearfy213_Configurate {
16
 
17
  /**
18
  * @param WCL_Plugin $plugin
12
  exit;
13
  }
14
 
15
+ class WCL_ConfigPerformance extends Wbcr_FactoryClearfy214_Configurate {
16
 
17
  /**
18
  * @param WCL_Plugin $plugin
includes/classes/class.configurate-privacy.php CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  exit;
14
  }
15
 
16
- class WCL_ConfigPrivacy extends Wbcr_FactoryClearfy213_Configurate {
17
 
18
  /**
19
  * @param WCL_Plugin $plugin
13
  exit;
14
  }
15
 
16
+ class WCL_ConfigPrivacy extends Wbcr_FactoryClearfy214_Configurate {
17
 
18
  /**
19
  * @param WCL_Plugin $plugin
includes/classes/class.configurate-security.php CHANGED
@@ -11,7 +11,7 @@
11
  exit;
12
  }
13
 
14
- class WCL_ConfigSecurity extends Wbcr_FactoryClearfy213_Configurate {
15
 
16
  /**
17
  * @param WCL_Plugin $plugin
11
  exit;
12
  }
13
 
14
+ class WCL_ConfigSecurity extends Wbcr_FactoryClearfy214_Configurate {
15
 
16
  /**
17
  * @param WCL_Plugin $plugin
includes/classes/class.configurate-seo.php CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  exit;
14
  }
15
 
16
- class WCL_ConfigSeo extends Wbcr_FactoryClearfy213_Configurate {
17
 
18
  /**
19
  * @param WCL_Plugin $plugin
13
  exit;
14
  }
15
 
16
+ class WCL_ConfigSeo extends Wbcr_FactoryClearfy214_Configurate {
17
 
18
  /**
19
  * @param WCL_Plugin $plugin
libs/factory/adverts/boot.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- use WBCR\Factory_Adverts_103\Base;
4
 
5
  /**
6
  * Factory Adverts
@@ -20,31 +20,31 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  exit;
21
  }
22
 
23
- if ( defined( 'FACTORY_ADVERTS_103_LOADED' ) || ( defined( 'FACTORY_ADVERTS_BLOCK' ) && FACTORY_ADVERTS_BLOCK ) ) {
24
  return;
25
  }
26
 
27
  # Устанавливаем константу, что модуль уже загружен
28
- define( 'FACTORY_ADVERTS_103_LOADED', true );
29
 
30
  # Устанавливаем версию модуля
31
- define( 'FACTORY_ADVERTS_103_VERSION', '1.0.3' );
32
 
33
  # Регистрируем тектовый домен, для интернализации интерфейса модуля
34
- load_plugin_textdomain( 'wbcr_factory_adverts_103', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
35
 
36
  # Устанавливаем директорию модуля
37
- define( 'FACTORY_ADVERTS_103_DIR', dirname( __FILE__ ) );
38
 
39
  # Устанавливаем url модуля
40
- define( 'FACTORY_ADVERTS_103_URL', plugins_url( null, __FILE__ ) );
41
 
42
- require_once( FACTORY_ADVERTS_103_DIR . '/includes/class-rest-request.php' );
43
- require_once( FACTORY_ADVERTS_103_DIR . '/includes/class-base.php' );
44
 
45
  /**
46
- * @param Wbcr_Factory421_Plugin $plugin
47
  */
48
- add_action( 'wbcr_factory_adverts_103_plugin_created', function ( $plugin ) {
49
- $plugin->set_adverts_manager( "WBCR\Factory_Adverts_103\Base" );
50
  } );
1
  <?php
2
 
3
+ use WBCR\Factory_Adverts_104\Base;
4
 
5
  /**
6
  * Factory Adverts
20
  exit;
21
  }
22
 
23
+ if ( defined( 'FACTORY_ADVERTS_104_LOADED' ) || ( defined( 'FACTORY_ADVERTS_BLOCK' ) && FACTORY_ADVERTS_BLOCK ) ) {
24
  return;
25
  }
26
 
27
  # Устанавливаем константу, что модуль уже загружен
28
+ define( 'FACTORY_ADVERTS_104_LOADED', true );
29
 
30
  # Устанавливаем версию модуля
31
+ define( 'FACTORY_ADVERTS_104_VERSION', '1.0.4' );
32
 
33
  # Регистрируем тектовый домен, для интернализации интерфейса модуля
34
+ load_plugin_textdomain( 'wbcr_factory_adverts_104', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
35
 
36
  # Устанавливаем директорию модуля
37
+ define( 'FACTORY_ADVERTS_104_DIR', dirname( __FILE__ ) );
38
 
39
  # Устанавливаем url модуля
40
+ define( 'FACTORY_ADVERTS_104_URL', plugins_url( null, __FILE__ ) );
41
 
42
+ require_once( FACTORY_ADVERTS_104_DIR . '/includes/class-rest-request.php' );
43
+ require_once( FACTORY_ADVERTS_104_DIR . '/includes/class-base.php' );
44
 
45
  /**
46
+ * @param Wbcr_Factory422_Plugin $plugin
47
  */
48
+ add_action( 'wbcr_factory_adverts_104_plugin_created', function ( $plugin ) {
49
+ $plugin->set_adverts_manager( "WBCR\Factory_Adverts_104\Base" );
50
  } );
libs/factory/adverts/includes/class-base.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Adverts_103;
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_Factory421_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_103\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_Factory421_Plugin $plugin
86
  */
87
- public function __construct( \Wbcr_Factory421_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_103_DIR . '/includes/class-dashboard-widget.php';
261
  new Dashboard_Widget( $this->plugin, $content );
262
  }
263
  }
1
  <?php
2
 
3
+ namespace WBCR\Factory_Adverts_104;
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_Factory422_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_104\Creative_Motion_API
57
  */
58
  private $api;
59
 
82
  *
83
  * @since 1.0.0 Added
84
  *
85
+ * @param \Wbcr_Factory422_Plugin $plugin
86
  */
87
+ public function __construct( \Wbcr_Factory422_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_104_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_103;
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_Factory421_Plugin
39
  */
40
  private $plugin;
41
 
@@ -46,10 +46,10 @@ class Dashboard_Widget {
46
  *
47
  * @since 1.0.0 Added
48
  *
49
- * @param \Wbcr_Factory421_Plugin $plugin
50
  * @param string $content
51
  */
52
- public function __construct( \Wbcr_Factory421_Plugin $plugin, $content ) {
53
 
54
  $this->plugin = $plugin;
55
  $this->content = $content;
1
  <?php
2
 
3
+ namespace WBCR\Factory_Adverts_104;
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_Factory422_Plugin
39
  */
40
  private $plugin;
41
 
46
  *
47
  * @since 1.0.0 Added
48
  *
49
+ * @param \Wbcr_Factory422_Plugin $plugin
50
  * @param string $content
51
  */
52
+ public function __construct( \Wbcr_Factory422_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_103;
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_Factory421_Plugin
69
  */
70
  private $plugin;
71
 
@@ -77,9 +77,9 @@ class Creative_Motion_API {
77
  *
78
  * @since 1.0.0 Added
79
  *
80
- * @param \Wbcr_Factory421_Plugin $plugin_name
81
  */
82
- public function __construct( \Wbcr_Factory421_Plugin $plugin ) {
83
  $this->plugin = $plugin;
84
  }
85
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Adverts_104;
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_Factory422_Plugin
69
  */
70
  private $plugin;
71
 
77
  *
78
  * @since 1.0.0 Added
79
  *
80
+ * @param \Wbcr_Factory422_Plugin $plugin_name
81
  */
82
+ public function __construct( \Wbcr_Factory422_Plugin $plugin ) {
83
  $this->plugin = $plugin;
84
  }
85
 
libs/factory/adverts/langs/{wbcr_factory_adverts_103-ru_RU.mo → wbcr_factory_adverts_104-ru_RU.mo} RENAMED
File without changes
libs/factory/adverts/langs/{wbcr_factory_adverts_103-ru_RU.po → wbcr_factory_adverts_104-ru_RU.po} RENAMED
File without changes
libs/factory/bootstrap/assets/css-min/bootstrap.accordion.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .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-422 .factory-accordion>h3{border-bottom:1px solid #DDD;cursor:pointer;padding:8px 15px;margin:0}.factory-bootstrap-422 .factory-accordion>div{display:none;margin:0;border-bottom:1px solid #DDD}.factory-bootstrap-422 .factory-accordion-item{display:none}.factory-bootstrap-422 .inner-factory-accordion-item{padding:10px 0}.factory-bootstrap-422 .factory-accordion>h3.active:hover{cursor:default}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .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-423 .factory-accordion>h3{border-bottom:1px solid #DDD;cursor:pointer;padding:8px 15px;margin:0}.factory-bootstrap-423 .factory-accordion>div{display:none;margin:0;border-bottom:1px solid #DDD}.factory-bootstrap-423 .factory-accordion-item{display:none}.factory-bootstrap-423 .inner-factory-accordion-item{padding:10px 0}.factory-bootstrap-423 .factory-accordion>h3.active:hover{cursor:default}
libs/factory/bootstrap/assets/css-min/bootstrap.blue.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .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-422 .btn-primary:focus,.factory-bootstrap-422 .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-422 .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-422 .btn-primary:disabled,.factory-bootstrap-422 .btn-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.factory-bootstrap-422 .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-422 .pagination>.active>a,.factory-bootstrap-422 .pagination>.active>a:focus,.factory-bootstrap-422 .pagination>.active>a:hover,.factory-bootstrap-422 .pagination>.active>span,.factory-bootstrap-422 .pagination>.active>span:focus,.factory-bootstrap-422 .pagination>.active>span:hover{background-color:#e1a948;border-color:#d39323}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .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-423 .btn-primary:focus,.factory-bootstrap-423 .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-423 .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-423 .btn-primary:disabled,.factory-bootstrap-423 .btn-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.factory-bootstrap-423 .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-423 .pagination>.active>a,.factory-bootstrap-423 .pagination>.active>a:focus,.factory-bootstrap-423 .pagination>.active>a:hover,.factory-bootstrap-423 .pagination>.active>span,.factory-bootstrap-423 .pagination>.active>span:focus,.factory-bootstrap-423 .pagination>.active>span:hover{background-color:#e1a948;border-color:#d39323}
libs/factory/bootstrap/assets/css-min/bootstrap.coffee.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .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-422 .btn-primary:focus,.factory-bootstrap-422 .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-422 .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-422 .btn-primary:disabled,.factory-bootstrap-422 .btn-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.factory-bootstrap-422 .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-422 .pagination>.active>a,.factory-bootstrap-422 .pagination>.active>a:focus,.factory-bootstrap-422 .pagination>.active>a:hover,.factory-bootstrap-422 .pagination>.active>span,.factory-bootstrap-422 .pagination>.active>span:focus,.factory-bootstrap-422 .pagination>.active>span:hover{background-color:#c7a589;border-color:#b78a66}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .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-423 .btn-primary:focus,.factory-bootstrap-423 .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-423 .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-423 .btn-primary:disabled,.factory-bootstrap-423 .btn-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.factory-bootstrap-423 .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-423 .pagination>.active>a,.factory-bootstrap-423 .pagination>.active>a:focus,.factory-bootstrap-423 .pagination>.active>a:hover,.factory-bootstrap-423 .pagination>.active>span,.factory-bootstrap-423 .pagination>.active>span:focus,.factory-bootstrap-423 .pagination>.active>span:hover{background-color:#c7a589;border-color:#b78a66}
libs/factory/bootstrap/assets/css-min/bootstrap.core.min.css CHANGED
@@ -8,7 +8,7 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 article,.factory-bootstrap-422 aside,.factory-bootstrap-422 details,.factory-bootstrap-422 figcaption,.factory-bootstrap-422 figure,.factory-bootstrap-422 footer,.factory-bootstrap-422 header,.factory-bootstrap-422 hgroup,.factory-bootstrap-422 main,.factory-bootstrap-422 nav,.factory-bootstrap-422 section,.factory-bootstrap-422 summary{display:block}.factory-bootstrap-422 audio,.factory-bootstrap-422 canvas,.factory-bootstrap-422 video{display:inline-block}.factory-bootstrap-422 audio:not([controls]){display:none;height:0}.factory-bootstrap-422 [hidden],.factory-bootstrap-422 template{display:none}.factory-bootstrap-422 body{margin:0}.factory-bootstrap-422 a{background:0 0}.factory-bootstrap-422 a:focus{outline:thin dotted}.factory-bootstrap-422 a:active,.factory-bootstrap-422 a:hover{outline:0}.factory-bootstrap-422 h1{margin:.67em 0}.factory-bootstrap-422 b,.factory-bootstrap-422 strong{font-weight:700}.factory-bootstrap-422 dfn{font-style:italic}.factory-bootstrap-422 hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-422 mark{color:#000;background:#ff0}.factory-bootstrap-422 code,.factory-bootstrap-422 kbd,.factory-bootstrap-422 pre,.factory-bootstrap-422 samp{font-size:1em}.factory-bootstrap-422 pre{white-space:pre-wrap}.factory-bootstrap-422 q{quotes:"\201C" "\201D" "\2018" "\2019"}.factory-bootstrap-422 sub,.factory-bootstrap-422 sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.factory-bootstrap-422 sup{top:-.5em}.factory-bootstrap-422 sub{bottom:-.25em}.factory-bootstrap-422 img{border:0}.factory-bootstrap-422 svg:not(:root){overflow:hidden}.factory-bootstrap-422 figure{margin:0}.factory-bootstrap-422 button,.factory-bootstrap-422 input,.factory-bootstrap-422 select,.factory-bootstrap-422 textarea{margin:0}.factory-bootstrap-422 button,.factory-bootstrap-422 select{text-transform:none}.factory-bootstrap-422 select{padding-right:4px!important}.factory-bootstrap-422 button,.factory-bootstrap-422 input[type=reset],.factory-bootstrap-422 input[type=submit],html .factory-bootstrap-422 input[type=button]{cursor:pointer;-webkit-appearance:button}.factory-bootstrap-422 button[disabled],html .factory-bootstrap-422 input[disabled]{cursor:default}.factory-bootstrap-422 input[type=checkbox],.factory-bootstrap-422 input[type=radio]{padding:0;box-sizing:border-box}.factory-bootstrap-422 input[type=search]{-webkit-appearance:textfield}.factory-bootstrap-422 input[type=search]::-webkit-search-cancel-button,.factory-bootstrap-422 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.factory-bootstrap-422 button::-moz-focus-inner,.factory-bootstrap-422 input::-moz-focus-inner{padding:0;border:0}.factory-bootstrap-422 textarea{overflow:auto;vertical-align:top}.factory-bootstrap-422 table{border-collapse:collapse;border-spacing:0}@media print{.factory-bootstrap-422 *{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}.factory-bootstrap-422 a,.factory-bootstrap-422 a:visited{text-decoration:underline}.factory-bootstrap-422 a[href]:after{content:" (" attr(href) ")"}.factory-bootstrap-422 abbr[title]:after{content:" (" attr(title) ")"}.factory-bootstrap-422 a[href^="javascript:"]:after,.factory-bootstrap-422 a[href^="#"]:after{content:""}.factory-bootstrap-422 blockquote,.factory-bootstrap-422 pre{border:1px solid #999;page-break-inside:avoid}.factory-bootstrap-422 thead{display:table-header-group}.factory-bootstrap-422 img,.factory-bootstrap-422 tr{page-break-inside:avoid}.factory-bootstrap-422 img{max-width:100%!important}@page{margin:2cm .5cm}.factory-bootstrap-422 h2,.factory-bootstrap-422 h3,.factory-bootstrap-422 p{orphans:3;widows:3}.factory-bootstrap-422 h2,.factory-bootstrap-422 h3{page-break-after:avoid}.factory-bootstrap-422 select{background:#fff!important}.factory-bootstrap-422 .navbar{display:none}.factory-bootstrap-422 .table td,.factory-bootstrap-422 .table th{background-color:#fff!important}.factory-bootstrap-422 .btn>.caret,.factory-bootstrap-422 .dropup>.btn>.caret{border-top-color:#000!important}.factory-bootstrap-422 .label{border:1px solid #000}.factory-bootstrap-422 .table{border-collapse:collapse!important}.factory-bootstrap-422 .table-bordered td,.factory-bootstrap-422 .table-bordered th{border:1px solid #ddd!important}}.factory-bootstrap-422 *,.factory-bootstrap-422 :after,.factory-bootstrap-422 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html .factory-bootstrap-422{-webkit-tap-highlight-color:rgba(0,0,0,0)}.factory-bootstrap-422 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.factory-bootstrap-422 button,.factory-bootstrap-422 input,.factory-bootstrap-422 select,.factory-bootstrap-422 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.factory-bootstrap-422 img{vertical-align:middle}.factory-bootstrap-422 .img-responsive{display:block;height:auto;max-width:100%}.factory-bootstrap-422 .img-rounded{border-radius:6px}.factory-bootstrap-422 .img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.factory-bootstrap-422 .img-circle{border-radius:50%}.factory-bootstrap-422 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.factory-bootstrap-422 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.factory-bootstrap-422 .h1,.factory-bootstrap-422 .h2,.factory-bootstrap-422 .h3,.factory-bootstrap-422 .h4,.factory-bootstrap-422 .h5,.factory-bootstrap-422 .h6,.factory-bootstrap-422 h1,.factory-bootstrap-422 h2,.factory-bootstrap-422 h3,.factory-bootstrap-422 h4,.factory-bootstrap-422 h5,.factory-bootstrap-422 h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.factory-bootstrap-422 .h1 .small,.factory-bootstrap-422 .h1 small,.factory-bootstrap-422 .h2 .small,.factory-bootstrap-422 .h2 small,.factory-bootstrap-422 .h3 .small,.factory-bootstrap-422 .h3 small,.factory-bootstrap-422 .h4 .small,.factory-bootstrap-422 .h4 small,.factory-bootstrap-422 .h5 .small,.factory-bootstrap-422 .h5 small,.factory-bootstrap-422 .h6 .small,.factory-bootstrap-422 .h6 small,.factory-bootstrap-422 h1 .small,.factory-bootstrap-422 h1 small,.factory-bootstrap-422 h2 .small,.factory-bootstrap-422 h2 small,.factory-bootstrap-422 h3 .small,.factory-bootstrap-422 h3 small,.factory-bootstrap-422 h4 .small,.factory-bootstrap-422 h4 small,.factory-bootstrap-422 h5 .small,.factory-bootstrap-422 h5 small,.factory-bootstrap-422 h6 .small,.factory-bootstrap-422 h6 small{font-weight:400;line-height:1;color:#999}.factory-bootstrap-422 h1,.factory-bootstrap-422 h2,.factory-bootstrap-422 h3{margin-top:20px;margin-bottom:10px}.factory-bootstrap-422 h1 .small,.factory-bootstrap-422 h1 small,.factory-bootstrap-422 h2 .small,.factory-bootstrap-422 h2 small,.factory-bootstrap-422 h3 .small,.factory-bootstrap-422 h3 small{font-size:65%}.factory-bootstrap-422 h4,.factory-bootstrap-422 h5,.factory-bootstrap-422 h6{margin-top:10px;margin-bottom:10px}.factory-bootstrap-422 h4 .small,.factory-bootstrap-422 h4 small,.factory-bootstrap-422 h5 .small,.factory-bootstrap-422 h5 small,.factory-bootstrap-422 h6 .small,.factory-bootstrap-422 h6 small{font-size:75%}.factory-bootstrap-422 .h1,.factory-bootstrap-422 h1{font-size:36px}.factory-bootstrap-422 .h2,.factory-bootstrap-422 h2{font-size:30px}.factory-bootstrap-422 .h3,.factory-bootstrap-422 h3{font-size:24px}.factory-bootstrap-422 .h4,.factory-bootstrap-422 h4{font-size:18px}.factory-bootstrap-422 .h5,.factory-bootstrap-422 h5{font-size:14px}.factory-bootstrap-422 .h6,.factory-bootstrap-422 h6{font-size:12px}.factory-bootstrap-422 p{margin:0 0 10px}.factory-bootstrap-422 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.factory-bootstrap-422 .small,.factory-bootstrap-422 small{font-size:85%}.factory-bootstrap-422 cite{font-style:normal}.factory-bootstrap-422 .text-muted{color:#999}.factory-bootstrap-422 .text-primary{color:#428bca}.factory-bootstrap-422 .text-primary:hover{color:#3071a9}.factory-bootstrap-422 .text-warning{color:#8a6d3b}.factory-bootstrap-422 .text-warning:hover{color:#66512c}.factory-bootstrap-422 .text-danger{color:#a94442}.factory-bootstrap-422 .text-danger:hover{color:#843534}.factory-bootstrap-422 .text-success{color:#3c763d}.factory-bootstrap-422 .text-success:hover{color:#2b542c}.factory-bootstrap-422 .text-info{color:#31708f}.factory-bootstrap-422 .text-info:hover{color:#245269}.factory-bootstrap-422 .text-left{text-align:left}.factory-bootstrap-422 .text-right{text-align:right}.factory-bootstrap-422 .text-center{text-align:center}.factory-bootstrap-422 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.factory-bootstrap-422 ol,.factory-bootstrap-422 ul{margin-top:0;margin-bottom:10px}.factory-bootstrap-422 ol ol,.factory-bootstrap-422 ol ul,.factory-bootstrap-422 ul ol,.factory-bootstrap-422 ul ul{margin-bottom:0}.factory-bootstrap-422 .list-inline,.factory-bootstrap-422 .list-unstyled{padding-left:0;list-style:none}.factory-bootstrap-422 .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.factory-bootstrap-422 .list-inline>li:first-child{padding-left:0}.factory-bootstrap-422 dl{margin-top:0;margin-bottom:20px}.factory-bootstrap-422 dd,.factory-bootstrap-422 dt{line-height:1.428571429}.factory-bootstrap-422 dt{font-weight:700}.factory-bootstrap-422 dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:after,.dl-horizontal dd:before{display:table;content:" "}.dl-horizontal dd:after{clear:both}}.factory-bootstrap-422 abbr[data-original-title],.factory-bootstrap-422 abbr[title]{cursor:help;border-bottom:1px dotted #999}.factory-bootstrap-422 .initialism{font-size:90%;text-transform:uppercase}.factory-bootstrap-422 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.factory-bootstrap-422 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.factory-bootstrap-422 blockquote p:last-child{margin-bottom:0}.factory-bootstrap-422 blockquote .small,.factory-bootstrap-422 blockquote small{display:block;line-height:1.428571429;color:#999}.factory-bootstrap-422 blockquote .small:before,.factory-bootstrap-422 blockquote small:before{content:'\2014 \00A0'}.factory-bootstrap-422 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.factory-bootstrap-422 blockquote.pull-right .small,.factory-bootstrap-422 blockquote.pull-right p,.factory-bootstrap-422 blockquote.pull-right small{text-align:right}.factory-bootstrap-422 blockquote.pull-right .small:before,.factory-bootstrap-422 blockquote.pull-right small:before{content:''}.factory-bootstrap-422 blockquote.pull-right .small:after,.factory-bootstrap-422 blockquote.pull-right small:after{content:'\00A0 \2014'}.factory-bootstrap-422 blockquote:after,.factory-bootstrap-422 blockquote:before{content:""}.factory-bootstrap-422 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.factory-bootstrap-422 code,.factory-bootstrap-422 kbd,.factory-bootstrap-422 pre,.factory-bootstrap-422 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.factory-bootstrap-422 code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}.factory-bootstrap-422 pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.factory-bootstrap-422 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.factory-bootstrap-422 .pre-scrollable{max-height:340px;overflow-y:scroll}.factory-bootstrap-422 .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.factory-bootstrap-422 .container:after,.factory-bootstrap-422 .container:before{display:table;content:" "}.factory-bootstrap-422 .container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.factory-bootstrap-422 .row{margin-right:-15px;margin-left:-15px}.factory-bootstrap-422 .row:after,.factory-bootstrap-422 .row:before{display:table;content:" "}.factory-bootstrap-422 .row:after{clear:both}.factory-bootstrap-422 .col-lg-1,.factory-bootstrap-422 .col-lg-10,.factory-bootstrap-422 .col-lg-11,.factory-bootstrap-422 .col-lg-12,.factory-bootstrap-422 .col-lg-2,.factory-bootstrap-422 .col-lg-3,.factory-bootstrap-422 .col-lg-4,.factory-bootstrap-422 .col-lg-5,.factory-bootstrap-422 .col-lg-6,.factory-bootstrap-422 .col-lg-7,.factory-bootstrap-422 .col-lg-8,.factory-bootstrap-422 .col-lg-9,.factory-bootstrap-422 .col-md-1,.factory-bootstrap-422 .col-md-10,.factory-bootstrap-422 .col-md-11,.factory-bootstrap-422 .col-md-12,.factory-bootstrap-422 .col-md-2,.factory-bootstrap-422 .col-md-3,.factory-bootstrap-422 .col-md-4,.factory-bootstrap-422 .col-md-5,.factory-bootstrap-422 .col-md-6,.factory-bootstrap-422 .col-md-7,.factory-bootstrap-422 .col-md-8,.factory-bootstrap-422 .col-md-9,.factory-bootstrap-422 .col-sm-1,.factory-bootstrap-422 .col-sm-10,.factory-bootstrap-422 .col-sm-11,.factory-bootstrap-422 .col-sm-12,.factory-bootstrap-422 .col-sm-2,.factory-bootstrap-422 .col-sm-3,.factory-bootstrap-422 .col-sm-4,.factory-bootstrap-422 .col-sm-5,.factory-bootstrap-422 .col-sm-6,.factory-bootstrap-422 .col-sm-7,.factory-bootstrap-422 .col-sm-8,.factory-bootstrap-422 .col-sm-9,.factory-bootstrap-422 .col-xs-1,.factory-bootstrap-422 .col-xs-10,.factory-bootstrap-422 .col-xs-11,.factory-bootstrap-422 .col-xs-12,.factory-bootstrap-422 .col-xs-2,.factory-bootstrap-422 .col-xs-3,.factory-bootstrap-422 .col-xs-4,.factory-bootstrap-422 .col-xs-5,.factory-bootstrap-422 .col-xs-6,.factory-bootstrap-422 .col-xs-7,.factory-bootstrap-422 .col-xs-8,.factory-bootstrap-422 .col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.factory-bootstrap-422 .col-xs-1,.factory-bootstrap-422 .col-xs-10,.factory-bootstrap-422 .col-xs-11,.factory-bootstrap-422 .col-xs-12,.factory-bootstrap-422 .col-xs-2,.factory-bootstrap-422 .col-xs-3,.factory-bootstrap-422 .col-xs-4,.factory-bootstrap-422 .col-xs-5,.factory-bootstrap-422 .col-xs-6,.factory-bootstrap-422 .col-xs-7,.factory-bootstrap-422 .col-xs-8,.factory-bootstrap-422 .col-xs-9{float:left}.factory-bootstrap-422 .col-xs-12{width:100%}.factory-bootstrap-422 .col-xs-11{width:91.66666666666666%}.factory-bootstrap-422 .col-xs-10{width:83.33333333333334%}.factory-bootstrap-422 .col-xs-9{width:75%}.factory-bootstrap-422 .col-xs-8{width:66.66666666666666%}.factory-bootstrap-422 .col-xs-7{width:58.333333333333336%}.factory-bootstrap-422 .col-xs-6{width:50%}.factory-bootstrap-422 .col-xs-5{width:41.66666666666667%}.factory-bootstrap-422 .col-xs-4{width:33.33333333333333%}.factory-bootstrap-422 .col-xs-3{width:25%}.factory-bootstrap-422 .col-xs-2{width:16.666666666666664%}.factory-bootstrap-422 .col-xs-1{width:8.333333333333332%}.factory-bootstrap-422 .col-xs-pull-12{right:100%}.factory-bootstrap-422 .col-xs-pull-11{right:91.66666666666666%}.factory-bootstrap-422 .col-xs-pull-10{right:83.33333333333334%}.factory-bootstrap-422 .col-xs-pull-9{right:75%}.factory-bootstrap-422 .col-xs-pull-8{right:66.66666666666666%}.factory-bootstrap-422 .col-xs-pull-7{right:58.333333333333336%}.factory-bootstrap-422 .col-xs-pull-6{right:50%}.factory-bootstrap-422 .col-xs-pull-5{right:41.66666666666667%}.factory-bootstrap-422 .col-xs-pull-4{right:33.33333333333333%}.factory-bootstrap-422 .col-xs-pull-3{right:25%}.factory-bootstrap-422 .col-xs-pull-2{right:16.666666666666664%}.factory-bootstrap-422 .col-xs-pull-1{right:8.333333333333332%}.factory-bootstrap-422 .col-xs-pull-0{right:0}.factory-bootstrap-422 .col-xs-push-12{left:100%}.factory-bootstrap-422 .col-xs-push-11{left:91.66666666666666%}.factory-bootstrap-422 .col-xs-push-10{left:83.33333333333334%}.factory-bootstrap-422 .col-xs-push-9{left:75%}.factory-bootstrap-422 .col-xs-push-8{left:66.66666666666666%}.factory-bootstrap-422 .col-xs-push-7{left:58.333333333333336%}.factory-bootstrap-422 .col-xs-push-6{left:50%}.factory-bootstrap-422 .col-xs-push-5{left:41.66666666666667%}.factory-bootstrap-422 .col-xs-push-4{left:33.33333333333333%}.factory-bootstrap-422 .col-xs-push-3{left:25%}.factory-bootstrap-422 .col-xs-push-2{left:16.666666666666664%}.factory-bootstrap-422 .col-xs-push-1{left:8.333333333333332%}.factory-bootstrap-422 .col-xs-push-0{left:0}.factory-bootstrap-422 .col-xs-offset-12{margin-left:100%}.factory-bootstrap-422 .col-xs-offset-11{margin-left:91.66666666666666%}.factory-bootstrap-422 .col-xs-offset-10{margin-left:83.33333333333334%}.factory-bootstrap-422 .col-xs-offset-9{margin-left:75%}.factory-bootstrap-422 .col-xs-offset-8{margin-left:66.66666666666666%}.factory-bootstrap-422 .col-xs-offset-7{margin-left:58.333333333333336%}.factory-bootstrap-422 .col-xs-offset-6{margin-left:50%}.factory-bootstrap-422 .col-xs-offset-5{margin-left:41.66666666666667%}.factory-bootstrap-422 .col-xs-offset-4{margin-left:33.33333333333333%}.factory-bootstrap-422 .col-xs-offset-3{margin-left:25%}.factory-bootstrap-422 .col-xs-offset-2{margin-left:16.666666666666664%}.factory-bootstrap-422 .col-xs-offset-1{margin-left:8.333333333333332%}.factory-bootstrap-422 .col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}.factory-bootstrap-422 table{max-width:100%;background-color:transparent}.factory-bootstrap-422 th{text-align:left}.factory-bootstrap-422 .table{width:100%;margin-bottom:20px}.factory-bootstrap-422 .table>tbody>tr>td,.factory-bootstrap-422 .table>tbody>tr>th,.factory-bootstrap-422 .table>tfoot>tr>td,.factory-bootstrap-422 .table>tfoot>tr>th,.factory-bootstrap-422 .table>thead>tr>td,.factory-bootstrap-422 .table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.factory-bootstrap-422 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.factory-bootstrap-422 .table>caption+thead>tr:first-child>td,.factory-bootstrap-422 .table>caption+thead>tr:first-child>th,.factory-bootstrap-422 .table>colgroup+thead>tr:first-child>td,.factory-bootstrap-422 .table>colgroup+thead>tr:first-child>th,.factory-bootstrap-422 .table>thead:first-child>tr:first-child>td,.factory-bootstrap-422 .table>thead:first-child>tr:first-child>th{border-top:0}.factory-bootstrap-422 .table>tbody+tbody{border-top:2px solid #ddd}.factory-bootstrap-422 .table .table{background-color:#fff}.factory-bootstrap-422 .table-condensed>tbody>tr>td,.factory-bootstrap-422 .table-condensed>tbody>tr>th,.factory-bootstrap-422 .table-condensed>tfoot>tr>td,.factory-bootstrap-422 .table-condensed>tfoot>tr>th,.factory-bootstrap-422 .table-condensed>thead>tr>td,.factory-bootstrap-422 .table-condensed>thead>tr>th{padding:5px}.factory-bootstrap-422 .table-bordered,.factory-bootstrap-422 .table-bordered>tbody>tr>td,.factory-bootstrap-422 .table-bordered>tbody>tr>th,.factory-bootstrap-422 .table-bordered>tfoot>tr>td,.factory-bootstrap-422 .table-bordered>tfoot>tr>th,.factory-bootstrap-422 .table-bordered>thead>tr>td,.factory-bootstrap-422 .table-bordered>thead>tr>th{border:1px solid #ddd}.factory-bootstrap-422 .table-bordered>thead>tr>td,.factory-bootstrap-422 .table-bordered>thead>tr>th{border-bottom-width:2px}.factory-bootstrap-422 .table-striped>tbody>tr:nth-child(odd)>td,.factory-bootstrap-422 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.factory-bootstrap-422 .table-hover>tbody>tr:hover>td,.factory-bootstrap-422 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.factory-bootstrap-422 table col[class*=col-]{position:static;display:table-column;float:none}.factory-bootstrap-422 table td[class*=col-],.factory-bootstrap-422 table th[class*=col-]{display:table-cell;float:none}.factory-bootstrap-422 .table>tbody>.active>td,.factory-bootstrap-422 .table>tbody>.active>th,.factory-bootstrap-422 .table>tbody>tr>.active,.factory-bootstrap-422 .table>tfoot>.active>td,.factory-bootstrap-422 .table>tfoot>.active>th,.factory-bootstrap-422 .table>tfoot>tr>.active,.factory-bootstrap-422 .table>thead>.active>td,.factory-bootstrap-422 .table>thead>.active>th,.factory-bootstrap-422 .table>thead>tr>.active{background-color:#f5f5f5}.factory-bootstrap-422 .table-hover>tbody>.active:hover>td,.factory-bootstrap-422 .table-hover>tbody>.active:hover>th,.factory-bootstrap-422 .table-hover>tbody>tr>.active:hover{background-color:#e8e8e8}.factory-bootstrap-422 .table>tbody>.success>td,.factory-bootstrap-422 .table>tbody>.success>th,.factory-bootstrap-422 .table>tbody>tr>.success,.factory-bootstrap-422 .table>tfoot>.success>td,.factory-bootstrap-422 .table>tfoot>.success>th,.factory-bootstrap-422 .table>tfoot>tr>.success,.factory-bootstrap-422 .table>thead>.success>td,.factory-bootstrap-422 .table>thead>.success>th,.factory-bootstrap-422 .table>thead>tr>.success{background-color:#dff0d8}.factory-bootstrap-422 .table-hover>tbody>.success:hover>td,.factory-bootstrap-422 .table-hover>tbody>.success:hover>th,.factory-bootstrap-422 .table-hover>tbody>tr>.success:hover{background-color:#d0e9c6}.factory-bootstrap-422 .table>tbody>.danger>td,.factory-bootstrap-422 .table>tbody>.danger>th,.factory-bootstrap-422 .table>tbody>tr>.danger,.factory-bootstrap-422 .table>tfoot>.danger>td,.factory-bootstrap-422 .table>tfoot>.danger>th,.factory-bootstrap-422 .table>tfoot>tr>.danger,.factory-bootstrap-422 .table>thead>.danger>td,.factory-bootstrap-422 .table>thead>.danger>th,.factory-bootstrap-422 .table>thead>tr>.danger{background-color:#f2dede}.factory-bootstrap-422 .table-hover>tbody>.danger:hover>td,.factory-bootstrap-422 .table-hover>tbody>.danger:hover>th,.factory-bootstrap-422 .table-hover>tbody>tr>.danger:hover{background-color:#ebcccc}.factory-bootstrap-422 .table>tbody>.warning>td,.factory-bootstrap-422 .table>tbody>.warning>th,.factory-bootstrap-422 .table>tbody>tr>.warning,.factory-bootstrap-422 .table>tfoot>.warning>td,.factory-bootstrap-422 .table>tfoot>.warning>th,.factory-bootstrap-422 .table>tfoot>tr>.warning,.factory-bootstrap-422 .table>thead>.warning>td,.factory-bootstrap-422 .table>thead>.warning>th,.factory-bootstrap-422 .table>thead>tr>.warning{background-color:#fcf8e3}.factory-bootstrap-422 .table-hover>tbody>.warning:hover>td,.factory-bootstrap-422 .table-hover>tbody>.warning:hover>th,.factory-bootstrap-422 .table-hover>tbody>tr>.warning:hover{background-color:#faf2cc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}.factory-bootstrap-422 fieldset{padding:0;margin:0;border:0}.factory-bootstrap-422 legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-422 label{display:inline-block;margin-bottom:5px;font-weight:700}.factory-bootstrap-422 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-422 input[type=checkbox],.factory-bootstrap-422 input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.factory-bootstrap-422 input[type=file]{display:block}.factory-bootstrap-422 select[multiple],.factory-bootstrap-422 select[size]{height:auto}.factory-bootstrap-422 select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}.factory-bootstrap-422 input[type=checkbox]:focus,.factory-bootstrap-422 input[type=file]:focus,.factory-bootstrap-422 input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-422 input[type=number]::-webkit-inner-spin-button,.factory-bootstrap-422 input[type=number]::-webkit-outer-spin-button{height:auto}.factory-bootstrap-422 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.factory-bootstrap-422 .form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.factory-bootstrap-422 .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-422 .form-control:-moz-placeholder{color:#999}.factory-bootstrap-422 .form-control::-moz-placeholder{color:#999;opacity:1}.factory-bootstrap-422 .form-control:-ms-input-placeholder{color:#999}.factory-bootstrap-422 .form-control::-webkit-input-placeholder{color:#999}.factory-bootstrap-422 .form-control[disabled],.factory-bootstrap-422 .form-control[readonly],.factory-bootstrap-422 fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.factory-bootstrap-422 textarea.form-control{height:auto}.factory-bootstrap-422 .form-group{margin-bottom:15px}.factory-bootstrap-422 .checkbox,.factory-bootstrap-422 .radio{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.factory-bootstrap-422 .checkbox label,.factory-bootstrap-422 .radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.factory-bootstrap-422 .checkbox input[type=checkbox],.factory-bootstrap-422 .checkbox-inline input[type=checkbox],.factory-bootstrap-422 .radio input[type=radio],.factory-bootstrap-422 .radio-inline input[type=radio]{float:left;margin-left:-20px}.factory-bootstrap-422 .checkbox+.checkbox,.factory-bootstrap-422 .radio+.radio{margin-top:-5px}.factory-bootstrap-422 .checkbox-inline,.factory-bootstrap-422 .radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.factory-bootstrap-422 .checkbox-inline+.checkbox-inline,.factory-bootstrap-422 .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.factory-bootstrap-422 .checkbox-inline[disabled],.factory-bootstrap-422 .checkbox[disabled],.factory-bootstrap-422 .radio-inline[disabled],.factory-bootstrap-422 .radio[disabled],.factory-bootstrap-422 fieldset[disabled] .checkbox,.factory-bootstrap-422 fieldset[disabled] .checkbox-inline,.factory-bootstrap-422 fieldset[disabled] .radio,.factory-bootstrap-422 fieldset[disabled] .radio-inline,.factory-bootstrap-422 fieldset[disabled] input[type=checkbox],.factory-bootstrap-422 fieldset[disabled] input[type=radio],.factory-bootstrap-422 input[type=checkbox][disabled],.factory-bootstrap-422 input[type=radio][disabled]{cursor:not-allowed}.factory-bootstrap-422 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 select.input-sm{height:30px;line-height:30px}.factory-bootstrap-422 textarea.input-sm{height:auto}.factory-bootstrap-422 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-422 select.input-lg{height:46px;line-height:46px}.factory-bootstrap-422 textarea.input-lg{height:auto}.factory-bootstrap-422 .has-warning .checkbox,.factory-bootstrap-422 .has-warning .checkbox-inline,.factory-bootstrap-422 .has-warning .control-label,.factory-bootstrap-422 .has-warning .help-block,.factory-bootstrap-422 .has-warning .radio,.factory-bootstrap-422 .has-warning .radio-inline{color:#8a6d3b}.factory-bootstrap-422 .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-422 .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.factory-bootstrap-422 .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.factory-bootstrap-422 .has-error .checkbox,.factory-bootstrap-422 .has-error .checkbox-inline,.factory-bootstrap-422 .has-error .control-label,.factory-bootstrap-422 .has-error .help-block,.factory-bootstrap-422 .has-error .radio,.factory-bootstrap-422 .has-error .radio-inline{color:#a94442}.factory-bootstrap-422 .controls{display:block}.factory-bootstrap-422 .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-422 .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.factory-bootstrap-422 .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.factory-bootstrap-422 .has-success .checkbox,.factory-bootstrap-422 .has-success .checkbox-inline,.factory-bootstrap-422 .has-success .control-label,.factory-bootstrap-422 .has-success .help-block,.factory-bootstrap-422 .has-success .radio,.factory-bootstrap-422 .has-success .radio-inline{color:#3c763d}.factory-bootstrap-422 .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-422 .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.factory-bootstrap-422 .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.factory-bootstrap-422 .form-control-static{margin-bottom:0}.factory-bootstrap-422 .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373;font-weight:400}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .checkbox,.form-inline .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.factory-bootstrap-422 .form-horizontal .checkbox,.factory-bootstrap-422 .form-horizontal .checkbox-inline,.factory-bootstrap-422 .form-horizontal .control-label,.factory-bootstrap-422 .form-horizontal .radio,.factory-bootstrap-422 .form-horizontal .radio-inline{position:relative;padding-top:7px;margin-top:0;margin-bottom:0}.factory-bootstrap-422 .form-horizontal .control-label{max-width:200px}.factory-bootstrap-422 .form-horizontal .checkbox,.factory-bootstrap-422 .form-horizontal .radio{min-height:27px}.factory-bootstrap-422 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.factory-bootstrap-422 .form-horizontal .form-group:after,.factory-bootstrap-422 .form-horizontal .form-group:before{display:table;content:" "}.factory-bootstrap-422 .form-horizontal .form-group:after{clear:both}.factory-bootstrap-422 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.factory-bootstrap-422 .btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:13px;font-weight:400;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.factory-bootstrap-422 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-422 .btn{text-decoration:none}.factory-bootstrap-422 .btn:focus,.factory-bootstrap-422 .btn:hover{color:#333;text-decoration:none}.factory-bootstrap-422 .btn.disabled,.factory-bootstrap-422 .btn[disabled],.factory-bootstrap-422 fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-422 .btn-default.active,.factory-bootstrap-422 .btn-default:active,.factory-bootstrap-422 .btn-default:focus,.factory-bootstrap-422 .btn-default:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-default{background:#fafafa;border-color:#999;color:#222}.factory-bootstrap-422 .btn-default.active,.factory-bootstrap-422 .btn-default:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-default{background-image:none}.factory-bootstrap-422 .btn-default.disabled,.factory-bootstrap-422 .btn-default.disabled.active,.factory-bootstrap-422 .btn-default.disabled:active,.factory-bootstrap-422 .btn-default.disabled:focus,.factory-bootstrap-422 .btn-default.disabled:hover,.factory-bootstrap-422 .btn-default[disabled],.factory-bootstrap-422 .btn-default[disabled].active,.factory-bootstrap-422 .btn-default[disabled]:active,.factory-bootstrap-422 .btn-default[disabled]:focus,.factory-bootstrap-422 .btn-default[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-default,.factory-bootstrap-422 fieldset[disabled] .btn-default.active,.factory-bootstrap-422 fieldset[disabled] .btn-default:active,.factory-bootstrap-422 fieldset[disabled] .btn-default:focus,.factory-bootstrap-422 fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.factory-bootstrap-422 .btn-default .badge{color:#fff;background-color:#fff}.factory-bootstrap-422 .btn-primary.active,.factory-bootstrap-422 .btn-primary:active,.factory-bootstrap-422 .btn-primary:focus,.factory-bootstrap-422 .btn-primary:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.factory-bootstrap-422 .btn-primary.active,.factory-bootstrap-422 .btn-primary:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-primary{background-image:none}.factory-bootstrap-422 .btn-primary.disabled,.factory-bootstrap-422 .btn-primary.disabled.active,.factory-bootstrap-422 .btn-primary.disabled:active,.factory-bootstrap-422 .btn-primary.disabled:focus,.factory-bootstrap-422 .btn-primary.disabled:hover,.factory-bootstrap-422 .btn-primary[disabled],.factory-bootstrap-422 .btn-primary[disabled].active,.factory-bootstrap-422 .btn-primary[disabled]:active,.factory-bootstrap-422 .btn-primary[disabled]:focus,.factory-bootstrap-422 .btn-primary[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-primary,.factory-bootstrap-422 fieldset[disabled] .btn-primary.active,.factory-bootstrap-422 fieldset[disabled] .btn-primary:active,.factory-bootstrap-422 fieldset[disabled] .btn-primary:focus,.factory-bootstrap-422 fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.factory-bootstrap-422 .btn-primary .badge{color:#428bca;background-color:#fff}.factory-bootstrap-422 .btn-warning{color:#fff;background-color:#f0ad4e}.factory-bootstrap-422 .btn-warning.active,.factory-bootstrap-422 .btn-warning:active,.factory-bootstrap-422 .btn-warning:focus,.factory-bootstrap-422 .btn-warning:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.factory-bootstrap-422 .btn-warning.active,.factory-bootstrap-422 .btn-warning:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-warning{background-image:none}.factory-bootstrap-422 .btn-warning.disabled,.factory-bootstrap-422 .btn-warning.disabled.active,.factory-bootstrap-422 .btn-warning.disabled:active,.factory-bootstrap-422 .btn-warning.disabled:focus,.factory-bootstrap-422 .btn-warning.disabled:hover,.factory-bootstrap-422 .btn-warning[disabled],.factory-bootstrap-422 .btn-warning[disabled].active,.factory-bootstrap-422 .btn-warning[disabled]:active,.factory-bootstrap-422 .btn-warning[disabled]:focus,.factory-bootstrap-422 .btn-warning[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-warning,.factory-bootstrap-422 fieldset[disabled] .btn-warning.active,.factory-bootstrap-422 fieldset[disabled] .btn-warning:active,.factory-bootstrap-422 fieldset[disabled] .btn-warning:focus,.factory-bootstrap-422 fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.factory-bootstrap-422 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.factory-bootstrap-422 .btn-success{color:#fff;background-color:#5cb85c}.factory-bootstrap-422 .btn-success.active,.factory-bootstrap-422 .btn-success:active,.factory-bootstrap-422 .btn-success:focus,.factory-bootstrap-422 .btn-success:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.factory-bootstrap-422 .btn-success.active,.factory-bootstrap-422 .btn-success:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-success{background-image:none}.factory-bootstrap-422 .btn-success.disabled,.factory-bootstrap-422 .btn-success.disabled.active,.factory-bootstrap-422 .btn-success.disabled:active,.factory-bootstrap-422 .btn-success.disabled:focus,.factory-bootstrap-422 .btn-success.disabled:hover,.factory-bootstrap-422 .btn-success[disabled],.factory-bootstrap-422 .btn-success[disabled].active,.factory-bootstrap-422 .btn-success[disabled]:active,.factory-bootstrap-422 .btn-success[disabled]:focus,.factory-bootstrap-422 .btn-success[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-success,.factory-bootstrap-422 fieldset[disabled] .btn-success.active,.factory-bootstrap-422 fieldset[disabled] .btn-success:active,.factory-bootstrap-422 fieldset[disabled] .btn-success:focus,.factory-bootstrap-422 fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.factory-bootstrap-422 .btn-success .badge{color:#5cb85c;background-color:#fff}.factory-bootstrap-422 .btn-info{color:#fff;background-color:#5bc0de}.factory-bootstrap-422 .btn-info.active,.factory-bootstrap-422 .btn-info:active,.factory-bootstrap-422 .btn-info:focus,.factory-bootstrap-422 .btn-info:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.factory-bootstrap-422 .btn-info.active,.factory-bootstrap-422 .btn-info:active,.factory-bootstrap-422 .open .dropdown-toggle.btn-info{background-image:none}.factory-bootstrap-422 .btn-info.disabled,.factory-bootstrap-422 .btn-info.disabled.active,.factory-bootstrap-422 .btn-info.disabled:active,.factory-bootstrap-422 .btn-info.disabled:focus,.factory-bootstrap-422 .btn-info.disabled:hover,.factory-bootstrap-422 .btn-info[disabled],.factory-bootstrap-422 .btn-info[disabled].active,.factory-bootstrap-422 .btn-info[disabled]:active,.factory-bootstrap-422 .btn-info[disabled]:focus,.factory-bootstrap-422 .btn-info[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-info,.factory-bootstrap-422 fieldset[disabled] .btn-info.active,.factory-bootstrap-422 fieldset[disabled] .btn-info:active,.factory-bootstrap-422 fieldset[disabled] .btn-info:focus,.factory-bootstrap-422 fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.factory-bootstrap-422 .btn-info .badge{color:#5bc0de;background-color:#fff}.factory-bootstrap-422 .btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.factory-bootstrap-422 .btn-link,.factory-bootstrap-422 .btn-link:active,.factory-bootstrap-422 .btn-link[disabled],.factory-bootstrap-422 fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-422 .btn-link,.factory-bootstrap-422 .btn-link:active,.factory-bootstrap-422 .btn-link:focus,.factory-bootstrap-422 .btn-link:hover{border-color:transparent}.factory-bootstrap-422 .btn-link:focus,.factory-bootstrap-422 .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.factory-bootstrap-422 .btn-link[disabled]:focus,.factory-bootstrap-422 .btn-link[disabled]:hover,.factory-bootstrap-422 fieldset[disabled] .btn-link:focus,.factory-bootstrap-422 fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.factory-bootstrap-422 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-422 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 .btn-block{display:block;width:100%;padding-right:0;padding-left:0}.factory-bootstrap-422 .btn-block+.btn-block{margin-top:5px}.factory-bootstrap-422 input[type=button].btn-block,.factory-bootstrap-422 input[type=reset].btn-block,.factory-bootstrap-422 input[type=submit].btn-block{width:100%}.factory-bootstrap-422 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.factory-bootstrap-422 .fade.in{opacity:1}.factory-bootstrap-422 .collapse{display:none}.factory-bootstrap-422 .collapse.in{display:block}.factory-bootstrap-422 .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular) format('svg')}.factory-bootstrap-422 .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;line-height:1;-moz-osx-font-smoothing:grayscale}.factory-bootstrap-422 .glyphicon:empty{width:1em}.factory-bootstrap-422 .glyphicon-asterisk:before{content:"\2a"}.factory-bootstrap-422 .glyphicon-plus:before{content:"\2b"}.factory-bootstrap-422 .glyphicon-euro:before{content:"\20ac"}.factory-bootstrap-422 .glyphicon-minus:before{content:"\2212"}.factory-bootstrap-422 .glyphicon-cloud:before{content:"\2601"}.factory-bootstrap-422 .glyphicon-envelope:before{content:"\2709"}.factory-bootstrap-422 .glyphicon-pencil:before{content:"\270f"}.factory-bootstrap-422 .glyphicon-glass:before{content:"\e001"}.factory-bootstrap-422 .glyphicon-music:before{content:"\e002"}.factory-bootstrap-422 .glyphicon-search:before{content:"\e003"}.factory-bootstrap-422 .glyphicon-heart:before{content:"\e005"}.factory-bootstrap-422 .glyphicon-star:before{content:"\e006"}.factory-bootstrap-422 .glyphicon-star-empty:before{content:"\e007"}.factory-bootstrap-422 .glyphicon-user:before{content:"\e008"}.factory-bootstrap-422 .glyphicon-film:before{content:"\e009"}.factory-bootstrap-422 .glyphicon-th-large:before{content:"\e010"}.factory-bootstrap-422 .glyphicon-th:before{content:"\e011"}.factory-bootstrap-422 .glyphicon-th-list:before{content:"\e012"}.factory-bootstrap-422 .glyphicon-ok:before{content:"\e013"}.factory-bootstrap-422 .glyphicon-remove:before{content:"\e014"}.factory-bootstrap-422 .glyphicon-zoom-in:before{content:"\e015"}.factory-bootstrap-422 .glyphicon-zoom-out:before{content:"\e016"}.factory-bootstrap-422 .glyphicon-off:before{content:"\e017"}.factory-bootstrap-422 .glyphicon-signal:before{content:"\e018"}.factory-bootstrap-422 .glyphicon-cog:before{content:"\e019"}.factory-bootstrap-422 .glyphicon-trash:before{content:"\e020"}.factory-bootstrap-422 .glyphicon-home:before{content:"\e021"}.factory-bootstrap-422 .glyphicon-file:before{content:"\e022"}.factory-bootstrap-422 .glyphicon-time:before{content:"\e023"}.factory-bootstrap-422 .glyphicon-road:before{content:"\e024"}.factory-bootstrap-422 .glyphicon-download-alt:before{content:"\e025"}.factory-bootstrap-422 .glyphicon-download:before{content:"\e026"}.factory-bootstrap-422 .glyphicon-upload:before{content:"\e027"}.factory-bootstrap-422 .glyphicon-inbox:before{content:"\e028"}.factory-bootstrap-422 .glyphicon-play-circle:before{content:"\e029"}.factory-bootstrap-422 .glyphicon-repeat:before{content:"\e030"}.factory-bootstrap-422 .glyphicon-refresh:before{content:"\e031"}.factory-bootstrap-422 .glyphicon-list-alt:before{content:"\e032"}.factory-bootstrap-422 .glyphicon-lock:before{content:"\e033"}.factory-bootstrap-422 .glyphicon-flag:before{content:"\e034"}.factory-bootstrap-422 .glyphicon-headphones:before{content:"\e035"}.factory-bootstrap-422 .glyphicon-volume-off:before{content:"\e036"}.factory-bootstrap-422 .glyphicon-volume-down:before{content:"\e037"}.factory-bootstrap-422 .glyphicon-volume-up:before{content:"\e038"}.factory-bootstrap-422 .glyphicon-qrcode:before{content:"\e039"}.factory-bootstrap-422 .glyphicon-barcode:before{content:"\e040"}.factory-bootstrap-422 .glyphicon-tag:before{content:"\e041"}.factory-bootstrap-422 .glyphicon-tags:before{content:"\e042"}.factory-bootstrap-422 .glyphicon-book:before{content:"\e043"}.factory-bootstrap-422 .glyphicon-bookmark:before{content:"\e044"}.factory-bootstrap-422 .glyphicon-print:before{content:"\e045"}.factory-bootstrap-422 .glyphicon-camera:before{content:"\e046"}.factory-bootstrap-422 .glyphicon-font:before{content:"\e047"}.factory-bootstrap-422 .glyphicon-bold:before{content:"\e048"}.factory-bootstrap-422 .glyphicon-italic:before{content:"\e049"}.factory-bootstrap-422 .glyphicon-text-height:before{content:"\e050"}.factory-bootstrap-422 .glyphicon-text-width:before{content:"\e051"}.factory-bootstrap-422 .glyphicon-align-left:before{content:"\e052"}.factory-bootstrap-422 .glyphicon-align-center:before{content:"\e053"}.factory-bootstrap-422 .glyphicon-align-right:before{content:"\e054"}.factory-bootstrap-422 .glyphicon-align-justify:before{content:"\e055"}.factory-bootstrap-422 .glyphicon-list:before{content:"\e056"}.factory-bootstrap-422 .glyphicon-indent-left:before{content:"\e057"}.factory-bootstrap-422 .glyphicon-indent-right:before{content:"\e058"}.factory-bootstrap-422 .glyphicon-facetime-video:before{content:"\e059"}.factory-bootstrap-422 .glyphicon-picture:before{content:"\e060"}.factory-bootstrap-422 .glyphicon-map-marker:before{content:"\e062"}.factory-bootstrap-422 .glyphicon-adjust:before{content:"\e063"}.factory-bootstrap-422 .glyphicon-tint:before{content:"\e064"}.factory-bootstrap-422 .glyphicon-edit:before{content:"\e065"}.factory-bootstrap-422 .glyphicon-share:before{content:"\e066"}.factory-bootstrap-422 .glyphicon-check:before{content:"\e067"}.factory-bootstrap-422 .glyphicon-move:before{content:"\e068"}.factory-bootstrap-422 .glyphicon-step-backward:before{content:"\e069"}.factory-bootstrap-422 .glyphicon-fast-backward:before{content:"\e070"}.factory-bootstrap-422 .glyphicon-backward:before{content:"\e071"}.factory-bootstrap-422 .glyphicon-play:before{content:"\e072"}.factory-bootstrap-422 .glyphicon-pause:before{content:"\e073"}.factory-bootstrap-422 .glyphicon-stop:before{content:"\e074"}.factory-bootstrap-422 .glyphicon-forward:before{content:"\e075"}.factory-bootstrap-422 .glyphicon-fast-forward:before{content:"\e076"}.factory-bootstrap-422 .glyphicon-step-forward:before{content:"\e077"}.factory-bootstrap-422 .glyphicon-eject:before{content:"\e078"}.factory-bootstrap-422 .glyphicon-chevron-left:before{content:"\e079"}.factory-bootstrap-422 .glyphicon-chevron-right:before{content:"\e080"}.factory-bootstrap-422 .glyphicon-plus-sign:before{content:"\e081"}.factory-bootstrap-422 .glyphicon-minus-sign:before{content:"\e082"}.factory-bootstrap-422 .glyphicon-remove-sign:before{content:"\e083"}.factory-bootstrap-422 .glyphicon-ok-sign:before{content:"\e084"}.factory-bootstrap-422 .glyphicon-question-sign:before{content:"\e085"}.factory-bootstrap-422 .glyphicon-info-sign:before{content:"\e086"}.factory-bootstrap-422 .glyphicon-screenshot:before{content:"\e087"}.factory-bootstrap-422 .glyphicon-remove-circle:before{content:"\e088"}.factory-bootstrap-422 .glyphicon-ok-circle:before{content:"\e089"}.factory-bootstrap-422 .glyphicon-ban-circle:before{content:"\e090"}.factory-bootstrap-422 .glyphicon-arrow-left:before{content:"\e091"}.factory-bootstrap-422 .glyphicon-arrow-right:before{content:"\e092"}.factory-bootstrap-422 .glyphicon-arrow-up:before{content:"\e093"}.factory-bootstrap-422 .glyphicon-arrow-down:before{content:"\e094"}.factory-bootstrap-422 .glyphicon-share-alt:before{content:"\e095"}.factory-bootstrap-422 .glyphicon-resize-full:before{content:"\e096"}.factory-bootstrap-422 .glyphicon-resize-small:before{content:"\e097"}.factory-bootstrap-422 .glyphicon-exclamation-sign:before{content:"\e101"}.factory-bootstrap-422 .glyphicon-gift:before{content:"\e102"}.factory-bootstrap-422 .glyphicon-leaf:before{content:"\e103"}.factory-bootstrap-422 .glyphicon-fire:before{content:"\e104"}.factory-bootstrap-422 .glyphicon-eye-open:before{content:"\e105"}.factory-bootstrap-422 .glyphicon-eye-close:before{content:"\e106"}.factory-bootstrap-422 .glyphicon-warning-sign:before{content:"\e107"}.factory-bootstrap-422 .glyphicon-plane:before{content:"\e108"}.factory-bootstrap-422 .glyphicon-calendar:before{content:"\e109"}.factory-bootstrap-422 .glyphicon-random:before{content:"\e110"}.factory-bootstrap-422 .glyphicon-comment:before{content:"\e111"}.factory-bootstrap-422 .glyphicon-magnet:before{content:"\e112"}.factory-bootstrap-422 .glyphicon-chevron-up:before{content:"\e113"}.factory-bootstrap-422 .glyphicon-chevron-down:before{content:"\e114"}.factory-bootstrap-422 .glyphicon-retweet:before{content:"\e115"}.factory-bootstrap-422 .glyphicon-shopping-cart:before{content:"\e116"}.factory-bootstrap-422 .glyphicon-folder-close:before{content:"\e117"}.factory-bootstrap-422 .glyphicon-folder-open:before{content:"\e118"}.factory-bootstrap-422 .glyphicon-resize-vertical:before{content:"\e119"}.factory-bootstrap-422 .glyphicon-resize-horizontal:before{content:"\e120"}.factory-bootstrap-422 .glyphicon-hdd:before{content:"\e121"}.factory-bootstrap-422 .glyphicon-bullhorn:before{content:"\e122"}.factory-bootstrap-422 .glyphicon-bell:before{content:"\e123"}.factory-bootstrap-422 .glyphicon-certificate:before{content:"\e124"}.factory-bootstrap-422 .glyphicon-thumbs-up:before{content:"\e125"}.factory-bootstrap-422 .glyphicon-thumbs-down:before{content:"\e126"}.factory-bootstrap-422 .glyphicon-hand-right:before{content:"\e127"}.factory-bootstrap-422 .glyphicon-hand-left:before{content:"\e128"}.factory-bootstrap-422 .glyphicon-hand-up:before{content:"\e129"}.factory-bootstrap-422 .glyphicon-hand-down:before{content:"\e130"}.factory-bootstrap-422 .glyphicon-circle-arrow-right:before{content:"\e131"}.factory-bootstrap-422 .glyphicon-circle-arrow-left:before{content:"\e132"}.factory-bootstrap-422 .glyphicon-circle-arrow-up:before{content:"\e133"}.factory-bootstrap-422 .glyphicon-circle-arrow-down:before{content:"\e134"}.factory-bootstrap-422 .glyphicon-globe:before{content:"\e135"}.factory-bootstrap-422 .glyphicon-wrench:before{content:"\e136"}.factory-bootstrap-422 .glyphicon-tasks:before{content:"\e137"}.factory-bootstrap-422 .glyphicon-filter:before{content:"\e138"}.factory-bootstrap-422 .glyphicon-briefcase:before{content:"\e139"}.factory-bootstrap-422 .glyphicon-fullscreen:before{content:"\e140"}.factory-bootstrap-422 .glyphicon-dashboard:before{content:"\e141"}.factory-bootstrap-422 .glyphicon-paperclip:before{content:"\e142"}.factory-bootstrap-422 .glyphicon-heart-empty:before{content:"\e143"}.factory-bootstrap-422 .glyphicon-link:before{content:"\e144"}.factory-bootstrap-422 .glyphicon-phone:before{content:"\e145"}.factory-bootstrap-422 .glyphicon-pushpin:before{content:"\e146"}.factory-bootstrap-422 .glyphicon-usd:before{content:"\e148"}.factory-bootstrap-422 .glyphicon-gbp:before{content:"\e149"}.factory-bootstrap-422 .glyphicon-sort:before{content:"\e150"}.factory-bootstrap-422 .glyphicon-sort-by-alphabet:before{content:"\e151"}.factory-bootstrap-422 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.factory-bootstrap-422 .glyphicon-sort-by-order:before{content:"\e153"}.factory-bootstrap-422 .glyphicon-sort-by-order-alt:before{content:"\e154"}.factory-bootstrap-422 .glyphicon-sort-by-attributes:before{content:"\e155"}.factory-bootstrap-422 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.factory-bootstrap-422 .glyphicon-unchecked:before{content:"\e157"}.factory-bootstrap-422 .glyphicon-expand:before{content:"\e158"}.factory-bootstrap-422 .glyphicon-collapse-down:before{content:"\e159"}.factory-bootstrap-422 .glyphicon-collapse-up:before{content:"\e160"}.factory-bootstrap-422 .glyphicon-log-in:before{content:"\e161"}.factory-bootstrap-422 .glyphicon-flash:before{content:"\e162"}.factory-bootstrap-422 .glyphicon-log-out:before{content:"\e163"}.factory-bootstrap-422 .glyphicon-new-window:before{content:"\e164"}.factory-bootstrap-422 .glyphicon-record:before{content:"\e165"}.factory-bootstrap-422 .glyphicon-save:before{content:"\e166"}.factory-bootstrap-422 .glyphicon-open:before{content:"\e167"}.factory-bootstrap-422 .glyphicon-saved:before{content:"\e168"}.factory-bootstrap-422 .glyphicon-import:before{content:"\e169"}.factory-bootstrap-422 .glyphicon-export:before{content:"\e170"}.factory-bootstrap-422 .glyphicon-send:before{content:"\e171"}.factory-bootstrap-422 .glyphicon-floppy-disk:before{content:"\e172"}.factory-bootstrap-422 .glyphicon-floppy-saved:before{content:"\e173"}.factory-bootstrap-422 .glyphicon-floppy-remove:before{content:"\e174"}.factory-bootstrap-422 .glyphicon-floppy-save:before{content:"\e175"}.factory-bootstrap-422 .glyphicon-floppy-open:before{content:"\e176"}.factory-bootstrap-422 .glyphicon-credit-card:before{content:"\e177"}.factory-bootstrap-422 .glyphicon-transfer:before{content:"\e178"}.factory-bootstrap-422 .glyphicon-cutlery:before{content:"\e179"}.factory-bootstrap-422 .glyphicon-header:before{content:"\e180"}.factory-bootstrap-422 .glyphicon-compressed:before{content:"\e181"}.factory-bootstrap-422 .glyphicon-earphone:before{content:"\e182"}.factory-bootstrap-422 .glyphicon-phone-alt:before{content:"\e183"}.factory-bootstrap-422 .glyphicon-tower:before{content:"\e184"}.factory-bootstrap-422 .glyphicon-stats:before{content:"\e185"}.factory-bootstrap-422 .glyphicon-sd-video:before{content:"\e186"}.factory-bootstrap-422 .glyphicon-hd-video:before{content:"\e187"}.factory-bootstrap-422 .glyphicon-subtitles:before{content:"\e188"}.factory-bootstrap-422 .glyphicon-sound-stereo:before{content:"\e189"}.factory-bootstrap-422 .glyphicon-sound-dolby:before{content:"\e190"}.factory-bootstrap-422 .glyphicon-sound-5-1:before{content:"\e191"}.factory-bootstrap-422 .glyphicon-sound-6-1:before{content:"\e192"}.factory-bootstrap-422 .glyphicon-sound-7-1:before{content:"\e193"}.factory-bootstrap-422 .glyphicon-copyright-mark:before{content:"\e194"}.factory-bootstrap-422 .glyphicon-registration-mark:before{content:"\e195"}.factory-bootstrap-422 .glyphicon-cloud-download:before{content:"\e197"}.factory-bootstrap-422 .glyphicon-cloud-upload:before{content:"\e198"}.factory-bootstrap-422 .glyphicon-tree-conifer:before{content:"\e199"}.factory-bootstrap-422 .glyphicon-tree-deciduous:before{content:"\e200"}.factory-bootstrap-422 .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.factory-bootstrap-422 .dropdown{position:relative}.factory-bootstrap-422 .dropdown-toggle:focus{outline:0}.factory-bootstrap-422 .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.factory-bootstrap-422 .dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-422 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-422 .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.factory-bootstrap-422 .dropdown-menu>li>a:focus,.factory-bootstrap-422 .dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.factory-bootstrap-422 .dropdown-menu>.active>a,.factory-bootstrap-422 .dropdown-menu>.active>a:focus,.factory-bootstrap-422 .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.factory-bootstrap-422 .dropdown-menu>.disabled>a,.factory-bootstrap-422 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-422 .dropdown-menu>.disabled>a:hover{color:#999}.factory-bootstrap-422 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-422 .dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-422 .open>.dropdown-menu{display:block}.factory-bootstrap-422 .open>a{outline:0}.factory-bootstrap-422 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.factory-bootstrap-422 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.factory-bootstrap-422 .pull-right>.dropdown-menu{right:0;left:auto}.factory-bootstrap-422 .dropup .caret,.factory-bootstrap-422 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.factory-bootstrap-422 .dropup .dropdown-menu,.factory-bootstrap-422 .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.factory-bootstrap-422 .btn-group,.factory-bootstrap-422 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.factory-bootstrap-422 .btn-group-vertical>.btn,.factory-bootstrap-422 .btn-group>.btn{position:relative;float:left}.factory-bootstrap-422 .btn-group-vertical>.btn.active,.factory-bootstrap-422 .btn-group-vertical>.btn:active,.factory-bootstrap-422 .btn-group-vertical>.btn:focus,.factory-bootstrap-422 .btn-group-vertical>.btn:hover,.factory-bootstrap-422 .btn-group>.btn.active,.factory-bootstrap-422 .btn-group>.btn:active,.factory-bootstrap-422 .btn-group>.btn:focus,.factory-bootstrap-422 .btn-group>.btn:hover{z-index:2}.factory-bootstrap-422 .btn-group-vertical>.btn:focus,.factory-bootstrap-422 .btn-group>.btn:focus{outline:0}.factory-bootstrap-422 .btn-group .btn+.btn,.factory-bootstrap-422 .btn-group .btn+.btn-group,.factory-bootstrap-422 .btn-group .btn-group+.btn,.factory-bootstrap-422 .btn-group .btn-group+.btn-group{margin-left:-1px}.factory-bootstrap-422 .btn-toolbar:after,.factory-bootstrap-422 .btn-toolbar:before{display:table;content:" "}.factory-bootstrap-422 .btn-toolbar:after{clear:both}.factory-bootstrap-422 .btn-toolbar .btn-group{float:left}.factory-bootstrap-422 .btn-toolbar>.btn+.btn,.factory-bootstrap-422 .btn-toolbar>.btn+.btn-group,.factory-bootstrap-422 .btn-toolbar>.btn-group+.btn,.factory-bootstrap-422 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.factory-bootstrap-422 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.factory-bootstrap-422 .btn-group>.btn:first-child{margin-left:0}.factory-bootstrap-422 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-422 .btn-group>.btn:last-child:not(:first-child),.factory-bootstrap-422 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .btn-group>.btn-group{float:left}.factory-bootstrap-422 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-422 .btn-group>.btn-group:first-child>.btn:last-child,.factory-bootstrap-422 .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-422 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .btn-group .dropdown-toggle:active,.factory-bootstrap-422 .btn-group.open .dropdown-toggle{outline:0}.factory-bootstrap-422 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-422 .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.factory-bootstrap-422 .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.factory-bootstrap-422 .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.factory-bootstrap-422 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-422 .btn-group{border:4px solid #f9f9f9;border-radius:4px}.factory-bootstrap-422 .btn-group .btn.active.value{text-shadow:none;color:#fff;background-color:#33aad5;-webkit-box-shadow:inset 0 1px 1px #0074a2;box-shadow:inset 0 1px 3px #0074a2;border-top:1px solid #0074a2;border-bottom:1px solid #0074a2;border-left:1px solid #0074a2}.factory-bootstrap-422 .btn .caret{margin-left:0}.factory-bootstrap-422 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.factory-bootstrap-422 .dropup .btn-lg .caret{border-width:0 5px 5px}.factory-bootstrap-422 .btn-group-vertical>.btn,.factory-bootstrap-422 .btn-group-vertical>.btn-group,.factory-bootstrap-422 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.factory-bootstrap-422 .btn-group-vertical>.btn-group:after,.factory-bootstrap-422 .btn-group-vertical>.btn-group:before{display:table;content:" "}.factory-bootstrap-422 .btn-group-vertical>.btn-group:after{clear:both}.factory-bootstrap-422 .btn-group-vertical>.btn-group>.btn{float:none}.factory-bootstrap-422 .btn-group-vertical>.btn+.btn,.factory-bootstrap-422 .btn-group-vertical>.btn+.btn-group,.factory-bootstrap-422 .btn-group-vertical>.btn-group+.btn,.factory-bootstrap-422 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.factory-bootstrap-422 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-422 .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-422 .btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.factory-bootstrap-422 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-422 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.factory-bootstrap-422 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-422 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.factory-bootstrap-422 .btn-group-justified>.btn,.factory-bootstrap-422 .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.factory-bootstrap-422 .btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.factory-bootstrap-422 .input-group{position:relative;display:table;border-collapse:separate}.factory-bootstrap-422 .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.factory-bootstrap-422 .input-group .form-control{width:100%;margin-bottom:0}.factory-bootstrap-422 .input-group-lg>.form-control,.factory-bootstrap-422 .input-group-lg>.input-group-addon,.factory-bootstrap-422 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-422 select.input-group-lg>.form-control,.factory-bootstrap-422 select.input-group-lg>.input-group-addon,.factory-bootstrap-422 select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}.factory-bootstrap-422 textarea.input-group-lg>.form-control,.factory-bootstrap-422 textarea.input-group-lg>.input-group-addon,.factory-bootstrap-422 textarea.input-group-lg>.input-group-btn>.btn{height:auto}.factory-bootstrap-422 .input-group-sm>.form-control,.factory-bootstrap-422 .input-group-sm>.input-group-addon,.factory-bootstrap-422 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-422 select.input-group-sm>.form-control,.factory-bootstrap-422 select.input-group-sm>.input-group-addon,.factory-bootstrap-422 select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}.factory-bootstrap-422 textarea.input-group-sm>.form-control,.factory-bootstrap-422 textarea.input-group-sm>.input-group-addon,.factory-bootstrap-422 textarea.input-group-sm>.input-group-btn>.btn{height:auto}.factory-bootstrap-422 .input-group .form-control,.factory-bootstrap-422 .input-group-addon,.factory-bootstrap-422 .input-group-btn{display:table-cell}.factory-bootstrap-422 .input-group .form-control:not(:first-child):not(:last-child),.factory-bootstrap-422 .input-group-addon:not(:first-child):not(:last-child),.factory-bootstrap-422 .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-422 .input-group-addon,.factory-bootstrap-422 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.factory-bootstrap-422 .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.factory-bootstrap-422 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.factory-bootstrap-422 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.factory-bootstrap-422 .input-group-addon input[type=checkbox],.factory-bootstrap-422 .input-group-addon input[type=radio]{margin-top:0}.factory-bootstrap-422 .input-group .form-control:first-child,.factory-bootstrap-422 .input-group-addon:first-child,.factory-bootstrap-422 .input-group-btn:first-child>.btn,.factory-bootstrap-422 .input-group-btn:first-child>.dropdown-toggle,.factory-bootstrap-422 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-422 .input-group-addon:first-child{border-right:0}.factory-bootstrap-422 .input-group .form-control:last-child,.factory-bootstrap-422 .input-group-addon:last-child,.factory-bootstrap-422 .input-group-btn:first-child>.btn:not(:first-child),.factory-bootstrap-422 .input-group-btn:last-child>.btn,.factory-bootstrap-422 .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .input-group-addon:last-child{border-left:0}.factory-bootstrap-422 .input-group-btn{position:relative;white-space:nowrap}.factory-bootstrap-422 .input-group-btn:first-child>.btn{margin-right:-1px}.factory-bootstrap-422 .input-group-btn:last-child>.btn{margin-left:-1px}.factory-bootstrap-422 .input-group-btn>.btn{position:relative}.factory-bootstrap-422 .input-group-btn>.btn+.btn{margin-left:-4px}.factory-bootstrap-422 .input-group-btn>.btn:active,.factory-bootstrap-422 .input-group-btn>.btn:hover{z-index:2}.factory-bootstrap-422 .nav{padding-left:0;margin-bottom:0;list-style:none}.factory-bootstrap-422 .nav:after,.factory-bootstrap-422 .nav:before{display:table;content:" "}.factory-bootstrap-422 .nav:after{clear:both}.factory-bootstrap-422 .nav>li{position:relative;display:block}.factory-bootstrap-422 .nav>li>a{position:relative;display:block;padding:10px 15px}.factory-bootstrap-422 .nav>li>a:focus,.factory-bootstrap-422 .nav>li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-422 .nav>li.disabled>a{color:#999}.factory-bootstrap-422 .nav>li.disabled>a:focus,.factory-bootstrap-422 .nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.factory-bootstrap-422 .nav .open>a,.factory-bootstrap-422 .nav .open>a:focus,.factory-bootstrap-422 .nav .open>a:hover{background-color:#eee;border-color:#428bca}.factory-bootstrap-422 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-422 .nav>li>a>img{max-width:none}.factory-bootstrap-422 .nav-tabs{border-bottom:1px solid #ddd}.factory-bootstrap-422 .nav-tabs>li{float:left;margin-bottom:-1px}.factory-bootstrap-422 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.factory-bootstrap-422 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.factory-bootstrap-422 .nav-tabs>li.active>a,.factory-bootstrap-422 .nav-tabs>li.active>a:focus,.factory-bootstrap-422 .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.factory-bootstrap-422 .nav-tabs.nav-justified{width:100%;border-bottom:0}.factory-bootstrap-422 .nav-tabs.nav-justified>li{float:none}.factory-bootstrap-422 .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-422 .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.factory-bootstrap-422 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-422 .nav-tabs.nav-justified>.active>a,.factory-bootstrap-422 .nav-tabs.nav-justified>.active>a:focus,.factory-bootstrap-422 .nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.factory-bootstrap-422 .nav-pills>li{float:left}.factory-bootstrap-422 .nav-pills>li>a{border-radius:4px}.factory-bootstrap-422 .nav-pills>li+li{margin-left:2px}.factory-bootstrap-422 .nav-pills>li.active>a,.factory-bootstrap-422 .nav-pills>li.active>a:focus,.factory-bootstrap-422 .nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.factory-bootstrap-422 .nav-stacked>li{float:none}.factory-bootstrap-422 .nav-stacked>li+li{margin-top:2px;margin-left:0}.factory-bootstrap-422 .nav-justified{width:100%}.factory-bootstrap-422 .nav-justified>li{float:none}.factory-bootstrap-422 .nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-422 .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.factory-bootstrap-422 .nav-tabs-justified{border-bottom:0}.factory-bootstrap-422 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-422 .nav-tabs-justified>.active>a,.factory-bootstrap-422 .nav-tabs-justified>.active>a:focus,.factory-bootstrap-422 .nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.factory-bootstrap-422 .tab-content>.tab-pane{display:none}.factory-bootstrap-422 .tab-content>.active{display:block}.factory-bootstrap-422 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.factory-bootstrap-422 .navbar:after,.factory-bootstrap-422 .navbar:before{display:table;content:" "}.factory-bootstrap-422 .navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.factory-bootstrap-422 .navbar-header:after,.factory-bootstrap-422 .navbar-header:before{display:table;content:" "}.factory-bootstrap-422 .navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.factory-bootstrap-422 .navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.factory-bootstrap-422 .navbar-collapse:after,.factory-bootstrap-422 .navbar-collapse:before{display:table;content:" "}.factory-bootstrap-422 .navbar-collapse:after{clear:both}.factory-bootstrap-422 .navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.factory-bootstrap-422 .container>.navbar-collapse,.factory-bootstrap-422 .container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.factory-bootstrap-422 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.factory-bootstrap-422 .navbar-fixed-bottom,.factory-bootstrap-422 .navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.factory-bootstrap-422 .navbar-fixed-top{top:0;border-width:0 0 1px}.factory-bootstrap-422 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.factory-bootstrap-422 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.factory-bootstrap-422 .navbar-brand:focus,.factory-bootstrap-422 .navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.factory-bootstrap-422 .navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.factory-bootstrap-422 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.factory-bootstrap-422 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.factory-bootstrap-422 .navbar-nav{margin:7.5px -15px}.factory-bootstrap-422 .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.factory-bootstrap-422 .navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.factory-bootstrap-422 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-422 .navbar-nav.pull-right>li>.dropdown-menu,.factory-bootstrap-422 .navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-422 .navbar-btn{margin-top:8px;margin-bottom:8px}.factory-bootstrap-422 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.factory-bootstrap-422 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.factory-bootstrap-422 .navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.factory-bootstrap-422 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.factory-bootstrap-422 .navbar-default .navbar-brand{color:#777}.factory-bootstrap-422 .navbar-default .navbar-brand:focus,.factory-bootstrap-422 .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.factory-bootstrap-422 .navbar-default .navbar-nav>li>a,.factory-bootstrap-422 .navbar-default .navbar-text{color:#777}.factory-bootstrap-422 .navbar-default .navbar-nav>li>a:focus,.factory-bootstrap-422 .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.factory-bootstrap-422 .navbar-default .navbar-nav>.active>a,.factory-bootstrap-422 .navbar-default .navbar-nav>.active>a:focus,.factory-bootstrap-422 .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.factory-bootstrap-422 .navbar-default .navbar-nav>.disabled>a,.factory-bootstrap-422 .navbar-default .navbar-nav>.disabled>a:focus,.factory-bootstrap-422 .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.factory-bootstrap-422 .navbar-default .navbar-toggle{border-color:#ddd}.factory-bootstrap-422 .navbar-default .navbar-toggle:focus,.factory-bootstrap-422 .navbar-default .navbar-toggle:hover{background-color:#ddd}.factory-bootstrap-422 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.factory-bootstrap-422 .navbar-default .navbar-collapse,.factory-bootstrap-422 .navbar-default .navbar-form{border-color:#e7e7e7}.factory-bootstrap-422 .navbar-default .navbar-nav>.open>a,.factory-bootstrap-422 .navbar-default .navbar-nav>.open>a:focus,.factory-bootstrap-422 .navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.factory-bootstrap-422 .navbar-default .navbar-link{color:#777}.factory-bootstrap-422 .navbar-default .navbar-link:hover{color:#333}.factory-bootstrap-422 .navbar-inverse{background-color:#222;border-color:#080808}.factory-bootstrap-422 .navbar-inverse .navbar-brand{color:#999}.factory-bootstrap-422 .navbar-inverse .navbar-brand:focus,.factory-bootstrap-422 .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.factory-bootstrap-422 .navbar-inverse .navbar-nav>li>a,.factory-bootstrap-422 .navbar-inverse .navbar-text{color:#999}.factory-bootstrap-422 .navbar-inverse .navbar-nav>li>a:focus,.factory-bootstrap-422 .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.factory-bootstrap-422 .navbar-inverse .navbar-nav>.active>a,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.active>a:focus,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.factory-bootstrap-422 .navbar-inverse .navbar-nav>.disabled>a,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.disabled>a:focus,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.factory-bootstrap-422 .navbar-inverse .navbar-toggle{border-color:#333}.factory-bootstrap-422 .navbar-inverse .navbar-toggle:focus,.factory-bootstrap-422 .navbar-inverse .navbar-toggle:hover{background-color:#333}.factory-bootstrap-422 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.factory-bootstrap-422 .navbar-inverse .navbar-collapse,.factory-bootstrap-422 .navbar-inverse .navbar-form{border-color:#101010}.factory-bootstrap-422 .navbar-inverse .navbar-nav>.open>a,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.open>a:focus,.factory-bootstrap-422 .navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.factory-bootstrap-422 .navbar-inverse .navbar-link{color:#999}.factory-bootstrap-422 .navbar-inverse .navbar-link:hover{color:#fff}.factory-bootstrap-422 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.factory-bootstrap-422 .breadcrumb>li{display:inline-block}.factory-bootstrap-422 .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.factory-bootstrap-422 .breadcrumb>.active{color:#999}.factory-bootstrap-422 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.factory-bootstrap-422 .pagination>li{display:inline}.factory-bootstrap-422 .pagination>li>a,.factory-bootstrap-422 .pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-422 .pagination>li:first-child>a,.factory-bootstrap-422 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.factory-bootstrap-422 .pagination>li:last-child>a,.factory-bootstrap-422 .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.factory-bootstrap-422 .pagination>li>a:focus,.factory-bootstrap-422 .pagination>li>a:hover,.factory-bootstrap-422 .pagination>li>span:focus,.factory-bootstrap-422 .pagination>li>span:hover{background-color:#eee}.factory-bootstrap-422 .pagination>.active>a,.factory-bootstrap-422 .pagination>.active>a:focus,.factory-bootstrap-422 .pagination>.active>a:hover,.factory-bootstrap-422 .pagination>.active>span,.factory-bootstrap-422 .pagination>.active>span:focus,.factory-bootstrap-422 .pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#1e8cbe;border-color:#0074a2}.factory-bootstrap-422 .pagination>.disabled>a,.factory-bootstrap-422 .pagination>.disabled>a:focus,.factory-bootstrap-422 .pagination>.disabled>a:hover,.factory-bootstrap-422 .pagination>.disabled>span,.factory-bootstrap-422 .pagination>.disabled>span:focus,.factory-bootstrap-422 .pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.factory-bootstrap-422 .pagination-lg>li>a,.factory-bootstrap-422 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.factory-bootstrap-422 .pagination-lg>li:first-child>a,.factory-bootstrap-422 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.factory-bootstrap-422 .pagination-lg>li:last-child>a,.factory-bootstrap-422 .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.factory-bootstrap-422 .pagination-sm>li>a,.factory-bootstrap-422 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.factory-bootstrap-422 .pagination-sm>li:first-child>a,.factory-bootstrap-422 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.factory-bootstrap-422 .pagination-sm>li:last-child>a,.factory-bootstrap-422 .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.factory-bootstrap-422 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.factory-bootstrap-422 .pager:after,.factory-bootstrap-422 .pager:before{display:table;content:" "}.factory-bootstrap-422 .pager:after{clear:both}.factory-bootstrap-422 .pager li{display:inline}.factory-bootstrap-422 .pager li>a,.factory-bootstrap-422 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.factory-bootstrap-422 .pager li>a:focus,.factory-bootstrap-422 .pager li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-422 .pager .next>a,.factory-bootstrap-422 .pager .next>span{float:right}.factory-bootstrap-422 .pager .previous>a,.factory-bootstrap-422 .pager .previous>span{float:left}.factory-bootstrap-422 .pager .disabled>a,.factory-bootstrap-422 .pager .disabled>a:focus,.factory-bootstrap-422 .pager .disabled>a:hover,.factory-bootstrap-422 .pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.factory-bootstrap-422 .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.factory-bootstrap-422 .label[href]:focus,.factory-bootstrap-422 .label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-422 .label:empty{display:none}.factory-bootstrap-422 .btn .label{position:relative;top:-1px}.factory-bootstrap-422 .label-default{background-color:#999}.factory-bootstrap-422 .label-default[href]:focus,.factory-bootstrap-422 .label-default[href]:hover{background-color:gray}.factory-bootstrap-422 .label-primary{background-color:#428bca}.factory-bootstrap-422 .label-primary[href]:focus,.factory-bootstrap-422 .label-primary[href]:hover{background-color:#3071a9}.factory-bootstrap-422 .label-success{background-color:#5cb85c}.factory-bootstrap-422 .label-success[href]:focus,.factory-bootstrap-422 .label-success[href]:hover{background-color:#449d44}.factory-bootstrap-422 .label-info{background-color:#5bc0de}.factory-bootstrap-422 .label-info[href]:focus,.factory-bootstrap-422 .label-info[href]:hover{background-color:#31b0d5}.factory-bootstrap-422 .label-warning{background-color:#f0ad4e}.factory-bootstrap-422 .label-warning[href]:focus,.factory-bootstrap-422 .label-warning[href]:hover{background-color:#ec971f}.factory-bootstrap-422 .label-danger{background-color:#d9534f}.factory-bootstrap-422 .label-danger[href]:focus,.factory-bootstrap-422 .label-danger[href]:hover{background-color:#c9302c}.factory-bootstrap-422 .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.factory-bootstrap-422 .badge:empty{display:none}.factory-bootstrap-422 .btn .badge{position:relative;top:-1px}.factory-bootstrap-422 a.badge:focus,.factory-bootstrap-422 a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-422 .nav-pills>.active>a>.badge,.factory-bootstrap-422 a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.factory-bootstrap-422 .nav-pills>li>a>.badge{margin-left:3px}.factory-bootstrap-422 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.factory-bootstrap-422 .jumbotron .h1,.factory-bootstrap-422 .jumbotron h1{line-height:1;color:inherit}.factory-bootstrap-422 .jumbotron p{line-height:1.4}.factory-bootstrap-422 .container .jumbotron{border-radius:6px}.factory-bootstrap-422 .jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.factory-bootstrap-422 .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.factory-bootstrap-422 .thumbnail a>img,.factory-bootstrap-422 .thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}.factory-bootstrap-422 a.thumbnail.active,.factory-bootstrap-422 a.thumbnail:focus,.factory-bootstrap-422 a.thumbnail:hover{border-color:#428bca}.factory-bootstrap-422 .thumbnail .caption{padding:9px;color:#333}.factory-bootstrap-422 .alert{border:1px solid transparent;border-radius:4px}.factory-bootstrap-422 .alert h4{margin-top:0;color:inherit}.factory-bootstrap-422 .alert .alert-link{font-weight:700}.factory-bootstrap-422 .alert>p,.factory-bootstrap-422 .alert>ul{margin-bottom:0}.factory-bootstrap-422 .alert>p+p{margin-top:5px}.factory-bootstrap-422 .alert-dismissable{padding-right:35px}.factory-bootstrap-422 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.factory-bootstrap-422 .alert-info{color:#31708f;background-color:#d9edf7}.factory-bootstrap-422 .alert-info hr{border-top-color:#a6e1ec}.factory-bootstrap-422 .alert-info .alert-link{color:#245269}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.factory-bootstrap-422 .progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.factory-bootstrap-422 .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#2ea2cc;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.factory-bootstrap-422 .progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.factory-bootstrap-422 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.factory-bootstrap-422 .progress-bar-success{background-color:#5cb85c}.factory-bootstrap-422 .progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-422 .progress-bar-info{background-color:#5bc0de}.factory-bootstrap-422 .progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-422 .progress-bar-warning{background-color:#f0ad4e}.factory-bootstrap-422 .progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-422 .progress-bar-danger{background-color:#d9534f}.factory-bootstrap-422 .progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-422 .media,.factory-bootstrap-422 .media-body{overflow:hidden;zoom:1}.factory-bootstrap-422 .media,.factory-bootstrap-422 .media .media{margin-top:15px}.factory-bootstrap-422 .media:first-child{margin-top:0}.factory-bootstrap-422 .media-object{display:block}.factory-bootstrap-422 .media-heading{margin:0 0 5px}.factory-bootstrap-422 .media>.pull-left{margin-right:10px}.factory-bootstrap-422 .media>.pull-right{margin-left:10px}.factory-bootstrap-422 .media-list{padding-left:0;list-style:none}.factory-bootstrap-422 .list-group{padding-left:0;margin-bottom:20px}.factory-bootstrap-422 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-422 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.factory-bootstrap-422 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.factory-bootstrap-422 .list-group-item>.badge{float:right}.factory-bootstrap-422 .list-group-item>.badge+.badge{margin-right:5px}.factory-bootstrap-422 a.list-group-item{color:#555}.factory-bootstrap-422 a.list-group-item .list-group-item-heading{color:#333}.factory-bootstrap-422 a.list-group-item:focus,.factory-bootstrap-422 a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.factory-bootstrap-422 a.list-group-item.active,.factory-bootstrap-422 a.list-group-item.active:focus,.factory-bootstrap-422 a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-422 a.list-group-item.active .list-group-item-heading,.factory-bootstrap-422 a.list-group-item.active:focus .list-group-item-heading,.factory-bootstrap-422 a.list-group-item.active:hover .list-group-item-heading{color:inherit}.factory-bootstrap-422 a.list-group-item.active .list-group-item-text,.factory-bootstrap-422 a.list-group-item.active:focus .list-group-item-text,.factory-bootstrap-422 a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.factory-bootstrap-422 .list-group-item-heading{margin-top:0;margin-bottom:5px}.factory-bootstrap-422 .list-group-item-text{margin-bottom:0;line-height:1.3}.factory-bootstrap-422 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.factory-bootstrap-422 .panel-body{padding:15px}.factory-bootstrap-422 .panel-body:after,.factory-bootstrap-422 .panel-body:before{display:table;content:" "}.factory-bootstrap-422 .panel-body:after{clear:both}.factory-bootstrap-422 .panel>.list-group{margin-bottom:0}.factory-bootstrap-422 .panel>.list-group .list-group-item{border-width:1px 0}.factory-bootstrap-422 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-422 .panel>.list-group .list-group-item:last-child{border-bottom:0}.factory-bootstrap-422 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.factory-bootstrap-422 .panel>.table,.factory-bootstrap-422 .panel>.table-responsive>.table{margin-bottom:0}.factory-bootstrap-422 .panel>.panel-body+.table,.factory-bootstrap-422 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.factory-bootstrap-422 .panel>.table>tbody:first-child td,.factory-bootstrap-422 .panel>.table>tbody:first-child th{border-top:0}.factory-bootstrap-422 .panel>.table-bordered,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered{border:0}.factory-bootstrap-422 .panel>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-422 .panel>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-422 .panel>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-422 .panel>.table-bordered>thead>tr>th:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.factory-bootstrap-422 .panel>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-422 .panel>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-422 .panel>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-422 .panel>.table-bordered>thead>tr>th:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.factory-bootstrap-422 .panel>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-422 .panel>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-422 .panel>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-422 .panel>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-422 .panel>.table-bordered>thead>tr:last-child>th,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-422 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}.factory-bootstrap-422 .panel>.table-responsive{margin-bottom:0;border:0}.factory-bootstrap-422 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.factory-bootstrap-422 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.factory-bootstrap-422 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.factory-bootstrap-422 .panel-title>a{color:inherit}.factory-bootstrap-422 .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.factory-bootstrap-422 .panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.factory-bootstrap-422 .panel-group .panel+.panel{margin-top:5px}.factory-bootstrap-422 .panel-group .panel-heading{border-bottom:0}.factory-bootstrap-422 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.factory-bootstrap-422 .panel-group .panel-footer{border-top:0}.factory-bootstrap-422 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.factory-bootstrap-422 .panel-default{border-color:#ddd}.factory-bootstrap-422 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.factory-bootstrap-422 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.factory-bootstrap-422 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.factory-bootstrap-422 .panel-primary{border-color:#428bca}.factory-bootstrap-422 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-422 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.factory-bootstrap-422 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.factory-bootstrap-422 .panel-success{border-color:#d6e9c6}.factory-bootstrap-422 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.factory-bootstrap-422 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.factory-bootstrap-422 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.factory-bootstrap-422 .panel-warning{border-color:#faebcc}.factory-bootstrap-422 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.factory-bootstrap-422 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.factory-bootstrap-422 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.factory-bootstrap-422 .panel-danger{border-color:#ebccd1}.factory-bootstrap-422 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.factory-bootstrap-422 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.factory-bootstrap-422 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.factory-bootstrap-422 .panel-info{border-color:#bce8f1}.factory-bootstrap-422 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.factory-bootstrap-422 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.factory-bootstrap-422 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.factory-bootstrap-422 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.factory-bootstrap-422 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.factory-bootstrap-422 .well-lg{padding:24px;border-radius:6px}.factory-bootstrap-422 .well-sm{padding:9px;border-radius:3px}.factory-bootstrap-422 .close{float:right;font-size:14px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.3;filter:alpha(opacity=30)}.factory-bootstrap-422 .alert .close{position:relative;top:-8px;right:-7px}.factory-bootstrap-422 .close:focus,.factory-bootstrap-422 .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-422 button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.factory-bootstrap-422 .modal-open{overflow:hidden}.factory-bootstrap-422 .modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll;width:auto;margin-left:0;background-color:transparent;border:0}.factory-bootstrap-422 .modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.factory-bootstrap-422 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.factory-bootstrap-422 .modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.factory-bootstrap-422 .modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box}.factory-bootstrap-422 .modal-backdrop,.factory-bootstrap-422-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.factory-bootstrap-422 .modal-backdrop.fade,.factory-bootstrap-422-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.factory-bootstrap-422 .modal-backdrop.in,.factory-bootstrap-422-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-422 .modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.factory-bootstrap-422 .modal-header .close{margin-top:-2px}.factory-bootstrap-422 .modal-title{margin:0;line-height:1.428571429}.factory-bootstrap-422 .modal-body{position:relative;padding:20px;max-height:none}.factory-bootstrap-422 .modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.factory-bootstrap-422 .modal-footer:after,.factory-bootstrap-422 .modal-footer:before{display:table;content:" "}.factory-bootstrap-422 .modal-footer:after{clear:both}.factory-bootstrap-422 .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.factory-bootstrap-422 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.factory-bootstrap-422 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.factory-bootstrap-422 .modal-dialog{width:600px;margin:30px auto}.factory-bootstrap-422 .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}}.factory-bootstrap-422 .tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.factory-bootstrap-422 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-422 .tooltip.top{padding:5px 0;margin-top:-3px}.factory-bootstrap-422 .tooltip.right{padding:0 5px;margin-left:3px}.factory-bootstrap-422 .tooltip.bottom{padding:5px 0;margin-top:3px}.factory-bootstrap-422 .tooltip.left{padding:0 5px;margin-left:-3px}.factory-bootstrap-422 .tooltip-inner{width:400px;padding:15px 20px;color:#fff;text-align:left;text-decoration:none;background-color:#673ab7;border-radius:3px}.factory-bootstrap-422 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-422 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-422 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-422 .tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-422 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#673ab7;border-width:5px 5px 5px 0}.factory-bootstrap-422 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#673ab7;border-width:5px 0 5px 5px}.factory-bootstrap-422 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-422 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-422 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-422 .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);background-clip:padding-box}.factory-bootstrap-422 .popover.top{margin-top:-10px}.factory-bootstrap-422 .popover.right{margin-left:10px}.factory-bootstrap-422 .popover.bottom{margin-top:10px}.factory-bootstrap-422 .popover.left{margin-left:-10px}.factory-bootstrap-422 .popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.factory-bootstrap-422 .popover-content{padding:9px 14px}.factory-bootstrap-422 .popover .arrow,.factory-bootstrap-422 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-422 .popover .arrow{border-width:11px}.factory-bootstrap-422 .popover .arrow:after{border-width:10px;content:""}.factory-bootstrap-422 .popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.factory-bootstrap-422 .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.factory-bootstrap-422 .popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.factory-bootstrap-422 .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.factory-bootstrap-422 .popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);border-top-width:0}.factory-bootstrap-422 .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.factory-bootstrap-422 .popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,.25);border-right-width:0}.factory-bootstrap-422 .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.factory-bootstrap-422 .carousel{position:relative}.factory-bootstrap-422 .carousel-inner{position:relative;width:100%;overflow:hidden}.factory-bootstrap-422 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.factory-bootstrap-422 .carousel-inner>.item>a>img,.factory-bootstrap-422 .carousel-inner>.item>img{display:block;height:auto;max-width:100%;line-height:1}.factory-bootstrap-422 .carousel-inner>.active,.factory-bootstrap-422 .carousel-inner>.next,.factory-bootstrap-422 .carousel-inner>.prev{display:block}.factory-bootstrap-422 .carousel-inner>.active{left:0}.factory-bootstrap-422 .carousel-inner>.next,.factory-bootstrap-422 .carousel-inner>.prev{position:absolute;top:0;width:100%}.factory-bootstrap-422 .carousel-inner>.next{left:100%}.factory-bootstrap-422 .carousel-inner>.prev{left:-100%}.factory-bootstrap-422 .carousel-inner>.next.left,.factory-bootstrap-422 .carousel-inner>.prev.right{left:0}.factory-bootstrap-422 .carousel-inner>.active.left{left:-100%}.factory-bootstrap-422 .carousel-inner>.active.right{left:100%}.factory-bootstrap-422 .carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-422 .carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.factory-bootstrap-422 .carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.factory-bootstrap-422 .carousel-control:focus,.factory-bootstrap-422 .carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-422 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-422 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-422 .carousel-control .icon-next,.factory-bootstrap-422 .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.factory-bootstrap-422 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-422 .carousel-control .icon-prev{left:50%}.factory-bootstrap-422 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-422 .carousel-control .icon-next{right:50%}.factory-bootstrap-422 .carousel-control .icon-next,.factory-bootstrap-422 .carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.factory-bootstrap-422 .carousel-control .icon-prev:before{content:'\2039'}.factory-bootstrap-422 .carousel-control .icon-next:before{content:'\203a'}.factory-bootstrap-422 .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.factory-bootstrap-422 .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.factory-bootstrap-422 .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.factory-bootstrap-422 .carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.factory-bootstrap-422 .carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.factory-bootstrap-422 .clearfix:after,.factory-bootstrap-422 .clearfix:before{display:table;content:" "}.factory-bootstrap-422 .clearfix:after{clear:both}.factory-bootstrap-422 .center-block{display:block;margin-right:auto;margin-left:auto}.factory-bootstrap-422 .pull-right{float:right!important}.factory-bootstrap-422 .pull-left{float:left!important}.factory-bootstrap-422 .hide{display:none!important}.factory-bootstrap-422 .show{display:block!important}.factory-bootstrap-422 .invisible{visibility:hidden}.factory-bootstrap-422 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.factory-bootstrap-422 .hidden{display:none!important;visibility:hidden!important}.factory-bootstrap-422 .affix{position:fixed}@-ms-viewport{width:device-width}.factory-bootstrap-422 .visible-lg,.factory-bootstrap-422 .visible-md,.factory-bootstrap-422 .visible-sm,.factory-bootstrap-422 .visible-xs,.factory-bootstrap-422 td.visible-lg,.factory-bootstrap-422 td.visible-md,.factory-bootstrap-422 td.visible-sm,.factory-bootstrap-422 td.visible-xs,.factory-bootstrap-422 th.visible-lg,.factory-bootstrap-422 th.visible-md,.factory-bootstrap-422 th.visible-sm,.factory-bootstrap-422 th.visible-xs,.factory-bootstrap-422 tr.visible-lg,.factory-bootstrap-422 tr.visible-md,.factory-bootstrap-422 tr.visible-sm,.factory-bootstrap-422 tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}table.visible-xs.visible-sm{display:table}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}table.visible-xs.visible-md{display:table}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}table.visible-xs.visible-lg{display:table}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}table.visible-sm.visible-xs{display:table}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}table.visible-sm.visible-md{display:table}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}table.visible-sm.visible-lg{display:table}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}table.visible-md.visible-xs{display:table}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}table.visible-md.visible-sm{display:table}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}table.visible-md.visible-lg{display:table}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}table.visible-lg.visible-xs{display:table}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}table.visible-lg.visible-sm{display:table}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}table.visible-lg.visible-md{display:table}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.factory-bootstrap-422 .hidden-xs{display:block!important}.factory-bootstrap-422 table.hidden-xs{display:table}.factory-bootstrap-422 tr.hidden-xs{display:table-row!important}.factory-bootstrap-422 td.hidden-xs,.factory-bootstrap-422 th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.factory-bootstrap-422 .hidden-sm{display:block!important}.factory-bootstrap-422 table.hidden-sm{display:table}.factory-bootstrap-422 tr.hidden-sm{display:table-row!important}.factory-bootstrap-422 td.hidden-sm,.factory-bootstrap-422 th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.factory-bootstrap-422 .hidden-md{display:block!important}.factory-bootstrap-422 table.hidden-md{display:table}.factory-bootstrap-422 tr.hidden-md{display:table-row!important}.factory-bootstrap-422 td.hidden-md,.factory-bootstrap-422 th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.factory-bootstrap-422 .hidden-lg{display:block!important}.factory-bootstrap-422 table.hidden-lg{display:table}.factory-bootstrap-422 tr.hidden-lg{display:table-row!important}.factory-bootstrap-422 td.hidden-lg,.factory-bootstrap-422 th.hidden-lg{display:table-cell!important}@media (max-width:767px){.factory-bootstrap-422 .hidden-lg.hidden-xs,.factory-bootstrap-422 td.hidden-lg.hidden-xs,.factory-bootstrap-422 th.hidden-lg.hidden-xs,.factory-bootstrap-422 tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.factory-bootstrap-422 .hidden-lg.hidden-sm,.factory-bootstrap-422 td.hidden-lg.hidden-sm,.factory-bootstrap-422 th.hidden-lg.hidden-sm,.factory-bootstrap-422 tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.factory-bootstrap-422 .hidden-lg.hidden-md,.factory-bootstrap-422 td.hidden-lg.hidden-md,.factory-bootstrap-422 th.hidden-lg.hidden-md,.factory-bootstrap-422 tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.factory-bootstrap-422 .hidden-lg,.factory-bootstrap-422 td.hidden-lg,.factory-bootstrap-422 th.hidden-lg,.factory-bootstrap-422 tr.hidden-lg{display:none!important}}.factory-bootstrap-422 .visible-print,.factory-bootstrap-422 td.visible-print,.factory-bootstrap-422 th.visible-print,.factory-bootstrap-422 tr.visible-print{display:none!important}@media print{.factory-bootstrap-422 .visible-print{display:block!important}.factory-bootstrap-422 table.visible-print{display:table}.factory-bootstrap-422 tr.visible-print{display:table-row!important}.factory-bootstrap-422 td.visible-print,.factory-bootstrap-422 th.visible-print{display:table-cell!important}.factory-bootstrap-422 .hidden-print,.factory-bootstrap-422 td.hidden-print,.factory-bootstrap-422 th.hidden-print,.factory-bootstrap-422 tr.hidden-print{display:none!important}}/*!
12
  * Factory Default Bootstrap Theme
13
  *
14
  * The code is based on Bootstrap v2.1.1
@@ -22,4 +22,4 @@
22
  *
23
  * @package factory-bootstrap
24
  * @since 1.0.0
25
- */.factory-bootstrap-422 .btn-danger,.factory-bootstrap-422 .btn-default,.factory-bootstrap-422 .btn-info,.factory-bootstrap-422 .btn-primary,.factory-bootstrap-422 .btn-success,.factory-bootstrap-422 .btn-warning{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-422 .btn-danger.active,.factory-bootstrap-422 .btn-danger:active,.factory-bootstrap-422 .btn-default.active,.factory-bootstrap-422 .btn-default:active,.factory-bootstrap-422 .btn-info.active,.factory-bootstrap-422 .btn-info:active,.factory-bootstrap-422 .btn-primary.active,.factory-bootstrap-422 .btn-primary:active,.factory-bootstrap-422 .btn-success.active,.factory-bootstrap-422 .btn-success:active,.factory-bootstrap-422 .btn-warning.active,.factory-bootstrap-422 .btn-warning:active{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.1);box-shadow:inset 0 1px 1px rgba(0,0,0,.1)}.factory-bootstrap-422 .btn.active,.factory-bootstrap-422 .btn:active{background-image:none}.factory-bootstrap-422 .btn-default{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.factory-bootstrap-422 .btn-default.active,.factory-bootstrap-422 .btn-default:active{background-color:#fff;border-color:#dbdbdb}.factory-bootstrap-422 .btn-gold{font-weight:700;padding:7px 12px;cursor:pointer;line-height:16px;display:inline-block;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;box-shadow:#e3e3e3 0 1px 1px;-moz-box-shadow:0 1px 1px rgba(000,000,000,.1),inset 0 1px 1px rgba(255,255,255,.7);-webkit-box-shadow:0 1px 1px rgba(000,000,000,.1),inset 0 1px 1px rgba(255,255,255,.7);text-shadow:1px 1px 0 #ffe8b2;color:#7c5d1b;border:1px solid #d6a437;background:#feeb80}.factory-bootstrap-422 .btn-gold:focus,.factory-bootstrap-422 .btn-gold:hover{background:#fef0a1}.factory-bootstrap-422 .btn-gold.active,.factory-bootstrap-422 .btn-gold:active{background:#fef0a1;-webkit-box-shadow:inset 0 3px 8px 0 #f8ba36;box-shadow:inset 0 3px 8px 0 #f8ba36}.factory-bootstrap-422 .btn-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.factory-bootstrap-422 .btn-primary:focus,.factory-bootstrap-422 .btn-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.factory-bootstrap-422 .btn-primary.active,.factory-bootstrap-422 .btn-primary:active{background-color:#2d6ca2;border-color:#2b669a}.factory-bootstrap-422 .btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-422 .btn-success:focus,.factory-bootstrap-422 .btn-success:hover{background-color:#419641;background-position:0 -15px}.factory-bootstrap-422 .btn-success.active,.factory-bootstrap-422 .btn-success:active{background-color:#419641;border-color:#3e8f3e}.factory-bootstrap-422 .btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-422 .btn-warning:focus,.factory-bootstrap-422 .btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.factory-bootstrap-422 .btn-warning.active,.factory-bootstrap-422 .btn-warning:active{background-color:#eb9316;border-color:#e38d13}.factory-bootstrap-422 .btn-danger{color:#fff;background:#d9534f;border-color:#d43f3a}.factory-bootstrap-422 .btn-danger.active,.factory-bootstrap-422 .btn-danger:active,.factory-bootstrap-422 .btn-danger:focus,.factory-bootstrap-422 .btn-danger:hover,.factory-bootstrap-422 .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.factory-bootstrap-422 .btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-422 .btn-info:focus,.factory-bootstrap-422 .btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.factory-bootstrap-422 .btn-info.active,.factory-bootstrap-422 .btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.factory-bootstrap-422 .img-thumbnail,.factory-bootstrap-422 .thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-422 .dropdown-menu>li>a:focus,.factory-bootstrap-422 .dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.factory-bootstrap-422 .dropdown-menu>.active>a,.factory-bootstrap-422 .dropdown-menu>.active>a:focus,.factory-bootstrap-422 .dropdown-menu>.active>a:hover{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.factory-bootstrap-422 .navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.factory-bootstrap-422 .navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.factory-bootstrap-422 .navbar-brand,.factory-bootstrap-422 .navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.factory-bootstrap-422 .navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-422 .navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.factory-bootstrap-422 .navbar-inverse .navbar-brand,.factory-bootstrap-422 .navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-422 .navbar-fixed-bottom,.factory-bootstrap-422 .navbar-fixed-top,.factory-bootstrap-422 .navbar-static-top{border-radius:0}.factory-bootstrap-422 .alert{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-422 .alert .actions{padding-top:10px}.factory-bootstrap-422 .alert-success{color:#3c763d;background-color:#dff0d8;border-bottom:2px solid #c8e5bc}.factory-bootstrap-422 .alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0)}.factory-bootstrap-422 .alert{text-shadow:none;box-shadow:none;margin:0;margin-top:10px;margin-bottom:10px;padding:10px}.factory-bootstrap-422 .alert-normal,.factory-bootstrap-422 .alert-warning{background:#fcf8e3;color:#8a6d3b;border:1px solid #b8823b}.factory-bootstrap-422 .alert-danger{background:#cf4944;color:#fff;border-bottom:2px solid #b23e3a}.factory-bootstrap-422 .alert-danger a:not(.btn),.factory-bootstrap-422 .alert-error a:not(.btn){color:#fff}.factory-bootstrap-422 .progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.factory-bootstrap-422 .progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.factory-bootstrap-422 .progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.factory-bootstrap-422 .progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.factory-bootstrap-422 .progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.factory-bootstrap-422 .progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.factory-bootstrap-422 .list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-422 .list-group-item.active,.factory-bootstrap-422 .list-group-item.active:focus,.factory-bootstrap-422 .list-group-item.active:hover{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0)}.factory-bootstrap-422 .panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-422 .panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.factory-bootstrap-422 .panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.factory-bootstrap-422 .panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.factory-bootstrap-422 .panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.factory-bootstrap-422 .panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.factory-bootstrap-422 .panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.factory-bootstrap-422 .well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}.factory-bootstrap-422 .factory-after{margin-left:7px;display:inline-block}.factory-bootstrap-422 .factory-hidden{display:none}.factory-bootstrap-422 .factory-ajax-loader{width:25px;height:25px;background:url(../assets/images/loader-sm-tr.gif)}.factory-control-error{background-color:rgba(0,0,0,.8);white-space:normal;z-index:10;font-weight:400;line-height:150%;border-radius:4px;color:#fff;font-size:13px;margin-top:5px;padding:4px 10px 3px;max-width:500px;display:inline-block}.factory-control-error i{margin:0 7px 0 1px}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 article,.factory-bootstrap-423 aside,.factory-bootstrap-423 details,.factory-bootstrap-423 figcaption,.factory-bootstrap-423 figure,.factory-bootstrap-423 footer,.factory-bootstrap-423 header,.factory-bootstrap-423 hgroup,.factory-bootstrap-423 main,.factory-bootstrap-423 nav,.factory-bootstrap-423 section,.factory-bootstrap-423 summary{display:block}.factory-bootstrap-423 audio,.factory-bootstrap-423 canvas,.factory-bootstrap-423 video{display:inline-block}.factory-bootstrap-423 audio:not([controls]){display:none;height:0}.factory-bootstrap-423 [hidden],.factory-bootstrap-423 template{display:none}.factory-bootstrap-423 body{margin:0}.factory-bootstrap-423 a{background:0 0}.factory-bootstrap-423 a:focus{outline:thin dotted}.factory-bootstrap-423 a:active,.factory-bootstrap-423 a:hover{outline:0}.factory-bootstrap-423 h1{margin:.67em 0}.factory-bootstrap-423 b,.factory-bootstrap-423 strong{font-weight:700}.factory-bootstrap-423 dfn{font-style:italic}.factory-bootstrap-423 hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-423 mark{color:#000;background:#ff0}.factory-bootstrap-423 code,.factory-bootstrap-423 kbd,.factory-bootstrap-423 pre,.factory-bootstrap-423 samp{font-size:1em}.factory-bootstrap-423 pre{white-space:pre-wrap}.factory-bootstrap-423 q{quotes:"\201C" "\201D" "\2018" "\2019"}.factory-bootstrap-423 sub,.factory-bootstrap-423 sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.factory-bootstrap-423 sup{top:-.5em}.factory-bootstrap-423 sub{bottom:-.25em}.factory-bootstrap-423 img{border:0}.factory-bootstrap-423 svg:not(:root){overflow:hidden}.factory-bootstrap-423 figure{margin:0}.factory-bootstrap-423 button,.factory-bootstrap-423 input,.factory-bootstrap-423 select,.factory-bootstrap-423 textarea{margin:0}.factory-bootstrap-423 button,.factory-bootstrap-423 select{text-transform:none}.factory-bootstrap-423 select{padding-right:4px!important}.factory-bootstrap-423 button,.factory-bootstrap-423 input[type=reset],.factory-bootstrap-423 input[type=submit],html .factory-bootstrap-423 input[type=button]{cursor:pointer;-webkit-appearance:button}.factory-bootstrap-423 button[disabled],html .factory-bootstrap-423 input[disabled]{cursor:default}.factory-bootstrap-423 input[type=checkbox],.factory-bootstrap-423 input[type=radio]{padding:0;box-sizing:border-box}.factory-bootstrap-423 input[type=search]{-webkit-appearance:textfield}.factory-bootstrap-423 input[type=search]::-webkit-search-cancel-button,.factory-bootstrap-423 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.factory-bootstrap-423 button::-moz-focus-inner,.factory-bootstrap-423 input::-moz-focus-inner{padding:0;border:0}.factory-bootstrap-423 textarea{overflow:auto;vertical-align:top}.factory-bootstrap-423 table{border-collapse:collapse;border-spacing:0}@media print{.factory-bootstrap-423 *{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}.factory-bootstrap-423 a,.factory-bootstrap-423 a:visited{text-decoration:underline}.factory-bootstrap-423 a[href]:after{content:" (" attr(href) ")"}.factory-bootstrap-423 abbr[title]:after{content:" (" attr(title) ")"}.factory-bootstrap-423 a[href^="javascript:"]:after,.factory-bootstrap-423 a[href^="#"]:after{content:""}.factory-bootstrap-423 blockquote,.factory-bootstrap-423 pre{border:1px solid #999;page-break-inside:avoid}.factory-bootstrap-423 thead{display:table-header-group}.factory-bootstrap-423 img,.factory-bootstrap-423 tr{page-break-inside:avoid}.factory-bootstrap-423 img{max-width:100%!important}@page{margin:2cm .5cm}.factory-bootstrap-423 h2,.factory-bootstrap-423 h3,.factory-bootstrap-423 p{orphans:3;widows:3}.factory-bootstrap-423 h2,.factory-bootstrap-423 h3{page-break-after:avoid}.factory-bootstrap-423 select{background:#fff!important}.factory-bootstrap-423 .navbar{display:none}.factory-bootstrap-423 .table td,.factory-bootstrap-423 .table th{background-color:#fff!important}.factory-bootstrap-423 .btn>.caret,.factory-bootstrap-423 .dropup>.btn>.caret{border-top-color:#000!important}.factory-bootstrap-423 .label{border:1px solid #000}.factory-bootstrap-423 .table{border-collapse:collapse!important}.factory-bootstrap-423 .table-bordered td,.factory-bootstrap-423 .table-bordered th{border:1px solid #ddd!important}}.factory-bootstrap-423 *,.factory-bootstrap-423 :after,.factory-bootstrap-423 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html .factory-bootstrap-423{-webkit-tap-highlight-color:rgba(0,0,0,0)}.factory-bootstrap-423 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.factory-bootstrap-423 button,.factory-bootstrap-423 input,.factory-bootstrap-423 select,.factory-bootstrap-423 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.factory-bootstrap-423 img{vertical-align:middle}.factory-bootstrap-423 .img-responsive{display:block;height:auto;max-width:100%}.factory-bootstrap-423 .img-rounded{border-radius:6px}.factory-bootstrap-423 .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-423 .img-circle{border-radius:50%}.factory-bootstrap-423 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.factory-bootstrap-423 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.factory-bootstrap-423 .h1,.factory-bootstrap-423 .h2,.factory-bootstrap-423 .h3,.factory-bootstrap-423 .h4,.factory-bootstrap-423 .h5,.factory-bootstrap-423 .h6,.factory-bootstrap-423 h1,.factory-bootstrap-423 h2,.factory-bootstrap-423 h3,.factory-bootstrap-423 h4,.factory-bootstrap-423 h5,.factory-bootstrap-423 h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.factory-bootstrap-423 .h1 .small,.factory-bootstrap-423 .h1 small,.factory-bootstrap-423 .h2 .small,.factory-bootstrap-423 .h2 small,.factory-bootstrap-423 .h3 .small,.factory-bootstrap-423 .h3 small,.factory-bootstrap-423 .h4 .small,.factory-bootstrap-423 .h4 small,.factory-bootstrap-423 .h5 .small,.factory-bootstrap-423 .h5 small,.factory-bootstrap-423 .h6 .small,.factory-bootstrap-423 .h6 small,.factory-bootstrap-423 h1 .small,.factory-bootstrap-423 h1 small,.factory-bootstrap-423 h2 .small,.factory-bootstrap-423 h2 small,.factory-bootstrap-423 h3 .small,.factory-bootstrap-423 h3 small,.factory-bootstrap-423 h4 .small,.factory-bootstrap-423 h4 small,.factory-bootstrap-423 h5 .small,.factory-bootstrap-423 h5 small,.factory-bootstrap-423 h6 .small,.factory-bootstrap-423 h6 small{font-weight:400;line-height:1;color:#999}.factory-bootstrap-423 h1,.factory-bootstrap-423 h2,.factory-bootstrap-423 h3{margin-top:20px;margin-bottom:10px}.factory-bootstrap-423 h1 .small,.factory-bootstrap-423 h1 small,.factory-bootstrap-423 h2 .small,.factory-bootstrap-423 h2 small,.factory-bootstrap-423 h3 .small,.factory-bootstrap-423 h3 small{font-size:65%}.factory-bootstrap-423 h4,.factory-bootstrap-423 h5,.factory-bootstrap-423 h6{margin-top:10px;margin-bottom:10px}.factory-bootstrap-423 h4 .small,.factory-bootstrap-423 h4 small,.factory-bootstrap-423 h5 .small,.factory-bootstrap-423 h5 small,.factory-bootstrap-423 h6 .small,.factory-bootstrap-423 h6 small{font-size:75%}.factory-bootstrap-423 .h1,.factory-bootstrap-423 h1{font-size:36px}.factory-bootstrap-423 .h2,.factory-bootstrap-423 h2{font-size:30px}.factory-bootstrap-423 .h3,.factory-bootstrap-423 h3{font-size:24px}.factory-bootstrap-423 .h4,.factory-bootstrap-423 h4{font-size:18px}.factory-bootstrap-423 .h5,.factory-bootstrap-423 h5{font-size:14px}.factory-bootstrap-423 .h6,.factory-bootstrap-423 h6{font-size:12px}.factory-bootstrap-423 p{margin:0 0 10px}.factory-bootstrap-423 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.factory-bootstrap-423 .small,.factory-bootstrap-423 small{font-size:85%}.factory-bootstrap-423 cite{font-style:normal}.factory-bootstrap-423 .text-muted{color:#999}.factory-bootstrap-423 .text-primary{color:#428bca}.factory-bootstrap-423 .text-primary:hover{color:#3071a9}.factory-bootstrap-423 .text-warning{color:#8a6d3b}.factory-bootstrap-423 .text-warning:hover{color:#66512c}.factory-bootstrap-423 .text-danger{color:#a94442}.factory-bootstrap-423 .text-danger:hover{color:#843534}.factory-bootstrap-423 .text-success{color:#3c763d}.factory-bootstrap-423 .text-success:hover{color:#2b542c}.factory-bootstrap-423 .text-info{color:#31708f}.factory-bootstrap-423 .text-info:hover{color:#245269}.factory-bootstrap-423 .text-left{text-align:left}.factory-bootstrap-423 .text-right{text-align:right}.factory-bootstrap-423 .text-center{text-align:center}.factory-bootstrap-423 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.factory-bootstrap-423 ol,.factory-bootstrap-423 ul{margin-top:0;margin-bottom:10px}.factory-bootstrap-423 ol ol,.factory-bootstrap-423 ol ul,.factory-bootstrap-423 ul ol,.factory-bootstrap-423 ul ul{margin-bottom:0}.factory-bootstrap-423 .list-inline,.factory-bootstrap-423 .list-unstyled{padding-left:0;list-style:none}.factory-bootstrap-423 .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.factory-bootstrap-423 .list-inline>li:first-child{padding-left:0}.factory-bootstrap-423 dl{margin-top:0;margin-bottom:20px}.factory-bootstrap-423 dd,.factory-bootstrap-423 dt{line-height:1.428571429}.factory-bootstrap-423 dt{font-weight:700}.factory-bootstrap-423 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-423 abbr[data-original-title],.factory-bootstrap-423 abbr[title]{cursor:help;border-bottom:1px dotted #999}.factory-bootstrap-423 .initialism{font-size:90%;text-transform:uppercase}.factory-bootstrap-423 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.factory-bootstrap-423 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.factory-bootstrap-423 blockquote p:last-child{margin-bottom:0}.factory-bootstrap-423 blockquote .small,.factory-bootstrap-423 blockquote small{display:block;line-height:1.428571429;color:#999}.factory-bootstrap-423 blockquote .small:before,.factory-bootstrap-423 blockquote small:before{content:'\2014 \00A0'}.factory-bootstrap-423 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.factory-bootstrap-423 blockquote.pull-right .small,.factory-bootstrap-423 blockquote.pull-right p,.factory-bootstrap-423 blockquote.pull-right small{text-align:right}.factory-bootstrap-423 blockquote.pull-right .small:before,.factory-bootstrap-423 blockquote.pull-right small:before{content:''}.factory-bootstrap-423 blockquote.pull-right .small:after,.factory-bootstrap-423 blockquote.pull-right small:after{content:'\00A0 \2014'}.factory-bootstrap-423 blockquote:after,.factory-bootstrap-423 blockquote:before{content:""}.factory-bootstrap-423 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.factory-bootstrap-423 code,.factory-bootstrap-423 kbd,.factory-bootstrap-423 pre,.factory-bootstrap-423 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.factory-bootstrap-423 code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}.factory-bootstrap-423 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-423 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.factory-bootstrap-423 .pre-scrollable{max-height:340px;overflow-y:scroll}.factory-bootstrap-423 .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.factory-bootstrap-423 .container:after,.factory-bootstrap-423 .container:before{display:table;content:" "}.factory-bootstrap-423 .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-423 .row{margin-right:-15px;margin-left:-15px}.factory-bootstrap-423 .row:after,.factory-bootstrap-423 .row:before{display:table;content:" "}.factory-bootstrap-423 .row:after{clear:both}.factory-bootstrap-423 .col-lg-1,.factory-bootstrap-423 .col-lg-10,.factory-bootstrap-423 .col-lg-11,.factory-bootstrap-423 .col-lg-12,.factory-bootstrap-423 .col-lg-2,.factory-bootstrap-423 .col-lg-3,.factory-bootstrap-423 .col-lg-4,.factory-bootstrap-423 .col-lg-5,.factory-bootstrap-423 .col-lg-6,.factory-bootstrap-423 .col-lg-7,.factory-bootstrap-423 .col-lg-8,.factory-bootstrap-423 .col-lg-9,.factory-bootstrap-423 .col-md-1,.factory-bootstrap-423 .col-md-10,.factory-bootstrap-423 .col-md-11,.factory-bootstrap-423 .col-md-12,.factory-bootstrap-423 .col-md-2,.factory-bootstrap-423 .col-md-3,.factory-bootstrap-423 .col-md-4,.factory-bootstrap-423 .col-md-5,.factory-bootstrap-423 .col-md-6,.factory-bootstrap-423 .col-md-7,.factory-bootstrap-423 .col-md-8,.factory-bootstrap-423 .col-md-9,.factory-bootstrap-423 .col-sm-1,.factory-bootstrap-423 .col-sm-10,.factory-bootstrap-423 .col-sm-11,.factory-bootstrap-423 .col-sm-12,.factory-bootstrap-423 .col-sm-2,.factory-bootstrap-423 .col-sm-3,.factory-bootstrap-423 .col-sm-4,.factory-bootstrap-423 .col-sm-5,.factory-bootstrap-423 .col-sm-6,.factory-bootstrap-423 .col-sm-7,.factory-bootstrap-423 .col-sm-8,.factory-bootstrap-423 .col-sm-9,.factory-bootstrap-423 .col-xs-1,.factory-bootstrap-423 .col-xs-10,.factory-bootstrap-423 .col-xs-11,.factory-bootstrap-423 .col-xs-12,.factory-bootstrap-423 .col-xs-2,.factory-bootstrap-423 .col-xs-3,.factory-bootstrap-423 .col-xs-4,.factory-bootstrap-423 .col-xs-5,.factory-bootstrap-423 .col-xs-6,.factory-bootstrap-423 .col-xs-7,.factory-bootstrap-423 .col-xs-8,.factory-bootstrap-423 .col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.factory-bootstrap-423 .col-xs-1,.factory-bootstrap-423 .col-xs-10,.factory-bootstrap-423 .col-xs-11,.factory-bootstrap-423 .col-xs-12,.factory-bootstrap-423 .col-xs-2,.factory-bootstrap-423 .col-xs-3,.factory-bootstrap-423 .col-xs-4,.factory-bootstrap-423 .col-xs-5,.factory-bootstrap-423 .col-xs-6,.factory-bootstrap-423 .col-xs-7,.factory-bootstrap-423 .col-xs-8,.factory-bootstrap-423 .col-xs-9{float:left}.factory-bootstrap-423 .col-xs-12{width:100%}.factory-bootstrap-423 .col-xs-11{width:91.66666666666666%}.factory-bootstrap-423 .col-xs-10{width:83.33333333333334%}.factory-bootstrap-423 .col-xs-9{width:75%}.factory-bootstrap-423 .col-xs-8{width:66.66666666666666%}.factory-bootstrap-423 .col-xs-7{width:58.333333333333336%}.factory-bootstrap-423 .col-xs-6{width:50%}.factory-bootstrap-423 .col-xs-5{width:41.66666666666667%}.factory-bootstrap-423 .col-xs-4{width:33.33333333333333%}.factory-bootstrap-423 .col-xs-3{width:25%}.factory-bootstrap-423 .col-xs-2{width:16.666666666666664%}.factory-bootstrap-423 .col-xs-1{width:8.333333333333332%}.factory-bootstrap-423 .col-xs-pull-12{right:100%}.factory-bootstrap-423 .col-xs-pull-11{right:91.66666666666666%}.factory-bootstrap-423 .col-xs-pull-10{right:83.33333333333334%}.factory-bootstrap-423 .col-xs-pull-9{right:75%}.factory-bootstrap-423 .col-xs-pull-8{right:66.66666666666666%}.factory-bootstrap-423 .col-xs-pull-7{right:58.333333333333336%}.factory-bootstrap-423 .col-xs-pull-6{right:50%}.factory-bootstrap-423 .col-xs-pull-5{right:41.66666666666667%}.factory-bootstrap-423 .col-xs-pull-4{right:33.33333333333333%}.factory-bootstrap-423 .col-xs-pull-3{right:25%}.factory-bootstrap-423 .col-xs-pull-2{right:16.666666666666664%}.factory-bootstrap-423 .col-xs-pull-1{right:8.333333333333332%}.factory-bootstrap-423 .col-xs-pull-0{right:0}.factory-bootstrap-423 .col-xs-push-12{left:100%}.factory-bootstrap-423 .col-xs-push-11{left:91.66666666666666%}.factory-bootstrap-423 .col-xs-push-10{left:83.33333333333334%}.factory-bootstrap-423 .col-xs-push-9{left:75%}.factory-bootstrap-423 .col-xs-push-8{left:66.66666666666666%}.factory-bootstrap-423 .col-xs-push-7{left:58.333333333333336%}.factory-bootstrap-423 .col-xs-push-6{left:50%}.factory-bootstrap-423 .col-xs-push-5{left:41.66666666666667%}.factory-bootstrap-423 .col-xs-push-4{left:33.33333333333333%}.factory-bootstrap-423 .col-xs-push-3{left:25%}.factory-bootstrap-423 .col-xs-push-2{left:16.666666666666664%}.factory-bootstrap-423 .col-xs-push-1{left:8.333333333333332%}.factory-bootstrap-423 .col-xs-push-0{left:0}.factory-bootstrap-423 .col-xs-offset-12{margin-left:100%}.factory-bootstrap-423 .col-xs-offset-11{margin-left:91.66666666666666%}.factory-bootstrap-423 .col-xs-offset-10{margin-left:83.33333333333334%}.factory-bootstrap-423 .col-xs-offset-9{margin-left:75%}.factory-bootstrap-423 .col-xs-offset-8{margin-left:66.66666666666666%}.factory-bootstrap-423 .col-xs-offset-7{margin-left:58.333333333333336%}.factory-bootstrap-423 .col-xs-offset-6{margin-left:50%}.factory-bootstrap-423 .col-xs-offset-5{margin-left:41.66666666666667%}.factory-bootstrap-423 .col-xs-offset-4{margin-left:33.33333333333333%}.factory-bootstrap-423 .col-xs-offset-3{margin-left:25%}.factory-bootstrap-423 .col-xs-offset-2{margin-left:16.666666666666664%}.factory-bootstrap-423 .col-xs-offset-1{margin-left:8.333333333333332%}.factory-bootstrap-423 .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-423 table{max-width:100%;background-color:transparent}.factory-bootstrap-423 th{text-align:left}.factory-bootstrap-423 .table{width:100%;margin-bottom:20px}.factory-bootstrap-423 .table>tbody>tr>td,.factory-bootstrap-423 .table>tbody>tr>th,.factory-bootstrap-423 .table>tfoot>tr>td,.factory-bootstrap-423 .table>tfoot>tr>th,.factory-bootstrap-423 .table>thead>tr>td,.factory-bootstrap-423 .table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.factory-bootstrap-423 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.factory-bootstrap-423 .table>caption+thead>tr:first-child>td,.factory-bootstrap-423 .table>caption+thead>tr:first-child>th,.factory-bootstrap-423 .table>colgroup+thead>tr:first-child>td,.factory-bootstrap-423 .table>colgroup+thead>tr:first-child>th,.factory-bootstrap-423 .table>thead:first-child>tr:first-child>td,.factory-bootstrap-423 .table>thead:first-child>tr:first-child>th{border-top:0}.factory-bootstrap-423 .table>tbody+tbody{border-top:2px solid #ddd}.factory-bootstrap-423 .table .table{background-color:#fff}.factory-bootstrap-423 .table-condensed>tbody>tr>td,.factory-bootstrap-423 .table-condensed>tbody>tr>th,.factory-bootstrap-423 .table-condensed>tfoot>tr>td,.factory-bootstrap-423 .table-condensed>tfoot>tr>th,.factory-bootstrap-423 .table-condensed>thead>tr>td,.factory-bootstrap-423 .table-condensed>thead>tr>th{padding:5px}.factory-bootstrap-423 .table-bordered,.factory-bootstrap-423 .table-bordered>tbody>tr>td,.factory-bootstrap-423 .table-bordered>tbody>tr>th,.factory-bootstrap-423 .table-bordered>tfoot>tr>td,.factory-bootstrap-423 .table-bordered>tfoot>tr>th,.factory-bootstrap-423 .table-bordered>thead>tr>td,.factory-bootstrap-423 .table-bordered>thead>tr>th{border:1px solid #ddd}.factory-bootstrap-423 .table-bordered>thead>tr>td,.factory-bootstrap-423 .table-bordered>thead>tr>th{border-bottom-width:2px}.factory-bootstrap-423 .table-striped>tbody>tr:nth-child(odd)>td,.factory-bootstrap-423 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.factory-bootstrap-423 .table-hover>tbody>tr:hover>td,.factory-bootstrap-423 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.factory-bootstrap-423 table col[class*=col-]{position:static;display:table-column;float:none}.factory-bootstrap-423 table td[class*=col-],.factory-bootstrap-423 table th[class*=col-]{display:table-cell;float:none}.factory-bootstrap-423 .table>tbody>.active>td,.factory-bootstrap-423 .table>tbody>.active>th,.factory-bootstrap-423 .table>tbody>tr>.active,.factory-bootstrap-423 .table>tfoot>.active>td,.factory-bootstrap-423 .table>tfoot>.active>th,.factory-bootstrap-423 .table>tfoot>tr>.active,.factory-bootstrap-423 .table>thead>.active>td,.factory-bootstrap-423 .table>thead>.active>th,.factory-bootstrap-423 .table>thead>tr>.active{background-color:#f5f5f5}.factory-bootstrap-423 .table-hover>tbody>.active:hover>td,.factory-bootstrap-423 .table-hover>tbody>.active:hover>th,.factory-bootstrap-423 .table-hover>tbody>tr>.active:hover{background-color:#e8e8e8}.factory-bootstrap-423 .table>tbody>.success>td,.factory-bootstrap-423 .table>tbody>.success>th,.factory-bootstrap-423 .table>tbody>tr>.success,.factory-bootstrap-423 .table>tfoot>.success>td,.factory-bootstrap-423 .table>tfoot>.success>th,.factory-bootstrap-423 .table>tfoot>tr>.success,.factory-bootstrap-423 .table>thead>.success>td,.factory-bootstrap-423 .table>thead>.success>th,.factory-bootstrap-423 .table>thead>tr>.success{background-color:#dff0d8}.factory-bootstrap-423 .table-hover>tbody>.success:hover>td,.factory-bootstrap-423 .table-hover>tbody>.success:hover>th,.factory-bootstrap-423 .table-hover>tbody>tr>.success:hover{background-color:#d0e9c6}.factory-bootstrap-423 .table>tbody>.danger>td,.factory-bootstrap-423 .table>tbody>.danger>th,.factory-bootstrap-423 .table>tbody>tr>.danger,.factory-bootstrap-423 .table>tfoot>.danger>td,.factory-bootstrap-423 .table>tfoot>.danger>th,.factory-bootstrap-423 .table>tfoot>tr>.danger,.factory-bootstrap-423 .table>thead>.danger>td,.factory-bootstrap-423 .table>thead>.danger>th,.factory-bootstrap-423 .table>thead>tr>.danger{background-color:#f2dede}.factory-bootstrap-423 .table-hover>tbody>.danger:hover>td,.factory-bootstrap-423 .table-hover>tbody>.danger:hover>th,.factory-bootstrap-423 .table-hover>tbody>tr>.danger:hover{background-color:#ebcccc}.factory-bootstrap-423 .table>tbody>.warning>td,.factory-bootstrap-423 .table>tbody>.warning>th,.factory-bootstrap-423 .table>tbody>tr>.warning,.factory-bootstrap-423 .table>tfoot>.warning>td,.factory-bootstrap-423 .table>tfoot>.warning>th,.factory-bootstrap-423 .table>tfoot>tr>.warning,.factory-bootstrap-423 .table>thead>.warning>td,.factory-bootstrap-423 .table>thead>.warning>th,.factory-bootstrap-423 .table>thead>tr>.warning{background-color:#fcf8e3}.factory-bootstrap-423 .table-hover>tbody>.warning:hover>td,.factory-bootstrap-423 .table-hover>tbody>.warning:hover>th,.factory-bootstrap-423 .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-423 fieldset{padding:0;margin:0;border:0}.factory-bootstrap-423 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-423 label{display:inline-block;margin-bottom:5px;font-weight:700}.factory-bootstrap-423 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-423 input[type=checkbox],.factory-bootstrap-423 input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.factory-bootstrap-423 input[type=file]{display:block}.factory-bootstrap-423 select[multiple],.factory-bootstrap-423 select[size]{height:auto}.factory-bootstrap-423 select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}.factory-bootstrap-423 input[type=checkbox]:focus,.factory-bootstrap-423 input[type=file]:focus,.factory-bootstrap-423 input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-423 input[type=number]::-webkit-inner-spin-button,.factory-bootstrap-423 input[type=number]::-webkit-outer-spin-button{height:auto}.factory-bootstrap-423 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.factory-bootstrap-423 .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-423 .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-423 .form-control:-moz-placeholder{color:#999}.factory-bootstrap-423 .form-control::-moz-placeholder{color:#999;opacity:1}.factory-bootstrap-423 .form-control:-ms-input-placeholder{color:#999}.factory-bootstrap-423 .form-control::-webkit-input-placeholder{color:#999}.factory-bootstrap-423 .form-control[disabled],.factory-bootstrap-423 .form-control[readonly],.factory-bootstrap-423 fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.factory-bootstrap-423 textarea.form-control{height:auto}.factory-bootstrap-423 .form-group{margin-bottom:15px}.factory-bootstrap-423 .checkbox,.factory-bootstrap-423 .radio{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.factory-bootstrap-423 .checkbox label,.factory-bootstrap-423 .radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.factory-bootstrap-423 .checkbox input[type=checkbox],.factory-bootstrap-423 .checkbox-inline input[type=checkbox],.factory-bootstrap-423 .radio input[type=radio],.factory-bootstrap-423 .radio-inline input[type=radio]{float:left;margin-left:-20px}.factory-bootstrap-423 .checkbox+.checkbox,.factory-bootstrap-423 .radio+.radio{margin-top:-5px}.factory-bootstrap-423 .checkbox-inline,.factory-bootstrap-423 .radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.factory-bootstrap-423 .checkbox-inline+.checkbox-inline,.factory-bootstrap-423 .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.factory-bootstrap-423 .checkbox-inline[disabled],.factory-bootstrap-423 .checkbox[disabled],.factory-bootstrap-423 .radio-inline[disabled],.factory-bootstrap-423 .radio[disabled],.factory-bootstrap-423 fieldset[disabled] .checkbox,.factory-bootstrap-423 fieldset[disabled] .checkbox-inline,.factory-bootstrap-423 fieldset[disabled] .radio,.factory-bootstrap-423 fieldset[disabled] .radio-inline,.factory-bootstrap-423 fieldset[disabled] input[type=checkbox],.factory-bootstrap-423 fieldset[disabled] input[type=radio],.factory-bootstrap-423 input[type=checkbox][disabled],.factory-bootstrap-423 input[type=radio][disabled]{cursor:not-allowed}.factory-bootstrap-423 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-423 select.input-sm{height:30px;line-height:30px}.factory-bootstrap-423 textarea.input-sm{height:auto}.factory-bootstrap-423 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-423 select.input-lg{height:46px;line-height:46px}.factory-bootstrap-423 textarea.input-lg{height:auto}.factory-bootstrap-423 .has-warning .checkbox,.factory-bootstrap-423 .has-warning .checkbox-inline,.factory-bootstrap-423 .has-warning .control-label,.factory-bootstrap-423 .has-warning .help-block,.factory-bootstrap-423 .has-warning .radio,.factory-bootstrap-423 .has-warning .radio-inline{color:#8a6d3b}.factory-bootstrap-423 .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-423 .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-423 .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.factory-bootstrap-423 .has-error .checkbox,.factory-bootstrap-423 .has-error .checkbox-inline,.factory-bootstrap-423 .has-error .control-label,.factory-bootstrap-423 .has-error .help-block,.factory-bootstrap-423 .has-error .radio,.factory-bootstrap-423 .has-error .radio-inline{color:#a94442}.factory-bootstrap-423 .controls{display:block}.factory-bootstrap-423 .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-423 .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-423 .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.factory-bootstrap-423 .has-success .checkbox,.factory-bootstrap-423 .has-success .checkbox-inline,.factory-bootstrap-423 .has-success .control-label,.factory-bootstrap-423 .has-success .help-block,.factory-bootstrap-423 .has-success .radio,.factory-bootstrap-423 .has-success .radio-inline{color:#3c763d}.factory-bootstrap-423 .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-423 .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-423 .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.factory-bootstrap-423 .form-control-static{margin-bottom:0}.factory-bootstrap-423 .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-423 .form-horizontal .checkbox,.factory-bootstrap-423 .form-horizontal .checkbox-inline,.factory-bootstrap-423 .form-horizontal .control-label,.factory-bootstrap-423 .form-horizontal .radio,.factory-bootstrap-423 .form-horizontal .radio-inline{position:relative;padding-top:7px;margin-top:0;margin-bottom:0}.factory-bootstrap-423 .form-horizontal .control-label{max-width:200px}.factory-bootstrap-423 .form-horizontal .checkbox,.factory-bootstrap-423 .form-horizontal .radio{min-height:27px}.factory-bootstrap-423 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.factory-bootstrap-423 .form-horizontal .form-group:after,.factory-bootstrap-423 .form-horizontal .form-group:before{display:table;content:" "}.factory-bootstrap-423 .form-horizontal .form-group:after{clear:both}.factory-bootstrap-423 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.factory-bootstrap-423 .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-423 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-423 .btn{text-decoration:none}.factory-bootstrap-423 .btn:focus,.factory-bootstrap-423 .btn:hover{color:#333;text-decoration:none}.factory-bootstrap-423 .btn.disabled,.factory-bootstrap-423 .btn[disabled],.factory-bootstrap-423 fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-423 .btn-default.active,.factory-bootstrap-423 .btn-default:active,.factory-bootstrap-423 .btn-default:focus,.factory-bootstrap-423 .btn-default:hover,.factory-bootstrap-423 .open .dropdown-toggle.btn-default{background:#fafafa;border-color:#999;color:#222}.factory-bootstrap-423 .btn-default.active,.factory-bootstrap-423 .btn-default:active,.factory-bootstrap-423 .open .dropdown-toggle.btn-default{background-image:none}.factory-bootstrap-423 .btn-default.disabled,.factory-bootstrap-423 .btn-default.disabled.active,.factory-bootstrap-423 .btn-default.disabled:active,.factory-bootstrap-423 .btn-default.disabled:focus,.factory-bootstrap-423 .btn-default.disabled:hover,.factory-bootstrap-423 .btn-default[disabled],.factory-bootstrap-423 .btn-default[disabled].active,.factory-bootstrap-423 .btn-default[disabled]:active,.factory-bootstrap-423 .btn-default[disabled]:focus,.factory-bootstrap-423 .btn-default[disabled]:hover,.factory-bootstrap-423 fieldset[disabled] .btn-default,.factory-bootstrap-423 fieldset[disabled] .btn-default.active,.factory-bootstrap-423 fieldset[disabled] .btn-default:active,.factory-bootstrap-423 fieldset[disabled] .btn-default:focus,.factory-bootstrap-423 fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.factory-bootstrap-423 .btn-default .badge{color:#fff;background-color:#fff}.factory-bootstrap-423 .btn-primary.active,.factory-bootstrap-423 .btn-primary:active,.factory-bootstrap-423 .btn-primary:focus,.factory-bootstrap-423 .btn-primary:hover,.factory-bootstrap-423 .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.factory-bootstrap-423 .btn-primary.active,.factory-bootstrap-423 .btn-primary:active,.factory-bootstrap-423 .open .dropdown-toggle.btn-primary{background-image:none}.factory-bootstrap-423 .btn-primary.disabled,.factory-bootstrap-423 .btn-primary.disabled.active,.factory-bootstrap-423 .btn-primary.disabled:active,.factory-bootstrap-423 .btn-primary.disabled:focus,.factory-bootstrap-423 .btn-primary.disabled:hover,.factory-bootstrap-423 .btn-primary[disabled],.factory-bootstrap-423 .btn-primary[disabled].active,.factory-bootstrap-423 .btn-primary[disabled]:active,.factory-bootstrap-423 .btn-primary[disabled]:focus,.factory-bootstrap-423 .btn-primary[disabled]:hover,.factory-bootstrap-423 fieldset[disabled] .btn-primary,.factory-bootstrap-423 fieldset[disabled] .btn-primary.active,.factory-bootstrap-423 fieldset[disabled] .btn-primary:active,.factory-bootstrap-423 fieldset[disabled] .btn-primary:focus,.factory-bootstrap-423 fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.factory-bootstrap-423 .btn-primary .badge{color:#428bca;background-color:#fff}.factory-bootstrap-423 .btn-warning{color:#fff;background-color:#f0ad4e}.factory-bootstrap-423 .btn-warning.active,.factory-bootstrap-423 .btn-warning:active,.factory-bootstrap-423 .btn-warning:focus,.factory-bootstrap-423 .btn-warning:hover,.factory-bootstrap-423 .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.factory-bootstrap-423 .btn-warning.active,.factory-bootstrap-423 .btn-warning:active,.factory-bootstrap-423 .open .dropdown-toggle.btn-warning{background-image:none}.factory-bootstrap-423 .btn-warning.disabled,.factory-bootstrap-423 .btn-warning.disabled.active,.factory-bootstrap-423 .btn-warning.disabled:active,.factory-bootstrap-423 .btn-warning.disabled:focus,.factory-bootstrap-423 .btn-warning.disabled:hover,.factory-bootstrap-423 .btn-warning[disabled],.factory-bootstrap-423 .btn-warning[disabled].active,.factory-bootstrap-423 .btn-warning[disabled]:active,.factory-bootstrap-423 .btn-warning[disabled]:focus,.factory-bootstrap-423 .btn-warning[disabled]:hover,.factory-bootstrap-423 fieldset[disabled] .btn-warning,.factory-bootstrap-423 fieldset[disabled] .btn-warning.active,.factory-bootstrap-423 fieldset[disabled] .btn-warning:active,.factory-bootstrap-423 fieldset[disabled] .btn-warning:focus,.factory-bootstrap-423 fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.factory-bootstrap-423 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.factory-bootstrap-423 .btn-success{color:#fff;background-color:#5cb85c}.factory-bootstrap-423 .btn-success.active,.factory-bootstrap-423 .btn-success:active,.factory-bootstrap-423 .btn-success:focus,.factory-bootstrap-423 .btn-success:hover,.factory-bootstrap-423 .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.factory-bootstrap-423 .btn-success.active,.factory-bootstrap-423 .btn-success:active,.factory-bootstrap-423 .open .dropdown-toggle.btn-success{background-image:none}.factory-bootstrap-423 .btn-success.disabled,.factory-bootstrap-423 .btn-success.disabled.active,.factory-bootstrap-423 .btn-success.disabled:active,.factory-bootstrap-423 .btn-success.disabled:focus,.factory-bootstrap-423 .btn-success.disabled:hover,.factory-bootstrap-423 .btn-success[disabled],.factory-bootstrap-423 .btn-success[disabled].active,.factory-bootstrap-423 .btn-success[disabled]:active,.factory-bootstrap-423 .btn-success[disabled]:focus,.factory-bootstrap-423 .btn-success[disabled]:hover,.factory-bootstrap-423 fieldset[disabled] .btn-success,.factory-bootstrap-423 fieldset[disabled] .btn-success.active,.factory-bootstrap-423 fieldset[disabled] .btn-success:active,.factory-bootstrap-423 fieldset[disabled] .btn-success:focus,.factory-bootstrap-423 fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.factory-bootstrap-423 .btn-success .badge{color:#5cb85c;background-color:#fff}.factory-bootstrap-423 .btn-info{color:#fff;background-color:#5bc0de}.factory-bootstrap-423 .btn-info.active,.factory-bootstrap-423 .btn-info:active,.factory-bootstrap-423 .btn-info:focus,.factory-bootstrap-423 .btn-info:hover,.factory-bootstrap-423 .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.factory-bootstrap-423 .btn-info.active,.factory-bootstrap-423 .btn-info:active,.factory-bootstrap-423 .open .dropdown-toggle.btn-info{background-image:none}.factory-bootstrap-423 .btn-info.disabled,.factory-bootstrap-423 .btn-info.disabled.active,.factory-bootstrap-423 .btn-info.disabled:active,.factory-bootstrap-423 .btn-info.disabled:focus,.factory-bootstrap-423 .btn-info.disabled:hover,.factory-bootstrap-423 .btn-info[disabled],.factory-bootstrap-423 .btn-info[disabled].active,.factory-bootstrap-423 .btn-info[disabled]:active,.factory-bootstrap-423 .btn-info[disabled]:focus,.factory-bootstrap-423 .btn-info[disabled]:hover,.factory-bootstrap-423 fieldset[disabled] .btn-info,.factory-bootstrap-423 fieldset[disabled] .btn-info.active,.factory-bootstrap-423 fieldset[disabled] .btn-info:active,.factory-bootstrap-423 fieldset[disabled] .btn-info:focus,.factory-bootstrap-423 fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.factory-bootstrap-423 .btn-info .badge{color:#5bc0de;background-color:#fff}.factory-bootstrap-423 .btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.factory-bootstrap-423 .btn-link,.factory-bootstrap-423 .btn-link:active,.factory-bootstrap-423 .btn-link[disabled],.factory-bootstrap-423 fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-423 .btn-link,.factory-bootstrap-423 .btn-link:active,.factory-bootstrap-423 .btn-link:focus,.factory-bootstrap-423 .btn-link:hover{border-color:transparent}.factory-bootstrap-423 .btn-link:focus,.factory-bootstrap-423 .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.factory-bootstrap-423 .btn-link[disabled]:focus,.factory-bootstrap-423 .btn-link[disabled]:hover,.factory-bootstrap-423 fieldset[disabled] .btn-link:focus,.factory-bootstrap-423 fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.factory-bootstrap-423 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-423 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-423 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-423 .btn-block{display:block;width:100%;padding-right:0;padding-left:0}.factory-bootstrap-423 .btn-block+.btn-block{margin-top:5px}.factory-bootstrap-423 input[type=button].btn-block,.factory-bootstrap-423 input[type=reset].btn-block,.factory-bootstrap-423 input[type=submit].btn-block{width:100%}.factory-bootstrap-423 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.factory-bootstrap-423 .fade.in{opacity:1}.factory-bootstrap-423 .collapse{display:none}.factory-bootstrap-423 .collapse.in{display:block}.factory-bootstrap-423 .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-423 .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-423 .glyphicon:empty{width:1em}.factory-bootstrap-423 .glyphicon-asterisk:before{content:"\2a"}.factory-bootstrap-423 .glyphicon-plus:before{content:"\2b"}.factory-bootstrap-423 .glyphicon-euro:before{content:"\20ac"}.factory-bootstrap-423 .glyphicon-minus:before{content:"\2212"}.factory-bootstrap-423 .glyphicon-cloud:before{content:"\2601"}.factory-bootstrap-423 .glyphicon-envelope:before{content:"\2709"}.factory-bootstrap-423 .glyphicon-pencil:before{content:"\270f"}.factory-bootstrap-423 .glyphicon-glass:before{content:"\e001"}.factory-bootstrap-423 .glyphicon-music:before{content:"\e002"}.factory-bootstrap-423 .glyphicon-search:before{content:"\e003"}.factory-bootstrap-423 .glyphicon-heart:before{content:"\e005"}.factory-bootstrap-423 .glyphicon-star:before{content:"\e006"}.factory-bootstrap-423 .glyphicon-star-empty:before{content:"\e007"}.factory-bootstrap-423 .glyphicon-user:before{content:"\e008"}.factory-bootstrap-423 .glyphicon-film:before{content:"\e009"}.factory-bootstrap-423 .glyphicon-th-large:before{content:"\e010"}.factory-bootstrap-423 .glyphicon-th:before{content:"\e011"}.factory-bootstrap-423 .glyphicon-th-list:before{content:"\e012"}.factory-bootstrap-423 .glyphicon-ok:before{content:"\e013"}.factory-bootstrap-423 .glyphicon-remove:before{content:"\e014"}.factory-bootstrap-423 .glyphicon-zoom-in:before{content:"\e015"}.factory-bootstrap-423 .glyphicon-zoom-out:before{content:"\e016"}.factory-bootstrap-423 .glyphicon-off:before{content:"\e017"}.factory-bootstrap-423 .glyphicon-signal:before{content:"\e018"}.factory-bootstrap-423 .glyphicon-cog:before{content:"\e019"}.factory-bootstrap-423 .glyphicon-trash:before{content:"\e020"}.factory-bootstrap-423 .glyphicon-home:before{content:"\e021"}.factory-bootstrap-423 .glyphicon-file:before{content:"\e022"}.factory-bootstrap-423 .glyphicon-time:before{content:"\e023"}.factory-bootstrap-423 .glyphicon-road:before{content:"\e024"}.factory-bootstrap-423 .glyphicon-download-alt:before{content:"\e025"}.factory-bootstrap-423 .glyphicon-download:before{content:"\e026"}.factory-bootstrap-423 .glyphicon-upload:before{content:"\e027"}.factory-bootstrap-423 .glyphicon-inbox:before{content:"\e028"}.factory-bootstrap-423 .glyphicon-play-circle:before{content:"\e029"}.factory-bootstrap-423 .glyphicon-repeat:before{content:"\e030"}.factory-bootstrap-423 .glyphicon-refresh:before{content:"\e031"}.factory-bootstrap-423 .glyphicon-list-alt:before{content:"\e032"}.factory-bootstrap-423 .glyphicon-lock:before{content:"\e033"}.factory-bootstrap-423 .glyphicon-flag:before{content:"\e034"}.factory-bootstrap-423 .glyphicon-headphones:before{content:"\e035"}.factory-bootstrap-423 .glyphicon-volume-off:before{content:"\e036"}.factory-bootstrap-423 .glyphicon-volume-down:before{content:"\e037"}.factory-bootstrap-423 .glyphicon-volume-up:before{content:"\e038"}.factory-bootstrap-423 .glyphicon-qrcode:before{content:"\e039"}.factory-bootstrap-423 .glyphicon-barcode:before{content:"\e040"}.factory-bootstrap-423 .glyphicon-tag:before{content:"\e041"}.factory-bootstrap-423 .glyphicon-tags:before{content:"\e042"}.factory-bootstrap-423 .glyphicon-book:before{content:"\e043"}.factory-bootstrap-423 .glyphicon-bookmark:before{content:"\e044"}.factory-bootstrap-423 .glyphicon-print:before{content:"\e045"}.factory-bootstrap-423 .glyphicon-camera:before{content:"\e046"}.factory-bootstrap-423 .glyphicon-font:before{content:"\e047"}.factory-bootstrap-423 .glyphicon-bold:before{content:"\e048"}.factory-bootstrap-423 .glyphicon-italic:before{content:"\e049"}.factory-bootstrap-423 .glyphicon-text-height:before{content:"\e050"}.factory-bootstrap-423 .glyphicon-text-width:before{content:"\e051"}.factory-bootstrap-423 .glyphicon-align-left:before{content:"\e052"}.factory-bootstrap-423 .glyphicon-align-center:before{content:"\e053"}.factory-bootstrap-423 .glyphicon-align-right:before{content:"\e054"}.factory-bootstrap-423 .glyphicon-align-justify:before{content:"\e055"}.factory-bootstrap-423 .glyphicon-list:before{content:"\e056"}.factory-bootstrap-423 .glyphicon-indent-left:before{content:"\e057"}.factory-bootstrap-423 .glyphicon-indent-right:before{content:"\e058"}.factory-bootstrap-423 .glyphicon-facetime-video:before{content:"\e059"}.factory-bootstrap-423 .glyphicon-picture:before{content:"\e060"}.factory-bootstrap-423 .glyphicon-map-marker:before{content:"\e062"}.factory-bootstrap-423 .glyphicon-adjust:before{content:"\e063"}.factory-bootstrap-423 .glyphicon-tint:before{content:"\e064"}.factory-bootstrap-423 .glyphicon-edit:before{content:"\e065"}.factory-bootstrap-423 .glyphicon-share:before{content:"\e066"}.factory-bootstrap-423 .glyphicon-check:before{content:"\e067"}.factory-bootstrap-423 .glyphicon-move:before{content:"\e068"}.factory-bootstrap-423 .glyphicon-step-backward:before{content:"\e069"}.factory-bootstrap-423 .glyphicon-fast-backward:before{content:"\e070"}.factory-bootstrap-423 .glyphicon-backward:before{content:"\e071"}.factory-bootstrap-423 .glyphicon-play:before{content:"\e072"}.factory-bootstrap-423 .glyphicon-pause:before{content:"\e073"}.factory-bootstrap-423 .glyphicon-stop:before{content:"\e074"}.factory-bootstrap-423 .glyphicon-forward:before{content:"\e075"}.factory-bootstrap-423 .glyphicon-fast-forward:before{content:"\e076"}.factory-bootstrap-423 .glyphicon-step-forward:before{content:"\e077"}.factory-bootstrap-423 .glyphicon-eject:before{content:"\e078"}.factory-bootstrap-423 .glyphicon-chevron-left:before{content:"\e079"}.factory-bootstrap-423 .glyphicon-chevron-right:before{content:"\e080"}.factory-bootstrap-423 .glyphicon-plus-sign:before{content:"\e081"}.factory-bootstrap-423 .glyphicon-minus-sign:before{content:"\e082"}.factory-bootstrap-423 .glyphicon-remove-sign:before{content:"\e083"}.factory-bootstrap-423 .glyphicon-ok-sign:before{content:"\e084"}.factory-bootstrap-423 .glyphicon-question-sign:before{content:"\e085"}.factory-bootstrap-423 .glyphicon-info-sign:before{content:"\e086"}.factory-bootstrap-423 .glyphicon-screenshot:before{content:"\e087"}.factory-bootstrap-423 .glyphicon-remove-circle:before{content:"\e088"}.factory-bootstrap-423 .glyphicon-ok-circle:before{content:"\e089"}.factory-bootstrap-423 .glyphicon-ban-circle:before{content:"\e090"}.factory-bootstrap-423 .glyphicon-arrow-left:before{content:"\e091"}.factory-bootstrap-423 .glyphicon-arrow-right:before{content:"\e092"}.factory-bootstrap-423 .glyphicon-arrow-up:before{content:"\e093"}.factory-bootstrap-423 .glyphicon-arrow-down:before{content:"\e094"}.factory-bootstrap-423 .glyphicon-share-alt:before{content:"\e095"}.factory-bootstrap-423 .glyphicon-resize-full:before{content:"\e096"}.factory-bootstrap-423 .glyphicon-resize-small:before{content:"\e097"}.factory-bootstrap-423 .glyphicon-exclamation-sign:before{content:"\e101"}.factory-bootstrap-423 .glyphicon-gift:before{content:"\e102"}.factory-bootstrap-423 .glyphicon-leaf:before{content:"\e103"}.factory-bootstrap-423 .glyphicon-fire:before{content:"\e104"}.factory-bootstrap-423 .glyphicon-eye-open:before{content:"\e105"}.factory-bootstrap-423 .glyphicon-eye-close:before{content:"\e106"}.factory-bootstrap-423 .glyphicon-warning-sign:before{content:"\e107"}.factory-bootstrap-423 .glyphicon-plane:before{content:"\e108"}.factory-bootstrap-423 .glyphicon-calendar:before{content:"\e109"}.factory-bootstrap-423 .glyphicon-random:before{content:"\e110"}.factory-bootstrap-423 .glyphicon-comment:before{content:"\e111"}.factory-bootstrap-423 .glyphicon-magnet:before{content:"\e112"}.factory-bootstrap-423 .glyphicon-chevron-up:before{content:"\e113"}.factory-bootstrap-423 .glyphicon-chevron-down:before{content:"\e114"}.factory-bootstrap-423 .glyphicon-retweet:before{content:"\e115"}.factory-bootstrap-423 .glyphicon-shopping-cart:before{content:"\e116"}.factory-bootstrap-423 .glyphicon-folder-close:before{content:"\e117"}.factory-bootstrap-423 .glyphicon-folder-open:before{content:"\e118"}.factory-bootstrap-423 .glyphicon-resize-vertical:before{content:"\e119"}.factory-bootstrap-423 .glyphicon-resize-horizontal:before{content:"\e120"}.factory-bootstrap-423 .glyphicon-hdd:before{content:"\e121"}.factory-bootstrap-423 .glyphicon-bullhorn:before{content:"\e122"}.factory-bootstrap-423 .glyphicon-bell:before{content:"\e123"}.factory-bootstrap-423 .glyphicon-certificate:before{content:"\e124"}.factory-bootstrap-423 .glyphicon-thumbs-up:before{content:"\e125"}.factory-bootstrap-423 .glyphicon-thumbs-down:before{content:"\e126"}.factory-bootstrap-423 .glyphicon-hand-right:before{content:"\e127"}.factory-bootstrap-423 .glyphicon-hand-left:before{content:"\e128"}.factory-bootstrap-423 .glyphicon-hand-up:before{content:"\e129"}.factory-bootstrap-423 .glyphicon-hand-down:before{content:"\e130"}.factory-bootstrap-423 .glyphicon-circle-arrow-right:before{content:"\e131"}.factory-bootstrap-423 .glyphicon-circle-arrow-left:before{content:"\e132"}.factory-bootstrap-423 .glyphicon-circle-arrow-up:before{content:"\e133"}.factory-bootstrap-423 .glyphicon-circle-arrow-down:before{content:"\e134"}.factory-bootstrap-423 .glyphicon-globe:before{content:"\e135"}.factory-bootstrap-423 .glyphicon-wrench:before{content:"\e136"}.factory-bootstrap-423 .glyphicon-tasks:before{content:"\e137"}.factory-bootstrap-423 .glyphicon-filter:before{content:"\e138"}.factory-bootstrap-423 .glyphicon-briefcase:before{content:"\e139"}.factory-bootstrap-423 .glyphicon-fullscreen:before{content:"\e140"}.factory-bootstrap-423 .glyphicon-dashboard:before{content:"\e141"}.factory-bootstrap-423 .glyphicon-paperclip:before{content:"\e142"}.factory-bootstrap-423 .glyphicon-heart-empty:before{content:"\e143"}.factory-bootstrap-423 .glyphicon-link:before{content:"\e144"}.factory-bootstrap-423 .glyphicon-phone:before{content:"\e145"}.factory-bootstrap-423 .glyphicon-pushpin:before{content:"\e146"}.factory-bootstrap-423 .glyphicon-usd:before{content:"\e148"}.factory-bootstrap-423 .glyphicon-gbp:before{content:"\e149"}.factory-bootstrap-423 .glyphicon-sort:before{content:"\e150"}.factory-bootstrap-423 .glyphicon-sort-by-alphabet:before{content:"\e151"}.factory-bootstrap-423 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.factory-bootstrap-423 .glyphicon-sort-by-order:before{content:"\e153"}.factory-bootstrap-423 .glyphicon-sort-by-order-alt:before{content:"\e154"}.factory-bootstrap-423 .glyphicon-sort-by-attributes:before{content:"\e155"}.factory-bootstrap-423 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.factory-bootstrap-423 .glyphicon-unchecked:before{content:"\e157"}.factory-bootstrap-423 .glyphicon-expand:before{content:"\e158"}.factory-bootstrap-423 .glyphicon-collapse-down:before{content:"\e159"}.factory-bootstrap-423 .glyphicon-collapse-up:before{content:"\e160"}.factory-bootstrap-423 .glyphicon-log-in:before{content:"\e161"}.factory-bootstrap-423 .glyphicon-flash:before{content:"\e162"}.factory-bootstrap-423 .glyphicon-log-out:before{content:"\e163"}.factory-bootstrap-423 .glyphicon-new-window:before{content:"\e164"}.factory-bootstrap-423 .glyphicon-record:before{content:"\e165"}.factory-bootstrap-423 .glyphicon-save:before{content:"\e166"}.factory-bootstrap-423 .glyphicon-open:before{content:"\e167"}.factory-bootstrap-423 .glyphicon-saved:before{content:"\e168"}.factory-bootstrap-423 .glyphicon-import:before{content:"\e169"}.factory-bootstrap-423 .glyphicon-export:before{content:"\e170"}.factory-bootstrap-423 .glyphicon-send:before{content:"\e171"}.factory-bootstrap-423 .glyphicon-floppy-disk:before{content:"\e172"}.factory-bootstrap-423 .glyphicon-floppy-saved:before{content:"\e173"}.factory-bootstrap-423 .glyphicon-floppy-remove:before{content:"\e174"}.factory-bootstrap-423 .glyphicon-floppy-save:before{content:"\e175"}.factory-bootstrap-423 .glyphicon-floppy-open:before{content:"\e176"}.factory-bootstrap-423 .glyphicon-credit-card:before{content:"\e177"}.factory-bootstrap-423 .glyphicon-transfer:before{content:"\e178"}.factory-bootstrap-423 .glyphicon-cutlery:before{content:"\e179"}.factory-bootstrap-423 .glyphicon-header:before{content:"\e180"}.factory-bootstrap-423 .glyphicon-compressed:before{content:"\e181"}.factory-bootstrap-423 .glyphicon-earphone:before{content:"\e182"}.factory-bootstrap-423 .glyphicon-phone-alt:before{content:"\e183"}.factory-bootstrap-423 .glyphicon-tower:before{content:"\e184"}.factory-bootstrap-423 .glyphicon-stats:before{content:"\e185"}.factory-bootstrap-423 .glyphicon-sd-video:before{content:"\e186"}.factory-bootstrap-423 .glyphicon-hd-video:before{content:"\e187"}.factory-bootstrap-423 .glyphicon-subtitles:before{content:"\e188"}.factory-bootstrap-423 .glyphicon-sound-stereo:before{content:"\e189"}.factory-bootstrap-423 .glyphicon-sound-dolby:before{content:"\e190"}.factory-bootstrap-423 .glyphicon-sound-5-1:before{content:"\e191"}.factory-bootstrap-423 .glyphicon-sound-6-1:before{content:"\e192"}.factory-bootstrap-423 .glyphicon-sound-7-1:before{content:"\e193"}.factory-bootstrap-423 .glyphicon-copyright-mark:before{content:"\e194"}.factory-bootstrap-423 .glyphicon-registration-mark:before{content:"\e195"}.factory-bootstrap-423 .glyphicon-cloud-download:before{content:"\e197"}.factory-bootstrap-423 .glyphicon-cloud-upload:before{content:"\e198"}.factory-bootstrap-423 .glyphicon-tree-conifer:before{content:"\e199"}.factory-bootstrap-423 .glyphicon-tree-deciduous:before{content:"\e200"}.factory-bootstrap-423 .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-423 .dropdown{position:relative}.factory-bootstrap-423 .dropdown-toggle:focus{outline:0}.factory-bootstrap-423 .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-423 .dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-423 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-423 .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-423 .dropdown-menu>li>a:focus,.factory-bootstrap-423 .dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.factory-bootstrap-423 .dropdown-menu>.active>a,.factory-bootstrap-423 .dropdown-menu>.active>a:focus,.factory-bootstrap-423 .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.factory-bootstrap-423 .dropdown-menu>.disabled>a,.factory-bootstrap-423 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-423 .dropdown-menu>.disabled>a:hover{color:#999}.factory-bootstrap-423 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-423 .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-423 .open>.dropdown-menu{display:block}.factory-bootstrap-423 .open>a{outline:0}.factory-bootstrap-423 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.factory-bootstrap-423 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.factory-bootstrap-423 .pull-right>.dropdown-menu{right:0;left:auto}.factory-bootstrap-423 .dropup .caret,.factory-bootstrap-423 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.factory-bootstrap-423 .dropup .dropdown-menu,.factory-bootstrap-423 .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-423 .btn-group,.factory-bootstrap-423 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.factory-bootstrap-423 .btn-group-vertical>.btn,.factory-bootstrap-423 .btn-group>.btn{position:relative;float:left}.factory-bootstrap-423 .btn-group-vertical>.btn.active,.factory-bootstrap-423 .btn-group-vertical>.btn:active,.factory-bootstrap-423 .btn-group-vertical>.btn:focus,.factory-bootstrap-423 .btn-group-vertical>.btn:hover,.factory-bootstrap-423 .btn-group>.btn.active,.factory-bootstrap-423 .btn-group>.btn:active,.factory-bootstrap-423 .btn-group>.btn:focus,.factory-bootstrap-423 .btn-group>.btn:hover{z-index:2}.factory-bootstrap-423 .btn-group-vertical>.btn:focus,.factory-bootstrap-423 .btn-group>.btn:focus{outline:0}.factory-bootstrap-423 .btn-group .btn+.btn,.factory-bootstrap-423 .btn-group .btn+.btn-group,.factory-bootstrap-423 .btn-group .btn-group+.btn,.factory-bootstrap-423 .btn-group .btn-group+.btn-group{margin-left:-1px}.factory-bootstrap-423 .btn-toolbar:after,.factory-bootstrap-423 .btn-toolbar:before{display:table;content:" "}.factory-bootstrap-423 .btn-toolbar:after{clear:both}.factory-bootstrap-423 .btn-toolbar .btn-group{float:left}.factory-bootstrap-423 .btn-toolbar>.btn+.btn,.factory-bootstrap-423 .btn-toolbar>.btn+.btn-group,.factory-bootstrap-423 .btn-toolbar>.btn-group+.btn,.factory-bootstrap-423 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.factory-bootstrap-423 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.factory-bootstrap-423 .btn-group>.btn:first-child{margin-left:0}.factory-bootstrap-423 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-423 .btn-group>.btn:last-child:not(:first-child),.factory-bootstrap-423 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-423 .btn-group>.btn-group{float:left}.factory-bootstrap-423 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-423 .btn-group>.btn-group:first-child>.btn:last-child,.factory-bootstrap-423 .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-423 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-423 .btn-group .dropdown-toggle:active,.factory-bootstrap-423 .btn-group.open .dropdown-toggle{outline:0}.factory-bootstrap-423 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-423 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-423 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-423 .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.factory-bootstrap-423 .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.factory-bootstrap-423 .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-423 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-423 .btn-group{border:4px solid #f9f9f9;border-radius:4px}.factory-bootstrap-423 .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-423 .btn .caret{margin-left:0}.factory-bootstrap-423 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.factory-bootstrap-423 .dropup .btn-lg .caret{border-width:0 5px 5px}.factory-bootstrap-423 .btn-group-vertical>.btn,.factory-bootstrap-423 .btn-group-vertical>.btn-group,.factory-bootstrap-423 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.factory-bootstrap-423 .btn-group-vertical>.btn-group:after,.factory-bootstrap-423 .btn-group-vertical>.btn-group:before{display:table;content:" "}.factory-bootstrap-423 .btn-group-vertical>.btn-group:after{clear:both}.factory-bootstrap-423 .btn-group-vertical>.btn-group>.btn{float:none}.factory-bootstrap-423 .btn-group-vertical>.btn+.btn,.factory-bootstrap-423 .btn-group-vertical>.btn+.btn-group,.factory-bootstrap-423 .btn-group-vertical>.btn-group+.btn,.factory-bootstrap-423 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.factory-bootstrap-423 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-423 .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-423 .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-423 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-423 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.factory-bootstrap-423 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-423 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-423 .btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.factory-bootstrap-423 .btn-group-justified>.btn,.factory-bootstrap-423 .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.factory-bootstrap-423 .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-423 .input-group{position:relative;display:table;border-collapse:separate}.factory-bootstrap-423 .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.factory-bootstrap-423 .input-group .form-control{width:100%;margin-bottom:0}.factory-bootstrap-423 .input-group-lg>.form-control,.factory-bootstrap-423 .input-group-lg>.input-group-addon,.factory-bootstrap-423 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-423 select.input-group-lg>.form-control,.factory-bootstrap-423 select.input-group-lg>.input-group-addon,.factory-bootstrap-423 select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}.factory-bootstrap-423 textarea.input-group-lg>.form-control,.factory-bootstrap-423 textarea.input-group-lg>.input-group-addon,.factory-bootstrap-423 textarea.input-group-lg>.input-group-btn>.btn{height:auto}.factory-bootstrap-423 .input-group-sm>.form-control,.factory-bootstrap-423 .input-group-sm>.input-group-addon,.factory-bootstrap-423 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-423 select.input-group-sm>.form-control,.factory-bootstrap-423 select.input-group-sm>.input-group-addon,.factory-bootstrap-423 select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}.factory-bootstrap-423 textarea.input-group-sm>.form-control,.factory-bootstrap-423 textarea.input-group-sm>.input-group-addon,.factory-bootstrap-423 textarea.input-group-sm>.input-group-btn>.btn{height:auto}.factory-bootstrap-423 .input-group .form-control,.factory-bootstrap-423 .input-group-addon,.factory-bootstrap-423 .input-group-btn{display:table-cell}.factory-bootstrap-423 .input-group .form-control:not(:first-child):not(:last-child),.factory-bootstrap-423 .input-group-addon:not(:first-child):not(:last-child),.factory-bootstrap-423 .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-423 .input-group-addon,.factory-bootstrap-423 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.factory-bootstrap-423 .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-423 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.factory-bootstrap-423 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.factory-bootstrap-423 .input-group-addon input[type=checkbox],.factory-bootstrap-423 .input-group-addon input[type=radio]{margin-top:0}.factory-bootstrap-423 .input-group .form-control:first-child,.factory-bootstrap-423 .input-group-addon:first-child,.factory-bootstrap-423 .input-group-btn:first-child>.btn,.factory-bootstrap-423 .input-group-btn:first-child>.dropdown-toggle,.factory-bootstrap-423 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-423 .input-group-addon:first-child{border-right:0}.factory-bootstrap-423 .input-group .form-control:last-child,.factory-bootstrap-423 .input-group-addon:last-child,.factory-bootstrap-423 .input-group-btn:first-child>.btn:not(:first-child),.factory-bootstrap-423 .input-group-btn:last-child>.btn,.factory-bootstrap-423 .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-423 .input-group-addon:last-child{border-left:0}.factory-bootstrap-423 .input-group-btn{position:relative;white-space:nowrap}.factory-bootstrap-423 .input-group-btn:first-child>.btn{margin-right:-1px}.factory-bootstrap-423 .input-group-btn:last-child>.btn{margin-left:-1px}.factory-bootstrap-423 .input-group-btn>.btn{position:relative}.factory-bootstrap-423 .input-group-btn>.btn+.btn{margin-left:-4px}.factory-bootstrap-423 .input-group-btn>.btn:active,.factory-bootstrap-423 .input-group-btn>.btn:hover{z-index:2}.factory-bootstrap-423 .nav{padding-left:0;margin-bottom:0;list-style:none}.factory-bootstrap-423 .nav:after,.factory-bootstrap-423 .nav:before{display:table;content:" "}.factory-bootstrap-423 .nav:after{clear:both}.factory-bootstrap-423 .nav>li{position:relative;display:block}.factory-bootstrap-423 .nav>li>a{position:relative;display:block;padding:10px 15px}.factory-bootstrap-423 .nav>li>a:focus,.factory-bootstrap-423 .nav>li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-423 .nav>li.disabled>a{color:#999}.factory-bootstrap-423 .nav>li.disabled>a:focus,.factory-bootstrap-423 .nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.factory-bootstrap-423 .nav .open>a,.factory-bootstrap-423 .nav .open>a:focus,.factory-bootstrap-423 .nav .open>a:hover{background-color:#eee;border-color:#428bca}.factory-bootstrap-423 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-423 .nav>li>a>img{max-width:none}.factory-bootstrap-423 .nav-tabs{border-bottom:1px solid #ddd}.factory-bootstrap-423 .nav-tabs>li{float:left;margin-bottom:-1px}.factory-bootstrap-423 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.factory-bootstrap-423 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.factory-bootstrap-423 .nav-tabs>li.active>a,.factory-bootstrap-423 .nav-tabs>li.active>a:focus,.factory-bootstrap-423 .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.factory-bootstrap-423 .nav-tabs.nav-justified{width:100%;border-bottom:0}.factory-bootstrap-423 .nav-tabs.nav-justified>li{float:none}.factory-bootstrap-423 .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-423 .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-423 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-423 .nav-tabs.nav-justified>.active>a,.factory-bootstrap-423 .nav-tabs.nav-justified>.active>a:focus,.factory-bootstrap-423 .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-423 .nav-pills>li{float:left}.factory-bootstrap-423 .nav-pills>li>a{border-radius:4px}.factory-bootstrap-423 .nav-pills>li+li{margin-left:2px}.factory-bootstrap-423 .nav-pills>li.active>a,.factory-bootstrap-423 .nav-pills>li.active>a:focus,.factory-bootstrap-423 .nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.factory-bootstrap-423 .nav-stacked>li{float:none}.factory-bootstrap-423 .nav-stacked>li+li{margin-top:2px;margin-left:0}.factory-bootstrap-423 .nav-justified{width:100%}.factory-bootstrap-423 .nav-justified>li{float:none}.factory-bootstrap-423 .nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-423 .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-423 .nav-tabs-justified{border-bottom:0}.factory-bootstrap-423 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-423 .nav-tabs-justified>.active>a,.factory-bootstrap-423 .nav-tabs-justified>.active>a:focus,.factory-bootstrap-423 .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-423 .tab-content>.tab-pane{display:none}.factory-bootstrap-423 .tab-content>.active{display:block}.factory-bootstrap-423 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-423 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.factory-bootstrap-423 .navbar:after,.factory-bootstrap-423 .navbar:before{display:table;content:" "}.factory-bootstrap-423 .navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.factory-bootstrap-423 .navbar-header:after,.factory-bootstrap-423 .navbar-header:before{display:table;content:" "}.factory-bootstrap-423 .navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.factory-bootstrap-423 .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-423 .navbar-collapse:after,.factory-bootstrap-423 .navbar-collapse:before{display:table;content:" "}.factory-bootstrap-423 .navbar-collapse:after{clear:both}.factory-bootstrap-423 .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-423 .container>.navbar-collapse,.factory-bootstrap-423 .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-423 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.factory-bootstrap-423 .navbar-fixed-bottom,.factory-bootstrap-423 .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-423 .navbar-fixed-top{top:0;border-width:0 0 1px}.factory-bootstrap-423 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.factory-bootstrap-423 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.factory-bootstrap-423 .navbar-brand:focus,.factory-bootstrap-423 .navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.factory-bootstrap-423 .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-423 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.factory-bootstrap-423 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.factory-bootstrap-423 .navbar-nav{margin:7.5px -15px}.factory-bootstrap-423 .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-423 .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-423 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-423 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-423 .navbar-nav.pull-right>li>.dropdown-menu,.factory-bootstrap-423 .navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-423 .navbar-btn{margin-top:8px;margin-bottom:8px}.factory-bootstrap-423 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.factory-bootstrap-423 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.factory-bootstrap-423 .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-423 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.factory-bootstrap-423 .navbar-default .navbar-brand{color:#777}.factory-bootstrap-423 .navbar-default .navbar-brand:focus,.factory-bootstrap-423 .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.factory-bootstrap-423 .navbar-default .navbar-nav>li>a,.factory-bootstrap-423 .navbar-default .navbar-text{color:#777}.factory-bootstrap-423 .navbar-default .navbar-nav>li>a:focus,.factory-bootstrap-423 .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.factory-bootstrap-423 .navbar-default .navbar-nav>.active>a,.factory-bootstrap-423 .navbar-default .navbar-nav>.active>a:focus,.factory-bootstrap-423 .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.factory-bootstrap-423 .navbar-default .navbar-nav>.disabled>a,.factory-bootstrap-423 .navbar-default .navbar-nav>.disabled>a:focus,.factory-bootstrap-423 .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.factory-bootstrap-423 .navbar-default .navbar-toggle{border-color:#ddd}.factory-bootstrap-423 .navbar-default .navbar-toggle:focus,.factory-bootstrap-423 .navbar-default .navbar-toggle:hover{background-color:#ddd}.factory-bootstrap-423 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.factory-bootstrap-423 .navbar-default .navbar-collapse,.factory-bootstrap-423 .navbar-default .navbar-form{border-color:#e7e7e7}.factory-bootstrap-423 .navbar-default .navbar-nav>.open>a,.factory-bootstrap-423 .navbar-default .navbar-nav>.open>a:focus,.factory-bootstrap-423 .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-423 .navbar-default .navbar-link{color:#777}.factory-bootstrap-423 .navbar-default .navbar-link:hover{color:#333}.factory-bootstrap-423 .navbar-inverse{background-color:#222;border-color:#080808}.factory-bootstrap-423 .navbar-inverse .navbar-brand{color:#999}.factory-bootstrap-423 .navbar-inverse .navbar-brand:focus,.factory-bootstrap-423 .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.factory-bootstrap-423 .navbar-inverse .navbar-nav>li>a,.factory-bootstrap-423 .navbar-inverse .navbar-text{color:#999}.factory-bootstrap-423 .navbar-inverse .navbar-nav>li>a:focus,.factory-bootstrap-423 .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.factory-bootstrap-423 .navbar-inverse .navbar-nav>.active>a,.factory-bootstrap-423 .navbar-inverse .navbar-nav>.active>a:focus,.factory-bootstrap-423 .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.factory-bootstrap-423 .navbar-inverse .navbar-nav>.disabled>a,.factory-bootstrap-423 .navbar-inverse .navbar-nav>.disabled>a:focus,.factory-bootstrap-423 .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.factory-bootstrap-423 .navbar-inverse .navbar-toggle{border-color:#333}.factory-bootstrap-423 .navbar-inverse .navbar-toggle:focus,.factory-bootstrap-423 .navbar-inverse .navbar-toggle:hover{background-color:#333}.factory-bootstrap-423 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.factory-bootstrap-423 .navbar-inverse .navbar-collapse,.factory-bootstrap-423 .navbar-inverse .navbar-form{border-color:#101010}.factory-bootstrap-423 .navbar-inverse .navbar-nav>.open>a,.factory-bootstrap-423 .navbar-inverse .navbar-nav>.open>a:focus,.factory-bootstrap-423 .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-423 .navbar-inverse .navbar-link{color:#999}.factory-bootstrap-423 .navbar-inverse .navbar-link:hover{color:#fff}.factory-bootstrap-423 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.factory-bootstrap-423 .breadcrumb>li{display:inline-block}.factory-bootstrap-423 .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.factory-bootstrap-423 .breadcrumb>.active{color:#999}.factory-bootstrap-423 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.factory-bootstrap-423 .pagination>li{display:inline}.factory-bootstrap-423 .pagination>li>a,.factory-bootstrap-423 .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-423 .pagination>li:first-child>a,.factory-bootstrap-423 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.factory-bootstrap-423 .pagination>li:last-child>a,.factory-bootstrap-423 .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.factory-bootstrap-423 .pagination>li>a:focus,.factory-bootstrap-423 .pagination>li>a:hover,.factory-bootstrap-423 .pagination>li>span:focus,.factory-bootstrap-423 .pagination>li>span:hover{background-color:#eee}.factory-bootstrap-423 .pagination>.active>a,.factory-bootstrap-423 .pagination>.active>a:focus,.factory-bootstrap-423 .pagination>.active>a:hover,.factory-bootstrap-423 .pagination>.active>span,.factory-bootstrap-423 .pagination>.active>span:focus,.factory-bootstrap-423 .pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#1e8cbe;border-color:#0074a2}.factory-bootstrap-423 .pagination>.disabled>a,.factory-bootstrap-423 .pagination>.disabled>a:focus,.factory-bootstrap-423 .pagination>.disabled>a:hover,.factory-bootstrap-423 .pagination>.disabled>span,.factory-bootstrap-423 .pagination>.disabled>span:focus,.factory-bootstrap-423 .pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.factory-bootstrap-423 .pagination-lg>li>a,.factory-bootstrap-423 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.factory-bootstrap-423 .pagination-lg>li:first-child>a,.factory-bootstrap-423 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.factory-bootstrap-423 .pagination-lg>li:last-child>a,.factory-bootstrap-423 .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.factory-bootstrap-423 .pagination-sm>li>a,.factory-bootstrap-423 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.factory-bootstrap-423 .pagination-sm>li:first-child>a,.factory-bootstrap-423 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.factory-bootstrap-423 .pagination-sm>li:last-child>a,.factory-bootstrap-423 .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.factory-bootstrap-423 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.factory-bootstrap-423 .pager:after,.factory-bootstrap-423 .pager:before{display:table;content:" "}.factory-bootstrap-423 .pager:after{clear:both}.factory-bootstrap-423 .pager li{display:inline}.factory-bootstrap-423 .pager li>a,.factory-bootstrap-423 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.factory-bootstrap-423 .pager li>a:focus,.factory-bootstrap-423 .pager li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-423 .pager .next>a,.factory-bootstrap-423 .pager .next>span{float:right}.factory-bootstrap-423 .pager .previous>a,.factory-bootstrap-423 .pager .previous>span{float:left}.factory-bootstrap-423 .pager .disabled>a,.factory-bootstrap-423 .pager .disabled>a:focus,.factory-bootstrap-423 .pager .disabled>a:hover,.factory-bootstrap-423 .pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.factory-bootstrap-423 .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-423 .label[href]:focus,.factory-bootstrap-423 .label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-423 .label:empty{display:none}.factory-bootstrap-423 .btn .label{position:relative;top:-1px}.factory-bootstrap-423 .label-default{background-color:#999}.factory-bootstrap-423 .label-default[href]:focus,.factory-bootstrap-423 .label-default[href]:hover{background-color:gray}.factory-bootstrap-423 .label-primary{background-color:#428bca}.factory-bootstrap-423 .label-primary[href]:focus,.factory-bootstrap-423 .label-primary[href]:hover{background-color:#3071a9}.factory-bootstrap-423 .label-success{background-color:#5cb85c}.factory-bootstrap-423 .label-success[href]:focus,.factory-bootstrap-423 .label-success[href]:hover{background-color:#449d44}.factory-bootstrap-423 .label-info{background-color:#5bc0de}.factory-bootstrap-423 .label-info[href]:focus,.factory-bootstrap-423 .label-info[href]:hover{background-color:#31b0d5}.factory-bootstrap-423 .label-warning{background-color:#f0ad4e}.factory-bootstrap-423 .label-warning[href]:focus,.factory-bootstrap-423 .label-warning[href]:hover{background-color:#ec971f}.factory-bootstrap-423 .label-danger{background-color:#d9534f}.factory-bootstrap-423 .label-danger[href]:focus,.factory-bootstrap-423 .label-danger[href]:hover{background-color:#c9302c}.factory-bootstrap-423 .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-423 .badge:empty{display:none}.factory-bootstrap-423 .btn .badge{position:relative;top:-1px}.factory-bootstrap-423 a.badge:focus,.factory-bootstrap-423 a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-423 .nav-pills>.active>a>.badge,.factory-bootstrap-423 a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.factory-bootstrap-423 .nav-pills>li>a>.badge{margin-left:3px}.factory-bootstrap-423 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.factory-bootstrap-423 .jumbotron .h1,.factory-bootstrap-423 .jumbotron h1{line-height:1;color:inherit}.factory-bootstrap-423 .jumbotron p{line-height:1.4}.factory-bootstrap-423 .container .jumbotron{border-radius:6px}.factory-bootstrap-423 .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-423 .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-423 .thumbnail a>img,.factory-bootstrap-423 .thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}.factory-bootstrap-423 a.thumbnail.active,.factory-bootstrap-423 a.thumbnail:focus,.factory-bootstrap-423 a.thumbnail:hover{border-color:#428bca}.factory-bootstrap-423 .thumbnail .caption{padding:9px;color:#333}.factory-bootstrap-423 .alert{border:1px solid transparent;border-radius:4px}.factory-bootstrap-423 .alert h4{margin-top:0;color:inherit}.factory-bootstrap-423 .alert .alert-link{font-weight:700}.factory-bootstrap-423 .alert>p,.factory-bootstrap-423 .alert>ul{margin-bottom:0}.factory-bootstrap-423 .alert>p+p{margin-top:5px}.factory-bootstrap-423 .alert-dismissable{padding-right:35px}.factory-bootstrap-423 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.factory-bootstrap-423 .alert-info{color:#31708f;background-color:#d9edf7}.factory-bootstrap-423 .alert-info hr{border-top-color:#a6e1ec}.factory-bootstrap-423 .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-423 .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-423 .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-423 .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-423 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.factory-bootstrap-423 .progress-bar-success{background-color:#5cb85c}.factory-bootstrap-423 .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-423 .progress-bar-info{background-color:#5bc0de}.factory-bootstrap-423 .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-423 .progress-bar-warning{background-color:#f0ad4e}.factory-bootstrap-423 .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-423 .progress-bar-danger{background-color:#d9534f}.factory-bootstrap-423 .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-423 .media,.factory-bootstrap-423 .media-body{overflow:hidden;zoom:1}.factory-bootstrap-423 .media,.factory-bootstrap-423 .media .media{margin-top:15px}.factory-bootstrap-423 .media:first-child{margin-top:0}.factory-bootstrap-423 .media-object{display:block}.factory-bootstrap-423 .media-heading{margin:0 0 5px}.factory-bootstrap-423 .media>.pull-left{margin-right:10px}.factory-bootstrap-423 .media>.pull-right{margin-left:10px}.factory-bootstrap-423 .media-list{padding-left:0;list-style:none}.factory-bootstrap-423 .list-group{padding-left:0;margin-bottom:20px}.factory-bootstrap-423 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-423 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.factory-bootstrap-423 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.factory-bootstrap-423 .list-group-item>.badge{float:right}.factory-bootstrap-423 .list-group-item>.badge+.badge{margin-right:5px}.factory-bootstrap-423 a.list-group-item{color:#555}.factory-bootstrap-423 a.list-group-item .list-group-item-heading{color:#333}.factory-bootstrap-423 a.list-group-item:focus,.factory-bootstrap-423 a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.factory-bootstrap-423 a.list-group-item.active,.factory-bootstrap-423 a.list-group-item.active:focus,.factory-bootstrap-423 a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-423 a.list-group-item.active .list-group-item-heading,.factory-bootstrap-423 a.list-group-item.active:focus .list-group-item-heading,.factory-bootstrap-423 a.list-group-item.active:hover .list-group-item-heading{color:inherit}.factory-bootstrap-423 a.list-group-item.active .list-group-item-text,.factory-bootstrap-423 a.list-group-item.active:focus .list-group-item-text,.factory-bootstrap-423 a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.factory-bootstrap-423 .list-group-item-heading{margin-top:0;margin-bottom:5px}.factory-bootstrap-423 .list-group-item-text{margin-bottom:0;line-height:1.3}.factory-bootstrap-423 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.factory-bootstrap-423 .panel-body{padding:15px}.factory-bootstrap-423 .panel-body:after,.factory-bootstrap-423 .panel-body:before{display:table;content:" "}.factory-bootstrap-423 .panel-body:after{clear:both}.factory-bootstrap-423 .panel>.list-group{margin-bottom:0}.factory-bootstrap-423 .panel>.list-group .list-group-item{border-width:1px 0}.factory-bootstrap-423 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-423 .panel>.list-group .list-group-item:last-child{border-bottom:0}.factory-bootstrap-423 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.factory-bootstrap-423 .panel>.table,.factory-bootstrap-423 .panel>.table-responsive>.table{margin-bottom:0}.factory-bootstrap-423 .panel>.panel-body+.table,.factory-bootstrap-423 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.factory-bootstrap-423 .panel>.table>tbody:first-child td,.factory-bootstrap-423 .panel>.table>tbody:first-child th{border-top:0}.factory-bootstrap-423 .panel>.table-bordered,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered{border:0}.factory-bootstrap-423 .panel>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-423 .panel>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-423 .panel>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-423 .panel>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-423 .panel>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-423 .panel>.table-bordered>thead>tr>th:first-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.factory-bootstrap-423 .panel>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-423 .panel>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-423 .panel>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-423 .panel>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-423 .panel>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-423 .panel>.table-bordered>thead>tr>th:last-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.factory-bootstrap-423 .panel>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-423 .panel>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-423 .panel>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-423 .panel>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-423 .panel>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-423 .panel>.table-bordered>thead>tr:last-child>th,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-423 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}.factory-bootstrap-423 .panel>.table-responsive{margin-bottom:0;border:0}.factory-bootstrap-423 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.factory-bootstrap-423 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.factory-bootstrap-423 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.factory-bootstrap-423 .panel-title>a{color:inherit}.factory-bootstrap-423 .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-423 .panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.factory-bootstrap-423 .panel-group .panel+.panel{margin-top:5px}.factory-bootstrap-423 .panel-group .panel-heading{border-bottom:0}.factory-bootstrap-423 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.factory-bootstrap-423 .panel-group .panel-footer{border-top:0}.factory-bootstrap-423 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.factory-bootstrap-423 .panel-default{border-color:#ddd}.factory-bootstrap-423 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.factory-bootstrap-423 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.factory-bootstrap-423 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.factory-bootstrap-423 .panel-primary{border-color:#428bca}.factory-bootstrap-423 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-423 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.factory-bootstrap-423 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.factory-bootstrap-423 .panel-success{border-color:#d6e9c6}.factory-bootstrap-423 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.factory-bootstrap-423 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.factory-bootstrap-423 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.factory-bootstrap-423 .panel-warning{border-color:#faebcc}.factory-bootstrap-423 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.factory-bootstrap-423 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.factory-bootstrap-423 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.factory-bootstrap-423 .panel-danger{border-color:#ebccd1}.factory-bootstrap-423 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.factory-bootstrap-423 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.factory-bootstrap-423 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.factory-bootstrap-423 .panel-info{border-color:#bce8f1}.factory-bootstrap-423 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.factory-bootstrap-423 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.factory-bootstrap-423 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.factory-bootstrap-423 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.factory-bootstrap-423 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.factory-bootstrap-423 .well-lg{padding:24px;border-radius:6px}.factory-bootstrap-423 .well-sm{padding:9px;border-radius:3px}.factory-bootstrap-423 .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-423 .alert .close{position:relative;top:-8px;right:-7px}.factory-bootstrap-423 .close:focus,.factory-bootstrap-423 .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-423 button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.factory-bootstrap-423 .modal-open{overflow:hidden}.factory-bootstrap-423 .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-423 .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-423 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.factory-bootstrap-423 .modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.factory-bootstrap-423 .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-423 .modal-backdrop,.factory-bootstrap-423-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.factory-bootstrap-423 .modal-backdrop.fade,.factory-bootstrap-423-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.factory-bootstrap-423 .modal-backdrop.in,.factory-bootstrap-423-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-423 .modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.factory-bootstrap-423 .modal-header .close{margin-top:-2px}.factory-bootstrap-423 .modal-title{margin:0;line-height:1.428571429}.factory-bootstrap-423 .modal-body{position:relative;padding:20px;max-height:none}.factory-bootstrap-423 .modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.factory-bootstrap-423 .modal-footer:after,.factory-bootstrap-423 .modal-footer:before{display:table;content:" "}.factory-bootstrap-423 .modal-footer:after{clear:both}.factory-bootstrap-423 .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.factory-bootstrap-423 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.factory-bootstrap-423 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.factory-bootstrap-423 .modal-dialog{width:600px;margin:30px auto}.factory-bootstrap-423 .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-423 .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-423 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-423 .tooltip.top{padding:5px 0;margin-top:-3px}.factory-bootstrap-423 .tooltip.right{padding:0 5px;margin-left:3px}.factory-bootstrap-423 .tooltip.bottom{padding:5px 0;margin-top:3px}.factory-bootstrap-423 .tooltip.left{padding:0 5px;margin-left:-3px}.factory-bootstrap-423 .tooltip-inner{width:400px;padding:15px 20px;color:#fff;text-align:left;text-decoration:none;background-color:#673ab7;border-radius:3px}.factory-bootstrap-423 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-423 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-423 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-423 .tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-423 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#673ab7;border-width:5px 5px 5px 0}.factory-bootstrap-423 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#673ab7;border-width:5px 0 5px 5px}.factory-bootstrap-423 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-423 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-423 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-423 .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-423 .popover.top{margin-top:-10px}.factory-bootstrap-423 .popover.right{margin-left:10px}.factory-bootstrap-423 .popover.bottom{margin-top:10px}.factory-bootstrap-423 .popover.left{margin-left:-10px}.factory-bootstrap-423 .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-423 .popover-content{padding:9px 14px}.factory-bootstrap-423 .popover .arrow,.factory-bootstrap-423 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-423 .popover .arrow{border-width:11px}.factory-bootstrap-423 .popover .arrow:after{border-width:10px;content:""}.factory-bootstrap-423 .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-423 .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.factory-bootstrap-423 .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-423 .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.factory-bootstrap-423 .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-423 .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.factory-bootstrap-423 .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-423 .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.factory-bootstrap-423 .carousel{position:relative}.factory-bootstrap-423 .carousel-inner{position:relative;width:100%;overflow:hidden}.factory-bootstrap-423 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.factory-bootstrap-423 .carousel-inner>.item>a>img,.factory-bootstrap-423 .carousel-inner>.item>img{display:block;height:auto;max-width:100%;line-height:1}.factory-bootstrap-423 .carousel-inner>.active,.factory-bootstrap-423 .carousel-inner>.next,.factory-bootstrap-423 .carousel-inner>.prev{display:block}.factory-bootstrap-423 .carousel-inner>.active{left:0}.factory-bootstrap-423 .carousel-inner>.next,.factory-bootstrap-423 .carousel-inner>.prev{position:absolute;top:0;width:100%}.factory-bootstrap-423 .carousel-inner>.next{left:100%}.factory-bootstrap-423 .carousel-inner>.prev{left:-100%}.factory-bootstrap-423 .carousel-inner>.next.left,.factory-bootstrap-423 .carousel-inner>.prev.right{left:0}.factory-bootstrap-423 .carousel-inner>.active.left{left:-100%}.factory-bootstrap-423 .carousel-inner>.active.right{left:100%}.factory-bootstrap-423 .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-423 .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-423 .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-423 .carousel-control:focus,.factory-bootstrap-423 .carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-423 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-423 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-423 .carousel-control .icon-next,.factory-bootstrap-423 .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.factory-bootstrap-423 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-423 .carousel-control .icon-prev{left:50%}.factory-bootstrap-423 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-423 .carousel-control .icon-next{right:50%}.factory-bootstrap-423 .carousel-control .icon-next,.factory-bootstrap-423 .carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.factory-bootstrap-423 .carousel-control .icon-prev:before{content:'\2039'}.factory-bootstrap-423 .carousel-control .icon-next:before{content:'\203a'}.factory-bootstrap-423 .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-423 .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-423 .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.factory-bootstrap-423 .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-423 .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-423 .clearfix:after,.factory-bootstrap-423 .clearfix:before{display:table;content:" "}.factory-bootstrap-423 .clearfix:after{clear:both}.factory-bootstrap-423 .center-block{display:block;margin-right:auto;margin-left:auto}.factory-bootstrap-423 .pull-right{float:right!important}.factory-bootstrap-423 .pull-left{float:left!important}.factory-bootstrap-423 .hide{display:none!important}.factory-bootstrap-423 .show{display:block!important}.factory-bootstrap-423 .invisible{visibility:hidden}.factory-bootstrap-423 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.factory-bootstrap-423 .hidden{display:none!important;visibility:hidden!important}.factory-bootstrap-423 .affix{position:fixed}@-ms-viewport{width:device-width}.factory-bootstrap-423 .visible-lg,.factory-bootstrap-423 .visible-md,.factory-bootstrap-423 .visible-sm,.factory-bootstrap-423 .visible-xs,.factory-bootstrap-423 td.visible-lg,.factory-bootstrap-423 td.visible-md,.factory-bootstrap-423 td.visible-sm,.factory-bootstrap-423 td.visible-xs,.factory-bootstrap-423 th.visible-lg,.factory-bootstrap-423 th.visible-md,.factory-bootstrap-423 th.visible-sm,.factory-bootstrap-423 th.visible-xs,.factory-bootstrap-423 tr.visible-lg,.factory-bootstrap-423 tr.visible-md,.factory-bootstrap-423 tr.visible-sm,.factory-bootstrap-423 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-423 .hidden-xs{display:block!important}.factory-bootstrap-423 table.hidden-xs{display:table}.factory-bootstrap-423 tr.hidden-xs{display:table-row!important}.factory-bootstrap-423 td.hidden-xs,.factory-bootstrap-423 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-423 .hidden-sm{display:block!important}.factory-bootstrap-423 table.hidden-sm{display:table}.factory-bootstrap-423 tr.hidden-sm{display:table-row!important}.factory-bootstrap-423 td.hidden-sm,.factory-bootstrap-423 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-423 .hidden-md{display:block!important}.factory-bootstrap-423 table.hidden-md{display:table}.factory-bootstrap-423 tr.hidden-md{display:table-row!important}.factory-bootstrap-423 td.hidden-md,.factory-bootstrap-423 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-423 .hidden-lg{display:block!important}.factory-bootstrap-423 table.hidden-lg{display:table}.factory-bootstrap-423 tr.hidden-lg{display:table-row!important}.factory-bootstrap-423 td.hidden-lg,.factory-bootstrap-423 th.hidden-lg{display:table-cell!important}@media (max-width:767px){.factory-bootstrap-423 .hidden-lg.hidden-xs,.factory-bootstrap-423 td.hidden-lg.hidden-xs,.factory-bootstrap-423 th.hidden-lg.hidden-xs,.factory-bootstrap-423 tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.factory-bootstrap-423 .hidden-lg.hidden-sm,.factory-bootstrap-423 td.hidden-lg.hidden-sm,.factory-bootstrap-423 th.hidden-lg.hidden-sm,.factory-bootstrap-423 tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.factory-bootstrap-423 .hidden-lg.hidden-md,.factory-bootstrap-423 td.hidden-lg.hidden-md,.factory-bootstrap-423 th.hidden-lg.hidden-md,.factory-bootstrap-423 tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.factory-bootstrap-423 .hidden-lg,.factory-bootstrap-423 td.hidden-lg,.factory-bootstrap-423 th.hidden-lg,.factory-bootstrap-423 tr.hidden-lg{display:none!important}}.factory-bootstrap-423 .visible-print,.factory-bootstrap-423 td.visible-print,.factory-bootstrap-423 th.visible-print,.factory-bootstrap-423 tr.visible-print{display:none!important}@media print{.factory-bootstrap-423 .visible-print{display:block!important}.factory-bootstrap-423 table.visible-print{display:table}.factory-bootstrap-423 tr.visible-print{display:table-row!important}.factory-bootstrap-423 td.visible-print,.factory-bootstrap-423 th.visible-print{display:table-cell!important}.factory-bootstrap-423 .hidden-print,.factory-bootstrap-423 td.hidden-print,.factory-bootstrap-423 th.hidden-print,.factory-bootstrap-423 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-423 .btn-danger,.factory-bootstrap-423 .btn-default,.factory-bootstrap-423 .btn-info,.factory-bootstrap-423 .btn-primary,.factory-bootstrap-423 .btn-success,.factory-bootstrap-423 .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-423 .btn-danger.active,.factory-bootstrap-423 .btn-danger:active,.factory-bootstrap-423 .btn-default.active,.factory-bootstrap-423 .btn-default:active,.factory-bootstrap-423 .btn-info.active,.factory-bootstrap-423 .btn-info:active,.factory-bootstrap-423 .btn-primary.active,.factory-bootstrap-423 .btn-primary:active,.factory-bootstrap-423 .btn-success.active,.factory-bootstrap-423 .btn-success:active,.factory-bootstrap-423 .btn-warning.active,.factory-bootstrap-423 .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-423 .btn.active,.factory-bootstrap-423 .btn:active{background-image:none}.factory-bootstrap-423 .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-423 .btn-default.active,.factory-bootstrap-423 .btn-default:active{background-color:#fff;border-color:#dbdbdb}.factory-bootstrap-423 .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-423 .btn-gold:focus,.factory-bootstrap-423 .btn-gold:hover{background:#fef0a1}.factory-bootstrap-423 .btn-gold.active,.factory-bootstrap-423 .btn-gold:active{background:#fef0a1;-webkit-box-shadow:inset 0 3px 8px 0 #f8ba36;box-shadow:inset 0 3px 8px 0 #f8ba36}.factory-bootstrap-423 .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-423 .btn-primary:focus,.factory-bootstrap-423 .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-423 .btn-primary.active,.factory-bootstrap-423 .btn-primary:active{background-color:#2d6ca2;border-color:#2b669a}.factory-bootstrap-423 .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-423 .btn-success:focus,.factory-bootstrap-423 .btn-success:hover{background-color:#419641;background-position:0 -15px}.factory-bootstrap-423 .btn-success.active,.factory-bootstrap-423 .btn-success:active{background-color:#419641;border-color:#3e8f3e}.factory-bootstrap-423 .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-423 .btn-warning:focus,.factory-bootstrap-423 .btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.factory-bootstrap-423 .btn-warning.active,.factory-bootstrap-423 .btn-warning:active{background-color:#eb9316;border-color:#e38d13}.factory-bootstrap-423 .btn-danger{color:#fff;background:#d9534f;border-color:#d43f3a}.factory-bootstrap-423 .btn-danger.active,.factory-bootstrap-423 .btn-danger:active,.factory-bootstrap-423 .btn-danger:focus,.factory-bootstrap-423 .btn-danger:hover,.factory-bootstrap-423 .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.factory-bootstrap-423 .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-423 .btn-info:focus,.factory-bootstrap-423 .btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.factory-bootstrap-423 .btn-info.active,.factory-bootstrap-423 .btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.factory-bootstrap-423 .img-thumbnail,.factory-bootstrap-423 .thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-423 .dropdown-menu>li>a:focus,.factory-bootstrap-423 .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-423 .dropdown-menu>.active>a,.factory-bootstrap-423 .dropdown-menu>.active>a:focus,.factory-bootstrap-423 .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-423 .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-423 .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-423 .navbar-brand,.factory-bootstrap-423 .navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.factory-bootstrap-423 .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-423 .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-423 .navbar-inverse .navbar-brand,.factory-bootstrap-423 .navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-423 .navbar-fixed-bottom,.factory-bootstrap-423 .navbar-fixed-top,.factory-bootstrap-423 .navbar-static-top{border-radius:0}.factory-bootstrap-423 .alert{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-423 .alert .actions{padding-top:10px}.factory-bootstrap-423 .alert-success{color:#3c763d;background-color:#dff0d8;border-bottom:2px solid #c8e5bc}.factory-bootstrap-423 .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-423 .alert{text-shadow:none;box-shadow:none;margin:0;margin-top:10px;margin-bottom:10px;padding:10px}.factory-bootstrap-423 .alert-normal,.factory-bootstrap-423 .alert-warning{background:#fcf8e3;color:#8a6d3b;border:1px solid #b8823b}.factory-bootstrap-423 .alert-danger{background:#cf4944;color:#fff;border-bottom:2px solid #b23e3a}.factory-bootstrap-423 .alert-danger a:not(.btn),.factory-bootstrap-423 .alert-error a:not(.btn){color:#fff}.factory-bootstrap-423 .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-423 .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-423 .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-423 .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-423 .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-423 .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-423 .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-423 .list-group-item.active,.factory-bootstrap-423 .list-group-item.active:focus,.factory-bootstrap-423 .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-423 .panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-423 .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-423 .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-423 .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-423 .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-423 .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-423 .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-423 .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-423 .factory-after{margin-left:7px;display:inline-block}.factory-bootstrap-423 .factory-hidden{display:none}.factory-bootstrap-423 .factory-ajax-loader{width:25px;height:25px;background:url(../assets/images/loader-sm-tr.gif)}.factory-control-error{background-color:rgba(0,0,0,.8);white-space:normal;z-index:10;font-weight:400;line-height:150%;border-radius:4px;color:#fff;font-size:13px;margin-top:5px;padding:4px 10px 3px;max-width:500px;display:inline-block}.factory-control-error i{margin:0 7px 0 1px}
libs/factory/bootstrap/assets/css-min/bootstrap.ectoplasm.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .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-422 .btn-primary:focus,.factory-bootstrap-422 .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-422 .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-422 .btn-primary:disabled,.factory-bootstrap-422 .btn-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.factory-bootstrap-422 .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-422 .pagination>.active>a,.factory-bootstrap-422 .pagination>.active>a:focus,.factory-bootstrap-422 .pagination>.active>a:hover,.factory-bootstrap-422 .pagination>.active>span,.factory-bootstrap-422 .pagination>.active>span:focus,.factory-bootstrap-422 .pagination>.active>span:hover{background-color:#a3b745;border-color:#839237}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .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-423 .btn-primary:focus,.factory-bootstrap-423 .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-423 .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-423 .btn-primary:disabled,.factory-bootstrap-423 .btn-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.factory-bootstrap-423 .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-423 .pagination>.active>a,.factory-bootstrap-423 .pagination>.active>a:focus,.factory-bootstrap-423 .pagination>.active>a:hover,.factory-bootstrap-423 .pagination>.active>span,.factory-bootstrap-423 .pagination>.active>span:focus,.factory-bootstrap-423 .pagination>.active>span:hover{background-color:#a3b745;border-color:#839237}
libs/factory/bootstrap/assets/css-min/bootstrap.form-group.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .factory-form-group .factory-legend{padding:9px 12px;background-color:#f9f9f9}.factory-bootstrap-422 .factory-form-group .factory-title{font-weight:700;font-size:14px;line-height:14px;color:#555;margin:0}.factory-bootstrap-422 .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-422 .factory-form-group .factory-hint-icon.factory-hint-icon-green{background:#8bc34a}.factory-bootstrap-422 .factory-form-group .factory-hint-icon.factory-hint-icon-grey{background:#9e9e9e}.factory-bootstrap-422 .factory-form-group .factory-hint-icon.factory-hint-icon-red{background:#E91E63}.factory-bootstrap-422 .factory-form-group .factory-hint{margin:0;font-size:12px;line-height:16px;margin-top:6px}.factory-bootstrap-422 .factory-form-group+.factory-form-group{margin-top:30px}.factory-bootstrap-422 .factory-form-group legend+.control-group{margin-top:0}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .factory-form-group .factory-legend{padding:9px 12px;background-color:#f9f9f9}.factory-bootstrap-423 .factory-form-group .factory-title{font-weight:700;font-size:14px;line-height:14px;color:#555;margin:0}.factory-bootstrap-423 .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-423 .factory-form-group .factory-hint-icon.factory-hint-icon-green{background:#8bc34a}.factory-bootstrap-423 .factory-form-group .factory-hint-icon.factory-hint-icon-grey{background:#9e9e9e}.factory-bootstrap-423 .factory-form-group .factory-hint-icon.factory-hint-icon-red{background:#E91E63}.factory-bootstrap-423 .factory-form-group .factory-hint{margin:0;font-size:12px;line-height:16px;margin-top:6px}.factory-bootstrap-423 .factory-form-group+.factory-form-group{margin-top:30px}.factory-bootstrap-423 .factory-form-group legend+.control-group{margin-top:0}
libs/factory/bootstrap/assets/css-min/bootstrap.light.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .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-422 .btn-primary:focus,.factory-bootstrap-422 .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-422 .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-422 .btn-primary:disabled,.factory-bootstrap-422 .btn-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.factory-bootstrap-422 .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-422 .pagination>.active>a,.factory-bootstrap-422 .pagination>.active>a:focus,.factory-bootstrap-422 .pagination>.active>a:hover,.factory-bootstrap-422 .pagination>.active>span,.factory-bootstrap-422 .pagination>.active>span:focus,.factory-bootstrap-422 .pagination>.active>span:hover{background-color:#04a4cc;border-color:#037c9a}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .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-423 .btn-primary:focus,.factory-bootstrap-423 .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-423 .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-423 .btn-primary:disabled,.factory-bootstrap-423 .btn-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.factory-bootstrap-423 .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-423 .pagination>.active>a,.factory-bootstrap-423 .pagination>.active>a:focus,.factory-bootstrap-423 .pagination>.active>a:hover,.factory-bootstrap-423 .pagination>.active>span,.factory-bootstrap-423 .pagination>.active>span:focus,.factory-bootstrap-423 .pagination>.active>span:hover{background-color:#04a4cc;border-color:#037c9a}
libs/factory/bootstrap/assets/css-min/bootstrap.midnight.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .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-422 .btn-primary:focus,.factory-bootstrap-422 .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-422 .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-422 .btn-primary:disabled,.factory-bootstrap-422 .btn-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.factory-bootstrap-422 .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-422 .pagination>.active>a,.factory-bootstrap-422 .pagination>.active>a:focus,.factory-bootstrap-422 .pagination>.active>a:hover,.factory-bootstrap-422 .pagination>.active>span,.factory-bootstrap-422 .pagination>.active>span:focus,.factory-bootstrap-422 .pagination>.active>span:hover{background-color:#e14d43;border-color:#d02a21}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .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-423 .btn-primary:focus,.factory-bootstrap-423 .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-423 .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-423 .btn-primary:disabled,.factory-bootstrap-423 .btn-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.factory-bootstrap-423 .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-423 .pagination>.active>a,.factory-bootstrap-423 .pagination>.active>a:focus,.factory-bootstrap-423 .pagination>.active>a:hover,.factory-bootstrap-423 .pagination>.active>span,.factory-bootstrap-423 .pagination>.active>span:focus,.factory-bootstrap-423 .pagination>.active>span:hover{background-color:#e14d43;border-color:#d02a21}
libs/factory/bootstrap/assets/css-min/bootstrap.ocean.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .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-422 .btn-primary:focus,.factory-bootstrap-422 .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-422 .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-422 .btn-primary:disabled,.factory-bootstrap-422 .btn-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.factory-bootstrap-422 .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-422 .pagination>.active>a,.factory-bootstrap-422 .pagination>.active>a:focus,.factory-bootstrap-422 .pagination>.active>a:hover,.factory-bootstrap-422 .pagination>.active>span,.factory-bootstrap-422 .pagination>.active>span:focus,.factory-bootstrap-422 .pagination>.active>span:hover{background-color:#9ebaa0;border-color:#80a583}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .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-423 .btn-primary:focus,.factory-bootstrap-423 .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-423 .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-423 .btn-primary:disabled,.factory-bootstrap-423 .btn-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.factory-bootstrap-423 .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-423 .pagination>.active>a,.factory-bootstrap-423 .pagination>.active>a:focus,.factory-bootstrap-423 .pagination>.active>a:hover,.factory-bootstrap-423 .pagination>.active>span,.factory-bootstrap-423 .pagination>.active>span:focus,.factory-bootstrap-423 .pagination>.active>span:hover{background-color:#9ebaa0;border-color:#80a583}
libs/factory/bootstrap/assets/css-min/bootstrap.separator.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .factory-separator{border-bottom:1px solid #f9f9f9;border-top:1px solid #d1d1d1;margin-bottom:25px}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .factory-separator{border-bottom:1px solid #f9f9f9;border-top:1px solid #d1d1d1;margin-bottom:25px}
libs/factory/bootstrap/assets/css-min/bootstrap.sunrise.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .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-422 .btn-primary:focus,.factory-bootstrap-422 .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-422 .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-422 .btn-primary:disabled,.factory-bootstrap-422 .btn-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.factory-bootstrap-422 .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-422 .pagination>.active>a,.factory-bootstrap-422 .pagination>.active>a:focus,.factory-bootstrap-422 .pagination>.active>a:hover,.factory-bootstrap-422 .pagination>.active>span,.factory-bootstrap-422 .pagination>.active>span:focus,.factory-bootstrap-422 .pagination>.active>span:hover{background-color:#dd823b;border-color:#c36822}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .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-423 .btn-primary:focus,.factory-bootstrap-423 .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-423 .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-423 .btn-primary:disabled,.factory-bootstrap-423 .btn-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.factory-bootstrap-423 .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-423 .pagination>.active>a,.factory-bootstrap-423 .pagination>.active>a:focus,.factory-bootstrap-423 .pagination>.active>a:hover,.factory-bootstrap-423 .pagination>.active>span,.factory-bootstrap-423 .pagination>.active>span:focus,.factory-bootstrap-423 .pagination>.active>span:hover{background-color:#dd823b;border-color:#c36822}
libs/factory/bootstrap/assets/css-min/control.checkbox.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- #side-sortables .factory-bootstrap-422 .factory-buttons-way{float:right;position:relative;top:-25px;left:5px;border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-422 .factory-buttons-way{border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-422 .factory-buttons-way button{padding-left:10px;padding-right:10px}.factory-bootstrap-422 .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-422 .factory-checkbox-tumbler-hint{margin-top:5px}.factory-bootstrap-422 .factory-checkbox-tumbler-hint .factory-tumbler-content{display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-422 .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-422 .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-422 .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-422 .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-422 .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-422 .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-422 .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}
8
  */
9
 
10
 
11
+ #side-sortables .factory-bootstrap-423 .factory-buttons-way{float:right;position:relative;top:-25px;left:5px;border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-423 .factory-buttons-way{border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-423 .factory-buttons-way button{padding-left:10px;padding-right:10px}.factory-bootstrap-423 .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-423 .factory-checkbox-tumbler-hint{margin-top:5px}.factory-bootstrap-423 .factory-checkbox-tumbler-hint .factory-tumbler-content{display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-423 .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-423 .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-423 .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-423 .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-423 .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-423 .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-423 .factory-buttons-way .factory-on.active{background-color:#dd823b;-webkit-box-shadow:inset 0 1px 2px #c36822;box-shadow:inset 0 1px 2px #c36822;border-top:1px solid #c36822;border-bottom:1px solid #c36822;border-left:1px solid #c36822}
libs/factory/bootstrap/assets/css-min/control.dropdown.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .factory-dropdown.factory-buttons-way .fa{margin-right:6px;position:relative}.factory-bootstrap-422 .factory-dropdown.factory-buttons-way{border:0;border-radius:0}.factory-bootstrap-422 .factory-hints .factory-hint{margin-top:5px;display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-422 .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-422 .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-422 .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-422 .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-422 .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-422 .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-422 .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-422 .factory-dropdown.factory-ddslick-way .dd-select{background-color:#fff!important}.factory-bootstrap-422 .factory-dropdown.factory-ddslick-way label{margin-bottom:1px}.factory-bootstrap-422 .factory-dropdown.factory-ddslick-way .dd-option,.factory-bootstrap-422 .factory-dropdown.factory-ddslick-way .dd-selected{padding:8px 12px 8px 11px!important}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .factory-dropdown.factory-buttons-way .fa{margin-right:6px;position:relative}.factory-bootstrap-423 .factory-dropdown.factory-buttons-way{border:0;border-radius:0}.factory-bootstrap-423 .factory-hints .factory-hint{margin-top:5px;display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-423 .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-423 .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-423 .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-423 .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-423 .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-423 .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-423 .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-423 .factory-dropdown.factory-ddslick-way .dd-select{background-color:#fff!important}.factory-bootstrap-423 .factory-dropdown.factory-ddslick-way label{margin-bottom:1px}.factory-bootstrap-423 .factory-dropdown.factory-ddslick-way .dd-option,.factory-bootstrap-423 .factory-dropdown.factory-ddslick-way .dd-selected{padding:8px 12px 8px 11px!important}
libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .factory-mtextbox-item{position:relative;margin-bottom:5px}.factory-bootstrap-422 .factory-mtextbox-item input,.factory-mtextbox-remove-item{display:inline-block}.factory-bootstrap-422 .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-422 .factory-mtextbox-item .factory-mtextbox-remove-item:focus,.factory-bootstrap-422 .factory-mtextbox-item .factory-mtextbox-remove-item:hover{box-shadow:none;outline:0}.factory-bootstrap-422 .factory-mtextbox-add-item{display:block;margin-top:10px}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .factory-mtextbox-item{position:relative;margin-bottom:5px}.factory-bootstrap-423 .factory-mtextbox-item input,.factory-mtextbox-remove-item{display:inline-block}.factory-bootstrap-423 .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-423 .factory-mtextbox-item .factory-mtextbox-remove-item:focus,.factory-bootstrap-423 .factory-mtextbox-item .factory-mtextbox-remove-item:hover{box-shadow:none;outline:0}.factory-bootstrap-423 .factory-mtextbox-add-item{display:block;margin-top:10px}
libs/factory/bootstrap/assets/css-min/holder.more-link.min.css CHANGED
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-422 .factory-more-link-content{border-top:1px dashed #DDD;padding-top:25px;width:100%;padding-right:20px;position:relative}.factory-bootstrap-422 .factory-tab .factory-more-link-show{display:inline-block;text-decoration:none;border-bottom:1px dotted #21759b;position:relative}.factory-bootstrap-422 .factory-tab .factory-more-link-show:hover{border-color:#d54e21}.factory-bootstrap-422 .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-422 .factory-tab .factory-more-link-hide:hover{color:#999}
8
  */
9
 
10
 
11
+ .factory-bootstrap-423 .factory-more-link-content{border-top:1px dashed #DDD;padding-top:25px;width:100%;padding-right:20px;position:relative}.factory-bootstrap-423 .factory-tab .factory-more-link-show{display:inline-block;text-decoration:none;border-bottom:1px dotted #21759b;position:relative}.factory-bootstrap-423 .factory-tab .factory-more-link-show:hover{border-color:#d54e21}.factory-bootstrap-423 .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-423 .factory-tab .factory-more-link-hide:hover{color:#999}
libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js CHANGED
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- +function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=factory-dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}},a.fn.factoryBootstrap422_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.factoryBootstrap422_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);
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.factoryBootstrap423_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.factoryBootstrap423_dropdown.Constructor=f,a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(jQuery);
libs/factory/bootstrap/assets/js-min/control.checkbox.min.js CHANGED
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- !function(a){var b=function(b){var c=this;this.$element=a(b),this.$result=this.$element.find(".factory-result"),this.$on=this.$element.find(".factory-on"),this.$off=this.$element.find(".factory-off");var d=this.$element.is(".factory-tumbler"),e=this.$element.is(".factory-has-tumbler-hint"),f=this.$element.data("tumbler-function"),g=this.$element.data("tumbler-delay");g||(g=3e3),this.callByPath=function(a,b){for(var c=a.split("."),d=window,e=0;e<c.length;e++)d=d[c[e]];d.apply(d,b)},this.$on.click(function(){return c.$off.removeClass("active"),c.$on.addClass("active"),d?setTimeout(function(){c.$on.removeClass("active"),c.$off.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.attr("checked","checked"),c.$result.val(1),c.$result.trigger("change")),!1}),this.$off.click(function(){return c.$on.removeClass("active"),c.$off.addClass("active"),d?setTimeout(function(){c.$off.removeClass("active"),c.$on.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.removeAttr("checked"),c.$result.val(0),c.$result.trigger("change")),!1}),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){(void 0!==window.__factory_checkbox_control_events_off_data||void 0!==window.__factory_checkbox_control_events_on_data)&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.prop("checked"),f=window.__factory_checkbox_control_events_on_data[d],g=window.__factory_checkbox_control_events_off_data[d];if(f||g){var h,i;void 0===window.__factory_checkbox_control_detach_elements&&(window.__factory_checkbox_control_detach_elements={}),h=window.__factory_checkbox_control_detach_elements,i=e?f:g;for(var j in i)if(i.hasOwnProperty(j)){var k,l=i[j];a.isArray(l)||(k=c.hashCode(d+l));var m;switch(j){case"hide":"string"==typeof l&&a(l).hide(0);break;case"show":"string"==typeof l&&a(l).fadeIn(200);break;case"detach":"string"==typeof l&&a(l).each(function(b){h[k]||(h[k]={}),h[k][b]||(h[k][b]={}),h[k][b].recovery_contanier=a(this).parent(),h[k][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(h[k]){for(var n in h[k])h[k].hasOwnProperty(n)&&h[k][n].recovery_contanier&&h[k][n].element&&h[k][n].recovery_contanier.append(h[k][n].element);delete h[k]}break;case"removeClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).removeClass(l[m]);break;case"addClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).addClass(l[m]);break;case"setValue":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&void 0!==l[m]&&null!==l[m]&&(console.log(l[m]),a(m).val(l[m]))}}}},this.executeEvents(this.$result)};a.fn.factoryBootstrap422_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.factoryBootstrap422_checkboxControl.Constructor=b,a(function(){a(".factory-bootstrap-422 .factory-checkbox.factory-buttons-way").factoryBootstrap422_checkboxControl()})}(jQuery);
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.factoryBootstrap423_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.factoryBootstrap423_checkboxControl.Constructor=b,a(function(){a(".factory-bootstrap-423 .factory-checkbox.factory-buttons-way").factoryBootstrap423_checkboxControl()})}(jQuery);
libs/factory/bootstrap/assets/js-min/control.dropdown.min.js CHANGED
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- !function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name")||this.$element.attr("name"),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){void 0!==window.factory_dropdown_control_events_data&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.val(),f=window.factory_dropdown_control_events_data[d];if(f&&f[e]){var g;void 0===window.__factory_dropdown_control_detach_elements&&(window.__factory_dropdown_control_detach_elements={}),g=window.__factory_dropdown_control_detach_elements;for(var h in f[e])if(f[e].hasOwnProperty(h)){var i,j=f[e][h];switch(a.isArray(j)||(i=c.hashCode(d+j)),h){case"hide":"string"==typeof j&&a(j).hide(0);break;case"show":"string"==typeof j&&a(j).fadeIn(200);break;case"detach":"string"==typeof j&&a(j).each(function(b){g[i]||(g[i]={}),g[i][b]||(g[i][b]={}),g[i][b].recovery_contanier=a(this).parent(),g[i][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(g[i]){for(var k in g[i])g[i].hasOwnProperty(k)&&g[i][k].recovery_contanier&&g[i][k].element&&g[i][k].recovery_contanier.append(g[i][k].element);delete g[i]}break;case"removeClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).removeClass(j[l]);break;case"addClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).addClass(j[l])}}}},"buttons"===this.way)this.$result=this.$element.find(".factory-result"),this.$hints=this.$element.find(".factory-hints"),this.$buttons=this.$element.find(".btn"),c.executeEvents(this.$result),this.$buttons.click(function(){var b=a(this).data("value");return c.$buttons.removeClass("active"),a(this).addClass("active"),c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+b).fadeIn(),c.$result.val(b),c.$result.trigger("change"),!1});else if("ddslick"===this.way){c.executeEvents(c.$element.find(".factory-result"));var d=window["factory_"+this.name+"_data"],e=this.$element.find(".factory-ddslick"),f=this.$element.data("width")||300,g=this.$element.data("align")||"right";a(d).each(function(){return this.imageHoverSrc?void(a("<img/>")[0].src=this.imageHoverSrc):!0}),e.ddslick({data:d,width:f,imagePosition:g,selectText:"- select -",onSelected:function(a){a.selectedData.imageHoverSrc&&c.$element.find(".dd-selected-image").attr("src",a.selectedData.imageHoverSrc);var b=c.$element.find(".factory-result").val(a.selectedData.value);b.change()}})}else{c.executeEvents(this.$element),this.$hints=this.$element.next(),this.$hints.hasClass("factory-hints")&&(this.$element.change(function(){return c.updateHints(),!1}),this.updateHints=function(){var a=c.$element.val();c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+a).show()},c.updateHints()),this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(a){console&&console.log&&console.log(a.responseText),c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length)for(var d in a){var e=a[d];c.addListItem(e)}else this.$element.append("<option>"+b.emptyList+"</li>");this.$element.trigger("factory-loaded")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<option />").attr("value",b.value).text(b.title).appendTo(this.$element),e=c.getAjaxData();e.selected&&e.selected==b.value&&d.attr("selected","selected")},this.showError=function(b){this.clearList();var d=a("<div class='factory-control-error'></div>").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),e=c.getAjaxData();this.$element.append("<option>"+e.emptyList+"</li>"),this.$element.after(d),this.$element.addClass("factory-has-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var h=this.$element.data("ajax");h&&this.loadData()}};a.fn.factoryBootstrap422_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.factoryBootstrap422_dropdownControl.Constructor=b,a(function(){a(".factory-bootstrap-422 .factory-dropdown").factoryBootstrap422_dropdownControl()})}(jQuery);
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.factoryBootstrap423_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.factoryBootstrap423_dropdownControl.Constructor=b,a(function(){a(".factory-bootstrap-423 .factory-dropdown").factoryBootstrap423_dropdownControl()})}(jQuery);
libs/factory/bootstrap/assets/js-min/control.list.min.js CHANGED
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- !function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name"),"checklist"===this.way){this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(){c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length){this.$element.removeClass("factory-empty");for(var d in a){var e=a[d];c.addListItem(e)}}else this.$element.addClass("factory-empty"),this.$element.append("<li>"+b.emptyList+"</li>")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<li>"),e=a("<label>").attr("for","factory-checklist-"+c.name+"-"+b.value).appendTo(d),f=a("<span>").appendTo(e),g=a("<input />").attr("type","checkbox").attr("name",c.name+"[]").val(b.value).attr("id","factory-checklist-"+c.name+"-"+b.value).appendTo(f),h=(a("<span>"+b.title+"</span>").appendTo(e),c.getAjaxData());h.selected.length&&a.inArray(b.value,h.selected)>=0&&g.attr("checked","checked"),this.$element.append(d)},this.showError=function(b){this.$element.html("").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),this.$element.addClass("factory-list-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var d=this.$element.data("ajax");d&&this.loadData()}};a.fn.factoryBootstrap422_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.factoryBootstrap422_listControl.Constructor=b,a(function(){a(".factory-bootstrap-422 .factory-list").factoryBootstrap422_listControl()})}(jQuery);
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.factoryBootstrap423_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.factoryBootstrap423_listControl.Constructor=b,a(function(){a(".factory-bootstrap-423 .factory-list").factoryBootstrap423_listControl()})}(jQuery);
libs/factory/bootstrap/assets/js-min/control.multiple-textbox.min.js CHANGED
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- !function(a){"use strict";var b=function(b){this.$element=a(b);var c=a(".factory-mtextbox-item",this.$element).eq(0).clone(!0);a(".factory-mtextbox-add-item",this.$element).on("click",function(){var b=a(this).closest(".factory-multiple-textbox-group").find(".factory-mtextbox-items"),d=c.clone(!0),e=a('<button class="btn btn-default btn-small factory-mtextbox-remove-item"><i class="fa fa-times" aria-hidden="true"></i></button>');return b.append(d.append(e)),d.find('input[type="text"]').val("").focus(),!1}),a(document).on("click",".factory-mtextbox-remove-item",function(){return a(this).closest(".factory-mtextbox-item").remove(),!1})};a.fn.factoryBootstrap422_MultipleTextboxControl=function(){return this.each(function(){new b(this)})},a(function(){a(".factory-bootstrap-422 .factory-multiple-textbox-group").factoryBootstrap422_MultipleTextboxControl()})}(jQuery);
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.factoryBootstrap423_MultipleTextboxControl=function(){return this.each(function(){new b(this)})},a(function(){a(".factory-bootstrap-423 .factory-multiple-textbox-group").factoryBootstrap423_MultipleTextboxControl()})}(jQuery);
libs/factory/bootstrap/boot.php CHANGED
@@ -19,27 +19,27 @@ if ( ! is_admin() ) {
19
  return;
20
  }
21
 
22
- if ( defined( 'FACTORY_BOOTSTRAP_422_LOADED' ) ) {
23
  return;
24
  }
25
 
26
- define( 'FACTORY_BOOTSTRAP_422_VERSION', '4.2.2' );
27
- define( 'FACTORY_BOOTSTRAP_422_LOADED', true );
28
 
29
  if ( ! defined( 'FACTORY_FLAT_ADMIN' ) ) {
30
  define( 'FACTORY_FLAT_ADMIN', true );
31
  }
32
 
33
- define( 'FACTORY_BOOTSTRAP_422_DIR', dirname( __FILE__ ) );
34
- define( 'FACTORY_BOOTSTRAP_422_URL', plugins_url( null, __FILE__ ) );
35
 
36
- require_once( FACTORY_BOOTSTRAP_422_DIR . '/includes/functions.php' );
37
 
38
  /**
39
- * @param Wbcr_Factory421_Plugin $plugin
40
  */
41
- add_action( 'wbcr_factory_bootstrap_422_plugin_created', function ( $plugin ) {
42
- $manager = new Wbcr_FactoryBootstrap422_Manager( $plugin );
43
  $plugin->setBootstap( $manager );
44
  } );
45
 
19
  return;
20
  }
21
 
22
+ if ( defined( 'FACTORY_BOOTSTRAP_423_LOADED' ) ) {
23
  return;
24
  }
25
 
26
+ define( 'FACTORY_BOOTSTRAP_423_VERSION', '4.2.3' );
27
+ define( 'FACTORY_BOOTSTRAP_423_LOADED', true );
28
 
29
  if ( ! defined( 'FACTORY_FLAT_ADMIN' ) ) {
30
  define( 'FACTORY_FLAT_ADMIN', true );
31
  }
32
 
33
+ define( 'FACTORY_BOOTSTRAP_423_DIR', dirname( __FILE__ ) );
34
+ define( 'FACTORY_BOOTSTRAP_423_URL', plugins_url( null, __FILE__ ) );
35
 
36
+ require_once( FACTORY_BOOTSTRAP_423_DIR . '/includes/functions.php' );
37
 
38
  /**
39
+ * @param Wbcr_Factory422_Plugin $plugin
40
  */
41
+ add_action( 'wbcr_factory_bootstrap_423_plugin_created', function ( $plugin ) {
42
+ $manager = new Wbcr_FactoryBootstrap423_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_FactoryBootstrap422_Manager {
24
 
25
  /**
26
  * A plugin for which the manager was created.
27
  *
28
  * @since 3.2.0
29
- * @var Wbcr_Factory421_Plugin
30
  */
31
  public $plugin;
32
 
@@ -51,7 +51,7 @@ class Wbcr_FactoryBootstrap422_Manager {
51
  *
52
  * @since 1.0.0
53
  */
54
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
55
  $this->plugin = $plugin;
56
 
57
  add_action( 'admin_enqueue_scripts', [ $this, 'loadAssets' ] );
@@ -111,8 +111,8 @@ class Wbcr_FactoryBootstrap422_Manager {
111
  */
112
  public function loadAssets( $hook ) {
113
 
114
- do_action( 'wbcr_factory_421_bootstrap_enqueue_scripts', $hook );
115
- do_action( 'wbcr_factory_421_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), $hook );
116
 
117
  $dependencies = [];
118
  if ( ! empty( $this->scripts ) ) {
@@ -142,8 +142,8 @@ class Wbcr_FactoryBootstrap422_Manager {
142
  $color_name = get_user_meta( $user_id, 'admin_color', true );
143
 
144
  if ( $color_name !== 'fresh' ) {
145
- if ( file_exists( FACTORY_BOOTSTRAP_422_DIR . '/assets/flat/css/bootstrap.' . $color_name . '.css' ) ) {
146
- wp_enqueue_style( 'wbcr-factory-bootstrap-422-colors', FACTORY_BOOTSTRAP_422_URL . '/assets/flat/css/bootstrap.' . $color_name . '.css' );
147
  }
148
  }
149
 
@@ -178,10 +178,10 @@ class Wbcr_FactoryBootstrap422_Manager {
178
  if( !window.factory ) {
179
  window.factory = {};
180
  }
181
- if( !window.factory.factoryBootstrap422 ) {
182
- window.factory.factoryBootstrap422 = {};
183
  }
184
- window.factory.factoryBootstrap422.colors = {
185
  primaryDark: '<?php echo $primary_dark ?>',
186
  primaryLight: '<?php echo $primary_light ?>'
187
  };
@@ -206,8 +206,8 @@ class Wbcr_FactoryBootstrap422_Manager {
206
  $cache_enable = apply_filters( 'wbcr/factory/bootstrap/cache_enable', true );
207
 
208
  $cache_id = md5( implode( ',', $this->scripts ) . $type . $this->plugin->getPluginVersion() );
209
- $cache_dir_path = FACTORY_BOOTSTRAP_422_DIR . '/assets/cache/';
210
- $cache_dir_url = FACTORY_BOOTSTRAP_422_URL . '/assets/cache/';
211
 
212
  $cache_filepath = $cache_dir_path . $cache_id . ".min." . $type;
213
  $cache_fileurl = $cache_dir_url . $cache_id . ".min." . $type;
@@ -234,7 +234,7 @@ class Wbcr_FactoryBootstrap422_Manager {
234
  foreach ( $sripts as $script_to_load ) {
235
  $script_to_load = sanitize_text_field( $script_to_load );
236
  if ( $cache_enable && $cache_dir_exists ) {
237
- $fname = FACTORY_BOOTSTRAP_422_DIR . "/assets/$type-min/$script_to_load.min." . $type;
238
  if ( file_exists( $fname ) ) {
239
  $f = @fopen( $fname, 'r' );
240
  $concat_files[] = @fread( $f, filesize( $fname ) );
@@ -242,9 +242,9 @@ class Wbcr_FactoryBootstrap422_Manager {
242
  }
243
  } else {
244
  if ( $type == 'js' ) {
245
- wp_enqueue_script( md5( $script_to_load ), FACTORY_BOOTSTRAP_422_URL . "/assets/$type-min/$script_to_load.min." . $type, $is_first ? $dependencies : false, $this->plugin->getPluginVersion() );
246
  } else {
247
- wp_enqueue_style( md5( $script_to_load ), FACTORY_BOOTSTRAP_422_URL . "/assets/$type-min/$script_to_load.min." . $type, [], $this->plugin->getPluginVersion() );
248
  }
249
  $is_first = false;
250
  }
20
  *
21
  * @since 3.2.0
22
  */
23
+ class Wbcr_FactoryBootstrap423_Manager {
24
 
25
  /**
26
  * A plugin for which the manager was created.
27
  *
28
  * @since 3.2.0
29
+ * @var Wbcr_Factory422_Plugin
30
  */
31
  public $plugin;
32
 
51
  *
52
  * @since 1.0.0
53
  */
54
+ public function __construct( Wbcr_Factory422_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_422_bootstrap_enqueue_scripts', $hook );
115
+ do_action( 'wbcr_factory_422_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), $hook );
116
 
117
  $dependencies = [];
118
  if ( ! empty( $this->scripts ) ) {
142
  $color_name = get_user_meta( $user_id, 'admin_color', true );
143
 
144
  if ( $color_name !== 'fresh' ) {
145
+ if ( file_exists( FACTORY_BOOTSTRAP_423_DIR . '/assets/flat/css/bootstrap.' . $color_name . '.css' ) ) {
146
+ wp_enqueue_style( 'wbcr-factory-bootstrap-423-colors', FACTORY_BOOTSTRAP_423_URL . '/assets/flat/css/bootstrap.' . $color_name . '.css' );
147
  }
148
  }
149
 
178
  if( !window.factory ) {
179
  window.factory = {};
180
  }
181
+ if( !window.factory.factoryBootstrap423 ) {
182
+ window.factory.factoryBootstrap423 = {};
183
  }
184
+ window.factory.factoryBootstrap423.colors = {
185
  primaryDark: '<?php echo $primary_dark ?>',
186
  primaryLight: '<?php echo $primary_light ?>'
187
  };
206
  $cache_enable = apply_filters( 'wbcr/factory/bootstrap/cache_enable', true );
207
 
208
  $cache_id = md5( implode( ',', $this->scripts ) . $type . $this->plugin->getPluginVersion() );
209
+ $cache_dir_path = FACTORY_BOOTSTRAP_423_DIR . '/assets/cache/';
210
+ $cache_dir_url = FACTORY_BOOTSTRAP_423_URL . '/assets/cache/';
211
 
212
  $cache_filepath = $cache_dir_path . $cache_id . ".min." . $type;
213
  $cache_fileurl = $cache_dir_url . $cache_id . ".min." . $type;
234
  foreach ( $sripts as $script_to_load ) {
235
  $script_to_load = sanitize_text_field( $script_to_load );
236
  if ( $cache_enable && $cache_dir_exists ) {
237
+ $fname = FACTORY_BOOTSTRAP_423_DIR . "/assets/$type-min/$script_to_load.min." . $type;
238
  if ( file_exists( $fname ) ) {
239
  $f = @fopen( $fname, 'r' );
240
  $concat_files[] = @fread( $f, filesize( $fname ) );
242
  }
243
  } else {
244
  if ( $type == 'js' ) {
245
+ wp_enqueue_script( md5( $script_to_load ), FACTORY_BOOTSTRAP_423_URL . "/assets/$type-min/$script_to_load.min." . $type, $is_first ? $dependencies : false, $this->plugin->getPluginVersion() );
246
  } else {
247
+ wp_enqueue_style( md5( $script_to_load ), FACTORY_BOOTSTRAP_423_URL . "/assets/$type-min/$script_to_load.min." . $type, [], $this->plugin->getPluginVersion() );
248
  }
249
  $is_first = false;
250
  }
libs/factory/clearfy/assets/css/clearfy-base.css CHANGED
@@ -5,18 +5,18 @@
5
  * @copyright Webcraftic 06.10.2018
6
  * @sicne 2.0.5
7
  */
8
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-clearfy-213-multisite-suggetion {
9
  padding: 30px 80px;
10
  }
11
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-clearfy-213-multisite-suggetion h3 {
12
  margin: 0 0 20px;
13
  }
14
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-clearfy-213-multisite-suggetion .wbcr-factory-inner-contanier {
15
  border: 2px dashed #8bc34a;
16
  background: #fff;
17
  padding: 20px;
18
  }
19
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-clearfy-213-multisite-suggetion .wbcr-factory-activate-premium {
20
  display: inline-block;
21
  cursor: pointer;
22
  line-height: 16px;
@@ -35,16 +35,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-421-impressive-page-template .wbcr-factory-clearfy-213-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-421-impressive-page-template .wbcr-factory-clearfy-213-multisite-suggetion .wbcr-factory-activate-premium:focus {
44
  outline: none;
45
  border: 0;
46
  }
47
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-clearfy-213-multisite-suggetion .wbcr-factory-purchase-premium {
48
  display: inline-block;
49
  cursor: pointer;
50
  line-height: 16px;
@@ -63,22 +63,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-421-impressive-page-template .wbcr-factory-clearfy-213-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-421-impressive-page-template .wbcr-factory-clearfy-213-multisite-suggetion .wbcr-factory-purchase-premium:focus {
72
  outline: none;
73
  border: 0;
74
  }
75
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-pro-suggettion {
76
  background: #fff;
77
  color: #353535;
78
  font-weight: 600;
79
  border: 2px dashed #8bc34a;
80
  }
81
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-pro-suggettion h3 {
82
  margin: 0 0 20px;
83
  padding: 10px 0;
84
  text-align: center;
@@ -89,16 +89,16 @@
89
  vertical-align: middle;
90
  text-transform: uppercase;
91
  }
92
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-pro-suggettion ul {
93
  position: relative;
94
  margin-bottom: 20px;
95
  }
96
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-pro-suggettion ul li {
97
  font-size: 15px;
98
  padding: 7px;
99
  padding-left: 20px;
100
  }
101
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-pro-suggettion ul li:before {
102
  content: " ";
103
  display: inline-block;
104
  width: 0.4em;
@@ -112,7 +112,7 @@
112
  -o-transform: rotate(45deg);
113
  transform: rotate(45deg);
114
  }
115
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-pro-suggettion .wbcr-factory-purchase-premium {
116
  display: block;
117
  cursor: pointer;
118
  line-height: 16px;
@@ -131,44 +131,44 @@
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-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-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-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-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-421-impressive-page-template .wbcr-factory-clearfy-213-multisite-pro-suggetion {
145
  padding: 10px 80px;
146
  }
147
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-pro-suggettion {
148
  padding: 10px;
149
  }
150
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-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-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-pro-suggettion ul {
157
  margin-bottom: 20px;
158
  }
159
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-pro-suggettion ul li {
160
  font-size: 13px;
161
  padding: 2px;
162
  padding-left: 10px;
163
  }
164
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-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-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-213-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 .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-clearfy-214-multisite-suggetion {
9
  padding: 30px 80px;
10
  }
11
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-clearfy-214-multisite-suggetion h3 {
12
  margin: 0 0 20px;
13
  }
14
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-clearfy-214-multisite-suggetion .wbcr-factory-inner-contanier {
15
  border: 2px dashed #8bc34a;
16
  background: #fff;
17
  padding: 20px;
18
  }
19
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-clearfy-214-multisite-suggetion .wbcr-factory-activate-premium {
20
  display: inline-block;
21
  cursor: pointer;
22
  line-height: 16px;
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-422-impressive-page-template .wbcr-factory-clearfy-214-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-422-impressive-page-template .wbcr-factory-clearfy-214-multisite-suggetion .wbcr-factory-activate-premium:focus {
44
  outline: none;
45
  border: 0;
46
  }
47
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-clearfy-214-multisite-suggetion .wbcr-factory-purchase-premium {
48
  display: inline-block;
49
  cursor: pointer;
50
  line-height: 16px;
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-422-impressive-page-template .wbcr-factory-clearfy-214-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-422-impressive-page-template .wbcr-factory-clearfy-214-multisite-suggetion .wbcr-factory-purchase-premium:focus {
72
  outline: none;
73
  border: 0;
74
  }
75
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion {
76
  background: #fff;
77
  color: #353535;
78
  font-weight: 600;
79
  border: 2px dashed #8bc34a;
80
  }
81
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion h3 {
82
  margin: 0 0 20px;
83
  padding: 10px 0;
84
  text-align: center;
89
  vertical-align: middle;
90
  text-transform: uppercase;
91
  }
92
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion ul {
93
  position: relative;
94
  margin-bottom: 20px;
95
  }
96
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion ul li {
97
  font-size: 15px;
98
  padding: 7px;
99
  padding-left: 20px;
100
  }
101
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion ul li:before {
102
  content: " ";
103
  display: inline-block;
104
  width: 0.4em;
112
  -o-transform: rotate(45deg);
113
  transform: rotate(45deg);
114
  }
115
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion .wbcr-factory-purchase-premium {
116
  display: block;
117
  cursor: pointer;
118
  line-height: 16px;
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-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-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-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-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-422-impressive-page-template .wbcr-factory-clearfy-214-multisite-pro-suggetion {
145
  padding: 10px 80px;
146
  }
147
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion {
148
  padding: 10px;
149
  }
150
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-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-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion ul {
157
  margin-bottom: 20px;
158
  }
159
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion ul li {
160
  font-size: 13px;
161
  padding: 2px;
162
  padding-left: 10px;
163
  }
164
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-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-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-214-pro-suggettion .wbcr-factory-purchase-premium {
172
  font-weight: 700;
173
  line-height: 16px;
174
  font-size: 12px;
libs/factory/clearfy/assets/js/globals.js CHANGED
@@ -2,8 +2,8 @@
2
  * Глобальный JS файл, который регистрирует глобальные переменные с общими методами для всех компонентов Clearfy
3
  * и самого Clearfy.
4
  *
5
- * $.wbcr_factory_clearfy_213.app - методы для работы с приложением. Скрыть, показать уведомления.
6
- * $.wbcr_factory_clearfy_213.hooks - это иммитация хуков и фильтров аналогично тем, что используются в Wordpress
7
  *
8
  * Copyright 2018, Webcraftic, http://webcraftic.com
9
  *
@@ -13,11 +13,11 @@
13
  (function($) {
14
  'use strict';
15
 
16
- if( !$.wbcr_factory_clearfy_213 ) {
17
- $.wbcr_factory_clearfy_213 = {};
18
  }
19
 
20
- $.wbcr_factory_clearfy_213.app = $.wbcr_factory_clearfy_213.app || {
21
  /**
22
  * Создает и показывает уведомление внутри интерфейса Clearfy
23
  *
@@ -63,12 +63,12 @@
63
  /**
64
  * Хук выполняет проивольную функцию, после того как уведомление отображено
65
  * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
66
- * Пример регистрации хука $.wbcr_factory_clearfy_213.hooks.add('wbcr/factory_clearfy_213/updated',
67
  * function(noticeId) {});
68
  * @param {string} noticeId - id уведомления
69
  */
70
- $.wbcr_factory_clearfy_213.hooks.run('wbcr/factory_clearfy_213/showed_notice', [noticeId]);
71
- $.wbcr_factory_clearfy_213.hooks.run('wbcr/clearfy/showed_notice', [noticeId]);
72
  });
73
 
74
  return noticeId;
@@ -93,13 +93,13 @@
93
  /**
94
  * Хук выполняет проивольную функцию, после того как уведомление скрыто
95
  * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
96
- * Пример регистрации хука $.wbcr_factory_clearfy_213.hooks.add('wbcr/factory_clearfy_213/updated',
97
  * function(noticeId)
98
  * {});
99
  * @param {string} noticeId - id уведомления
100
  */
101
- $.wbcr_factory_clearfy_213.hooks.run('wbcr/factory_clearfy_213/hidded_notice', [noticeId]);
102
- $.wbcr_factory_clearfy_213.hooks.run('wbcr/clearfy/hidded_notice', [noticeId]);
103
  });
104
  },
105
 
@@ -116,7 +116,7 @@
116
 
117
  };
118
 
119
- $.wbcr_factory_clearfy_213.filters = $.wbcr_factory_clearfy_213.filters || {
120
 
121
  /**
122
  * A set of registered filters.
@@ -183,20 +183,20 @@
183
  }
184
  };
185
 
186
- $.wbcr_factory_clearfy_213.hooks = $.wbcr_factory_clearfy_213.hooks || {
187
 
188
  /**
189
  * Applies filters to a given input value.
190
  */
191
  run: function(filterName, args) {
192
- $.wbcr_factory_clearfy_213.filters.run(filterName, args);
193
  },
194
 
195
  /**
196
  * Registers a new filter.
197
  */
198
  add: function(filterName, callback, priority) {
199
- $.wbcr_factory_clearfy_213.filters.add(filterName, callback, priority);
200
  }
201
  };
202
 
2
  * Глобальный JS файл, который регистрирует глобальные переменные с общими методами для всех компонентов Clearfy
3
  * и самого Clearfy.
4
  *
5
+ * $.wbcr_factory_clearfy_214.app - методы для работы с приложением. Скрыть, показать уведомления.
6
+ * $.wbcr_factory_clearfy_214.hooks - это иммитация хуков и фильтров аналогично тем, что используются в Wordpress
7
  *
8
  * Copyright 2018, Webcraftic, http://webcraftic.com
9
  *
13
  (function($) {
14
  'use strict';
15
 
16
+ if( !$.wbcr_factory_clearfy_214 ) {
17
+ $.wbcr_factory_clearfy_214 = {};
18
  }
19
 
20
+ $.wbcr_factory_clearfy_214.app = $.wbcr_factory_clearfy_214.app || {
21
  /**
22
  * Создает и показывает уведомление внутри интерфейса Clearfy
23
  *
63
  /**
64
  * Хук выполняет проивольную функцию, после того как уведомление отображено
65
  * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
66
+ * Пример регистрации хука $.wbcr_factory_clearfy_214.hooks.add('wbcr/factory_clearfy_214/updated',
67
  * function(noticeId) {});
68
  * @param {string} noticeId - id уведомления
69
  */
70
+ $.wbcr_factory_clearfy_214.hooks.run('wbcr/factory_clearfy_214/showed_notice', [noticeId]);
71
+ $.wbcr_factory_clearfy_214.hooks.run('wbcr/clearfy/showed_notice', [noticeId]);
72
  });
73
 
74
  return noticeId;
93
  /**
94
  * Хук выполняет проивольную функцию, после того как уведомление скрыто
95
  * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
96
+ * Пример регистрации хука $.wbcr_factory_clearfy_214.hooks.add('wbcr/factory_clearfy_214/updated',
97
  * function(noticeId)
98
  * {});
99
  * @param {string} noticeId - id уведомления
100
  */
101
+ $.wbcr_factory_clearfy_214.hooks.run('wbcr/factory_clearfy_214/hidded_notice', [noticeId]);
102
+ $.wbcr_factory_clearfy_214.hooks.run('wbcr/clearfy/hidded_notice', [noticeId]);
103
  });
104
  },
105
 
116
 
117
  };
118
 
119
+ $.wbcr_factory_clearfy_214.filters = $.wbcr_factory_clearfy_214.filters || {
120
 
121
  /**
122
  * A set of registered filters.
183
  }
184
  };
185
 
186
+ $.wbcr_factory_clearfy_214.hooks = $.wbcr_factory_clearfy_214.hooks || {
187
 
188
  /**
189
  * Applies filters to a given input value.
190
  */
191
  run: function(filterName, args) {
192
+ $.wbcr_factory_clearfy_214.filters.run(filterName, args);
193
  },
194
 
195
  /**
196
  * Registers a new filter.
197
  */
198
  add: function(filterName, callback, priority) {
199
+ $.wbcr_factory_clearfy_214.filters.add(filterName, callback, priority);
200
  }
201
  };
202
 
libs/factory/clearfy/assets/js/license-manager.js CHANGED
@@ -20,7 +20,7 @@ jQuery(function($) {
20
  licenseAction = $(this).data('action');
21
 
22
  for( i = 0; i < allNotices.length; i++ ) {
23
- $.wbcr_factory_clearfy_213.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_213.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_213.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_213.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_214.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_214.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_214.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_214.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
84
 
85
  allNotices.push(noticeId);
86
  }
libs/factory/clearfy/boot.php CHANGED
@@ -14,22 +14,22 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- if ( defined( 'FACTORY_CLEARFY_213_LOADED' ) ) {
18
  return;
19
  }
20
 
21
- define( 'FACTORY_CLEARFY_213_LOADED', true );
22
 
23
- define( 'FACTORY_CLEARFY_213', '2.1.3' );
24
 
25
- define( 'FACTORY_CLEARFY_213_DIR', dirname( __FILE__ ) );
26
- define( 'FACTORY_CLEARFY_213_URL', plugins_url( null, __FILE__ ) );
27
 
28
- load_plugin_textdomain( 'wbcr_factory_clearfy_213', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
29
 
30
- require( FACTORY_CLEARFY_213_DIR . '/includes/ajax-handlers.php' );
31
- require( FACTORY_CLEARFY_213_DIR . '/includes/class-helpers.php' );
32
- require( FACTORY_CLEARFY_213_DIR . '/includes/class-configurate.php' );
33
 
34
  // module provides function only for the admin area
35
  if ( is_admin() ) {
@@ -38,12 +38,12 @@ if ( is_admin() ) {
38
  * на все страницы админпанели.
39
  */
40
  add_action( 'admin_enqueue_scripts', function () {
41
- wp_enqueue_script( 'wbcr-factory-clearfy-213-global', FACTORY_CLEARFY_213_URL . '/assets/js/globals.js', [ 'jquery' ], FACTORY_CLEARFY_213 );
42
  } );
43
 
44
- if ( defined( 'FACTORY_PAGES_421_LOADED' ) ) {
45
- require( FACTORY_CLEARFY_213_DIR . '/pages/class-pages.php' );
46
- require( FACTORY_CLEARFY_213_DIR . '/pages/class-page-more-features.php' );
47
- require( FACTORY_CLEARFY_213_DIR . '/pages/class-page-license.php' );
48
  }
49
  }
14
  exit;
15
  }
16
 
17
+ if ( defined( 'FACTORY_CLEARFY_214_LOADED' ) ) {
18
  return;
19
  }
20
 
21
+ define( 'FACTORY_CLEARFY_214_LOADED', true );
22
 
23
+ define( 'FACTORY_CLEARFY_214', '2.1.4' );
24
 
25
+ define( 'FACTORY_CLEARFY_214_DIR', dirname( __FILE__ ) );
26
+ define( 'FACTORY_CLEARFY_214_URL', plugins_url( null, __FILE__ ) );
27
 
28
+ load_plugin_textdomain( 'wbcr_factory_clearfy_214', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
29
 
30
+ require( FACTORY_CLEARFY_214_DIR . '/includes/ajax-handlers.php' );
31
+ require( FACTORY_CLEARFY_214_DIR . '/includes/class-helpers.php' );
32
+ require( FACTORY_CLEARFY_214_DIR . '/includes/class-configurate.php' );
33
 
34
  // module provides function only for the admin area
35
  if ( is_admin() ) {
38
  * на все страницы админпанели.
39
  */
40
  add_action( 'admin_enqueue_scripts', function () {
41
+ wp_enqueue_script( 'wbcr-factory-clearfy-214-global', FACTORY_CLEARFY_214_URL . '/assets/js/globals.js', [ 'jquery' ], FACTORY_CLEARFY_214 );
42
  } );
43
 
44
+ if ( defined( 'FACTORY_PAGES_422_LOADED' ) ) {
45
+ require( FACTORY_CLEARFY_214_DIR . '/pages/class-pages.php' );
46
+ require( FACTORY_CLEARFY_214_DIR . '/pages/class-page-more-features.php' );
47
+ require( FACTORY_CLEARFY_214_DIR . '/pages/class-page-license.php' );
48
  }
49
  }
libs/factory/clearfy/includes/ajax-handlers.php CHANGED
@@ -17,10 +17,10 @@ if ( ! defined( 'ABSPATH' ) ) {
17
  *
18
  * @since 2.0.7
19
  *
20
- * @param Wbcr_Factory421_Plugin $plugin_instance
21
  *
22
  */
23
- function wbcr_factory_clearfy_213_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_213_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_213' ) ] );
38
  die();
39
  }
40
 
@@ -45,23 +45,23 @@ function wbcr_factory_clearfy_213_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_213' ) ] );
49
  } else {
50
  $plugin_instance->premium->activate( $license_key );
51
- $success_message = __( 'Your license has been successfully activated', 'wbcr_factory_clearfy_213' );
52
  }
53
  break;
54
  case 'deactivate':
55
  $plugin_instance->premium->deactivate();
56
- $success_message = __( 'The license is deactivated', 'wbcr_factory_clearfy_213' );
57
  break;
58
  case 'sync':
59
  $plugin_instance->premium->sync();
60
- $success_message = __( 'The license has been updated', 'wbcr_factory_clearfy_213' );
61
  break;
62
  case 'unsubscribe':
63
  $plugin_instance->premium->cancel_paid_subscription();
64
- $success_message = __( 'Subscription success cancelled', 'wbcr_factory_clearfy_213' );
65
  break;
66
  }
67
  } catch( Exception $e ) {
17
  *
18
  * @since 2.0.7
19
  *
20
+ * @param Wbcr_Factory422_Plugin $plugin_instance
21
  *
22
  */
23
+ function wbcr_factory_clearfy_214_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_214' ) ] );
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_214' ) ] );
49
  } else {
50
  $plugin_instance->premium->activate( $license_key );
51
+ $success_message = __( 'Your license has been successfully activated', 'wbcr_factory_clearfy_214' );
52
  }
53
  break;
54
  case 'deactivate':
55
  $plugin_instance->premium->deactivate();
56
+ $success_message = __( 'The license is deactivated', 'wbcr_factory_clearfy_214' );
57
  break;
58
  case 'sync':
59
  $plugin_instance->premium->sync();
60
+ $success_message = __( 'The license has been updated', 'wbcr_factory_clearfy_214' );
61
  break;
62
  case 'unsubscribe':
63
  $plugin_instance->premium->cancel_paid_subscription();
64
+ $success_message = __( 'Subscription success cancelled', 'wbcr_factory_clearfy_214' );
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_FactoryClearfy213_Configurate {
17
 
18
  /**
19
- * @param Wbcr_Factory421_Plugin $plugin
20
  */
21
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
22
  $this->plugin = $plugin;
23
  $this->registerActionsAndFilters();
24
  }
13
  * @copyright (c) 2018, Webcraftic Ltd
14
  *
15
  */
16
+ abstract class Wbcr_FactoryClearfy214_Configurate {
17
 
18
  /**
19
+ * @param Wbcr_Factory422_Plugin $plugin
20
  */
21
+ public function __construct( Wbcr_Factory422_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 WbcrFactoryClearfy213_Helpers {
18
 
19
  /**
20
  * Ссылка по умолчанию (анг)
14
  * @copyright (c) 2018, Webcraftic Ltd
15
  *
16
  */
17
+ class WbcrFactoryClearfy214_Helpers {
18
 
19
  /**
20
  * Ссылка по умолчанию (анг)
libs/factory/clearfy/langs/{wbcr_factory_clearfy_213-ru_RU.mo → wbcr_factory_clearfy_214-ru_RU.mo} RENAMED
File without changes
libs/factory/clearfy/langs/{wbcr_factory_clearfy_213-ru_RU.po → wbcr_factory_clearfy_214-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_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase {
15
 
16
  /**
17
  * {@inheritdoc}
@@ -80,7 +80,7 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
80
 
81
  /**
82
  * @since 2.0.7
83
- * @var \WBCR\Factory_421\Premium\Provider
84
  */
85
  protected $premium;
86
 
@@ -98,7 +98,7 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
98
 
99
  /**
100
  * @since 2.0.7
101
- * @var \WBCR\Factory_421\Premium\Interfaces\License
102
  */
103
  protected $premium_license;
104
 
@@ -107,9 +107,9 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
107
 
108
  /**
109
  * {@inheritdoc}
110
- * @param Wbcr_Factory421_Plugin $plugin
111
  */
112
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
113
  $this->plugin = $plugin;
114
 
115
  parent::__construct( $plugin );
@@ -134,8 +134,8 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
134
  public function assets( $scripts, $styles ) {
135
  parent::assets( $scripts, $styles );
136
 
137
- $this->styles->add( FACTORY_CLEARFY_213_URL . '/assets/css/license-manager.css' );
138
- $this->scripts->add( FACTORY_CLEARFY_213_URL . '/assets/js/license-manager.js' );
139
  }
140
 
141
  /**
@@ -144,7 +144,7 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
144
  * @since 2.0.7
145
  */
146
  public function ajax_handler() {
147
- wbcr_factory_clearfy_213_check_license( $this->plugin );
148
  }
149
 
150
  /**
@@ -153,7 +153,7 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
153
  public function showPageContent() {
154
  ?>
155
  <div id="wcl-license-wrapper"
156
- data-loader="<?php echo FACTORY_CLEARFY_213_URL . '/assets/img/loader.gif'; ?>"
157
  data-plugin-name="<?php echo esc_attr( $this->plugin_name ); ?>"
158
  data-nonce="<?php echo wp_create_nonce( "clearfy_activate_license_for_{$this->plugin_name}" ) ?>">
159
  <?php $this->show_license_form(); ?>
@@ -250,16 +250,16 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
250
  public function show_license_form( $notice = false ) {
251
  ?>
252
  <div id="license-manager"
253
- class="factory-bootstrap-422 onp-page-wrap <?= $this->get_license_type() ?>-license-manager-content">
254
  <div>
255
- <h3><?php printf( __( 'Activate %s', 'wbcr_factory_clearfy_213' ), $this->plan_name ) ?></h3>
256
  <?php echo $this->get_plan_description() ?>
257
  </div>
258
  <br>
259
  <?php if ( is_wp_error( $notice ) ) : ?>
260
  <div class="license-message <?= $this->get_license_type() ?>-license-message">
261
  <div class="alert <?php echo esc_attr( $notice->get_error_code() ); ?>">
262
- <h4 class="alert-heading"><?php _e( $notice->get_error_message(), 'wbcr_factory_clearfy_213' ) ?></h4>
263
  </div>
264
  </div>
265
  <?php endif; ?>
@@ -269,20 +269,20 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
269
  <a href="<?php echo $this->plugin->get_support()->get_pricing_url( true, 'license_page' ); ?>"
270
  class="purchase-premium" target="_blank" rel="noopener">
271
  <span class="btn btn-gold btn-inner-wrap">
272
- <?php printf( __( 'Upgrade to Premium for $%s', 'wbcr_factory_clearfy_213' ), $this->premium->get_price() ) ?>
273
  </span>
274
  </a>
275
- <p><?php printf( __( 'Your current license for %1$s:', 'wbcr_factory_clearfy_213' ), $this->plugin->getPluginTitle() ) ?></p>
276
  <?php endif; ?>
277
  <div class="license-details-block <?= $this->get_license_type() ?>-details-block">
278
  <?php if ( $this->is_premium ): ?>
279
  <a data-action="deactivate" href="#"
280
  class="btn btn-default btn-small license-delete-button wcl-control-btn">
281
- <?php _e( 'Delete Key', 'wbcr_factory_clearfy_213' ) ?>
282
  </a>
283
  <a data-action="sync" href="#"
284
  class="btn btn-default btn-small license-synchronization-button wcl-control-btn">
285
- <?php _e( 'Synchronization', 'wbcr_factory_clearfy_213' ) ?>
286
  </a>
287
  <?php endif; ?>
288
  <h3>
@@ -300,17 +300,17 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
300
  </div>
301
  <?php endif; ?>
302
  <div class="license-key-description">
303
- <p><?php _e( 'Public License is a GPLv2 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'wbcr_factory_clearfy_213' ) ?>
304
  </p>
305
  <?php if ( $this->is_premium && $this->premium_has_subscription ): ?>
306
  <p class="activate-trial-hint">
307
- <?php _e( 'You use a paid subscription for the plugin updates. In case you don’t want to receive paid updates, please, click <a data-action="unsubscribe" class="wcl-control-btn" href="#">cancel subscription</a>', 'wbcr_factory_clearfy_213' ) ?>
308
  </p>
309
  <?php endif; ?>
310
 
311
  <?php if ( $this->get_license_type() == 'trial' ): ?>
312
  <p class="activate-error-hint">
313
- <?php printf( __( 'Your license has expired, please extend the license to get updates and support.', 'wbcr_factory_clearfy_213' ), '' ) ?>
314
  </p>
315
  <?php endif; ?>
316
  </div>
@@ -318,19 +318,19 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
318
  <tr>
319
  <!--<td class="license-param license-param-domain">
320
  <span class="license-value"><?php echo esc_attr( $_SERVER['SERVER_NAME'] ); ?></span>
321
- <span class="license-value-name"><?php _e( 'domain', 'wbcr_factory_clearfy_213' ) ?></span>
322
  </td>-->
323
  <td class="license-param license-param-days">
324
  <span class="license-value"><?= $this->get_plan() ?></span>
325
- <span class="license-value-name"><?php _e( 'plan', 'wbcr_factory_clearfy_213' ) ?></span>
326
  </td>
327
  <?php if ( $this->is_premium ) : ?>
328
  <td class="license-param license-param-sites">
329
  <span class="license-value">
330
  <?php echo esc_attr( $this->premium_license->get_count_active_sites() ); ?>
331
- <?php _e( 'of', 'wbcr_factory_clearfy_213' ) ?>
332
  <?php echo esc_attr( $this->premium_license->get_sites_quota() ); ?></span>
333
- <span class="license-value-name"><?php _e( 'active sites', 'wbcr_factory_clearfy_213' ) ?></span>
334
  </td>
335
  <?php endif; ?>
336
  <td class="license-param license-param-version">
@@ -340,8 +340,8 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
340
  <?php if ( $this->is_premium ): ?>
341
  <td class="license-param license-param-days">
342
  <?php if ( $this->get_license_type() == 'trial' ): ?>
343
- <span class="license-value"><?php _e( 'EXPIRED!', 'wbcr_factory_clearfy_213' ) ?></span>
344
- <span class="license-value-name"><?php _e( 'please update the key', 'wbcr_factory_clearfy_213' ) ?></span>
345
  <?php else: ?>
346
  <span class="license-value">
347
  <?php
@@ -351,9 +351,9 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
351
  echo $this->get_expiration_days();
352
  }
353
  ?>
354
- <small> <?php _e( 'day(s)', 'wbcr_factory_clearfy_213' ) ?></small>
355
  </span>
356
- <span class="license-value-name"><?php _e( 'remained', 'wbcr_factory_clearfy_213' ) ?></span>
357
  <?php endif; ?>
358
  </td>
359
  <?php endif; ?>
@@ -364,24 +364,24 @@ class Wbcr_FactoryClearfy213_LicensePage extends Wbcr_FactoryClearfy213_PageBase
364
  <div class="license-input">
365
  <form action="" method="post">
366
  <?php if ( $this->is_premium ): ?>
367
- <p><?php _e( 'Have a key to activate the premium version? Paste it here:', 'wbcr_factory_clearfy_213' ) ?><p>
368
  <?php else: ?>
369
- <p><?php _e( 'Have a key to activate the plugin? Paste it here:', 'wbcr_factory_clearfy_213' ) ?>
370
  <p>
371
  <?php endif; ?>
372
  <button data-action="activate" class="btn btn-default wcl-control-btn" type="button" id="license-submit">
373
- <?php _e( 'Submit Key', 'wbcr_factory_clearfy_213' ) ?>
374
  </button>
375
  <div class="license-key-wrap">
376
  <input type="text" id="license-key" name="licensekey" value="" class="form-control"/>
377
  </div>
378
  <?php if ( $this->is_premium ): ?>
379
  <p style="margin-top: 10px;">
380
- <?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_213' ), $this->plugin->get_support()->get_pricing_url( true, 'license_page' ) ); ?>
381
  </p>
382
  <?php else: ?>
383
  <p style="margin-top: 10px;">
384
- <?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_213' ), $this->plugin->get_support()->get_contacts_url( true, 'license_page' ) ) ?>
385
  </p>
386
  <?php endif; ?>
387
  </form>
11
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
12
  * @since 2.0.7
13
  */
14
+ class Wbcr_FactoryClearfy214_LicensePage extends Wbcr_FactoryClearfy214_PageBase {
15
 
16
  /**
17
  * {@inheritdoc}
80
 
81
  /**
82
  * @since 2.0.7
83
+ * @var \WBCR\Factory_422\Premium\Provider
84
  */
85
  protected $premium;
86
 
98
 
99
  /**
100
  * @since 2.0.7
101
+ * @var \WBCR\Factory_422\Premium\Interfaces\License
102
  */
103
  protected $premium_license;
104
 
107
 
108
  /**
109
  * {@inheritdoc}
110
+ * @param Wbcr_Factory422_Plugin $plugin
111
  */
112
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
113
  $this->plugin = $plugin;
114
 
115
  parent::__construct( $plugin );
134
  public function assets( $scripts, $styles ) {
135
  parent::assets( $scripts, $styles );
136
 
137
+ $this->styles->add( FACTORY_CLEARFY_214_URL . '/assets/css/license-manager.css' );
138
+ $this->scripts->add( FACTORY_CLEARFY_214_URL . '/assets/js/license-manager.js' );
139
  }
140
 
141
  /**
144
  * @since 2.0.7
145
  */
146
  public function ajax_handler() {
147
+ wbcr_factory_clearfy_214_check_license( $this->plugin );
148
  }
149
 
150
  /**
153
  public function showPageContent() {
154
  ?>
155
  <div id="wcl-license-wrapper"
156
+ data-loader="<?php echo FACTORY_CLEARFY_214_URL . '/assets/img/loader.gif'; ?>"
157
  data-plugin-name="<?php echo esc_attr( $this->plugin_name ); ?>"
158
  data-nonce="<?php echo wp_create_nonce( "clearfy_activate_license_for_{$this->plugin_name}" ) ?>">
159
  <?php $this->show_license_form(); ?>
250
  public function show_license_form( $notice = false ) {
251
  ?>
252
  <div id="license-manager"
253
+ class="factory-bootstrap-423 onp-page-wrap <?= $this->get_license_type() ?>-license-manager-content">
254
  <div>
255
+ <h3><?php printf( __( 'Activate %s', 'wbcr_factory_clearfy_214' ), $this->plan_name ) ?></h3>
256
  <?php echo $this->get_plan_description() ?>
257
  </div>
258
  <br>
259
  <?php if ( is_wp_error( $notice ) ) : ?>
260
  <div class="license-message <?= $this->get_license_type() ?>-license-message">
261
  <div class="alert <?php echo esc_attr( $notice->get_error_code() ); ?>">
262
+ <h4 class="alert-heading"><?php _e( $notice->get_error_message(), 'wbcr_factory_clearfy_214' ) ?></h4>
263
  </div>
264
  </div>
265
  <?php endif; ?>
269
  <a href="<?php echo $this->plugin->get_support()->get_pricing_url( true, 'license_page' ); ?>"
270
  class="purchase-premium" target="_blank" rel="noopener">
271
  <span class="btn btn-gold btn-inner-wrap">
272
+ <?php printf( __( 'Upgrade to Premium for $%s', 'wbcr_factory_clearfy_214' ), $this->premium->get_price() ) ?>
273
  </span>
274
  </a>
275
+ <p><?php printf( __( 'Your current license for %1$s:', 'wbcr_factory_clearfy_214' ), $this->plugin->getPluginTitle() ) ?></p>
276
  <?php endif; ?>
277
  <div class="license-details-block <?= $this->get_license_type() ?>-details-block">
278
  <?php if ( $this->is_premium ): ?>
279
  <a data-action="deactivate" href="#"
280
  class="btn btn-default btn-small license-delete-button wcl-control-btn">
281
+ <?php _e( 'Delete Key', 'wbcr_factory_clearfy_214' ) ?>
282
  </a>
283
  <a data-action="sync" href="#"
284
  class="btn btn-default btn-small license-synchronization-button wcl-control-btn">
285
+ <?php _e( 'Synchronization', 'wbcr_factory_clearfy_214' ) ?>
286
  </a>
287
  <?php endif; ?>
288
  <h3>
300
  </div>
301
  <?php endif; ?>
302
  <div class="license-key-description">
303
+ <p><?php _e( 'Public License is a GPLv2 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'wbcr_factory_clearfy_214' ) ?>
304
  </p>
305
  <?php if ( $this->is_premium && $this->premium_has_subscription ): ?>
306
  <p class="activate-trial-hint">
307
+ <?php _e( 'You use a paid subscription for the plugin updates. In case you don’t want to receive paid updates, please, click <a data-action="unsubscribe" class="wcl-control-btn" href="#">cancel subscription</a>', 'wbcr_factory_clearfy_214' ) ?>
308
  </p>
309
  <?php endif; ?>
310
 
311
  <?php if ( $this->get_license_type() == 'trial' ): ?>
312
  <p class="activate-error-hint">
313
+ <?php printf( __( 'Your license has expired, please extend the license to get updates and support.', 'wbcr_factory_clearfy_214' ), '' ) ?>
314
  </p>
315
  <?php endif; ?>
316
  </div>
318
  <tr>
319
  <!--<td class="license-param license-param-domain">
320
  <span class="license-value"><?php echo esc_attr( $_SERVER['SERVER_NAME'] ); ?></span>
321
+ <span class="license-value-name"><?php _e( 'domain', 'wbcr_factory_clearfy_214' ) ?></span>
322
  </td>-->
323
  <td class="license-param license-param-days">
324
  <span class="license-value"><?= $this->get_plan() ?></span>
325
+ <span class="license-value-name"><?php _e( 'plan', 'wbcr_factory_clearfy_214' ) ?></span>
326
  </td>
327
  <?php if ( $this->is_premium ) : ?>
328
  <td class="license-param license-param-sites">
329
  <span class="license-value">
330
  <?php echo esc_attr( $this->premium_license->get_count_active_sites() ); ?>
331
+ <?php _e( 'of', 'wbcr_factory_clearfy_214' ) ?>
332
  <?php echo esc_attr( $this->premium_license->get_sites_quota() ); ?></span>
333
+ <span class="license-value-name"><?php _e( 'active sites', 'wbcr_factory_clearfy_214' ) ?></span>
334
  </td>
335
  <?php endif; ?>
336
  <td class="license-param license-param-version">
340
  <?php if ( $this->is_premium ): ?>
341
  <td class="license-param license-param-days">
342
  <?php if ( $this->get_license_type() == 'trial' ): ?>
343
+ <span class="license-value"><?php _e( 'EXPIRED!', 'wbcr_factory_clearfy_214' ) ?></span>
344
+ <span class="license-value-name"><?php _e( 'please update the key', 'wbcr_factory_clearfy_214' ) ?></span>
345
  <?php else: ?>
346
  <span class="license-value">
347
  <?php
351
  echo $this->get_expiration_days();
352
  }
353
  ?>
354
+ <small> <?php _e( 'day(s)', 'wbcr_factory_clearfy_214' ) ?></small>
355
  </span>
356
+ <span class="license-value-name"><?php _e( 'remained', 'wbcr_factory_clearfy_214' ) ?></span>
357
  <?php endif; ?>
358
  </td>
359
  <?php endif; ?>
364
  <div class="license-input">
365
  <form action="" method="post">
366
  <?php if ( $this->is_premium ): ?>
367
+ <p><?php _e( 'Have a key to activate the premium version? Paste it here:', 'wbcr_factory_clearfy_214' ) ?><p>
368
  <?php else: ?>
369
+ <p><?php _e( 'Have a key to activate the plugin? Paste it here:', 'wbcr_factory_clearfy_214' ) ?>
370
  <p>
371
  <?php endif; ?>
372
  <button data-action="activate" class="btn btn-default wcl-control-btn" type="button" id="license-submit">
373
+ <?php _e( 'Submit Key', 'wbcr_factory_clearfy_214' ) ?>
374
  </button>
375
  <div class="license-key-wrap">
376
  <input type="text" id="license-key" name="licensekey" value="" class="form-control"/>
377
  </div>
378
  <?php if ( $this->is_premium ): ?>
379
  <p style="margin-top: 10px;">
380
+ <?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_214' ), $this->plugin->get_support()->get_pricing_url( true, 'license_page' ) ); ?>
381
  </p>
382
  <?php else: ?>
383
  <p style="margin-top: 10px;">
384
+ <?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_214' ), $this->plugin->get_support()->get_contacts_url( true, 'license_page' ) ) ?>
385
  </p>
386
  <?php endif; ?>
387
  </form>
libs/factory/clearfy/pages/class-page-more-features.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  }
16
 
17
 
18
- class Wbcr_FactoryClearfy213_MoreFeaturesPage extends Wbcr_FactoryPages421_ImpressiveThemplate {
19
 
20
  /**
21
  * {@inheritDoc}
@@ -60,8 +60,8 @@ class Wbcr_FactoryClearfy213_MoreFeaturesPage extends Wbcr_FactoryPages421_Impre
60
  */
61
  public $internal = true;
62
 
63
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
64
- $this->menu_title = __( 'More features (<b>free</b>)', 'wbcr_factory_clearfy_213' );
65
 
66
  parent::__construct( $plugin );
67
 
@@ -74,7 +74,7 @@ class Wbcr_FactoryClearfy213_MoreFeaturesPage extends Wbcr_FactoryPages421_Impre
74
  * @return string
75
  */
76
  public function getPageTitle() {
77
- return __( 'More features', 'wbcr_factory_clearfy_213' );
78
  }
79
 
80
  /**
@@ -88,66 +88,66 @@ class Wbcr_FactoryClearfy213_MoreFeaturesPage extends Wbcr_FactoryPages421_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_213' ) ?></h3>
92
- <p><?php _e( 'Clears the source code of the page from unused code.', 'wbcr_factory_clearfy_213' ) ?></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_213' ) ?></h3>
99
- <p><?php _e( 'Removes duplicate pages, closes external links, changes the headers of the server.', 'wbcr_factory_clearfy_213' ) ?></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_213' ) ?></h3>
106
- <p><?php _e( 'Enables and disables features that improve the protection of your site.', 'wbcr_factory_clearfy_213' ) ?></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_213' ) ?></h3>
113
- <p><?php _e( 'Disables comments on the entire site or on specific pages.', 'wbcr_factory_clearfy_213' ) ?></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_213' ) ?></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_213' ) ?></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_213' ) ?></h3>
128
- <p><?php _e( 'Allows you to remove unused widgets.', 'wbcr_factory_clearfy_213' ) ?></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_213' ) ?></h3>
135
- <p><?php _e( 'Increases performance by disabling unused functions and reducing the number of requests.', 'wbcr_factory_clearfy_213' ) ?></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_213' ) ?></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_213' ) ?></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_213' ) ?></h3>
150
- <p><?php _e( 'In quick mode, you can easily configure the plugin according to your needs.', 'wbcr_factory_clearfy_213' ) ?></p>
151
  </div>
152
  </div>
153
  </div>
@@ -161,7 +161,7 @@ class Wbcr_FactoryClearfy213_MoreFeaturesPage extends Wbcr_FactoryPages421_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_213' ) ?>
165
  </a>
166
  </div>
167
  <?php
15
  }
16
 
17
 
18
+ class Wbcr_FactoryClearfy214_MoreFeaturesPage extends Wbcr_FactoryPages422_ImpressiveThemplate {
19
 
20
  /**
21
  * {@inheritDoc}
60
  */
61
  public $internal = true;
62
 
63
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
64
+ $this->menu_title = __( 'More features (<b>free</b>)', 'wbcr_factory_clearfy_214' );
65
 
66
  parent::__construct( $plugin );
67
 
74
  * @return string
75
  */
76
  public function getPageTitle() {
77
+ return __( 'More features', 'wbcr_factory_clearfy_214' );
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_214' ) ?></h3>
92
+ <p><?php _e( 'Clears the source code of the page from unused code.', 'wbcr_factory_clearfy_214' ) ?></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_214' ) ?></h3>
99
+ <p><?php _e( 'Removes duplicate pages, closes external links, changes the headers of the server.', 'wbcr_factory_clearfy_214' ) ?></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_214' ) ?></h3>
106
+ <p><?php _e( 'Enables and disables features that improve the protection of your site.', 'wbcr_factory_clearfy_214' ) ?></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_214' ) ?></h3>
113
+ <p><?php _e( 'Disables comments on the entire site or on specific pages.', 'wbcr_factory_clearfy_214' ) ?></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_214' ) ?></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_214' ) ?></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_214' ) ?></h3>
128
+ <p><?php _e( 'Allows you to remove unused widgets.', 'wbcr_factory_clearfy_214' ) ?></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_214' ) ?></h3>
135
+ <p><?php _e( 'Increases performance by disabling unused functions and reducing the number of requests.', 'wbcr_factory_clearfy_214' ) ?></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_214' ) ?></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_214' ) ?></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_214' ) ?></h3>
150
+ <p><?php _e( 'In quick mode, you can easily configure the plugin according to your needs.', 'wbcr_factory_clearfy_214' ) ?></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_214' ) ?>
165
  </a>
166
  </div>
167
  <?php
libs/factory/clearfy/pages/class-pages.php CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  }
15
 
16
  /**
17
- * Class Wbcr_FactoryPages421_ImpressiveThemplate
18
  *
19
  * @method string getInfoWidget() - get widget content information
20
  * @method string getRatingWidget( array $args = [] ) - get widget content rating
@@ -22,7 +22,7 @@ if ( ! defined( 'ABSPATH' ) ) {
22
  * @method string getBusinessSuggetionWidget()
23
  * @method string getSupportWidget
24
  */
25
- class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThemplate {
26
 
27
  /**
28
  * {@inheritDoc}
@@ -49,9 +49,9 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
49
  public $internal = true;
50
 
51
  /**
52
- * @param Wbcr_Factory421_Plugin $plugin
53
  */
54
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
55
  parent::__construct( $plugin );
56
  }
57
 
@@ -81,24 +81,24 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
81
  /**
82
  * Requests assets (js and css) for the page.
83
  *
84
- * @param Wbcr_Factory421_ScriptList $scripts
85
- * @param Wbcr_Factory421_StyleList $styles
86
  *
87
  * @return void
88
- * @see Wbcr_FactoryPages421_AdminPage
89
  *
90
  */
91
  public function assets( $scripts, $styles ) {
92
  parent::assets( $scripts, $styles );
93
 
94
- $this->styles->add( FACTORY_CLEARFY_213_URL . '/assets/css/clearfy-base.css' );
95
 
96
  // todo: вынести все общие скрипты и стили фреймворка, продумать совместимость с другими плагинами
97
  if ( defined( 'WCL_PLUGIN_URL' ) ) {
98
  $this->styles->add( WCL_PLUGIN_URL . '/admin/assets/css/general.css' );
99
  }
100
 
101
- wbcr_factory_421_do_action_deprecated( 'wbcr_clearfy_page_enqueue_scripts', [
102
  $this->getResultId(),
103
  $scripts,
104
  $styles
@@ -114,7 +114,7 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
114
  }
115
 
116
  /**
117
- * @return Wbcr_Factory421_Request
118
  */
119
  public function request() {
120
  return $this->plugin->request;
@@ -189,18 +189,18 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
189
  if ( is_multisite() && $this->plugin->isNetworkActive() ) {
190
 
191
  $license_page_url = $this->getBaseUrl( 'license' );
192
- $upgrade_url = WbcrFactoryClearfy213_Helpers::getWebcrafticSitePageUrl( $this->plugin->getPluginName(), 'pricing', 'multisite_save_settings' );
193
- $upgrade_price = WbcrFactoryClearfy213_Helpers::getClearfyBusinessPrice();
194
 
195
- $html = '<div class="wbcr-factory-clearfy-213-multisite-suggetion">';
196
  $html .= '<div class="wbcr-factory-inner-contanier">';
197
- $html .= '<h3>' . __( 'Upgrade to Clearfy Business', 'wbcr_factory_clearfy_213' ) . '</h3>';
198
- $html .= '<p>' . __( 'Oops... Sorry for the inconvenience caused!', 'wbcr_factory_clearfy_213' ) . '</p>';
199
- $html .= '<p>' . __( 'Complete multisite support is available in Clearfy Business and Clearfy Business Revolution packages only!', 'wbcr_factory_clearfy_213' ) . '</p>';
200
- $html .= '<p>' . __( 'You can activate the plugin on each website and use it with zero limitations. But you can’t save the plugin’s settings under the Super Administrator role!', 'wbcr_factory_clearfy_213' ) . '</p>';
201
  $html .= '<p style="margin-top:20px">';
202
- $html .= '<a href="' . $license_page_url . '" class="wbcr-factory-activate-premium" rel="noopener">' . __( 'Activate license ', 'wbcr_factory_clearfy_213' ) . '</a> ';
203
- $html .= '<a href="' . $upgrade_url . '" class="wbcr-factory-purchase-premium" target="_blank" rel="noopener">' . sprintf( __( 'Upgrade to Clearfy Business for $%d', 'wbcr_factory_clearfy_213' ), $upgrade_price ) . '</a>';
204
  $html .= '</p>';
205
  $html .= '</div>';
206
  $html .= '</div>';
@@ -235,7 +235,7 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
235
  /**
236
  * @since 4.0.9 - является устаревшим
237
  */
238
- $widgets = wbcr_factory_421_apply_filters_deprecated( 'wbcr_factory_pages_421_imppage_get_widgets', [
239
  $widgets,
240
  $position,
241
  $this->plugin,
@@ -263,24 +263,24 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
263
  $purchase_url = $this->plugin->get_support()->get_pricing_url( true, 'right_sidebar_ads' );
264
 
265
  $default_features = [
266
- '4_premium' => __( '4 premium components now;', 'wbcr_factory_clearfy_213' ),
267
- '40_premium' => __( '40 new premium components within a year for the single price;', 'wbcr_factory_clearfy_213' ),
268
- 'multisite_support' => __( 'Multisite support;', 'wbcr_factory_clearfy_213' ),
269
- 'advance_settings' => __( 'Advanced settings;', 'wbcr_factory_clearfy_213' ),
270
- 'no_ads' => __( 'No ads;', 'wbcr_factory_clearfy_213' ),
271
- 'perfect_support' => __( 'Perfect support.', 'wbcr_factory_clearfy_213' )
272
  ];
273
 
274
  /**
275
  * @since 2.0.8 - added
276
  */
277
- $suggetion_title = __( 'MORE IN CLEARFY <span>BUSINESS</span>', 'wbcr_factory_clearfy_213' );
278
  $suggetion_title = apply_filters( 'wbcr/clearfy/pages/suggetion_title', $suggetion_title, $plugin_name, $this->id );
279
 
280
  /**
281
  * @since 2.0.8 - deprecated
282
  */
283
- $suggetion_features = wbcr_factory_421_apply_filters_deprecated( 'wbcr/clearfy/page_bussines_suggetion_features', [
284
  $default_features,
285
  $this->plugin->getPluginName(),
286
  $this->id
@@ -296,7 +296,7 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
296
  $suggetion_features = $default_features;
297
  }
298
  ?>
299
- <div class="wbcr-factory-sidebar-widget wbcr-factory-clearfy-213-pro-suggettion">
300
  <h3><?php echo $suggetion_title; ?></h3>
301
  <ul>
302
  <?php if ( ! empty( $suggetion_features ) ): ?>
@@ -306,7 +306,7 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
306
  <?php endif; ?>
307
  </ul>
308
  <a href="<?php echo $purchase_url ?>" class="wbcr-factory-purchase-premium" target="_blank" rel="noopener">
309
- <?php printf( __( 'Upgrade for $%s', 'wbcr_factory_clearfy_213' ), $upgrade_price ) ?>
310
  </a>
311
  </div>
312
  <?php
@@ -326,23 +326,23 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
326
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-red">
327
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
328
  </span>
329
- - <?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_213' ); ?>
330
  </li>
331
  <li>
332
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
333
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
334
  </span>
335
- - <?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_213' ); ?>
336
  </li>
337
  <li>
338
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
339
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
340
  </span>
341
- - <?php _e( 'Absolutely safe setting, We recommend to use.', 'wbcr_factory_clearfy_213' ); ?>
342
  </li>
343
  </ul>
344
  ----------<br>
345
- <p><?php _e( 'Hover to the icon to get help for the feature you selected.', 'wbcr_factory_clearfy_213' ); ?></p>
346
  </div>
347
  <?php
348
  }
@@ -362,19 +362,19 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
362
  $page_url = $args[0];
363
  }
364
 
365
- $page_url = apply_filters( 'wbcr_factory_pages_421_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_213' ); ?></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_213' ); ?></p>
373
- <p><?php _e( 'And also write your ideas on how to extend or improve the plugin.', 'wbcr_factory_clearfy_213' ); ?></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_213' ); ?></strong>
378
  </a>
379
  </p>
380
  </div>
@@ -391,14 +391,14 @@ class Wbcr_FactoryClearfy213_PageBase extends Wbcr_FactoryPages421_ImpressiveThe
391
  ?>
392
  <div class="wbcr-factory-sidebar-widget">
393
  <p>
394
- <strong><?php _e( 'Donation for plugin development', 'wbcr_factory_clearfy_213' ); ?></strong>
395
  </p>
396
  <?php if ( get_locale() !== 'ru_RU' ): ?>
397
  <form id="wbcr-factory-paypal-donation-form" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
398
  <input type="hidden" name="cmd" value="_s-xclick">
399
  <input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
400
  <div class="wbcr-factory-donation-price">5$</div>
401
- <input type="image" src="<?= FACTORY_PAGES_421_URL ?>/templates/assets/img/paypal-donate.png" border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
402
  </form>
403
  <?php else: ?>
404
  <iframe frameborder="0" allowtransparency="true" scrolling="no" src="https://money.yandex.ru/embed/donate.xml?account=410011242846510&quickpay=donate&payment-type-choice=on&mobile-payment-type-choice=on&default-sum=300&targets=%D0%9D%D0%B0+%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D1%83+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0+%D0%B8+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D1%83+%D0%BD%D0%BE%D0%B2%D1%8B%D1%85+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9.+&target-visibility=on&project-name=Webcraftic&project-site=&button-text=05&comment=on&hint=%D0%9A%D0%B0%D0%BA%D1%83%D1%8E+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E+%D0%BD%D1%83%D0%B6%D0%BD%D0%BE+%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C+%D0%B2+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%3F&mail=on&successURL=" width="508" height="187"></iframe>
14
  }
15
 
16
  /**
17
+ * Class Wbcr_FactoryPages422_ImpressiveThemplate
18
  *
19
  * @method string getInfoWidget() - get widget content information
20
  * @method string getRatingWidget( array $args = [] ) - get widget content rating
22
  * @method string getBusinessSuggetionWidget()
23
  * @method string getSupportWidget
24
  */
25
+ class Wbcr_FactoryClearfy214_PageBase extends Wbcr_FactoryPages422_ImpressiveThemplate {
26
 
27
  /**
28
  * {@inheritDoc}
49
  public $internal = true;
50
 
51
  /**
52
+ * @param Wbcr_Factory422_Plugin $plugin
53
  */
54
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
55
  parent::__construct( $plugin );
56
  }
57
 
81
  /**
82
  * Requests assets (js and css) for the page.
83
  *
84
+ * @param Wbcr_Factory422_ScriptList $scripts
85
+ * @param Wbcr_Factory422_StyleList $styles
86
  *
87
  * @return void
88
+ * @see Wbcr_FactoryPages422_AdminPage
89
  *
90
  */
91
  public function assets( $scripts, $styles ) {
92
  parent::assets( $scripts, $styles );
93
 
94
+ $this->styles->add( FACTORY_CLEARFY_214_URL . '/assets/css/clearfy-base.css' );
95
 
96
  // todo: вынести все общие скрипты и стили фреймворка, продумать совместимость с другими плагинами
97
  if ( defined( 'WCL_PLUGIN_URL' ) ) {
98
  $this->styles->add( WCL_PLUGIN_URL . '/admin/assets/css/general.css' );
99
  }
100
 
101
+ wbcr_factory_422_do_action_deprecated( 'wbcr_clearfy_page_enqueue_scripts', [
102
  $this->getResultId(),
103
  $scripts,
104
  $styles
114
  }
115
 
116
  /**
117
+ * @return Wbcr_Factory422_Request
118
  */
119
  public function request() {
120
  return $this->plugin->request;
189
  if ( is_multisite() && $this->plugin->isNetworkActive() ) {
190
 
191
  $license_page_url = $this->getBaseUrl( 'license' );
192
+ $upgrade_url = WbcrFactoryClearfy214_Helpers::getWebcrafticSitePageUrl( $this->plugin->getPluginName(), 'pricing', 'multisite_save_settings' );
193
+ $upgrade_price = WbcrFactoryClearfy214_Helpers::getClearfyBusinessPrice();
194
 
195
+ $html = '<div class="wbcr-factory-clearfy-214-multisite-suggetion">';
196
  $html .= '<div class="wbcr-factory-inner-contanier">';
197
+ $html .= '<h3>' . __( 'Upgrade to Clearfy Business', 'wbcr_factory_clearfy_214' ) . '</h3>';
198
+ $html .= '<p>' . __( 'Oops... Sorry for the inconvenience caused!', 'wbcr_factory_clearfy_214' ) . '</p>';
199
+ $html .= '<p>' . __( 'Complete multisite support is available in Clearfy Business and Clearfy Business Revolution packages only!', 'wbcr_factory_clearfy_214' ) . '</p>';
200
+ $html .= '<p>' . __( 'You can activate the plugin on each website and use it with zero limitations. But you can’t save the plugin’s settings under the Super Administrator role!', 'wbcr_factory_clearfy_214' ) . '</p>';
201
  $html .= '<p style="margin-top:20px">';
202
+ $html .= '<a href="' . $license_page_url . '" class="wbcr-factory-activate-premium" rel="noopener">' . __( 'Activate license ', 'wbcr_factory_clearfy_214' ) . '</a> ';
203
+ $html .= '<a href="' . $upgrade_url . '" class="wbcr-factory-purchase-premium" target="_blank" rel="noopener">' . sprintf( __( 'Upgrade to Clearfy Business for $%d', 'wbcr_factory_clearfy_214' ), $upgrade_price ) . '</a>';
204
  $html .= '</p>';
205
  $html .= '</div>';
206
  $html .= '</div>';
235
  /**
236
  * @since 4.0.9 - является устаревшим
237
  */
238
+ $widgets = wbcr_factory_422_apply_filters_deprecated( 'wbcr_factory_pages_422_imppage_get_widgets', [
239
  $widgets,
240
  $position,
241
  $this->plugin,
263
  $purchase_url = $this->plugin->get_support()->get_pricing_url( true, 'right_sidebar_ads' );
264
 
265
  $default_features = [
266
+ '4_premium' => __( '4 premium components now;', 'wbcr_factory_clearfy_214' ),
267
+ '40_premium' => __( '40 new premium components within a year for the single price;', 'wbcr_factory_clearfy_214' ),
268
+ 'multisite_support' => __( 'Multisite support;', 'wbcr_factory_clearfy_214' ),
269
+ 'advance_settings' => __( 'Advanced settings;', 'wbcr_factory_clearfy_214' ),
270
+ 'no_ads' => __( 'No ads;', 'wbcr_factory_clearfy_214' ),
271
+ 'perfect_support' => __( 'Perfect support.', 'wbcr_factory_clearfy_214' )
272
  ];
273
 
274
  /**
275
  * @since 2.0.8 - added
276
  */
277
+ $suggetion_title = __( 'MORE IN CLEARFY <span>BUSINESS</span>', 'wbcr_factory_clearfy_214' );
278
  $suggetion_title = apply_filters( 'wbcr/clearfy/pages/suggetion_title', $suggetion_title, $plugin_name, $this->id );
279
 
280
  /**
281
  * @since 2.0.8 - deprecated
282
  */
283
+ $suggetion_features = wbcr_factory_422_apply_filters_deprecated( 'wbcr/clearfy/page_bussines_suggetion_features', [
284
  $default_features,
285
  $this->plugin->getPluginName(),
286
  $this->id
296
  $suggetion_features = $default_features;
297
  }
298
  ?>
299
+ <div class="wbcr-factory-sidebar-widget wbcr-factory-clearfy-214-pro-suggettion">
300
  <h3><?php echo $suggetion_title; ?></h3>
301
  <ul>
302
  <?php if ( ! empty( $suggetion_features ) ): ?>
306
  <?php endif; ?>
307
  </ul>
308
  <a href="<?php echo $purchase_url ?>" class="wbcr-factory-purchase-premium" target="_blank" rel="noopener">
309
+ <?php printf( __( 'Upgrade for $%s', 'wbcr_factory_clearfy_214' ), $upgrade_price ) ?>
310
  </a>
311
  </div>
312
  <?php
326
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-red">
327
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
328
  </span>
329
+ - <?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_214' ); ?>
330
  </li>
331
  <li>
332
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
333
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
334
  </span>
335
+ - <?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_214' ); ?>
336
  </li>
337
  <li>
338
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
339
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC" alt=""/>
340
  </span>
341
+ - <?php _e( 'Absolutely safe setting, We recommend to use.', 'wbcr_factory_clearfy_214' ); ?>
342
  </li>
343
  </ul>
344
  ----------<br>
345
+ <p><?php _e( 'Hover to the icon to get help for the feature you selected.', 'wbcr_factory_clearfy_214' ); ?></p>
346
  </div>
347
  <?php
348
  }
362
  $page_url = $args[0];
363
  }
364
 
365
+ $page_url = apply_filters( 'wbcr_factory_pages_422_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_214' ); ?></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_214' ); ?></p>
373
+ <p><?php _e( 'And also write your ideas on how to extend or improve the plugin.', 'wbcr_factory_clearfy_214' ); ?></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_214' ); ?></strong>
378
  </a>
379
  </p>
380
  </div>
391
  ?>
392
  <div class="wbcr-factory-sidebar-widget">
393
  <p>
394
+ <strong><?php _e( 'Donation for plugin development', 'wbcr_factory_clearfy_214' ); ?></strong>
395
  </p>
396
  <?php if ( get_locale() !== 'ru_RU' ): ?>
397
  <form id="wbcr-factory-paypal-donation-form" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
398
  <input type="hidden" name="cmd" value="_s-xclick">
399
  <input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
400
  <div class="wbcr-factory-donation-price">5$</div>
401
+ <input type="image" src="<?= FACTORY_PAGES_422_URL ?>/templates/assets/img/paypal-donate.png" border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
402
  </form>
403
  <?php else: ?>
404
  <iframe frameborder="0" allowtransparency="true" scrolling="no" src="https://money.yandex.ru/embed/donate.xml?account=410011242846510&quickpay=donate&payment-type-choice=on&mobile-payment-type-choice=on&default-sum=300&targets=%D0%9D%D0%B0+%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D1%83+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0+%D0%B8+%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D1%83+%D0%BD%D0%BE%D0%B2%D1%8B%D1%85+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9.+&target-visibility=on&project-name=Webcraftic&project-site=&button-text=05&comment=on&hint=%D0%9A%D0%B0%D0%BA%D1%83%D1%8E+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E+%D0%BD%D1%83%D0%B6%D0%BD%D0%BE+%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C+%D0%B2+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%3F&mail=on&successURL=" width="508" height="187"></iframe>
libs/factory/core/boot.php CHANGED
@@ -14,49 +14,49 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- if ( defined( 'FACTORY_421_LOADED' ) ) {
18
  return;
19
  }
20
 
21
- define( 'FACTORY_421_LOADED', true );
22
 
23
- define( 'FACTORY_421_VERSION', '4.2.1' );
24
 
25
- define( 'FACTORY_421_DIR', dirname( __FILE__ ) );
26
- define( 'FACTORY_421_URL', plugins_url( null, __FILE__ ) );
27
 
28
- load_plugin_textdomain( 'wbcr_factory_421', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
29
 
30
  #comp merge
31
- require_once( FACTORY_421_DIR . '/includes/functions.php' );
32
 
33
- require_once( FACTORY_421_DIR . '/includes/entities/class-factory-paths.php' );
34
- require_once( FACTORY_421_DIR . '/includes/entities/class-factory-support.php' );
35
 
36
- require_once( FACTORY_421_DIR . '/includes/class-factory-requests.php' );
37
- require_once( FACTORY_421_DIR . '/includes/class-factory-options.php' );
38
- require_once( FACTORY_421_DIR . '/includes/class-factory-plugin-base.php' );
39
- require_once( FACTORY_421_DIR . '/includes/class-factory-migrations.php' );
40
- require_once( FACTORY_421_DIR . '/includes/class-factory-notices.php' );
41
 
42
  // ASSETS
43
- require_once( FACTORY_421_DIR . '/includes/assets-managment/class-factory-assets-list.php' );
44
- require_once( FACTORY_421_DIR . '/includes/assets-managment/class-factory-script-list.php' );
45
- require_once( FACTORY_421_DIR . '/includes/assets-managment/class-factory-style-list.php' );
46
 
47
  // PREMIUM
48
- require_once( FACTORY_421_DIR . '/includes/premium/class-factory-license-interface.php' );
49
- require_once( FACTORY_421_DIR . '/includes/premium/class-factory-provider-abstract.php' );
50
- require_once( FACTORY_421_DIR . '/includes/premium/class-factory-manager.php' );
51
 
52
  // UPDATES
53
- require_once( FACTORY_421_DIR . '/includes/updates/repositories/class-factory-repository-abstract.php' );
54
- require_once( FACTORY_421_DIR . '/includes/updates/repositories/class-factory-wordpress.php' );
55
- require_once( FACTORY_421_DIR . '/includes/updates/class-factory-upgrader.php' );
56
- require_once( FACTORY_421_DIR . '/includes/updates/class-factory-premium-upgrader.php' );
57
 
58
- require_once( FACTORY_421_DIR . '/includes/class-factory-plugin-abstract.php' );
59
 
60
- require_once( FACTORY_421_DIR . '/includes/activation/class-factory-activator.php' );
61
- require_once( FACTORY_421_DIR . '/includes/activation/class-factory-update.php' );
62
  #endcomp
14
  exit;
15
  }
16
 
17
+ if ( defined( 'FACTORY_422_LOADED' ) ) {
18
  return;
19
  }
20
 
21
+ define( 'FACTORY_422_LOADED', true );
22
 
23
+ define( 'FACTORY_422_VERSION', '4.2.2' );
24
 
25
+ define( 'FACTORY_422_DIR', dirname( __FILE__ ) );
26
+ define( 'FACTORY_422_URL', plugins_url( null, __FILE__ ) );
27
 
28
+ load_plugin_textdomain( 'wbcr_factory_422', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
29
 
30
  #comp merge
31
+ require_once( FACTORY_422_DIR . '/includes/functions.php' );
32
 
33
+ require_once( FACTORY_422_DIR . '/includes/entities/class-factory-paths.php' );
34
+ require_once( FACTORY_422_DIR . '/includes/entities/class-factory-support.php' );
35
 
36
+ require_once( FACTORY_422_DIR . '/includes/class-factory-requests.php' );
37
+ require_once( FACTORY_422_DIR . '/includes/class-factory-options.php' );
38
+ require_once( FACTORY_422_DIR . '/includes/class-factory-plugin-base.php' );
39
+ require_once( FACTORY_422_DIR . '/includes/class-factory-migrations.php' );
40
+ require_once( FACTORY_422_DIR . '/includes/class-factory-notices.php' );
41
 
42
  // ASSETS
43
+ require_once( FACTORY_422_DIR . '/includes/assets-managment/class-factory-assets-list.php' );
44
+ require_once( FACTORY_422_DIR . '/includes/assets-managment/class-factory-script-list.php' );
45
+ require_once( FACTORY_422_DIR . '/includes/assets-managment/class-factory-style-list.php' );
46
 
47
  // PREMIUM
48
+ require_once( FACTORY_422_DIR . '/includes/premium/class-factory-license-interface.php' );
49
+ require_once( FACTORY_422_DIR . '/includes/premium/class-factory-provider-abstract.php' );
50
+ require_once( FACTORY_422_DIR . '/includes/premium/class-factory-manager.php' );
51
 
52
  // UPDATES
53
+ require_once( FACTORY_422_DIR . '/includes/updates/repositories/class-factory-repository-abstract.php' );
54
+ require_once( FACTORY_422_DIR . '/includes/updates/repositories/class-factory-wordpress.php' );
55
+ require_once( FACTORY_422_DIR . '/includes/updates/class-factory-upgrader.php' );
56
+ require_once( FACTORY_422_DIR . '/includes/updates/class-factory-premium-upgrader.php' );
57
 
58
+ require_once( FACTORY_422_DIR . '/includes/class-factory-plugin-abstract.php' );
59
 
60
+ require_once( FACTORY_422_DIR . '/includes/activation/class-factory-activator.php' );
61
+ require_once( FACTORY_422_DIR . '/includes/activation/class-factory-update.php' );
62
  #endcomp
libs/factory/core/includes/activation/class-factory-activator.php CHANGED
@@ -19,16 +19,16 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  *
20
  * @since 1.0.0
21
  */
22
- abstract class Wbcr_Factory421_Activator {
23
 
24
  /**
25
  * Curent plugin.
26
  *
27
- * @var Wbcr_Factory421_Plugin
28
  */
29
  public $plugin;
30
 
31
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
32
  $this->plugin = $plugin;
33
  }
34
 
19
  *
20
  * @since 1.0.0
21
  */
22
+ abstract class Wbcr_Factory422_Activator {
23
 
24
  /**
25
  * Curent plugin.
26
  *
27
+ * @var Wbcr_Factory422_Plugin
28
  */
29
  public $plugin;
30
 
31
+ public function __construct( Wbcr_Factory422_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_Factory421_Update {
24
 
25
  /**
26
  * Current plugin
27
  *
28
- * @var Wbcr_Factory421_Plugin
29
  */
30
  var $plugin;
31
 
32
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
33
  $this->plugin = $plugin;
34
  }
35
 
20
  *
21
  * @since 1.0.0
22
  */
23
+ abstract class Wbcr_Factory422_Update {
24
 
25
  /**
26
  * Current plugin
27
  *
28
+ * @var Wbcr_Factory422_Plugin
29
  */
30
  var $plugin;
31
 
32
+ public function __construct( Wbcr_Factory422_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_Factory421_AssetsList {
23
 
24
  protected $all = [];
25
  public $header_place = [];
@@ -29,15 +29,15 @@ class Wbcr_Factory421_AssetsList {
29
  protected $default_place;
30
 
31
  /**
32
- * @var Wbcr_Factory421_Plugin
33
  */
34
  protected $plugin;
35
 
36
  /**
37
- * @param Wbcr_Factory421_Plugin $plugin
38
  * @param bool $defaultIsFooter
39
  */
40
- public function __construct( Wbcr_Factory421_Plugin $plugin, $defaultIsFooter = true ) {
41
  $this->plugin = $plugin;
42
 
43
  if ( $defaultIsFooter ) {
19
  *
20
  * @since 1.0.0
21
  */
22
+ class Wbcr_Factory422_AssetsList {
23
 
24
  protected $all = [];
25
  public $header_place = [];
29
  protected $default_place;
30
 
31
  /**
32
+ * @var Wbcr_Factory422_Plugin
33
  */
34
  protected $plugin;
35
 
36
  /**
37
+ * @param Wbcr_Factory422_Plugin $plugin
38
  * @param bool $defaultIsFooter
39
  */
40
+ public function __construct( Wbcr_Factory422_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_Factory421_ScriptList extends Wbcr_Factory421_AssetsList {
24
 
25
  public $localize_data = [];
26
  public $use_ajax = false;
@@ -149,7 +149,7 @@ class Wbcr_Factory421_ScriptList extends Wbcr_Factory421_AssetsList {
149
  * @param string $varname
150
  * @param string $data
151
  *
152
- * @return Wbcr_Factory421_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_Factory422_ScriptList extends Wbcr_Factory422_AssetsList {
24
 
25
  public $localize_data = [];
26
  public $use_ajax = false;
149
  * @param string $varname
150
  * @param string $data
151
  *
152
+ * @return Wbcr_Factory422_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_Factory421_StyleList extends Wbcr_Factory421_AssetsList {
24
 
25
  /**
26
  * Adds new items to the collection (default place).
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_Factory422_StyleList extends Wbcr_Factory422_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_213' ), $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_421' ), $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_421' ), $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_214' ), $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_422' ), $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_422' ), $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_421;
4
 
5
  use Exception;
6
- use Wbcr_Factory421_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
@@ -35,11 +35,11 @@ class Migrations {
35
  /**
36
  * Migrations constructor.
37
  *
38
- * @param Wbcr_Factory421_Plugin $plugin
39
  *
40
  * @throws Exception
41
  */
42
- public function __construct( Wbcr_Factory421_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_421' ) . "</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_421' ) . '</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_421" ) . ' ' . date( "Y-m-d H:i:s", $this->get_plugin_activated_time() ) . "<br>";
166
 
167
- $notice_text .= __( "Old plugin version (debug):", "wbcr_factory_421" ) . ' ' . $this->get_old_plugin_version() . "<br>";
168
- $notice_text .= __( "Current plugin version:", "wbcr_factory_421" ) . ' ' . $this->get_current_plugin_version() . "<br>";
169
- $notice_text .= __( "Need migration:", "wbcr_factory_421" ) . ' ' . ( $this->need_migration() ? "true" : "false" ) . "<br><br>";
170
- $notice_text .= "<a href='{$migrate_url}' class='button button-default'>" . __( "Migrate now", "wbcr_factory_421" ) . "</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_421' ) . '</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_421' ) );
509
  }
510
 
511
  $tokens = token_get_all( $phpCode );
1
  <?php
2
 
3
+ namespace WBCR\Factory_422;
4
 
5
  use Exception;
6
+ use Wbcr_Factory422_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
35
  /**
36
  * Migrations constructor.
37
  *
38
+ * @param Wbcr_Factory422_Plugin $plugin
39
  *
40
  * @throws Exception
41
  */
42
+ public function __construct( Wbcr_Factory422_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_422' ) . "</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_422' ) . '</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_422" ) . ' ' . date( "Y-m-d H:i:s", $this->get_plugin_activated_time() ) . "<br>";
166
 
167
+ $notice_text .= __( "Old plugin version (debug):", "wbcr_factory_422" ) . ' ' . $this->get_old_plugin_version() . "<br>";
168
+ $notice_text .= __( "Current plugin version:", "wbcr_factory_422" ) . ' ' . $this->get_current_plugin_version() . "<br>";
169
+ $notice_text .= __( "Need migration:", "wbcr_factory_422" ) . ' ' . ( $this->need_migration() ? "true" : "false" ) . "<br><br>";
170
+ $notice_text .= "<a href='{$migrate_url}' class='button button-default'>" . __( "Migrate now", "wbcr_factory_422" ) . "</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_422' ) . '</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_422' ) );
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_421;
4
 
5
- use Wbcr_Factory421_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_Factory421_Plugin
31
  */
32
  protected $plugin;
33
  /**
@@ -58,7 +58,7 @@ class Notices {
58
  /**
59
  * Инициализируем уведомлений сразу после загрузки модуля уведомлений
60
  *
61
- * @param Wbcr_Factory421_Plugin $plugin
62
  */
63
  public function __construct( $plugin ) {
64
  //default notices
@@ -86,13 +86,13 @@ class Notices {
86
  /**
87
  * @since 2.1.2 - является устаревшим
88
  */
89
- $this->notices = wbcr_factory_421_apply_filters_deprecated( 'wbcr_factory_notices_000_list', [
90
  $this->notices,
91
  $this->plugin->getPluginName(),
92
  ], '2.1.2', 'wbcr/factory/admin_notices' );
93
 
94
  /**
95
- * @since 2.1.2 - Добавлен, модуль factory_notices_000 был удален. Поэтому в этому хуке мы заменили префикс на factory_421
96
  */
97
  $this->notices = apply_filters( 'wbcr/factory/admin_notices', $this->notices, $this->plugin->getPluginName() );
98
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_422;
4
 
5
+ use Wbcr_Factory422_Plugin;
6
 
7
  // Exit if accessed directly
8
  if ( ! defined( 'ABSPATH' ) ) {
27
  class Notices {
28
 
29
  /**
30
+ * @var Wbcr_Factory422_Plugin
31
  */
32
  protected $plugin;
33
  /**
58
  /**
59
  * Инициализируем уведомлений сразу после загрузки модуля уведомлений
60
  *
61
+ * @param Wbcr_Factory422_Plugin $plugin
62
  */
63
  public function __construct( $plugin ) {
64
  //default notices
86
  /**
87
  * @since 2.1.2 - является устаревшим
88
  */
89
+ $this->notices = wbcr_factory_422_apply_filters_deprecated( 'wbcr_factory_notices_000_list', [
90
  $this->notices,
91
  $this->plugin->getPluginName(),
92
  ], '2.1.2', 'wbcr/factory/admin_notices' );
93
 
94
  /**
95
+ * @since 2.1.2 - Добавлен, модуль factory_notices_000 был удален. Поэтому в этому хуке мы заменили префикс на factory_422
96
  */
97
  $this->notices = apply_filters( 'wbcr/factory/admin_notices', $this->notices, $this->plugin->getPluginName() );
98
 
libs/factory/core/includes/class-factory-options.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_421;
4
 
5
  // Exit if accessed directly
6
  use Exception;
@@ -10,7 +10,7 @@ if ( ! defined( 'ABSPATH' ) ) {
10
  }
11
 
12
  /**
13
- * Трейт используется для расширения базового класса плагина Wbcr_Factory421_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_422;
4
 
5
  // Exit if accessed directly
6
  use Exception;
10
  }
11
 
12
  /**
13
+ * Трейт используется для расширения базового класса плагина Wbcr_Factory422_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_Factory421_Plugin extends Wbcr_Factory421_Base {
28
 
29
  /**
30
- * Instance class Wbcr_Factory421_Request, required manages http requests
31
  *
32
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/390561806
33
- * @var Wbcr_Factory421_Request
34
  */
35
  public $request;
36
 
37
  /**
38
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/393936924
39
- * @var \WBCR\Factory_421\Premium\Provider
40
  */
41
  public $premium;
42
 
43
  /**
44
  * The Bootstrap Manager class
45
  *
46
- * @var Wbcr_FactoryBootstrap422_Manager
47
  */
48
  public $bootstrap;
49
 
50
  /**
51
  * The Bootstrap Manager class
52
  *
53
- * @var Wbcr_FactoryForms419_Manager
54
  */
55
  public $forms;
56
 
57
  /**
58
- * Простой массив со списком зарегистрированных классов унаследованных от Wbcr_Factory421_Activator.
59
  * Классы активации используются для упаковки набора функций, которые нужно выполнить во время
60
  * активации плагина.
61
  *
62
- * @var array[] Wbcr_Factory421_Activator
63
  */
64
  protected $activator_class = [];
65
 
@@ -86,7 +86,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
86
  *
87
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
88
  * @since 4.1.9
89
- * @var WBCR\Factory_Adverts_103\Base
90
  */
91
  private $adverts;
92
 
@@ -105,8 +105,8 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
105
 
106
  parent::__construct( $plugin_path, $data );
107
 
108
- $this->request = new Wbcr_Factory421_Request();
109
- //$this->route = new Wbcr_Factory421_Route();
110
 
111
  // INIT PLUGIN FRAMEWORK MODULES
112
  // Framework modules should always be loaded first,
@@ -138,18 +138,18 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
138
  * Устанавливает класс менеджер, которому плагин будет делегировать подключение ресурсов (картинок,
139
  * скриптов, стилей) фреймворка.
140
  *
141
- * @param Wbcr_FactoryBootstrap422_Manager $bootstrap
142
  */
143
- public function setBootstap( Wbcr_FactoryBootstrap422_Manager $bootstrap ) {
144
  $this->bootstrap = $bootstrap;
145
  }
146
 
147
  /**
148
  * Устанавливает класс менеджер, которому будет делегирована работа с html формами фреймворка.
149
  *
150
- * @param Wbcr_FactoryForms419_Manager $forms
151
  */
152
- public function setForms( Wbcr_FactoryForms419_Manager $forms ) {
153
  $this->forms = $forms;
154
  }
155
 
@@ -177,8 +177,8 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
177
  * @param string $class_name Имя класса провайдера
178
  */
179
  public function set_license_provider( $name, $class_name ) {
180
- if ( ! isset( WBCR\Factory_421\Premium\Manager::$providers[ $name ] ) ) {
181
- WBCR\Factory_421\Premium\Manager::$providers[ $name ] = $class_name;
182
  }
183
  }
184
 
@@ -194,8 +194,8 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
194
  * @param string $class_name Имя класса репозитория
195
  */
196
  public function set_update_repository( $name, $class_name ) {
197
- if ( ! isset( WBCR\Factory_421\Updates\Upgrader::$repositories[ $name ] ) ) {
198
- WBCR\Factory_421\Updates\Upgrader::$repositories[ $name ] = $class_name;
199
  }
200
  }
201
 
@@ -207,7 +207,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
207
  *
208
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
209
  * @since 1.1
210
- * @return \WBCR\Factory_Adverts_103\Base
211
  */
212
  public function get_adverts_manager() {
213
  return $this->adverts;
@@ -237,17 +237,17 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
237
  }
238
 
239
  public function newScriptList() {
240
- return new Wbcr_Factory421_ScriptList( $this );
241
  }
242
 
243
  public function newStyleList() {
244
- return new Wbcr_Factory421_StyleList( $this );
245
  }
246
 
247
  /**
248
  * Все страницы плагина создаются через специальную обертку, за которую отвечает модуль
249
  * фреймворка pages. Разработчик создает собственный класс, унаследованный от
250
- * Wbcr_FactoryPages421_AdminPage, а затем регистрирует его через этот метод.
251
  * Метод выполняет подключение класса страницы и регистрирует его в модуле фреймворка
252
  * pages.
253
  *
@@ -257,7 +257,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
257
  * @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/222887949 - документация по созданию страниц
258
  *
259
  * @param string $class_name Имя регистрируемого класса страницы. Пример: WCL_Page_Name.
260
- * Регистрируемый класс должен быть унаследован от класса Wbcr_FactoryPages421_AdminPage.
261
  * @param string $file_path Абсолютный путь к файлу с классом страницы.
262
  *
263
  * @throws Exception
@@ -278,11 +278,11 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
278
  throw new Exception( 'A class with this name {' . $class_name . '} does not exist.' );
279
  }
280
 
281
- if ( ! class_exists( 'Wbcr_FactoryPages421' ) ) {
282
- throw new Exception( 'The factory_pages_421 module is not included.' );
283
  }
284
 
285
- Wbcr_FactoryPages421::register( $this, $class_name );
286
  }
287
 
288
  /**
@@ -329,16 +329,16 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
329
  /**
330
  * @since 4.1.1 - change hook name
331
  */
332
- if ( apply_filters( "wbcr/factory_421/cancel_plugin_activation_{$this->plugin_name}", false ) ) {
333
  return;
334
  }
335
 
336
  /**
337
- * wbcr_factory_421_plugin_activation
338
  *
339
  * @since 4.1.1 - deprecated
340
  */
341
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_421_plugin_activation', [
342
  $this
343
  ], '4.1.1', "wbcr/factory/plugin_activation" );
344
 
@@ -347,7 +347,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
347
  *
348
  * @since 4.1.2 - deprecated
349
  */
350
- wbcr_factory_421_do_action_deprecated( 'wbcr/factory/plugin_activation', [
351
  $this
352
  ], '4.1.2', "wbcr/factory/before_plugin_activation" );
353
 
@@ -363,16 +363,16 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
363
  *
364
  * @since 4.1.2 - deprecated
365
  */
366
- wbcr_factory_421_do_action_deprecated( "wbcr/factory/plugin_{$this->plugin_name}_activation", [
367
  $this
368
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_activation" );
369
 
370
  /**
371
- * wbcr_factory_421_plugin_activation_' . $this->plugin_name
372
  *
373
  * @since 4.1.1 - deprecated
374
  */
375
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_421_plugin_activation_' . $this->plugin_name, [
376
  $this
377
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_activation" );
378
 
@@ -412,16 +412,16 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
412
  /**
413
  * @since 4.1.1 - change hook name
414
  */
415
- if ( apply_filters( "wbcr/factory_421/cancel_plugin_deactivation_{$this->plugin_name}", false ) ) {
416
  return;
417
  }
418
 
419
  /**
420
- * wbcr_factory_421_plugin_deactivation
421
  *
422
  * @since 4.1.1 - deprecated
423
  */
424
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_421_plugin_deactivation', [
425
  $this
426
  ], '4.1.1', "wbcr/factory/plugin_deactivation" );
427
 
@@ -430,7 +430,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
430
  *
431
  * @since 4.1.2 - deprecated
432
  */
433
- wbcr_factory_421_do_action_deprecated( 'wbcr/factory/plugin_deactivation', [
434
  $this
435
  ], '4.1.2', "wbcr/factory/before_plugin_deactivation" );
436
 
@@ -442,11 +442,11 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
442
  do_action( 'wbcr/factory/plugin_deactivation', $this );
443
 
444
  /**
445
- * wbcr_factory_421_plugin_deactivation_ . $this->plugin_name
446
  *
447
  * @since 4.1.1 - deprecated
448
  */
449
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_421_plugin_deactivation_' . $this->plugin_name, [
450
  $this
451
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation" );
452
 
@@ -455,7 +455,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
455
  *
456
  * @since 4.1.2 - deprecated
457
  */
458
- wbcr_factory_421_do_action_deprecated( "wbcr/factory/plugin_{$this->plugin_name}_deactivation", [
459
  $this
460
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation" );
461
 
@@ -492,8 +492,8 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
492
  * @throws Exception
493
  */
494
  public function getPluginPageUrl( $page_id, $args = [] ) {
495
- if ( ! class_exists( 'Wbcr_FactoryPages421' ) ) {
496
- throw new Exception( 'The factory_pages_421 module is not included.' );
497
  }
498
 
499
  if ( ! is_admin() ) {
@@ -502,7 +502,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
502
  return null;
503
  }
504
 
505
- return Wbcr_FactoryPages421::getPageUrl( $this, $page_id, $args );
506
  }
507
 
508
  /**
@@ -596,12 +596,12 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
596
  /**
597
  * @since 4.1.1 - deprecated
598
  */
599
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_421_core_modules_loaded-' . $this->plugin_name, [], '4.1.1', "wbcr/factory_421/modules_loaded-" . $this->plugin_name );
600
 
601
  /**
602
  * @since 4.1.1 - add
603
  */
604
- do_action( 'wbcr/factory_421/modules_loaded-' . $this->plugin_name );
605
  }
606
 
607
 
@@ -615,7 +615,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
615
  add_action( 'plugins_loaded', [ $this, 'set_text_domain' ] );
616
 
617
  if ( is_admin() ) {
618
- add_filter( 'wbcr_factory_421_core_admin_allow_multisite', '__return_true' );
619
 
620
  register_activation_hook( $this->get_paths()->main_file, [ $this, 'activation_hook' ] );
621
  register_deactivation_hook( $this->get_paths()->main_file, [ $this, 'deactivation_hook' ] );
@@ -630,7 +630,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
630
  * @throws Exception
631
  */
632
  protected function init_plugin_migrations() {
633
- new WBCR\Factory_421\Migrations( $this );
634
  }
635
 
636
  /**
@@ -640,7 +640,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
640
  * @return void
641
  */
642
  protected function init_plugin_notices() {
643
- new Wbcr\Factory_421\Notices( $this );
644
  }
645
 
646
  /**
@@ -655,7 +655,7 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
655
  */
656
  protected function init_plugin_updates() {
657
  if ( $this->has_updates ) {
658
- new WBCR\Factory_421\Updates\Upgrader( $this );
659
  }
660
  }
661
 
@@ -677,11 +677,11 @@ abstract class Wbcr_Factory421_Plugin extends Wbcr_Factory421_Base {
677
  }
678
 
679
  // Создаем экземляр премиум менеджера, мы сможем к нему обращаться глобально.
680
- $this->premium = WBCR\Factory_421\Premium\Manager::instance( $this, $this->license_settings );
681
 
682
  // Подключаем премиум апгрейдер
683
  if ( isset( $this->license_settings['has_updates'] ) && $this->license_settings['has_updates'] ) {
684
- new WBCR\Factory_421\Updates\Premium_Upgrader( $this );
685
  }
686
  }
687
  }
24
  * @package factory-core
25
  *
26
  */
27
+ abstract class Wbcr_Factory422_Plugin extends Wbcr_Factory422_Base {
28
 
29
  /**
30
+ * Instance class Wbcr_Factory422_Request, required manages http requests
31
  *
32
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/390561806
33
+ * @var Wbcr_Factory422_Request
34
  */
35
  public $request;
36
 
37
  /**
38
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/393936924
39
+ * @var \WBCR\Factory_422\Premium\Provider
40
  */
41
  public $premium;
42
 
43
  /**
44
  * The Bootstrap Manager class
45
  *
46
+ * @var Wbcr_FactoryBootstrap423_Manager
47
  */
48
  public $bootstrap;
49
 
50
  /**
51
  * The Bootstrap Manager class
52
  *
53
+ * @var Wbcr_FactoryForms420_Manager
54
  */
55
  public $forms;
56
 
57
  /**
58
+ * Простой массив со списком зарегистрированных классов унаследованных от Wbcr_Factory422_Activator.
59
  * Классы активации используются для упаковки набора функций, которые нужно выполнить во время
60
  * активации плагина.
61
  *
62
+ * @var array[] Wbcr_Factory422_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_104\Base
90
  */
91
  private $adverts;
92
 
105
 
106
  parent::__construct( $plugin_path, $data );
107
 
108
+ $this->request = new Wbcr_Factory422_Request();
109
+ //$this->route = new Wbcr_Factory422_Route();
110
 
111
  // INIT PLUGIN FRAMEWORK MODULES
112
  // Framework modules should always be loaded first,
138
  * Устанавливает класс менеджер, которому плагин будет делегировать подключение ресурсов (картинок,
139
  * скриптов, стилей) фреймворка.
140
  *
141
+ * @param Wbcr_FactoryBootstrap423_Manager $bootstrap
142
  */
143
+ public function setBootstap( Wbcr_FactoryBootstrap423_Manager $bootstrap ) {
144
  $this->bootstrap = $bootstrap;
145
  }
146
 
147
  /**
148
  * Устанавливает класс менеджер, которому будет делегирована работа с html формами фреймворка.
149
  *
150
+ * @param Wbcr_FactoryForms420_Manager $forms
151
  */
152
+ public function setForms( Wbcr_FactoryForms420_Manager $forms ) {
153
  $this->forms = $forms;
154
  }
155
 
177
  * @param string $class_name Имя класса провайдера
178
  */
179
  public function set_license_provider( $name, $class_name ) {
180
+ if ( ! isset( WBCR\Factory_422\Premium\Manager::$providers[ $name ] ) ) {
181
+ WBCR\Factory_422\Premium\Manager::$providers[ $name ] = $class_name;
182
  }
183
  }
184
 
194
  * @param string $class_name Имя класса репозитория
195
  */
196
  public function set_update_repository( $name, $class_name ) {
197
+ if ( ! isset( WBCR\Factory_422\Updates\Upgrader::$repositories[ $name ] ) ) {
198
+ WBCR\Factory_422\Updates\Upgrader::$repositories[ $name ] = $class_name;
199
  }
200
  }
201
 
207
  *
208
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
209
  * @since 1.1
210
+ * @return \WBCR\Factory_Adverts_104\Base
211
  */
212
  public function get_adverts_manager() {
213
  return $this->adverts;
237
  }
238
 
239
  public function newScriptList() {
240
+ return new Wbcr_Factory422_ScriptList( $this );
241
  }
242
 
243
  public function newStyleList() {
244
+ return new Wbcr_Factory422_StyleList( $this );
245
  }
246
 
247
  /**
248
  * Все страницы плагина создаются через специальную обертку, за которую отвечает модуль
249
  * фреймворка pages. Разработчик создает собственный класс, унаследованный от
250
+ * Wbcr_FactoryPages422_AdminPage, а затем регистрирует его через этот метод.
251
  * Метод выполняет подключение класса страницы и регистрирует его в модуле фреймворка
252
  * pages.
253
  *
257
  * @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/222887949 - документация по созданию страниц
258
  *
259
  * @param string $class_name Имя регистрируемого класса страницы. Пример: WCL_Page_Name.
260
+ * Регистрируемый класс должен быть унаследован от класса Wbcr_FactoryPages422_AdminPage.
261
  * @param string $file_path Абсолютный путь к файлу с классом страницы.
262
  *
263
  * @throws Exception
278
  throw new Exception( 'A class with this name {' . $class_name . '} does not exist.' );
279
  }
280
 
281
+ if ( ! class_exists( 'Wbcr_FactoryPages422' ) ) {
282
+ throw new Exception( 'The factory_pages_422 module is not included.' );
283
  }
284
 
285
+ Wbcr_FactoryPages422::register( $this, $class_name );
286
  }
287
 
288
  /**
329
  /**
330
  * @since 4.1.1 - change hook name
331
  */
332
+ if ( apply_filters( "wbcr/factory_422/cancel_plugin_activation_{$this->plugin_name}", false ) ) {
333
  return;
334
  }
335
 
336
  /**
337
+ * wbcr_factory_422_plugin_activation
338
  *
339
  * @since 4.1.1 - deprecated
340
  */
341
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_422_plugin_activation', [
342
  $this
343
  ], '4.1.1', "wbcr/factory/plugin_activation" );
344
 
347
  *
348
  * @since 4.1.2 - deprecated
349
  */
350
+ wbcr_factory_422_do_action_deprecated( 'wbcr/factory/plugin_activation', [
351
  $this
352
  ], '4.1.2', "wbcr/factory/before_plugin_activation" );
353
 
363
  *
364
  * @since 4.1.2 - deprecated
365
  */
366
+ wbcr_factory_422_do_action_deprecated( "wbcr/factory/plugin_{$this->plugin_name}_activation", [
367
  $this
368
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_activation" );
369
 
370
  /**
371
+ * wbcr_factory_422_plugin_activation_' . $this->plugin_name
372
  *
373
  * @since 4.1.1 - deprecated
374
  */
375
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_422_plugin_activation_' . $this->plugin_name, [
376
  $this
377
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_activation" );
378
 
412
  /**
413
  * @since 4.1.1 - change hook name
414
  */
415
+ if ( apply_filters( "wbcr/factory_422/cancel_plugin_deactivation_{$this->plugin_name}", false ) ) {
416
  return;
417
  }
418
 
419
  /**
420
+ * wbcr_factory_422_plugin_deactivation
421
  *
422
  * @since 4.1.1 - deprecated
423
  */
424
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_422_plugin_deactivation', [
425
  $this
426
  ], '4.1.1', "wbcr/factory/plugin_deactivation" );
427
 
430
  *
431
  * @since 4.1.2 - deprecated
432
  */
433
+ wbcr_factory_422_do_action_deprecated( 'wbcr/factory/plugin_deactivation', [
434
  $this
435
  ], '4.1.2', "wbcr/factory/before_plugin_deactivation" );
436
 
442
  do_action( 'wbcr/factory/plugin_deactivation', $this );
443
 
444
  /**
445
+ * wbcr_factory_422_plugin_deactivation_ . $this->plugin_name
446
  *
447
  * @since 4.1.1 - deprecated
448
  */
449
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_422_plugin_deactivation_' . $this->plugin_name, [
450
  $this
451
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation" );
452
 
455
  *
456
  * @since 4.1.2 - deprecated
457
  */
458
+ wbcr_factory_422_do_action_deprecated( "wbcr/factory/plugin_{$this->plugin_name}_deactivation", [
459
  $this
460
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation" );
461
 
492
  * @throws Exception
493
  */
494
  public function getPluginPageUrl( $page_id, $args = [] ) {
495
+ if ( ! class_exists( 'Wbcr_FactoryPages422' ) ) {
496
+ throw new Exception( 'The factory_pages_422 module is not included.' );
497
  }
498
 
499
  if ( ! is_admin() ) {
502
  return null;
503
  }
504
 
505
+ return Wbcr_FactoryPages422::getPageUrl( $this, $page_id, $args );
506
  }
507
 
508
  /**
596
  /**
597
  * @since 4.1.1 - deprecated
598
  */
599
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_422_core_modules_loaded-' . $this->plugin_name, [], '4.1.1', "wbcr/factory_422/modules_loaded-" . $this->plugin_name );
600
 
601
  /**
602
  * @since 4.1.1 - add
603
  */
604
+ do_action( 'wbcr/factory_422/modules_loaded-' . $this->plugin_name );
605
  }
606
 
607
 
615
  add_action( 'plugins_loaded', [ $this, 'set_text_domain' ] );
616
 
617
  if ( is_admin() ) {
618
+ add_filter( 'wbcr_factory_422_core_admin_allow_multisite', '__return_true' );
619
 
620
  register_activation_hook( $this->get_paths()->main_file, [ $this, 'activation_hook' ] );
621
  register_deactivation_hook( $this->get_paths()->main_file, [ $this, 'deactivation_hook' ] );
630
  * @throws Exception
631
  */
632
  protected function init_plugin_migrations() {
633
+ new WBCR\Factory_422\Migrations( $this );
634
  }
635
 
636
  /**
640
  * @return void
641
  */
642
  protected function init_plugin_notices() {
643
+ new Wbcr\Factory_422\Notices( $this );
644
  }
645
 
646
  /**
655
  */
656
  protected function init_plugin_updates() {
657
  if ( $this->has_updates ) {
658
+ new WBCR\Factory_422\Updates\Upgrader( $this );
659
  }
660
  }
661
 
677
  }
678
 
679
  // Создаем экземляр премиум менеджера, мы сможем к нему обращаться глобально.
680
+ $this->premium = WBCR\Factory_422\Premium\Manager::instance( $this, $this->license_settings );
681
 
682
  // Подключаем премиум апгрейдер
683
  if ( isset( $this->license_settings['has_updates'] ) && $this->license_settings['has_updates'] ) {
684
+ new WBCR\Factory_422\Updates\Premium_Upgrader( $this );
685
  }
686
  }
687
  }
libs/factory/core/includes/class-factory-plugin-base.php CHANGED
@@ -5,7 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
5
  }
6
 
7
  /**
8
- * Базовый класс для создания нового плагина. Полную реализацию класса смотрите в Wbcr_Factory421_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_Factory421_Base {
21
 
22
- use WBCR\Factory_421\Options;
23
 
24
  /**
25
  * Обязательное свойство. Префикс, используется для создания пространство имен.
@@ -81,7 +81,7 @@ class Wbcr_Factory421_Base {
81
  * https://robin-image-optimizer.webcraftic.com/premium-features.
82
  *
83
  * Это свойство заполняется для того, чтобы в процессе разработки вы могли использовать
84
- * экземпляр класса \WBCR\Factory_421\Entities\Support, для получения информации о сайте плагина.
85
  * Тем самым вы избавляете себя от жесткого прописывания ссылок на лендинг плагина и
86
  * можете изменить все ссылки в одном месте.
87
  *
@@ -127,7 +127,7 @@ class Wbcr_Factory421_Base {
127
  * к примеру: freemius, codecanyon, templatemonster, вам нужно указать только настройки для
128
  * взаимодействия с выбранным вами провайдером. Каждая реализация провайдера лицензий может иметь
129
  * индивидуальный настройки, в этом примере приведены настройки для freemius провайдера
130
- * WBCR\Factory_421\Premium\Provider > WBCR\Factory_Freemius_109\Premium\Provider
131
  *
132
  * На текущий момент существует только реализация для freemius провайдера.
133
  *
@@ -177,9 +177,9 @@ class Wbcr_Factory421_Base {
177
  * }
178
  */
179
  protected $load_factory_modules = [
180
- [ 'libs/factory/bootstrap', 'factory_bootstrap_422', 'admin' ],
181
- [ 'libs/factory/forms', 'factory_forms_419', 'admin' ],
182
- [ 'libs/factory/pages', 'factory_pages_421', 'admin' ],
183
  ];
184
 
185
  /**
@@ -209,20 +209,20 @@ class Wbcr_Factory421_Base {
209
 
210
 
211
  /**
212
- * Экземпляр класса \WBCR\Factory_421\Entities\Support используется для получения информации
213
  * о сайте плагина. Чаще всего используется для получения ссылки на страницу с тарифами или
214
  * ссылки на форму обратной связи. Встроен механизм отслеживания по utm меткам.
215
  *
216
- * @var \WBCR\Factory_421\Entities\Support
217
  */
218
  protected $support;
219
 
220
  /**
221
- * Экземпляр класса \WBCR\Factory_421\Entities\Paths используется для получения информации о
222
  * путях плагина. Часто используется для получения путей или ссылок на место хранения плагина
223
  * или его входного файла.
224
  *
225
- * @var \WBCR\Factory_421\Entities\Paths
226
  */
227
  protected $paths;
228
 
@@ -270,8 +270,8 @@ class Wbcr_Factory421_Base {
270
  throw new Exception( 'One of the required attributes has not been passed (prefix, plugin_title, plugin_name, plugin_version, plugin_text_domain).' );
271
  }
272
 
273
- $this->support = new \WBCR\Factory_421\Entities\Support( $this->support_details );
274
- $this->paths = new \WBCR\Factory_421\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_Factory421_Base {
391
  * Проверяет, включен ли премиум для этого плагина или нет.
392
  *
393
  * @return bool Возвращает true, если премиум пакет включен для этого плагина.
394
- * См. Wbcr_Factory421_Base::has_premium
395
  */
396
  public function has_premium() {
397
  return $this->has_premium;
@@ -400,7 +400,7 @@ class Wbcr_Factory421_Base {
400
  /**
401
  * Позволяет получить заголовок плагина.
402
  *
403
- * @return string Возвращает заголовок плагина. См. Wbcr_Factory421_Base::plugin_title
404
  */
405
  public function getPluginTitle() {
406
  return $this->plugin_title;
@@ -409,7 +409,7 @@ class Wbcr_Factory421_Base {
409
  /**
410
  * Позволяет получить префикс плагина.
411
  *
412
- * @return string Возвращает префикс плагина.См. Wbcr_Factory421_Base::prefix
413
  */
414
  public function getPrefix() {
415
  return $this->prefix;
@@ -418,7 +418,7 @@ class Wbcr_Factory421_Base {
418
  /**
419
  * Позволяет получить имя плагина.
420
  *
421
- * @return string Возвращает имя плагина. См. Wbcr_Factory421_Base::plugin_name
422
  */
423
  public function getPluginName() {
424
  return $this->plugin_name;
@@ -427,7 +427,7 @@ class Wbcr_Factory421_Base {
427
  /**
428
  * Позволяет получить версию плагина.
429
  *
430
- * @return string Возвращает версию плагина. См. Wbcr_Factory421_Base::plugin_version
431
  */
432
  public function getPluginVersion() {
433
  return $this->plugin_version;
@@ -449,7 +449,7 @@ class Wbcr_Factory421_Base {
449
  * какие-то данные не описанные в интерфейсе этого плагина.
450
  *
451
  * @param string $attr_name Имя атрибута, который нужно получить. Идентично ключу в массиве
452
- * Wbcr_Factory421_Base::plugin_data
453
  *
454
  * @return null
455
  */
@@ -462,18 +462,18 @@ class Wbcr_Factory421_Base {
462
  }
463
 
464
  /**
465
- * Предоставляет доступ к экземпляру класса \WBCR\Factory_421\Entities\Support.
466
  *
467
- * @return \WBCR\Factory_421\Entities\Support
468
  */
469
  public function get_support() {
470
  return $this->support;
471
  }
472
 
473
  /**
474
- * Предоставляет доступ к экземпляру класса \WBCR\Factory_421\Entities\Paths.
475
  *
476
- * @return \WBCR\Factory_421\Entities\Paths
477
  */
478
  public function get_paths() {
479
  return $this->paths;
@@ -482,7 +482,7 @@ class Wbcr_Factory421_Base {
482
  /**
483
  * Позволяет получить сырые данные плагина в виде объекта StdClass.
484
  *
485
- * @return object Возвращает объект с сырыми данными плагина. См. Wbcr_Factory421_Base::plugin_data
486
  */
487
  public function getPluginInfo() {
488
  return (object) $this->plugin_data;
5
  }
6
 
7
  /**
8
+ * Базовый класс для создания нового плагина. Полную реализацию класса смотрите в Wbcr_Factory422_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_Factory422_Base {
21
 
22
+ use WBCR\Factory_422\Options;
23
 
24
  /**
25
  * Обязательное свойство. Префикс, используется для создания пространство имен.
81
  * https://robin-image-optimizer.webcraftic.com/premium-features.
82
  *
83
  * Это свойство заполняется для того, чтобы в процессе разработки вы могли использовать
84
+ * экземпляр класса \WBCR\Factory_422\Entities\Support, для получения информации о сайте плагина.
85
  * Тем самым вы избавляете себя от жесткого прописывания ссылок на лендинг плагина и
86
  * можете изменить все ссылки в одном месте.
87
  *
127
  * к примеру: freemius, codecanyon, templatemonster, вам нужно указать только настройки для
128
  * взаимодействия с выбранным вами провайдером. Каждая реализация провайдера лицензий может иметь
129
  * индивидуальный настройки, в этом примере приведены настройки для freemius провайдера
130
+ * WBCR\Factory_422\Premium\Provider > WBCR\Factory_Freemius_110\Premium\Provider
131
  *
132
  * На текущий момент существует только реализация для freemius провайдера.
133
  *
177
  * }
178
  */
179
  protected $load_factory_modules = [
180
+ [ 'libs/factory/bootstrap', 'factory_bootstrap_423', 'admin' ],
181
+ [ 'libs/factory/forms', 'factory_forms_420', 'admin' ],
182
+ [ 'libs/factory/pages', 'factory_pages_422', 'admin' ],
183
  ];
184
 
185
  /**
209
 
210
 
211
  /**
212
+ * Экземпляр класса \WBCR\Factory_422\Entities\Support используется для получения информации
213
  * о сайте плагина. Чаще всего используется для получения ссылки на страницу с тарифами или
214
  * ссылки на форму обратной связи. Встроен механизм отслеживания по utm меткам.
215
  *
216
+ * @var \WBCR\Factory_422\Entities\Support
217
  */
218
  protected $support;
219
 
220
  /**
221
+ * Экземпляр класса \WBCR\Factory_422\Entities\Paths используется для получения информации о
222
  * путях плагина. Часто используется для получения путей или ссылок на место хранения плагина
223
  * или его входного файла.
224
  *
225
+ * @var \WBCR\Factory_422\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_422\Entities\Support( $this->support_details );
274
+ $this->paths = new \WBCR\Factory_422\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_Factory422_Base::has_premium
395
  */
396
  public function has_premium() {
397
  return $this->has_premium;
400
  /**
401
  * Позволяет получить заголовок плагина.
402
  *
403
+ * @return string Возвращает заголовок плагина. См. Wbcr_Factory422_Base::plugin_title
404
  */
405
  public function getPluginTitle() {
406
  return $this->plugin_title;
409
  /**
410
  * Позволяет получить префикс плагина.
411
  *
412
+ * @return string Возвращает префикс плагина.См. Wbcr_Factory422_Base::prefix
413
  */
414
  public function getPrefix() {
415
  return $this->prefix;
418
  /**
419
  * Позволяет получить имя плагина.
420
  *
421
+ * @return string Возвращает имя плагина. См. Wbcr_Factory422_Base::plugin_name
422
  */
423
  public function getPluginName() {
424
  return $this->plugin_name;
427
  /**
428
  * Позволяет получить версию плагина.
429
  *
430
+ * @return string Возвращает версию плагина. См. Wbcr_Factory422_Base::plugin_version
431
  */
432
  public function getPluginVersion() {
433
  return $this->plugin_version;
449
  * какие-то данные не описанные в интерфейсе этого плагина.
450
  *
451
  * @param string $attr_name Имя атрибута, который нужно получить. Идентично ключу в массиве
452
+ * Wbcr_Factory422_Base::plugin_data
453
  *
454
  * @return null
455
  */
462
  }
463
 
464
  /**
465
+ * Предоставляет доступ к экземпляру класса \WBCR\Factory_422\Entities\Support.
466
  *
467
+ * @return \WBCR\Factory_422\Entities\Support
468
  */
469
  public function get_support() {
470
  return $this->support;
471
  }
472
 
473
  /**
474
+ * Предоставляет доступ к экземпляру класса \WBCR\Factory_422\Entities\Paths.
475
  *
476
+ * @return \WBCR\Factory_422\Entities\Paths
477
  */
478
  public function get_paths() {
479
  return $this->paths;
482
  /**
483
  * Позволяет получить сырые данные плагина в виде объекта StdClass.
484
  *
485
+ * @return object Возвращает объект с сырыми данными плагина. См. Wbcr_Factory422_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_Factory421_Request {
15
 
16
  /**
17
  * @param null $param
11
  * @package factory-core
12
  */
13
 
14
+ class Wbcr_Factory422_Request {
15
 
16
  /**
17
  * @param null $param
libs/factory/core/includes/class-factory-requirements.php CHANGED
@@ -11,9 +11,9 @@
11
  * @version 2.0.0
12
  * @since 4.0.9
13
  */
14
-
15
- if ( ! class_exists( 'Wbcr_Factory421_Requirements' ) ) {
16
- class Wbcr_Factory421_Requirements {
17
 
18
  /**
19
  * Factory framework version
@@ -121,11 +121,11 @@ if ( ! class_exists( 'Wbcr_Factory421_Requirements' ) ) {
121
  $this->plugin_basename = plugin_basename( $plugin_file );
122
  $this->plugin_url = plugins_url( null, $plugin_file );
123
 
124
- $plugin_info = get_file_data( $this->plugin_file, [
125
  'Version' => 'Version',
126
  'FrameworkVersion' => 'Framework Version',
127
  'TextDomain' => 'Text Domain'
128
- ], 'plugin' );
129
 
130
  if ( isset( $plugin_info['FrameworkVersion'] ) ) {
131
  $this->factory_version = $plugin_info['FrameworkVersion'];
@@ -139,7 +139,7 @@ if ( ! class_exists( 'Wbcr_Factory421_Requirements' ) ) {
139
  $this->plugin_text_domain = $plugin_info['TextDomain'];
140
  }
141
 
142
- add_action( 'admin_init', [ $this, 'register_notices' ] );
143
  }
144
 
145
  public function get_plugin_version() {
@@ -158,13 +158,13 @@ if ( ! class_exists( 'Wbcr_Factory421_Requirements' ) ) {
158
  if ( current_user_can( 'activate_plugins' ) && current_user_can( 'edit_plugins' ) && current_user_can( 'install_plugins' ) ) {
159
 
160
  if ( is_multisite() ) {
161
- add_action( 'network_admin_notices', [ $this, 'show_notice' ] );
162
 
163
- if ( ! empty( $this->plugin_basename ) && in_array( $this->plugin_basename, (array) get_option( 'active_plugins', [] ) ) ) {
164
- add_action( 'admin_notices', [ $this, 'show_notice' ] );
165
  }
166
  } else {
167
- add_action( 'admin_notices', [ $this, 'show_notice' ] );
168
  }
169
  }
170
  }
@@ -242,7 +242,7 @@ if ( ! class_exists( 'Wbcr_Factory421_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_213' ), $this->plugin_title ) . ' ';
246
  $notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
247
 
248
  $has_one = false;
@@ -273,21 +273,22 @@ if ( ! class_exists( 'Wbcr_Factory421_Requirements' ) ) {
273
  * @return string
274
  */
275
  protected function get_php_incompat_text() {
276
- return sprintf( __( 'You need to update the PHP version to %s or higher!', 'wbcr_factory_421' ), $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_421' ), $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_421' ), $this->plugin_title );
291
  }
292
  }
293
- }
 
11
  * @version 2.0.0
12
  * @since 4.0.9
13
  */
14
+ // @formatter:off
15
+ if ( ! class_exists( 'Wbcr_Factory422_Requirements' ) ) {
16
+ class Wbcr_Factory422_Requirements {
17
 
18
  /**
19
  * Factory framework version
121
  $this->plugin_basename = plugin_basename( $plugin_file );
122
  $this->plugin_url = plugins_url( null, $plugin_file );
123
 
124
+ $plugin_info = get_file_data( $this->plugin_file, array(
125
  'Version' => 'Version',
126
  'FrameworkVersion' => 'Framework Version',
127
  'TextDomain' => 'Text Domain'
128
+ ), 'plugin' );
129
 
130
  if ( isset( $plugin_info['FrameworkVersion'] ) ) {
131
  $this->factory_version = $plugin_info['FrameworkVersion'];
139
  $this->plugin_text_domain = $plugin_info['TextDomain'];
140
  }
141
 
142
+ add_action( 'admin_init', array( $this, 'register_notices' ) );
143
  }
144
 
145
  public function get_plugin_version() {
158
  if ( current_user_can( 'activate_plugins' ) && current_user_can( 'edit_plugins' ) && current_user_can( 'install_plugins' ) ) {
159
 
160
  if ( is_multisite() ) {
161
+ add_action( 'network_admin_notices', array( $this, 'show_notice' ) );
162
 
163
+ if ( ! empty( $this->plugin_basename ) && in_array( $this->plugin_basename, (array) get_option( 'active_plugins', array() ) ) ) {
164
+ add_action( 'admin_notices', array( $this, 'show_notice' ) );
165
  }
166
  } else {
167
+ add_action( 'admin_notices', array( $this, 'show_notice' ) );
168
  }
169
  }
170
  }
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_214' ), $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_422' ), $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_422' ), $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_422' ), $this->plugin_title );
291
  }
292
  }
293
+ }
294
+ // @formatter:on
libs/factory/core/includes/entities/class-factory-paths.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_421\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
1
  <?php
2
 
3
+ namespace WBCR\Factory_422\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_421\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
1
  <?php
2
 
3
+ namespace WBCR\Factory_422\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_421_deprecated_hook()
57
  *
58
  */
59
- function wbcr_factory_421_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_421_deprecated_hook( $tag, $version, $replacement, $message );
67
 
68
  return apply_filters_ref_array( $tag, $args );
69
  }
@@ -89,7 +89,7 @@ function wbcr_factory_421_apply_filters_deprecated( $tag, $args, $version, $repl
89
  * @see _deprecated_hook()
90
  *
91
  */
92
- function wbcr_factory_421_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_421_do_action_deprecated( $tag, $args, $version, $replacem
98
  if ( ! has_action( $tag ) ) {
99
  return;
100
  }
101
- wbcr_factory_421_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_421_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_421_do_action_deprecated( $tag, $args, $version, $replacem
123
  * @param string $replacement Optional. The hook that should have been used.
124
  * @param string $message Optional. A message regarding the change.
125
  */
126
- function wbcr_factory_421_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_422_deprecated_hook()
57
  *
58
  */
59
+ function wbcr_factory_422_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_422_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_422_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_422_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_422_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_422_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_421\Premium\Interfaces;
4
 
5
  // Exit if accessed directly
6
  if ( ! defined( 'ABSPATH' ) ) {
1
  <?php
2
 
3
+ namespace WBCR\Factory_422\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_421\Premium;
4
 
5
  use Exception;
6
- use Wbcr_Factory421_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_Factory421_Plugin
28
  */
29
  protected $plugin;
30
 
@@ -36,24 +36,24 @@ class Manager {
36
  /**
37
  * Manager constructor.
38
  *
39
- * @param Wbcr_Factory421_Plugin $plugin
40
  * @param array $settings
41
  *
42
  * @throws Exception
43
  */
44
- public function __construct( Wbcr_Factory421_Plugin $plugin, array $settings ) {
45
  $this->plugin = $plugin;
46
  $this->settings = $settings;
47
  }
48
 
49
  /**
50
- * @param Wbcr_Factory421_Plugin $plugin
51
  * @param array $settings
52
  *
53
- * @return \WBCR\Factory_Freemius_109\Premium\Provider
54
  * @throws Exception
55
  */
56
- public static function instance( Wbcr_Factory421_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_109\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_421\Premium\Provider interface!" );
74
  }
75
 
76
  return new self::$providers[ $provider_name ]( $this->plugin, $this->settings );
1
  <?php
2
 
3
+ namespace WBCR\Factory_422\Premium;
4
 
5
  use Exception;
6
+ use Wbcr_Factory422_Plugin;
7
 
8
  // Exit if accessed directly
9
  if ( ! defined( 'ABSPATH' ) ) {
24
  public static $providers;
25
 
26
  /**
27
+ * @var Wbcr_Factory422_Plugin
28
  */
29
  protected $plugin;
30
 
36
  /**
37
  * Manager constructor.
38
  *
39
+ * @param Wbcr_Factory422_Plugin $plugin
40
  * @param array $settings
41
  *
42
  * @throws Exception
43
  */
44
+ public function __construct( Wbcr_Factory422_Plugin $plugin, array $settings ) {
45
  $this->plugin = $plugin;
46
  $this->settings = $settings;
47
  }
48
 
49
  /**
50
+ * @param Wbcr_Factory422_Plugin $plugin
51
  * @param array $settings
52
  *
53
+ * @return \WBCR\Factory_Freemius_110\Premium\Provider
54
  * @throws Exception
55
  */
56
+ public static function instance( Wbcr_Factory422_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_110\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_422\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_421\Premium;
4
 
5
  use Exception;
6
- use Wbcr_Factory421_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_Factory421_Plugin
25
  */
26
  protected $plugin;
27
 
@@ -38,10 +38,10 @@ abstract class Provider {
38
  /**
39
  * Provider constructor.
40
  *
41
- * @param Wbcr_Factory421_Plugin $plugin
42
  * @param array $settings
43
  */
44
- public function __construct( Wbcr_Factory421_Plugin $plugin, array $settings ) {
45
  $this->plugin = $plugin;
46
  $this->settings = $settings;
47
 
@@ -195,7 +195,7 @@ abstract class Provider {
195
  abstract public function get_billing_cycle();
196
 
197
  /**
198
- * @return \WBCR\Factory_421\Premium\Interfaces\License
199
  */
200
  abstract public function get_license();
201
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_422\Premium;
4
 
5
  use Exception;
6
+ use Wbcr_Factory422_Plugin;
7
 
8
  // Exit if accessed directly
9
  if ( ! defined( 'ABSPATH' ) ) {
21
  abstract class Provider {
22
 
23
  /**
24
+ * @var Wbcr_Factory422_Plugin
25
  */
26
  protected $plugin;
27
 
38
  /**
39
  * Provider constructor.
40
  *
41
+ * @param Wbcr_Factory422_Plugin $plugin
42
  * @param array $settings
43
  */
44
+ public function __construct( Wbcr_Factory422_Plugin $plugin, array $settings ) {
45
  $this->plugin = $plugin;
46
  $this->settings = $settings;
47
 
195
  abstract public function get_billing_cycle();
196
 
197
  /**
198
+ * @return \WBCR\Factory_422\Premium\Interfaces\License
199
  */
200
  abstract public function get_license();
201
 
libs/factory/core/includes/updates/class-factory-premium-upgrader.php CHANGED
@@ -1,12 +1,12 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_421\Updates;
4
 
5
  use Exception;
6
  use Plugin_Installer_Skin;
7
  use Plugin_Upgrader;
8
- use Wbcr_Factory421_Plugin;
9
- use Wbcr_FactoryPages421_ImpressiveThemplate;
10
  use WP_Filesystem_Base;
11
  use WP_Upgrader;
12
  use WP_Upgrader_Skin;
@@ -39,11 +39,11 @@ class Premium_Upgrader extends Upgrader {
39
  * @param $args
40
  * @param bool $is_premium
41
  *
42
- * @param Wbcr_Factory421_Plugin $plugin
43
  *
44
  * @throws Exception
45
  */
46
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
47
  parent::__construct( $plugin );
48
 
49
  $this->plugin_basename = null;
@@ -116,11 +116,14 @@ class Premium_Upgrader extends Upgrader {
116
  }
117
 
118
  /**
 
119
  * @since 4.1.1
120
  */
121
  public function init_admin_actions() {
122
- if ( isset( $_GET['wbcr_factory_premium_updates_action'] ) ) {
123
- $action = $this->plugin->request->get( 'wbcr_factory_premium_updates_action' );
 
 
124
 
125
  check_admin_referer( "factory_premium_{$action}" );
126
  try {
@@ -225,9 +228,9 @@ class Premium_Upgrader extends Upgrader {
225
  *
226
  * @since 4.1.1
227
  *
228
- * @param Wbcr_FactoryPages421_ImpressiveThemplate $obj
229
  *
230
- * @param Wbcr_Factory421_Plugin $plugin
231
  *
232
  * @return void
233
  */
@@ -342,20 +345,28 @@ class Premium_Upgrader extends Upgrader {
342
  <?php
343
  }
344
 
 
345
  /**
346
  * Обновляет данные о премиум пакете в базе данных, после обновления плагина.
347
  *
348
- * @since 4.1.1
349
- *
350
- * @param array $options
351
- *
352
- * @param WP_Upgrader $upgrader_object
353
  *
 
354
  * @throws Exception
355
  */
356
- public function upgrader_process_complete_hook( $upgrader_object, $options ) {
357
- if ( ! empty( $options ) && $options['action'] == 'update' && $options['type'] == 'plugin' ) {
358
- if ( is_array( $options['plugins'] ) && in_array( $this->plugin_basename, $options['plugins'] ) ) {
 
 
 
 
 
 
 
 
 
359
  $this->update_package_data();
360
  }
361
  }
@@ -424,7 +435,10 @@ class Premium_Upgrader extends Upgrader {
424
  * @return string
425
  */
426
  protected function get_action_url( $action ) {
427
- $args = [ 'wbcr_factory_premium_updates_action' => $action ];
 
 
 
428
 
429
  return wp_nonce_url( $this->get_admin_url( $args ), "factory_premium_{$action}" );
430
  }
@@ -752,12 +766,12 @@ class Premium_Upgrader extends Upgrader {
752
  $cancel_license_url = $this->get_action_url( 'cancel_license' );
753
 
754
  $texts = [
755
- 'need_activate_license' => __( 'License activation required. A license is required to get premium plugin updates, as well as to get additional services.', 'wbcr_factory_421' ),
756
- 'need_renew_license' => __( 'Your license has expired. You can no longer get premium plugin updates, premium support and your access to Webcraftic services has been suspended.', 'wbcr_factory_421' ),
757
  'please_install_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please install premium add-on to use pro features now.
758
- <a href="%s">Install</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_421' ), $upgrade_url, $cancel_license_url ),
759
  'please_activate_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please activate premium add-on to use pro features now.
760
- <a href="%s">Activate</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_421' ), $activate_plugin_url, $cancel_license_url )
761
  ];
762
 
763
  if ( isset( $texts[ $type ] ) ) {
1
  <?php
2
 
3
+ namespace WBCR\Factory_422\Updates;
4
 
5
  use Exception;
6
  use Plugin_Installer_Skin;
7
  use Plugin_Upgrader;
8
+ use Wbcr_Factory422_Plugin;
9
+ use Wbcr_FactoryPages422_ImpressiveThemplate;
10
  use WP_Filesystem_Base;
11
  use WP_Upgrader;
12
  use WP_Upgrader_Skin;
39
  * @param $args
40
  * @param bool $is_premium
41
  *
42
+ * @param Wbcr_Factory422_Plugin $plugin
43
  *
44
  * @throws Exception
45
  */
46
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
47
  parent::__construct( $plugin );
48
 
49
  $this->plugin_basename = null;
116
  }
117
 
118
  /**
119
+ * @since 4.2.2 Fixed bug with plugins namespace (ISW-4)
120
  * @since 4.1.1
121
  */
122
  public function init_admin_actions() {
123
+ $plugin_slug = $this->plugin->request->get( 'wfactory_premium_updates_plugin', null );
124
+
125
+ if ( isset( $_GET['wfactory_premium_updates_action'] ) && $this->plugin_slug === $plugin_slug ) {
126
+ $action = $this->plugin->request->get( 'wfactory_premium_updates_action' );
127
 
128
  check_admin_referer( "factory_premium_{$action}" );
129
  try {
228
  *
229
  * @since 4.1.1
230
  *
231
+ * @param Wbcr_FactoryPages422_ImpressiveThemplate $obj
232
  *
233
+ * @param Wbcr_Factory422_Plugin $plugin
234
  *
235
  * @return void
236
  */
345
  <?php
346
  }
347
 
348
+
349
  /**
350
  * Обновляет данные о премиум пакете в базе данных, после обновления плагина.
351
  *
352
+ * @param WP_Upgrader $wp_upgrader WP_Upgrader instance.
353
+ * @param array $hook_extra Array of bulk item update data.
 
 
 
354
  *
355
+ * @return void
356
  * @throws Exception
357
  */
358
+ public function upgrader_process_complete_hook( $upgrader_object, $hook_extra ) {
359
+ if ( ! empty( $hook_extra ) && $hook_extra['action'] == 'update' && $hook_extra['type'] == 'plugin' ) {
360
+
361
+ # if it isn't bulk upgrade
362
+ if ( isset( $hook_extra['plugin'] ) && $this->plugin_basename === $hook_extra['plugin'] ) {
363
+ $this->update_package_data();
364
+
365
+ return;
366
+ }
367
+
368
+ # if it is bulk upgrade
369
+ if ( is_array( $hook_extra['plugins'] ) && in_array( $this->plugin_basename, $hook_extra['plugins'] ) ) {
370
  $this->update_package_data();
371
  }
372
  }
435
  * @return string
436
  */
437
  protected function get_action_url( $action ) {
438
+ $args = [
439
+ 'wfactory_premium_updates_action' => $action,
440
+ 'wfactory_premium_updates_plugin' => $this->plugin_slug
441
+ ];
442
 
443
  return wp_nonce_url( $this->get_admin_url( $args ), "factory_premium_{$action}" );
444
  }
766
  $cancel_license_url = $this->get_action_url( 'cancel_license' );
767
 
768
  $texts = [
769
+ 'need_activate_license' => __( 'License activation required. A license is required to get premium plugin updates, as well as to get additional services.', 'wbcr_factory_422' ),
770
+ 'need_renew_license' => __( 'Your license has expired. You can no longer get premium plugin updates, premium support and your access to Webcraftic services has been suspended.', 'wbcr_factory_422' ),
771
  'please_install_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please install premium add-on to use pro features now.
772
+ <a href="%s">Install</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_422' ), $upgrade_url, $cancel_license_url ),
773
  'please_activate_premium' => sprintf( __( 'Congratulations, you have activated a premium license! Please activate premium add-on to use pro features now.
774
+ <a href="%s">Activate</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_422' ), $activate_plugin_url, $cancel_license_url )
775
  ];
776
 
777
  if ( isset( $texts[ $type ] ) ) {
libs/factory/core/includes/updates/class-factory-upgrader.php CHANGED
@@ -1,10 +1,10 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_421\Updates;
4
 
5
  use Exception;
6
  use stdClass;
7
- use Wbcr_Factory421_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_109\Updates\Freemius_Repository',
32
- * 'freemius' => '\WBCR\Factory_421\Updates\Wordpress_Repository'
33
  * ]
34
  */
35
  public static $repositories = [];
@@ -42,7 +42,7 @@ class Upgrader {
42
  protected $type = 'default';
43
 
44
  /**
45
- * @var Wbcr_Factory421_Plugin
46
  */
47
  protected $plugin;
48
 
@@ -90,13 +90,13 @@ class Upgrader {
90
  *
91
  * @since 4.1.1
92
  *
93
- * @param Wbcr_Factory421_Plugin $plugin
94
  * @param $args
95
  * @param bool $is_premium
96
  *
97
  * @throws Exception
98
  */
99
- public function __construct( Wbcr_Factory421_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_421\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_421\Updates\Repository interface!" );
291
  }
292
 
293
  return new self::$repositories[ $repository_name ]( $this->plugin );
1
  <?php
2
 
3
+ namespace WBCR\Factory_422\Updates;
4
 
5
  use Exception;
6
  use stdClass;
7
+ use Wbcr_Factory422_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_110\Updates\Freemius_Repository',
32
+ * 'freemius' => '\WBCR\Factory_422\Updates\Wordpress_Repository'
33
  * ]
34
  */
35
  public static $repositories = [];
42
  protected $type = 'default';
43
 
44
  /**
45
+ * @var Wbcr_Factory422_Plugin
46
  */
47
  protected $plugin;
48
 
90
  *
91
  * @since 4.1.1
92
  *
93
+ * @param Wbcr_Factory422_Plugin $plugin
94
  * @param $args
95
  * @param bool $is_premium
96
  *
97
  * @throws Exception
98
  */
99
+ public function __construct( Wbcr_Factory422_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_422\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_422\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_421\Updates;
4
 
5
  // Exit if accessed directly
6
- use Wbcr_Factory421_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
@@ -23,17 +23,17 @@ abstract class Repository {
23
  protected $initialized = false;
24
 
25
  /**
26
- * @var Wbcr_Factory421_Plugin
27
  */
28
  protected $plugin;
29
 
30
  /**
31
  * Repository constructor.
32
  *
33
- * @param Wbcr_Factory421_Plugin $plugin
34
  * @param bool $is_premium
35
  */
36
- abstract public function __construct( Wbcr_Factory421_Plugin $plugin );
37
 
38
  /**
39
  * @return void
1
  <?php
2
 
3
+ namespace WBCR\Factory_422\Updates;
4
 
5
  // Exit if accessed directly
6
+ use Wbcr_Factory422_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
23
  protected $initialized = false;
24
 
25
  /**
26
+ * @var Wbcr_Factory422_Plugin
27
  */
28
  protected $plugin;
29
 
30
  /**
31
  * Repository constructor.
32
  *
33
+ * @param Wbcr_Factory422_Plugin $plugin
34
  * @param bool $is_premium
35
  */
36
+ abstract public function __construct( Wbcr_Factory422_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_421\Updates;
4
 
5
  // Exit if accessed directly
6
- use Wbcr_Factory421_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_Factory421_Plugin $plugin
24
  * @param bool $is_premium
25
  */
26
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
27
  $this->plugin = $plugin;
28
  }
29
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_422\Updates;
4
 
5
  // Exit if accessed directly
6
+ use Wbcr_Factory422_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
20
  /**
21
  * Wordpress constructor.
22
  *
23
+ * @param Wbcr_Factory422_Plugin $plugin
24
  * @param bool $is_premium
25
  */
26
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
27
  $this->plugin = $plugin;
28
  }
29
 
libs/factory/core/langs/{wbcr_factory_421-ru_RU.mo → wbcr_factory_422-ru_RU.mo} RENAMED
File without changes
libs/factory/core/langs/{wbcr_factory_421-ru_RU.po → wbcr_factory_422-ru_RU.po} RENAMED
File without changes
libs/factory/forms/boot.php CHANGED
@@ -22,174 +22,174 @@ if ( ! is_admin() ) {
22
 
23
  // checks if the module is already loaded in order to
24
  // prevent loading the same version of the module twice.
25
- if ( defined( 'FACTORY_FORMS_419_LOADED' ) ) {
26
  return;
27
  }
28
 
29
- define( 'FACTORY_FORMS_419_LOADED', true );
30
 
31
- define( 'FACTORY_FORMS_419_VERSION', '4.1.9' );
32
 
33
  // absolute path and URL to the files and resources of the module.
34
- define( 'FACTORY_FORMS_419_DIR', dirname( __FILE__ ) );
35
- define( 'FACTORY_FORMS_419_URL', plugins_url( null, __FILE__ ) );
36
 
37
  #comp merge
38
- require_once( FACTORY_FORMS_419_DIR . '/includes/providers/value-provider.interface.php' );
39
- require_once( FACTORY_FORMS_419_DIR . '/includes/providers/meta-value-provider.class.php' );
40
- require_once( FACTORY_FORMS_419_DIR . '/includes/providers/options-value-provider.class.php' );
41
 
42
- require_once( FACTORY_FORMS_419_DIR . '/includes/form.class.php' );
43
  #endcomp
44
 
45
- load_plugin_textdomain( 'wbcr_factory_forms_419', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
46
 
47
  /**
48
  * We add this code into the hook because all these controls quite heavy. So in order to get better perfomance,
49
  * we load the form controls only on pages where the forms are created.
50
  *
51
  * @since 3.0.7
52
- * @see the 'wbcr_factory_forms_419_register_controls' hook
53
  *
54
  */
55
- if ( ! function_exists( 'wbcr_factory_forms_419_register_default_controls' ) ) {
56
 
57
  /**
58
- * @param Wbcr_Factory421_Plugin $plugin
59
  *
60
  * @throws Exception
61
  */
62
- function wbcr_factory_forms_419_register_default_controls( Wbcr_Factory421_Plugin $plugin ) {
63
 
64
  if ( $plugin && ! isset( $plugin->forms ) ) {
65
  throw new Exception( "The module Factory Forms is not loaded for the plugin '{$plugin->getPluginName()}'." );
66
  }
67
 
68
- require_once( FACTORY_FORMS_419_DIR . '/includes/html-builder.class.php' );
69
- require_once( FACTORY_FORMS_419_DIR . '/includes/form-element.class.php' );
70
- require_once( FACTORY_FORMS_419_DIR . '/includes/control.class.php' );
71
- require_once( FACTORY_FORMS_419_DIR . '/includes/complex-control.class.php' );
72
- require_once( FACTORY_FORMS_419_DIR . '/includes/holder.class.php' );
73
- require_once( FACTORY_FORMS_419_DIR . '/includes/control-holder.class.php' );
74
- require_once( FACTORY_FORMS_419_DIR . '/includes/custom-element.class.php' );
75
- require_once( FACTORY_FORMS_419_DIR . '/includes/form-layout.class.php' );
76
 
77
  // registration of controls
78
  $plugin->forms->registerControls( [
79
  [
80
  'type' => 'checkbox',
81
- 'class' => 'Wbcr_FactoryForms419_CheckboxControl',
82
- 'include' => FACTORY_FORMS_419_DIR . '/controls/checkbox.php'
83
  ],
84
  [
85
  'type' => 'list',
86
- 'class' => 'Wbcr_FactoryForms419_ListControl',
87
- 'include' => FACTORY_FORMS_419_DIR . '/controls/list.php'
88
  ],
89
  [
90
  'type' => 'dropdown',
91
- 'class' => 'Wbcr_FactoryForms419_DropdownControl',
92
- 'include' => FACTORY_FORMS_419_DIR . '/controls/dropdown.php'
93
  ],
94
  [
95
  'type' => 'dropdown-and-colors',
96
- 'class' => 'Wbcr_FactoryForms419_DropdownAndColorsControl',
97
- 'include' => FACTORY_FORMS_419_DIR . '/controls/dropdown-and-colors.php'
98
  ],
99
  [
100
  'type' => 'hidden',
101
- 'class' => 'Wbcr_FactoryForms419_HiddenControl',
102
- 'include' => FACTORY_FORMS_419_DIR . '/controls/hidden.php'
103
  ],
104
  [
105
  'type' => 'hidden',
106
- 'class' => 'Wbcr_FactoryForms419_HiddenControl',
107
- 'include' => FACTORY_FORMS_419_DIR . '/controls/hidden.php'
108
  ],
109
  [
110
  'type' => 'radio',
111
- 'class' => 'Wbcr_FactoryForms419_RadioControl',
112
- 'include' => FACTORY_FORMS_419_DIR . '/controls/radio.php'
113
  ],
114
  [
115
  'type' => 'radio-colors',
116
- 'class' => 'Wbcr_FactoryForms419_RadioColorsControl',
117
- 'include' => FACTORY_FORMS_419_DIR . '/controls/radio-colors.php'
118
  ],
119
  [
120
  'type' => 'textarea',
121
- 'class' => 'Wbcr_FactoryForms419_TextareaControl',
122
- 'include' => FACTORY_FORMS_419_DIR . '/controls/textarea.php'
123
  ],
124
  [
125
  'type' => 'textbox',
126
- 'class' => 'Wbcr_FactoryForms419_TextboxControl',
127
- 'include' => FACTORY_FORMS_419_DIR . '/controls/textbox.php'
128
  ],
129
  [
130
  'type' => 'multiple-textbox',
131
- 'class' => 'Wbcr_FactoryForms419_MultipleTextboxControl',
132
- 'include' => FACTORY_FORMS_419_DIR . '/controls/multiple-textbox.php'
133
  ],
134
  [
135
  'type' => 'datetimepicker-range',
136
- 'class' => 'Wbcr_FactoryForms419_DatepickerRangeControl',
137
- 'include' => FACTORY_FORMS_419_DIR . '/controls/datepicker-range.php'
138
  ],
139
  [
140
  'type' => 'url',
141
- 'class' => 'Wbcr_FactoryForms419_UrlControl',
142
- 'include' => FACTORY_FORMS_419_DIR . '/controls/url.php'
143
  ],
144
  [
145
  'type' => 'wp-editor',
146
- 'class' => 'Wbcr_FactoryForms419_WpEditorControl',
147
- 'include' => FACTORY_FORMS_419_DIR . '/controls/wp-editor.php'
148
  ],
149
  [
150
  'type' => 'color',
151
- 'class' => 'Wbcr_FactoryForms419_ColorControl',
152
- 'include' => FACTORY_FORMS_419_DIR . '/controls/color.php'
153
  ],
154
  [
155
  'type' => 'color-and-opacity',
156
- 'class' => 'Wbcr_FactoryForms419_ColorAndOpacityControl',
157
- 'include' => FACTORY_FORMS_419_DIR . '/controls/color-and-opacity.php'
158
  ],
159
  [
160
  'type' => 'gradient',
161
- 'class' => 'Wbcr_FactoryForms419_GradientControl',
162
- 'include' => FACTORY_FORMS_419_DIR . '/controls/gradient.php'
163
  ],
164
  [
165
  'type' => 'font',
166
- 'class' => 'Wbcr_FactoryForms419_FontControl',
167
- 'include' => FACTORY_FORMS_419_DIR . '/controls/font.php'
168
  ],
169
  [
170
  'type' => 'google-font',
171
- 'class' => 'Wbcr_FactoryForms419_GoogleFontControl',
172
- 'include' => FACTORY_FORMS_419_DIR . '/controls/google-font.php'
173
  ],
174
  [
175
  'type' => 'pattern',
176
- 'class' => 'Wbcr_FactoryForms419_PatternControl',
177
- 'include' => FACTORY_FORMS_419_DIR . '/controls/pattern.php'
178
  ],
179
  [
180
  'type' => 'integer',
181
- 'class' => 'Wbcr_FactoryForms419_IntegerControl',
182
- 'include' => FACTORY_FORMS_419_DIR . '/controls/integer.php'
183
  ],
184
  [
185
  'type' => 'control-group',
186
- 'class' => 'Wbcr_FactoryForms419_ControlGroupHolder',
187
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/control-group.php'
188
  ],
189
  [
190
  'type' => 'paddings-editor',
191
- 'class' => 'Wbcr_FactoryForms419_PaddingsEditorControl',
192
- 'include' => FACTORY_FORMS_419_DIR . '/controls/paddings-editor.php'
193
  ],
194
  ] );
195
 
@@ -197,53 +197,53 @@ if ( ! function_exists( 'wbcr_factory_forms_419_register_default_controls' ) ) {
197
  $plugin->forms->registerHolders( [
198
  [
199
  'type' => 'tab',
200
- 'class' => 'Wbcr_FactoryForms419_TabHolder',
201
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/tab.php'
202
  ],
203
  [
204
  'type' => 'tab-item',
205
- 'class' => 'Wbcr_FactoryForms419_TabItemHolder',
206
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/tab-item.php'
207
  ],
208
  [
209
  'type' => 'accordion',
210
- 'class' => 'Wbcr_FactoryForms419_AccordionHolder',
211
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/accordion.php'
212
  ],
213
  [
214
  'type' => 'accordion-item',
215
- 'class' => 'Wbcr_FactoryForms419_AccordionItemHolder',
216
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/accordion-item.php'
217
  ],
218
  [
219
  'type' => 'control-group',
220
- 'class' => 'Wbcr_FactoryForms419_ControlGroupHolder',
221
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/control-group.php'
222
  ],
223
  [
224
  'type' => 'control-group-item',
225
- 'class' => 'Wbcr_FactoryForms419_ControlGroupItem',
226
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/control-group-item.php'
227
  ],
228
  [
229
  'type' => 'form-group',
230
- 'class' => 'Wbcr_FactoryForms419_FormGroupHolder',
231
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/form-group.php'
232
  ],
233
  [
234
  'type' => 'more-link',
235
- 'class' => 'Wbcr_FactoryForms419_MoreLinkHolder',
236
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/more-link.php'
237
  ],
238
  [
239
  'type' => 'div',
240
- 'class' => 'Wbcr_FactoryForms419_DivHolder',
241
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/div.php'
242
  ],
243
  [
244
  'type' => 'columns',
245
- 'class' => 'Wbcr_FactoryForms419_ColumnsHolder',
246
- 'include' => FACTORY_FORMS_419_DIR . '/controls/holders/columns.php'
247
  ]
248
  ] );
249
 
@@ -251,23 +251,23 @@ if ( ! function_exists( 'wbcr_factory_forms_419_register_default_controls' ) ) {
251
  $plugin->forms->registerCustomElements( [
252
  [
253
  'type' => 'html',
254
- 'class' => 'Wbcr_FactoryForms419_Html',
255
- 'include' => FACTORY_FORMS_419_DIR . '/controls/customs/html.php',
256
  ],
257
  [
258
  'type' => 'separator',
259
- 'class' => 'Wbcr_FactoryForms419_Separator',
260
- 'include' => FACTORY_FORMS_419_DIR . '/controls/customs/separator.php',
261
  ],
262
  ] );
263
 
264
  // registration of form layouts
265
  $plugin->forms->registerFormLayout( [
266
  'name' => 'bootstrap-3',
267
- 'class' => 'Wbcr_FactoryForms419_Bootstrap3FormLayout',
268
- 'include' => FACTORY_FORMS_419_DIR . '/layouts/bootstrap-3/bootstrap-3.php'
269
  ] );
270
  }
271
 
272
- add_action( 'wbcr_factory_forms_419_register_controls', 'wbcr_factory_forms_419_register_default_controls' );
273
  }
22
 
23
  // checks if the module is already loaded in order to
24
  // prevent loading the same version of the module twice.
25
+ if ( defined( 'FACTORY_FORMS_420_LOADED' ) ) {
26
  return;
27
  }
28
 
29
+ define( 'FACTORY_FORMS_420_LOADED', true );
30
 
31
+ define( 'FACTORY_FORMS_420_VERSION', '4.2.0' );
32
 
33
  // absolute path and URL to the files and resources of the module.
34
+ define( 'FACTORY_FORMS_420_DIR', dirname( __FILE__ ) );
35
+ define( 'FACTORY_FORMS_420_URL', plugins_url( null, __FILE__ ) );
36
 
37
  #comp merge
38
+ require_once( FACTORY_FORMS_420_DIR . '/includes/providers/value-provider.interface.php' );
39
+ require_once( FACTORY_FORMS_420_DIR . '/includes/providers/meta-value-provider.class.php' );
40
+ require_once( FACTORY_FORMS_420_DIR . '/includes/providers/options-value-provider.class.php' );
41
 
42
+ require_once( FACTORY_FORMS_420_DIR . '/includes/form.class.php' );
43
  #endcomp
44
 
45
+ load_plugin_textdomain( 'wbcr_factory_forms_420', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
46
 
47
  /**
48
  * We add this code into the hook because all these controls quite heavy. So in order to get better perfomance,
49
  * we load the form controls only on pages where the forms are created.
50
  *
51
  * @since 3.0.7
52
+ * @see the 'wbcr_factory_forms_420_register_controls' hook
53
  *
54
  */
55
+ if ( ! function_exists( 'wbcr_factory_forms_420_register_default_controls' ) ) {
56
 
57
  /**
58
+ * @param Wbcr_Factory422_Plugin $plugin
59
  *
60
  * @throws Exception
61
  */
62
+ function wbcr_factory_forms_420_register_default_controls( Wbcr_Factory422_Plugin $plugin ) {
63
 
64
  if ( $plugin && ! isset( $plugin->forms ) ) {
65
  throw new Exception( "The module Factory Forms is not loaded for the plugin '{$plugin->getPluginName()}'." );
66
  }
67
 
68
+ require_once( FACTORY_FORMS_420_DIR . '/includes/html-builder.class.php' );
69
+ require_once( FACTORY_FORMS_420_DIR . '/includes/form-element.class.php' );
70
+ require_once( FACTORY_FORMS_420_DIR . '/includes/control.class.php' );
71
+ require_once( FACTORY_FORMS_420_DIR . '/includes/complex-control.class.php' );
72
+ require_once( FACTORY_FORMS_420_DIR . '/includes/holder.class.php' );
73
+ require_once( FACTORY_FORMS_420_DIR . '/includes/control-holder.class.php' );
74
+ require_once( FACTORY_FORMS_420_DIR . '/includes/custom-element.class.php' );
75
+ require_once( FACTORY_FORMS_420_DIR . '/includes/form-layout.class.php' );
76
 
77
  // registration of controls
78
  $plugin->forms->registerControls( [
79
  [
80
  'type' => 'checkbox',
81
+ 'class' => 'Wbcr_FactoryForms420_CheckboxControl',
82
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/checkbox.php'
83
  ],
84
  [
85
  'type' => 'list',
86
+ 'class' => 'Wbcr_FactoryForms420_ListControl',
87
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/list.php'
88
  ],
89
  [
90
  'type' => 'dropdown',
91
+ 'class' => 'Wbcr_FactoryForms420_DropdownControl',
92
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/dropdown.php'
93
  ],
94
  [
95
  'type' => 'dropdown-and-colors',
96
+ 'class' => 'Wbcr_FactoryForms420_DropdownAndColorsControl',
97
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/dropdown-and-colors.php'
98
  ],
99
  [
100
  'type' => 'hidden',
101
+ 'class' => 'Wbcr_FactoryForms420_HiddenControl',
102
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/hidden.php'
103
  ],
104
  [
105
  'type' => 'hidden',
106
+ 'class' => 'Wbcr_FactoryForms420_HiddenControl',
107
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/hidden.php'
108
  ],
109
  [
110
  'type' => 'radio',
111
+ 'class' => 'Wbcr_FactoryForms420_RadioControl',
112
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/radio.php'
113
  ],
114
  [
115
  'type' => 'radio-colors',
116
+ 'class' => 'Wbcr_FactoryForms420_RadioColorsControl',
117
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/radio-colors.php'
118
  ],
119
  [
120
  'type' => 'textarea',
121
+ 'class' => 'Wbcr_FactoryForms420_TextareaControl',
122
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/textarea.php'
123
  ],
124
  [
125
  'type' => 'textbox',
126
+ 'class' => 'Wbcr_FactoryForms420_TextboxControl',
127
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/textbox.php'
128
  ],
129
  [
130
  'type' => 'multiple-textbox',
131
+ 'class' => 'Wbcr_FactoryForms420_MultipleTextboxControl',
132
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/multiple-textbox.php'
133
  ],
134
  [
135
  'type' => 'datetimepicker-range',
136
+ 'class' => 'Wbcr_FactoryForms420_DatepickerRangeControl',
137
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/datepicker-range.php'
138
  ],
139
  [
140
  'type' => 'url',
141
+ 'class' => 'Wbcr_FactoryForms420_UrlControl',
142
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/url.php'
143
  ],
144
  [
145
  'type' => 'wp-editor',
146
+ 'class' => 'Wbcr_FactoryForms420_WpEditorControl',
147
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/wp-editor.php'
148
  ],
149
  [
150
  'type' => 'color',
151
+ 'class' => 'Wbcr_FactoryForms420_ColorControl',
152
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/color.php'
153
  ],
154
  [
155
  'type' => 'color-and-opacity',
156
+ 'class' => 'Wbcr_FactoryForms420_ColorAndOpacityControl',
157
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/color-and-opacity.php'
158
  ],
159
  [
160
  'type' => 'gradient',
161
+ 'class' => 'Wbcr_FactoryForms420_GradientControl',
162
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/gradient.php'
163
  ],
164
  [
165
  'type' => 'font',
166
+ 'class' => 'Wbcr_FactoryForms420_FontControl',
167
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/font.php'
168
  ],
169
  [
170
  'type' => 'google-font',
171
+ 'class' => 'Wbcr_FactoryForms420_GoogleFontControl',
172
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/google-font.php'
173
  ],
174
  [
175
  'type' => 'pattern',
176
+ 'class' => 'Wbcr_FactoryForms420_PatternControl',
177
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/pattern.php'
178
  ],
179
  [
180
  'type' => 'integer',
181
+ 'class' => 'Wbcr_FactoryForms420_IntegerControl',
182
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/integer.php'
183
  ],
184
  [
185
  'type' => 'control-group',
186
+ 'class' => 'Wbcr_FactoryForms420_ControlGroupHolder',
187
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/control-group.php'
188
  ],
189
  [
190
  'type' => 'paddings-editor',
191
+ 'class' => 'Wbcr_FactoryForms420_PaddingsEditorControl',
192
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/paddings-editor.php'
193
  ],
194
  ] );
195
 
197
  $plugin->forms->registerHolders( [
198
  [
199
  'type' => 'tab',
200
+ 'class' => 'Wbcr_FactoryForms420_TabHolder',
201
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/tab.php'
202
  ],
203
  [
204
  'type' => 'tab-item',
205
+ 'class' => 'Wbcr_FactoryForms420_TabItemHolder',
206
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/tab-item.php'
207
  ],
208
  [
209
  'type' => 'accordion',
210
+ 'class' => 'Wbcr_FactoryForms420_AccordionHolder',
211
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/accordion.php'
212
  ],
213
  [
214
  'type' => 'accordion-item',
215
+ 'class' => 'Wbcr_FactoryForms420_AccordionItemHolder',
216
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/accordion-item.php'
217
  ],
218
  [
219
  'type' => 'control-group',
220
+ 'class' => 'Wbcr_FactoryForms420_ControlGroupHolder',
221
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/control-group.php'
222
  ],
223
  [
224
  'type' => 'control-group-item',
225
+ 'class' => 'Wbcr_FactoryForms420_ControlGroupItem',
226
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/control-group-item.php'
227
  ],
228
  [
229
  'type' => 'form-group',
230
+ 'class' => 'Wbcr_FactoryForms420_FormGroupHolder',
231
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/form-group.php'
232
  ],
233
  [
234
  'type' => 'more-link',
235
+ 'class' => 'Wbcr_FactoryForms420_MoreLinkHolder',
236
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/more-link.php'
237
  ],
238
  [
239
  'type' => 'div',
240
+ 'class' => 'Wbcr_FactoryForms420_DivHolder',
241
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/div.php'
242
  ],
243
  [
244
  'type' => 'columns',
245
+ 'class' => 'Wbcr_FactoryForms420_ColumnsHolder',
246
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/holders/columns.php'
247
  ]
248
  ] );
249
 
251
  $plugin->forms->registerCustomElements( [
252
  [
253
  'type' => 'html',
254
+ 'class' => 'Wbcr_FactoryForms420_Html',
255
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/customs/html.php',
256
  ],
257
  [
258
  'type' => 'separator',
259
+ 'class' => 'Wbcr_FactoryForms420_Separator',
260
+ 'include' => FACTORY_FORMS_420_DIR . '/controls/customs/separator.php',
261
  ],
262
  ] );
263
 
264
  // registration of form layouts
265
  $plugin->forms->registerFormLayout( [
266
  'name' => 'bootstrap-3',
267
+ 'class' => 'Wbcr_FactoryForms420_Bootstrap3FormLayout',
268
+ 'include' => FACTORY_FORMS_420_DIR . '/layouts/bootstrap-3/bootstrap-3.php'
269
  ] );
270
  }
271
 
272
+ add_action( 'wbcr_factory_forms_420_register_controls', 'wbcr_factory_forms_420_register_default_controls' );
273
  }
libs/factory/forms/controls/checkbox.php CHANGED
@@ -20,9 +20,9 @@
20
  exit;
21
  }
22
 
23
- if( !class_exists('Wbcr_FactoryForms419_CheckboxControl') ) {
24
 
25
- class Wbcr_FactoryForms419_CheckboxControl extends Wbcr_FactoryForms419_Control {
26
 
27
  public $type = 'checkbox';
28
 
@@ -130,10 +130,10 @@
130
  <div <?php $this->attrs() ?>>
131
  <button type="button" class="btn btn-default btn-small btn-sm factory-on <?php if( $value ) {
132
  echo 'active';
133
- } ?>"><?php _e('On', 'wbcr_factory_forms_419') ?></button>
134
  <button type="button" class="btn btn-default btn-small btn-sm factory-off <?php if( !$value ) {
135
  echo 'active';
136
- } ?>" data-value="0"><?php _e('Off', 'wbcr_factory_forms_419') ?></button>
137
  <input type="checkbox" style="display: none" id="<?php echo $name_on_form ?>" class="factory-result" name="<?php echo $name_on_form ?>" value="<?= $value ?>" <?php if( $value ) {
138
  echo 'checked="checked"';
139
  } ?>" />
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms420_CheckboxControl') ) {
24
 
25
+ class Wbcr_FactoryForms420_CheckboxControl extends Wbcr_FactoryForms420_Control {
26
 
27
  public $type = 'checkbox';
28
 
130
  <div <?php $this->attrs() ?>>
131
  <button type="button" class="btn btn-default btn-small btn-sm factory-on <?php if( $value ) {
132
  echo 'active';
133
+ } ?>"><?php _e('On', 'wbcr_factory_forms_420') ?></button>
134
  <button type="button" class="btn btn-default btn-small btn-sm factory-off <?php if( !$value ) {
135
  echo 'active';
136
+ } ?>" data-value="0"><?php _e('Off', 'wbcr_factory_forms_420') ?></button>
137
  <input type="checkbox" style="display: none" id="<?php echo $name_on_form ?>" class="factory-result" name="<?php echo $name_on_form ?>" value="<?= $value ?>" <?php if( $value ) {
138
  echo 'checked="checked"';
139
  } ?>" />
libs/factory/forms/controls/color-and-opacity.php CHANGED
@@ -20,10 +20,10 @@
20
  exit;
21
  }
22
 
23
- if( !class_exists('Wbcr_FactoryForms419_ColorAndOpacityControl') ) {
24
  }
25
 
26
- class Wbcr_FactoryForms419_ColorAndOpacityControl extends Wbcr_FactoryForms419_ComplexControl {
27
 
28
  public $type = 'color-and-opacity';
29
 
@@ -57,8 +57,8 @@
57
  'way' => 'slider'
58
  ));
59
 
60
- $this->color = new Wbcr_FactoryForms419_ColorControl($options['color'], $form, $provider);
61
- $this->opacity = new Wbcr_FactoryForms419_IntegerControl($options['opacity'], $form, $provider);
62
 
63
  $this->innerControls = array($this->color, $this->opacity);
64
  }
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms420_ColorAndOpacityControl') ) {
24
  }
25
 
26
+ class Wbcr_FactoryForms420_ColorAndOpacityControl extends Wbcr_FactoryForms420_ComplexControl {
27
 
28
  public $type = 'color-and-opacity';
29
 
57
  'way' => 'slider'
58
  ));
59
 
60
+ $this->color = new Wbcr_FactoryForms420_ColorControl($options['color'], $form, $provider);
61
+ $this->opacity = new Wbcr_FactoryForms420_IntegerControl($options['opacity'], $form, $provider);
62
 
63
  $this->innerControls = array($this->color, $this->opacity);
64
  }
libs/factory/forms/controls/color.php CHANGED
@@ -20,9 +20,9 @@
20
  exit;
21
  }
22
 
23
- if( !class_exists('Wbcr_FactoryForms419_ColorControl') ) {
24
 
25
- class Wbcr_FactoryForms419_ColorControl extends Wbcr_FactoryForms419_Control {
26
 
27
  public $type = 'color';
28
 
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms420_ColorControl') ) {
24
 
25
+ class Wbcr_FactoryForms420_ColorControl extends Wbcr_FactoryForms420_Control {
26
 
27
  public $type = 'color';
28
 
libs/factory/forms/controls/customs/html.php CHANGED
@@ -14,9 +14,9 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_Html') ) {
18
 
19
- class Wbcr_FactoryForms419_Html extends Wbcr_FactoryForms419_CustomElement {
20
 
21
  public $type = 'html';
22
 
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_Html') ) {
18
 
19
+ class Wbcr_FactoryForms420_Html extends Wbcr_FactoryForms420_CustomElement {
20
 
21
  public $type = 'html';
22
 
libs/factory/forms/controls/customs/separator.php CHANGED
@@ -14,8 +14,8 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_Separator') ) {
18
- class Wbcr_FactoryForms419_Separator extends Wbcr_FactoryForms419_CustomElement {
19
 
20
  public $type = 'separator';
21
 
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_Separator') ) {
18
+ class Wbcr_FactoryForms420_Separator extends Wbcr_FactoryForms420_CustomElement {
19
 
20
  public $type = 'separator';
21
 
libs/factory/forms/controls/datepicker-range.php CHANGED
@@ -29,9 +29,9 @@
29
  exit;
30
  }
31
 
32
- if( !class_exists('Wbcr_FactoryForms419_DatepickerRangeControl') ) {
33
 
34
- class Wbcr_FactoryForms419_DatepickerRangeControl extends Wbcr_FactoryForms419_ComplexControl {
35
 
36
  public $type = 'datetimepicker-range';
37
 
@@ -65,8 +65,8 @@
65
  'default' => date('Y/m/d H:i', strtotime("+1 month"))
66
  ), $options['range_2']);
67
 
68
- $this->range_1 = new Wbcr_FactoryForms419_TextboxControl($options['range_1'], $form, $provider);
69
- $this->range_2 = new Wbcr_FactoryForms419_TextboxControl($options['range_2'], $form, $provider);
70
  $this->inner_controls = array($this->range_1, $this->range_2);
71
 
72
  foreach($this->inner_controls as $key => $control) {
29
  exit;
30
  }
31
 
32
+ if( !class_exists('Wbcr_FactoryForms420_DatepickerRangeControl') ) {
33
 
34
+ class Wbcr_FactoryForms420_DatepickerRangeControl extends Wbcr_FactoryForms420_ComplexControl {
35
 
36
  public $type = 'datetimepicker-range';
37
 
65
  'default' => date('Y/m/d H:i', strtotime("+1 month"))
66
  ), $options['range_2']);
67
 
68
+ $this->range_1 = new Wbcr_FactoryForms420_TextboxControl($options['range_1'], $form, $provider);
69
+ $this->range_2 = new Wbcr_FactoryForms420_TextboxControl($options['range_2'], $form, $provider);
70
  $this->inner_controls = array($this->range_1, $this->range_2);
71
 
72
  foreach($this->inner_controls as $key => $control) {
libs/factory/forms/controls/dropdown-and-colors.php CHANGED
@@ -5,14 +5,14 @@
5
  *
6
  * Main options:
7
  * name => a name of the control
8
- * // see FactoryForms419_DropdownControl
9
  * 'dropdown' => array(
10
  * // a callback to return items or an array of items to select
11
  * 'data' => OPanda_ThemeManager::getThemes(OPanda_Items::getCurrentItemName(), 'dropdown'),
12
  * 'default' => 'default',
13
  * 'value' => 'value' // a value to show in the control
14
  * ),
15
- * // see FactoryForms419_RadioColorsControl
16
  * 'colors' => array(
17
  * // a callback to return items or an array of items to select
18
  * 'data' => array(
@@ -37,9 +37,9 @@
37
  exit;
38
  }
39
 
40
- if( !class_exists('Wbcr_FactoryForms419_DropdownAndColorsControl') ) {
41
 
42
- class Wbcr_FactoryForms419_DropdownAndColorsControl extends Wbcr_FactoryForms419_ComplexControl {
43
 
44
  public $type = 'dropdown-and-colors';
45
 
@@ -69,8 +69,8 @@
69
  'name' => $this->options['name'] . '__colors',
70
  ));
71
 
72
- $this->dropdown = new Wbcr_FactoryForms419_DropdownControl($options['dropdown'], $form, $provider);
73
- $this->colors = new Wbcr_FactoryForms419_RadioColorsControl($options['colors'], $form, $provider);
74
  $this->inner_controls = array($this->dropdown, $this->colors);
75
 
76
  $colors = $this->colors->getOption('data');
5
  *
6
  * Main options:
7
  * name => a name of the control
8
+ * // see FactoryForms420_DropdownControl
9
  * 'dropdown' => array(
10
  * // a callback to return items or an array of items to select
11
  * 'data' => OPanda_ThemeManager::getThemes(OPanda_Items::getCurrentItemName(), 'dropdown'),
12
  * 'default' => 'default',
13
  * 'value' => 'value' // a value to show in the control
14
  * ),
15
+ * // see FactoryForms420_RadioColorsControl
16
  * 'colors' => array(
17
  * // a callback to return items or an array of items to select
18
  * 'data' => array(
37
  exit;
38
  }
39
 
40
+ if( !class_exists('Wbcr_FactoryForms420_DropdownAndColorsControl') ) {
41
 
42
+ class Wbcr_FactoryForms420_DropdownAndColorsControl extends Wbcr_FactoryForms420_ComplexControl {
43
 
44
  public $type = 'dropdown-and-colors';
45
 
69
  'name' => $this->options['name'] . '__colors',
70
  ));
71
 
72
+ $this->dropdown = new Wbcr_FactoryForms420_DropdownControl($options['dropdown'], $form, $provider);
73
+ $this->colors = new Wbcr_FactoryForms420_RadioColorsControl($options['colors'], $form, $provider);
74
  $this->inner_controls = array($this->dropdown, $this->colors);
75
 
76
  $colors = $this->colors->getOption('data');
libs/factory/forms/controls/dropdown.php CHANGED
@@ -21,9 +21,9 @@
21
  exit;
22
  }
23
 
24
- if ( ! class_exists( 'Wbcr_FactoryForms419_DropdownControl' ) ) {
25
 
26
- class Wbcr_FactoryForms419_DropdownControl extends Wbcr_FactoryForms419_Control {
27
 
28
  public $type = 'dropdown';
29
 
@@ -123,7 +123,7 @@
123
  'url': '<?php echo $data['url'] ?>',
124
  'data': <?php echo json_encode( $data['data'] ) ?>,
125
  'selected': '<?php echo $value ?>',
126
- 'empty_list': '<?php echo $this->getOption( 'empty', __( 'The list is empty.', 'wbcr_factory_forms_419' ) ) ?>'
127
  };
128
  </script>
129
  <?php
@@ -268,7 +268,7 @@
268
  }
269
 
270
  $is_empty = $this->isAjax() || empty( $items );
271
- $empty_list = $this->getOption( 'empty', __( '- empty -', 'wbcr_factory_forms_419' ) );
272
 
273
  ?>
274
  <select <?php $this->attrs() ?>>
@@ -349,7 +349,7 @@
349
  }
350
 
351
  $value = isset( $item['value'] ) ? $item['value'] : '';
352
- $title = isset( $item['title'] ) ? $item['title'] : __( '- empty -', 'wbcr_factory_forms_419' );
353
 
354
  $data = isset( $item['data'] ) ? $item['data'] : null;
355
  } else {
21
  exit;
22
  }
23
 
24
+ if ( ! class_exists( 'Wbcr_FactoryForms420_DropdownControl' ) ) {
25
 
26
+ class Wbcr_FactoryForms420_DropdownControl extends Wbcr_FactoryForms420_Control {
27
 
28
  public $type = 'dropdown';
29
 
123
  'url': '<?php echo $data['url'] ?>',
124
  'data': <?php echo json_encode( $data['data'] ) ?>,
125
  'selected': '<?php echo $value ?>',
126
+ 'empty_list': '<?php echo $this->getOption( 'empty', __( 'The list is empty.', 'wbcr_factory_forms_420' ) ) ?>'
127
  };
128
  </script>
129
  <?php
268
  }
269
 
270
  $is_empty = $this->isAjax() || empty( $items );
271
+ $empty_list = $this->getOption( 'empty', __( '- empty -', 'wbcr_factory_forms_420' ) );
272
 
273
  ?>
274
  <select <?php $this->attrs() ?>>
349
  }
350
 
351
  $value = isset( $item['value'] ) ? $item['value'] : '';
352
+ $title = isset( $item['title'] ) ? $item['title'] : __( '- empty -', 'wbcr_factory_forms_420' );
353
 
354
  $data = isset( $item['data'] ) ? $item['data'] : null;
355
  } else {
libs/factory/forms/controls/font.php CHANGED
@@ -20,9 +20,9 @@
20
  exit;
21
  }
22
 
23
- if( !class_exists('Wbcr_FactoryForms419_FontControl') ) {
24
 
25
- class Wbcr_FactoryForms419_FontControl extends Wbcr_FactoryForms419_ComplexControl {
26
 
27
  public $type = 'font';
28
 
@@ -54,9 +54,9 @@
54
  'pickerTarget' => '.factory-control-' . $this->options['name'] . ' .factory-picker-target'
55
  );
56
 
57
- $this->size = new Wbcr_FactoryForms419_IntegerControl($option_font_size, $form, $provider);
58
- $this->family = new Wbcr_FactoryForms419_DropdownControl($option_font_family, $form, $provider);
59
- $this->color = new Wbcr_FactoryForms419_ColorControl($optionFontColor, $form, $provider);
60
 
61
  $this->innerControls = array($this->family, $this->size, $this->color);
62
  }
@@ -66,8 +66,8 @@
66
 
67
  $fonts = $this->getDefaultFonts();
68
 
69
- $fonts = apply_filters('wbcr_factory_forms_419_fonts', $fonts);
70
- $fonts = apply_filters('wbcr_factory_forms_419_fonts-' . $this->options['name'], $fonts);
71
 
72
  return $fonts;
73
  }
@@ -77,10 +77,10 @@
77
 
78
  $fonts = array(
79
 
80
- array('inherit', __('(use default website font)', 'wbcr_factory_forms_419')),
81
  array(
82
  'group',
83
- __('Sans Serif:', 'wbcr_factory_forms_419'),
84
  array(
85
  array('Arial, "Helvetica Neue", Helvetica, sans-serif', 'Arial'),
86
  array('"Arial Black", "Arial Bold", Gadget, sans-serif', 'Arial Black'),
@@ -131,7 +131,7 @@
131
  ),
132
  array(
133
  'group',
134
- __('Serif:', 'wbcr_factory_forms_419'),
135
  array(
136
  array(
137
  'Baskerville, "Baskerville Old Face", "Hoefler Text", Garamond, "Times New Roman", serif',
@@ -187,7 +187,7 @@
187
  ),
188
  array(
189
  'group',
190
- __('Monospaced:', 'wbcr_factory_forms_419'),
191
  array(
192
  array('"Andale Mono", AndaleMono, monospace', 'Andale Mono'),
193
  array('Consolas, monaco, monospace', 'Consolas'),
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms420_FontControl') ) {
24
 
25
+ class Wbcr_FactoryForms420_FontControl extends Wbcr_FactoryForms420_ComplexControl {
26
 
27
  public $type = 'font';
28
 
54
  'pickerTarget' => '.factory-control-' . $this->options['name'] . ' .factory-picker-target'
55
  );
56
 
57
+ $this->size = new Wbcr_FactoryForms420_IntegerControl($option_font_size, $form, $provider);
58
+ $this->family = new Wbcr_FactoryForms420_DropdownControl($option_font_family, $form, $provider);
59
+ $this->color = new Wbcr_FactoryForms420_ColorControl($optionFontColor, $form, $provider);
60
 
61
  $this->innerControls = array($this->family, $this->size, $this->color);
62
  }
66
 
67
  $fonts = $this->getDefaultFonts();
68
 
69
+ $fonts = apply_filters('wbcr_factory_forms_420_fonts', $fonts);
70
+ $fonts = apply_filters('wbcr_factory_forms_420_fonts-' . $this->options['name'], $fonts);
71
 
72
  return $fonts;
73
  }
77
 
78
  $fonts = array(
79
 
80
+ array('inherit', __('(use default website font)', 'wbcr_factory_forms_420')),
81
  array(
82
  'group',
83
+ __('Sans Serif:', 'wbcr_factory_forms_420'),
84
  array(
85
  array('Arial, "Helvetica Neue", Helvetica, sans-serif', 'Arial'),
86
  array('"Arial Black", "Arial Bold", Gadget, sans-serif', 'Arial Black'),
131
  ),
132
  array(
133
  'group',
134
+ __('Serif:', 'wbcr_factory_forms_420'),
135
  array(
136
  array(
137
  'Baskerville, "Baskerville Old Face", "Hoefler Text", Garamond, "Times New Roman", serif',
187
  ),
188
  array(
189
  'group',
190
+ __('Monospaced:', 'wbcr_factory_forms_420'),
191
  array(
192
  array('"Andale Mono", AndaleMono, monospace', 'Andale Mono'),
193
  array('Consolas, monaco, monospace', 'Consolas'),
libs/factory/forms/controls/google-font.php CHANGED
@@ -15,7 +15,7 @@
15
  * @package core
16
  * @since 1.0.0
17
  */
18
- class Wbcr_FactoryForms419_GoogleFontControl extends Wbcr_FactoryForms419_FontControl {
19
 
20
  public $type = 'google-font';
21
  const APIKEY = 'AIzaSyB-3vazYv7Q-5QZA04bmSKFrWcw_VhC40w';
@@ -30,7 +30,7 @@
30
  'cssClass' => 'factory-google-font-data'
31
  );
32
 
33
- $this->google_font_data = new Wbcr_FactoryForms419_HiddenControl($option_google_font_data, $form, $provider);
34
  $this->inner_controls[] = $this->google_font_data;
35
  }
36
 
@@ -49,12 +49,12 @@
49
  $google_fonts = $this->getGoogleFonts();
50
 
51
  $fonts = array(
52
- array('inherit', __('(use default website font)', 'wbcr_factory_forms_419'))
53
  );
54
 
55
  $fontsCommon = array(
56
  'group',
57
- __('Standard:', 'wbcr_factory_forms_419'),
58
  array(
59
 
60
  array('Arial, "Helvetica Neue", Helvetica, sans-serif', 'Arial'),
@@ -65,7 +65,7 @@
65
  )
66
  );
67
 
68
- $fontsGoogleFonts = array('group', __('Google Fonts:', 'wbcr_factory_forms_419'), array());
69
 
70
  foreach($google_fonts->items as $item) {
71
 
@@ -115,7 +115,7 @@
115
 
116
  if( is_wp_error($response) ) {
117
 
118
- $this->error = __('Unable to retrieve the list of Google Fonts.', 'wbcr_factory_forms_419');
119
  $this->defailed_error = $response->get_error_message();
120
 
121
  return $body;
@@ -123,7 +123,7 @@
123
 
124
  if( !isset($response['body']) ) {
125
 
126
- $this->error = __('Invalide response from the Google Fonts API.', 'wbcr_factory_forms_419');
127
  $this->defailed_error = $response['body'];
128
 
129
  return $body;
@@ -133,7 +133,7 @@
133
 
134
  if( empty($body->items) ) {
135
 
136
- $this->error = __('Unexpected error. The list of Google Fonts are empty.', 'wbcr_factory_forms_419');
137
 
138
  return $body;
139
  }
15
  * @package core
16
  * @since 1.0.0
17
  */
18
+ class Wbcr_FactoryForms420_GoogleFontControl extends Wbcr_FactoryForms420_FontControl {
19
 
20
  public $type = 'google-font';
21
  const APIKEY = 'AIzaSyB-3vazYv7Q-5QZA04bmSKFrWcw_VhC40w';
30
  'cssClass' => 'factory-google-font-data'
31
  );
32
 
33
+ $this->google_font_data = new Wbcr_FactoryForms420_HiddenControl($option_google_font_data, $form, $provider);
34
  $this->inner_controls[] = $this->google_font_data;
35
  }
36
 
49
  $google_fonts = $this->getGoogleFonts();
50
 
51
  $fonts = array(
52
+ array('inherit', __('(use default website font)', 'wbcr_factory_forms_420'))
53
  );
54
 
55
  $fontsCommon = array(
56
  'group',
57
+ __('Standard:', 'wbcr_factory_forms_420'),
58
  array(
59
 
60
  array('Arial, "Helvetica Neue", Helvetica, sans-serif', 'Arial'),
65
  )
66
  );
67
 
68
+ $fontsGoogleFonts = array('group', __('Google Fonts:', 'wbcr_factory_forms_420'), array());
69
 
70
  foreach($google_fonts->items as $item) {
71
 
115
 
116
  if( is_wp_error($response) ) {
117
 
118
+ $this->error = __('Unable to retrieve the list of Google Fonts.', 'wbcr_factory_forms_420');
119
  $this->defailed_error = $response->get_error_message();
120
 
121
  return $body;
123
 
124
  if( !isset($response['body']) ) {
125
 
126
+ $this->error = __('Invalide response from the Google Fonts API.', 'wbcr_factory_forms_420');
127
  $this->defailed_error = $response['body'];
128
 
129
  return $body;
133
 
134
  if( empty($body->items) ) {
135
 
136
+ $this->error = __('Unexpected error. The list of Google Fonts are empty.', 'wbcr_factory_forms_420');
137
 
138
  return $body;
139
  }
libs/factory/forms/controls/gradient.php CHANGED
@@ -25,8 +25,8 @@
25
  exit;
26
  }
27
 
28
- if( !class_exists('Wbcr_FactoryForms419_GradientControl') ) {
29
- class Wbcr_FactoryForms419_GradientControl extends Wbcr_FactoryForms419_Control {
30
 
31
  public $type = 'gradient';
32
 
@@ -66,8 +66,8 @@
66
  if( !window.factory.res ) {
67
  window.factory.res = {};
68
  }
69
- factory.res.resVertical = '<?php _e( 'vertical', 'wbcr_factory_forms_419' ) ?>';
70
- factory.res.resHorizontal = '<?php _e( 'horizontal', 'wbcr_factory_forms_419' ) ?>';
71
  </script>
72
  <div <?php $this->attrs() ?>>
73
  <div class="factory-gradient-picker">
25
  exit;
26
  }
27
 
28
+ if( !class_exists('Wbcr_FactoryForms420_GradientControl') ) {
29
+ class Wbcr_FactoryForms420_GradientControl extends Wbcr_FactoryForms420_Control {
30
 
31
  public $type = 'gradient';
32
 
66
  if( !window.factory.res ) {
67
  window.factory.res = {};
68
  }
69
+ factory.res.resVertical = '<?php _e( 'vertical', 'wbcr_factory_forms_420' ) ?>';
70
+ factory.res.resHorizontal = '<?php _e( 'horizontal', 'wbcr_factory_forms_420' ) ?>';
71
  </script>
72
  <div <?php $this->attrs() ?>>
73
  <div class="factory-gradient-picker">
libs/factory/forms/controls/hidden.php CHANGED
@@ -20,9 +20,9 @@
20
  exit;
21
  }
22
 
23
- if( !class_exists('Wbcr_FactoryForms419_HiddenControl') ) {
24
 
25
- class Wbcr_FactoryForms419_HiddenControl extends Wbcr_FactoryForms419_Control {
26
 
27
  public $type = 'hidden';
28
 
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms420_HiddenControl') ) {
24
 
25
+ class Wbcr_FactoryForms420_HiddenControl extends Wbcr_FactoryForms420_Control {
26
 
27
  public $type = 'hidden';
28
 
libs/factory/forms/controls/holders/accordion-item.php CHANGED
@@ -14,14 +14,14 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_AccordionItemHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms419_AccordionItemHolder extends Wbcr_FactoryForms419_Holder {
25
 
26
  /**
27
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_AccordionItemHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms420_AccordionItemHolder extends Wbcr_FactoryForms420_Holder {
25
 
26
  /**
27
  * A holder type.
libs/factory/forms/controls/holders/accordion.php CHANGED
@@ -13,13 +13,13 @@
13
  if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
- if( !class_exists('Wbcr_FactoryForms419_AccordionHolder') ) {
17
  /**
18
  * Tab Control Holder
19
  *
20
  * @since 1.0.0
21
  */
22
- class Wbcr_FactoryForms419_AccordionHolder extends Wbcr_FactoryForms419_Holder {
23
 
24
  /**
25
  * A holder type.
13
  if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
+ if( !class_exists('Wbcr_FactoryForms420_AccordionHolder') ) {
17
  /**
18
  * Tab Control Holder
19
  *
20
  * @since 1.0.0
21
  */
22
+ class Wbcr_FactoryForms420_AccordionHolder extends Wbcr_FactoryForms420_Holder {
23
 
24
  /**
25
  * A holder type.
libs/factory/forms/controls/holders/columns.php CHANGED
@@ -14,13 +14,13 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_ColumnsHolder') ) {
18
  /**
19
  * Columns Holder
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_FactoryForms419_ColumnsHolder extends Wbcr_FactoryForms419_Holder {
24
 
25
  /**
26
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_ColumnsHolder') ) {
18
  /**
19
  * Columns Holder
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_FactoryForms420_ColumnsHolder extends Wbcr_FactoryForms420_Holder {
24
 
25
  /**
26
  * A holder type.
libs/factory/forms/controls/holders/control-group-item.php CHANGED
@@ -14,14 +14,14 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_ControlGroupItem') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms419_ControlGroupItem extends Wbcr_FactoryForms419_Holder {
25
 
26
  /**
27
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_ControlGroupItem') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms420_ControlGroupItem extends Wbcr_FactoryForms420_Holder {
25
 
26
  /**
27
  * A holder type.
libs/factory/forms/controls/holders/control-group.php CHANGED
@@ -14,14 +14,14 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_ControlGroupHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms419_ControlGroupHolder extends Wbcr_FactoryForms419_ControlHolder {
25
 
26
  /**
27
  * A holder type.
@@ -61,7 +61,7 @@
61
  continue;
62
  }
63
 
64
- $builder = new Wbcr_FactoryForms419_HtmlAttributeBuilder();
65
 
66
  $builder->addCssClass('factory-control-group-nav-label');
67
  $builder->addCssClass('factory-control-group-nav-label-' . $element->getOption('name'));
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_ControlGroupHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms420_ControlGroupHolder extends Wbcr_FactoryForms420_ControlHolder {
25
 
26
  /**
27
  * A holder type.
61
  continue;
62
  }
63
 
64
+ $builder = new Wbcr_FactoryForms420_HtmlAttributeBuilder();
65
 
66
  $builder->addCssClass('factory-control-group-nav-label');
67
  $builder->addCssClass('factory-control-group-nav-label-' . $element->getOption('name'));
libs/factory/forms/controls/holders/div.php CHANGED
@@ -14,13 +14,13 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_DivHolder') ) {
18
  /**
19
  * Div Control Holder
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_FactoryForms419_DivHolder extends Wbcr_FactoryForms419_Holder {
24
 
25
  /**
26
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_DivHolder') ) {
18
  /**
19
  * Div Control Holder
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_FactoryForms420_DivHolder extends Wbcr_FactoryForms420_Holder {
24
 
25
  /**
26
  * A holder type.
libs/factory/forms/controls/holders/form-group.php CHANGED
@@ -14,13 +14,13 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_FormGroupHolder') ) {
18
  /**
19
  * Group Holder
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_FactoryForms419_FormGroupHolder extends Wbcr_FactoryForms419_Holder {
24
 
25
  /**
26
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_FormGroupHolder') ) {
18
  /**
19
  * Group Holder
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_FactoryForms420_FormGroupHolder extends Wbcr_FactoryForms420_Holder {
24
 
25
  /**
26
  * A holder type.
libs/factory/forms/controls/holders/more-link.php CHANGED
@@ -14,14 +14,14 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_MoreLinkHolder') ) {
18
 
19
  /**
20
  * Collapsed Group Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms419_MoreLinkHolder extends Wbcr_FactoryForms419_Holder {
25
 
26
  /**
27
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_MoreLinkHolder') ) {
18
 
19
  /**
20
  * Collapsed Group Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms420_MoreLinkHolder extends Wbcr_FactoryForms420_Holder {
25
 
26
  /**
27
  * A holder type.
libs/factory/forms/controls/holders/tab-item.php CHANGED
@@ -13,13 +13,13 @@
13
  exit;
14
  }
15
 
16
- if( !class_exists('Wbcr_FactoryForms419_TabItemHolder') ) {
17
  /**
18
  * Tab Item Control Holder
19
  *
20
  * @since 1.0.0
21
  */
22
- class Wbcr_FactoryForms419_TabItemHolder extends Wbcr_FactoryForms419_Holder {
23
 
24
  /**
25
  * A holder type.
13
  exit;
14
  }
15
 
16
+ if( !class_exists('Wbcr_FactoryForms420_TabItemHolder') ) {
17
  /**
18
  * Tab Item Control Holder
19
  *
20
  * @since 1.0.0
21
  */
22
+ class Wbcr_FactoryForms420_TabItemHolder extends Wbcr_FactoryForms420_Holder {
23
 
24
  /**
25
  * A holder type.
libs/factory/forms/controls/holders/tab.php CHANGED
@@ -14,14 +14,14 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_TabHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms419_TabHolder extends Wbcr_FactoryForms419_Holder {
25
 
26
  /**
27
  * A holder type.
@@ -44,7 +44,7 @@
44
  *
45
  * @since 1.0.0
46
  * @param mixed[] $options A holder options.
47
- * @param FactoryForms419_Form $form A parent form.
48
  */
49
  public function __construct($options, $form)
50
  {
@@ -88,7 +88,7 @@
88
  $tab_icon = $element->options['icon'];
89
  }
90
 
91
- $builder = new Wbcr_FactoryForms419_HtmlAttributeBuilder();
92
 
93
  $builder->addCssClass('factory-tab-item-header');
94
  $builder->addCssClass('factory-tab-item-header-' . $element->getName());
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_TabHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms420_TabHolder extends Wbcr_FactoryForms420_Holder {
25
 
26
  /**
27
  * A holder type.
44
  *
45
  * @since 1.0.0
46
  * @param mixed[] $options A holder options.
47
+ * @param FactoryForms420_Form $form A parent form.
48
  */
49
  public function __construct($options, $form)
50
  {
88
  $tab_icon = $element->options['icon'];
89
  }
90
 
91
+ $builder = new Wbcr_FactoryForms420_HtmlAttributeBuilder();
92
 
93
  $builder->addCssClass('factory-tab-item-header');
94
  $builder->addCssClass('factory-tab-item-header-' . $element->getName());
libs/factory/forms/controls/integer.php CHANGED
@@ -32,9 +32,9 @@
32
  exit;
33
  }
34
 
35
- if( !class_exists('Wbcr_FactoryForms419_IntegerControl') ) {
36
 
37
- class Wbcr_FactoryForms419_IntegerControl extends Wbcr_FactoryForms419_Control {
38
 
39
  public $type = 'integer';
40
 
32
  exit;
33
  }
34
 
35
+ if( !class_exists('Wbcr_FactoryForms420_IntegerControl') ) {
36
 
37
+ class Wbcr_FactoryForms420_IntegerControl extends Wbcr_FactoryForms420_Control {
38
 
39
  public $type = 'integer';
40
 
libs/factory/forms/controls/list.php CHANGED
@@ -21,9 +21,9 @@
21
  exit;
22
  }
23
 
24
- if( !class_exists('Wbcr_FactoryForms419_ListControl') ) {
25
 
26
- class Wbcr_FactoryForms419_ListControl extends Wbcr_FactoryForms419_Control {
27
 
28
  public $type = 'list';
29
 
@@ -93,7 +93,7 @@
93
  'url': '<?php echo $data['url'] ?>',
94
  'data': <?php echo json_encode( $data['data'] ) ?>,
95
  'selected': <?php echo json_encode( $value ) ?>,
96
- 'emptyList': '<?php echo $this->getOption('empty', __('The list is empty.', 'wbcr_factory_forms_419') ) ?>'
97
  };
98
  </script>
99
  <?php
@@ -136,7 +136,7 @@
136
  : array();
137
 
138
  $is_empty = $this->isAjax() || empty($items);
139
- $emptyList = $this->getOption('empty', __('The list is empty.', 'wbcr_factory_forms_419'));
140
 
141
  if( $is_empty ) {
142
  $this->addCssClass('factory-empty');
21
  exit;
22
  }
23
 
24
+ if( !class_exists('Wbcr_FactoryForms420_ListControl') ) {
25
 
26
+ class Wbcr_FactoryForms420_ListControl extends Wbcr_FactoryForms420_Control {
27
 
28
  public $type = 'list';
29
 
93
  'url': '<?php echo $data['url'] ?>',
94
  'data': <?php echo json_encode( $data['data'] ) ?>,
95
  'selected': <?php echo json_encode( $value ) ?>,
96
+ 'emptyList': '<?php echo $this->getOption('empty', __('The list is empty.', 'wbcr_factory_forms_420') ) ?>'
97
  };
98
  </script>
99
  <?php
136
  : array();
137
 
138
  $is_empty = $this->isAjax() || empty($items);
139
+ $emptyList = $this->getOption('empty', __('The list is empty.', 'wbcr_factory_forms_420'));
140
 
141
  if( $is_empty ) {
142
  $this->addCssClass('factory-empty');
libs/factory/forms/controls/multiple-textbox.php CHANGED
@@ -15,9 +15,9 @@
15
  exit;
16
  }
17
 
18
- if( !class_exists('Wbcr_FactoryForms419_MultipleTextboxControl') ) {
19
 
20
- class Wbcr_FactoryForms419_MultipleTextboxControl extends Wbcr_FactoryForms419_Control {
21
 
22
  public $type = 'multiple-textbox';
23
 
@@ -86,7 +86,7 @@
86
  <?php endif; ?>
87
  </div>
88
  <button class="btn btn-default btn-small factory-mtextbox-add-item">
89
- <i class="fa fa-plus" aria-hidden="true"></i> <?php _e('Add new', 'wbcr_factory_forms_419') ?>
90
  </button>
91
  </div>
92
 
15
  exit;
16
  }
17
 
18
+ if( !class_exists('Wbcr_FactoryForms420_MultipleTextboxControl') ) {
19
 
20
+ class Wbcr_FactoryForms420_MultipleTextboxControl extends Wbcr_FactoryForms420_Control {
21
 
22
  public $type = 'multiple-textbox';
23
 
86
  <?php endif; ?>
87
  </div>
88
  <button class="btn btn-default btn-small factory-mtextbox-add-item">
89
+ <i class="fa fa-plus" aria-hidden="true"></i> <?php _e('Add new', 'wbcr_factory_forms_420') ?>
90
  </button>
91
  </div>
92
 
libs/factory/forms/controls/paddings-editor.php CHANGED
@@ -14,9 +14,9 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_PaddingsEditorControl') ) {
18
 
19
- class Wbcr_FactoryForms419_PaddingsEditorControl extends Wbcr_FactoryForms419_Control {
20
 
21
  public $type = 'paddings-editor';
22
 
@@ -67,7 +67,7 @@
67
  </div>
68
  <div class="factory-slider-container">
69
  <label class="factory-title">
70
- <?php _e('Select a side and move the slider to set up:', 'wbcr_factory_forms_419') ?>
71
  </label>
72
 
73
  <div class="factory-slider">
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_PaddingsEditorControl') ) {
18
 
19
+ class Wbcr_FactoryForms420_PaddingsEditorControl extends Wbcr_FactoryForms420_Control {
20
 
21
  public $type = 'paddings-editor';
22
 
67
  </div>
68
  <div class="factory-slider-container">
69
  <label class="factory-title">
70
+ <?php _e('Select a side and move the slider to set up:', 'wbcr_factory_forms_420') ?>
71
  </label>
72
 
73
  <div class="factory-slider">
libs/factory/forms/controls/pattern.php CHANGED
@@ -15,9 +15,9 @@
15
  exit;
16
  }
17
 
18
- if( !class_exists('Wbcr_FactoryForms419_PatternControl') ) {
19
 
20
- class Wbcr_FactoryForms419_PatternControl extends Wbcr_FactoryForms419_Control {
21
 
22
  public $type = 'pattern';
23
 
@@ -52,12 +52,12 @@
52
  $name = $this->getOption('name');
53
 
54
  // filters to get available patterns for the given background contols
55
- $this->patterns = apply_filters('wbcr_factory_forms_419_patterns', array());
56
- $this->patterns = apply_filters('wbcr_factory_forms_419_patterns-' . $name, $this->patterns);
57
 
58
  $this->custom_patterns = $this->getOption('patterns', array());
59
 
60
- $this->color = new Wbcr_FactoryForms419_ColorControl($options['color'], $form, $provider);
61
  }
62
 
63
  /**
@@ -102,19 +102,19 @@
102
  </div>
103
  <a href="#" class="button button-default factory-button factory-change-color-btn <?php if( $hasColor ) {
104
  echo 'button-active';
105
- } ?>" title="<?php _e('Change color', 'wbcr_factory_forms_419') ?>">
106
  <i class="fa fa-flask"></i>
107
- <span><?php _e('re-color', 'wbcr_factory_forms_419') ?></span>
108
  </a>
109
  <input type="hidden" id="<?php echo $name[0]; ?>" name="<?php echo $name[0]; ?>" value="<?php echo esc_url($values['url']); ?>" class="factory-pattern-result">
110
  <input type="hidden" id="<?php echo $name[1]; ?>" name="<?php echo $name[1]; ?>" value="<?php echo esc_attr($values['color']); ?>" class="factory-color-result">
111
  </div>
112
  <div class="factory-color-panel">
113
  <div class="factory-color-wrap">
114
- <span class="factory-color-label"><?php _e('Select color:', 'wbcr_factory_forms_419') ?></span>
115
  <?php $this->color->html() ?>
116
  <div class="factory-hint">
117
- <i><?php _e('Changing the color may takes a minute or more. Please be patient.', 'wbcr_factory_forms_419') ?></i>
118
  </div>
119
  </div>
120
  <div class="factory-picker-target"></div>
15
  exit;
16
  }
17
 
18
+ if( !class_exists('Wbcr_FactoryForms420_PatternControl') ) {
19
 
20
+ class Wbcr_FactoryForms420_PatternControl extends Wbcr_FactoryForms420_Control {
21
 
22
  public $type = 'pattern';
23
 
52
  $name = $this->getOption('name');
53
 
54
  // filters to get available patterns for the given background contols
55
+ $this->patterns = apply_filters('wbcr_factory_forms_420_patterns', array());
56
+ $this->patterns = apply_filters('wbcr_factory_forms_420_patterns-' . $name, $this->patterns);
57
 
58
  $this->custom_patterns = $this->getOption('patterns', array());
59
 
60
+ $this->color = new Wbcr_FactoryForms420_ColorControl($options['color'], $form, $provider);
61
  }
62
 
63
  /**
102
  </div>
103
  <a href="#" class="button button-default factory-button factory-change-color-btn <?php if( $hasColor ) {
104
  echo 'button-active';
105
+ } ?>" title="<?php _e('Change color', 'wbcr_factory_forms_420') ?>">
106
  <i class="fa fa-flask"></i>
107
+ <span><?php _e('re-color', 'wbcr_factory_forms_420') ?></span>
108
  </a>
109
  <input type="hidden" id="<?php echo $name[0]; ?>" name="<?php echo $name[0]; ?>" value="<?php echo esc_url($values['url']); ?>" class="factory-pattern-result">
110
  <input type="hidden" id="<?php echo $name[1]; ?>" name="<?php echo $name[1]; ?>" value="<?php echo esc_attr($values['color']); ?>" class="factory-color-result">
111
  </div>
112
  <div class="factory-color-panel">
113
  <div class="factory-color-wrap">
114
+ <span class="factory-color-label"><?php _e('Select color:', 'wbcr_factory_forms_420') ?></span>
115
  <?php $this->color->html() ?>
116
  <div class="factory-hint">
117
+ <i><?php _e('Changing the color may takes a minute or more. Please be patient.', 'wbcr_factory_forms_420') ?></i>
118
  </div>
119
  </div>
120
  <div class="factory-picker-target"></div>
libs/factory/forms/controls/radio-colors.php CHANGED
@@ -27,9 +27,9 @@
27
  exit;
28
  }
29
 
30
- if( !class_exists('Wbcr_FactoryForms419_RadioColorsControl') ) {
31
 
32
- class Wbcr_FactoryForms419_RadioColorsControl extends Wbcr_FactoryForms419_Control {
33
 
34
  public $type = 'radio-color';
35
 
27
  exit;
28
  }
29
 
30
+ if( !class_exists('Wbcr_FactoryForms420_RadioColorsControl') ) {
31
 
32
+ class Wbcr_FactoryForms420_RadioColorsControl extends Wbcr_FactoryForms420_Control {
33
 
34
  public $type = 'radio-color';
35
 
libs/factory/forms/controls/radio.php CHANGED
@@ -21,9 +21,9 @@
21
  exit;
22
  }
23
 
24
- if( !class_exists('Wbcr_FactoryForms419_RadioControl') ) {
25
 
26
- class Wbcr_FactoryForms419_RadioControl extends Wbcr_FactoryForms419_Control {
27
 
28
  public $type = 'radio';
29
 
21
  exit;
22
  }
23
 
24
+ if( !class_exists('Wbcr_FactoryForms420_RadioControl') ) {
25
 
26
+ class Wbcr_FactoryForms420_RadioControl extends Wbcr_FactoryForms420_Control {
27
 
28
  public $type = 'radio';
29
 
libs/factory/forms/controls/textarea.php CHANGED
@@ -20,9 +20,9 @@
20
  exit;
21
  }
22
 
23
- if( !class_exists('Wbcr_FactoryForms419_TextareaControl') ) {
24
 
25
- class Wbcr_FactoryForms419_TextareaControl extends Wbcr_FactoryForms419_Control {
26
 
27
  public $type = 'textarea';
28
 
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms420_TextareaControl') ) {
24
 
25
+ class Wbcr_FactoryForms420_TextareaControl extends Wbcr_FactoryForms420_Control {
26
 
27
  public $type = 'textarea';
28
 
libs/factory/forms/controls/textbox.php CHANGED
@@ -29,9 +29,9 @@
29
  exit;
30
  }
31
 
32
- if( !class_exists('Wbcr_FactoryForms419_TextboxControl') ) {
33
 
34
- class Wbcr_FactoryForms419_TextboxControl extends Wbcr_FactoryForms419_Control {
35
 
36
  public $type = 'textbox';
37
 
29
  exit;
30
  }
31
 
32
+ if( !class_exists('Wbcr_FactoryForms420_TextboxControl') ) {
33
 
34
+ class Wbcr_FactoryForms420_TextboxControl extends Wbcr_FactoryForms420_Control {
35
 
36
  public $type = 'textbox';
37
 
libs/factory/forms/controls/url.php CHANGED
@@ -4,7 +4,7 @@
4
  * Url Control
5
  *
6
  * Main options:
7
- * @see FactoryForms419_TextboxControl
8
  *
9
  * @author Alex Kovalev <alex.kovalevv@gmail.com>
10
  * @copyright (c) 2018, Webcraftic Ltd
@@ -18,9 +18,9 @@
18
  exit;
19
  }
20
 
21
- if( !class_exists('Wbcr_FactoryForms419_UrlControl') ) {
22
 
23
- class Wbcr_FactoryForms419_UrlControl extends Wbcr_FactoryForms419_TextboxControl {
24
 
25
  public $type = 'url';
26
 
4
  * Url Control
5
  *
6
  * Main options:
7
+ * @see FactoryForms420_TextboxControl
8
  *
9
  * @author Alex Kovalev <alex.kovalevv@gmail.com>
10
  * @copyright (c) 2018, Webcraftic Ltd
18
  exit;
19
  }
20
 
21
+ if( !class_exists('Wbcr_FactoryForms420_UrlControl') ) {
22
 
23
+ class Wbcr_FactoryForms420_UrlControl extends Wbcr_FactoryForms420_TextboxControl {
24
 
25
  public $type = 'url';
26
 
libs/factory/forms/controls/wp-editor.php CHANGED
@@ -22,9 +22,9 @@
22
  exit;
23
  }
24
 
25
- if( !class_exists('Wbcr_FactoryForms419_WpEditorControl') ) {
26
 
27
- class Wbcr_FactoryForms419_WpEditorControl extends Wbcr_FactoryForms419_Control {
28
 
29
  public $type = 'wp-editor';
30
 
@@ -42,7 +42,7 @@
42
  }
43
 
44
  if( !isset($this->options['tinymce']['content_css']) ) {
45
- $this->options['tinymce']['content_css'] = FACTORY_FORMS_419_URL . '/assets/css/editor.css';
46
  }
47
  }
48
 
22
  exit;
23
  }
24
 
25
+ if( !class_exists('Wbcr_FactoryForms420_WpEditorControl') ) {
26
 
27
+ class Wbcr_FactoryForms420_WpEditorControl extends Wbcr_FactoryForms420_Control {
28
 
29
  public $type = 'wp-editor';
30
 
42
  }
43
 
44
  if( !isset($this->options['tinymce']['content_css']) ) {
45
+ $this->options['tinymce']['content_css'] = FACTORY_FORMS_420_URL . '/assets/css/editor.css';
46
  }
47
  }
48
 
libs/factory/forms/includes/complex-control.class.php CHANGED
@@ -13,13 +13,13 @@
13
  if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
- if( !class_exists('Wbcr_FactoryForms419_ComplexControl') ) {
17
  /**
18
  * The base class for all controls.
19
  *
20
  * @since 1.0.0
21
  */
22
- abstract class Wbcr_FactoryForms419_ComplexControl extends Wbcr_FactoryForms419_Control {
23
 
24
  /**
25
  * Is this element a complex control?
@@ -33,7 +33,7 @@
33
  * Contains a set of internal controls.
34
  *
35
  * @since 1.0.0
36
- * @var Wbcr_FactoryForms419_Control[]
37
  */
38
  public $inner_controls = array();
39
 
@@ -41,7 +41,7 @@
41
  * Sets a provider for the control.
42
  *
43
  * @since 1.0.0
44
- * @param Wbcr_IFactoryForms419_ValueProvider $provider
45
  * @return void
46
  */
47
  public function setProvider($provider)
13
  if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
+ if( !class_exists('Wbcr_FactoryForms420_ComplexControl') ) {
17
  /**
18
  * The base class for all controls.
19
  *
20
  * @since 1.0.0
21
  */
22
+ abstract class Wbcr_FactoryForms420_ComplexControl extends Wbcr_FactoryForms420_Control {
23
 
24
  /**
25
  * Is this element a complex control?
33
  * Contains a set of internal controls.
34
  *
35
  * @since 1.0.0
36
+ * @var Wbcr_FactoryForms420_Control[]
37
  */
38
  public $inner_controls = array();
39
 
41
  * Sets a provider for the control.
42
  *
43
  * @since 1.0.0
44
+ * @param Wbcr_IFactoryForms420_ValueProvider $provider
45
  * @return void
46
  */
47
  public function setProvider($provider)
libs/factory/forms/includes/control-holder.class.php CHANGED
@@ -14,19 +14,19 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_ControlHolder') ) {
18
  /**
19
  * The base class for control holders.
20
  *
21
  * @since 1.0.0
22
  */
23
- abstract class Wbcr_FactoryForms419_ControlHolder extends Wbcr_FactoryForms419_Control {
24
 
25
  /**
26
  * Holder Elements.
27
  *
28
  * @since 1.0.0
29
- * @var Wbcr_FactoryForms419_Control[]
30
  */
31
  protected $elements = array();
32
 
@@ -43,7 +43,7 @@
43
  *
44
  * @since 1.0.0
45
  * @param mixed[] $options A holder options.
46
- * @param Wbcr_FactoryForms419_Form $form A parent form.
47
  */
48
  public function __construct($options, $form)
49
  {
@@ -60,7 +60,7 @@
60
  * Returns holder elements.
61
  *
62
  * @since 1.0.0
63
- * @return Wbcr_FactoryForms419_FormElement[].
64
  */
65
  public function getElements()
66
  {
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_ControlHolder') ) {
18
  /**
19
  * The base class for control holders.
20
  *
21
  * @since 1.0.0
22
  */
23
+ abstract class Wbcr_FactoryForms420_ControlHolder extends Wbcr_FactoryForms420_Control {
24
 
25
  /**
26
  * Holder Elements.
27
  *
28
  * @since 1.0.0
29
+ * @var Wbcr_FactoryForms420_Control[]
30
  */
31
  protected $elements = array();
32
 
43
  *
44
  * @since 1.0.0
45
  * @param mixed[] $options A holder options.
46
+ * @param Wbcr_FactoryForms420_Form $form A parent form.
47
  */
48
  public function __construct($options, $form)
49
  {
60
  * Returns holder elements.
61
  *
62
  * @since 1.0.0
63
+ * @return Wbcr_FactoryForms420_FormElement[].
64
  */
65
  public function getElements()
66
  {
libs/factory/forms/includes/control.class.php CHANGED
@@ -14,14 +14,14 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_Control') ) {
18
 
19
  /**
20
  * The base class for all controls.
21
  *
22
  * @since 1.0.0
23
  */
24
- abstract class Wbcr_FactoryForms419_Control extends Wbcr_FactoryForms419_FormElement {
25
 
26
  /**
27
  * Is this element a control?
@@ -43,7 +43,7 @@
43
  * A provider that is used to get values.
44
  *
45
  * @since 1.0.0
46
- * @var Wbcr_IFactoryForms419_ValueProvider
47
  */
48
  protected $provider = null;
49
 
@@ -51,7 +51,7 @@
51
  * Create a new instance of the control.
52
  *
53
  * @param mixed[] $options
54
- * @param FactoryForms419_Form $form
55
  * @param null $provider
56
  * @since 1.0.0
57
  * @return void
@@ -66,7 +66,7 @@
66
  * Sets a provider for the control.
67
  *
68
  * @since 1.0.0
69
- * @param IFactoryForms419_ValueProvider $provider
70
  * @return void
71
  */
72
  public function setProvider($provider)
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_Control') ) {
18
 
19
  /**
20
  * The base class for all controls.
21
  *
22
  * @since 1.0.0
23
  */
24
+ abstract class Wbcr_FactoryForms420_Control extends Wbcr_FactoryForms420_FormElement {
25
 
26
  /**
27
  * Is this element a control?
43
  * A provider that is used to get values.
44
  *
45
  * @since 1.0.0
46
+ * @var Wbcr_IFactoryForms420_ValueProvider
47
  */
48
  protected $provider = null;
49
 
51
  * Create a new instance of the control.
52
  *
53
  * @param mixed[] $options
54
+ * @param FactoryForms420_Form $form
55
  * @param null $provider
56
  * @since 1.0.0
57
  * @return void
66
  * Sets a provider for the control.
67
  *
68
  * @since 1.0.0
69
+ * @param IFactoryForms420_ValueProvider $provider
70
  * @return void
71
  */
72
  public function setProvider($provider)
libs/factory/forms/includes/custom-element.class.php CHANGED
@@ -14,13 +14,13 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_CustomElement') ) {
18
  /**
19
  * The base class for all controls.
20
  *
21
  * @since 1.0.0
22
  */
23
- abstract class Wbcr_FactoryForms419_CustomElement extends Wbcr_FactoryForms419_FormElement {
24
 
25
  /**
26
  * Is this element a custom form element?
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_CustomElement') ) {
18
  /**
19
  * The base class for all controls.
20
  *
21
  * @since 1.0.0
22
  */
23
+ abstract class Wbcr_FactoryForms420_CustomElement extends Wbcr_FactoryForms420_FormElement {
24
 
25
  /**
26
  * Is this element a custom form element?
libs/factory/forms/includes/form-element.class.php CHANGED
@@ -14,7 +14,7 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_FormElement') ) {
18
 
19
  /**
20
  * The base class for all form element (controls, holders).
@@ -23,7 +23,7 @@
23
  *
24
  * @since 1.0.0
25
  */
26
- abstract class Wbcr_FactoryForms419_FormElement {
27
 
28
  /**
29
  * A type of an elemnt.
@@ -37,7 +37,7 @@
37
  * An html attribute builder.
38
  *
39
  * @since 1.0.0
40
- * @var Wbcr_FactoryForms419_HtmlAttributeBuilder
41
  */
42
  private $html_builder;
43
 
@@ -53,7 +53,7 @@
53
  * A parent form.
54
  *
55
  * @since 1.0.0
56
- * @var Wbcr_FactoryForms419_Form
57
  */
58
  protected $form;
59
 
@@ -61,7 +61,7 @@
61
  * A form layout.
62
  *
63
  * @since 1.0.0
64
- * @var Wbcr_FactoryForms419_FormLayout
65
  */
66
  protected $layout;
67
 
@@ -94,7 +94,7 @@
94
  *
95
  * @since 1.0.0
96
  * @param mixed[] $options A holder options.
97
- * @param Wbcr_FactoryForms419_Form $form A parent form.
98
  */
99
  public function __construct($options, $form)
100
  {
@@ -102,7 +102,7 @@
102
  $this->form = $form;
103
  $this->layout = $form->layout;
104
 
105
- $this->html_builder = new Wbcr_FactoryForms419_HtmlAttributeBuilder();
106
 
107
  if( isset($this->options['cssClass']) ) {
108
  $this->html_builder->addCssClass($this->options['cssClass']);
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_FormElement') ) {
18
 
19
  /**
20
  * The base class for all form element (controls, holders).
23
  *
24
  * @since 1.0.0
25
  */
26
+ abstract class Wbcr_FactoryForms420_FormElement {
27
 
28
  /**
29
  * A type of an elemnt.
37
  * An html attribute builder.
38
  *
39
  * @since 1.0.0
40
+ * @var Wbcr_FactoryForms420_HtmlAttributeBuilder
41
  */
42
  private $html_builder;
43
 
53
  * A parent form.
54
  *
55
  * @since 1.0.0
56
+ * @var Wbcr_FactoryForms420_Form
57
  */
58
  protected $form;
59
 
61
  * A form layout.
62
  *
63
  * @since 1.0.0
64
+ * @var Wbcr_FactoryForms420_FormLayout
65
  */
66
  protected $layout;
67
 
94
  *
95
  * @since 1.0.0
96
  * @param mixed[] $options A holder options.
97
+ * @param Wbcr_FactoryForms420_Form $form A parent form.
98
  */
99
  public function __construct($options, $form)
100
  {
102
  $this->form = $form;
103
  $this->layout = $form->layout;
104
 
105
+ $this->html_builder = new Wbcr_FactoryForms420_HtmlAttributeBuilder();
106
 
107
  if( isset($this->options['cssClass']) ) {
108
  $this->html_builder->addCssClass($this->options['cssClass']);
libs/factory/forms/includes/form-layout.class.php CHANGED
@@ -14,12 +14,12 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_FormLayout') ) {
18
 
19
  /**
20
  * The base class for all form layouts.
21
  */
22
- abstract class Wbcr_FactoryForms419_FormLayout extends Wbcr_FactoryForms419_Holder {
23
 
24
  /**
25
  * A form layout name.
@@ -42,7 +42,7 @@
42
  *
43
  * @since 1.0.0
44
  * @param mixed[] $options A holder options.
45
- * @param Wbcr_FactoryForms419_Form $form A parent form.
46
  */
47
  public function __construct($options, $form)
48
  {
@@ -52,8 +52,8 @@
52
 
53
  parent::__construct($options, $form);
54
 
55
- $this->addCssClass('factory-forms-419-' . $this->type);
56
- $this->addCssClass('factory-forms-419-' . $this->name);
57
  }
58
 
59
  /**
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_FormLayout') ) {
18
 
19
  /**
20
  * The base class for all form layouts.
21
  */
22
+ abstract class Wbcr_FactoryForms420_FormLayout extends Wbcr_FactoryForms420_Holder {
23
 
24
  /**
25
  * A form layout name.
42
  *
43
  * @since 1.0.0
44
  * @param mixed[] $options A holder options.
45
+ * @param Wbcr_FactoryForms420_Form $form A parent form.
46
  */
47
  public function __construct($options, $form)
48
  {
52
 
53
  parent::__construct($options, $form);
54
 
55
+ $this->addCssClass('factory-forms-420-' . $this->type);
56
+ $this->addCssClass('factory-forms-420-' . $this->name);
57
  }
58
 
59
  /**
libs/factory/forms/includes/form.class.php CHANGED
@@ -15,16 +15,16 @@
15
  }
16
 
17
  // creating a license manager for each plugin created via the factory
18
- add_action('wbcr_factory_forms_419_plugin_created', 'wbcr_factory_forms_419_plugin_created');
19
 
20
- function wbcr_factory_forms_419_plugin_created($plugin)
21
  {
22
- $plugin->forms = new Wbcr_FactoryForms419_Manager($plugin);
23
  }
24
 
25
- if( !class_exists('Wbcr_FactoryForms419_Manager') ) {
26
 
27
- class Wbcr_FactoryForms419_Manager {
28
 
29
  // ----------------------------------------------------
30
  // Static fields and methods
@@ -57,7 +57,7 @@
57
  /**
58
  * Registers a set of new controls.
59
  *
60
- * @see FactoryForms419_Form::registerControl()
61
  *
62
  * @since 1.0.0
63
  * @return void
@@ -95,7 +95,7 @@
95
  /**
96
  * Registers a set of new holder controls.
97
  *
98
- * @see FactoryForms419_Form::registerHolder()
99
  *
100
  * @since 1.0.0
101
  * @return void
@@ -129,7 +129,7 @@
129
  /**
130
  * Registers a set of new custom form elements.
131
  *
132
- * @see FactoryForms419_Form::registerCustomElement()
133
  *
134
  * @since 1.0.0
135
  * @return void
@@ -180,11 +180,11 @@
180
  public static $controls_registered = false;
181
  }
182
  }
183
- if( !class_exists('Wbcr_FactoryForms419_Form') ) {
184
  /**
185
  * An abstraction for forms.
186
  */
187
- class Wbcr_FactoryForms419_Form {
188
 
189
  // ----------------------------------------------------
190
  // Object fields and methods
@@ -194,7 +194,7 @@
194
  * A value provider of the form that is used to save and load values.
195
  *
196
  * @since 1.0.0
197
- * @var Wbcr_IFactoryForms419_ValueProvider
198
  */
199
  private $provider;
200
 
@@ -245,7 +245,7 @@
245
  * A current form layout used to render a form.
246
  *
247
  * @since 1.0.0
248
- * @var Wbcr_FactoryForms419_FormLayout
249
  */
250
  public $layout;
251
 
@@ -261,20 +261,20 @@
261
  *
262
  * @since 1.0.0
263
  * @param array $options
264
- * @param Wbcr_Factory421_Plugin $plugin
265
  */
266
- public function __construct(array $options = array(), Wbcr_Factory421_Plugin $plugin)
267
  {
268
  // register controls once, when the first form is created
269
- if( !Wbcr_FactoryForms419_Manager::$controls_registered ) {
270
 
271
- do_action('wbcr_factory_forms_419_register_controls', $plugin);
272
 
273
  //if( !empty($plugin) ) {
274
- do_action('wbcr_factory_forms_419_register_controls_' . $plugin->getPluginName(), $plugin);
275
  //}
276
 
277
- Wbcr_FactoryForms419_Manager::$controls_registered = true;
278
  }
279
 
280
  $this->scope = isset($options['scope']) ? $options['scope'] : null;
@@ -289,14 +289,14 @@
289
  $this->form_layout = 'bootstrap-3';
290
  }
291
 
292
- Wbcr_FactoryForms419_Manager::$temper = 'flat';
293
  }
294
 
295
  /**
296
  * Sets a provider for the control.
297
  *
298
  * @since 1.0.0
299
- * @param Wbcr_IFactoryForms419_ValueProvider $provider
300
  * @return void
301
  */
302
  public function setProvider($provider)
@@ -332,14 +332,14 @@
332
  */
333
  public function getItems()
334
  {
335
- return apply_filters('wbcr_factory_421_form_items', $this->items, $this->name);
336
  }
337
 
338
  /**
339
  * Returns form controls (control objects).
340
  *
341
  * @since 1.0.0
342
- * @return Wbcr_FactoryForms419_Control[]
343
  */
344
  public function getControls()
345
  {
@@ -355,7 +355,7 @@
355
  * Builds a form items to the control objects ready to use.
356
  *
357
  * @param null $holder
358
- * @return Wbcr_FactoryForms419_Control[]
359
  */
360
 
361
  public function createControls($holder = null)
@@ -395,7 +395,7 @@
395
  *
396
  * @since 1.0.0
397
  * @param array $item Item data.
398
- * @return Wbcr_FactoryForms419_FormElement|null A form element.
399
  */
400
  public function createElement($item)
401
  {
@@ -417,7 +417,7 @@
417
  *
418
  * @since 1.0.0
419
  * @param mixed[] $item Data of items.
420
- * @return Wbcr_FactoryForms419_FormElement[] Created elements.
421
  */
422
  public function createElements($items = array())
423
  {
@@ -433,7 +433,7 @@
433
  *
434
  * @since 1.0.0
435
  * @param array $item Item data.
436
- * @return Wbcr_FactoryForms419_Control A control object.
437
  */
438
  public function createControl($item)
439
  {
@@ -441,7 +441,7 @@
441
 
442
  if( is_array($item) ) {
443
 
444
- $control_data = Wbcr_FactoryForms419_Manager::$registered_controls[$item['type']];
445
 
446
  require_once($control_data['include']);
447
 
@@ -465,7 +465,7 @@
465
  *
466
  * @since 1.0.0
467
  * @param array $item Item data.
468
- * @return Wbcr_FactoryForms419_Holder A control holder object.
469
  */
470
  public function createHolder($item)
471
  {
@@ -473,7 +473,7 @@
473
 
474
  if( is_array($item) ) {
475
 
476
- $holderData = Wbcr_FactoryForms419_Manager::$registered_holders[$item['type']];
477
  require_once($holderData['include']);
478
 
479
  $object = new $holderData['class']($item, $this);
@@ -491,7 +491,7 @@
491
  *
492
  * @since 1.0.0
493
  * @param mixed $item Item data.
494
- * @return Wbcr_FactoryForms419_FormElement A custom form element object.
495
  */
496
  public function createCustomElement($item)
497
  {
@@ -499,7 +499,7 @@
499
 
500
  if( is_array($item) ) {
501
 
502
- $data = Wbcr_FactoryForms419_Manager::$registered_custom_elements[$item['type']];
503
  require_once($data['include']);
504
 
505
  $options = $item;
@@ -523,12 +523,12 @@
523
  public function html($options = array())
524
  {
525
 
526
- if( !isset(Wbcr_FactoryForms419_Manager::$form_layouts[$this->form_layout]) ) {
527
  die(sprintf('[ERROR] The form layout %s was not found.', $this->form_layout));
528
  }
529
 
530
  // include a render code
531
- $layout_data = Wbcr_FactoryForms419_Manager::$form_layouts[$this->form_layout];
532
  require_once($layout_data['include']);
533
 
534
  $this->connectAssets();
@@ -552,7 +552,7 @@
552
  {
553
 
554
  $this->connectAssetsForItems();
555
- $layout_data = Wbcr_FactoryForms419_Manager::$form_layouts[$this->form_layout];
556
 
557
  if( $layout_data['name'] == 'default' ) {
558
  if( isset($layout_data['style']) ) {
@@ -602,9 +602,9 @@
602
 
603
  $haystack = array();
604
  if( self::isControl($type) ) {
605
- $haystack = Wbcr_FactoryForms419_Manager::$registered_controls;
606
  } elseif( self::isControlHolder($type) ) {
607
- $haystack = Wbcr_FactoryForms419_Manager::$registered_holders;
608
  }
609
 
610
  if( isset($haystack[$type]) ) {
@@ -660,7 +660,7 @@
660
  */
661
  public static function isControl($item)
662
  {
663
- return isset(Wbcr_FactoryForms419_Manager::$registered_controls[$item['type']]);
664
  }
665
 
666
  /**
@@ -672,7 +672,7 @@
672
  */
673
  public static function isControlHolder($item)
674
  {
675
- return isset(Wbcr_FactoryForms419_Manager::$registered_holders[$item['type']]);
676
  }
677
 
678
  /**
@@ -684,7 +684,7 @@
684
  */
685
  public static function isCustomElement($item)
686
  {
687
- return isset(Wbcr_FactoryForms419_Manager::$registered_custom_elements[$item['type']]);
688
  }
689
  }
690
  }
15
  }
16
 
17
  // creating a license manager for each plugin created via the factory
18
+ add_action('wbcr_factory_forms_420_plugin_created', 'wbcr_factory_forms_420_plugin_created');
19
 
20
+ function wbcr_factory_forms_420_plugin_created($plugin)
21
  {
22
+ $plugin->forms = new Wbcr_FactoryForms420_Manager($plugin);
23
  }
24
 
25
+ if( !class_exists('Wbcr_FactoryForms420_Manager') ) {
26
 
27
+ class Wbcr_FactoryForms420_Manager {
28
 
29
  // ----------------------------------------------------
30
  // Static fields and methods
57
  /**
58
  * Registers a set of new controls.
59
  *
60
+ * @see FactoryForms420_Form::registerControl()
61
  *
62
  * @since 1.0.0
63
  * @return void
95
  /**
96
  * Registers a set of new holder controls.
97
  *
98
+ * @see FactoryForms420_Form::registerHolder()
99
  *
100
  * @since 1.0.0
101
  * @return void
129
  /**
130
  * Registers a set of new custom form elements.
131
  *
132
+ * @see FactoryForms420_Form::registerCustomElement()
133
  *
134
  * @since 1.0.0
135
  * @return void
180
  public static $controls_registered = false;
181
  }
182
  }
183
+ if( !class_exists('Wbcr_FactoryForms420_Form') ) {
184
  /**
185
  * An abstraction for forms.
186
  */
187
+ class Wbcr_FactoryForms420_Form {
188
 
189
  // ----------------------------------------------------
190
  // Object fields and methods
194
  * A value provider of the form that is used to save and load values.
195
  *
196
  * @since 1.0.0
197
+ * @var Wbcr_IFactoryForms420_ValueProvider
198
  */
199
  private $provider;
200
 
245
  * A current form layout used to render a form.
246
  *
247
  * @since 1.0.0
248
+ * @var Wbcr_FactoryForms420_FormLayout
249
  */
250
  public $layout;
251
 
261
  *
262
  * @since 1.0.0
263
  * @param array $options
264
+ * @param Wbcr_Factory422_Plugin $plugin
265
  */
266
+ public function __construct(array $options = array(), Wbcr_Factory422_Plugin $plugin)
267
  {
268
  // register controls once, when the first form is created
269
+ if( !Wbcr_FactoryForms420_Manager::$controls_registered ) {
270
 
271
+ do_action('wbcr_factory_forms_420_register_controls', $plugin);
272
 
273
  //if( !empty($plugin) ) {
274
+ do_action('wbcr_factory_forms_420_register_controls_' . $plugin->getPluginName(), $plugin);
275
  //}
276
 
277
+ Wbcr_FactoryForms420_Manager::$controls_registered = true;
278
  }
279
 
280
  $this->scope = isset($options['scope']) ? $options['scope'] : null;
289
  $this->form_layout = 'bootstrap-3';
290
  }
291
 
292
+ Wbcr_FactoryForms420_Manager::$temper = 'flat';
293
  }
294
 
295
  /**
296
  * Sets a provider for the control.
297
  *
298
  * @since 1.0.0
299
+ * @param Wbcr_IFactoryForms420_ValueProvider $provider
300
  * @return void
301
  */
302
  public function setProvider($provider)
332
  */
333
  public function getItems()
334
  {
335
+ return apply_filters('wbcr_factory_422_form_items', $this->items, $this->name);
336
  }
337
 
338
  /**
339
  * Returns form controls (control objects).
340
  *
341
  * @since 1.0.0
342
+ * @return Wbcr_FactoryForms420_Control[]
343
  */
344
  public function getControls()
345
  {
355
  * Builds a form items to the control objects ready to use.
356
  *
357
  * @param null $holder
358
+ * @return Wbcr_FactoryForms420_Control[]
359
  */
360
 
361
  public function createControls($holder = null)
395
  *
396
  * @since 1.0.0
397
  * @param array $item Item data.
398
+ * @return Wbcr_FactoryForms420_FormElement|null A form element.
399
  */
400
  public function createElement($item)
401
  {
417
  *
418
  * @since 1.0.0
419
  * @param mixed[] $item Data of items.
420
+ * @return Wbcr_FactoryForms420_FormElement[] Created elements.
421
  */
422
  public function createElements($items = array())
423
  {
433
  *
434
  * @since 1.0.0
435
  * @param array $item Item data.
436
+ * @return Wbcr_FactoryForms420_Control A control object.
437
  */
438
  public function createControl($item)
439
  {
441
 
442
  if( is_array($item) ) {
443
 
444
+ $control_data = Wbcr_FactoryForms420_Manager::$registered_controls[$item['type']];
445
 
446
  require_once($control_data['include']);
447
 
465
  *
466
  * @since 1.0.0
467
  * @param array $item Item data.
468
+ * @return Wbcr_FactoryForms420_Holder A control holder object.
469
  */
470
  public function createHolder($item)
471
  {
473
 
474
  if( is_array($item) ) {
475
 
476
+ $holderData = Wbcr_FactoryForms420_Manager::$registered_holders[$item['type']];
477
  require_once($holderData['include']);
478
 
479
  $object = new $holderData['class']($item, $this);
491
  *
492
  * @since 1.0.0
493
  * @param mixed $item Item data.
494
+ * @return Wbcr_FactoryForms420_FormElement A custom form element object.
495
  */
496
  public function createCustomElement($item)
497
  {
499
 
500
  if( is_array($item) ) {
501
 
502
+ $data = Wbcr_FactoryForms420_Manager::$registered_custom_elements[$item['type']];
503
  require_once($data['include']);
504
 
505
  $options = $item;
523
  public function html($options = array())
524
  {
525
 
526
+ if( !isset(Wbcr_FactoryForms420_Manager::$form_layouts[$this->form_layout]) ) {
527
  die(sprintf('[ERROR] The form layout %s was not found.', $this->form_layout));
528
  }
529
 
530
  // include a render code
531
+ $layout_data = Wbcr_FactoryForms420_Manager::$form_layouts[$this->form_layout];
532
  require_once($layout_data['include']);
533
 
534
  $this->connectAssets();
552
  {
553
 
554
  $this->connectAssetsForItems();
555
+ $layout_data = Wbcr_FactoryForms420_Manager::$form_layouts[$this->form_layout];
556
 
557
  if( $layout_data['name'] == 'default' ) {
558
  if( isset($layout_data['style']) ) {
602
 
603
  $haystack = array();
604
  if( self::isControl($type) ) {
605
+ $haystack = Wbcr_FactoryForms420_Manager::$registered_controls;
606
  } elseif( self::isControlHolder($type) ) {
607
+ $haystack = Wbcr_FactoryForms420_Manager::$registered_holders;
608
  }
609
 
610
  if( isset($haystack[$type]) ) {
660
  */
661
  public static function isControl($item)
662
  {
663
+ return isset(Wbcr_FactoryForms420_Manager::$registered_controls[$item['type']]);
664
  }
665
 
666
  /**
672
  */
673
  public static function isControlHolder($item)
674
  {
675
+ return isset(Wbcr_FactoryForms420_Manager::$registered_holders[$item['type']]);
676
  }
677
 
678
  /**
684
  */
685
  public static function isCustomElement($item)
686
  {
687
+ return isset(Wbcr_FactoryForms420_Manager::$registered_custom_elements[$item['type']]);
688
  }
689
  }
690
  }
libs/factory/forms/includes/holder.class.php CHANGED
@@ -14,20 +14,20 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_Holder') ) {
18
 
19
  /**
20
  * The base class for control holders.
21
  *
22
  * @since 1.0.0
23
  */
24
- abstract class Wbcr_FactoryForms419_Holder extends Wbcr_FactoryForms419_FormElement {
25
 
26
  /**
27
  * Holder Elements.
28
  *
29
  * @since 1.0.0
30
- * @var Wbcr_FactoryForms419_Control[]
31
  */
32
  protected $elements = array();
33
 
@@ -44,7 +44,7 @@
44
  *
45
  * @since 1.0.0
46
  * @param mixed[] $options A holder options.
47
- * @param Wbcr_FactoryForms419_Form $form A parent form.
48
  */
49
  public function __construct($options, $form)
50
  {
@@ -56,7 +56,7 @@
56
  * Returns holder elements.
57
  *
58
  * @since 1.0.0
59
- * @return Wbcr_FactoryForms419_Control[].
60
  */
61
  public function getElements()
62
  {
@@ -84,7 +84,7 @@
84
  $is_first_item = false;
85
  }
86
 
87
- do_action('wbcr_factory_421_form_before_element_' . $element->getOption('name'));
88
 
89
  // if a current item is a control holder
90
  if( $element->is_holder ) {
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_Holder') ) {
18
 
19
  /**
20
  * The base class for control holders.
21
  *
22
  * @since 1.0.0
23
  */
24
+ abstract class Wbcr_FactoryForms420_Holder extends Wbcr_FactoryForms420_FormElement {
25
 
26
  /**
27
  * Holder Elements.
28
  *
29
  * @since 1.0.0
30
+ * @var Wbcr_FactoryForms420_Control[]
31
  */
32
  protected $elements = array();
33
 
44
  *
45
  * @since 1.0.0
46
  * @param mixed[] $options A holder options.
47
+ * @param Wbcr_FactoryForms420_Form $form A parent form.
48
  */
49
  public function __construct($options, $form)
50
  {
56
  * Returns holder elements.
57
  *
58
  * @since 1.0.0
59
+ * @return Wbcr_FactoryForms420_Control[].
60
  */
61
  public function getElements()
62
  {
84
  $is_first_item = false;
85
  }
86
 
87
+ do_action('wbcr_factory_422_form_before_element_' . $element->getOption('name'));
88
 
89
  // if a current item is a control holder
90
  if( $element->is_holder ) {
libs/factory/forms/includes/html-builder.class.php CHANGED
@@ -14,13 +14,13 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_HtmlAttributeBuilder') ) {
18
  /**
19
  * Html Attribute Builder
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_FactoryForms419_HtmlAttributeBuilder {
24
 
25
  /**
26
  * An array to store css classes.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_HtmlAttributeBuilder') ) {
18
  /**
19
  * Html Attribute Builder
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_FactoryForms420_HtmlAttributeBuilder {
24
 
25
  /**
26
  * An array to store css classes.
libs/factory/forms/includes/providers/meta-value-provider.class.php CHANGED
@@ -14,7 +14,7 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_OptionsValueProvider') ) {
18
 
19
  /**
20
  * Factory Meta Value Provider
@@ -24,7 +24,7 @@
24
  *
25
  * @since 1.0.0
26
  */
27
- class Wbcr_FactoryForms419_MetaValueProvider implements Wbcr_IFactoryForms419_ValueProvider {
28
 
29
 
30
  public $scope;
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_OptionsValueProvider') ) {
18
 
19
  /**
20
  * Factory Meta Value Provider
24
  *
25
  * @since 1.0.0
26
  */
27
+ class Wbcr_FactoryForms420_MetaValueProvider implements Wbcr_IFactoryForms420_ValueProvider {
28
 
29
 
30
  public $scope;
libs/factory/forms/includes/providers/options-value-provider.class.php CHANGED
@@ -13,7 +13,7 @@
13
  exit;
14
  }
15
 
16
- if( !class_exists('Wbcr_FactoryForms419_OptionsValueProvider') ) {
17
 
18
  /**
19
  * Factory Options Value Provider
@@ -22,7 +22,7 @@
22
  *
23
  * @since 1.0.0
24
  */
25
- class Wbcr_FactoryForms419_OptionsValueProvider implements Wbcr_IFactoryForms419_ValueProvider {
26
 
27
  /**
28
  * A prefix that will be added to all option names.
@@ -43,7 +43,7 @@
43
  /**
44
  * Creates a new instance of an options value provider.
45
  */
46
- public function __construct(Wbcr_Factory421_Plugin $plugin)
47
  {
48
  $this->plugin = $plugin;
49
  }
13
  exit;
14
  }
15
 
16
+ if( !class_exists('Wbcr_FactoryForms420_OptionsValueProvider') ) {
17
 
18
  /**
19
  * Factory Options Value Provider
22
  *
23
  * @since 1.0.0
24
  */
25
+ class Wbcr_FactoryForms420_OptionsValueProvider implements Wbcr_IFactoryForms420_ValueProvider {
26
 
27
  /**
28
  * A prefix that will be added to all option names.
43
  /**
44
  * Creates a new instance of an options value provider.
45
  */
46
+ public function __construct(Wbcr_Factory422_Plugin $plugin)
47
  {
48
  $this->plugin = $plugin;
49
  }
libs/factory/forms/includes/providers/value-provider.interface.php CHANGED
@@ -14,13 +14,13 @@
14
  if( !defined('ABSPATH') ) {
15
  exit;
16
  }
17
- if( !class_exists('Wbcr_IFactoryForms419_ValueProvider') ) {
18
  /**
19
  * The interface for all value provides.
20
  *
21
  * @since 1.0.0
22
  */
23
- interface Wbcr_IFactoryForms419_ValueProvider {
24
 
25
  /**
26
  * Inits a form a provider to get data from a storage.
14
  if( !defined('ABSPATH') ) {
15
  exit;
16
  }
17
+ if( !class_exists('Wbcr_IFactoryForms420_ValueProvider') ) {
18
  /**
19
  * The interface for all value provides.
20
  *
21
  * @since 1.0.0
22
  */
23
+ interface Wbcr_IFactoryForms420_ValueProvider {
24
 
25
  /**
26
  * Inits a form a provider to get data from a storage.
libs/factory/forms/langs/{wbcr_factory_forms_419-ru_RU.mo → wbcr_factory_forms_420-ru_RU.mo} RENAMED
File without changes
libs/factory/forms/langs/{wbcr_factory_forms_419-ru_RU.po → wbcr_factory_forms_420-ru_RU.po} RENAMED
File without changes
libs/factory/forms/layouts/bootstrap-3/bootstrap-3.php CHANGED
@@ -14,11 +14,11 @@
14
  exit;
15
  }
16
 
17
- if( !class_exists('Wbcr_FactoryForms419_Bootstrap3FormLayout') ) {
18
  /**
19
  * A form layout based on Twitter Bootstrap 3
20
  */
21
- class Wbcr_FactoryForms419_Bootstrap3FormLayout extends Wbcr_FactoryForms419_FormLayout {
22
 
23
  public $name = 'default';
24
 
@@ -27,7 +27,7 @@
27
  *
28
  * @since 1.0.0
29
  * @param array $options A holder options.
30
- * @param Wbcr_FactoryForms419_Form $form A parent form.
31
  */
32
  public function __construct($options, $form)
33
  {
@@ -68,7 +68,7 @@
68
  }
69
 
70
  /**
71
- * @param Wbcr_FactoryForms419_Control $control
72
  */
73
  public function beforeControl($control)
74
  {
@@ -116,7 +116,7 @@
116
  }
117
 
118
  /**
119
- * @param Wbcr_FactoryForms419_Control $control
120
  */
121
  public function afterControl($control)
122
  {
@@ -168,7 +168,7 @@
168
  }
169
 
170
  /**
171
- * @param Wbcr_FactoryForms419_Control $control
172
  * @param int $index
173
  * @param int $total
174
  */
@@ -193,7 +193,7 @@
193
  }
194
 
195
  /**
196
- * @param Wbcr_FactoryForms419_Control $control
197
  * @param int $index
198
  * @param int $total
199
  */
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms420_Bootstrap3FormLayout') ) {
18
  /**
19
  * A form layout based on Twitter Bootstrap 3
20
  */
21
+ class Wbcr_FactoryForms420_Bootstrap3FormLayout extends Wbcr_FactoryForms420_FormLayout {
22
 
23
  public $name = 'default';
24
 
27
  *
28
  * @since 1.0.0
29
  * @param array $options A holder options.
30
+ * @param Wbcr_FactoryForms420_Form $form A parent form.
31
  */
32
  public function __construct($options, $form)
33
  {
68
  }
69
 
70
  /**
71
+ * @param Wbcr_FactoryForms420_Control $control
72
  */
73
  public function beforeControl($control)
74
  {
116
  }
117
 
118
  /**
119
+ * @param Wbcr_FactoryForms420_Control $control
120
  */
121
  public function afterControl($control)
122
  {
168
  }
169
 
170
  /**
171
+ * @param Wbcr_FactoryForms420_Control $control
172
  * @param int $index
173
  * @param int $total
174
  */
193
  }
194
 
195
  /**
196
+ * @param Wbcr_FactoryForms420_Control $control
197
  * @param int $index
198
  * @param int $total
199
  */
libs/factory/freemius/boot.php CHANGED
@@ -14,39 +14,39 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- if ( defined( 'FACTORY_FREEMIUS_109_LOADED' ) ) {
18
  return;
19
  }
20
 
21
- define( 'FACTORY_FREEMIUS_109_VERSION', '1.0.9' );
22
 
23
- define( 'FACTORY_FREEMIUS_109_LOADED', true );
24
- define( 'FACTORY_FREEMIUS_109_DIR', dirname( __FILE__ ) );
25
- define( 'FACTORY_FREEMIUS_109_URL', plugins_url( null, __FILE__ ) );
26
 
27
  #comp merge
28
  // Freemius
29
- require_once( FACTORY_FREEMIUS_109_DIR . '/includes/entities/class-freemius-entity.php' );
30
- require_once( FACTORY_FREEMIUS_109_DIR . '/includes/entities/class-freemius-scope.php' );
31
- require_once( FACTORY_FREEMIUS_109_DIR . '/includes/entities/class-freemius-user.php' );
32
- require_once( FACTORY_FREEMIUS_109_DIR . '/includes/entities/class-freemius-site.php' );
33
- require_once( FACTORY_FREEMIUS_109_DIR . '/includes/entities/class-freemius-license.php' );
34
- require_once( FACTORY_FREEMIUS_109_DIR . '/includes/licensing/class-freemius-provider.php' );
35
- require_once( FACTORY_FREEMIUS_109_DIR . '/includes/updates/class-freemius-repository.php' );
36
 
37
  if ( ! class_exists( 'Freemius_Api_WordPress' ) ) {
38
- require_once FACTORY_FREEMIUS_109_DIR . '/includes/sdk/FreemiusWordPress.php';
39
  }
40
 
41
- require_once( FACTORY_FREEMIUS_109_DIR . '/includes/class-freemius-api.php' );
42
 
43
  /**
44
- * @param Wbcr_Factory421_Plugin $plugin
45
  */
46
- add_action( 'wbcr_factory_freemius_109_plugin_created', function ( $plugin ) {
47
  # Устанавливаем класс провайдера лицензий для премиум менеджера
48
- $plugin->set_license_provider( 'freemius', 'WBCR\Factory_Freemius_109\Premium\Provider' );
49
  # Устанавливаем класс репозитория обновлений для менеджера обновлений
50
- $plugin->set_update_repository( 'freemius', 'WBCR\Factory_Freemius_109\Updates\Freemius_Repository' );
51
  } );
52
  #endcomp
14
  exit;
15
  }
16
 
17
+ if ( defined( 'FACTORY_FREEMIUS_110_LOADED' ) ) {
18
  return;
19
  }
20
 
21
+ define( 'FACTORY_FREEMIUS_110_VERSION', '1.1.0' );
22
 
23
+ define( 'FACTORY_FREEMIUS_110_LOADED', true );
24
+ define( 'FACTORY_FREEMIUS_110_DIR', dirname( __FILE__ ) );
25
+ define( 'FACTORY_FREEMIUS_110_URL', plugins_url( null, __FILE__ ) );
26
 
27
  #comp merge
28
  // Freemius
29
+ require_once( FACTORY_FREEMIUS_110_DIR . '/includes/entities/class-freemius-entity.php' );
30
+ require_once( FACTORY_FREEMIUS_110_DIR . '/includes/entities/class-freemius-scope.php' );
31
+ require_once( FACTORY_FREEMIUS_110_DIR . '/includes/entities/class-freemius-user.php' );
32
+ require_once( FACTORY_FREEMIUS_110_DIR . '/includes/entities/class-freemius-site.php' );
33
+ require_once( FACTORY_FREEMIUS_110_DIR . '/includes/entities/class-freemius-license.php' );
34
+ require_once( FACTORY_FREEMIUS_110_DIR . '/includes/licensing/class-freemius-provider.php' );
35
+ require_once( FACTORY_FREEMIUS_110_DIR . '/includes/updates/class-freemius-repository.php' );
36
 
37
  if ( ! class_exists( 'Freemius_Api_WordPress' ) ) {
38
+ require_once FACTORY_FREEMIUS_110_DIR . '/includes/sdk/FreemiusWordPress.php';
39
  }
40
 
41
+ require_once( FACTORY_FREEMIUS_110_DIR . '/includes/class-freemius-api.php' );
42
 
43
  /**
44
+ * @param Wbcr_Factory422_Plugin $plugin
45
  */
46
+ add_action( 'wbcr_factory_freemius_110_plugin_created', function ( $plugin ) {
47
  # Устанавливаем класс провайдера лицензий для премиум менеджера
48
+ $plugin->set_license_provider( 'freemius', 'WBCR\Factory_Freemius_110\Premium\Provider' );
49
  # Устанавливаем класс репозитория обновлений для менеджера обновлений
50
+ $plugin->set_update_repository( 'freemius', 'WBCR\Factory_Freemius_110\Updates\Freemius_Repository' );
51
  } );
52
  #endcomp
libs/factory/freemius/includes/class-freemius-api.php CHANGED
@@ -1,10 +1,10 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Freemius_109;
4
 
5
  use Freemius_Api_WordPress;
6
  use Freemius_Exception;
7
- use Wbcr_Factory421_Plugin;
8
 
9
  if ( ! defined( 'ABSPATH' ) ) {
10
  exit;
@@ -33,7 +33,7 @@ final class Api {
33
  private $api;
34
 
35
  /**
36
- * @var Wbcr_Factory421_Plugin
37
  */
38
  private $plugin;
39
 
@@ -48,14 +48,14 @@ final class Api {
48
  private static $clock_diff;
49
 
50
  /**
51
- * @param Wbcr_Factory421_Plugin $slug
52
  * @param string $scope 'app', 'developer', 'user' or 'install'.
53
  * @param number $id Element's id.
54
  * @param string $public_key Public key.
55
  * @param bool|string $secret_key Element's secret key.
56
  * @param bool $is_sandbox
57
  */
58
- private function __construct( Wbcr_Factory421_Plugin $plugin, $scope, $id, $public_key, $secret_key, $is_sandbox ) {
59
  if ( ! class_exists( 'Freemius_Api_WordPress' ) ) {
60
  require_once WP_FS__DIR_SDK . '/FreemiusWordPress.php';
61
  }
@@ -73,7 +73,7 @@ final class Api {
73
  }
74
 
75
  /**
76
- * @param Wbcr_Factory421_Plugin $plugin
77
  * @param string $scope 'app', 'developer', 'user' or 'install'.
78
  * @param number $id Element's id.
79
  * @param string $public_key Public key.
@@ -82,7 +82,7 @@ final class Api {
82
  *
83
  * @return Api
84
  */
85
- public static function instance( Wbcr_Factory421_Plugin $plugin, $scope, $id, $public_key, $is_sandbox, $secret_key = false ) {
86
  $identifier = md5( $plugin->getPluginName() . $scope . $id . $public_key . ( is_string( $secret_key ) ? $secret_key : '' ) . json_encode( $is_sandbox ) );
87
 
88
  if ( ! isset( self::$instances[ $identifier ] ) ) {
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_110;
4
 
5
  use Freemius_Api_WordPress;
6
  use Freemius_Exception;
7
+ use Wbcr_Factory422_Plugin;
8
 
9
  if ( ! defined( 'ABSPATH' ) ) {
10
  exit;
33
  private $api;
34
 
35
  /**
36
+ * @var Wbcr_Factory422_Plugin
37
  */
38
  private $plugin;
39
 
48
  private static $clock_diff;
49
 
50
  /**
51
+ * @param Wbcr_Factory422_Plugin $slug
52
  * @param string $scope 'app', 'developer', 'user' or 'install'.
53
  * @param number $id Element's id.
54
  * @param string $public_key Public key.
55
  * @param bool|string $secret_key Element's secret key.
56
  * @param bool $is_sandbox
57
  */
58
+ private function __construct( Wbcr_Factory422_Plugin $plugin, $scope, $id, $public_key, $secret_key, $is_sandbox ) {
59
  if ( ! class_exists( 'Freemius_Api_WordPress' ) ) {
60
  require_once WP_FS__DIR_SDK . '/FreemiusWordPress.php';
61
  }
73
  }
74
 
75
  /**
76
+ * @param Wbcr_Factory422_Plugin $plugin
77
  * @param string $scope 'app', 'developer', 'user' or 'install'.
78
  * @param number $id Element's id.
79
  * @param string $public_key Public key.
82
  *
83
  * @return Api
84
  */
85
+ public static function instance( Wbcr_Factory422_Plugin $plugin, $scope, $id, $public_key, $is_sandbox, $secret_key = false ) {
86
  $identifier = md5( $plugin->getPluginName() . $scope . $id . $public_key . ( is_string( $secret_key ) ? $secret_key : '' ) . json_encode( $is_sandbox ) );
87
 
88
  if ( ! isset( self::$instances[ $identifier ] ) ) {
libs/factory/freemius/includes/entities/class-freemius-entity.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Freemius_109\Entities;
4
 
5
  use stdClass;
6
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_110\Entities;
4
 
5
  use stdClass;
6
 
libs/factory/freemius/includes/entities/class-freemius-license.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Freemius_109\Entities;
4
 
5
  use stdClass;
6
 
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  * @copyright (c) 2018 Webraftic Ltd, Freemius, Inc.
15
  * @version 1.0
16
  */
17
- class License extends Entity implements \WBCR\Factory_421\Premium\Interfaces\License {
18
 
19
  /**
20
  * @var number
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_110\Entities;
4
 
5
  use stdClass;
6
 
14
  * @copyright (c) 2018 Webraftic Ltd, Freemius, Inc.
15
  * @version 1.0
16
  */
17
+ class License extends Entity implements \WBCR\Factory_422\Premium\Interfaces\License {
18
 
19
  /**
20
  * @var number
libs/factory/freemius/includes/entities/class-freemius-plugin.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Freemius_109\Entities;
4
 
5
  use stdClass;
6
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_110\Entities;
4
 
5
  use stdClass;
6
 
libs/factory/freemius/includes/entities/class-freemius-scope.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Freemius_109\Entities;
4
 
5
  use stdClass;
6
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_110\Entities;
4
 
5
  use stdClass;
6
 
libs/factory/freemius/includes/entities/class-freemius-site.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Freemius_109\Entities;
4
 
5
  use stdClass;
6
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_110\Entities;
4
 
5
  use stdClass;
6
 
libs/factory/freemius/includes/entities/class-freemius-user.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Freemius_109\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_110\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
libs/factory/freemius/includes/licensing/class-freemius-provider.php CHANGED
@@ -1,14 +1,14 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Freemius_109\Premium;
4
-
5
- use WBCR\Factory_Freemius_109\Entities\License;
6
- use WBCR\Factory_Freemius_109\Entities\Plugin;
7
- use WBCR\Factory_Freemius_109\Entities\Site;
8
- use WBCR\Factory_Freemius_109\Entities\User;
9
- use WBCR\Factory_421\Premium\Provider as License_Provider;
10
- use Wbcr_Factory421_Plugin;
11
- use WBCR\Factory_Freemius_109\Api;
12
  use WP_Error;
13
  use Exception;
14
 
@@ -40,17 +40,17 @@ final class Provider extends License_Provider {
40
  private $slug;
41
 
42
  /**
43
- * @var \WBCR\Factory_Freemius_109\Api
44
  */
45
  private $site_api;
46
 
47
  /**
48
- * @var \WBCR\Factory_Freemius_109\Api
49
  */
50
  private $plugin_api;
51
 
52
  /**
53
- * @var \WBCR\Factory_Freemius_109\Api
54
  */
55
  private $user_api;
56
 
@@ -82,11 +82,11 @@ final class Provider extends License_Provider {
82
  /**
83
  * Manager constructor.
84
  *
85
- * @param Wbcr_Factory421_Plugin $plugin
86
  *
87
  * @throws Exception
88
  */
89
- public function __construct( Wbcr_Factory421_Plugin $plugin, array $settings ) {
90
  parent::__construct( $plugin, $settings );
91
 
92
  $this->plugin_id = $this->get_setting( 'plugin_id', null );
@@ -145,7 +145,7 @@ final class Provider extends License_Provider {
145
  }
146
 
147
  /**
148
- * @return \WBCR\Factory_Freemius_109\Entities\License|null
149
  * @throws Exception
150
  */
151
  public function get_license() {
@@ -589,7 +589,7 @@ final class Provider extends License_Provider {
589
  /**
590
  * @param bool $flush
591
  *
592
- * @return \WBCR\Factory_Freemius_109\Api
593
  * @throws Exception
594
  */
595
  private function get_api_user_scope( User $user, $flush = false ) {
@@ -603,7 +603,7 @@ final class Provider extends License_Provider {
603
  /**
604
  * @param bool $flush
605
  *
606
- * @return \WBCR\Factory_Freemius_109\Api
607
  * @throws Exception
608
  */
609
  private function get_api_site_scope( Site $site, $flush = false ) {
@@ -617,7 +617,7 @@ final class Provider extends License_Provider {
617
  /**
618
  * Get plugin public API scope.
619
  *
620
- * @return \WBCR\Factory_Freemius_109\Api
621
  * @throws Exception
622
  */
623
  private function get_api_plugin_scope() {
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_110\Premium;
4
+
5
+ use WBCR\Factory_Freemius_110\Entities\License;
6
+ use WBCR\Factory_Freemius_110\Entities\Plugin;
7
+ use WBCR\Factory_Freemius_110\Entities\Site;
8
+ use WBCR\Factory_Freemius_110\Entities\User;
9
+ use WBCR\Factory_422\Premium\Provider as License_Provider;
10
+ use Wbcr_Factory422_Plugin;
11
+ use WBCR\Factory_Freemius_110\Api;
12
  use WP_Error;
13
  use Exception;
14
 
40
  private $slug;
41
 
42
  /**
43
+ * @var \WBCR\Factory_Freemius_110\Api
44
  */
45
  private $site_api;
46
 
47
  /**
48
+ * @var \WBCR\Factory_Freemius_110\Api
49
  */
50
  private $plugin_api;
51
 
52
  /**
53
+ * @var \WBCR\Factory_Freemius_110\Api
54
  */
55
  private $user_api;
56
 
82
  /**
83
  * Manager constructor.
84
  *
85
+ * @param Wbcr_Factory422_Plugin $plugin
86
  *
87
  * @throws Exception
88
  */
89
+ public function __construct( Wbcr_Factory422_Plugin $plugin, array $settings ) {
90
  parent::__construct( $plugin, $settings );
91
 
92
  $this->plugin_id = $this->get_setting( 'plugin_id', null );
145
  }
146
 
147
  /**
148
+ * @return \WBCR\Factory_Freemius_110\Entities\License|null
149
  * @throws Exception
150
  */
151
  public function get_license() {
589
  /**
590
  * @param bool $flush
591
  *
592
+ * @return \WBCR\Factory_Freemius_110\Api
593
  * @throws Exception
594
  */
595
  private function get_api_user_scope( User $user, $flush = false ) {
603
  /**
604
  * @param bool $flush
605
  *
606
+ * @return \WBCR\Factory_Freemius_110\Api
607
  * @throws Exception
608
  */
609
  private function get_api_site_scope( Site $site, $flush = false ) {
617
  /**
618
  * Get plugin public API scope.
619
  *
620
+ * @return \WBCR\Factory_Freemius_110\Api
621
  * @throws Exception
622
  */
623
  private function get_api_plugin_scope() {
libs/factory/freemius/includes/updates/class-freemius-repository.php CHANGED
@@ -1,11 +1,11 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Freemius_109\Updates;
4
 
5
  // Exit if accessed directly
6
  use Exception;
7
- use Wbcr_Factory421_Plugin;
8
- use WBCR\Factory_421\Updates\Repository;
9
 
10
  if ( ! defined( 'ABSPATH' ) ) {
11
  exit;
@@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  class Freemius_Repository extends Repository {
21
 
22
  /**
23
- * @var \WBCR\Factory_Freemius_109\Premium\Provider
24
  */
25
  private $premium;
26
 
@@ -28,11 +28,11 @@ class Freemius_Repository extends Repository {
28
  * Freemius constructor.
29
  * @since 4.0.0
30
  *
31
- * @param Wbcr_Factory421_Plugin $plugin
32
  *
33
  * @throws Exception
34
  */
35
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
36
  $this->plugin = $plugin;
37
  $this->premium = $this->plugin->premium;
38
  }
@@ -41,7 +41,7 @@ class Freemius_Repository extends Repository {
41
  * @throws Exception
42
  */
43
  public function init() {
44
- if ( ! $this->premium instanceof \WBCR\Factory_Freemius_109\Premium\Provider ) {
45
  throw new Exception( "This repository type requires Freemius premium provider." );
46
  }
47
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_110\Updates;
4
 
5
  // Exit if accessed directly
6
  use Exception;
7
+ use Wbcr_Factory422_Plugin;
8
+ use WBCR\Factory_422\Updates\Repository;
9
 
10
  if ( ! defined( 'ABSPATH' ) ) {
11
  exit;
20
  class Freemius_Repository extends Repository {
21
 
22
  /**
23
+ * @var \WBCR\Factory_Freemius_110\Premium\Provider
24
  */
25
  private $premium;
26
 
28
  * Freemius constructor.
29
  * @since 4.0.0
30
  *
31
+ * @param Wbcr_Factory422_Plugin $plugin
32
  *
33
  * @throws Exception
34
  */
35
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
36
  $this->plugin = $plugin;
37
  $this->premium = $this->plugin->premium;
38
  }
41
  * @throws Exception
42
  */
43
  public function init() {
44
+ if ( ! $this->premium instanceof \WBCR\Factory_Freemius_110\Premium\Provider ) {
45
  throw new Exception( "This repository type requires Freemius premium provider." );
46
  }
47
 
libs/factory/pages/boot.php CHANGED
@@ -19,25 +19,25 @@ if ( ! is_admin() ) {
19
  return;
20
  }
21
 
22
- if ( defined( 'FACTORY_PAGES_421_LOADED' ) ) {
23
  return;
24
  }
25
 
26
- define( 'FACTORY_PAGES_421_LOADED', true );
27
 
28
- define( 'FACTORY_PAGES_421_VERSION', '4.2.1' );
29
 
30
- define( 'FACTORY_PAGES_421_DIR', dirname( __FILE__ ) );
31
- define( 'FACTORY_PAGES_421_URL', plugins_url( null, __FILE__ ) );
32
 
33
  if ( ! defined( 'FACTORY_FLAT_ADMIN' ) ) {
34
  define( 'FACTORY_FLAT_ADMIN', true );
35
  }
36
 
37
- load_plugin_textdomain( 'wbcr_factory_pages_421', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
38
 
39
- require( FACTORY_PAGES_421_DIR . '/pages.php' );
40
- require( FACTORY_PAGES_421_DIR . '/includes/page.class.php' );
41
- require( FACTORY_PAGES_421_DIR . '/includes/admin-page.class.php' );
42
- require( FACTORY_PAGES_421_DIR . '/templates/impressive-page.class.php' );
43
 
19
  return;
20
  }
21
 
22
+ if ( defined( 'FACTORY_PAGES_422_LOADED' ) ) {
23
  return;
24
  }
25
 
26
+ define( 'FACTORY_PAGES_422_LOADED', true );
27
 
28
+ define( 'FACTORY_PAGES_422_VERSION', '4.2.2' );
29
 
30
+ define( 'FACTORY_PAGES_422_DIR', dirname( __FILE__ ) );
31
+ define( 'FACTORY_PAGES_422_URL', plugins_url( null, __FILE__ ) );
32
 
33
  if ( ! defined( 'FACTORY_FLAT_ADMIN' ) ) {
34
  define( 'FACTORY_FLAT_ADMIN', true );
35
  }
36
 
37
+ load_plugin_textdomain( 'wbcr_factory_pages_422', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
38
 
39
+ require( FACTORY_PAGES_422_DIR . '/pages.php' );
40
+ require( FACTORY_PAGES_422_DIR . '/includes/page.class.php' );
41
+ require( FACTORY_PAGES_422_DIR . '/includes/admin-page.class.php' );
42
+ require( FACTORY_PAGES_422_DIR . '/templates/impressive-page.class.php' );
43
 
libs/factory/pages/includes/admin-page.class.php CHANGED
@@ -14,9 +14,9 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- if ( ! class_exists( 'Wbcr_FactoryPages421_AdminPage' ) ) {
18
 
19
- class Wbcr_FactoryPages421_AdminPage extends Wbcr_FactoryPages421_Page {
20
 
21
  /**
22
  * Visible page title.
@@ -209,7 +209,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_AdminPage' ) ) {
209
  */
210
  public $add_link_to_plugin_actions = false;
211
 
212
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
213
  parent::__construct( $plugin );
214
  $this->configure();
215
 
@@ -316,13 +316,13 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_AdminPage' ) ) {
316
  public function connect() {
317
  $result_id = $this->getResultId();
318
 
319
- $this->hidden = apply_filters( 'wbcr_factory_421_page_is_hidden_' . $result_id, $this->hidden );
320
 
321
  if ( $this->hidden ) {
322
  return;
323
  }
324
 
325
- $this->internal = apply_filters( 'wbcr_factory_421_page_is_internal_' . $result_id, $this->internal );
326
 
327
  if ( $this->internal ) {
328
  $this->menu_target = null;
@@ -361,7 +361,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_AdminPage' ) ) {
361
  $this->assets( $this->scripts, $this->styles );
362
 
363
  if ( ! $this->scripts->isEmpty( 'bootstrap' ) || ! $this->styles->isEmpty( 'bootstrap' ) ) {
364
- add_action( 'wbcr_factory_421_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), [
365
  $this,
366
  'actionAdminBootstrapScripts'
367
  ] );
@@ -490,8 +490,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_AdminPage' ) ) {
490
  if ( preg_match( '/\\\f\d{3}/', $this->menu_icon ) ) {
491
  $icon_code = $this->menu_icon;
492
  } else {
493
- $plugin_path_info = $this->plugin->getPluginPathInfo();
494
- $icon_url = str_replace( '~/', $plugin_path_info->plugin_url . '/', $this->menu_icon );
495
  }
496
  }
497
 
14
  exit;
15
  }
16
 
17
+ if ( ! class_exists( 'Wbcr_FactoryPages422_AdminPage' ) ) {
18
 
19
+ class Wbcr_FactoryPages422_AdminPage extends Wbcr_FactoryPages422_Page {
20
 
21
  /**
22
  * Visible page title.
209
  */
210
  public $add_link_to_plugin_actions = false;
211
 
212
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
213
  parent::__construct( $plugin );
214
  $this->configure();
215
 
316
  public function connect() {
317
  $result_id = $this->getResultId();
318
 
319
+ $this->hidden = apply_filters( 'wbcr_factory_422_page_is_hidden_' . $result_id, $this->hidden );
320
 
321
  if ( $this->hidden ) {
322
  return;
323
  }
324
 
325
+ $this->internal = apply_filters( 'wbcr_factory_422_page_is_internal_' . $result_id, $this->internal );
326
 
327
  if ( $this->internal ) {
328
  $this->menu_target = null;
361
  $this->assets( $this->scripts, $this->styles );
362
 
363
  if ( ! $this->scripts->isEmpty( 'bootstrap' ) || ! $this->styles->isEmpty( 'bootstrap' ) ) {
364
+ add_action( 'wbcr_factory_422_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), [
365
  $this,
366
  'actionAdminBootstrapScripts'
367
  ] );
490
  if ( preg_match( '/\\\f\d{3}/', $this->menu_icon ) ) {
491
  $icon_code = $this->menu_icon;
492
  } else {
493
+ $icon_url = str_replace( '~/', $this->plugin->get_paths()->url . '/', $this->menu_icon );
 
494
  }
495
  }
496
 
libs/factory/pages/includes/page.class.php CHANGED
@@ -14,9 +14,9 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- if ( ! class_exists( 'Wbcr_FactoryPages421_Page' ) ) {
18
 
19
- class Wbcr_FactoryPages421_Page {
20
 
21
 
22
  /**
@@ -30,7 +30,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_Page' ) ) {
30
  * Чтобы не было конфликтов с другими плагинами, используйте префиксы.
31
  *
32
  * @since 1.0.0
33
- * @see FactoryPages421_AdminPage
34
  *
35
  * @var string
36
  */
@@ -39,7 +39,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_Page' ) ) {
39
  /**
40
  * Current Factory Plugin.
41
  *
42
- * @var Wbcr_Factory421_Plugin
43
  */
44
  public $plugin;
45
 
@@ -51,11 +51,11 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_Page' ) ) {
51
  //private $default_actions = array();
52
 
53
  /**
54
- * @param Wbcr_Factory421_Plugin $plugin
55
  *
56
  * @throws Exception
57
  */
58
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
59
  $this->plugin = $plugin;
60
 
61
  if ( $plugin ) {
@@ -111,7 +111,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_Page' ) ) {
111
 
112
  if ( ! method_exists( $this, $actionFunction ) ) {
113
  // todo: продумать и доработать выполнение произвольных и глобальных дейтсвия для всех страниц
114
- /*$custom_actions = apply_filters('wbcr/factory_pages_421/custom_actions', array(), $raw_action_name);
115
 
116
  if(isset($custom_actions[$raw_action_name])) {
117
  $custom_actions[$raw_action_name]();
14
  exit;
15
  }
16
 
17
+ if ( ! class_exists( 'Wbcr_FactoryPages422_Page' ) ) {
18
 
19
+ class Wbcr_FactoryPages422_Page {
20
 
21
 
22
  /**
30
  * Чтобы не было конфликтов с другими плагинами, используйте префиксы.
31
  *
32
  * @since 1.0.0
33
+ * @see FactoryPages422_AdminPage
34
  *
35
  * @var string
36
  */
39
  /**
40
  * Current Factory Plugin.
41
  *
42
+ * @var Wbcr_Factory422_Plugin
43
  */
44
  public $plugin;
45
 
51
  //private $default_actions = array();
52
 
53
  /**
54
+ * @param Wbcr_Factory422_Plugin $plugin
55
  *
56
  * @throws Exception
57
  */
58
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
59
  $this->plugin = $plugin;
60
 
61
  if ( $plugin ) {
111
 
112
  if ( ! method_exists( $this, $actionFunction ) ) {
113
  // todo: продумать и доработать выполнение произвольных и глобальных дейтсвия для всех страниц
114
+ /*$custom_actions = apply_filters('wbcr/factory_pages_422/custom_actions', array(), $raw_action_name);
115
 
116
  if(isset($custom_actions[$raw_action_name])) {
117
  $custom_actions[$raw_action_name]();
libs/factory/pages/langs/{wbcr_factory_pages_421-fr_FR.mo → wbcr_factory_pages_422-fr_FR.mo} RENAMED
File without changes
libs/factory/pages/langs/{wbcr_factory_pages_421-fr_FR.po → wbcr_factory_pages_422-fr_FR.po} RENAMED
File without changes
libs/factory/pages/langs/{wbcr_factory_pages_421-ru_RU.mo → wbcr_factory_pages_422-ru_RU.mo} RENAMED
File without changes
libs/factory/pages/langs/{wbcr_factory_pages_421-ru_RU.po → wbcr_factory_pages_422-ru_RU.po} RENAMED
File without changes
libs/factory/pages/pages.php CHANGED
@@ -14,24 +14,24 @@
14
  exit;
15
  }
16
 
17
- add_action('admin_menu', 'Wbcr_FactoryPages421::actionAdminMenu');
18
- add_action('network_admin_menu', 'Wbcr_FactoryPages421::actionAdminMenu');
19
 
20
- if( !class_exists('Wbcr_FactoryPages421') ) {
21
  /**
22
  * A base class to manage pages.
23
  *
24
  * @since 1.0.0
25
  */
26
- class Wbcr_FactoryPages421 {
27
 
28
  /**
29
- * @var Wbcr_FactoryPages421_Page[]
30
  */
31
  private static $pages = array();
32
 
33
  /**
34
- * @param Wbcr_Factory421_Plugin $plugin
35
  * @param $class_name
36
  */
37
  public static function register($plugin, $class_name)
@@ -59,7 +59,7 @@
59
  }
60
  }
61
 
62
- public static function getPageUrl(Wbcr_Factory421_Plugin $plugin, $page_id, $args = array())
63
  {
64
  if( isset(self::$pages[$plugin->getPluginName()]) ) {
65
  $pages = self::$pages[$plugin->getPluginName()];
@@ -75,7 +75,7 @@
75
  }
76
 
77
  /**
78
- * @param Wbcr_Factory421_Plugin $plugin
79
  * @return array
80
  */
81
  public static function getIds($plugin)
@@ -93,14 +93,14 @@
93
  }
94
  }
95
 
96
- if( !function_exists('wbcr_factory_pages_421_get_page_id') ) {
97
  /**
98
  *
99
- * @param Wbcr_Factory421_Plugin $plugin
100
  * @param string $page_id
101
  * @return string
102
  */
103
- function wbcr_factory_pages_421_get_page_id($plugin, $page_id)
104
  {
105
  return $page_id . '-' . $plugin->getPluginName();
106
  }
14
  exit;
15
  }
16
 
17
+ add_action('admin_menu', 'Wbcr_FactoryPages422::actionAdminMenu');
18
+ add_action('network_admin_menu', 'Wbcr_FactoryPages422::actionAdminMenu');
19
 
20
+ if( !class_exists('Wbcr_FactoryPages422') ) {
21
  /**
22
  * A base class to manage pages.
23
  *
24
  * @since 1.0.0
25
  */
26
+ class Wbcr_FactoryPages422 {
27
 
28
  /**
29
+ * @var Wbcr_FactoryPages422_Page[]
30
  */
31
  private static $pages = array();
32
 
33
  /**
34
+ * @param Wbcr_Factory422_Plugin $plugin
35
  * @param $class_name
36
  */
37
  public static function register($plugin, $class_name)
59
  }
60
  }
61
 
62
+ public static function getPageUrl(Wbcr_Factory422_Plugin $plugin, $page_id, $args = array())
63
  {
64
  if( isset(self::$pages[$plugin->getPluginName()]) ) {
65
  $pages = self::$pages[$plugin->getPluginName()];
75
  }
76
 
77
  /**
78
+ * @param Wbcr_Factory422_Plugin $plugin
79
  * @return array
80
  */
81
  public static function getIds($plugin)
93
  }
94
  }
95
 
96
+ if( !function_exists('wbcr_factory_pages_422_get_page_id') ) {
97
  /**
98
  *
99
+ * @param Wbcr_Factory422_Plugin $plugin
100
  * @param string $page_id
101
  * @return string
102
  */
103
+ function wbcr_factory_pages_422_get_page_id($plugin, $page_id)
104
  {
105
  return $page_id . '-' . $plugin->getPluginName();
106
  }
libs/factory/pages/templates/assets/css/impressive.page.template.css CHANGED
@@ -8,7 +8,7 @@
8
  #WBCR .error {
9
  display: none !important;
10
  }
11
- #WBCR .wbcr-factory-pages-421-impressive-page-template {
12
  position: relative;
13
  /**
14
  Content sections
@@ -17,134 +17,134 @@
17
  Widget in the sidebar of the plugin
18
  */
19
  }
20
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-color-grey {
21
  color: #9a9a9a;
22
  }
23
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-orange-color {
24
  color: #ffc107;
25
  }
26
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-light-orange-color {
27
  color: #ffeb3b;
28
  }
29
- #WBCR .wbcr-factory-pages-421-impressive-page-template .form-group {
30
  padding: 0 20px;
31
  }
32
- #WBCR .wbcr-factory-pages-421-impressive-page-template .form-group label {
33
  font-weight: normal;
34
  }
35
- #WBCR .wbcr-factory-pages-421-impressive-page-template .form-horizontal .control-label {
36
  max-width: 300px;
37
  }
38
- #WBCR .wbcr-factory-pages-421-impressive-page-template .factory-control-buttons {
39
  text-align: right;
40
  padding-right: 20px;
41
  }
42
- #WBCR .wbcr-factory-pages-421-impressive-page-template .factory-from-control-list label span {
43
  display: inline-block;
44
  vertical-align: bottom;
45
  }
46
- #WBCR .wbcr-factory-pages-421-impressive-page-template .factory-from-control-list label span input[type="checkbox"],
47
- #WBCR .wbcr-factory-pages-421-impressive-page-template .factory-from-control-list label span input[type="checkbox"]:focus {
48
  outline: none;
49
  }
50
- #WBCR .wbcr-factory-pages-421-impressive-page-template .alert {
51
  font-weight: bold;
52
  margin: 0 !important;
53
  border: 0;
54
  border-radius: 0;
55
  padding: 15px;
56
  }
57
- #WBCR .wbcr-factory-pages-421-impressive-page-template .alert + .wbcr-factory-page-group-header {
58
  margin-top: 0 !important;
59
  }
60
- #WBCR .wbcr-factory-pages-421-impressive-page-template .alert.alert-warning {
61
  background: #fff3d0;
62
  }
63
- #WBCR .wbcr-factory-pages-421-impressive-page-template .alert.alert-warning:nth-child(2n+1) {
64
  background: #fffde9;
65
  }
66
- #WBCR .wbcr-factory-pages-421-impressive-page-template .alert.alert-danger {
67
  background: #de716d;
68
  }
69
- #WBCR .wbcr-factory-pages-421-impressive-page-template .alert.alert-danger:nth-child(2n+1) {
70
  background: #ec8c89;
71
  }
72
- #WBCR .wbcr-factory-pages-421-impressive-page-template .alert.alert-success {
73
  background: #d0ecc4;
74
  }
75
- #WBCR .wbcr-factory-pages-421-impressive-page-template .alert.alert-success:nth-child(2n+1) {
76
  background: #e0eadb;
77
  }
78
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-header {
79
  padding: 20px 20px 40px;
80
  }
81
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-recomended-text {
82
  display: block;
83
  font-size: 11px;
84
  font-weight: lighter;
85
  color: #179347;
86
  }
87
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-options,
88
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page {
89
  position: relative;
90
  background: #e6e6e6;
91
  overflow: hidden;
92
  }
93
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-options:after,
94
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page:after {
95
  display: block;
96
  content: '';
97
  clear: both;
98
  }
99
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-group-header {
100
  background: #efefef;
101
  padding: 20px 0 10px 20px;
102
  margin: 30px 0;
103
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
104
  }
105
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-group-header:first-child {
106
  margin-top: 0;
107
  }
108
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-group-header strong {
109
  font-size: 15px;
110
  }
111
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-group-header p {
112
  color: #8c8888;
113
  font-size: 12px;
114
  }
115
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap {
116
  margin-left: 230px;
117
  padding: 80px 0 0 0;
118
  vertical-align: top;
119
  background: #fff;
120
  }
121
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-wrapper,
122
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap h2.nav-tab-wrapper,
123
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap h1.nav-tab-wrapper {
124
  border: 0;
125
  }
126
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-active {
127
  background: #efefef !important;
128
  margin-bottom: -2px !important;
129
  border-bottom: 1px solid #efefef !important;
130
  }
131
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:first-child {
132
  margin: 0;
133
  }
134
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:hover {
135
  background: #f7f7f7;
136
  }
137
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab {
138
  border: 2px solid #dedede;
139
  border-bottom: 0;
140
  box-shadow: -1px 0 0 rgba(0, 0, 0, 0.1);
141
  }
142
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:active,
143
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:focus {
144
  box-shadow: none;
145
  outline: none;
146
  }
147
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header {
148
  position: absolute;
149
  z-index: 13;
150
  top: 0;
@@ -155,7 +155,7 @@
155
  color: #fff;
156
  border-radius: 5px 5px 0 0;
157
  }
158
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo {
159
  float: left;
160
  padding: 25px 0;
161
  font-size: 20px;
@@ -168,11 +168,11 @@
168
  margin-right: 10px;
169
  background: none;
170
  }
171
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title {
172
  display: inline-block;
173
  vertical-align: middle;
174
  }
175
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title h2 {
176
  font-size: 18px;
177
  line-height: 30px;
178
  font-weight: 300;
@@ -183,12 +183,12 @@
183
  text-overflow: ellipsis;
184
  color: #fff;
185
  }
186
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control {
187
  position: relative;
188
  float: right;
189
  margin: 12px;
190
  }
191
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button {
192
  display: inline-block;
193
  vertical-align: top;
194
  font-size: 13px;
@@ -211,49 +211,49 @@
211
  text-decoration: none;
212
  z-index: 3;
213
  }
214
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save {
215
  box-shadow: none;
216
  min-width: 100px;
217
  background-color: #8bc34a;
218
  color: #fff;
219
  }
220
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:hover {
221
  background: #9dbb7b;
222
  color: #fff;
223
  }
224
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:active {
225
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
226
  }
227
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings {
228
  box-shadow: none;
229
  min-width: 200px;
230
  background-color: #9e9e9e;
231
  color: #fff;
232
  }
233
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:hover {
234
  background: #797979;
235
  color: #fff;
236
  }
237
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:active {
238
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
239
  }
240
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar {
241
  float: left;
242
  vertical-align: top;
243
  width: 230px;
244
  background: #e6e6e6;
245
  }
246
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul {
247
  padding: 0;
248
  margin-bottom: 0;
249
  margin-top: 80px;
250
  }
251
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab {
252
  display: block;
253
  background: #efefef;
254
  margin: 1px 0;
255
  }
256
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link {
257
  display: block;
258
  width: 100%;
259
  padding: 20px 20px;
@@ -264,83 +264,83 @@
264
  text-align: left;
265
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
266
  }
267
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__title {
268
  display: block;
269
  font-weight: bold;
270
  }
271
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__short-description {
272
  display: block;
273
  font-size: 13px;
274
  font-weight: normal;
275
  text-transform: none;
276
  color: #9a9a9a;
277
  }
278
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .dashicons {
279
  float: right;
280
  color: #ccc;
281
  }
282
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link::after {
283
  clear: both;
284
  }
285
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover {
286
  background: #f7f6f6;
287
  }
288
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover .dashicons {
289
  color: #9a9a9a;
290
  }
291
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link,
292
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
293
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover,
294
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
295
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:focus {
296
  outline: 0 !important;
297
  box-shadow: none !important;
298
  }
299
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab {
300
  background: #fff;
301
  }
302
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a {
303
  color: #ff5722;
304
  font-weight: bold;
305
  border-left: 5px solid #ff5722;
306
  }
307
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a .dashicons {
308
  color: #9a9a9a;
309
  }
310
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-content-section,
311
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section {
312
  display: inline-block;
313
  vertical-align: top;
314
  }
315
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-content-section {
316
  width: 74.6%;
317
  }
318
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-content-section.wbcr-fullwidth {
319
  width: 100%;
320
  }
321
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-content-section .nav-tab-wrapper {
322
  margin-top: 15px;
323
  }
324
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content {
325
  background: #f7f7f7;
326
  padding: 0 0 20px 0;
327
  border: 1px solid #dad8d8;
328
  box-shadow: -1px 0px 1px rgba(0, 0, 0, 0.1);
329
  }
330
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content > form {
331
  padding-top: 0 !important;
332
  }
333
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section {
334
  width: 25%;
335
  padding: 10px;
336
  margin: 0 0 -20px;
337
  background-color: #f9f9f9;
338
  box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.1);
339
  }
340
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-sidebar-widget {
341
  margin: 0 0 20px;
342
  }
343
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget {
344
  display: inline-block;
345
  min-height: 230px;
346
  width: 100%;
@@ -349,19 +349,19 @@
349
  padding: 20px 15px;
350
  vertical-align: top;
351
  }
352
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-hide {
353
  display: none;
354
  }
355
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-warning {
356
  background: #fff4d0;
357
  }
358
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-danger {
359
  background: #e2ffc0;
360
  }
361
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-success {
362
  background: #ffebe9;
363
  }
364
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-hint-icon-simple {
365
  display: inline-block;
366
  width: 16px;
367
  height: 16px;
@@ -373,16 +373,16 @@
373
  background: #E91E63;
374
  border-radius: 3px;
375
  }
376
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-grey {
377
  background: #E91E63;
378
  }
379
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-red {
380
  background: #9e9e9e;
381
  }
382
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-green {
383
  background: #8bc34a;
384
  }
385
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-icon-5stars {
386
  display: block;
387
  width: 80px;
388
  height: 17px;
@@ -390,23 +390,23 @@
390
  vertical-align: middle;
391
  margin-bottom: 5px;
392
  }
393
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] {
394
  display: block;
395
  margin: 30px auto 0;
396
  outline: none;
397
  }
398
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :focus,
399
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :active {
400
  box-shadow: none;
401
  }
402
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form .wbcr-factory-donation-price {
403
  font-size: 50px;
404
  margin-top: 30px;
405
  text-align: center;
406
  font-weight: 600;
407
  color: #8BC34A;
408
  }
409
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box {
410
  min-height: 240px;
411
  margin-bottom: 20px;
412
  text-align: center;
@@ -414,24 +414,24 @@
414
  padding: 30px;
415
  border: 1px solid #f3f1e7;
416
  }
417
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box .dashicons {
418
  width: 50px;
419
  height: 50px;
420
  font-size: 50px;
421
  color: #FFC107;
422
  line-height: normal;
423
  }
424
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box h3 {
425
  color: #7b6111;
426
  }
427
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box p {
428
  color: #9e9e9e;
429
  }
430
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-buttons-wrap {
431
  margin-top: 20px;
432
  text-align: center;
433
  }
434
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button {
435
  display: inline-block;
436
  padding: 20px 60px;
437
  background-color: #FFC107;
@@ -441,67 +441,67 @@
441
  font-weight: bold;
442
  transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
443
  }
444
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button:hover {
445
  background-color: #ffce3a;
446
  }
447
- #WBCR .wbcr-factory-pages-421-impressive-page-template #wbcr-factory-confirm-dialog {
448
  padding: 20px;
449
  background: #ffffff;
450
  }
451
- #WBCR .wbcr-factory-pages-421-impressive-page-template #wbcr-factory-confirm-dialog .updated,
452
- #WBCR .wbcr-factory-pages-421-impressive-page-template #wbcr-factory-confirm-dialog .alert {
453
  display: none;
454
  }
455
- #WBCR .wbcr-factory-pages-421-impressive-page-template #wbcr-factory-confirm-dialog h2 {
456
  font-size: 18px;
457
  margin-top: 10px;
458
  }
459
- #WBCR .wbcr-factory-pages-421-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-description {
460
  padding: 10px;
461
  background: #ffedeb;
462
  border: 1px solid #ffdfdc;
463
  margin: 15px 0;
464
  }
465
- #WBCR .wbcr-factory-pages-421-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-hint {
466
  margin-bottom: 15px;
467
  color: #7b7b7b;
468
  }
469
  @media screen and (max-width: 1367px) {
470
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-content-section {
471
  width: 69.6%;
472
  }
473
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section {
474
  width: 30%;
475
  }
476
  }
477
  @media screen and (max-width: 1320px) {
478
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-content-section {
479
  width: 100%;
480
  }
481
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-right-sidebar-section {
482
  display: none !important;
483
  }
484
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-header-logo .dash {
485
  display: none !important;
486
  }
487
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-header-title {
488
  display: none !important;
489
  }
490
  }
491
  @media screen and (max-width: 950px) {
492
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar {
493
  width: 70px;
494
  }
495
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a {
496
  font-size: 0;
497
  }
498
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__title {
499
  font-size: 0;
500
  }
501
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__short-description {
502
  display: none !important;
503
  }
504
- #WBCR .wbcr-factory-pages-421-impressive-page-template .wbcr-factory-page-inner-wrap {
505
  margin-left: 70px;
506
  }
507
  }
8
  #WBCR .error {
9
  display: none !important;
10
  }
11
+ #WBCR .wbcr-factory-pages-422-impressive-page-template {
12
  position: relative;
13
  /**
14
  Content sections
17
  Widget in the sidebar of the plugin
18
  */
19
  }
20
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-color-grey {
21
  color: #9a9a9a;
22
  }
23
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-orange-color {
24
  color: #ffc107;
25
  }
26
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-light-orange-color {
27
  color: #ffeb3b;
28
  }
29
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .form-group {
30
  padding: 0 20px;
31
  }
32
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .form-group label {
33
  font-weight: normal;
34
  }
35
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .form-horizontal .control-label {
36
  max-width: 300px;
37
  }
38
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .factory-control-buttons {
39
  text-align: right;
40
  padding-right: 20px;
41
  }
42
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .factory-from-control-list label span {
43
  display: inline-block;
44
  vertical-align: bottom;
45
  }
46
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .factory-from-control-list label span input[type="checkbox"],
47
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .factory-from-control-list label span input[type="checkbox"]:focus {
48
  outline: none;
49
  }
50
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .alert {
51
  font-weight: bold;
52
  margin: 0 !important;
53
  border: 0;
54
  border-radius: 0;
55
  padding: 15px;
56
  }
57
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .alert + .wbcr-factory-page-group-header {
58
  margin-top: 0 !important;
59
  }
60
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .alert.alert-warning {
61
  background: #fff3d0;
62
  }
63
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .alert.alert-warning:nth-child(2n+1) {
64
  background: #fffde9;
65
  }
66
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .alert.alert-danger {
67
  background: #de716d;
68
  }
69
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .alert.alert-danger:nth-child(2n+1) {
70
  background: #ec8c89;
71
  }
72
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .alert.alert-success {
73
  background: #d0ecc4;
74
  }
75
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .alert.alert-success:nth-child(2n+1) {
76
  background: #e0eadb;
77
  }
78
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-header {
79
  padding: 20px 20px 40px;
80
  }
81
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-recomended-text {
82
  display: block;
83
  font-size: 11px;
84
  font-weight: lighter;
85
  color: #179347;
86
  }
87
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-options,
88
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page {
89
  position: relative;
90
  background: #e6e6e6;
91
  overflow: hidden;
92
  }
93
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-options:after,
94
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page:after {
95
  display: block;
96
  content: '';
97
  clear: both;
98
  }
99
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-group-header {
100
  background: #efefef;
101
  padding: 20px 0 10px 20px;
102
  margin: 30px 0;
103
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
104
  }
105
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-group-header:first-child {
106
  margin-top: 0;
107
  }
108
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-group-header strong {
109
  font-size: 15px;
110
  }
111
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-group-header p {
112
  color: #8c8888;
113
  font-size: 12px;
114
  }
115
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap {
116
  margin-left: 230px;
117
  padding: 80px 0 0 0;
118
  vertical-align: top;
119
  background: #fff;
120
  }
121
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-wrapper,
122
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap h2.nav-tab-wrapper,
123
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap h1.nav-tab-wrapper {
124
  border: 0;
125
  }
126
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-active {
127
  background: #efefef !important;
128
  margin-bottom: -2px !important;
129
  border-bottom: 1px solid #efefef !important;
130
  }
131
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:first-child {
132
  margin: 0;
133
  }
134
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:hover {
135
  background: #f7f7f7;
136
  }
137
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab {
138
  border: 2px solid #dedede;
139
  border-bottom: 0;
140
  box-shadow: -1px 0 0 rgba(0, 0, 0, 0.1);
141
  }
142
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:active,
143
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:focus {
144
  box-shadow: none;
145
  outline: none;
146
  }
147
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header {
148
  position: absolute;
149
  z-index: 13;
150
  top: 0;
155
  color: #fff;
156
  border-radius: 5px 5px 0 0;
157
  }
158
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo {
159
  float: left;
160
  padding: 25px 0;
161
  font-size: 20px;
168
  margin-right: 10px;
169
  background: none;
170
  }
171
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title {
172
  display: inline-block;
173
  vertical-align: middle;
174
  }
175
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title h2 {
176
  font-size: 18px;
177
  line-height: 30px;
178
  font-weight: 300;
183
  text-overflow: ellipsis;
184
  color: #fff;
185
  }
186
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control {
187
  position: relative;
188
  float: right;
189
  margin: 12px;
190
  }
191
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button {
192
  display: inline-block;
193
  vertical-align: top;
194
  font-size: 13px;
211
  text-decoration: none;
212
  z-index: 3;
213
  }
214
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save {
215
  box-shadow: none;
216
  min-width: 100px;
217
  background-color: #8bc34a;
218
  color: #fff;
219
  }
220
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:hover {
221
  background: #9dbb7b;
222
  color: #fff;
223
  }
224
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:active {
225
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
226
  }
227
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings {
228
  box-shadow: none;
229
  min-width: 200px;
230
  background-color: #9e9e9e;
231
  color: #fff;
232
  }
233
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:hover {
234
  background: #797979;
235
  color: #fff;
236
  }
237
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:active {
238
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
239
  }
240
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar {
241
  float: left;
242
  vertical-align: top;
243
  width: 230px;
244
  background: #e6e6e6;
245
  }
246
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul {
247
  padding: 0;
248
  margin-bottom: 0;
249
  margin-top: 80px;
250
  }
251
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab {
252
  display: block;
253
  background: #efefef;
254
  margin: 1px 0;
255
  }
256
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link {
257
  display: block;
258
  width: 100%;
259
  padding: 20px 20px;
264
  text-align: left;
265
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
266
  }
267
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__title {
268
  display: block;
269
  font-weight: bold;
270
  }
271
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__short-description {
272
  display: block;
273
  font-size: 13px;
274
  font-weight: normal;
275
  text-transform: none;
276
  color: #9a9a9a;
277
  }
278
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .dashicons {
279
  float: right;
280
  color: #ccc;
281
  }
282
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link::after {
283
  clear: both;
284
  }
285
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover {
286
  background: #f7f6f6;
287
  }
288
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover .dashicons {
289
  color: #9a9a9a;
290
  }
291
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link,
292
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
293
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover,
294
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
295
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:focus {
296
  outline: 0 !important;
297
  box-shadow: none !important;
298
  }
299
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab {
300
  background: #fff;
301
  }
302
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a {
303
  color: #ff5722;
304
  font-weight: bold;
305
  border-left: 5px solid #ff5722;
306
  }
307
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a .dashicons {
308
  color: #9a9a9a;
309
  }
310
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-content-section,
311
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section {
312
  display: inline-block;
313
  vertical-align: top;
314
  }
315
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-content-section {
316
  width: 74.6%;
317
  }
318
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-content-section.wbcr-fullwidth {
319
  width: 100%;
320
  }
321
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-content-section .nav-tab-wrapper {
322
  margin-top: 15px;
323
  }
324
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content {
325
  background: #f7f7f7;
326
  padding: 0 0 20px 0;
327
  border: 1px solid #dad8d8;
328
  box-shadow: -1px 0px 1px rgba(0, 0, 0, 0.1);
329
  }
330
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content > form {
331
  padding-top: 0 !important;
332
  }
333
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section {
334
  width: 25%;
335
  padding: 10px;
336
  margin: 0 0 -20px;
337
  background-color: #f9f9f9;
338
  box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.1);
339
  }
340
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-sidebar-widget {
341
  margin: 0 0 20px;
342
  }
343
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget {
344
  display: inline-block;
345
  min-height: 230px;
346
  width: 100%;
349
  padding: 20px 15px;
350
  vertical-align: top;
351
  }
352
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-hide {
353
  display: none;
354
  }
355
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-warning {
356
  background: #fff4d0;
357
  }
358
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-danger {
359
  background: #e2ffc0;
360
  }
361
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-success {
362
  background: #ffebe9;
363
  }
364
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-hint-icon-simple {
365
  display: inline-block;
366
  width: 16px;
367
  height: 16px;
373
  background: #E91E63;
374
  border-radius: 3px;
375
  }
376
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-grey {
377
  background: #E91E63;
378
  }
379
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-red {
380
  background: #9e9e9e;
381
  }
382
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-green {
383
  background: #8bc34a;
384
  }
385
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-icon-5stars {
386
  display: block;
387
  width: 80px;
388
  height: 17px;
390
  vertical-align: middle;
391
  margin-bottom: 5px;
392
  }
393
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] {
394
  display: block;
395
  margin: 30px auto 0;
396
  outline: none;
397
  }
398
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :focus,
399
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :active {
400
  box-shadow: none;
401
  }
402
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form .wbcr-factory-donation-price {
403
  font-size: 50px;
404
  margin-top: 30px;
405
  text-align: center;
406
  font-weight: 600;
407
  color: #8BC34A;
408
  }
409
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box {
410
  min-height: 240px;
411
  margin-bottom: 20px;
412
  text-align: center;
414
  padding: 30px;
415
  border: 1px solid #f3f1e7;
416
  }
417
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box .dashicons {
418
  width: 50px;
419
  height: 50px;
420
  font-size: 50px;
421
  color: #FFC107;
422
  line-height: normal;
423
  }
424
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box h3 {
425
  color: #7b6111;
426
  }
427
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box p {
428
  color: #9e9e9e;
429
  }
430
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-buttons-wrap {
431
  margin-top: 20px;
432
  text-align: center;
433
  }
434
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button {
435
  display: inline-block;
436
  padding: 20px 60px;
437
  background-color: #FFC107;
441
  font-weight: bold;
442
  transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
443
  }
444
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button:hover {
445
  background-color: #ffce3a;
446
  }
447
+ #WBCR .wbcr-factory-pages-422-impressive-page-template #wbcr-factory-confirm-dialog {
448
  padding: 20px;
449
  background: #ffffff;
450
  }
451
+ #WBCR .wbcr-factory-pages-422-impressive-page-template #wbcr-factory-confirm-dialog .updated,
452
+ #WBCR .wbcr-factory-pages-422-impressive-page-template #wbcr-factory-confirm-dialog .alert {
453
  display: none;
454
  }
455
+ #WBCR .wbcr-factory-pages-422-impressive-page-template #wbcr-factory-confirm-dialog h2 {
456
  font-size: 18px;
457
  margin-top: 10px;
458
  }
459
+ #WBCR .wbcr-factory-pages-422-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-description {
460
  padding: 10px;
461
  background: #ffedeb;
462
  border: 1px solid #ffdfdc;
463
  margin: 15px 0;
464
  }
465
+ #WBCR .wbcr-factory-pages-422-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-hint {
466
  margin-bottom: 15px;
467
  color: #7b7b7b;
468
  }
469
  @media screen and (max-width: 1367px) {
470
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-content-section {
471
  width: 69.6%;
472
  }
473
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section {
474
  width: 30%;
475
  }
476
  }
477
  @media screen and (max-width: 1320px) {
478
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-content-section {
479
  width: 100%;
480
  }
481
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-right-sidebar-section {
482
  display: none !important;
483
  }
484
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-header-logo .dash {
485
  display: none !important;
486
  }
487
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-header-title {
488
  display: none !important;
489
  }
490
  }
491
  @media screen and (max-width: 950px) {
492
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar {
493
  width: 70px;
494
  }
495
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a {
496
  font-size: 0;
497
  }
498
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__title {
499
  font-size: 0;
500
  }
501
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__short-description {
502
  display: none !important;
503
  }
504
+ #WBCR .wbcr-factory-pages-422-impressive-page-template .wbcr-factory-page-inner-wrap {
505
  margin-left: 70px;
506
  }
507
  }
libs/factory/pages/templates/impressive-page.class.php CHANGED
@@ -14,11 +14,11 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
18
  /**
19
- * Class Wbcr_FactoryPages421_ImpressiveThemplate
20
  */
21
- abstract class Wbcr_FactoryPages421_ImpressiveThemplate extends Wbcr_FactoryPages421_AdminPage {
22
 
23
  /**
24
  * Тип страницы:
@@ -112,11 +112,11 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
112
  public $page_menu = [];
113
 
114
  /**
115
- * @param Wbcr_Factory421_Plugin $plugin
116
  */
117
- public function __construct( Wbcr_Factory421_Plugin $plugin ) {
118
- $this->menuIcon = FACTORY_PAGES_421_URL . '/templates/assets/img/webcraftic-plugin-icon.png';
119
- //$allow_multisite = apply_filters('wbcr_factory_421_core_admin_allow_multisite', false);
120
 
121
  if ( is_multisite() && $this->available_for_multisite && $plugin->isNetworkActive() ) {
122
  $this->network = true;
@@ -126,7 +126,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
126
 
127
  parent::__construct( $plugin );
128
 
129
- $this->title_plugin_action_link = __( 'Settings', 'wbcr_factory_pages_421' );
130
 
131
  $this->setPageMenu();
132
  }
@@ -170,7 +170,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
170
  *
171
  * @since 1.0.0
172
  * @return void
173
- * @see FactoryPages421_AdminPage
174
  *
175
  */
176
  public function assets( $scripts, $styles ) {
@@ -191,7 +191,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
191
  'control.checkbox'
192
  ], 'bootstrap' );
193
 
194
- $this->styles->add( FACTORY_PAGES_421_URL . '/templates/assets/css/impressive.page.template.css' );
195
  }
196
 
197
  /**
@@ -204,7 +204,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
204
  * @since 4.0.8 - добавлен
205
  * @since 4.0.9 - является устаревшим
206
  */
207
- $plugin_title = wbcr_factory_421_apply_filters_deprecated( 'wbcr/factory/imppage/plugin_title', [
208
  $this->plugin->getPluginTitle(),
209
  $this->plugin->getPluginName()
210
  ], '4.0.9', 'wbcr/factory/pages/impressive/plugin_title' );
@@ -280,22 +280,22 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
280
  public function flushCacheAndRulesAction() {
281
  check_admin_referer( 'wbcr_factory_' . $this->getResultId() . '_flush_action' );
282
 
283
- if ( class_exists( 'WbcrFactoryClearfy213_Helpers' ) ) {
284
- WbcrFactoryClearfy213_Helpers::flushPageCache();
285
  }
286
 
287
  /**
288
  * @since 4.0.1 - является устаревшим
289
  */
290
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_421_imppage_flush_cache', [
291
  $this->plugin->getPluginName(),
292
  $this->getResultId()
293
- ], '4.0.1', 'wbcr_factory_421_imppage_after_form_save' );
294
 
295
  /**
296
  * @since 4.0.9 - является устаревшим
297
  */
298
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_421_imppage_after_form_save', [
299
  $this->plugin,
300
  $this
301
  ], '4.0.9', 'wbcr/factory/pages/impressive/after_form_save' );
@@ -314,7 +314,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
314
  /**
315
  * @since 4.0.9 - является устаревшим
316
  */
317
- $redirect_args = wbcr_factory_421_apply_filters_deprecated( 'wbcr_factory_421_imppage_after_form_save_redirect_args', [ $redirect_args ], '4.0.9', 'wbcr/factory/pages/impressive/save_redirect_args' );
318
 
319
  /**
320
  * @since 4.0.1 - добавлен
@@ -331,7 +331,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
331
  */
332
  protected function warningNotice() {
333
  /*if( WP_CACHE ) {
334
- $this->printWarningNotice(__("It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_421'));
335
  }*/
336
  // Метод предназначен для вызова в дочернем классе
337
  }
@@ -403,7 +403,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
403
  /**
404
  * @since 4.0.9 - является устаревшим
405
  */
406
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_pages_421_imppage_print_all_notices', [
407
  $this->plugin,
408
  $this
409
  ], '4.0.9', 'wbcr/factory/pages/impressive/print_all_notices' );
@@ -422,14 +422,14 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
422
  $this->plugin->getPluginName() . '_saved' => '1'
423
  ],
424
  'type' => 'success',
425
- 'message' => __( 'The settings have been updated successfully!', 'wbcr_factory_pages_421' ) . ( WP_CACHE ? '<br>' . __( "It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_421' ) : '' )
426
  ]
427
  ];
428
 
429
  /**
430
  * @since 4.0.9 - является устаревшим
431
  */
432
- $notices = wbcr_factory_421_apply_filters_deprecated( 'wbcr_factory_pages_421_imppage_actions_notice', [
433
  $notices,
434
  $this->plugin,
435
  $this->id
@@ -601,7 +601,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
601
  <?php do_action( 'wbcr/factory/pages/impressive/header', $this->plugin->getPluginName() ) ?>
602
 
603
  <?php if ( $this->type == 'options' ): ?>
604
- <input name="<?= $this->plugin->getPluginName() ?>_save_action" class="wbcr-factory-button wbcr-factory-type-save" type="submit" value="<?php _e( 'Save', 'wbcr_factory_pages_421' ); ?>">
605
  <?php wp_nonce_field( 'wbcr_factory_' . $this->getResultId() . '_save_action' ); ?>
606
  <?php endif; ?>
607
  </div>
@@ -656,7 +656,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
656
  /**
657
  * @since 4.0.9 - является устаревшим
658
  */
659
- $widgets = wbcr_factory_421_apply_filters_deprecated( 'wbcr_factory_pages_421_imppage_get_widgets', [
660
  $widgets,
661
  $position,
662
  $this->plugin,
@@ -673,12 +673,12 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
673
  }
674
 
675
  protected function showOptions() {
676
- $form = new Wbcr_FactoryForms419_Form( [
677
  'scope' => rtrim( $this->plugin->getPrefix(), '_' ),
678
  'name' => $this->getResultId() . "-options"
679
  ], $this->plugin );
680
 
681
- $form->setProvider( new Wbcr_FactoryForms419_OptionsValueProvider( $this->plugin ) );
682
 
683
  $options = $this->getPageOptions();
684
 
@@ -718,14 +718,14 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
718
  check_admin_referer( 'wbcr_factory_' . $this->getResultId() . '_save_action' );
719
 
720
  if ( ! current_user_can( 'administrator' ) && ! current_user_can( $this->capabilitiy ) ) {
721
- wp_die( __( 'You do not have permission to edit page.', 'wbcr_factory_pages_421' ) );
722
  exit;
723
  }
724
 
725
  /**
726
  * @since 4.0.9 - является устаревшим
727
  */
728
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_421_imppage_before_form_save', [
729
  $form,
730
  $this->plugin,
731
  $this
@@ -744,7 +744,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
744
  /**
745
  * @since 4.0.9 - является устаревшим
746
  */
747
- wbcr_factory_421_do_action_deprecated( 'wbcr_factory_421_imppage_form_saved', [
748
  $form,
749
  $this->plugin,
750
  $this
@@ -765,7 +765,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
765
 
766
  ?>
767
  <div id="WBCR" class="wrap">
768
- <div class="wbcr-factory-pages-421-impressive-page-template factory-bootstrap-422 factory-fontawesome-000">
769
  <div class="wbcr-factory-options wbcr-factory-options-<?= esc_attr( $this->id ) ?>">
770
  <div class="wbcr-factory-left-navigation-bar">
771
  <?php $this->showPageMenu() ?>
@@ -810,7 +810,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
810
 
811
  protected function showPage( $content = null ) { ?>
812
  <div id="WBCR" class="wrap">
813
- <div class="wbcr-factory-pages-421-impressive-page-template factory-bootstrap-422 factory-fontawesome-000">
814
  <div class="wbcr-factory-page wbcr-factory-page-<?= $this->id ?>">
815
  <?php $this->showHeader(); ?>
816
  <div class="wbcr-factory-left-navigation-bar">
@@ -873,7 +873,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages421_ImpressiveThemplate' ) ) {
873
  public function confirmPageTemplate( $data ) {
874
  ?>
875
  <div id="WBCR" class="wrap">
876
- <div class="wbcr-factory-pages-421-impressive-page-template factory-bootstrap-422 factory-fontawesome-000">
877
  <div id="wbcr-factory-confirm-dialog">
878
  <h2><?php echo $data['title'] ?></h2>
879
  <p class="wbcr-factory-confirm-description"><?php echo $data['description'] ?></p>
14
  exit;
15
  }
16
 
17
+ if ( ! class_exists( 'Wbcr_FactoryPages422_ImpressiveThemplate' ) ) {
18
  /**
19
+ * Class Wbcr_FactoryPages422_ImpressiveThemplate
20
  */
21
+ abstract class Wbcr_FactoryPages422_ImpressiveThemplate extends Wbcr_FactoryPages422_AdminPage {
22
 
23
  /**
24
  * Тип страницы:
112
  public $page_menu = [];
113
 
114
  /**
115
+ * @param Wbcr_Factory422_Plugin $plugin
116
  */
117
+ public function __construct( Wbcr_Factory422_Plugin $plugin ) {
118
+ $this->menuIcon = FACTORY_PAGES_422_URL . '/templates/assets/img/webcraftic-plugin-icon.png';
119
+ //$allow_multisite = apply_filters('wbcr_factory_422_core_admin_allow_multisite', false);
120
 
121
  if ( is_multisite() && $this->available_for_multisite && $plugin->isNetworkActive() ) {
122
  $this->network = true;
126
 
127
  parent::__construct( $plugin );
128
 
129
+ $this->title_plugin_action_link = __( 'Settings', 'wbcr_factory_pages_422' );
130
 
131
  $this->setPageMenu();
132
  }
170
  *
171
  * @since 1.0.0
172
  * @return void
173
+ * @see FactoryPages422_AdminPage
174
  *
175
  */
176
  public function assets( $scripts, $styles ) {
191
  'control.checkbox'
192
  ], 'bootstrap' );
193
 
194
+ $this->styles->add( FACTORY_PAGES_422_URL . '/templates/assets/css/impressive.page.template.css' );
195
  }
196
 
197
  /**
204
  * @since 4.0.8 - добавлен
205
  * @since 4.0.9 - является устаревшим
206
  */
207
+ $plugin_title = wbcr_factory_422_apply_filters_deprecated( 'wbcr/factory/imppage/plugin_title', [
208
  $this->plugin->getPluginTitle(),
209
  $this->plugin->getPluginName()
210
  ], '4.0.9', 'wbcr/factory/pages/impressive/plugin_title' );
280
  public function flushCacheAndRulesAction() {
281
  check_admin_referer( 'wbcr_factory_' . $this->getResultId() . '_flush_action' );
282
 
283
+ if ( class_exists( 'WbcrFactoryClearfy214_Helpers' ) ) {
284
+ WbcrFactoryClearfy214_Helpers::flushPageCache();
285
  }
286
 
287
  /**
288
  * @since 4.0.1 - является устаревшим
289
  */
290
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_422_imppage_flush_cache', [
291
  $this->plugin->getPluginName(),
292
  $this->getResultId()
293
+ ], '4.0.1', 'wbcr_factory_422_imppage_after_form_save' );
294
 
295
  /**
296
  * @since 4.0.9 - является устаревшим
297
  */
298
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_422_imppage_after_form_save', [
299
  $this->plugin,
300
  $this
301
  ], '4.0.9', 'wbcr/factory/pages/impressive/after_form_save' );
314
  /**
315
  * @since 4.0.9 - является устаревшим
316
  */
317
+ $redirect_args = wbcr_factory_422_apply_filters_deprecated( 'wbcr_factory_422_imppage_after_form_save_redirect_args', [ $redirect_args ], '4.0.9', 'wbcr/factory/pages/impressive/save_redirect_args' );
318
 
319
  /**
320
  * @since 4.0.1 - добавлен
331
  */
332
  protected function warningNotice() {
333
  /*if( WP_CACHE ) {
334
+ $this->printWarningNotice(__("It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_422'));
335
  }*/
336
  // Метод предназначен для вызова в дочернем классе
337
  }
403
  /**
404
  * @since 4.0.9 - является устаревшим
405
  */
406
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_pages_422_imppage_print_all_notices', [
407
  $this->plugin,
408
  $this
409
  ], '4.0.9', 'wbcr/factory/pages/impressive/print_all_notices' );
422
  $this->plugin->getPluginName() . '_saved' => '1'
423
  ],
424
  'type' => 'success',
425
+ 'message' => __( 'The settings have been updated successfully!', 'wbcr_factory_pages_422' ) . ( WP_CACHE ? '<br>' . __( "It seems that a caching/performance plugin is active on this site. Please manually invalidate that plugin's cache after making any changes to the settings below.", 'wbcr_factory_pages_422' ) : '' )
426
  ]
427
  ];
428
 
429
  /**
430
  * @since 4.0.9 - является устаревшим
431
  */
432
+ $notices = wbcr_factory_422_apply_filters_deprecated( 'wbcr_factory_pages_422_imppage_actions_notice', [
433
  $notices,
434
  $this->plugin,
435
  $this->id
601
  <?php do_action( 'wbcr/factory/pages/impressive/header', $this->plugin->getPluginName() ) ?>
602
 
603
  <?php if ( $this->type == 'options' ): ?>
604
+ <input name="<?= $this->plugin->getPluginName() ?>_save_action" class="wbcr-factory-button wbcr-factory-type-save" type="submit" value="<?php _e( 'Save', 'wbcr_factory_pages_422' ); ?>">
605
  <?php wp_nonce_field( 'wbcr_factory_' . $this->getResultId() . '_save_action' ); ?>
606
  <?php endif; ?>
607
  </div>
656
  /**
657
  * @since 4.0.9 - является устаревшим
658
  */
659
+ $widgets = wbcr_factory_422_apply_filters_deprecated( 'wbcr_factory_pages_422_imppage_get_widgets', [
660
  $widgets,
661
  $position,
662
  $this->plugin,
673
  }
674
 
675
  protected function showOptions() {
676
+ $form = new Wbcr_FactoryForms420_Form( [
677
  'scope' => rtrim( $this->plugin->getPrefix(), '_' ),
678
  'name' => $this->getResultId() . "-options"
679
  ], $this->plugin );
680
 
681
+ $form->setProvider( new Wbcr_FactoryForms420_OptionsValueProvider( $this->plugin ) );
682
 
683
  $options = $this->getPageOptions();
684
 
718
  check_admin_referer( 'wbcr_factory_' . $this->getResultId() . '_save_action' );
719
 
720
  if ( ! current_user_can( 'administrator' ) && ! current_user_can( $this->capabilitiy ) ) {
721
+ wp_die( __( 'You do not have permission to edit page.', 'wbcr_factory_pages_422' ) );
722
  exit;
723
  }
724
 
725
  /**
726
  * @since 4.0.9 - является устаревшим
727
  */
728
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_422_imppage_before_form_save', [
729
  $form,
730
  $this->plugin,
731
  $this
744
  /**
745
  * @since 4.0.9 - является устаревшим
746
  */
747
+ wbcr_factory_422_do_action_deprecated( 'wbcr_factory_422_imppage_form_saved', [
748
  $form,
749
  $this->plugin,
750
  $this
765
 
766
  ?>
767
  <div id="WBCR" class="wrap">
768
+ <div class="wbcr-factory-pages-422-impressive-page-template factory-bootstrap-423 factory-fontawesome-000">
769
  <div class="wbcr-factory-options wbcr-factory-options-<?= esc_attr( $this->id ) ?>">
770
  <div class="wbcr-factory-left-navigation-bar">
771
  <?php $this->showPageMenu() ?>
810
 
811
  protected function showPage( $content = null ) { ?>
812
  <div id="WBCR" class="wrap">
813
+ <div class="wbcr-factory-pages-422-impressive-page-template factory-bootstrap-423 factory-fontawesome-000">
814
  <div class="wbcr-factory-page wbcr-factory-page-<?= $this->id ?>">
815
  <?php $this->showHeader(); ?>
816
  <div class="wbcr-factory-left-navigation-bar">
873
  public function confirmPageTemplate( $data ) {
874
  ?>
875
  <div id="WBCR" class="wrap">
876
+ <div class="wbcr-factory-pages-422-impressive-page-template factory-bootstrap-423 factory-fontawesome-000">
877
  <div id="wbcr-factory-confirm-dialog">
878
  <h2><?php echo $data['title'] ?></h2>
879
  <p class="wbcr-factory-confirm-description"><?php echo $data['description'] ?></p>
migrations/010103.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WCLUpdate010103 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  global $wpdb;
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WCLUpdate010103 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  global $wpdb;
migrations/010108.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WCLUpdate010108 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  global $wpdb, $wbcr_clearfy_plugin;
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WCLUpdate010108 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  global $wpdb, $wbcr_clearfy_plugin;
migrations/010200.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WCLUpdate010200 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  WCL_Plugin::app()->deleteOption( 'enable_wordpres_sanitize' );
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WCLUpdate010200 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  WCL_Plugin::app()->deleteOption( 'enable_wordpres_sanitize' );
migrations/010300.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WCL_Update010300 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  // Deactivate components for code minification, if alternative plugins are installed
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WCL_Update010300 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  // Deactivate components for code minification, if alternative plugins are installed
migrations/010402.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WCLUpdate010402 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  /**
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WCLUpdate010402 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  /**
migrations/010501.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WCLUpdate010501 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  require_once( WCL_PLUGIN_DIR . '/components/ga-cache/migrations/030002.php' );
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WCLUpdate010501 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  require_once( WCL_PLUGIN_DIR . '/components/ga-cache/migrations/030002.php' );
migrations/010504.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WCLUpdate010504 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  $deactivate_components = $this->plugin->getPopulateOption( 'deactive_preinstall_components', [] );
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WCLUpdate010504 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  $deactivate_components = $this->plugin->getPopulateOption( 'deactive_preinstall_components', [] );
migrations/010505.php CHANGED
@@ -4,7 +4,7 @@
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
- class WCLUpdate010505 extends Wbcr_Factory421_Update {
8
 
9
  public function install() {
10
  $this->update_premium();
@@ -34,7 +34,7 @@ class WCLUpdate010505 extends Wbcr_Factory421_Update {
34
  */
35
  $this->clean_hide_my_wp_data();
36
 
37
- WbcrFactoryClearfy213_Helpers::flushPageCache();
38
  }
39
 
40
  /**
4
  * Updates for altering the table used to store statistics data.
5
  * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
  */
7
+ class WCLUpdate010505 extends Wbcr_Factory422_Update {
8
 
9
  public function install() {
10
  $this->update_premium();
34
  */
35
  $this->clean_hide_my_wp_data();
36
 
37
+ WbcrFactoryClearfy214_Helpers::flushPageCache();
38
  }
39
 
40
  /**
migrations/010601.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php #comp-page builds: premium
2
+
3
+ /**
4
+ * Updates for altering the table used to store statistics data.
5
+ * Adds new columns and renames existing ones in order to add support for the new social buttons.
6
+ */
7
+ class WCLUpdate010601 extends Wbcr_Factory422_Update {
8
+
9
+ public function install() {
10
+ $this->plugin->updatePopulateOption( "last_check_premium_update_time", 0 );
11
+ }
12
+ }
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: webcraftic
3
  Donate link: https://clearfy.pro/pricing/?utm_source=wordpress.org&utm_campaign=wbcr_clearfy&utm_content=repo
4
  Tags: wp disable, disable comments, disable updates, disable emoji, disable embeds, remove querystrings, disable rest api, bicycles by falbar, remove rss feeds, remove meta generator, yoast seo remove comments, yoast seo, yoast seo breadcrumbs, disable embeds,remove embeds, remove rsd link, dns-prefetch, remove dns-prefetch, meta generator, rsd link, wlw manifest link, remove wlw manifest link, canonical link, remove canonical link, shortlink link, remove shortlink link, emoji, attachment pages, remove attachment pages, rss feeds, disable rss feeds, rest api, disable rest api, remove rest api, clearfy, archives date, post pagination, archives author, hide login errors, recent comments, tag, rpc, xml, xml rpc, xmlrpc, admin bar, remove querystrings, reduce HTTP requests, disable heartbeat, disable revision, heartbeat, revision, clean, optimize, remove rest-api, remove rest-api, remove jquery migrate, html minify, robots.txt editor, plugin updates, disable plugin updates, disable core updates, core updates, enable automatic updates, disable widgets, disable default widgets, remove html comments
5
  Requires at least: 4.7
6
- Tested up to: 5.2
7
  Requires PHP: 5.4
8
  Stable tag: trunk
9
  License: GPLv2
@@ -238,6 +238,14 @@ Of course! To do this, email us your wishes with address, which you will find in
238
 
239
 
240
  == Changelog ==
 
 
 
 
 
 
 
 
241
  = 1.6.0 (12.10.2019) =
242
  * Fixed: [Google analytic cache] a bug with creating a local copy of the Google analytics library.
243
  * Fixed: [Assets manager component] fatal error with "Call to undefined function wp_scripts_get_suffix"
3
  Donate link: https://clearfy.pro/pricing/?utm_source=wordpress.org&utm_campaign=wbcr_clearfy&utm_content=repo
4
  Tags: wp disable, disable comments, disable updates, disable emoji, disable embeds, remove querystrings, disable rest api, bicycles by falbar, remove rss feeds, remove meta generator, yoast seo remove comments, yoast seo, yoast seo breadcrumbs, disable embeds,remove embeds, remove rsd link, dns-prefetch, remove dns-prefetch, meta generator, rsd link, wlw manifest link, remove wlw manifest link, canonical link, remove canonical link, shortlink link, remove shortlink link, emoji, attachment pages, remove attachment pages, rss feeds, disable rss feeds, rest api, disable rest api, remove rest api, clearfy, archives date, post pagination, archives author, hide login errors, recent comments, tag, rpc, xml, xml rpc, xmlrpc, admin bar, remove querystrings, reduce HTTP requests, disable heartbeat, disable revision, heartbeat, revision, clean, optimize, remove rest-api, remove rest-api, remove jquery migrate, html minify, robots.txt editor, plugin updates, disable plugin updates, disable core updates, core updates, enable automatic updates, disable widgets, disable default widgets, remove html comments
5
  Requires at least: 4.7
6
+ Tested up to: 5.3
7
  Requires PHP: 5.4
8
  Stable tag: trunk
9
  License: GPLv2
238
 
239
 
240
  == Changelog ==
241
+ = 1.6.1 (13.11.2019) =
242
+ * Fixed: Compatibility with Wordpress 5.3
243
+ * Fixed: [Assets manager component] Minor bugs. Added an admin notice about great release.
244
+ * Fixed: [Assets manager component] Conditional logic in the premium plugin didn't work in previous version due an error.
245
+ * Added: [Assets manager component] You can control asset requires. Now if you disabled asset and it required for which other asset, you will get prompt with warning.
246
+ * Added: [Assets manager component] If you click on the "requires" tag, you will be gone to the asset for which require the current asset.
247
+ * Added: Restored plugin Hide my wp for premium build. And added compatibility Clearfy with Hide my wp.
248
+
249
  = 1.6.0 (12.10.2019) =
250
  * Fixed: [Google analytic cache] a bug with creating a local copy of the Google analytics library.
251
  * Fixed: [Assets manager component] fatal error with "Call to undefined function wp_scripts_get_suffix"