Disable admin notices individually - Version 1.2.4

Version Description

(16.12.2020)= * Added: Subscribe widget * Fixed: Minor bugs

Download this release

Release Info

Developer webtemyk
Plugin Icon 128x128 Disable admin notices individually
Version 1.2.4
Comparing to
See all releases

Code changes from version 1.2.3 to 1.2.4

Files changed (203) hide show
  1. admin/assets/css/general.css +50 -50
  2. admin/assets/css/notifications-panel.css +77 -76
  3. admin/assets/css/page.css +8 -8
  4. admin/assets/css/settings.css +219 -219
  5. admin/assets/img/hide-icon-white.svg +25 -25
  6. admin/assets/img/hide-icon.svg +25 -25
  7. admin/boot.php +2 -2
  8. admin/class-page-basic.php +4 -4
  9. admin/options.php +2 -2
  10. admin/pages/class-pages-edit-admin-bar.php +3 -3
  11. admin/pages/class-pages-edit-redirects.php +3 -3
  12. admin/pages/class-pages-license.php +3 -3
  13. admin/pages/class-pages-notices.php +3 -3
  14. admin/pages/class-pages-settings.php +6 -6
  15. admin/pages/class-pages.php +0 -25
  16. disable-admin-notices.php +57 -51
  17. includes/class-plugin.php +5 -4
  18. includes/classes/class-configurate-notices.php +1 -1
  19. includes/function.php +0 -122
  20. languages/disable-admin-notices-ru_RU.po +256 -256
  21. languages/disable-admin-notices.pot +223 -223
  22. libs/factory/adverts/boot.php +12 -12
  23. libs/factory/adverts/includes/class-base.php +6 -6
  24. libs/factory/adverts/includes/class-dashboard-widget.php +4 -4
  25. libs/factory/adverts/includes/class-rest-request.php +4 -4
  26. libs/factory/adverts/langs/wbcr_factory_adverts_112-ru_RU.po +0 -83
  27. libs/factory/adverts/langs/{wbcr_factory_adverts_111-ru_RU.mo → wbcr_factory_adverts_117-ru_RU.mo} +0 -0
  28. libs/factory/adverts/langs/{wbcr_factory_adverts_111-ru_RU.po → wbcr_factory_adverts_117-ru_RU.po} +0 -0
  29. libs/factory/bootstrap/assets/css-min/bootstrap.accordion.min.css +2 -2
  30. libs/factory/bootstrap/assets/css-min/bootstrap.blue.min.css +2 -2
  31. libs/factory/bootstrap/assets/css-min/bootstrap.coffee.min.css +2 -2
  32. libs/factory/bootstrap/assets/css-min/bootstrap.core.min.css +3 -3
  33. libs/factory/bootstrap/assets/css-min/bootstrap.datepicker.min.css +1 -1
  34. libs/factory/bootstrap/assets/css-min/bootstrap.ectoplasm.min.css +2 -2
  35. libs/factory/bootstrap/assets/css-min/bootstrap.form-group.min.css +2 -2
  36. libs/factory/bootstrap/assets/css-min/bootstrap.light.min.css +2 -2
  37. libs/factory/bootstrap/assets/css-min/bootstrap.midnight.min.css +2 -2
  38. libs/factory/bootstrap/assets/css-min/bootstrap.ocean.min.css +2 -2
  39. libs/factory/bootstrap/assets/css-min/bootstrap.separator.min.css +2 -2
  40. libs/factory/bootstrap/assets/css-min/bootstrap.sunrise.min.css +2 -2
  41. libs/factory/bootstrap/assets/css-min/control.checkbox.min.css +2 -2
  42. libs/factory/bootstrap/assets/css-min/control.dropdown.min.css +2 -2
  43. libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css +2 -2
  44. libs/factory/bootstrap/assets/css-min/holder.more-link.min.css +2 -2
  45. libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js +2 -2
  46. libs/factory/bootstrap/assets/js-min/bootstrap.tooltip.min.js +1 -1
  47. libs/factory/bootstrap/assets/js-min/control.checkbox.min.js +2 -2
  48. libs/factory/bootstrap/assets/js-min/control.dropdown.min.js +2 -2
  49. libs/factory/bootstrap/assets/js-min/control.list.min.js +2 -2
  50. libs/factory/bootstrap/assets/js-min/control.multiple-textbox.min.js +2 -2
  51. libs/factory/bootstrap/boot.php +9 -9
  52. libs/factory/bootstrap/includes/functions.php +10 -10
  53. libs/factory/bootstrap/package-lock.json +1810 -0
  54. libs/factory/clearfy/assets/css/clearfy-base.css +103 -24
  55. libs/factory/clearfy/assets/css/clearfy-base.css.map +1 -1
  56. libs/factory/clearfy/assets/css/clearfy-base.less +96 -0
  57. libs/factory/clearfy/assets/css/components.css +140 -0
  58. libs/factory/clearfy/assets/css/components.css.map +1 -0
  59. libs/factory/clearfy/assets/css/components.less +153 -0
  60. libs/factory/clearfy/assets/css/libs/autocomplete.css +9 -9
  61. libs/factory/clearfy/assets/css/page-setup.css +454 -0
  62. libs/factory/clearfy/assets/css/page-setup.css.map +1 -0
  63. libs/factory/clearfy/assets/css/page-setup.less +515 -0
  64. libs/factory/clearfy/assets/js/clearfy-globals.js +221 -0
  65. libs/factory/clearfy/assets/js/{license-manager.js → clearfy-license-manager.js} +4 -4
  66. libs/factory/clearfy/assets/js/{search-options.js → clearfy-search-options.js} +2 -2
  67. libs/factory/clearfy/assets/js/clearfy-widgets.js +44 -0
  68. libs/factory/clearfy/assets/js/globals.js +0 -203
  69. libs/factory/clearfy/assets/js/libs/jquery.autocomplete.min.js +1 -1
  70. libs/factory/clearfy/boot.php +36 -27
  71. libs/factory/clearfy/includes/ajax-handlers.php +8 -8
  72. libs/factory/clearfy/includes/class-configurate.php +3 -3
  73. libs/factory/clearfy/includes/class-helpers.php +1 -1
  74. libs/factory/clearfy/includes/class-search-options.php +1 -1
  75. libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.mo +0 -0
  76. libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.po +0 -307
  77. libs/factory/clearfy/langs/{wbcr_factory_clearfy_223-ru_RU.mo → wbcr_factory_clearfy_230-ru_RU.mo} +0 -0
  78. libs/factory/clearfy/langs/{wbcr_factory_clearfy_223-ru_RU.po → wbcr_factory_clearfy_230-ru_RU.po} +0 -0
  79. libs/factory/clearfy/pages/class-page-license.php +33 -33
  80. libs/factory/clearfy/pages/class-page-more-features.php +23 -23
  81. libs/factory/clearfy/pages/class-page-setup.php +184 -0
  82. libs/factory/clearfy/pages/class-pages-components.php +244 -0
  83. libs/factory/clearfy/pages/class-pages.php +95 -49
  84. libs/factory/clearfy/pages/setup-parts/class-step-custom.php +61 -0
  85. libs/factory/clearfy/pages/setup-parts/class-step-form.php +135 -0
  86. libs/factory/clearfy/pages/setup-parts/class-step.php +81 -0
  87. libs/factory/core/ajax/install-addons.php +228 -0
  88. libs/factory/core/assets/js/core-components.js +227 -0
  89. libs/factory/core/assets/js/core-general.js +99 -0
  90. libs/factory/core/boot.php +37 -27
  91. libs/factory/core/includes/activation/class-factory-activator.php +3 -3
  92. libs/factory/core/includes/activation/class-factory-update.php +3 -3
  93. libs/factory/core/includes/assets-managment/class-factory-assets-list.php +4 -4
  94. libs/factory/core/includes/assets-managment/class-factory-script-list.php +2 -2
  95. libs/factory/core/includes/assets-managment/class-factory-style-list.php +1 -1
  96. libs/factory/core/includes/class-check-compatibility.php +3 -3
  97. libs/factory/core/includes/class-factory-migrations.php +13 -13
  98. libs/factory/core/includes/class-factory-notices.php +5 -5
  99. libs/factory/core/includes/class-factory-options.php +2 -2
  100. libs/factory/core/includes/class-factory-plugin-abstract.php +228 -52
  101. libs/factory/core/includes/class-factory-plugin-base.php +25 -25
  102. libs/factory/core/includes/class-factory-requests.php +1 -1
  103. libs/factory/core/includes/class-factory-requirements.php +6 -6
  104. libs/factory/core/includes/components/class-delete-component-button.php +55 -0
  105. libs/factory/core/includes/components/class-install-component-button.php +460 -0
  106. libs/factory/core/includes/entities/class-factory-paths.php +1 -1
  107. libs/factory/core/includes/entities/class-factory-support.php +1 -1
  108. libs/factory/core/includes/functions.php +7 -7
  109. libs/factory/core/includes/premium/class-factory-license-interface.php +1 -1
  110. libs/factory/core/includes/premium/class-factory-manager.php +10 -10
  111. libs/factory/core/includes/premium/class-factory-provider-abstract.php +6 -6
  112. libs/factory/core/includes/updates/class-factory-premium-upgrader.php +29 -12
  113. libs/factory/core/includes/updates/class-factory-upgrader.php +9 -9
  114. libs/factory/core/includes/updates/repositories/class-factory-repository-abstract.php +5 -5
  115. libs/factory/core/includes/updates/repositories/class-factory-wordpress.php +4 -4
  116. libs/factory/core/langs/wbcr_factory_431-ru_RU.mo +0 -0
  117. libs/factory/core/langs/wbcr_factory_432-ru_RU.mo +0 -0
  118. libs/factory/core/langs/wbcr_factory_432-ru_RU.po +0 -128
  119. libs/factory/{adverts/langs/wbcr_factory_adverts_112-ru_RU.mo → core/langs/wbcr_factory_439-ru_RU.mo} +0 -0
  120. libs/factory/core/langs/{wbcr_factory_431-ru_RU.po → wbcr_factory_439-ru_RU.po} +0 -0
  121. libs/factory/forms/boot.php +95 -95
  122. libs/factory/forms/controls/checkbox.php +4 -4
  123. libs/factory/forms/controls/color-and-opacity.php +4 -4
  124. libs/factory/forms/controls/color.php +2 -2
  125. libs/factory/forms/controls/customs/html.php +2 -2
  126. libs/factory/forms/controls/customs/separator.php +2 -2
  127. libs/factory/forms/controls/datepicker-range.php +4 -4
  128. libs/factory/forms/controls/dropdown-and-colors.php +6 -6
  129. libs/factory/forms/controls/dropdown.php +5 -5
  130. libs/factory/forms/controls/font.php +11 -11
  131. libs/factory/forms/controls/google-font.php +8 -8
  132. libs/factory/forms/controls/gradient.php +4 -4
  133. libs/factory/forms/controls/hidden.php +2 -2
  134. libs/factory/forms/controls/holders/accordion-item.php +2 -2
  135. libs/factory/forms/controls/holders/accordion.php +2 -2
  136. libs/factory/forms/controls/holders/columns.php +2 -2
  137. libs/factory/forms/controls/holders/control-group-item.php +2 -2
  138. libs/factory/forms/controls/holders/control-group.php +3 -3
  139. libs/factory/forms/controls/holders/div.php +2 -2
  140. libs/factory/forms/controls/holders/form-group.php +2 -2
  141. libs/factory/forms/controls/holders/more-link.php +2 -2
  142. libs/factory/forms/controls/holders/tab-item.php +2 -2
  143. libs/factory/forms/controls/holders/tab.php +4 -4
  144. libs/factory/forms/controls/integer.php +2 -2
  145. libs/factory/forms/controls/list.php +4 -4
  146. libs/factory/forms/controls/multiple-textbox.php +3 -3
  147. libs/factory/forms/controls/paddings-editor.php +3 -3
  148. libs/factory/forms/controls/pattern.php +9 -9
  149. libs/factory/forms/controls/radio-colors.php +2 -2
  150. libs/factory/forms/controls/radio.php +2 -2
  151. libs/factory/forms/controls/textarea.php +2 -2
  152. libs/factory/forms/controls/textbox.php +2 -2
  153. libs/factory/forms/controls/url.php +3 -3
  154. libs/factory/forms/controls/wp-editor.php +3 -3
  155. libs/factory/forms/includes/complex-control.class.php +4 -4
  156. libs/factory/forms/includes/control-holder.class.php +5 -5
  157. libs/factory/forms/includes/control.class.php +5 -5
  158. libs/factory/forms/includes/custom-element.class.php +2 -2
  159. libs/factory/forms/includes/form-element.class.php +7 -7
  160. libs/factory/forms/includes/form-layout.class.php +5 -5
  161. libs/factory/forms/includes/form.class.php +39 -39
  162. libs/factory/forms/includes/holder.class.php +6 -6
  163. libs/factory/forms/includes/html-builder.class.php +2 -2
  164. libs/factory/forms/includes/providers/meta-value-provider.class.php +2 -2
  165. libs/factory/forms/includes/providers/options-value-provider.class.php +3 -3
  166. libs/factory/forms/includes/providers/value-provider.interface.php +2 -2
  167. libs/factory/forms/langs/wbcr_factory_forms_430-ru_RU.mo +0 -0
  168. libs/factory/forms/langs/wbcr_factory_forms_430-ru_RU.po +0 -95
  169. libs/factory/forms/langs/{wbcr_factory_forms_429-ru_RU.mo → wbcr_factory_forms_436-ru_RU.mo} +0 -0
  170. libs/factory/forms/langs/{wbcr_factory_forms_429-ru_RU.po → wbcr_factory_forms_436-ru_RU.po} +0 -0
  171. libs/factory/forms/layouts/bootstrap-3/bootstrap-3.php +7 -7
  172. libs/factory/freemius/boot.php +18 -18
  173. libs/factory/freemius/includes/class-freemius-api.php +7 -7
  174. libs/factory/freemius/includes/entities/class-freemius-entity.php +1 -1
  175. libs/factory/freemius/includes/entities/class-freemius-license.php +2 -2
  176. libs/factory/freemius/includes/entities/class-freemius-plugin.php +1 -1
  177. libs/factory/freemius/includes/entities/class-freemius-scope.php +1 -1
  178. libs/factory/freemius/includes/entities/class-freemius-site.php +1 -1
  179. libs/factory/freemius/includes/entities/class-freemius-user.php +1 -1
  180. libs/factory/freemius/includes/licensing/class-freemius-provider.php +18 -18
  181. libs/factory/freemius/includes/updates/class-freemius-repository.php +7 -7
  182. libs/factory/logger/assets/css/logger.css +33 -0
  183. libs/factory/logger/boot.php +59 -0
  184. libs/factory/logger/includes/class-log-export.php +258 -0
  185. libs/factory/logger/includes/class-logger.php +494 -0
  186. libs/factory/logger/pages/class-logger-admin-page.php +184 -0
  187. libs/factory/logger/pages/class-logger-impressive-page.php +174 -0
  188. libs/factory/pages/boot.php +10 -10
  189. libs/factory/pages/includes/admin-page.class.php +6 -6
  190. libs/factory/pages/includes/page.class.php +7 -7
  191. libs/factory/pages/langs/wbcr_factory_pages_432-fr_FR.mo +0 -0
  192. libs/factory/pages/langs/wbcr_factory_pages_432-fr_FR.po +0 -99
  193. libs/factory/pages/langs/wbcr_factory_pages_432-ru_RU.mo +0 -0
  194. libs/factory/pages/langs/wbcr_factory_pages_432-ru_RU.po +0 -98
  195. libs/factory/pages/langs/{wbcr_factory_pages_431-fr_FR.mo → wbcr_factory_pages_438-fr_FR.mo} +0 -0
  196. libs/factory/pages/langs/{wbcr_factory_pages_431-fr_FR.po → wbcr_factory_pages_438-fr_FR.po} +0 -0
  197. libs/factory/pages/langs/{wbcr_factory_pages_431-ru_RU.mo → wbcr_factory_pages_438-ru_RU.mo} +0 -0
  198. libs/factory/pages/langs/{wbcr_factory_pages_431-ru_RU.po → wbcr_factory_pages_438-ru_RU.po} +0 -0
  199. libs/factory/pages/pages.php +11 -11
  200. libs/factory/pages/templates/assets/css/impressive.page.template.css +124 -124
  201. libs/factory/pages/templates/impressive-page.class.php +31 -31
  202. migrations/010007.php +1 -1
  203. readme.txt +15 -3
admin/assets/css/general.css CHANGED
@@ -1,50 +1,50 @@
1
- .wbcr-dan-hide-notices {
2
- position: initial;
3
- padding: 5px 5px 0;
4
- background: transparent;
5
- }
6
- .wbcr-dan-hide-notices > div {
7
- margin: 0 !important;
8
- }
9
- .is-dismissible .wbcr-dan-hide-links {
10
- margin-right: -25px;
11
- }
12
- .wbcr-dan-hide-links {
13
- text-align: right;
14
- padding: 0 5px 5px 0;
15
- }
16
- .wbcr-dan-hide-links .wbcr-dan-hide-notice-link {
17
- min-height: 20px;
18
- line-height: 2;
19
- padding: 0 5px 0 0;
20
- font-size: 11px;
21
- color: #ec3c47;
22
- background: #fff;
23
- margin: 0;
24
- cursor: pointer;
25
- border: 1px solid #ec3c47;
26
- border-radius: 5px;
27
- }
28
- .wbcr-dan-hide-links .wbcr-dan-hide-notice-link:hover {
29
- background: #ec3c47;
30
- color: #fff;
31
- }
32
- .wbcr-dan-hide-links .wbcr-dan-hide-notice-link:hover:before {
33
- background-image: url('../img/hide-icon-white.svg');
34
- }
35
- .wbcr-dan-hide-links .wbcr-dan-hide-notice-link:focus {
36
- border: 2px solid #ec3c47;
37
- outline: none;
38
- }
39
- .wbcr-dan-hide-links .wbcr-dan-hide-notice-link:before {
40
- content: '';
41
- display: inline-block;
42
- width: 25px;
43
- height: 18px;
44
- background-color: transparent;
45
- background-image: url('../img/hide-icon.svg');
46
- background-repeat: no-repeat;
47
- background-position: center center;
48
- background-size: 25px;
49
- vertical-align: middle;
50
- }
1
+ .wbcr-dan-hide-notices {
2
+ position: initial;
3
+ padding: 5px 5px 0;
4
+ background: transparent;
5
+ }
6
+ .wbcr-dan-hide-notices > div {
7
+ margin: 0 !important;
8
+ }
9
+ .is-dismissible .wbcr-dan-hide-links {
10
+ margin-right: -25px;
11
+ }
12
+ .wbcr-dan-hide-links {
13
+ text-align: right;
14
+ padding: 0 5px 5px 0;
15
+ }
16
+ .wbcr-dan-hide-links .wbcr-dan-hide-notice-link {
17
+ min-height: 20px;
18
+ line-height: 2;
19
+ padding: 0 5px 0 0;
20
+ font-size: 11px;
21
+ color: #ec3c47;
22
+ background: #fff;
23
+ margin: 0;
24
+ cursor: pointer;
25
+ border: 1px solid #ec3c47;
26
+ border-radius: 5px;
27
+ }
28
+ .wbcr-dan-hide-links .wbcr-dan-hide-notice-link:hover {
29
+ background: #ec3c47;
30
+ color: #fff;
31
+ }
32
+ .wbcr-dan-hide-links .wbcr-dan-hide-notice-link:hover:before {
33
+ background-image: url('../img/hide-icon-white.svg');
34
+ }
35
+ .wbcr-dan-hide-links .wbcr-dan-hide-notice-link:focus {
36
+ border: 2px solid #ec3c47;
37
+ outline: none;
38
+ }
39
+ .wbcr-dan-hide-links .wbcr-dan-hide-notice-link:before {
40
+ content: '';
41
+ display: inline-block;
42
+ width: 25px;
43
+ height: 18px;
44
+ background-color: transparent;
45
+ background-image: url('../img/hide-icon.svg');
46
+ background-repeat: no-repeat;
47
+ background-position: center center;
48
+ background-size: 25px;
49
+ vertical-align: middle;
50
+ }
admin/assets/css/notifications-panel.css CHANGED
@@ -1,76 +1,77 @@
1
- /**
2
- * Notification panel in admin bar
3
- * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
- * @copyright Alex Kovalev 23.08.2017
5
- */
6
- #wp-admin-bar-wbcr-han-notify-panel .wbcr-han-adminbar-counter {
7
- background-color: #0073aa;
8
- border-radius: 50%;
9
- color: #fff;
10
- font-weight: bold;
11
- padding: 2px 6px;
12
- font-size: 0.85em;
13
- margin-left: 5px;
14
- }
15
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper {
16
- max-height: 500px;
17
- overflow-y: scroll;
18
- }
19
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu {
20
- width: 400px;
21
- padding: 0;
22
- }
23
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li {
24
- border-left: 4px solid #26292b;
25
- padding: 0;
26
- }
27
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li.wpnc-updated {
28
- border-left-color: #7ad03a;
29
- }
30
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li.wpnc-update-nag {
31
- border-left-color: #ffba00;
32
- }
33
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li.wpnc-error {
34
- border-left-color: #dd3d36;
35
- }
36
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .wbcr-han-panel-restore-notify-line {
37
- text-align: right;
38
- }
39
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .wbcr-han-panel-restore-notify-line a {
40
- color: #ffba00 !important;
41
- text-decoration: none !important;
42
- }
43
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .wbcr-han-panel-restore-notify-line a:hover {
44
- text-decoration: underline !important;
45
- color: #ffc11a !important;
46
- }
47
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .ab-item {
48
- height: 100% !important;
49
- white-space: normal !important;
50
- padding: 0.5em 1em;
51
- border-bottom: 1px solid #4a4f55;
52
- color: #949494;
53
- line-height: 1.5 !important;
54
- }
55
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .ab-item a {
56
- display: inline;
57
- padding: 0;
58
- margin: 0;
59
- text-decoration: underline;
60
- line-height: 1.5 !important;
61
- color: #949494;
62
- }
63
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li[id^=wp-admin-bar-wbcr-han-notify-panel-group] .ab-item {
64
- height: 100%;
65
- white-space: normal;
66
- padding: 0.5em 1em;
67
- border-bottom: 1px solid #fff;
68
- color: #fff;
69
- line-height: 2;
70
- text-align: center;
71
- font-weight: bold;
72
- text-transform: uppercase;
73
- }
74
- #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu li:nth-child(2n) {
75
- background: #26292b;
76
- }
 
1
+ /**
2
+ * Notification panel in admin bar
3
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
+ * @copyright Alex Kovalev 23.08.2017
5
+ */
6
+ #wp-admin-bar-wbcr-han-notify-panel .wbcr-han-adminbar-counter {
7
+ background-color: #0073aa;
8
+ border-radius: 50%;
9
+ color: #fff;
10
+ font-weight: bold;
11
+ padding: 2px 6px;
12
+ font-size: 0.85em;
13
+ margin-left: 5px;
14
+ }
15
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper {
16
+ max-height: 500px;
17
+ overflow-y: scroll;
18
+ }
19
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu {
20
+ width: 400px;
21
+ padding: 0;
22
+ }
23
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li {
24
+ border-left: 4px solid #26292b;
25
+ padding: 0;
26
+ }
27
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li.wpnc-updated {
28
+ border-left-color: #7ad03a;
29
+ }
30
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li.wpnc-update-nag {
31
+ border-left-color: #ffba00;
32
+ }
33
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li.wpnc-error {
34
+ border-left-color: #dd3d36;
35
+ }
36
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .wbcr-han-panel-restore-notify-line {
37
+ text-align: right;
38
+ }
39
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .wbcr-han-panel-restore-notify-line a {
40
+ color: #ffba00 !important;
41
+ text-decoration: none !important;
42
+ }
43
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .wbcr-han-panel-restore-notify-line a:hover {
44
+ text-decoration: underline !important;
45
+ color: #ffc11a !important;
46
+ }
47
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .ab-item {
48
+ height: 100% !important;
49
+ white-space: normal !important;
50
+ padding: 0.5em 1em;
51
+ border-bottom: 1px solid #4a4f55;
52
+ color: #949494;
53
+ line-height: 1.5 !important;
54
+ }
55
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li .ab-item a {
56
+ display: inline;
57
+ padding: 0;
58
+ margin: 0;
59
+ text-decoration: underline;
60
+ line-height: 1.5 !important;
61
+ color: #949494;
62
+ }
63
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu > li[id^=wp-admin-bar-wbcr-han-notify-panel-group] .ab-item {
64
+ height: 100%;
65
+ white-space: normal;
66
+ padding: 0.5em 1em;
67
+ border-bottom: 1px solid #fff;
68
+ color: #fff;
69
+ line-height: 2;
70
+ text-align: center;
71
+ font-weight: bold;
72
+ text-transform: uppercase;
73
+ }
74
+ #wp-admin-bar-wbcr-han-notify-panel .ab-sub-wrapper ul.ab-submenu li:nth-child(2n) {
75
+ background: #26292b;
76
+ }
77
+ /*# sourceMappingURL=notifications-panel.css.map */
admin/assets/css/page.css CHANGED
@@ -1,8 +1,8 @@
1
- .wdan-plugin-header-logo {
2
- background: transparent url('../img/hide-icon.svg') no-repeat left center !important;
3
- background-size: 40px !important;
4
- display: block;
5
- float: left;
6
- height: 30px;
7
- width: 40px;
8
- }
1
+ .wdan-plugin-header-logo {
2
+ background: transparent url('../img/hide-icon.svg') no-repeat left center !important;
3
+ background-size: 40px !important;
4
+ display: block;
5
+ float: left;
6
+ height: 30px;
7
+ width: 40px;
8
+ }
admin/assets/css/settings.css CHANGED
@@ -1,219 +1,219 @@
1
- #WBCR .factory-checkbox.wdanpro-checkbox-premium-label:after,
2
- #WBCR .wdanpro-radio-premium-label .factory-compact_panel:after {
3
- display: inline-block;
4
- position: relative;
5
- content: 'PRO';
6
- background: #ff5722;
7
- border-radius: 4px;
8
- color: #fff;
9
- font-size: 10px;
10
- line-height: 1;
11
- font-style: normal;
12
- padding: 4px 6px;
13
- margin-left: 4px;
14
- vertical-align: top;
15
- top: -8px;
16
- left: -10px;
17
- right: auto;
18
- z-index: 11;
19
- cursor: pointer;
20
- }
21
- #WBCR .wdanpro-radio-premium-label .factory-compact_panel:after {
22
- position: absolute;
23
- top: -10px;
24
- right: -10px;
25
- left: auto;
26
- }
27
- #WBCR .factory-checkbox-disabled input,
28
- #WBCR .factory-checkbox-disabled button,
29
- #WBCR .wdanpro-radio-premium-label .factory-compact_panel {
30
- pointer-events: none;
31
- cursor: not-allowed;
32
- opacity: 0.65;
33
- filter: alpha(opacity=65);
34
- -webkit-box-shadow: none;
35
- box-shadow: none;
36
- }
37
- #WBCR .wrdan-premium-fake-content {
38
- position: relative;
39
- padding: 15px;
40
- }
41
- #WBCR .wdan-premium-info {
42
- position: absolute;
43
- top: 50px;
44
- left: 50%;
45
- margin-left: -250px;
46
- max-width: 500px;
47
- z-index: 999;
48
- }
49
- #WBCR .wdan-premium-info h3 {
50
- font-size: 32px;
51
- font-weight: 300;
52
- color: inherit;
53
- margin: 40px 0 10px;
54
- line-height: 1.2;
55
- }
56
- #WBCR .wdan-premium-info p {
57
- font-size: 16px;
58
- font-weight: 400;
59
- color: #a4afb7;
60
- margin-bottom: 40px;
61
- }
62
- #WBCR .wdan-premium-layer {
63
- position: absolute;
64
- top: 0;
65
- left: 0;
66
- right: 0;
67
- bottom: 0;
68
- opacity: 0.9;
69
- background: #fff;
70
- }
71
- #WBCR .wdan-button {
72
- font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
73
- font-weight: 500;
74
- text-transform: uppercase;
75
- outline: none;
76
- border: none;
77
- text-decoration: none;
78
- -webkit-border-radius: 3px;
79
- border-radius: 3px;
80
- -webkit-transition-property: background, color, opacity, -webkit-box-shadow;
81
- transition-property: background, color, opacity, -webkit-box-shadow;
82
- -o-transition-property: background, color, box-shadow, opacity;
83
- transition-property: background, color, box-shadow, opacity;
84
- transition-property: background, color, box-shadow, opacity, -webkit-box-shadow;
85
- -webkit-transition-duration: 0.3s;
86
- -o-transition-duration: 0.3s;
87
- transition-duration: 0.3s;
88
- }
89
- #WBCR .wdan-button:hover {
90
- border: none;
91
- }
92
- #WBCR .wdan-button:not([disabled]) {
93
- cursor: pointer;
94
- }
95
- #WBCR .wdan-button:not(.wdan-button-state) .wdan-state-icon {
96
- display: none;
97
- }
98
- #WBCR .wdan-button.wdan-button-success {
99
- color: #fff;
100
- }
101
- #WBCR .wdan-button.wdan-button-success[disabled] {
102
- background-color: #c2cbd2;
103
- }
104
- #WBCR .wdan-button.wdan-button-success:not([disabled]) {
105
- background-color: #39b54a;
106
- }
107
- #WBCR .wdan-button.wdan-button-success:not([disabled]):hover {
108
- opacity: 0.85;
109
- -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
110
- box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
111
- }
112
- #WBCR .wdan-button.wdan-button-success:not([disabled]):active {
113
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
114
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
115
- }
116
- #WBCR .wdan-button.wdan-button-warning {
117
- background-color: #a4afb7;
118
- color: #fff;
119
- }
120
- #WBCR .wdan-button.wdan-button-warning[disabled] {
121
- background-color: #c2cbd2;
122
- }
123
- #WBCR .wdan-button.wdan-button-warning:not([disabled]):hover {
124
- background-color: #b01b1b;
125
- opacity: 0.85;
126
- -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
127
- box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
128
- }
129
- #WBCR .wdan-button.wdan-button-warning:not([disabled]):active {
130
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
131
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
132
- }
133
- #WBCR .wdan-button.wdan-button-danger {
134
- background-color: #d72b3f;
135
- color: #fff;
136
- }
137
- #WBCR .wdan-button.wdan-button-danger[disabled] {
138
- background-color: #c2cbd2;
139
- }
140
- #WBCR .wdan-button.wdan-button-danger:not([disabled]):hover {
141
- opacity: 0.85;
142
- -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
143
- box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
144
- }
145
- #WBCR .wdan-button.wdan-button-danger:not([disabled]):active {
146
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
147
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
148
- }
149
- #WBCR .wdan-button.wdan-edit-template {
150
- display: inline-block;
151
- margin-top: 15px;
152
- color: #fff;
153
- }
154
- #WBCR .wdan-button.wdan-button-default {
155
- background-color: #a4afb7;
156
- color: #fff;
157
- font-size: 11px;
158
- padding: 7px 21px;
159
- }
160
- #WBCR .wdan-button.wdan-button-default:hover {
161
- background-color: #6d7882;
162
- -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
163
- box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
164
- }
165
- #WBCR .wdan-button.wdan-button-default:active {
166
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
167
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
168
- }
169
- #WBCR .wdan-button.wdan-button-default:visited {
170
- color: #fff;
171
- }
172
- #WBCR .wdan-button.wdan-button-go-pro {
173
- background-color: #ff5722;
174
- }
175
- #WBCR .wdan-button i {
176
- margin-right: 10px;
177
- }
178
- .wdan-hidden-list {
179
- padding: 0 15px;
180
- }
181
- .wdan-hidden-list-notice {
182
- background: #fff;
183
- border: 1px solid #ccd0d4;
184
- border-left-width: 4px;
185
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
186
- padding: 1px 12px;
187
- }
188
- .wdan-hidden-list-notice div.wdan-notice-p {
189
- margin: 0.5em 0;
190
- padding: 2px;
191
- }
192
- .wdan-hidden-list-notice div.wdan-notice-p div {
193
- width: 100%;
194
- }
195
- .wdan-hidden-list-table {
196
- border: 0;
197
- }
198
- .wdan-hidden-list-table tr > td:first-child {
199
- padding: 5px 0 5px;
200
- }
201
- .wdan-hidden-list-table tr > td:last-child {
202
- padding: 0 10px 0;
203
- text-align: center;
204
- }
205
- .wdan-hidden-list-table .wdan-notices-page-table-head td {
206
- font-size: 16px;
207
- text-transform: uppercase;
208
- padding: 10px !important;
209
- font-weight: bold;
210
- }
211
- .wdan-hidden-list-table .wdan-hidden-list-notice-action {
212
- vertical-align: middle;
213
- }
214
- .wdan-hidden-list-table .wdan-page-restore-notice-link-loader {
215
- background: url(../img/loader.gif);
216
- background-size: contain;
217
- background-repeat: no-repeat;
218
- background-position: top;
219
- }
1
+ #WBCR .factory-checkbox.wdanpro-checkbox-premium-label:after,
2
+ #WBCR .wdanpro-radio-premium-label .factory-compact_panel:after {
3
+ display: inline-block;
4
+ position: relative;
5
+ content: 'PRO';
6
+ background: #ff5722;
7
+ border-radius: 4px;
8
+ color: #fff;
9
+ font-size: 10px;
10
+ line-height: 1;
11
+ font-style: normal;
12
+ padding: 4px 6px;
13
+ margin-left: 4px;
14
+ vertical-align: top;
15
+ top: -8px;
16
+ left: -10px;
17
+ right: auto;
18
+ z-index: 11;
19
+ cursor: pointer;
20
+ }
21
+ #WBCR .wdanpro-radio-premium-label .factory-compact_panel:after {
22
+ position: absolute;
23
+ top: -10px;
24
+ right: -10px;
25
+ left: auto;
26
+ }
27
+ #WBCR .factory-checkbox-disabled input,
28
+ #WBCR .factory-checkbox-disabled button,
29
+ #WBCR .wdanpro-radio-premium-label .factory-compact_panel {
30
+ pointer-events: none;
31
+ cursor: not-allowed;
32
+ opacity: 0.65;
33
+ filter: alpha(opacity=65);
34
+ -webkit-box-shadow: none;
35
+ box-shadow: none;
36
+ }
37
+ #WBCR .wrdan-premium-fake-content {
38
+ position: relative;
39
+ padding: 15px;
40
+ }
41
+ #WBCR .wdan-premium-info {
42
+ position: absolute;
43
+ top: 50px;
44
+ left: 50%;
45
+ margin-left: -250px;
46
+ max-width: 500px;
47
+ z-index: 999;
48
+ }
49
+ #WBCR .wdan-premium-info h3 {
50
+ font-size: 32px;
51
+ font-weight: 300;
52
+ color: inherit;
53
+ margin: 40px 0 10px;
54
+ line-height: 1.2;
55
+ }
56
+ #WBCR .wdan-premium-info p {
57
+ font-size: 16px;
58
+ font-weight: 400;
59
+ color: #a4afb7;
60
+ margin-bottom: 40px;
61
+ }
62
+ #WBCR .wdan-premium-layer {
63
+ position: absolute;
64
+ top: 0;
65
+ left: 0;
66
+ right: 0;
67
+ bottom: 0;
68
+ opacity: 0.9;
69
+ background: #fff;
70
+ }
71
+ #WBCR .wdan-button {
72
+ font-family: Roboto, Arial, Helvetica, Verdana, sans-serif;
73
+ font-weight: 500;
74
+ text-transform: uppercase;
75
+ outline: none;
76
+ border: none;
77
+ text-decoration: none;
78
+ -webkit-border-radius: 3px;
79
+ border-radius: 3px;
80
+ -webkit-transition-property: background, color, opacity, -webkit-box-shadow;
81
+ transition-property: background, color, opacity, -webkit-box-shadow;
82
+ -o-transition-property: background, color, box-shadow, opacity;
83
+ transition-property: background, color, box-shadow, opacity;
84
+ transition-property: background, color, box-shadow, opacity, -webkit-box-shadow;
85
+ -webkit-transition-duration: 0.3s;
86
+ -o-transition-duration: 0.3s;
87
+ transition-duration: 0.3s;
88
+ }
89
+ #WBCR .wdan-button:hover {
90
+ border: none;
91
+ }
92
+ #WBCR .wdan-button:not([disabled]) {
93
+ cursor: pointer;
94
+ }
95
+ #WBCR .wdan-button:not(.wdan-button-state) .wdan-state-icon {
96
+ display: none;
97
+ }
98
+ #WBCR .wdan-button.wdan-button-success {
99
+ color: #fff;
100
+ }
101
+ #WBCR .wdan-button.wdan-button-success[disabled] {
102
+ background-color: #c2cbd2;
103
+ }
104
+ #WBCR .wdan-button.wdan-button-success:not([disabled]) {
105
+ background-color: #39b54a;
106
+ }
107
+ #WBCR .wdan-button.wdan-button-success:not([disabled]):hover {
108
+ opacity: 0.85;
109
+ -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
110
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
111
+ }
112
+ #WBCR .wdan-button.wdan-button-success:not([disabled]):active {
113
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
114
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
115
+ }
116
+ #WBCR .wdan-button.wdan-button-warning {
117
+ background-color: #a4afb7;
118
+ color: #fff;
119
+ }
120
+ #WBCR .wdan-button.wdan-button-warning[disabled] {
121
+ background-color: #c2cbd2;
122
+ }
123
+ #WBCR .wdan-button.wdan-button-warning:not([disabled]):hover {
124
+ background-color: #b01b1b;
125
+ opacity: 0.85;
126
+ -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
127
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
128
+ }
129
+ #WBCR .wdan-button.wdan-button-warning:not([disabled]):active {
130
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
131
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
132
+ }
133
+ #WBCR .wdan-button.wdan-button-danger {
134
+ background-color: #d72b3f;
135
+ color: #fff;
136
+ }
137
+ #WBCR .wdan-button.wdan-button-danger[disabled] {
138
+ background-color: #c2cbd2;
139
+ }
140
+ #WBCR .wdan-button.wdan-button-danger:not([disabled]):hover {
141
+ opacity: 0.85;
142
+ -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
143
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
144
+ }
145
+ #WBCR .wdan-button.wdan-button-danger:not([disabled]):active {
146
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
147
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
148
+ }
149
+ #WBCR .wdan-button.wdan-edit-template {
150
+ display: inline-block;
151
+ margin-top: 15px;
152
+ color: #fff;
153
+ }
154
+ #WBCR .wdan-button.wdan-button-default {
155
+ background-color: #a4afb7;
156
+ color: #fff;
157
+ font-size: 11px;
158
+ padding: 7px 21px;
159
+ }
160
+ #WBCR .wdan-button.wdan-button-default:hover {
161
+ background-color: #6d7882;
162
+ -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
163
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 2px rgba(0, 0, 0, 0.2);
164
+ }
165
+ #WBCR .wdan-button.wdan-button-default:active {
166
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
167
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.19), 0 3px 3px rgba(0, 0, 0, 0.1);
168
+ }
169
+ #WBCR .wdan-button.wdan-button-default:visited {
170
+ color: #fff;
171
+ }
172
+ #WBCR .wdan-button.wdan-button-go-pro {
173
+ background-color: #ff5722;
174
+ }
175
+ #WBCR .wdan-button i {
176
+ margin-right: 10px;
177
+ }
178
+ .wdan-hidden-list {
179
+ padding: 0 15px;
180
+ }
181
+ .wdan-hidden-list-notice {
182
+ background: #fff;
183
+ border: 1px solid #ccd0d4;
184
+ border-left-width: 4px;
185
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
186
+ padding: 1px 12px;
187
+ }
188
+ .wdan-hidden-list-notice div.wdan-notice-p {
189
+ margin: 0.5em 0;
190
+ padding: 2px;
191
+ }
192
+ .wdan-hidden-list-notice div.wdan-notice-p div {
193
+ width: 100%;
194
+ }
195
+ .wdan-hidden-list-table {
196
+ border: 0;
197
+ }
198
+ .wdan-hidden-list-table tr > td:first-child {
199
+ padding: 5px 0 5px;
200
+ }
201
+ .wdan-hidden-list-table tr > td:last-child {
202
+ padding: 0 10px 0;
203
+ text-align: center;
204
+ }
205
+ .wdan-hidden-list-table .wdan-notices-page-table-head td {
206
+ font-size: 16px;
207
+ text-transform: uppercase;
208
+ padding: 10px !important;
209
+ font-weight: bold;
210
+ }
211
+ .wdan-hidden-list-table .wdan-hidden-list-notice-action {
212
+ vertical-align: middle;
213
+ }
214
+ .wdan-hidden-list-table .wdan-page-restore-notice-link-loader {
215
+ background: url(../img/loader.gif);
216
+ background-size: contain;
217
+ background-repeat: no-repeat;
218
+ background-position: top;
219
+ }
admin/assets/img/hide-icon-white.svg CHANGED
@@ -1,25 +1,25 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
- <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
- width="300.000000pt" height="234.000000pt" viewBox="0 0 300.000000 234.000000"
6
- preserveAspectRatio="xMidYMid meet">
7
-
8
- <g transform="translate(0.000000,234.000000) scale(0.100000,-0.100000)"
9
- fill="#ffffff" stroke="none">
10
- <path d="M629 2072 c-15 -13 -22 -30 -22 -51 0 -29 20 -53 177 -210 l176 -177
11
- -92 -95 c-99 -101 -201 -236 -244 -324 l-26 -54 21 -44 c85 -174 274 -388 446
12
- -502 159 -106 295 -149 475 -148 141 1 236 24 365 87 l90 45 186 -185 c158
13
- -157 190 -184 215 -184 39 0 74 36 74 76 0 25 -114 142 -878 906 -789 790
14
- -880 878 -908 878 -18 0 -42 -8 -55 -18z m544 -650 l98 -98 -23 -50 c-31 -68
15
- -30 -170 1 -242 31 -68 113 -144 182 -167 64 -22 177 -16 232 11 l38 18 89
16
- -89 c50 -49 90 -92 90 -96 0 -9 -105 -55 -175 -75 -82 -25 -258 -25 -339 0
17
- -124 37 -255 116 -364 220 -87 81 -232 273 -232 306 0 43 260 360 296 360 5 0
18
- 53 -44 107 -98z m314 -314 c51 -51 93 -96 93 -99 0 -13 -53 -17 -89 -7 -44 12
19
- -89 52 -107 95 -21 48 -18 103 5 103 3 0 47 -42 98 -92z"/>
20
- <path d="M1410 1849 c-87 -15 -123 -52 -105 -109 13 -40 47 -53 111 -41 226
21
- 42 459 -41 660 -235 69 -67 171 -194 210 -260 l26 -45 -37 -57 c-21 -31 -56
22
- -81 -78 -110 -47 -62 -53 -105 -18 -134 27 -21 70 -24 92 -5 55 44 199 267
23
- 199 307 0 14 -16 53 -36 85 -263 437 -650 665 -1024 604z"/>
24
- </g>
25
- </svg>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="300.000000pt" height="234.000000pt" viewBox="0 0 300.000000 234.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+
8
+ <g transform="translate(0.000000,234.000000) scale(0.100000,-0.100000)"
9
+ fill="#ffffff" stroke="none">
10
+ <path d="M629 2072 c-15 -13 -22 -30 -22 -51 0 -29 20 -53 177 -210 l176 -177
11
+ -92 -95 c-99 -101 -201 -236 -244 -324 l-26 -54 21 -44 c85 -174 274 -388 446
12
+ -502 159 -106 295 -149 475 -148 141 1 236 24 365 87 l90 45 186 -185 c158
13
+ -157 190 -184 215 -184 39 0 74 36 74 76 0 25 -114 142 -878 906 -789 790
14
+ -880 878 -908 878 -18 0 -42 -8 -55 -18z m544 -650 l98 -98 -23 -50 c-31 -68
15
+ -30 -170 1 -242 31 -68 113 -144 182 -167 64 -22 177 -16 232 11 l38 18 89
16
+ -89 c50 -49 90 -92 90 -96 0 -9 -105 -55 -175 -75 -82 -25 -258 -25 -339 0
17
+ -124 37 -255 116 -364 220 -87 81 -232 273 -232 306 0 43 260 360 296 360 5 0
18
+ 53 -44 107 -98z m314 -314 c51 -51 93 -96 93 -99 0 -13 -53 -17 -89 -7 -44 12
19
+ -89 52 -107 95 -21 48 -18 103 5 103 3 0 47 -42 98 -92z"/>
20
+ <path d="M1410 1849 c-87 -15 -123 -52 -105 -109 13 -40 47 -53 111 -41 226
21
+ 42 459 -41 660 -235 69 -67 171 -194 210 -260 l26 -45 -37 -57 c-21 -31 -56
22
+ -81 -78 -110 -47 -62 -53 -105 -18 -134 27 -21 70 -24 92 -5 55 44 199 267
23
+ 199 307 0 14 -16 53 -36 85 -263 437 -650 665 -1024 604z"/>
24
+ </g>
25
+ </svg>
admin/assets/img/hide-icon.svg CHANGED
@@ -1,25 +1,25 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
- "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
- <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
- width="300.000000pt" height="234.000000pt" viewBox="0 0 300.000000 234.000000"
6
- preserveAspectRatio="xMidYMid meet">
7
-
8
- <g transform="translate(0.000000,234.000000) scale(0.100000,-0.100000)"
9
- fill="#ed3c48" stroke="none">
10
- <path d="M629 2072 c-15 -13 -22 -30 -22 -51 0 -29 20 -53 177 -210 l176 -177
11
- -92 -95 c-99 -101 -201 -236 -244 -324 l-26 -54 21 -44 c85 -174 274 -388 446
12
- -502 159 -106 295 -149 475 -148 141 1 236 24 365 87 l90 45 186 -185 c158
13
- -157 190 -184 215 -184 39 0 74 36 74 76 0 25 -114 142 -878 906 -789 790
14
- -880 878 -908 878 -18 0 -42 -8 -55 -18z m544 -650 l98 -98 -23 -50 c-31 -68
15
- -30 -170 1 -242 31 -68 113 -144 182 -167 64 -22 177 -16 232 11 l38 18 89
16
- -89 c50 -49 90 -92 90 -96 0 -9 -105 -55 -175 -75 -82 -25 -258 -25 -339 0
17
- -124 37 -255 116 -364 220 -87 81 -232 273 -232 306 0 43 260 360 296 360 5 0
18
- 53 -44 107 -98z m314 -314 c51 -51 93 -96 93 -99 0 -13 -53 -17 -89 -7 -44 12
19
- -89 52 -107 95 -21 48 -18 103 5 103 3 0 47 -42 98 -92z"/>
20
- <path d="M1410 1849 c-87 -15 -123 -52 -105 -109 13 -40 47 -53 111 -41 226
21
- 42 459 -41 660 -235 69 -67 171 -194 210 -260 l26 -45 -37 -57 c-21 -31 -56
22
- -81 -78 -110 -47 -62 -53 -105 -18 -134 27 -21 70 -24 92 -5 55 44 199 267
23
- 199 307 0 14 -16 53 -36 85 -263 437 -650 665 -1024 604z"/>
24
- </g>
25
- </svg>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
3
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
4
+ <svg version="1.0" xmlns="http://www.w3.org/2000/svg"
5
+ width="300.000000pt" height="234.000000pt" viewBox="0 0 300.000000 234.000000"
6
+ preserveAspectRatio="xMidYMid meet">
7
+
8
+ <g transform="translate(0.000000,234.000000) scale(0.100000,-0.100000)"
9
+ fill="#ed3c48" stroke="none">
10
+ <path d="M629 2072 c-15 -13 -22 -30 -22 -51 0 -29 20 -53 177 -210 l176 -177
11
+ -92 -95 c-99 -101 -201 -236 -244 -324 l-26 -54 21 -44 c85 -174 274 -388 446
12
+ -502 159 -106 295 -149 475 -148 141 1 236 24 365 87 l90 45 186 -185 c158
13
+ -157 190 -184 215 -184 39 0 74 36 74 76 0 25 -114 142 -878 906 -789 790
14
+ -880 878 -908 878 -18 0 -42 -8 -55 -18z m544 -650 l98 -98 -23 -50 c-31 -68
15
+ -30 -170 1 -242 31 -68 113 -144 182 -167 64 -22 177 -16 232 11 l38 18 89
16
+ -89 c50 -49 90 -92 90 -96 0 -9 -105 -55 -175 -75 -82 -25 -258 -25 -339 0
17
+ -124 37 -255 116 -364 220 -87 81 -232 273 -232 306 0 43 260 360 296 360 5 0
18
+ 53 -44 107 -98z m314 -314 c51 -51 93 -96 93 -99 0 -13 -53 -17 -89 -7 -44 12
19
+ -89 52 -107 95 -21 48 -18 103 5 103 3 0 47 -42 98 -92z"/>
20
+ <path d="M1410 1849 c-87 -15 -123 -52 -105 -109 13 -40 47 -53 111 -41 226
21
+ 42 459 -41 660 -235 69 -67 171 -194 210 -260 l26 -45 -37 -57 c-21 -31 -56
22
+ -81 -78 -110 -47 -62 -53 -105 -18 -134 27 -21 70 -24 92 -5 55 44 199 267
23
+ 199 307 0 14 -16 53 -36 85 -263 437 -650 665 -1024 604z"/>
24
+ </g>
25
+ </svg>
admin/boot.php CHANGED
@@ -44,7 +44,7 @@ if ( ! defined( 'LOADING_DISABLE_ADMIN_NOTICES_AS_ADDON' ) ) {
44
  *
45
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
46
  */
47
- add_filter( 'wbcr_factory_pages_432_imppage_rating_widget_url', function ( $page_url, $plugin_name ) {
48
  if ( $plugin_name == WDN_Plugin::app()->getPluginName() ) {
49
  return 'https://goo.gl/68ucHp';
50
  }
@@ -100,7 +100,7 @@ if ( ! defined( 'LOADING_DISABLE_ADMIN_NOTICES_AS_ADDON' ) ) {
100
  * that put all unapproved comments to spam check queue.
101
  */
102
  add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) {
103
- if ( $plugin_name != WDN_Plugin::app()->getPluginName() ) {
104
  return $notices;
105
  }
106
 
44
  *
45
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
46
  */
47
+ add_filter( 'wbcr_factory_pages_438_imppage_rating_widget_url', function ( $page_url, $plugin_name ) {
48
  if ( $plugin_name == WDN_Plugin::app()->getPluginName() ) {
49
  return 'https://goo.gl/68ucHp';
50
  }
100
  * that put all unapproved comments to spam check queue.
101
  */
102
  add_action( 'wbcr/factory/admin_notices', function ( $notices, $plugin_name ) {
103
+ if ( $plugin_name != WDN_Plugin::app()->getPluginName() || 'wbcr_clearfy' === $plugin_name ) {
104
  return $notices;
105
  }
106
 
admin/class-page-basic.php CHANGED
@@ -19,16 +19,16 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  exit;
20
  }
21
 
22
- class WDN_Page extends Wbcr_FactoryClearfy224_PageBase {
23
 
24
  /**
25
  * Requests assets (js and css) for the page.
26
  *
27
- * @param Wbcr_Factory432_ScriptList $scripts
28
- * @param Wbcr_Factory432_StyleList $styles
29
  *
30
  * @return void
31
- * @see Wbcr_FactoryPages432_AdminPage
32
  *
33
  */
34
  public function assets( $scripts, $styles ) {
19
  exit;
20
  }
21
 
22
+ class WDN_Page extends Wbcr_FactoryClearfy230_PageBase {
23
 
24
  /**
25
  * Requests assets (js and css) for the page.
26
  *
27
+ * @param Wbcr_Factory439_ScriptList $scripts
28
+ * @param Wbcr_Factory439_StyleList $styles
29
  *
30
  * @return void
31
+ * @see Wbcr_FactoryPages438_AdminPage
32
  *
33
  */
34
  public function assets( $scripts, $styles ) {
admin/options.php CHANGED
@@ -176,7 +176,7 @@ function wbcr_dan_is_active_clearfy_component() {
176
  * с настройками этого плагина, потому что это ухудшает юзабилити.
177
  *
178
  * @param array $form Массив с группой настроек, страницы "Дополнительно" в плагине Clearfy
179
- * @param Wbcr_FactoryPages432_ImpressiveThemplate $page Экземпляр страницы
180
  *
181
  * @return mixed Отсортированный массив с группой опций
182
  */
@@ -203,7 +203,7 @@ add_filter( 'wbcr_clr_additionally_form_options', 'wbcr_dan_additionally_form_op
203
  * Эта модикация является не стандартной, поэтому мы не можете реалировать ее
204
  * через фреймворк.
205
  *
206
- * @param @param $html_builder Wbcr_FactoryForms430_Html
207
  *
208
  * @since 1.0
209
  *
176
  * с настройками этого плагина, потому что это ухудшает юзабилити.
177
  *
178
  * @param array $form Массив с группой настроек, страницы "Дополнительно" в плагине Clearfy
179
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $page Экземпляр страницы
180
  *
181
  * @return mixed Отсортированный массив с группой опций
182
  */
203
  * Эта модикация является не стандартной, поэтому мы не можете реалировать ее
204
  * через фреймворк.
205
  *
206
+ * @param @param $html_builder Wbcr_FactoryForms436_Html
207
  *
208
  * @since 1.0
209
  *
admin/pages/class-pages-edit-admin-bar.php CHANGED
@@ -63,11 +63,11 @@ class WDAN_Edit_Admin_Bar extends WDN_Page {
63
  /**
64
  * Requests assets (js and css) for the page.
65
  *
66
- * @param Wbcr_Factory432_ScriptList $scripts
67
- * @param Wbcr_Factory432_StyleList $styles
68
  *
69
  * @return void
70
- * @see Wbcr_FactoryPages432_AdminPage
71
  *
72
  */
73
  public function assets( $scripts, $styles ) {
63
  /**
64
  * Requests assets (js and css) for the page.
65
  *
66
+ * @param Wbcr_Factory439_ScriptList $scripts
67
+ * @param Wbcr_Factory439_StyleList $styles
68
  *
69
  * @return void
70
+ * @see Wbcr_FactoryPages438_AdminPage
71
  *
72
  */
73
  public function assets( $scripts, $styles ) {
admin/pages/class-pages-edit-redirects.php CHANGED
@@ -61,11 +61,11 @@ class WDAN_Block_Ad_Redirects extends WDN_Page {
61
  /**
62
  * Requests assets (js and css) for the page.
63
  *
64
- * @param Wbcr_Factory432_ScriptList $scripts
65
- * @param Wbcr_Factory432_StyleList $styles
66
  *
67
  * @return void
68
- * @see Wbcr_FactoryPages432_AdminPage
69
  *
70
  */
71
  public function assets( $scripts, $styles ) {
61
  /**
62
  * Requests assets (js and css) for the page.
63
  *
64
+ * @param Wbcr_Factory439_ScriptList $scripts
65
+ * @param Wbcr_Factory439_StyleList $styles
66
  *
67
  * @return void
68
+ * @see Wbcr_FactoryPages438_AdminPage
69
  *
70
  */
71
  public function assets( $scripts, $styles ) {
admin/pages/class-pages-license.php CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  *
14
  * @copyright (c) 2018 Webraftic Ltd
15
  */
16
- class WDN_LicensePage extends Wbcr_FactoryClearfy224_LicensePage {
17
 
18
  /**
19
  * {@inheritdoc}
@@ -36,12 +36,12 @@ class WDN_LicensePage extends Wbcr_FactoryClearfy224_LicensePage {
36
  /**
37
  * WCL_LicensePage constructor.
38
  *
39
- * @param \Wbcr_Factory432_Plugin $plugin
40
  *
41
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
42
  *
43
  */
44
- public function __construct( Wbcr_Factory432_Plugin $plugin ) {
45
  $this->menu_title = __( 'License', 'robin-image-optimizer' );
46
  $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
47
  $this->plan_name = __( 'Disable admin notices premium', 'robin-image-optimizer' );
13
  *
14
  * @copyright (c) 2018 Webraftic Ltd
15
  */
16
+ class WDN_LicensePage extends Wbcr_FactoryClearfy230_LicensePage {
17
 
18
  /**
19
  * {@inheritdoc}
36
  /**
37
  * WCL_LicensePage constructor.
38
  *
39
+ * @param \Wbcr_Factory439_Plugin $plugin
40
  *
41
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
42
  *
43
  */
44
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
45
  $this->menu_title = __( 'License', 'robin-image-optimizer' );
46
  $this->page_menu_short_description = __( 'Product activation', 'robin-image-optimizer' );
47
  $this->plan_name = __( 'Disable admin notices premium', 'robin-image-optimizer' );
admin/pages/class-pages-notices.php CHANGED
@@ -59,11 +59,11 @@ class WDAN_Notices extends WDN_Page {
59
  /**
60
  * Requests assets (js and css) for the page.
61
  *
62
- * @param Wbcr_Factory432_ScriptList $scripts
63
- * @param Wbcr_Factory432_StyleList $styles
64
  *
65
  * @return void
66
- * @see Wbcr_FactoryPages432_AdminPage
67
  *
68
  */
69
  public function assets( $scripts, $styles ) {
59
  /**
60
  * Requests assets (js and css) for the page.
61
  *
62
+ * @param Wbcr_Factory439_ScriptList $scripts
63
+ * @param Wbcr_Factory439_StyleList $styles
64
  *
65
  * @return void
66
+ * @see Wbcr_FactoryPages438_AdminPage
67
  *
68
  */
69
  public function assets( $scripts, $styles ) {
admin/pages/class-pages-settings.php CHANGED
@@ -66,9 +66,9 @@ class WDN_Settings_Page extends WDN_Page {
66
 
67
 
68
  /**
69
- * @param Wbcr_Factory432_Plugin $plugin
70
  */
71
- public function __construct( Wbcr_Factory432_Plugin $plugin ) {
72
  $this->menu_title = __( 'Hide admin notices', 'disable-admin-notices' );
73
  $this->page_menu_short_description = __( 'General settings', 'disable-admin-notices' );
74
 
@@ -88,11 +88,11 @@ class WDN_Settings_Page extends WDN_Page {
88
  /**
89
  * Requests assets (js and css) for the page.
90
  *
91
- * @param Wbcr_Factory432_ScriptList $scripts
92
- * @param Wbcr_Factory432_StyleList $styles
93
  *
94
  * @return void
95
- * @see Wbcr_FactoryPages432_AdminPage
96
  *
97
  */
98
  public function assets( $scripts, $styles ) {
@@ -122,7 +122,7 @@ class WDN_Settings_Page extends WDN_Page {
122
  'wbcr_dan_code' => 'interal_error'
123
  ),
124
  'type' => 'danger',
125
- 'message' => __('An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'factory_pages_432')
126
  );*/
127
 
128
  return $notices;
66
 
67
 
68
  /**
69
+ * @param Wbcr_Factory439_Plugin $plugin
70
  */
71
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
72
  $this->menu_title = __( 'Hide admin notices', 'disable-admin-notices' );
73
  $this->page_menu_short_description = __( 'General settings', 'disable-admin-notices' );
74
 
88
  /**
89
  * Requests assets (js and css) for the page.
90
  *
91
+ * @param Wbcr_Factory439_ScriptList $scripts
92
+ * @param Wbcr_Factory439_StyleList $styles
93
  *
94
  * @return void
95
+ * @see Wbcr_FactoryPages438_AdminPage
96
  *
97
  */
98
  public function assets( $scripts, $styles ) {
122
  'wbcr_dan_code' => 'interal_error'
123
  ),
124
  'type' => 'danger',
125
+ 'message' => __('An error occurred while trying to delete comments. Internal error occured. Please try again later.', 'factory_pages_438')
126
  );*/
127
 
128
  return $notices;
admin/pages/class-pages.php DELETED
@@ -1,25 +0,0 @@
1
- <?php
2
- /**
3
- * Страница общих настроек для этого плагина.
4
- *
5
- * Может быть использована только, если этот плагин используется как отдельный плагин, а не как аддон
6
- * дя плагина Clearfy. Если плагин загружен, как аддон для Clearfy, эта страница не будет подключена.
7
- *
8
- * Поддерживает режим работы с мультисаймами. Вы можете увидеть эту страницу в панели настройки сети.
9
- *
10
- * Github: https://github.com/alexkovalevv
11
- *
12
- * @author Alexander Kovalev <alex.kovalevv@gmail.com>
13
- * @copyright (c) 2018 Webraftic Ltd
14
- * @version 1.0
15
- */
16
-
17
- // Exit if accessed directly
18
- if ( ! defined( 'ABSPATH' ) ) {
19
- exit;
20
- }
21
-
22
- class WDN_Page extends Wbcr_FactoryClearfy223_PageBase {
23
-
24
-
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
disable-admin-notices.php CHANGED
@@ -4,11 +4,11 @@
4
  * Plugin URI: https://webcraftic.com
5
  * Description: Disable admin notices plugin gives you the option to hide updates warnings and inline notices in the admin panel.
6
  * Author: Webcraftic <wordpress.webraftic@gmail.com>
7
- * Version: 1.2.3
8
  * Text Domain: disable-admin-notices
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
- * Framework Version: FACTORY_432_VERSION
12
  */
13
 
14
  /**
@@ -25,7 +25,7 @@
25
  */
26
 
27
  // Exit if accessed directly
28
- if ( ! defined( 'ABSPATH' ) ) {
29
  exit;
30
  }
31
 
@@ -37,64 +37,70 @@ if ( ! defined( 'ABSPATH' ) ) {
37
  * -----------------------------------------------------------------------------
38
  */
39
 
40
- require_once( dirname( __FILE__ ) . '/libs/factory/core/includes/class-factory-requirements.php' );
41
 
42
  // @formatter:off
43
  $wdan_plugin_info = array(
44
- 'prefix' => 'wbcr_dan_',
45
- 'plugin_name' => 'wbcr_dan',
46
- 'plugin_title' => __( 'Webcraftic disable admin notices', 'disable-admin-notices' ),
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,
54
  'pricing' => 'disable-admin-notices'
55
  )
56
  ),
57
  // PLUGIN PREMIUM SETTINGS
58
- 'has_premium' => true,
59
- 'license_settings' => array(
60
- 'provider' => 'freemius',
61
- 'slug' => 'disable-admin-notices-premium',
62
- 'plugin_id' => '6456',
63
- 'public_key' => 'pk_0570ec3c1b4100b9c9a0cbfe80f9f',
64
- 'price' => 29,
65
- 'has_updates' => true,
66
  'updates_settings' => array(
67
- 'maybe_rollback' => true,
68
  'rollback_settings' => array(
69
  'prev_stable_version' => '0.0.0'
70
  )
71
  )
72
  ),
 
 
 
 
 
73
  // PLUGIN ADVERTS
74
- 'render_adverts' => true,
75
- 'adverts_settings' => array(
76
  'dashboard_widget' => false, // show dashboard widget (default: false)
77
- 'right_sidebar' => true, // show adverts sidebar (default: false)
78
- 'notice' => false, // show notice message (default: false)
79
  ),
80
 
81
  // FRAMEWORK MODULES
82
  'load_factory_modules' => array(
83
- array( 'libs/factory/bootstrap', 'factory_bootstrap_433', 'admin' ),
84
- array( 'libs/factory/forms', 'factory_forms_430', 'admin' ),
85
- array( 'libs/factory/pages', 'factory_pages_432', 'admin' ),
86
- array( 'libs/factory/clearfy', 'factory_clearfy_224', 'all' ),
87
- array( 'libs/factory/freemius', 'factory_freemius_120', 'all' ),
88
- array( 'libs/factory/adverts', 'factory_adverts_112', 'admin' )
 
89
  )
90
  );
91
 
92
- $wdan_compatibility = new Wbcr_Factory432_Requirements( __FILE__, array_merge( $wdan_plugin_info, array(
93
- 'plugin_already_activate' => defined( 'WDN_PLUGIN_ACTIVE' ),
94
- 'required_php_version' => '5.4',
95
- 'required_wp_version' => '4.2.0',
96
  'required_clearfy_check_component' => false
97
- ) ) );
98
 
99
 
100
 
@@ -102,7 +108,7 @@ $wdan_compatibility = new Wbcr_Factory432_Requirements( __FILE__, array_merge( $
102
  * If the plugin is compatible, then it will continue its work, otherwise it will be stopped,
103
  * and the user will throw a warning.
104
  */
105
- if ( ! $wdan_compatibility->check() ) {
106
  return;
107
  }
108
 
@@ -115,11 +121,11 @@ if ( ! $wdan_compatibility->check() ) {
115
  */
116
 
117
  // This plugin is activated
118
- define( 'WDN_PLUGIN_ACTIVE', true );
119
- define( 'WDN_PLUGIN_VERSION', $wdan_compatibility->get_plugin_version() );
120
- define( 'WDN_PLUGIN_DIR', dirname( __FILE__ ) );
121
- define( 'WDN_PLUGIN_BASE', plugin_basename( __FILE__ ) );
122
- define( 'WDN_PLUGIN_URL', plugins_url( null, __FILE__ ) );
123
 
124
 
125
 
@@ -129,25 +135,25 @@ define( 'WDN_PLUGIN_URL', plugins_url( null, __FILE__ ) );
129
  * -----------------------------------------------------------------------------
130
  */
131
 
132
- require_once( WDN_PLUGIN_DIR . '/libs/factory/core/boot.php' );
133
- require_once( WDN_PLUGIN_DIR . '/includes/functions.php' );
134
- require_once( WDN_PLUGIN_DIR . '/includes/class-plugin.php' );
135
 
136
  try {
137
- new WDN_Plugin( __FILE__, array_merge( $wdan_plugin_info, array(
138
- 'plugin_version' => WDN_PLUGIN_VERSION,
139
  'plugin_text_domain' => $wdan_compatibility->get_text_domain(),
140
- ) ) );
141
  } catch( Exception $e ) {
142
  // Plugin wasn't initialized due to an error
143
- define( 'WDN_PLUGIN_THROW_ERROR', true );
144
 
145
- $wdan_plugin_error_func = function () use ( $e ) {
146
- $error = sprintf( "The %s plugin has stopped. <b>Error:</b> %s Code: %s", 'Webcraftic Disable Admin Notices', $e->getMessage(), $e->getCode() );
147
  echo '<div class="notice notice-error"><p>' . $error . '</p></div>';
148
  };
149
 
150
- add_action( 'admin_notices', $wdan_plugin_error_func );
151
- add_action( 'network_admin_notices', $wdan_plugin_error_func );
152
  }
153
  // @formatter:on
4
  * Plugin URI: https://webcraftic.com
5
  * Description: Disable admin notices plugin gives you the option to hide updates warnings and inline notices in the admin panel.
6
  * Author: Webcraftic <wordpress.webraftic@gmail.com>
7
+ * Version: 1.2.4
8
  * Text Domain: disable-admin-notices
9
  * Domain Path: /languages/
10
  * Author URI: https://webcraftic.com
11
+ * Framework Version: FACTORY_439_VERSION
12
  */
13
 
14
  /**
25
  */
26
 
27
  // Exit if accessed directly
28
+ if( !defined('ABSPATH') ) {
29
  exit;
30
  }
31
 
37
  * -----------------------------------------------------------------------------
38
  */
39
 
40
+ require_once(dirname(__FILE__) . '/libs/factory/core/includes/class-factory-requirements.php');
41
 
42
  // @formatter:off
43
  $wdan_plugin_info = array(
44
+ 'prefix' => 'wbcr_dan_',
45
+ 'plugin_name' => 'wbcr_dan',
46
+ 'plugin_title' => __('Webcraftic disable admin notices', 'disable-admin-notices'),
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,
54
  'pricing' => 'disable-admin-notices'
55
  )
56
  ),
57
  // PLUGIN PREMIUM SETTINGS
58
+ 'has_premium' => true,
59
+ 'license_settings' => array(
60
+ 'provider' => 'freemius',
61
+ 'slug' => 'disable-admin-notices-premium',
62
+ 'plugin_id' => '6456',
63
+ 'public_key' => 'pk_0570ec3c1b4100b9c9a0cbfe80f9f',
64
+ 'price' => 29,
65
+ 'has_updates' => true,
66
  'updates_settings' => array(
67
+ 'maybe_rollback' => true,
68
  'rollback_settings' => array(
69
  'prev_stable_version' => '0.0.0'
70
  )
71
  )
72
  ),
73
+
74
+ // PLUGIN SUBSCRIBE FORM
75
+ 'subscribe_widget' => true,
76
+ 'subscribe_settings' => ['group_id' => '105407140'],
77
+
78
  // PLUGIN ADVERTS
79
+ 'render_adverts' => true,
80
+ 'adverts_settings' => array(
81
  'dashboard_widget' => false, // show dashboard widget (default: false)
82
+ 'right_sidebar' => true, // show adverts sidebar (default: false)
83
+ 'notice' => false, // show notice message (default: false)
84
  ),
85
 
86
  // FRAMEWORK MODULES
87
  'load_factory_modules' => array(
88
+ array('libs/factory/bootstrap', 'factory_bootstrap_439', 'admin'),
89
+ array('libs/factory/forms', 'factory_forms_436', 'admin'),
90
+ array('libs/factory/pages', 'factory_pages_438', 'admin'),
91
+ array('libs/factory/clearfy', 'factory_clearfy_230', 'all'),
92
+ array('libs/factory/freemius', 'factory_freemius_126', 'all'),
93
+ array('libs/factory/adverts', 'factory_adverts_117', 'admin'),
94
+ //array('libs/factory/logger', 'factory_logger_101', 'all')
95
  )
96
  );
97
 
98
+ $wdan_compatibility = new Wbcr_Factory439_Requirements(__FILE__, array_merge($wdan_plugin_info, array(
99
+ 'plugin_already_activate' => defined('WDN_PLUGIN_ACTIVE'),
100
+ 'required_php_version' => '5.4',
101
+ 'required_wp_version' => '4.2.0',
102
  'required_clearfy_check_component' => false
103
+ )));
104
 
105
 
106
 
108
  * If the plugin is compatible, then it will continue its work, otherwise it will be stopped,
109
  * and the user will throw a warning.
110
  */
111
+ if( !$wdan_compatibility->check() ) {
112
  return;
113
  }
114
 
121
  */
122
 
123
  // This plugin is activated
124
+ define('WDN_PLUGIN_ACTIVE', true);
125
+ define('WDN_PLUGIN_VERSION', $wdan_compatibility->get_plugin_version());
126
+ define('WDN_PLUGIN_DIR', dirname(__FILE__));
127
+ define('WDN_PLUGIN_BASE', plugin_basename(__FILE__));
128
+ define('WDN_PLUGIN_URL', plugins_url(null, __FILE__));
129
 
130
 
131
 
135
  * -----------------------------------------------------------------------------
136
  */
137
 
138
+ require_once(WDN_PLUGIN_DIR . '/libs/factory/core/boot.php');
139
+ require_once(WDN_PLUGIN_DIR . '/includes/functions.php');
140
+ require_once(WDN_PLUGIN_DIR . '/includes/class-plugin.php');
141
 
142
  try {
143
+ new WDN_Plugin(__FILE__, array_merge($wdan_plugin_info, array(
144
+ 'plugin_version' => WDN_PLUGIN_VERSION,
145
  'plugin_text_domain' => $wdan_compatibility->get_text_domain(),
146
+ )));
147
  } catch( Exception $e ) {
148
  // Plugin wasn't initialized due to an error
149
+ define('WDN_PLUGIN_THROW_ERROR', true);
150
 
151
+ $wdan_plugin_error_func = function () use ($e) {
152
+ $error = sprintf("The %s plugin has stopped. <b>Error:</b> %s Code: %s", 'Webcraftic Disable Admin Notices', $e->getMessage(), $e->getCode());
153
  echo '<div class="notice notice-error"><p>' . $error . '</p></div>';
154
  };
155
 
156
+ add_action('admin_notices', $wdan_plugin_error_func);
157
+ add_action('network_admin_notices', $wdan_plugin_error_func);
158
  }
159
  // @formatter:on
includes/class-plugin.php CHANGED
@@ -9,16 +9,16 @@
9
  */
10
 
11
  // Exit if accessed directly
12
- //use WBCR\Factory_Adverts_112\Base;
13
 
14
  if ( ! defined( 'ABSPATH' ) ) {
15
  exit;
16
  }
17
 
18
- class WDN_Plugin extends Wbcr_Factory432_Plugin {
19
 
20
  /**
21
- * @var Wbcr_Factory432_Plugin
22
  */
23
  private static $app;
24
  private $plugin_data;
@@ -44,13 +44,14 @@ class WDN_Plugin extends Wbcr_Factory432_Plugin {
44
  }
45
 
46
  /**
47
- * @return Wbcr_Factory432_Plugin
48
  */
49
  public static function app() {
50
  return self::$app;
51
  }
52
 
53
  private function registerPages() {
 
54
  self::app()->registerPage( 'WDN_Settings_Page', WDN_PLUGIN_DIR . '/admin/pages/class-pages-settings.php' );
55
 
56
  if ( ! ( $this->premium->is_activate() && $this->premium->is_install_package() ) ) {
9
  */
10
 
11
  // Exit if accessed directly
12
+ //use WBCR\Factory_Adverts_117\Base;
13
 
14
  if ( ! defined( 'ABSPATH' ) ) {
15
  exit;
16
  }
17
 
18
+ class WDN_Plugin extends Wbcr_Factory439_Plugin {
19
 
20
  /**
21
+ * @var Wbcr_Factory439_Plugin
22
  */
23
  private static $app;
24
  private $plugin_data;
44
  }
45
 
46
  /**
47
+ * @return Wbcr_Factory439_Plugin
48
  */
49
  public static function app() {
50
  return self::$app;
51
  }
52
 
53
  private function registerPages() {
54
+ //self::app()->registerPage( 'WDN_Log_Page', WDN_PLUGIN_DIR . '/admin/pages/class-pages-log.php' );
55
  self::app()->registerPage( 'WDN_Settings_Page', WDN_PLUGIN_DIR . '/admin/pages/class-pages-settings.php' );
56
 
57
  if ( ! ( $this->premium->is_activate() && $this->premium->is_install_package() ) ) {
includes/classes/class-configurate-notices.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  exit;
16
  }
17
 
18
- class WDN_ConfigHideNotices extends Wbcr_FactoryClearfy224_Configurate {
19
 
20
  public function registerActionsAndFilters() {
21
  if ( is_admin() ) {
15
  exit;
16
  }
17
 
18
+ class WDN_ConfigHideNotices extends Wbcr_FactoryClearfy230_Configurate {
19
 
20
  public function registerActionsAndFilters() {
21
  if ( is_admin() ) {
includes/function.php DELETED
@@ -1,122 +0,0 @@
1
- <?php
2
- /**
3
- * Helper functions
4
- * @author Webcraftic <alex.kovalevv@gmail.com>
5
- * @copyright (c) 05.07.2020, Webcraftic
6
- * @version 1.0
7
- */
8
-
9
- /**
10
- * Access to global variable $wp_filter in WP core.
11
- * Migration from WP 4.2 to 4.9
12
- *
13
- * @see https://codex.wordpress.org/Version_4.7 WP 4.7 changelog (WP_Hook)
14
- *
15
- * @param $key string filter name
16
- *
17
- * @return array callbacks array by link
18
- */
19
- function &wdan_get_wp_filter( $key ) {
20
- global $wp_filter;
21
-
22
- $default = [];
23
-
24
- if ( 'admin_notices' === $key && is_multisite() && is_network_admin() ) {
25
- $key = 'network_admin_notices';
26
- }
27
-
28
- if ( ! isset( $wp_filter[ $key ] ) ) {
29
- return $default;
30
- }
31
-
32
- return $wp_filter[ $key ]->callbacks;
33
- }
34
-
35
- /**
36
- * @param $key
37
- *
38
- * @return array
39
- */
40
- function wdan_collect_notices( $key ) {
41
- $wp_filter = &wdan_get_wp_filter( $key );
42
-
43
- $content = [];
44
-
45
- if ( ! empty( $wp_filter ) ) {
46
- foreach ( (array) $wp_filter as $filters ) {
47
- foreach ( $filters as $callback_name => $callback ) {
48
-
49
- if ( 'usof_hide_admin_notices_start' == $callback_name || 'usof_hide_admin_notices_end' == $callback_name ) {
50
- continue;
51
- }
52
-
53
- ob_start();
54
-
55
- // #CLRF-140 fix bug for php7
56
- // when the developers forgot to delete the argument in the function of implementing the notification.
57
- $args = [];
58
- $accepted_args = isset( $callback['accepted_args'] ) && ! empty( $callback['accepted_args'] ) ? $callback['accepted_args'] : 0;
59
-
60
- if ( $accepted_args > 0 ) {
61
- for ( $i = 0; $i < (int) $accepted_args; $i ++ ) {
62
- $args[] = null;
63
- }
64
- }
65
- //===========
66
-
67
- call_user_func_array( $callback['function'], $args );
68
- $cont = ob_get_clean();
69
-
70
- if ( ! empty( $cont ) ) {
71
- $salt = is_multisite() ? get_current_blog_id() : '';
72
- $uniq_id1 = md5( $cont . $salt );
73
- $uniq_id2 = md5( $callback_name . $salt );
74
-
75
- if ( is_array( $callback['function'] ) && sizeof( $callback['function'] ) == 2 ) {
76
- $class = $callback['function'][0];
77
- if ( is_object( $class ) ) {
78
- $class_name = get_class( $class );
79
- $method_name = $callback['function'][1];
80
- $uniq_id2 = md5( $class_name . ':' . $method_name );
81
- }
82
- }
83
-
84
- $content[ $uniq_id1 . "_" . $uniq_id2 ] = $cont;
85
- }
86
- }
87
- }
88
- }
89
-
90
- return $content;
91
- }
92
-
93
- /**
94
- * @param $key
95
- * @param array $excluded_classes
96
- * @param array $excluded_callback_names
97
- */
98
- function wdan_clear_all_notices( $key, $excluded_classes = [], $excluded_callback_names = [] ) {
99
- $wp_filter = &wdan_get_wp_filter( $key );
100
-
101
- if ( ! empty( $wp_filter ) ) {
102
- foreach ( (array) $wp_filter as $f_key => $f ) {
103
- foreach ( $f as $c_name => $clback ) {
104
- if ( is_array( $clback['function'] ) && sizeof( $clback['function'] ) == 2 ) {
105
- $class = $clback['function'][0];
106
- if ( is_object( $class ) ) {
107
- $class_name = get_class( $class );
108
-
109
- if ( in_array( $class_name, $excluded_classes ) ) {
110
- continue;
111
- }
112
- }
113
- }
114
-
115
- if ( in_array( $c_name, $excluded_callback_names ) ) {
116
- continue;
117
- }
118
- unset( $wp_filter[ $f_key ][ $c_name ] );
119
- }
120
- }
121
- }
122
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/disable-admin-notices-ru_RU.po CHANGED
@@ -1,256 +1,256 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: clearfy\n"
4
- "POT-Creation-Date: 2020-08-27 12:50+0000\n"
5
- "PO-Revision-Date: 2020-08-27 12:54+0000\n"
6
- "Last-Translator: \n"
7
- "Language-Team: Русский\n"
8
- "Language: ru_RU\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Loco https://localise.biz/\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
15
- "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
- "X-Poedit-SearchPath-0: .\n"
19
- "X-Poedit-SearchPathExcluded-0: libs\n"
20
- "Report-Msgid-Bugs-To: \n"
21
- "X-Loco-Version: 2.4.2; wp-5.5"
22
-
23
- #: disable-admin-notices.php:46
24
- msgid "Webcraftic disable admin notices"
25
- msgstr "Webcraftic отключить уведомления администратора"
26
-
27
- #: admin/boot.php:27
28
- msgid "Get ultimate plugin free"
29
- msgstr "Получите полную версию плагина бесплатно"
30
-
31
- #: admin/boot.php:82 admin/options.php:66
32
- #: admin/pages/class-pages-settings.php:72
33
- msgid "Hide admin notices"
34
- msgstr "Скрыть уведомления"
35
-
36
- #: admin/boot.php:88 admin/options.php:148
37
- msgid "Enable hidden notices in adminbar"
38
- msgstr "Включить уведомления в админбаре"
39
-
40
- #: admin/class-page-basic.php:41
41
- msgid "Webcraftic Disable Admin Notices"
42
- msgstr "Webcraftic Disable Admin Notices"
43
-
44
- #: admin/options.php:33
45
- msgid "Admin notifications, Update nags"
46
- msgstr "Уведомления администратора, уведомления об обновлении Wordpress"
47
-
48
- #: admin/options.php:33
49
- msgid ""
50
- "Do you know the situation, when some plugin offers you to update to premium, "
51
- "to collect technical data and shows many annoying notices? You are close "
52
- "these notices every now and again but they newly appears and interfere your "
53
- "work with WordPress. Even worse, some plugin’s authors delete “close” button "
54
- "from notices and they shows in your admin panel forever."
55
- msgstr ""
56
- "Вам знакома ситуация, когда какой-то плагин просит вас обновиться до премиум-"
57
- "версии, получить права на сбор данных о вашем сайте и создает много "
58
- "раздражающих уведомлений? Вы закрываете эти уведомления раз за разом, но они "
59
- "вновь появляются и мешают вашей работе с WordPress. Хуже того, некоторые "
60
- "авторы и вовсе удаляют кнопку “закрыть” из уведомлений, и они висят в шапке "
61
- "вашей панели администратора целую вечность."
62
-
63
- #: admin/options.php:39
64
- msgid "Don't hide"
65
- msgstr "Не скрывать"
66
-
67
- #: admin/options.php:40
68
- msgid ""
69
- "Do not hide notices and do not show “Hide notification forever” link for "
70
- "admin."
71
- msgstr ""
72
- "Не скрывать уведомления и не показывать ссылку \"Скрыть уведомление "
73
- "навсегда\" в уведомлениях администратора."
74
-
75
- #: admin/options.php:44
76
- msgid "All notices"
77
- msgstr "Все уведомления"
78
-
79
- #: admin/options.php:45
80
- msgid "Hide all notices globally."
81
- msgstr "Скрыть все уведомления глобально."
82
-
83
- #: admin/options.php:45 admin/options.php:50 admin/options.php:58
84
- #, php-format
85
- msgid ""
86
- "Watch the <a href=\"%s\" target=\"_blank\">video</a> to find out how it "
87
- "works ."
88
- msgstr ""
89
- "Посмотрите <a href=\"%s\" target=\"_blank\">видео</a> о том, как это "
90
- "работает."
91
-
92
- #: admin/options.php:49
93
- msgid "Only selected"
94
- msgstr "Только выбранные"
95
-
96
- #: admin/options.php:50
97
- msgid ""
98
- "Hide selected notices only. You will see the link \"Hide notification "
99
- "forever\" in each notice. Push it and they will not bother you anymore."
100
- msgstr ""
101
- "Скрывать только выбранные уведомления. В каждом уведомлении вы увидите "
102
- "ссылку \"Скрыть уведомление навсегда\". Нажмите на неё и уведомление будет "
103
- "скрыто навсегда и перестанет вас беспокоить."
104
-
105
- #: admin/options.php:57
106
- msgid "Compact panel"
107
- msgstr "Компактная панель"
108
-
109
- #: admin/options.php:58
110
- msgid ""
111
- "Collapse all notifications in one line (panel with notification counters), "
112
- "to see the notifications, you will need to click this panel."
113
- msgstr ""
114
- "Свернуть все уведомления в одну строку (панель со счетчиками уведомлений), "
115
- "чтобы увидеть уведомления, вам нужно будет нажать на эту панель."
116
-
117
- #: admin/options.php:69
118
- msgid ""
119
- "Some plugins shows notifications about premium version, data collecting or "
120
- "promote their services. Even if you push close button (that sometimes are "
121
- "impossible), notices are shows again in some time. This option allows you to "
122
- "control notices. Hide them all or each individually. Some plugins shows "
123
- "notifications about premium version, data collecting or promote their "
124
- "services. Even if you push close button (that sometimes are impossible), "
125
- "notices are shows again in some time. This option allows you to control "
126
- "notices. Hide them all or each individually."
127
- msgstr ""
128
- "Зачастую, плагины отображают уведомления о возможности перехода на премиум "
129
- "версию, просят разрешение на сбор данных, рекламируют свои услуги. Даже если "
130
- "вы нажмете кнопку закрыть (что не всегда возможно), уведомления всё равно "
131
- "отобразятся через какое-то время. С помощью этой настройки, вы можете "
132
- "контролировать эти уведомления. Скройте их все сразу или каждое по "
133
- "отдельности."
134
-
135
- #: admin/options.php:92 admin/options.php:94
136
- msgid "Disable plugins updates nags"
137
- msgstr "Отключить уведомления об обновлении плагинов"
138
-
139
- #: admin/options.php:103 admin/options.php:105
140
- msgid "Disable core updates nags"
141
- msgstr "Отключить уведомления об обновлении Wordpress"
142
-
143
- #: admin/options.php:150
144
- msgid ""
145
- "By default, the plugin hides all notices, which you specified. If you enable "
146
- "this option, the plugin will collect all hidden notices and show them into "
147
- "the top admin toolbar. It will not disturb you but will allow to look "
148
- "notices at your convenience."
149
- msgstr ""
150
- "По умолчанию, плагин полностью скрывает отключенные вами уведомления. Если "
151
- "включить эту опцию, то плагин будет собирать все скрытые вами уведомления и "
152
- "выводить в верхней панели администратора. Это не будет вас раздражать, но и "
153
- "позволит просматривать уведомления, когда вам это удобно."
154
-
155
- #: admin/options.php:235
156
- msgid "Reset hidden notices for"
157
- msgstr "Сброс скрытых уведомлений для"
158
-
159
- #: admin/options.php:238
160
- msgid "Push reset hidden notices if you need to show hidden notices again."
161
- msgstr "Нажмите кнопку \\\"Сбросить скрытые уведомления\\\""
162
-
163
- #: admin/options.php:249
164
- msgid "current user"
165
- msgstr "Текущий пользователь"
166
-
167
- #: admin/options.php:253
168
- msgid "all users"
169
- msgstr "Все пользователи"
170
-
171
- #: admin/options.php:257
172
- msgid "Reset notices"
173
- msgstr "Сбросить уведомления"
174
-
175
- #: admin/options.php:261 admin/pages/class-pages-settings.php:116
176
- msgid "Hidden notices are successfully reset, now you can see them again!"
177
- msgstr ""
178
- "Скрытые уведомления успешно восстановлены, теперь вы можете снова видеть их!"
179
-
180
- #: admin/ajax/hide-notice.php:27 admin/ajax/restore-notice.php:24
181
- msgid "Undefinded notice id."
182
- msgstr "Не передан notice id."
183
-
184
- #: admin/ajax/hide-notice.php:59 admin/ajax/restore-notice.php:45
185
- msgid "You don't have enough capability to edit this information."
186
- msgstr "Вы не имеете разрешения на редактирование этого!"
187
-
188
- #: admin/pages/class-pages-edit-admin-bar.php:53
189
- msgid "Hide adminbar items"
190
- msgstr "Меню админбара"
191
-
192
- #: admin/pages/class-pages-edit-admin-bar.php:54
193
- msgid "You can hide an annoying adminbar menu"
194
- msgstr "Скрытие пунктов меню админбара"
195
-
196
- #: admin/pages/class-pages-edit-redirects.php:53
197
- msgid "Block ad redirects"
198
- msgstr "Рекламные редиректы"
199
-
200
- #: admin/pages/class-pages-edit-redirects.php:54
201
- msgid "Break advertising redirects"
202
- msgstr "Отключение рекламных редиректов"
203
-
204
- #: admin/pages/class-pages-notices.php:51
205
- msgid "Hidden notices"
206
- msgstr "Скрытые нотисы"
207
-
208
- #: admin/pages/class-pages-notices.php:52
209
- msgid "Manage hidden notices"
210
- msgstr "Управление скрытыми нотисами"
211
-
212
- #: admin/pages/class-pages-settings.php:73
213
- msgid "General settings"
214
- msgstr "Основные настройки"
215
-
216
- #: admin/pages/class-pages-settings.php:85
217
- msgid "Settings"
218
- msgstr "Настройки"
219
-
220
- #: includes/classes/class-configurate-notices.php:81
221
- #, php-format
222
- msgid "Notifications %s"
223
- msgstr "Уведомления %s"
224
-
225
- #: includes/classes/class-configurate-notices.php:92
226
- msgid "Hidden for you"
227
- msgstr "Скрытые для Вас"
228
-
229
- #: includes/classes/class-configurate-notices.php:289
230
- msgid "Hide <b>for me</b>"
231
- msgstr "Скрыть для меня"
232
-
233
- #: includes/classes/class-configurate-notices.php:293
234
- msgid "Hide <b>for all</b>"
235
- msgstr "Скрыть для всех"
236
-
237
- #. Name of the plugin
238
- msgid "Disable Admin Notices Individually"
239
- msgstr "Disable Admin Notices Individually"
240
-
241
- #. Description of the plugin
242
- msgid ""
243
- "Disable admin notices plugin gives you the option to hide updates warnings "
244
- "and inline notices in the admin panel."
245
- msgstr ""
246
- "Плагин Disable admin notices дает вам возможность скрыть предупреждения об "
247
- "обновлениях и встроенные уведомления в панели администратора."
248
-
249
- #. URI of the plugin
250
- #. Author URI of the plugin
251
- msgid "https://webcraftic.com"
252
- msgstr "https://webcraftic.com"
253
-
254
- #. Author of the plugin
255
- msgid "Webcraftic <wordpress.webraftic@gmail.com>"
256
- msgstr "Webcraftic <wordpress.webraftic@gmail.com>"
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: clearfy\n"
4
+ "POT-Creation-Date: 2020-08-27 12:50+0000\n"
5
+ "PO-Revision-Date: 2020-08-27 12:54+0000\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: Русский\n"
8
+ "Language: ru_RU\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Loco https://localise.biz/\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
15
+ "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+ "X-Poedit-SearchPathExcluded-0: libs\n"
20
+ "Report-Msgid-Bugs-To: \n"
21
+ "X-Loco-Version: 2.4.2; wp-5.5"
22
+
23
+ #: disable-admin-notices.php:46
24
+ msgid "Webcraftic disable admin notices"
25
+ msgstr "Webcraftic отключить уведомления администратора"
26
+
27
+ #: admin/boot.php:27
28
+ msgid "Get ultimate plugin free"
29
+ msgstr "Получите полную версию плагина бесплатно"
30
+
31
+ #: admin/boot.php:82 admin/options.php:66
32
+ #: admin/pages/class-pages-settings.php:72
33
+ msgid "Hide admin notices"
34
+ msgstr "Скрыть уведомления"
35
+
36
+ #: admin/boot.php:88 admin/options.php:148
37
+ msgid "Enable hidden notices in adminbar"
38
+ msgstr "Включить уведомления в админбаре"
39
+
40
+ #: admin/class-page-basic.php:41
41
+ msgid "Webcraftic Disable Admin Notices"
42
+ msgstr "Webcraftic Disable Admin Notices"
43
+
44
+ #: admin/options.php:33
45
+ msgid "Admin notifications, Update nags"
46
+ msgstr "Уведомления администратора, уведомления об обновлении Wordpress"
47
+
48
+ #: admin/options.php:33
49
+ msgid ""
50
+ "Do you know the situation, when some plugin offers you to update to premium, "
51
+ "to collect technical data and shows many annoying notices? You are close "
52
+ "these notices every now and again but they newly appears and interfere your "
53
+ "work with WordPress. Even worse, some plugin’s authors delete “close” button "
54
+ "from notices and they shows in your admin panel forever."
55
+ msgstr ""
56
+ "Вам знакома ситуация, когда какой-то плагин просит вас обновиться до премиум-"
57
+ "версии, получить права на сбор данных о вашем сайте и создает много "
58
+ "раздражающих уведомлений? Вы закрываете эти уведомления раз за разом, но они "
59
+ "вновь появляются и мешают вашей работе с WordPress. Хуже того, некоторые "
60
+ "авторы и вовсе удаляют кнопку “закрыть” из уведомлений, и они висят в шапке "
61
+ "вашей панели администратора целую вечность."
62
+
63
+ #: admin/options.php:39
64
+ msgid "Don't hide"
65
+ msgstr "Не скрывать"
66
+
67
+ #: admin/options.php:40
68
+ msgid ""
69
+ "Do not hide notices and do not show “Hide notification forever” link for "
70
+ "admin."
71
+ msgstr ""
72
+ "Не скрывать уведомления и не показывать ссылку \"Скрыть уведомление "
73
+ "навсегда\" в уведомлениях администратора."
74
+
75
+ #: admin/options.php:44
76
+ msgid "All notices"
77
+ msgstr "Все уведомления"
78
+
79
+ #: admin/options.php:45
80
+ msgid "Hide all notices globally."
81
+ msgstr "Скрыть все уведомления глобально."
82
+
83
+ #: admin/options.php:45 admin/options.php:50 admin/options.php:58
84
+ #, php-format
85
+ msgid ""
86
+ "Watch the <a href=\"%s\" target=\"_blank\">video</a> to find out how it "
87
+ "works ."
88
+ msgstr ""
89
+ "Посмотрите <a href=\"%s\" target=\"_blank\">видео</a> о том, как это "
90
+ "работает."
91
+
92
+ #: admin/options.php:49
93
+ msgid "Only selected"
94
+ msgstr "Только выбранные"
95
+
96
+ #: admin/options.php:50
97
+ msgid ""
98
+ "Hide selected notices only. You will see the link \"Hide notification "
99
+ "forever\" in each notice. Push it and they will not bother you anymore."
100
+ msgstr ""
101
+ "Скрывать только выбранные уведомления. В каждом уведомлении вы увидите "
102
+ "ссылку \"Скрыть уведомление навсегда\". Нажмите на неё и уведомление будет "
103
+ "скрыто навсегда и перестанет вас беспокоить."
104
+
105
+ #: admin/options.php:57
106
+ msgid "Compact panel"
107
+ msgstr "Компактная панель"
108
+
109
+ #: admin/options.php:58
110
+ msgid ""
111
+ "Collapse all notifications in one line (panel with notification counters), "
112
+ "to see the notifications, you will need to click this panel."
113
+ msgstr ""
114
+ "Свернуть все уведомления в одну строку (панель со счетчиками уведомлений), "
115
+ "чтобы увидеть уведомления, вам нужно будет нажать на эту панель."
116
+
117
+ #: admin/options.php:69
118
+ msgid ""
119
+ "Some plugins shows notifications about premium version, data collecting or "
120
+ "promote their services. Even if you push close button (that sometimes are "
121
+ "impossible), notices are shows again in some time. This option allows you to "
122
+ "control notices. Hide them all or each individually. Some plugins shows "
123
+ "notifications about premium version, data collecting or promote their "
124
+ "services. Even if you push close button (that sometimes are impossible), "
125
+ "notices are shows again in some time. This option allows you to control "
126
+ "notices. Hide them all or each individually."
127
+ msgstr ""
128
+ "Зачастую, плагины отображают уведомления о возможности перехода на премиум "
129
+ "версию, просят разрешение на сбор данных, рекламируют свои услуги. Даже если "
130
+ "вы нажмете кнопку закрыть (что не всегда возможно), уведомления всё равно "
131
+ "отобразятся через какое-то время. С помощью этой настройки, вы можете "
132
+ "контролировать эти уведомления. Скройте их все сразу или каждое по "
133
+ "отдельности."
134
+
135
+ #: admin/options.php:92 admin/options.php:94
136
+ msgid "Disable plugins updates nags"
137
+ msgstr "Отключить уведомления об обновлении плагинов"
138
+
139
+ #: admin/options.php:103 admin/options.php:105
140
+ msgid "Disable core updates nags"
141
+ msgstr "Отключить уведомления об обновлении Wordpress"
142
+
143
+ #: admin/options.php:150
144
+ msgid ""
145
+ "By default, the plugin hides all notices, which you specified. If you enable "
146
+ "this option, the plugin will collect all hidden notices and show them into "
147
+ "the top admin toolbar. It will not disturb you but will allow to look "
148
+ "notices at your convenience."
149
+ msgstr ""
150
+ "По умолчанию, плагин полностью скрывает отключенные вами уведомления. Если "
151
+ "включить эту опцию, то плагин будет собирать все скрытые вами уведомления и "
152
+ "выводить в верхней панели администратора. Это не будет вас раздражать, но и "
153
+ "позволит просматривать уведомления, когда вам это удобно."
154
+
155
+ #: admin/options.php:235
156
+ msgid "Reset hidden notices for"
157
+ msgstr "Сброс скрытых уведомлений для"
158
+
159
+ #: admin/options.php:238
160
+ msgid "Push reset hidden notices if you need to show hidden notices again."
161
+ msgstr "Нажмите кнопку \\\"Сбросить скрытые уведомления\\\""
162
+
163
+ #: admin/options.php:249
164
+ msgid "current user"
165
+ msgstr "Текущий пользователь"
166
+
167
+ #: admin/options.php:253
168
+ msgid "all users"
169
+ msgstr "Все пользователи"
170
+
171
+ #: admin/options.php:257
172
+ msgid "Reset notices"
173
+ msgstr "Сбросить уведомления"
174
+
175
+ #: admin/options.php:261 admin/pages/class-pages-settings.php:116
176
+ msgid "Hidden notices are successfully reset, now you can see them again!"
177
+ msgstr ""
178
+ "Скрытые уведомления успешно восстановлены, теперь вы можете снова видеть их!"
179
+
180
+ #: admin/ajax/hide-notice.php:27 admin/ajax/restore-notice.php:24
181
+ msgid "Undefinded notice id."
182
+ msgstr "Не передан notice id."
183
+
184
+ #: admin/ajax/hide-notice.php:59 admin/ajax/restore-notice.php:45
185
+ msgid "You don't have enough capability to edit this information."
186
+ msgstr "Вы не имеете разрешения на редактирование этого!"
187
+
188
+ #: admin/pages/class-pages-edit-admin-bar.php:53
189
+ msgid "Hide adminbar items"
190
+ msgstr "Меню админбара"
191
+
192
+ #: admin/pages/class-pages-edit-admin-bar.php:54
193
+ msgid "You can hide an annoying adminbar menu"
194
+ msgstr "Скрытие пунктов меню админбара"
195
+
196
+ #: admin/pages/class-pages-edit-redirects.php:53
197
+ msgid "Block ad redirects"
198
+ msgstr "Рекламные редиректы"
199
+
200
+ #: admin/pages/class-pages-edit-redirects.php:54
201
+ msgid "Break advertising redirects"
202
+ msgstr "Отключение рекламных редиректов"
203
+
204
+ #: admin/pages/class-pages-notices.php:51
205
+ msgid "Hidden notices"
206
+ msgstr "Скрытые нотисы"
207
+
208
+ #: admin/pages/class-pages-notices.php:52
209
+ msgid "Manage hidden notices"
210
+ msgstr "Управление скрытыми нотисами"
211
+
212
+ #: admin/pages/class-pages-settings.php:73
213
+ msgid "General settings"
214
+ msgstr "Основные настройки"
215
+
216
+ #: admin/pages/class-pages-settings.php:85
217
+ msgid "Settings"
218
+ msgstr "Настройки"
219
+
220
+ #: includes/classes/class-configurate-notices.php:81
221
+ #, php-format
222
+ msgid "Notifications %s"
223
+ msgstr "Уведомления %s"
224
+
225
+ #: includes/classes/class-configurate-notices.php:92
226
+ msgid "Hidden for you"
227
+ msgstr "Скрытые для Вас"
228
+
229
+ #: includes/classes/class-configurate-notices.php:289
230
+ msgid "Hide <b>for me</b>"
231
+ msgstr "Скрыть для меня"
232
+
233
+ #: includes/classes/class-configurate-notices.php:293
234
+ msgid "Hide <b>for all</b>"
235
+ msgstr "Скрыть для всех"
236
+
237
+ #. Name of the plugin
238
+ msgid "Disable Admin Notices Individually"
239
+ msgstr "Disable Admin Notices Individually"
240
+
241
+ #. Description of the plugin
242
+ msgid ""
243
+ "Disable admin notices plugin gives you the option to hide updates warnings "
244
+ "and inline notices in the admin panel."
245
+ msgstr ""
246
+ "Плагин Disable admin notices дает вам возможность скрыть предупреждения об "
247
+ "обновлениях и встроенные уведомления в панели администратора."
248
+
249
+ #. URI of the plugin
250
+ #. Author URI of the plugin
251
+ msgid "https://webcraftic.com"
252
+ msgstr "https://webcraftic.com"
253
+
254
+ #. Author of the plugin
255
+ msgid "Webcraftic <wordpress.webraftic@gmail.com>"
256
+ msgstr "Webcraftic <wordpress.webraftic@gmail.com>"
languages/disable-admin-notices.pot CHANGED
@@ -1,223 +1,223 @@
1
- #, fuzzy
2
- msgid ""
3
- msgstr ""
4
- "Project-Id-Version: Webcraftic Disable Admin Notices Individually\n"
5
- "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2020-08-27 12:50+0000\n"
7
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
- "Language-Team: \n"
10
- "Language: \n"
11
- "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
12
- "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=UTF-8\n"
14
- "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Loco https://localise.biz/\n"
16
- "X-Loco-Version: 2.4.2; wp-5.5"
17
-
18
- #: disable-admin-notices.php:46
19
- msgid "Webcraftic disable admin notices"
20
- msgstr ""
21
-
22
- #: admin/boot.php:27
23
- msgid "Get ultimate plugin free"
24
- msgstr ""
25
-
26
- #: admin/boot.php:82 admin/options.php:66
27
- #: admin/pages/class-pages-settings.php:72
28
- msgid "Hide admin notices"
29
- msgstr ""
30
-
31
- #: admin/boot.php:88 admin/options.php:148
32
- msgid "Enable hidden notices in adminbar"
33
- msgstr ""
34
-
35
- #: admin/class-page-basic.php:41
36
- msgid "Webcraftic Disable Admin Notices"
37
- msgstr ""
38
-
39
- #: admin/options.php:33
40
- msgid "Admin notifications, Update nags"
41
- msgstr ""
42
-
43
- #: admin/options.php:33
44
- msgid ""
45
- "Do you know the situation, when some plugin offers you to update to premium, "
46
- "to collect technical data and shows many annoying notices? You are close "
47
- "these notices every now and again but they newly appears and interfere your "
48
- "work with WordPress. Even worse, some plugin’s authors delete “close” button "
49
- "from notices and they shows in your admin panel forever."
50
- msgstr ""
51
-
52
- #: admin/options.php:39
53
- msgid "Don't hide"
54
- msgstr ""
55
-
56
- #: admin/options.php:40
57
- msgid ""
58
- "Do not hide notices and do not show “Hide notification forever” link for "
59
- "admin."
60
- msgstr ""
61
-
62
- #: admin/options.php:44
63
- msgid "All notices"
64
- msgstr ""
65
-
66
- #: admin/options.php:45
67
- msgid "Hide all notices globally."
68
- msgstr ""
69
-
70
- #: admin/options.php:45 admin/options.php:50 admin/options.php:58
71
- #, php-format
72
- msgid ""
73
- "Watch the <a href=\"%s\" target=\"_blank\">video</a> to find out how it "
74
- "works ."
75
- msgstr ""
76
-
77
- #: admin/options.php:49
78
- msgid "Only selected"
79
- msgstr ""
80
-
81
- #: admin/options.php:50
82
- msgid ""
83
- "Hide selected notices only. You will see the link \"Hide notification "
84
- "forever\" in each notice. Push it and they will not bother you anymore."
85
- msgstr ""
86
-
87
- #: admin/options.php:57
88
- msgid "Compact panel"
89
- msgstr ""
90
-
91
- #: admin/options.php:58
92
- msgid ""
93
- "Collapse all notifications in one line (panel with notification counters), "
94
- "to see the notifications, you will need to click this panel."
95
- msgstr ""
96
-
97
- #: admin/options.php:69
98
- msgid ""
99
- "Some plugins shows notifications about premium version, data collecting or "
100
- "promote their services. Even if you push close button (that sometimes are "
101
- "impossible), notices are shows again in some time. This option allows you to "
102
- "control notices. Hide them all or each individually. Some plugins shows "
103
- "notifications about premium version, data collecting or promote their "
104
- "services. Even if you push close button (that sometimes are impossible), "
105
- "notices are shows again in some time. This option allows you to control "
106
- "notices. Hide them all or each individually."
107
- msgstr ""
108
-
109
- #: admin/options.php:92 admin/options.php:94
110
- msgid "Disable plugins updates nags"
111
- msgstr ""
112
-
113
- #: admin/options.php:103 admin/options.php:105
114
- msgid "Disable core updates nags"
115
- msgstr ""
116
-
117
- #: admin/options.php:150
118
- msgid ""
119
- "By default, the plugin hides all notices, which you specified. If you enable "
120
- "this option, the plugin will collect all hidden notices and show them into "
121
- "the top admin toolbar. It will not disturb you but will allow to look "
122
- "notices at your convenience."
123
- msgstr ""
124
-
125
- #: admin/options.php:235
126
- msgid "Reset hidden notices for"
127
- msgstr ""
128
-
129
- #: admin/options.php:238
130
- msgid "Push reset hidden notices if you need to show hidden notices again."
131
- msgstr ""
132
-
133
- #: admin/options.php:249
134
- msgid "current user"
135
- msgstr ""
136
-
137
- #: admin/options.php:253
138
- msgid "all users"
139
- msgstr ""
140
-
141
- #: admin/options.php:257
142
- msgid "Reset notices"
143
- msgstr ""
144
-
145
- #: admin/options.php:261 admin/pages/class-pages-settings.php:116
146
- msgid "Hidden notices are successfully reset, now you can see them again!"
147
- msgstr ""
148
-
149
- #: admin/ajax/hide-notice.php:27 admin/ajax/restore-notice.php:24
150
- msgid "Undefinded notice id."
151
- msgstr ""
152
-
153
- #: admin/ajax/hide-notice.php:59 admin/ajax/restore-notice.php:45
154
- msgid "You don't have enough capability to edit this information."
155
- msgstr ""
156
-
157
- #: admin/pages/class-pages-edit-admin-bar.php:53
158
- msgid "Hide adminbar items"
159
- msgstr ""
160
-
161
- #: admin/pages/class-pages-edit-admin-bar.php:54
162
- msgid "You can hide an annoying adminbar menu"
163
- msgstr ""
164
-
165
- #: admin/pages/class-pages-edit-redirects.php:53
166
- msgid "Block ad redirects"
167
- msgstr ""
168
-
169
- #: admin/pages/class-pages-edit-redirects.php:54
170
- msgid "Break advertising redirects"
171
- msgstr ""
172
-
173
- #: admin/pages/class-pages-notices.php:51
174
- msgid "Hidden notices"
175
- msgstr ""
176
-
177
- #: admin/pages/class-pages-notices.php:52
178
- msgid "Manage hidden notices"
179
- msgstr ""
180
-
181
- #: admin/pages/class-pages-settings.php:73
182
- msgid "General settings"
183
- msgstr ""
184
-
185
- #: admin/pages/class-pages-settings.php:85
186
- msgid "Settings"
187
- msgstr ""
188
-
189
- #: includes/classes/class-configurate-notices.php:81
190
- #, php-format
191
- msgid "Notifications %s"
192
- msgstr ""
193
-
194
- #: includes/classes/class-configurate-notices.php:92
195
- msgid "Hidden for you"
196
- msgstr ""
197
-
198
- #: includes/classes/class-configurate-notices.php:289
199
- msgid "Hide <b>for me</b>"
200
- msgstr ""
201
-
202
- #: includes/classes/class-configurate-notices.php:293
203
- msgid "Hide <b>for all</b>"
204
- msgstr ""
205
-
206
- #. Name of the plugin
207
- msgid "Disable Admin Notices Individually"
208
- msgstr ""
209
-
210
- #. Description of the plugin
211
- msgid ""
212
- "Disable admin notices plugin gives you the option to hide updates warnings "
213
- "and inline notices in the admin panel."
214
- msgstr ""
215
-
216
- #. URI of the plugin
217
- #. Author URI of the plugin
218
- msgid "https://webcraftic.com"
219
- msgstr ""
220
-
221
- #. Author of the plugin
222
- msgid "Webcraftic <wordpress.webraftic@gmail.com>"
223
- msgstr ""
1
+ #, fuzzy
2
+ msgid ""
3
+ msgstr ""
4
+ "Project-Id-Version: Webcraftic Disable Admin Notices Individually\n"
5
+ "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2020-08-27 12:50+0000\n"
7
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
+ "Language-Team: \n"
10
+ "Language: \n"
11
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Loco https://localise.biz/\n"
16
+ "X-Loco-Version: 2.4.2; wp-5.5"
17
+
18
+ #: disable-admin-notices.php:46
19
+ msgid "Webcraftic disable admin notices"
20
+ msgstr ""
21
+
22
+ #: admin/boot.php:27
23
+ msgid "Get ultimate plugin free"
24
+ msgstr ""
25
+
26
+ #: admin/boot.php:82 admin/options.php:66
27
+ #: admin/pages/class-pages-settings.php:72
28
+ msgid "Hide admin notices"
29
+ msgstr ""
30
+
31
+ #: admin/boot.php:88 admin/options.php:148
32
+ msgid "Enable hidden notices in adminbar"
33
+ msgstr ""
34
+
35
+ #: admin/class-page-basic.php:41
36
+ msgid "Webcraftic Disable Admin Notices"
37
+ msgstr ""
38
+
39
+ #: admin/options.php:33
40
+ msgid "Admin notifications, Update nags"
41
+ msgstr ""
42
+
43
+ #: admin/options.php:33
44
+ msgid ""
45
+ "Do you know the situation, when some plugin offers you to update to premium, "
46
+ "to collect technical data and shows many annoying notices? You are close "
47
+ "these notices every now and again but they newly appears and interfere your "
48
+ "work with WordPress. Even worse, some plugin’s authors delete “close” button "
49
+ "from notices and they shows in your admin panel forever."
50
+ msgstr ""
51
+
52
+ #: admin/options.php:39
53
+ msgid "Don't hide"
54
+ msgstr ""
55
+
56
+ #: admin/options.php:40
57
+ msgid ""
58
+ "Do not hide notices and do not show “Hide notification forever” link for "
59
+ "admin."
60
+ msgstr ""
61
+
62
+ #: admin/options.php:44
63
+ msgid "All notices"
64
+ msgstr ""
65
+
66
+ #: admin/options.php:45
67
+ msgid "Hide all notices globally."
68
+ msgstr ""
69
+
70
+ #: admin/options.php:45 admin/options.php:50 admin/options.php:58
71
+ #, php-format
72
+ msgid ""
73
+ "Watch the <a href=\"%s\" target=\"_blank\">video</a> to find out how it "
74
+ "works ."
75
+ msgstr ""
76
+
77
+ #: admin/options.php:49
78
+ msgid "Only selected"
79
+ msgstr ""
80
+
81
+ #: admin/options.php:50
82
+ msgid ""
83
+ "Hide selected notices only. You will see the link \"Hide notification "
84
+ "forever\" in each notice. Push it and they will not bother you anymore."
85
+ msgstr ""
86
+
87
+ #: admin/options.php:57
88
+ msgid "Compact panel"
89
+ msgstr ""
90
+
91
+ #: admin/options.php:58
92
+ msgid ""
93
+ "Collapse all notifications in one line (panel with notification counters), "
94
+ "to see the notifications, you will need to click this panel."
95
+ msgstr ""
96
+
97
+ #: admin/options.php:69
98
+ msgid ""
99
+ "Some plugins shows notifications about premium version, data collecting or "
100
+ "promote their services. Even if you push close button (that sometimes are "
101
+ "impossible), notices are shows again in some time. This option allows you to "
102
+ "control notices. Hide them all or each individually. Some plugins shows "
103
+ "notifications about premium version, data collecting or promote their "
104
+ "services. Even if you push close button (that sometimes are impossible), "
105
+ "notices are shows again in some time. This option allows you to control "
106
+ "notices. Hide them all or each individually."
107
+ msgstr ""
108
+
109
+ #: admin/options.php:92 admin/options.php:94
110
+ msgid "Disable plugins updates nags"
111
+ msgstr ""
112
+
113
+ #: admin/options.php:103 admin/options.php:105
114
+ msgid "Disable core updates nags"
115
+ msgstr ""
116
+
117
+ #: admin/options.php:150
118
+ msgid ""
119
+ "By default, the plugin hides all notices, which you specified. If you enable "
120
+ "this option, the plugin will collect all hidden notices and show them into "
121
+ "the top admin toolbar. It will not disturb you but will allow to look "
122
+ "notices at your convenience."
123
+ msgstr ""
124
+
125
+ #: admin/options.php:235
126
+ msgid "Reset hidden notices for"
127
+ msgstr ""
128
+
129
+ #: admin/options.php:238
130
+ msgid "Push reset hidden notices if you need to show hidden notices again."
131
+ msgstr ""
132
+
133
+ #: admin/options.php:249
134
+ msgid "current user"
135
+ msgstr ""
136
+
137
+ #: admin/options.php:253
138
+ msgid "all users"
139
+ msgstr ""
140
+
141
+ #: admin/options.php:257
142
+ msgid "Reset notices"
143
+ msgstr ""
144
+
145
+ #: admin/options.php:261 admin/pages/class-pages-settings.php:116
146
+ msgid "Hidden notices are successfully reset, now you can see them again!"
147
+ msgstr ""
148
+
149
+ #: admin/ajax/hide-notice.php:27 admin/ajax/restore-notice.php:24
150
+ msgid "Undefinded notice id."
151
+ msgstr ""
152
+
153
+ #: admin/ajax/hide-notice.php:59 admin/ajax/restore-notice.php:45
154
+ msgid "You don't have enough capability to edit this information."
155
+ msgstr ""
156
+
157
+ #: admin/pages/class-pages-edit-admin-bar.php:53
158
+ msgid "Hide adminbar items"
159
+ msgstr ""
160
+
161
+ #: admin/pages/class-pages-edit-admin-bar.php:54
162
+ msgid "You can hide an annoying adminbar menu"
163
+ msgstr ""
164
+
165
+ #: admin/pages/class-pages-edit-redirects.php:53
166
+ msgid "Block ad redirects"
167
+ msgstr ""
168
+
169
+ #: admin/pages/class-pages-edit-redirects.php:54
170
+ msgid "Break advertising redirects"
171
+ msgstr ""
172
+
173
+ #: admin/pages/class-pages-notices.php:51
174
+ msgid "Hidden notices"
175
+ msgstr ""
176
+
177
+ #: admin/pages/class-pages-notices.php:52
178
+ msgid "Manage hidden notices"
179
+ msgstr ""
180
+
181
+ #: admin/pages/class-pages-settings.php:73
182
+ msgid "General settings"
183
+ msgstr ""
184
+
185
+ #: admin/pages/class-pages-settings.php:85
186
+ msgid "Settings"
187
+ msgstr ""
188
+
189
+ #: includes/classes/class-configurate-notices.php:81
190
+ #, php-format
191
+ msgid "Notifications %s"
192
+ msgstr ""
193
+
194
+ #: includes/classes/class-configurate-notices.php:92
195
+ msgid "Hidden for you"
196
+ msgstr ""
197
+
198
+ #: includes/classes/class-configurate-notices.php:289
199
+ msgid "Hide <b>for me</b>"
200
+ msgstr ""
201
+
202
+ #: includes/classes/class-configurate-notices.php:293
203
+ msgid "Hide <b>for all</b>"
204
+ msgstr ""
205
+
206
+ #. Name of the plugin
207
+ msgid "Disable Admin Notices Individually"
208
+ msgstr ""
209
+
210
+ #. Description of the plugin
211
+ msgid ""
212
+ "Disable admin notices plugin gives you the option to hide updates warnings "
213
+ "and inline notices in the admin panel."
214
+ msgstr ""
215
+
216
+ #. URI of the plugin
217
+ #. Author URI of the plugin
218
+ msgid "https://webcraftic.com"
219
+ msgstr ""
220
+
221
+ #. Author of the plugin
222
+ msgid "Webcraftic <wordpress.webraftic@gmail.com>"
223
+ msgstr ""
libs/factory/adverts/boot.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- use WBCR\Factory_Adverts_112\Base;
4
 
5
  /**
6
  * Factory Adverts
@@ -20,31 +20,31 @@ if( !defined('ABSPATH') ) {
20
  exit;
21
  }
22
 
23
- if( defined('FACTORY_ADVERTS_112_LOADED') || (defined('FACTORY_ADVERTS_BLOCK') && FACTORY_ADVERTS_BLOCK) ) {
24
  return;
25
  }
26
 
27
  # Устанавливаем константу, что модуль уже загружен
28
- define('FACTORY_ADVERTS_112_LOADED', true);
29
 
30
  # Устанавливаем версию модуля
31
- define('FACTORY_ADVERTS_112_VERSION', '1.1.2');
32
 
33
  # Регистрируем тектовый домен, для интернализации интерфейса модуля
34
- load_plugin_textdomain('wbcr_factory_adverts_112', false, dirname(plugin_basename(__FILE__)) . '/langs');
35
 
36
  # Устанавливаем директорию модуля
37
- define('FACTORY_ADVERTS_112_DIR', dirname(__FILE__));
38
 
39
  # Устанавливаем url модуля
40
- define('FACTORY_ADVERTS_112_URL', plugins_url(null, __FILE__));
41
 
42
- require_once(FACTORY_ADVERTS_112_DIR . '/includes/class-rest-request.php');
43
- require_once(FACTORY_ADVERTS_112_DIR . '/includes/class-base.php');
44
 
45
  /**
46
- * @param Wbcr_Factory432_Plugin $plugin
47
  */
48
- add_action('wbcr_factory_adverts_112_plugin_created', function ($plugin) {
49
- $plugin->set_adverts_manager("WBCR\Factory_Adverts_112\Base");
50
  });
1
  <?php
2
 
3
+ use WBCR\Factory_Adverts_117\Base;
4
 
5
  /**
6
  * Factory Adverts
20
  exit;
21
  }
22
 
23
+ if( defined('FACTORY_ADVERTS_117_LOADED') || (defined('FACTORY_ADVERTS_BLOCK') && FACTORY_ADVERTS_BLOCK) ) {
24
  return;
25
  }
26
 
27
  # Устанавливаем константу, что модуль уже загружен
28
+ define('FACTORY_ADVERTS_117_LOADED', true);
29
 
30
  # Устанавливаем версию модуля
31
+ define('FACTORY_ADVERTS_117_VERSION', '1.1.7');
32
 
33
  # Регистрируем тектовый домен, для интернализации интерфейса модуля
34
+ load_plugin_textdomain('wbcr_factory_adverts_117', false, dirname(plugin_basename(__FILE__)) . '/langs');
35
 
36
  # Устанавливаем директорию модуля
37
+ define('FACTORY_ADVERTS_117_DIR', dirname(__FILE__));
38
 
39
  # Устанавливаем url модуля
40
+ define('FACTORY_ADVERTS_117_URL', plugins_url(null, __FILE__));
41
 
42
+ require_once(FACTORY_ADVERTS_117_DIR . '/includes/class-rest-request.php');
43
+ require_once(FACTORY_ADVERTS_117_DIR . '/includes/class-base.php');
44
 
45
  /**
46
+ * @param Wbcr_Factory439_Plugin $plugin
47
  */
48
+ add_action('wbcr_factory_adverts_117_plugin_created', function ($plugin) {
49
+ $plugin->set_adverts_manager("WBCR\Factory_Adverts_117\Base");
50
  });
libs/factory/adverts/includes/class-base.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Adverts_112;
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_Factory432_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_112\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_Factory432_Plugin $plugin
86
  */
87
- public function __construct( \Wbcr_Factory432_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_112_DIR . '/includes/class-dashboard-widget.php';
261
  new Dashboard_Widget( $this->plugin, $content );
262
  }
263
  }
1
  <?php
2
 
3
+ namespace WBCR\Factory_Adverts_117;
4
 
5
  // Exit if accessed directly
6
  if ( ! defined( 'ABSPATH' ) ) {
28
  *
29
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
30
  * @since 1.0.1
31
+ * @var \Wbcr_Factory439_Plugin
32
  */
33
  private $plugin;
34
 
53
  *
54
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
55
  * @since 1.0.1
56
+ * @var \WBCR\Factory_Adverts_117\Creative_Motion_API
57
  */
58
  private $api;
59
 
82
  *
83
  * @since 1.0.0 Added
84
  *
85
+ * @param \Wbcr_Factory439_Plugin $plugin
86
  */
87
+ public function __construct( \Wbcr_Factory439_Plugin $plugin, $settings ) {
88
  $this->plugin = $plugin;
89
 
90
  $this->settings = wp_parse_args( $settings, [
257
  $content = $this->get_debug_message( 'dashboard_widget' );
258
  }
259
 
260
+ require_once FACTORY_ADVERTS_117_DIR . '/includes/class-dashboard-widget.php';
261
  new Dashboard_Widget( $this->plugin, $content );
262
  }
263
  }
libs/factory/adverts/includes/class-dashboard-widget.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Adverts_112;
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_Factory432_Plugin
39
  */
40
  private $plugin;
41
 
@@ -46,10 +46,10 @@ class Dashboard_Widget {
46
  *
47
  * @since 1.0.0 Added
48
  *
49
- * @param \Wbcr_Factory432_Plugin $plugin
50
  * @param string $content
51
  */
52
- public function __construct( \Wbcr_Factory432_Plugin $plugin, $content ) {
53
 
54
  $this->plugin = $plugin;
55
  $this->content = $content;
1
  <?php
2
 
3
+ namespace WBCR\Factory_Adverts_117;
4
 
5
  // Exit if accessed directly
6
  if ( ! defined( 'ABSPATH' ) ) {
35
  *
36
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
37
  * @since 1.0.1
38
+ * @var \Wbcr_Factory439_Plugin
39
  */
40
  private $plugin;
41
 
46
  *
47
  * @since 1.0.0 Added
48
  *
49
+ * @param \Wbcr_Factory439_Plugin $plugin
50
  * @param string $content
51
  */
52
+ public function __construct( \Wbcr_Factory439_Plugin $plugin, $content ) {
53
 
54
  $this->plugin = $plugin;
55
  $this->content = $content;
libs/factory/adverts/includes/class-rest-request.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Adverts_112;
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_Factory432_Plugin
69
  */
70
  private $plugin;
71
 
@@ -75,11 +75,11 @@ class Creative_Motion_API {
75
  *
76
  * Variable initialization.
77
  *
78
- * @param \Wbcr_Factory432_Plugin $plugin_name
79
  * @since 1.0.0 Added
80
  *
81
  */
82
- public function __construct(\Wbcr_Factory432_Plugin $plugin)
83
  {
84
  $this->plugin = $plugin;
85
  }
1
  <?php
2
 
3
+ namespace WBCR\Factory_Adverts_117;
4
 
5
  // Exit if accessed directly
6
  if( !defined('ABSPATH') ) {
65
  *
66
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
67
  * @since 1.0.1
68
+ * @var \Wbcr_Factory439_Plugin
69
  */
70
  private $plugin;
71
 
75
  *
76
  * Variable initialization.
77
  *
78
+ * @param \Wbcr_Factory439_Plugin $plugin_name
79
  * @since 1.0.0 Added
80
  *
81
  */
82
+ public function __construct(\Wbcr_Factory439_Plugin $plugin)
83
  {
84
  $this->plugin = $plugin;
85
  }
libs/factory/adverts/langs/wbcr_factory_adverts_112-ru_RU.po DELETED
@@ -1,83 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: factory_forms\n"
4
- "POT-Creation-Date: 2018-10-16 22:44+0300\n"
5
- "PO-Revision-Date: 2018-10-16 22:45+0300\n"
6
- "Last-Translator: \n"
7
- "Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\n"
8
- "Language: ru_RU\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.1.1\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
- "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
- "X-Poedit-SearchPath-0: .\n"
19
-
20
- #: includes/check-compatibility.php:80
21
- msgid "warning"
22
- msgstr "предупреждение"
23
-
24
- #: includes/check-compatibility.php:82
25
- #, php-format
26
- msgid "The %s plugin has stopped."
27
- msgstr "Работа плагина %s была остановлена."
28
-
29
- #: includes/check-compatibility.php:83
30
- msgid "Possible reasons:"
31
- msgstr "Возможные причины:"
32
-
33
- #: includes/check-compatibility.php:89
34
- #, php-format
35
- msgid "You need to update the PHP version to %s or higher!"
36
- msgstr "Вам нужно обновить версию PHP до %s или выше!"
37
-
38
- #: includes/check-compatibility.php:94
39
- #, php-format
40
- msgid "You need to update WordPress to %s or higher!"
41
- msgstr "Вам нужно обновить WordPress до %s или выше!"
42
-
43
- #: includes/functions.php:132
44
- #, php-format
45
- msgid ""
46
- "%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead."
47
- msgstr ""
48
- "%1$s является <strong>устаревшим,</strong> начиная с версии %2$s в "
49
- "Wordpress! Используйте %3$s."
50
-
51
- #: includes/functions.php:134
52
- #, php-format
53
- msgid ""
54
- "%1$s is <strong>deprecated</strong> since version %2$s with no alternative "
55
- "available."
56
- msgstr ""
57
- "%1$s был вызван с параметром, который является <strong>устаревшими</strong> "
58
- "начиная с версии %2$s , в настоящее время доступных альтернатив нет."
59
-
60
- #: includes/plugin.class.php:202 includes/plugin.class.php:237
61
- msgid ""
62
- "You are trying to call this earlier than the plugin menu will be registered."
63
- msgstr ""
64
- "Вы пытаетесь вызвать это раньше, чем будет зарегистрировано меню плагина."
65
-
66
- #: includes/plugin.class.php:220
67
- msgid ""
68
- "You are trying to get a link to a page that does not have multisite mode. "
69
- "Clicking this link will lead the user to a non-existent page."
70
- msgstr ""
71
- "Вы пытаетесь получить ссылку на страницу, которая не имеет "
72
- "многопользовательского режима. Щелчок по этой ссылке приведет пользователя "
73
- "к несуществующей странице."
74
-
75
- #: includes/plugin.class.php:222
76
- msgid ""
77
- "Trying to get a link to an unregistered page. You are trying to call this "
78
- "earlier than the plugin menu will be registered."
79
- msgstr ""
80
- "Попытка получить ссылку на незарегистрированную страницу. Вы пытаетесь "
81
- "вызвать это раньше, чем будет зарегистрировано меню плагина."
82
-
83
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/adverts/langs/{wbcr_factory_adverts_111-ru_RU.mo → wbcr_factory_adverts_117-ru_RU.mo} RENAMED
File without changes
libs/factory/adverts/langs/{wbcr_factory_adverts_111-ru_RU.po → wbcr_factory_adverts_117-ru_RU.po} RENAMED
File without changes
libs/factory/bootstrap/assets/css-min/bootstrap.accordion.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .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-433 .factory-accordion>h3{border-bottom:1px solid #DDD;cursor:pointer;padding:8px 15px;margin:0}.factory-bootstrap-433 .factory-accordion>div{display:none;margin:0;border-bottom:1px solid #DDD}.factory-bootstrap-433 .factory-accordion-item{display:none}.factory-bootstrap-433 .inner-factory-accordion-item{padding:10px 0}.factory-bootstrap-433 .factory-accordion>h3.active:hover{cursor:default}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-accordion{margin:0 0 30px;border-top:1px solid #DDD;border-right:1px solid #DDD;border-left:1px solid #DDD;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.factory-bootstrap-439 .factory-accordion>h3{border-bottom:1px solid #DDD;cursor:pointer;padding:8px 15px;margin:0}.factory-bootstrap-439 .factory-accordion>div{display:none;margin:0;border-bottom:1px solid #DDD}.factory-bootstrap-439 .factory-accordion-item{display:none}.factory-bootstrap-439 .inner-factory-accordion-item{padding:10px 0}.factory-bootstrap-439 .factory-accordion>h3.active:hover{cursor:default}
libs/factory/bootstrap/assets/css-min/bootstrap.blue.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .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-433 .btn-primary:focus,.factory-bootstrap-433 .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-433 .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-433 .btn-primary:disabled,.factory-bootstrap-433 .btn-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.factory-bootstrap-433 .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-433 .pagination>.active>a,.factory-bootstrap-433 .pagination>.active>a:focus,.factory-bootstrap-433 .pagination>.active>a:hover,.factory-bootstrap-433 .pagination>.active>span,.factory-bootstrap-433 .pagination>.active>span:focus,.factory-bootstrap-433 .pagination>.active>span:hover{background-color:#e1a948;border-color:#d39323}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .btn-primary{background:#e1a948;border-color:#d39323;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ecc88a,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover{background:#db9825;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8be74,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8be74,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:active{background:#db9825;border-color:#bd831f;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#d1cdc7!important;background:#db9825!important;border-color:#bd831f!important;text-shadow:none!important}.factory-bootstrap-439 .btn-group .btn.active.value{background-color:#e1a948;-webkit-box-shadow:inset 0 1px 2px #d39323;box-shadow:inset 0 1px 2px #d39323;border-top:1px solid #d39323;border-bottom:1px solid #d39323;border-left:1px solid #d39323}.factory-bootstrap-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#e1a948;border-color:#d39323}
libs/factory/bootstrap/assets/css-min/bootstrap.coffee.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .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-433 .btn-primary:focus,.factory-bootstrap-433 .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-433 .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-433 .btn-primary:disabled,.factory-bootstrap-433 .btn-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.factory-bootstrap-433 .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-433 .pagination>.active>a,.factory-bootstrap-433 .pagination>.active>a:focus,.factory-bootstrap-433 .pagination>.active>a:hover,.factory-bootstrap-433 .pagination>.active>span,.factory-bootstrap-433 .pagination>.active>span:focus,.factory-bootstrap-433 .pagination>.active>span:hover{background-color:#c7a589;border-color:#b78a66}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .btn-primary{background:#c7a589;border-color:#b78a66;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e0cdbd,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover{background:#ba906d;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 1px 0 #d7bfac,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #d7bfac,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:active{background:#ba906d;border-color:#ae7d55;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#d1cbc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.factory-bootstrap-439 .btn-group .btn.active.value{background-color:#c7a589;-webkit-box-shadow:inset 0 1px 2px #b78a66;box-shadow:inset 0 1px 2px #b78a66;border-top:1px solid #b78a66;border-bottom:1px solid #b78a66;border-left:1px solid #b78a66}.factory-bootstrap-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#c7a589;border-color:#b78a66}
libs/factory/bootstrap/assets/css-min/bootstrap.core.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,7 +8,7 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 article,.factory-bootstrap-433 aside,.factory-bootstrap-433 details,.factory-bootstrap-433 figcaption,.factory-bootstrap-433 figure,.factory-bootstrap-433 footer,.factory-bootstrap-433 header,.factory-bootstrap-433 hgroup,.factory-bootstrap-433 main,.factory-bootstrap-433 nav,.factory-bootstrap-433 section,.factory-bootstrap-433 summary{display:block}.factory-bootstrap-433 audio,.factory-bootstrap-433 canvas,.factory-bootstrap-433 video{display:inline-block}.factory-bootstrap-433 audio:not([controls]){display:none;height:0}.factory-bootstrap-433 [hidden],.factory-bootstrap-433 template{display:none}.factory-bootstrap-433 body{margin:0}.factory-bootstrap-433 a{background:0 0}.factory-bootstrap-433 a:focus{outline:thin dotted}.factory-bootstrap-433 a:active,.factory-bootstrap-433 a:hover{outline:0}.factory-bootstrap-433 h1{margin:.67em 0}.factory-bootstrap-433 b,.factory-bootstrap-433 strong{font-weight:700}.factory-bootstrap-433 dfn{font-style:italic}.factory-bootstrap-433 hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-433 mark{color:#000;background:#ff0}.factory-bootstrap-433 code,.factory-bootstrap-433 kbd,.factory-bootstrap-433 pre,.factory-bootstrap-433 samp{font-size:1em}.factory-bootstrap-433 pre{white-space:pre-wrap}.factory-bootstrap-433 q{quotes:"\201C" "\201D" "\2018" "\2019"}.factory-bootstrap-433 sub,.factory-bootstrap-433 sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.factory-bootstrap-433 sup{top:-.5em}.factory-bootstrap-433 sub{bottom:-.25em}.factory-bootstrap-433 img{border:0}.factory-bootstrap-433 svg:not(:root){overflow:hidden}.factory-bootstrap-433 figure{margin:0}.factory-bootstrap-433 button,.factory-bootstrap-433 input,.factory-bootstrap-433 select,.factory-bootstrap-433 textarea{margin:0}.factory-bootstrap-433 button,.factory-bootstrap-433 select{text-transform:none}.factory-bootstrap-433 select{padding-right:4px!important}.factory-bootstrap-433 button,.factory-bootstrap-433 input[type=reset],.factory-bootstrap-433 input[type=submit],html .factory-bootstrap-433 input[type=button]{cursor:pointer;-webkit-appearance:button}.factory-bootstrap-433 button[disabled],html .factory-bootstrap-433 input[disabled]{cursor:default}.factory-bootstrap-433 input[type=checkbox],.factory-bootstrap-433 input[type=radio]{padding:0;box-sizing:border-box}.factory-bootstrap-433 input[type=search]{-webkit-appearance:textfield}.factory-bootstrap-433 input[type=search]::-webkit-search-cancel-button,.factory-bootstrap-433 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.factory-bootstrap-433 button::-moz-focus-inner,.factory-bootstrap-433 input::-moz-focus-inner{padding:0;border:0}.factory-bootstrap-433 textarea{overflow:auto;vertical-align:top}.factory-bootstrap-433 table{border-collapse:collapse;border-spacing:0}@media print{.factory-bootstrap-433 *{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}.factory-bootstrap-433 a,.factory-bootstrap-433 a:visited{text-decoration:underline}.factory-bootstrap-433 a[href]:after{content:" (" attr(href) ")"}.factory-bootstrap-433 abbr[title]:after{content:" (" attr(title) ")"}.factory-bootstrap-433 a[href^="javascript:"]:after,.factory-bootstrap-433 a[href^="#"]:after{content:""}.factory-bootstrap-433 blockquote,.factory-bootstrap-433 pre{border:1px solid #999;page-break-inside:avoid}.factory-bootstrap-433 thead{display:table-header-group}.factory-bootstrap-433 img,.factory-bootstrap-433 tr{page-break-inside:avoid}.factory-bootstrap-433 img{max-width:100%!important}@page{margin:2cm .5cm}.factory-bootstrap-433 h2,.factory-bootstrap-433 h3,.factory-bootstrap-433 p{orphans:3;widows:3}.factory-bootstrap-433 h2,.factory-bootstrap-433 h3{page-break-after:avoid}.factory-bootstrap-433 select{background:#fff!important}.factory-bootstrap-433 .navbar{display:none}.factory-bootstrap-433 .table td,.factory-bootstrap-433 .table th{background-color:#fff!important}.factory-bootstrap-433 .btn>.caret,.factory-bootstrap-433 .dropup>.btn>.caret{border-top-color:#000!important}.factory-bootstrap-433 .label{border:1px solid #000}.factory-bootstrap-433 .table{border-collapse:collapse!important}.factory-bootstrap-433 .table-bordered td,.factory-bootstrap-433 .table-bordered th{border:1px solid #ddd!important}}.factory-bootstrap-433 *,.factory-bootstrap-433 :after,.factory-bootstrap-433 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html .factory-bootstrap-433{-webkit-tap-highlight-color:rgba(0,0,0,0)}.factory-bootstrap-433 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.factory-bootstrap-433 button,.factory-bootstrap-433 input,.factory-bootstrap-433 select,.factory-bootstrap-433 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.factory-bootstrap-433 img{vertical-align:middle}.factory-bootstrap-433 .img-responsive{display:block;height:auto;max-width:100%}.factory-bootstrap-433 .img-rounded{border-radius:6px}.factory-bootstrap-433 .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-433 .img-circle{border-radius:50%}.factory-bootstrap-433 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.factory-bootstrap-433 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.factory-bootstrap-433 .h1,.factory-bootstrap-433 .h2,.factory-bootstrap-433 .h3,.factory-bootstrap-433 .h4,.factory-bootstrap-433 .h5,.factory-bootstrap-433 .h6,.factory-bootstrap-433 h1,.factory-bootstrap-433 h2,.factory-bootstrap-433 h3,.factory-bootstrap-433 h4,.factory-bootstrap-433 h5,.factory-bootstrap-433 h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.factory-bootstrap-433 .h1 .small,.factory-bootstrap-433 .h1 small,.factory-bootstrap-433 .h2 .small,.factory-bootstrap-433 .h2 small,.factory-bootstrap-433 .h3 .small,.factory-bootstrap-433 .h3 small,.factory-bootstrap-433 .h4 .small,.factory-bootstrap-433 .h4 small,.factory-bootstrap-433 .h5 .small,.factory-bootstrap-433 .h5 small,.factory-bootstrap-433 .h6 .small,.factory-bootstrap-433 .h6 small,.factory-bootstrap-433 h1 .small,.factory-bootstrap-433 h1 small,.factory-bootstrap-433 h2 .small,.factory-bootstrap-433 h2 small,.factory-bootstrap-433 h3 .small,.factory-bootstrap-433 h3 small,.factory-bootstrap-433 h4 .small,.factory-bootstrap-433 h4 small,.factory-bootstrap-433 h5 .small,.factory-bootstrap-433 h5 small,.factory-bootstrap-433 h6 .small,.factory-bootstrap-433 h6 small{font-weight:400;line-height:1;color:#999}.factory-bootstrap-433 h1,.factory-bootstrap-433 h2,.factory-bootstrap-433 h3{margin-top:20px;margin-bottom:10px}.factory-bootstrap-433 h1 .small,.factory-bootstrap-433 h1 small,.factory-bootstrap-433 h2 .small,.factory-bootstrap-433 h2 small,.factory-bootstrap-433 h3 .small,.factory-bootstrap-433 h3 small{font-size:65%}.factory-bootstrap-433 h4,.factory-bootstrap-433 h5,.factory-bootstrap-433 h6{margin-top:10px;margin-bottom:10px}.factory-bootstrap-433 h4 .small,.factory-bootstrap-433 h4 small,.factory-bootstrap-433 h5 .small,.factory-bootstrap-433 h5 small,.factory-bootstrap-433 h6 .small,.factory-bootstrap-433 h6 small{font-size:75%}.factory-bootstrap-433 .h1,.factory-bootstrap-433 h1{font-size:36px}.factory-bootstrap-433 .h2,.factory-bootstrap-433 h2{font-size:30px}.factory-bootstrap-433 .h3,.factory-bootstrap-433 h3{font-size:24px}.factory-bootstrap-433 .h4,.factory-bootstrap-433 h4{font-size:18px}.factory-bootstrap-433 .h5,.factory-bootstrap-433 h5{font-size:14px}.factory-bootstrap-433 .h6,.factory-bootstrap-433 h6{font-size:12px}.factory-bootstrap-433 p{margin:0 0 10px}.factory-bootstrap-433 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.factory-bootstrap-433 .small,.factory-bootstrap-433 small{font-size:85%}.factory-bootstrap-433 cite{font-style:normal}.factory-bootstrap-433 .text-muted{color:#999}.factory-bootstrap-433 .text-primary{color:#428bca}.factory-bootstrap-433 .text-primary:hover{color:#3071a9}.factory-bootstrap-433 .text-warning{color:#8a6d3b}.factory-bootstrap-433 .text-warning:hover{color:#66512c}.factory-bootstrap-433 .text-danger{color:#a94442}.factory-bootstrap-433 .text-danger:hover{color:#843534}.factory-bootstrap-433 .text-success{color:#3c763d}.factory-bootstrap-433 .text-success:hover{color:#2b542c}.factory-bootstrap-433 .text-info{color:#31708f}.factory-bootstrap-433 .text-info:hover{color:#245269}.factory-bootstrap-433 .text-left{text-align:left}.factory-bootstrap-433 .text-right{text-align:right}.factory-bootstrap-433 .text-center{text-align:center}.factory-bootstrap-433 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.factory-bootstrap-433 ol,.factory-bootstrap-433 ul{margin-top:0;margin-bottom:10px}.factory-bootstrap-433 ol ol,.factory-bootstrap-433 ol ul,.factory-bootstrap-433 ul ol,.factory-bootstrap-433 ul ul{margin-bottom:0}.factory-bootstrap-433 .list-inline,.factory-bootstrap-433 .list-unstyled{padding-left:0;list-style:none}.factory-bootstrap-433 .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.factory-bootstrap-433 .list-inline>li:first-child{padding-left:0}.factory-bootstrap-433 dl{margin-top:0;margin-bottom:20px}.factory-bootstrap-433 dd,.factory-bootstrap-433 dt{line-height:1.428571429}.factory-bootstrap-433 dt{font-weight:700}.factory-bootstrap-433 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-433 abbr[data-original-title],.factory-bootstrap-433 abbr[title]{cursor:help;border-bottom:1px dotted #999}.factory-bootstrap-433 .initialism{font-size:90%;text-transform:uppercase}.factory-bootstrap-433 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.factory-bootstrap-433 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.factory-bootstrap-433 blockquote p:last-child{margin-bottom:0}.factory-bootstrap-433 blockquote .small,.factory-bootstrap-433 blockquote small{display:block;line-height:1.428571429;color:#999}.factory-bootstrap-433 blockquote .small:before,.factory-bootstrap-433 blockquote small:before{content:'\2014 \00A0'}.factory-bootstrap-433 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.factory-bootstrap-433 blockquote.pull-right .small,.factory-bootstrap-433 blockquote.pull-right p,.factory-bootstrap-433 blockquote.pull-right small{text-align:right}.factory-bootstrap-433 blockquote.pull-right .small:before,.factory-bootstrap-433 blockquote.pull-right small:before{content:''}.factory-bootstrap-433 blockquote.pull-right .small:after,.factory-bootstrap-433 blockquote.pull-right small:after{content:'\00A0 \2014'}.factory-bootstrap-433 blockquote:after,.factory-bootstrap-433 blockquote:before{content:""}.factory-bootstrap-433 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.factory-bootstrap-433 code,.factory-bootstrap-433 kbd,.factory-bootstrap-433 pre,.factory-bootstrap-433 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.factory-bootstrap-433 code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}.factory-bootstrap-433 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-433 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.factory-bootstrap-433 .pre-scrollable{max-height:340px;overflow-y:scroll}.factory-bootstrap-433 .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.factory-bootstrap-433 .container:after,.factory-bootstrap-433 .container:before{display:table;content:" "}.factory-bootstrap-433 .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-433 .row{margin-right:-15px;margin-left:-15px}.factory-bootstrap-433 .row:after,.factory-bootstrap-433 .row:before{display:table;content:" "}.factory-bootstrap-433 .row:after{clear:both}.factory-bootstrap-433 .col-lg-1,.factory-bootstrap-433 .col-lg-10,.factory-bootstrap-433 .col-lg-11,.factory-bootstrap-433 .col-lg-12,.factory-bootstrap-433 .col-lg-2,.factory-bootstrap-433 .col-lg-3,.factory-bootstrap-433 .col-lg-4,.factory-bootstrap-433 .col-lg-5,.factory-bootstrap-433 .col-lg-6,.factory-bootstrap-433 .col-lg-7,.factory-bootstrap-433 .col-lg-8,.factory-bootstrap-433 .col-lg-9,.factory-bootstrap-433 .col-md-1,.factory-bootstrap-433 .col-md-10,.factory-bootstrap-433 .col-md-11,.factory-bootstrap-433 .col-md-12,.factory-bootstrap-433 .col-md-2,.factory-bootstrap-433 .col-md-3,.factory-bootstrap-433 .col-md-4,.factory-bootstrap-433 .col-md-5,.factory-bootstrap-433 .col-md-6,.factory-bootstrap-433 .col-md-7,.factory-bootstrap-433 .col-md-8,.factory-bootstrap-433 .col-md-9,.factory-bootstrap-433 .col-sm-1,.factory-bootstrap-433 .col-sm-10,.factory-bootstrap-433 .col-sm-11,.factory-bootstrap-433 .col-sm-12,.factory-bootstrap-433 .col-sm-2,.factory-bootstrap-433 .col-sm-3,.factory-bootstrap-433 .col-sm-4,.factory-bootstrap-433 .col-sm-5,.factory-bootstrap-433 .col-sm-6,.factory-bootstrap-433 .col-sm-7,.factory-bootstrap-433 .col-sm-8,.factory-bootstrap-433 .col-sm-9,.factory-bootstrap-433 .col-xs-1,.factory-bootstrap-433 .col-xs-10,.factory-bootstrap-433 .col-xs-11,.factory-bootstrap-433 .col-xs-12,.factory-bootstrap-433 .col-xs-2,.factory-bootstrap-433 .col-xs-3,.factory-bootstrap-433 .col-xs-4,.factory-bootstrap-433 .col-xs-5,.factory-bootstrap-433 .col-xs-6,.factory-bootstrap-433 .col-xs-7,.factory-bootstrap-433 .col-xs-8,.factory-bootstrap-433 .col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.factory-bootstrap-433 .col-xs-1,.factory-bootstrap-433 .col-xs-10,.factory-bootstrap-433 .col-xs-11,.factory-bootstrap-433 .col-xs-12,.factory-bootstrap-433 .col-xs-2,.factory-bootstrap-433 .col-xs-3,.factory-bootstrap-433 .col-xs-4,.factory-bootstrap-433 .col-xs-5,.factory-bootstrap-433 .col-xs-6,.factory-bootstrap-433 .col-xs-7,.factory-bootstrap-433 .col-xs-8,.factory-bootstrap-433 .col-xs-9{float:left}.factory-bootstrap-433 .col-xs-12{width:100%}.factory-bootstrap-433 .col-xs-11{width:91.66666666666666%}.factory-bootstrap-433 .col-xs-10{width:83.33333333333334%}.factory-bootstrap-433 .col-xs-9{width:75%}.factory-bootstrap-433 .col-xs-8{width:66.66666666666666%}.factory-bootstrap-433 .col-xs-7{width:58.333333333333336%}.factory-bootstrap-433 .col-xs-6{width:50%}.factory-bootstrap-433 .col-xs-5{width:41.66666666666667%}.factory-bootstrap-433 .col-xs-4{width:33.33333333333333%}.factory-bootstrap-433 .col-xs-3{width:25%}.factory-bootstrap-433 .col-xs-2{width:16.666666666666664%}.factory-bootstrap-433 .col-xs-1{width:8.333333333333332%}.factory-bootstrap-433 .col-xs-pull-12{right:100%}.factory-bootstrap-433 .col-xs-pull-11{right:91.66666666666666%}.factory-bootstrap-433 .col-xs-pull-10{right:83.33333333333334%}.factory-bootstrap-433 .col-xs-pull-9{right:75%}.factory-bootstrap-433 .col-xs-pull-8{right:66.66666666666666%}.factory-bootstrap-433 .col-xs-pull-7{right:58.333333333333336%}.factory-bootstrap-433 .col-xs-pull-6{right:50%}.factory-bootstrap-433 .col-xs-pull-5{right:41.66666666666667%}.factory-bootstrap-433 .col-xs-pull-4{right:33.33333333333333%}.factory-bootstrap-433 .col-xs-pull-3{right:25%}.factory-bootstrap-433 .col-xs-pull-2{right:16.666666666666664%}.factory-bootstrap-433 .col-xs-pull-1{right:8.333333333333332%}.factory-bootstrap-433 .col-xs-pull-0{right:0}.factory-bootstrap-433 .col-xs-push-12{left:100%}.factory-bootstrap-433 .col-xs-push-11{left:91.66666666666666%}.factory-bootstrap-433 .col-xs-push-10{left:83.33333333333334%}.factory-bootstrap-433 .col-xs-push-9{left:75%}.factory-bootstrap-433 .col-xs-push-8{left:66.66666666666666%}.factory-bootstrap-433 .col-xs-push-7{left:58.333333333333336%}.factory-bootstrap-433 .col-xs-push-6{left:50%}.factory-bootstrap-433 .col-xs-push-5{left:41.66666666666667%}.factory-bootstrap-433 .col-xs-push-4{left:33.33333333333333%}.factory-bootstrap-433 .col-xs-push-3{left:25%}.factory-bootstrap-433 .col-xs-push-2{left:16.666666666666664%}.factory-bootstrap-433 .col-xs-push-1{left:8.333333333333332%}.factory-bootstrap-433 .col-xs-push-0{left:0}.factory-bootstrap-433 .col-xs-offset-12{margin-left:100%}.factory-bootstrap-433 .col-xs-offset-11{margin-left:91.66666666666666%}.factory-bootstrap-433 .col-xs-offset-10{margin-left:83.33333333333334%}.factory-bootstrap-433 .col-xs-offset-9{margin-left:75%}.factory-bootstrap-433 .col-xs-offset-8{margin-left:66.66666666666666%}.factory-bootstrap-433 .col-xs-offset-7{margin-left:58.333333333333336%}.factory-bootstrap-433 .col-xs-offset-6{margin-left:50%}.factory-bootstrap-433 .col-xs-offset-5{margin-left:41.66666666666667%}.factory-bootstrap-433 .col-xs-offset-4{margin-left:33.33333333333333%}.factory-bootstrap-433 .col-xs-offset-3{margin-left:25%}.factory-bootstrap-433 .col-xs-offset-2{margin-left:16.666666666666664%}.factory-bootstrap-433 .col-xs-offset-1{margin-left:8.333333333333332%}.factory-bootstrap-433 .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-433 table{max-width:100%;background-color:transparent}.factory-bootstrap-433 th{text-align:left}.factory-bootstrap-433 .table{width:100%;margin-bottom:20px}.factory-bootstrap-433 .table>tbody>tr>td,.factory-bootstrap-433 .table>tbody>tr>th,.factory-bootstrap-433 .table>tfoot>tr>td,.factory-bootstrap-433 .table>tfoot>tr>th,.factory-bootstrap-433 .table>thead>tr>td,.factory-bootstrap-433 .table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.factory-bootstrap-433 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.factory-bootstrap-433 .table>caption+thead>tr:first-child>td,.factory-bootstrap-433 .table>caption+thead>tr:first-child>th,.factory-bootstrap-433 .table>colgroup+thead>tr:first-child>td,.factory-bootstrap-433 .table>colgroup+thead>tr:first-child>th,.factory-bootstrap-433 .table>thead:first-child>tr:first-child>td,.factory-bootstrap-433 .table>thead:first-child>tr:first-child>th{border-top:0}.factory-bootstrap-433 .table>tbody+tbody{border-top:2px solid #ddd}.factory-bootstrap-433 .table .table{background-color:#fff}.factory-bootstrap-433 .table-condensed>tbody>tr>td,.factory-bootstrap-433 .table-condensed>tbody>tr>th,.factory-bootstrap-433 .table-condensed>tfoot>tr>td,.factory-bootstrap-433 .table-condensed>tfoot>tr>th,.factory-bootstrap-433 .table-condensed>thead>tr>td,.factory-bootstrap-433 .table-condensed>thead>tr>th{padding:5px}.factory-bootstrap-433 .table-bordered,.factory-bootstrap-433 .table-bordered>tbody>tr>td,.factory-bootstrap-433 .table-bordered>tbody>tr>th,.factory-bootstrap-433 .table-bordered>tfoot>tr>td,.factory-bootstrap-433 .table-bordered>tfoot>tr>th,.factory-bootstrap-433 .table-bordered>thead>tr>td,.factory-bootstrap-433 .table-bordered>thead>tr>th{border:1px solid #ddd}.factory-bootstrap-433 .table-bordered>thead>tr>td,.factory-bootstrap-433 .table-bordered>thead>tr>th{border-bottom-width:2px}.factory-bootstrap-433 .table-striped>tbody>tr:nth-child(odd)>td,.factory-bootstrap-433 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.factory-bootstrap-433 .table-hover>tbody>tr:hover>td,.factory-bootstrap-433 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.factory-bootstrap-433 table col[class*=col-]{position:static;display:table-column;float:none}.factory-bootstrap-433 table td[class*=col-],.factory-bootstrap-433 table th[class*=col-]{display:table-cell;float:none}.factory-bootstrap-433 .table>tbody>.active>td,.factory-bootstrap-433 .table>tbody>.active>th,.factory-bootstrap-433 .table>tbody>tr>.active,.factory-bootstrap-433 .table>tfoot>.active>td,.factory-bootstrap-433 .table>tfoot>.active>th,.factory-bootstrap-433 .table>tfoot>tr>.active,.factory-bootstrap-433 .table>thead>.active>td,.factory-bootstrap-433 .table>thead>.active>th,.factory-bootstrap-433 .table>thead>tr>.active{background-color:#f5f5f5}.factory-bootstrap-433 .table-hover>tbody>.active:hover>td,.factory-bootstrap-433 .table-hover>tbody>.active:hover>th,.factory-bootstrap-433 .table-hover>tbody>tr>.active:hover{background-color:#e8e8e8}.factory-bootstrap-433 .table>tbody>.success>td,.factory-bootstrap-433 .table>tbody>.success>th,.factory-bootstrap-433 .table>tbody>tr>.success,.factory-bootstrap-433 .table>tfoot>.success>td,.factory-bootstrap-433 .table>tfoot>.success>th,.factory-bootstrap-433 .table>tfoot>tr>.success,.factory-bootstrap-433 .table>thead>.success>td,.factory-bootstrap-433 .table>thead>.success>th,.factory-bootstrap-433 .table>thead>tr>.success{background-color:#dff0d8}.factory-bootstrap-433 .table-hover>tbody>.success:hover>td,.factory-bootstrap-433 .table-hover>tbody>.success:hover>th,.factory-bootstrap-433 .table-hover>tbody>tr>.success:hover{background-color:#d0e9c6}.factory-bootstrap-433 .table>tbody>.danger>td,.factory-bootstrap-433 .table>tbody>.danger>th,.factory-bootstrap-433 .table>tbody>tr>.danger,.factory-bootstrap-433 .table>tfoot>.danger>td,.factory-bootstrap-433 .table>tfoot>.danger>th,.factory-bootstrap-433 .table>tfoot>tr>.danger,.factory-bootstrap-433 .table>thead>.danger>td,.factory-bootstrap-433 .table>thead>.danger>th,.factory-bootstrap-433 .table>thead>tr>.danger{background-color:#f2dede}.factory-bootstrap-433 .table-hover>tbody>.danger:hover>td,.factory-bootstrap-433 .table-hover>tbody>.danger:hover>th,.factory-bootstrap-433 .table-hover>tbody>tr>.danger:hover{background-color:#ebcccc}.factory-bootstrap-433 .table>tbody>.warning>td,.factory-bootstrap-433 .table>tbody>.warning>th,.factory-bootstrap-433 .table>tbody>tr>.warning,.factory-bootstrap-433 .table>tfoot>.warning>td,.factory-bootstrap-433 .table>tfoot>.warning>th,.factory-bootstrap-433 .table>tfoot>tr>.warning,.factory-bootstrap-433 .table>thead>.warning>td,.factory-bootstrap-433 .table>thead>.warning>th,.factory-bootstrap-433 .table>thead>tr>.warning{background-color:#fcf8e3}.factory-bootstrap-433 .table-hover>tbody>.warning:hover>td,.factory-bootstrap-433 .table-hover>tbody>.warning:hover>th,.factory-bootstrap-433 .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-433 fieldset{padding:0;margin:0;border:0}.factory-bootstrap-433 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-433 label{display:inline-block;margin-bottom:5px;font-weight:700}.factory-bootstrap-433 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-433 input[type=checkbox],.factory-bootstrap-433 input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.factory-bootstrap-433 input[type=file]{display:block}.factory-bootstrap-433 select[multiple],.factory-bootstrap-433 select[size]{height:auto}.factory-bootstrap-433 select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}.factory-bootstrap-433 input[type=checkbox]:focus,.factory-bootstrap-433 input[type=file]:focus,.factory-bootstrap-433 input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-433 input[type=number]::-webkit-inner-spin-button,.factory-bootstrap-433 input[type=number]::-webkit-outer-spin-button{height:auto}.factory-bootstrap-433 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.factory-bootstrap-433 .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-433 .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-433 .form-control:-moz-placeholder{color:#999}.factory-bootstrap-433 .form-control::-moz-placeholder{color:#999;opacity:1}.factory-bootstrap-433 .form-control:-ms-input-placeholder{color:#999}.factory-bootstrap-433 .form-control::-webkit-input-placeholder{color:#999}.factory-bootstrap-433 .form-control[disabled],.factory-bootstrap-433 .form-control[readonly],.factory-bootstrap-433 fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.factory-bootstrap-433 textarea.form-control{height:auto}.factory-bootstrap-433 .form-group{margin-bottom:15px}.factory-bootstrap-433 .checkbox,.factory-bootstrap-433 .radio{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.factory-bootstrap-433 .checkbox label,.factory-bootstrap-433 .radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.factory-bootstrap-433 .checkbox input[type=checkbox],.factory-bootstrap-433 .checkbox-inline input[type=checkbox],.factory-bootstrap-433 .radio input[type=radio],.factory-bootstrap-433 .radio-inline input[type=radio]{float:left;margin-left:-20px}.factory-bootstrap-433 .checkbox+.checkbox,.factory-bootstrap-433 .radio+.radio{margin-top:-5px}.factory-bootstrap-433 .checkbox-inline,.factory-bootstrap-433 .radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.factory-bootstrap-433 .checkbox-inline+.checkbox-inline,.factory-bootstrap-433 .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.factory-bootstrap-433 .checkbox-inline[disabled],.factory-bootstrap-433 .checkbox[disabled],.factory-bootstrap-433 .radio-inline[disabled],.factory-bootstrap-433 .radio[disabled],.factory-bootstrap-433 fieldset[disabled] .checkbox,.factory-bootstrap-433 fieldset[disabled] .checkbox-inline,.factory-bootstrap-433 fieldset[disabled] .radio,.factory-bootstrap-433 fieldset[disabled] .radio-inline,.factory-bootstrap-433 fieldset[disabled] input[type=checkbox],.factory-bootstrap-433 fieldset[disabled] input[type=radio],.factory-bootstrap-433 input[type=checkbox][disabled],.factory-bootstrap-433 input[type=radio][disabled]{cursor:not-allowed}.factory-bootstrap-433 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-433 select.input-sm{height:30px;line-height:30px}.factory-bootstrap-433 textarea.input-sm{height:auto}.factory-bootstrap-433 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-433 select.input-lg{height:46px;line-height:46px}.factory-bootstrap-433 textarea.input-lg{height:auto}.factory-bootstrap-433 .has-warning .checkbox,.factory-bootstrap-433 .has-warning .checkbox-inline,.factory-bootstrap-433 .has-warning .control-label,.factory-bootstrap-433 .has-warning .help-block,.factory-bootstrap-433 .has-warning .radio,.factory-bootstrap-433 .has-warning .radio-inline{color:#8a6d3b}.factory-bootstrap-433 .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-433 .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-433 .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.factory-bootstrap-433 .has-error .checkbox,.factory-bootstrap-433 .has-error .checkbox-inline,.factory-bootstrap-433 .has-error .control-label,.factory-bootstrap-433 .has-error .help-block,.factory-bootstrap-433 .has-error .radio,.factory-bootstrap-433 .has-error .radio-inline{color:#a94442}.factory-bootstrap-433 .controls{display:block}.factory-bootstrap-433 .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-433 .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-433 .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.factory-bootstrap-433 .has-success .checkbox,.factory-bootstrap-433 .has-success .checkbox-inline,.factory-bootstrap-433 .has-success .control-label,.factory-bootstrap-433 .has-success .help-block,.factory-bootstrap-433 .has-success .radio,.factory-bootstrap-433 .has-success .radio-inline{color:#3c763d}.factory-bootstrap-433 .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-433 .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-433 .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.factory-bootstrap-433 .form-control-static{margin-bottom:0}.factory-bootstrap-433 .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-433 .form-horizontal .checkbox,.factory-bootstrap-433 .form-horizontal .checkbox-inline,.factory-bootstrap-433 .form-horizontal .control-label,.factory-bootstrap-433 .form-horizontal .radio,.factory-bootstrap-433 .form-horizontal .radio-inline{position:relative;padding-top:7px;margin-top:0;margin-bottom:0}.factory-bootstrap-433 .form-horizontal .control-label{max-width:200px}.factory-bootstrap-433 .form-horizontal .checkbox,.factory-bootstrap-433 .form-horizontal .radio{min-height:27px}.factory-bootstrap-433 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.factory-bootstrap-433 .form-horizontal .form-group:after,.factory-bootstrap-433 .form-horizontal .form-group:before{display:table;content:" "}.factory-bootstrap-433 .form-horizontal .form-group:after{clear:both}.factory-bootstrap-433 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.factory-bootstrap-433 .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-433 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-433 .btn{text-decoration:none}.factory-bootstrap-433 .btn:focus,.factory-bootstrap-433 .btn:hover{color:#333;text-decoration:none}.factory-bootstrap-433 .btn.disabled,.factory-bootstrap-433 .btn[disabled],.factory-bootstrap-433 fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-433 .btn-default.active,.factory-bootstrap-433 .btn-default:active,.factory-bootstrap-433 .btn-default:focus,.factory-bootstrap-433 .btn-default:hover,.factory-bootstrap-433 .open .dropdown-toggle.btn-default{background:#fafafa;border-color:#999;color:#222}.factory-bootstrap-433 .btn-default.active,.factory-bootstrap-433 .btn-default:active,.factory-bootstrap-433 .open .dropdown-toggle.btn-default{background-image:none}.factory-bootstrap-433 .btn-default.disabled,.factory-bootstrap-433 .btn-default.disabled.active,.factory-bootstrap-433 .btn-default.disabled:active,.factory-bootstrap-433 .btn-default.disabled:focus,.factory-bootstrap-433 .btn-default.disabled:hover,.factory-bootstrap-433 .btn-default[disabled],.factory-bootstrap-433 .btn-default[disabled].active,.factory-bootstrap-433 .btn-default[disabled]:active,.factory-bootstrap-433 .btn-default[disabled]:focus,.factory-bootstrap-433 .btn-default[disabled]:hover,.factory-bootstrap-433 fieldset[disabled] .btn-default,.factory-bootstrap-433 fieldset[disabled] .btn-default.active,.factory-bootstrap-433 fieldset[disabled] .btn-default:active,.factory-bootstrap-433 fieldset[disabled] .btn-default:focus,.factory-bootstrap-433 fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.factory-bootstrap-433 .btn-default .badge{color:#fff;background-color:#fff}.factory-bootstrap-433 .btn-primary.active,.factory-bootstrap-433 .btn-primary:active,.factory-bootstrap-433 .btn-primary:focus,.factory-bootstrap-433 .btn-primary:hover,.factory-bootstrap-433 .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.factory-bootstrap-433 .btn-primary.active,.factory-bootstrap-433 .btn-primary:active,.factory-bootstrap-433 .open .dropdown-toggle.btn-primary{background-image:none}.factory-bootstrap-433 .btn-primary.disabled,.factory-bootstrap-433 .btn-primary.disabled.active,.factory-bootstrap-433 .btn-primary.disabled:active,.factory-bootstrap-433 .btn-primary.disabled:focus,.factory-bootstrap-433 .btn-primary.disabled:hover,.factory-bootstrap-433 .btn-primary[disabled],.factory-bootstrap-433 .btn-primary[disabled].active,.factory-bootstrap-433 .btn-primary[disabled]:active,.factory-bootstrap-433 .btn-primary[disabled]:focus,.factory-bootstrap-433 .btn-primary[disabled]:hover,.factory-bootstrap-433 fieldset[disabled] .btn-primary,.factory-bootstrap-433 fieldset[disabled] .btn-primary.active,.factory-bootstrap-433 fieldset[disabled] .btn-primary:active,.factory-bootstrap-433 fieldset[disabled] .btn-primary:focus,.factory-bootstrap-433 fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.factory-bootstrap-433 .btn-primary .badge{color:#428bca;background-color:#fff}.factory-bootstrap-433 .btn-warning{color:#fff;background-color:#f0ad4e}.factory-bootstrap-433 .btn-warning.active,.factory-bootstrap-433 .btn-warning:active,.factory-bootstrap-433 .btn-warning:focus,.factory-bootstrap-433 .btn-warning:hover,.factory-bootstrap-433 .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.factory-bootstrap-433 .btn-warning.active,.factory-bootstrap-433 .btn-warning:active,.factory-bootstrap-433 .open .dropdown-toggle.btn-warning{background-image:none}.factory-bootstrap-433 .btn-warning.disabled,.factory-bootstrap-433 .btn-warning.disabled.active,.factory-bootstrap-433 .btn-warning.disabled:active,.factory-bootstrap-433 .btn-warning.disabled:focus,.factory-bootstrap-433 .btn-warning.disabled:hover,.factory-bootstrap-433 .btn-warning[disabled],.factory-bootstrap-433 .btn-warning[disabled].active,.factory-bootstrap-433 .btn-warning[disabled]:active,.factory-bootstrap-433 .btn-warning[disabled]:focus,.factory-bootstrap-433 .btn-warning[disabled]:hover,.factory-bootstrap-433 fieldset[disabled] .btn-warning,.factory-bootstrap-433 fieldset[disabled] .btn-warning.active,.factory-bootstrap-433 fieldset[disabled] .btn-warning:active,.factory-bootstrap-433 fieldset[disabled] .btn-warning:focus,.factory-bootstrap-433 fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.factory-bootstrap-433 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.factory-bootstrap-433 .btn-success{color:#fff;background-color:#5cb85c}.factory-bootstrap-433 .btn-success.active,.factory-bootstrap-433 .btn-success:active,.factory-bootstrap-433 .btn-success:focus,.factory-bootstrap-433 .btn-success:hover,.factory-bootstrap-433 .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.factory-bootstrap-433 .btn-success.active,.factory-bootstrap-433 .btn-success:active,.factory-bootstrap-433 .open .dropdown-toggle.btn-success{background-image:none}.factory-bootstrap-433 .btn-success.disabled,.factory-bootstrap-433 .btn-success.disabled.active,.factory-bootstrap-433 .btn-success.disabled:active,.factory-bootstrap-433 .btn-success.disabled:focus,.factory-bootstrap-433 .btn-success.disabled:hover,.factory-bootstrap-433 .btn-success[disabled],.factory-bootstrap-433 .btn-success[disabled].active,.factory-bootstrap-433 .btn-success[disabled]:active,.factory-bootstrap-433 .btn-success[disabled]:focus,.factory-bootstrap-433 .btn-success[disabled]:hover,.factory-bootstrap-433 fieldset[disabled] .btn-success,.factory-bootstrap-433 fieldset[disabled] .btn-success.active,.factory-bootstrap-433 fieldset[disabled] .btn-success:active,.factory-bootstrap-433 fieldset[disabled] .btn-success:focus,.factory-bootstrap-433 fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.factory-bootstrap-433 .btn-success .badge{color:#5cb85c;background-color:#fff}.factory-bootstrap-433 .btn-info{color:#fff;background-color:#5bc0de}.factory-bootstrap-433 .btn-info.active,.factory-bootstrap-433 .btn-info:active,.factory-bootstrap-433 .btn-info:focus,.factory-bootstrap-433 .btn-info:hover,.factory-bootstrap-433 .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.factory-bootstrap-433 .btn-info.active,.factory-bootstrap-433 .btn-info:active,.factory-bootstrap-433 .open .dropdown-toggle.btn-info{background-image:none}.factory-bootstrap-433 .btn-info.disabled,.factory-bootstrap-433 .btn-info.disabled.active,.factory-bootstrap-433 .btn-info.disabled:active,.factory-bootstrap-433 .btn-info.disabled:focus,.factory-bootstrap-433 .btn-info.disabled:hover,.factory-bootstrap-433 .btn-info[disabled],.factory-bootstrap-433 .btn-info[disabled].active,.factory-bootstrap-433 .btn-info[disabled]:active,.factory-bootstrap-433 .btn-info[disabled]:focus,.factory-bootstrap-433 .btn-info[disabled]:hover,.factory-bootstrap-433 fieldset[disabled] .btn-info,.factory-bootstrap-433 fieldset[disabled] .btn-info.active,.factory-bootstrap-433 fieldset[disabled] .btn-info:active,.factory-bootstrap-433 fieldset[disabled] .btn-info:focus,.factory-bootstrap-433 fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.factory-bootstrap-433 .btn-info .badge{color:#5bc0de;background-color:#fff}.factory-bootstrap-433 .btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.factory-bootstrap-433 .btn-link,.factory-bootstrap-433 .btn-link:active,.factory-bootstrap-433 .btn-link[disabled],.factory-bootstrap-433 fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-433 .btn-link,.factory-bootstrap-433 .btn-link:active,.factory-bootstrap-433 .btn-link:focus,.factory-bootstrap-433 .btn-link:hover{border-color:transparent}.factory-bootstrap-433 .btn-link:focus,.factory-bootstrap-433 .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.factory-bootstrap-433 .btn-link[disabled]:focus,.factory-bootstrap-433 .btn-link[disabled]:hover,.factory-bootstrap-433 fieldset[disabled] .btn-link:focus,.factory-bootstrap-433 fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.factory-bootstrap-433 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-433 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-433 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-433 .btn-block{display:block;width:100%;padding-right:0;padding-left:0}.factory-bootstrap-433 .btn-block+.btn-block{margin-top:5px}.factory-bootstrap-433 input[type=button].btn-block,.factory-bootstrap-433 input[type=reset].btn-block,.factory-bootstrap-433 input[type=submit].btn-block{width:100%}.factory-bootstrap-433 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.factory-bootstrap-433 .fade.in{opacity:1}.factory-bootstrap-433 .collapse{display:none}.factory-bootstrap-433 .collapse.in{display:block}.factory-bootstrap-433 .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-433 .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-433 .glyphicon:empty{width:1em}.factory-bootstrap-433 .glyphicon-asterisk:before{content:"\2a"}.factory-bootstrap-433 .glyphicon-plus:before{content:"\2b"}.factory-bootstrap-433 .glyphicon-euro:before{content:"\20ac"}.factory-bootstrap-433 .glyphicon-minus:before{content:"\2212"}.factory-bootstrap-433 .glyphicon-cloud:before{content:"\2601"}.factory-bootstrap-433 .glyphicon-envelope:before{content:"\2709"}.factory-bootstrap-433 .glyphicon-pencil:before{content:"\270f"}.factory-bootstrap-433 .glyphicon-glass:before{content:"\e001"}.factory-bootstrap-433 .glyphicon-music:before{content:"\e002"}.factory-bootstrap-433 .glyphicon-search:before{content:"\e003"}.factory-bootstrap-433 .glyphicon-heart:before{content:"\e005"}.factory-bootstrap-433 .glyphicon-star:before{content:"\e006"}.factory-bootstrap-433 .glyphicon-star-empty:before{content:"\e007"}.factory-bootstrap-433 .glyphicon-user:before{content:"\e008"}.factory-bootstrap-433 .glyphicon-film:before{content:"\e009"}.factory-bootstrap-433 .glyphicon-th-large:before{content:"\e010"}.factory-bootstrap-433 .glyphicon-th:before{content:"\e011"}.factory-bootstrap-433 .glyphicon-th-list:before{content:"\e012"}.factory-bootstrap-433 .glyphicon-ok:before{content:"\e013"}.factory-bootstrap-433 .glyphicon-remove:before{content:"\e014"}.factory-bootstrap-433 .glyphicon-zoom-in:before{content:"\e015"}.factory-bootstrap-433 .glyphicon-zoom-out:before{content:"\e016"}.factory-bootstrap-433 .glyphicon-off:before{content:"\e017"}.factory-bootstrap-433 .glyphicon-signal:before{content:"\e018"}.factory-bootstrap-433 .glyphicon-cog:before{content:"\e019"}.factory-bootstrap-433 .glyphicon-trash:before{content:"\e020"}.factory-bootstrap-433 .glyphicon-home:before{content:"\e021"}.factory-bootstrap-433 .glyphicon-file:before{content:"\e022"}.factory-bootstrap-433 .glyphicon-time:before{content:"\e023"}.factory-bootstrap-433 .glyphicon-road:before{content:"\e024"}.factory-bootstrap-433 .glyphicon-download-alt:before{content:"\e025"}.factory-bootstrap-433 .glyphicon-download:before{content:"\e026"}.factory-bootstrap-433 .glyphicon-upload:before{content:"\e027"}.factory-bootstrap-433 .glyphicon-inbox:before{content:"\e028"}.factory-bootstrap-433 .glyphicon-play-circle:before{content:"\e029"}.factory-bootstrap-433 .glyphicon-repeat:before{content:"\e030"}.factory-bootstrap-433 .glyphicon-refresh:before{content:"\e031"}.factory-bootstrap-433 .glyphicon-list-alt:before{content:"\e032"}.factory-bootstrap-433 .glyphicon-lock:before{content:"\e033"}.factory-bootstrap-433 .glyphicon-flag:before{content:"\e034"}.factory-bootstrap-433 .glyphicon-headphones:before{content:"\e035"}.factory-bootstrap-433 .glyphicon-volume-off:before{content:"\e036"}.factory-bootstrap-433 .glyphicon-volume-down:before{content:"\e037"}.factory-bootstrap-433 .glyphicon-volume-up:before{content:"\e038"}.factory-bootstrap-433 .glyphicon-qrcode:before{content:"\e039"}.factory-bootstrap-433 .glyphicon-barcode:before{content:"\e040"}.factory-bootstrap-433 .glyphicon-tag:before{content:"\e041"}.factory-bootstrap-433 .glyphicon-tags:before{content:"\e042"}.factory-bootstrap-433 .glyphicon-book:before{content:"\e043"}.factory-bootstrap-433 .glyphicon-bookmark:before{content:"\e044"}.factory-bootstrap-433 .glyphicon-print:before{content:"\e045"}.factory-bootstrap-433 .glyphicon-camera:before{content:"\e046"}.factory-bootstrap-433 .glyphicon-font:before{content:"\e047"}.factory-bootstrap-433 .glyphicon-bold:before{content:"\e048"}.factory-bootstrap-433 .glyphicon-italic:before{content:"\e049"}.factory-bootstrap-433 .glyphicon-text-height:before{content:"\e050"}.factory-bootstrap-433 .glyphicon-text-width:before{content:"\e051"}.factory-bootstrap-433 .glyphicon-align-left:before{content:"\e052"}.factory-bootstrap-433 .glyphicon-align-center:before{content:"\e053"}.factory-bootstrap-433 .glyphicon-align-right:before{content:"\e054"}.factory-bootstrap-433 .glyphicon-align-justify:before{content:"\e055"}.factory-bootstrap-433 .glyphicon-list:before{content:"\e056"}.factory-bootstrap-433 .glyphicon-indent-left:before{content:"\e057"}.factory-bootstrap-433 .glyphicon-indent-right:before{content:"\e058"}.factory-bootstrap-433 .glyphicon-facetime-video:before{content:"\e059"}.factory-bootstrap-433 .glyphicon-picture:before{content:"\e060"}.factory-bootstrap-433 .glyphicon-map-marker:before{content:"\e062"}.factory-bootstrap-433 .glyphicon-adjust:before{content:"\e063"}.factory-bootstrap-433 .glyphicon-tint:before{content:"\e064"}.factory-bootstrap-433 .glyphicon-edit:before{content:"\e065"}.factory-bootstrap-433 .glyphicon-share:before{content:"\e066"}.factory-bootstrap-433 .glyphicon-check:before{content:"\e067"}.factory-bootstrap-433 .glyphicon-move:before{content:"\e068"}.factory-bootstrap-433 .glyphicon-step-backward:before{content:"\e069"}.factory-bootstrap-433 .glyphicon-fast-backward:before{content:"\e070"}.factory-bootstrap-433 .glyphicon-backward:before{content:"\e071"}.factory-bootstrap-433 .glyphicon-play:before{content:"\e072"}.factory-bootstrap-433 .glyphicon-pause:before{content:"\e073"}.factory-bootstrap-433 .glyphicon-stop:before{content:"\e074"}.factory-bootstrap-433 .glyphicon-forward:before{content:"\e075"}.factory-bootstrap-433 .glyphicon-fast-forward:before{content:"\e076"}.factory-bootstrap-433 .glyphicon-step-forward:before{content:"\e077"}.factory-bootstrap-433 .glyphicon-eject:before{content:"\e078"}.factory-bootstrap-433 .glyphicon-chevron-left:before{content:"\e079"}.factory-bootstrap-433 .glyphicon-chevron-right:before{content:"\e080"}.factory-bootstrap-433 .glyphicon-plus-sign:before{content:"\e081"}.factory-bootstrap-433 .glyphicon-minus-sign:before{content:"\e082"}.factory-bootstrap-433 .glyphicon-remove-sign:before{content:"\e083"}.factory-bootstrap-433 .glyphicon-ok-sign:before{content:"\e084"}.factory-bootstrap-433 .glyphicon-question-sign:before{content:"\e085"}.factory-bootstrap-433 .glyphicon-info-sign:before{content:"\e086"}.factory-bootstrap-433 .glyphicon-screenshot:before{content:"\e087"}.factory-bootstrap-433 .glyphicon-remove-circle:before{content:"\e088"}.factory-bootstrap-433 .glyphicon-ok-circle:before{content:"\e089"}.factory-bootstrap-433 .glyphicon-ban-circle:before{content:"\e090"}.factory-bootstrap-433 .glyphicon-arrow-left:before{content:"\e091"}.factory-bootstrap-433 .glyphicon-arrow-right:before{content:"\e092"}.factory-bootstrap-433 .glyphicon-arrow-up:before{content:"\e093"}.factory-bootstrap-433 .glyphicon-arrow-down:before{content:"\e094"}.factory-bootstrap-433 .glyphicon-share-alt:before{content:"\e095"}.factory-bootstrap-433 .glyphicon-resize-full:before{content:"\e096"}.factory-bootstrap-433 .glyphicon-resize-small:before{content:"\e097"}.factory-bootstrap-433 .glyphicon-exclamation-sign:before{content:"\e101"}.factory-bootstrap-433 .glyphicon-gift:before{content:"\e102"}.factory-bootstrap-433 .glyphicon-leaf:before{content:"\e103"}.factory-bootstrap-433 .glyphicon-fire:before{content:"\e104"}.factory-bootstrap-433 .glyphicon-eye-open:before{content:"\e105"}.factory-bootstrap-433 .glyphicon-eye-close:before{content:"\e106"}.factory-bootstrap-433 .glyphicon-warning-sign:before{content:"\e107"}.factory-bootstrap-433 .glyphicon-plane:before{content:"\e108"}.factory-bootstrap-433 .glyphicon-calendar:before{content:"\e109"}.factory-bootstrap-433 .glyphicon-random:before{content:"\e110"}.factory-bootstrap-433 .glyphicon-comment:before{content:"\e111"}.factory-bootstrap-433 .glyphicon-magnet:before{content:"\e112"}.factory-bootstrap-433 .glyphicon-chevron-up:before{content:"\e113"}.factory-bootstrap-433 .glyphicon-chevron-down:before{content:"\e114"}.factory-bootstrap-433 .glyphicon-retweet:before{content:"\e115"}.factory-bootstrap-433 .glyphicon-shopping-cart:before{content:"\e116"}.factory-bootstrap-433 .glyphicon-folder-close:before{content:"\e117"}.factory-bootstrap-433 .glyphicon-folder-open:before{content:"\e118"}.factory-bootstrap-433 .glyphicon-resize-vertical:before{content:"\e119"}.factory-bootstrap-433 .glyphicon-resize-horizontal:before{content:"\e120"}.factory-bootstrap-433 .glyphicon-hdd:before{content:"\e121"}.factory-bootstrap-433 .glyphicon-bullhorn:before{content:"\e122"}.factory-bootstrap-433 .glyphicon-bell:before{content:"\e123"}.factory-bootstrap-433 .glyphicon-certificate:before{content:"\e124"}.factory-bootstrap-433 .glyphicon-thumbs-up:before{content:"\e125"}.factory-bootstrap-433 .glyphicon-thumbs-down:before{content:"\e126"}.factory-bootstrap-433 .glyphicon-hand-right:before{content:"\e127"}.factory-bootstrap-433 .glyphicon-hand-left:before{content:"\e128"}.factory-bootstrap-433 .glyphicon-hand-up:before{content:"\e129"}.factory-bootstrap-433 .glyphicon-hand-down:before{content:"\e130"}.factory-bootstrap-433 .glyphicon-circle-arrow-right:before{content:"\e131"}.factory-bootstrap-433 .glyphicon-circle-arrow-left:before{content:"\e132"}.factory-bootstrap-433 .glyphicon-circle-arrow-up:before{content:"\e133"}.factory-bootstrap-433 .glyphicon-circle-arrow-down:before{content:"\e134"}.factory-bootstrap-433 .glyphicon-globe:before{content:"\e135"}.factory-bootstrap-433 .glyphicon-wrench:before{content:"\e136"}.factory-bootstrap-433 .glyphicon-tasks:before{content:"\e137"}.factory-bootstrap-433 .glyphicon-filter:before{content:"\e138"}.factory-bootstrap-433 .glyphicon-briefcase:before{content:"\e139"}.factory-bootstrap-433 .glyphicon-fullscreen:before{content:"\e140"}.factory-bootstrap-433 .glyphicon-dashboard:before{content:"\e141"}.factory-bootstrap-433 .glyphicon-paperclip:before{content:"\e142"}.factory-bootstrap-433 .glyphicon-heart-empty:before{content:"\e143"}.factory-bootstrap-433 .glyphicon-link:before{content:"\e144"}.factory-bootstrap-433 .glyphicon-phone:before{content:"\e145"}.factory-bootstrap-433 .glyphicon-pushpin:before{content:"\e146"}.factory-bootstrap-433 .glyphicon-usd:before{content:"\e148"}.factory-bootstrap-433 .glyphicon-gbp:before{content:"\e149"}.factory-bootstrap-433 .glyphicon-sort:before{content:"\e150"}.factory-bootstrap-433 .glyphicon-sort-by-alphabet:before{content:"\e151"}.factory-bootstrap-433 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.factory-bootstrap-433 .glyphicon-sort-by-order:before{content:"\e153"}.factory-bootstrap-433 .glyphicon-sort-by-order-alt:before{content:"\e154"}.factory-bootstrap-433 .glyphicon-sort-by-attributes:before{content:"\e155"}.factory-bootstrap-433 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.factory-bootstrap-433 .glyphicon-unchecked:before{content:"\e157"}.factory-bootstrap-433 .glyphicon-expand:before{content:"\e158"}.factory-bootstrap-433 .glyphicon-collapse-down:before{content:"\e159"}.factory-bootstrap-433 .glyphicon-collapse-up:before{content:"\e160"}.factory-bootstrap-433 .glyphicon-log-in:before{content:"\e161"}.factory-bootstrap-433 .glyphicon-flash:before{content:"\e162"}.factory-bootstrap-433 .glyphicon-log-out:before{content:"\e163"}.factory-bootstrap-433 .glyphicon-new-window:before{content:"\e164"}.factory-bootstrap-433 .glyphicon-record:before{content:"\e165"}.factory-bootstrap-433 .glyphicon-save:before{content:"\e166"}.factory-bootstrap-433 .glyphicon-open:before{content:"\e167"}.factory-bootstrap-433 .glyphicon-saved:before{content:"\e168"}.factory-bootstrap-433 .glyphicon-import:before{content:"\e169"}.factory-bootstrap-433 .glyphicon-export:before{content:"\e170"}.factory-bootstrap-433 .glyphicon-send:before{content:"\e171"}.factory-bootstrap-433 .glyphicon-floppy-disk:before{content:"\e172"}.factory-bootstrap-433 .glyphicon-floppy-saved:before{content:"\e173"}.factory-bootstrap-433 .glyphicon-floppy-remove:before{content:"\e174"}.factory-bootstrap-433 .glyphicon-floppy-save:before{content:"\e175"}.factory-bootstrap-433 .glyphicon-floppy-open:before{content:"\e176"}.factory-bootstrap-433 .glyphicon-credit-card:before{content:"\e177"}.factory-bootstrap-433 .glyphicon-transfer:before{content:"\e178"}.factory-bootstrap-433 .glyphicon-cutlery:before{content:"\e179"}.factory-bootstrap-433 .glyphicon-header:before{content:"\e180"}.factory-bootstrap-433 .glyphicon-compressed:before{content:"\e181"}.factory-bootstrap-433 .glyphicon-earphone:before{content:"\e182"}.factory-bootstrap-433 .glyphicon-phone-alt:before{content:"\e183"}.factory-bootstrap-433 .glyphicon-tower:before{content:"\e184"}.factory-bootstrap-433 .glyphicon-stats:before{content:"\e185"}.factory-bootstrap-433 .glyphicon-sd-video:before{content:"\e186"}.factory-bootstrap-433 .glyphicon-hd-video:before{content:"\e187"}.factory-bootstrap-433 .glyphicon-subtitles:before{content:"\e188"}.factory-bootstrap-433 .glyphicon-sound-stereo:before{content:"\e189"}.factory-bootstrap-433 .glyphicon-sound-dolby:before{content:"\e190"}.factory-bootstrap-433 .glyphicon-sound-5-1:before{content:"\e191"}.factory-bootstrap-433 .glyphicon-sound-6-1:before{content:"\e192"}.factory-bootstrap-433 .glyphicon-sound-7-1:before{content:"\e193"}.factory-bootstrap-433 .glyphicon-copyright-mark:before{content:"\e194"}.factory-bootstrap-433 .glyphicon-registration-mark:before{content:"\e195"}.factory-bootstrap-433 .glyphicon-cloud-download:before{content:"\e197"}.factory-bootstrap-433 .glyphicon-cloud-upload:before{content:"\e198"}.factory-bootstrap-433 .glyphicon-tree-conifer:before{content:"\e199"}.factory-bootstrap-433 .glyphicon-tree-deciduous:before{content:"\e200"}.factory-bootstrap-433 .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-433 .dropdown{position:relative}.factory-bootstrap-433 .dropdown-toggle:focus{outline:0}.factory-bootstrap-433 .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-433 .dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-433 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-433 .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-433 .dropdown-menu>li>a:focus,.factory-bootstrap-433 .dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.factory-bootstrap-433 .dropdown-menu>.active>a,.factory-bootstrap-433 .dropdown-menu>.active>a:focus,.factory-bootstrap-433 .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.factory-bootstrap-433 .dropdown-menu>.disabled>a,.factory-bootstrap-433 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-433 .dropdown-menu>.disabled>a:hover{color:#999}.factory-bootstrap-433 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-433 .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-433 .open>.dropdown-menu{display:block}.factory-bootstrap-433 .open>a{outline:0}.factory-bootstrap-433 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.factory-bootstrap-433 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.factory-bootstrap-433 .pull-right>.dropdown-menu{right:0;left:auto}.factory-bootstrap-433 .dropup .caret,.factory-bootstrap-433 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.factory-bootstrap-433 .dropup .dropdown-menu,.factory-bootstrap-433 .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-433 .btn-group,.factory-bootstrap-433 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.factory-bootstrap-433 .btn-group-vertical>.btn,.factory-bootstrap-433 .btn-group>.btn{position:relative;float:left}.factory-bootstrap-433 .btn-group-vertical>.btn.active,.factory-bootstrap-433 .btn-group-vertical>.btn:active,.factory-bootstrap-433 .btn-group-vertical>.btn:focus,.factory-bootstrap-433 .btn-group-vertical>.btn:hover,.factory-bootstrap-433 .btn-group>.btn.active,.factory-bootstrap-433 .btn-group>.btn:active,.factory-bootstrap-433 .btn-group>.btn:focus,.factory-bootstrap-433 .btn-group>.btn:hover{z-index:2}.factory-bootstrap-433 .btn-group-vertical>.btn:focus,.factory-bootstrap-433 .btn-group>.btn:focus{outline:0}.factory-bootstrap-433 .btn-group .btn+.btn,.factory-bootstrap-433 .btn-group .btn+.btn-group,.factory-bootstrap-433 .btn-group .btn-group+.btn,.factory-bootstrap-433 .btn-group .btn-group+.btn-group{margin-left:-1px}.factory-bootstrap-433 .btn-toolbar:after,.factory-bootstrap-433 .btn-toolbar:before{display:table;content:" "}.factory-bootstrap-433 .btn-toolbar:after{clear:both}.factory-bootstrap-433 .btn-toolbar .btn-group{float:left}.factory-bootstrap-433 .btn-toolbar>.btn+.btn,.factory-bootstrap-433 .btn-toolbar>.btn+.btn-group,.factory-bootstrap-433 .btn-toolbar>.btn-group+.btn,.factory-bootstrap-433 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.factory-bootstrap-433 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.factory-bootstrap-433 .btn-group>.btn:first-child{margin-left:0}.factory-bootstrap-433 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-433 .btn-group>.btn:last-child:not(:first-child),.factory-bootstrap-433 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-433 .btn-group>.btn-group{float:left}.factory-bootstrap-433 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-433 .btn-group>.btn-group:first-child>.btn:last-child,.factory-bootstrap-433 .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-433 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-433 .btn-group .dropdown-toggle:active,.factory-bootstrap-433 .btn-group.open .dropdown-toggle{outline:0}.factory-bootstrap-433 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-433 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-433 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-433 .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.factory-bootstrap-433 .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.factory-bootstrap-433 .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-433 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-433 .btn-group{border:4px solid #f9f9f9;border-radius:4px}.factory-bootstrap-433 .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-433 .btn .caret{margin-left:0}.factory-bootstrap-433 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.factory-bootstrap-433 .dropup .btn-lg .caret{border-width:0 5px 5px}.factory-bootstrap-433 .btn-group-vertical>.btn,.factory-bootstrap-433 .btn-group-vertical>.btn-group,.factory-bootstrap-433 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.factory-bootstrap-433 .btn-group-vertical>.btn-group:after,.factory-bootstrap-433 .btn-group-vertical>.btn-group:before{display:table;content:" "}.factory-bootstrap-433 .btn-group-vertical>.btn-group:after{clear:both}.factory-bootstrap-433 .btn-group-vertical>.btn-group>.btn{float:none}.factory-bootstrap-433 .btn-group-vertical>.btn+.btn,.factory-bootstrap-433 .btn-group-vertical>.btn+.btn-group,.factory-bootstrap-433 .btn-group-vertical>.btn-group+.btn,.factory-bootstrap-433 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.factory-bootstrap-433 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-433 .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-433 .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-433 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-433 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.factory-bootstrap-433 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-433 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-433 .btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.factory-bootstrap-433 .btn-group-justified>.btn,.factory-bootstrap-433 .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.factory-bootstrap-433 .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-433 .input-group{position:relative;display:table;border-collapse:separate}.factory-bootstrap-433 .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.factory-bootstrap-433 .input-group .form-control{width:100%;margin-bottom:0}.factory-bootstrap-433 .input-group-lg>.form-control,.factory-bootstrap-433 .input-group-lg>.input-group-addon,.factory-bootstrap-433 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-433 select.input-group-lg>.form-control,.factory-bootstrap-433 select.input-group-lg>.input-group-addon,.factory-bootstrap-433 select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}.factory-bootstrap-433 textarea.input-group-lg>.form-control,.factory-bootstrap-433 textarea.input-group-lg>.input-group-addon,.factory-bootstrap-433 textarea.input-group-lg>.input-group-btn>.btn{height:auto}.factory-bootstrap-433 .input-group-sm>.form-control,.factory-bootstrap-433 .input-group-sm>.input-group-addon,.factory-bootstrap-433 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-433 select.input-group-sm>.form-control,.factory-bootstrap-433 select.input-group-sm>.input-group-addon,.factory-bootstrap-433 select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}.factory-bootstrap-433 textarea.input-group-sm>.form-control,.factory-bootstrap-433 textarea.input-group-sm>.input-group-addon,.factory-bootstrap-433 textarea.input-group-sm>.input-group-btn>.btn{height:auto}.factory-bootstrap-433 .input-group .form-control,.factory-bootstrap-433 .input-group-addon,.factory-bootstrap-433 .input-group-btn{display:table-cell}.factory-bootstrap-433 .input-group .form-control:not(:first-child):not(:last-child),.factory-bootstrap-433 .input-group-addon:not(:first-child):not(:last-child),.factory-bootstrap-433 .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-433 .input-group-addon,.factory-bootstrap-433 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.factory-bootstrap-433 .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-433 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.factory-bootstrap-433 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.factory-bootstrap-433 .input-group-addon input[type=checkbox],.factory-bootstrap-433 .input-group-addon input[type=radio]{margin-top:0}.factory-bootstrap-433 .input-group .form-control:first-child,.factory-bootstrap-433 .input-group-addon:first-child,.factory-bootstrap-433 .input-group-btn:first-child>.btn,.factory-bootstrap-433 .input-group-btn:first-child>.dropdown-toggle,.factory-bootstrap-433 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-433 .input-group-addon:first-child{border-right:0}.factory-bootstrap-433 .input-group .form-control:last-child,.factory-bootstrap-433 .input-group-addon:last-child,.factory-bootstrap-433 .input-group-btn:first-child>.btn:not(:first-child),.factory-bootstrap-433 .input-group-btn:last-child>.btn,.factory-bootstrap-433 .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-433 .input-group-addon:last-child{border-left:0}.factory-bootstrap-433 .input-group-btn{position:relative;white-space:nowrap}.factory-bootstrap-433 .input-group-btn:first-child>.btn{margin-right:-1px}.factory-bootstrap-433 .input-group-btn:last-child>.btn{margin-left:-1px}.factory-bootstrap-433 .input-group-btn>.btn{position:relative}.factory-bootstrap-433 .input-group-btn>.btn+.btn{margin-left:-4px}.factory-bootstrap-433 .input-group-btn>.btn:active,.factory-bootstrap-433 .input-group-btn>.btn:hover{z-index:2}.factory-bootstrap-433 .nav{padding-left:0;margin-bottom:0;list-style:none}.factory-bootstrap-433 .nav:after,.factory-bootstrap-433 .nav:before{display:table;content:" "}.factory-bootstrap-433 .nav:after{clear:both}.factory-bootstrap-433 .nav>li{position:relative;display:block}.factory-bootstrap-433 .nav>li>a{position:relative;display:block;padding:10px 15px}.factory-bootstrap-433 .nav>li>a:focus,.factory-bootstrap-433 .nav>li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-433 .nav>li.disabled>a{color:#999}.factory-bootstrap-433 .nav>li.disabled>a:focus,.factory-bootstrap-433 .nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.factory-bootstrap-433 .nav .open>a,.factory-bootstrap-433 .nav .open>a:focus,.factory-bootstrap-433 .nav .open>a:hover{background-color:#eee;border-color:#428bca}.factory-bootstrap-433 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-433 .nav>li>a>img{max-width:none}.factory-bootstrap-433 .nav-tabs{border-bottom:1px solid #ddd}.factory-bootstrap-433 .nav-tabs>li{float:left;margin-bottom:-1px}.factory-bootstrap-433 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.factory-bootstrap-433 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.factory-bootstrap-433 .nav-tabs>li.active>a,.factory-bootstrap-433 .nav-tabs>li.active>a:focus,.factory-bootstrap-433 .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.factory-bootstrap-433 .nav-tabs.nav-justified{width:100%;border-bottom:0}.factory-bootstrap-433 .nav-tabs.nav-justified>li{float:none}.factory-bootstrap-433 .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-433 .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-433 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-433 .nav-tabs.nav-justified>.active>a,.factory-bootstrap-433 .nav-tabs.nav-justified>.active>a:focus,.factory-bootstrap-433 .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-433 .nav-pills>li{float:left}.factory-bootstrap-433 .nav-pills>li>a{border-radius:4px}.factory-bootstrap-433 .nav-pills>li+li{margin-left:2px}.factory-bootstrap-433 .nav-pills>li.active>a,.factory-bootstrap-433 .nav-pills>li.active>a:focus,.factory-bootstrap-433 .nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.factory-bootstrap-433 .nav-stacked>li{float:none}.factory-bootstrap-433 .nav-stacked>li+li{margin-top:2px;margin-left:0}.factory-bootstrap-433 .nav-justified{width:100%}.factory-bootstrap-433 .nav-justified>li{float:none}.factory-bootstrap-433 .nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-433 .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-433 .nav-tabs-justified{border-bottom:0}.factory-bootstrap-433 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-433 .nav-tabs-justified>.active>a,.factory-bootstrap-433 .nav-tabs-justified>.active>a:focus,.factory-bootstrap-433 .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-433 .tab-content>.tab-pane{display:none}.factory-bootstrap-433 .tab-content>.active{display:block}.factory-bootstrap-433 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-433 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.factory-bootstrap-433 .navbar:after,.factory-bootstrap-433 .navbar:before{display:table;content:" "}.factory-bootstrap-433 .navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.factory-bootstrap-433 .navbar-header:after,.factory-bootstrap-433 .navbar-header:before{display:table;content:" "}.factory-bootstrap-433 .navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.factory-bootstrap-433 .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-433 .navbar-collapse:after,.factory-bootstrap-433 .navbar-collapse:before{display:table;content:" "}.factory-bootstrap-433 .navbar-collapse:after{clear:both}.factory-bootstrap-433 .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-433 .container>.navbar-collapse,.factory-bootstrap-433 .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-433 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.factory-bootstrap-433 .navbar-fixed-bottom,.factory-bootstrap-433 .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-433 .navbar-fixed-top{top:0;border-width:0 0 1px}.factory-bootstrap-433 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.factory-bootstrap-433 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.factory-bootstrap-433 .navbar-brand:focus,.factory-bootstrap-433 .navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.factory-bootstrap-433 .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-433 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.factory-bootstrap-433 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.factory-bootstrap-433 .navbar-nav{margin:7.5px -15px}.factory-bootstrap-433 .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-433 .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-433 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-433 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-433 .navbar-nav.pull-right>li>.dropdown-menu,.factory-bootstrap-433 .navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-433 .navbar-btn{margin-top:8px;margin-bottom:8px}.factory-bootstrap-433 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.factory-bootstrap-433 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.factory-bootstrap-433 .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-433 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.factory-bootstrap-433 .navbar-default .navbar-brand{color:#777}.factory-bootstrap-433 .navbar-default .navbar-brand:focus,.factory-bootstrap-433 .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.factory-bootstrap-433 .navbar-default .navbar-nav>li>a,.factory-bootstrap-433 .navbar-default .navbar-text{color:#777}.factory-bootstrap-433 .navbar-default .navbar-nav>li>a:focus,.factory-bootstrap-433 .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.factory-bootstrap-433 .navbar-default .navbar-nav>.active>a,.factory-bootstrap-433 .navbar-default .navbar-nav>.active>a:focus,.factory-bootstrap-433 .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.factory-bootstrap-433 .navbar-default .navbar-nav>.disabled>a,.factory-bootstrap-433 .navbar-default .navbar-nav>.disabled>a:focus,.factory-bootstrap-433 .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.factory-bootstrap-433 .navbar-default .navbar-toggle{border-color:#ddd}.factory-bootstrap-433 .navbar-default .navbar-toggle:focus,.factory-bootstrap-433 .navbar-default .navbar-toggle:hover{background-color:#ddd}.factory-bootstrap-433 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.factory-bootstrap-433 .navbar-default .navbar-collapse,.factory-bootstrap-433 .navbar-default .navbar-form{border-color:#e7e7e7}.factory-bootstrap-433 .navbar-default .navbar-nav>.open>a,.factory-bootstrap-433 .navbar-default .navbar-nav>.open>a:focus,.factory-bootstrap-433 .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-433 .navbar-default .navbar-link{color:#777}.factory-bootstrap-433 .navbar-default .navbar-link:hover{color:#333}.factory-bootstrap-433 .navbar-inverse{background-color:#222;border-color:#080808}.factory-bootstrap-433 .navbar-inverse .navbar-brand{color:#999}.factory-bootstrap-433 .navbar-inverse .navbar-brand:focus,.factory-bootstrap-433 .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.factory-bootstrap-433 .navbar-inverse .navbar-nav>li>a,.factory-bootstrap-433 .navbar-inverse .navbar-text{color:#999}.factory-bootstrap-433 .navbar-inverse .navbar-nav>li>a:focus,.factory-bootstrap-433 .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.factory-bootstrap-433 .navbar-inverse .navbar-nav>.active>a,.factory-bootstrap-433 .navbar-inverse .navbar-nav>.active>a:focus,.factory-bootstrap-433 .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.factory-bootstrap-433 .navbar-inverse .navbar-nav>.disabled>a,.factory-bootstrap-433 .navbar-inverse .navbar-nav>.disabled>a:focus,.factory-bootstrap-433 .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.factory-bootstrap-433 .navbar-inverse .navbar-toggle{border-color:#333}.factory-bootstrap-433 .navbar-inverse .navbar-toggle:focus,.factory-bootstrap-433 .navbar-inverse .navbar-toggle:hover{background-color:#333}.factory-bootstrap-433 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.factory-bootstrap-433 .navbar-inverse .navbar-collapse,.factory-bootstrap-433 .navbar-inverse .navbar-form{border-color:#101010}.factory-bootstrap-433 .navbar-inverse .navbar-nav>.open>a,.factory-bootstrap-433 .navbar-inverse .navbar-nav>.open>a:focus,.factory-bootstrap-433 .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-433 .navbar-inverse .navbar-link{color:#999}.factory-bootstrap-433 .navbar-inverse .navbar-link:hover{color:#fff}.factory-bootstrap-433 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.factory-bootstrap-433 .breadcrumb>li{display:inline-block}.factory-bootstrap-433 .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.factory-bootstrap-433 .breadcrumb>.active{color:#999}.factory-bootstrap-433 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.factory-bootstrap-433 .pagination>li{display:inline}.factory-bootstrap-433 .pagination>li>a,.factory-bootstrap-433 .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-433 .pagination>li:first-child>a,.factory-bootstrap-433 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.factory-bootstrap-433 .pagination>li:last-child>a,.factory-bootstrap-433 .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.factory-bootstrap-433 .pagination>li>a:focus,.factory-bootstrap-433 .pagination>li>a:hover,.factory-bootstrap-433 .pagination>li>span:focus,.factory-bootstrap-433 .pagination>li>span:hover{background-color:#eee}.factory-bootstrap-433 .pagination>.active>a,.factory-bootstrap-433 .pagination>.active>a:focus,.factory-bootstrap-433 .pagination>.active>a:hover,.factory-bootstrap-433 .pagination>.active>span,.factory-bootstrap-433 .pagination>.active>span:focus,.factory-bootstrap-433 .pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#1e8cbe;border-color:#0074a2}.factory-bootstrap-433 .pagination>.disabled>a,.factory-bootstrap-433 .pagination>.disabled>a:focus,.factory-bootstrap-433 .pagination>.disabled>a:hover,.factory-bootstrap-433 .pagination>.disabled>span,.factory-bootstrap-433 .pagination>.disabled>span:focus,.factory-bootstrap-433 .pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.factory-bootstrap-433 .pagination-lg>li>a,.factory-bootstrap-433 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.factory-bootstrap-433 .pagination-lg>li:first-child>a,.factory-bootstrap-433 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.factory-bootstrap-433 .pagination-lg>li:last-child>a,.factory-bootstrap-433 .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.factory-bootstrap-433 .pagination-sm>li>a,.factory-bootstrap-433 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.factory-bootstrap-433 .pagination-sm>li:first-child>a,.factory-bootstrap-433 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.factory-bootstrap-433 .pagination-sm>li:last-child>a,.factory-bootstrap-433 .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.factory-bootstrap-433 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.factory-bootstrap-433 .pager:after,.factory-bootstrap-433 .pager:before{display:table;content:" "}.factory-bootstrap-433 .pager:after{clear:both}.factory-bootstrap-433 .pager li{display:inline}.factory-bootstrap-433 .pager li>a,.factory-bootstrap-433 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.factory-bootstrap-433 .pager li>a:focus,.factory-bootstrap-433 .pager li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-433 .pager .next>a,.factory-bootstrap-433 .pager .next>span{float:right}.factory-bootstrap-433 .pager .previous>a,.factory-bootstrap-433 .pager .previous>span{float:left}.factory-bootstrap-433 .pager .disabled>a,.factory-bootstrap-433 .pager .disabled>a:focus,.factory-bootstrap-433 .pager .disabled>a:hover,.factory-bootstrap-433 .pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.factory-bootstrap-433 .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-433 .label[href]:focus,.factory-bootstrap-433 .label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-433 .label:empty{display:none}.factory-bootstrap-433 .btn .label{position:relative;top:-1px}.factory-bootstrap-433 .label-default{background-color:#999}.factory-bootstrap-433 .label-default[href]:focus,.factory-bootstrap-433 .label-default[href]:hover{background-color:gray}.factory-bootstrap-433 .label-primary{background-color:#428bca}.factory-bootstrap-433 .label-primary[href]:focus,.factory-bootstrap-433 .label-primary[href]:hover{background-color:#3071a9}.factory-bootstrap-433 .label-success{background-color:#5cb85c}.factory-bootstrap-433 .label-success[href]:focus,.factory-bootstrap-433 .label-success[href]:hover{background-color:#449d44}.factory-bootstrap-433 .label-info{background-color:#5bc0de}.factory-bootstrap-433 .label-info[href]:focus,.factory-bootstrap-433 .label-info[href]:hover{background-color:#31b0d5}.factory-bootstrap-433 .label-warning{background-color:#f0ad4e}.factory-bootstrap-433 .label-warning[href]:focus,.factory-bootstrap-433 .label-warning[href]:hover{background-color:#ec971f}.factory-bootstrap-433 .label-danger{background-color:#d9534f}.factory-bootstrap-433 .label-danger[href]:focus,.factory-bootstrap-433 .label-danger[href]:hover{background-color:#c9302c}.factory-bootstrap-433 .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-433 .badge:empty{display:none}.factory-bootstrap-433 .btn .badge{position:relative;top:-1px}.factory-bootstrap-433 a.badge:focus,.factory-bootstrap-433 a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-433 .nav-pills>.active>a>.badge,.factory-bootstrap-433 a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.factory-bootstrap-433 .nav-pills>li>a>.badge{margin-left:3px}.factory-bootstrap-433 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.factory-bootstrap-433 .jumbotron .h1,.factory-bootstrap-433 .jumbotron h1{line-height:1;color:inherit}.factory-bootstrap-433 .jumbotron p{line-height:1.4}.factory-bootstrap-433 .container .jumbotron{border-radius:6px}.factory-bootstrap-433 .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-433 .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-433 .thumbnail a>img,.factory-bootstrap-433 .thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}.factory-bootstrap-433 a.thumbnail.active,.factory-bootstrap-433 a.thumbnail:focus,.factory-bootstrap-433 a.thumbnail:hover{border-color:#428bca}.factory-bootstrap-433 .thumbnail .caption{padding:9px;color:#333}.factory-bootstrap-433 .alert{border:1px solid transparent;border-radius:4px}.factory-bootstrap-433 .alert h4{margin-top:0;color:inherit}.factory-bootstrap-433 .alert .alert-link{font-weight:700}.factory-bootstrap-433 .alert>p,.factory-bootstrap-433 .alert>ul{margin-bottom:0}.factory-bootstrap-433 .alert>p+p{margin-top:5px}.factory-bootstrap-433 .alert-dismissable{padding-right:35px}.factory-bootstrap-433 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.factory-bootstrap-433 .alert-info{color:#31708f;background-color:#d9edf7}.factory-bootstrap-433 .alert-info hr{border-top-color:#a6e1ec}.factory-bootstrap-433 .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-433 .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-433 .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-433 .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-433 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.factory-bootstrap-433 .progress-bar-success{background-color:#5cb85c}.factory-bootstrap-433 .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-433 .progress-bar-info{background-color:#5bc0de}.factory-bootstrap-433 .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-433 .progress-bar-warning{background-color:#f0ad4e}.factory-bootstrap-433 .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-433 .progress-bar-danger{background-color:#d9534f}.factory-bootstrap-433 .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-433 .media,.factory-bootstrap-433 .media-body{overflow:hidden;zoom:1}.factory-bootstrap-433 .media,.factory-bootstrap-433 .media .media{margin-top:15px}.factory-bootstrap-433 .media:first-child{margin-top:0}.factory-bootstrap-433 .media-object{display:block}.factory-bootstrap-433 .media-heading{margin:0 0 5px}.factory-bootstrap-433 .media>.pull-left{margin-right:10px}.factory-bootstrap-433 .media>.pull-right{margin-left:10px}.factory-bootstrap-433 .media-list{padding-left:0;list-style:none}.factory-bootstrap-433 .list-group{padding-left:0;margin-bottom:20px}.factory-bootstrap-433 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-433 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.factory-bootstrap-433 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.factory-bootstrap-433 .list-group-item>.badge{float:right}.factory-bootstrap-433 .list-group-item>.badge+.badge{margin-right:5px}.factory-bootstrap-433 a.list-group-item{color:#555}.factory-bootstrap-433 a.list-group-item .list-group-item-heading{color:#333}.factory-bootstrap-433 a.list-group-item:focus,.factory-bootstrap-433 a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.factory-bootstrap-433 a.list-group-item.active,.factory-bootstrap-433 a.list-group-item.active:focus,.factory-bootstrap-433 a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-433 a.list-group-item.active .list-group-item-heading,.factory-bootstrap-433 a.list-group-item.active:focus .list-group-item-heading,.factory-bootstrap-433 a.list-group-item.active:hover .list-group-item-heading{color:inherit}.factory-bootstrap-433 a.list-group-item.active .list-group-item-text,.factory-bootstrap-433 a.list-group-item.active:focus .list-group-item-text,.factory-bootstrap-433 a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.factory-bootstrap-433 .list-group-item-heading{margin-top:0;margin-bottom:5px}.factory-bootstrap-433 .list-group-item-text{margin-bottom:0;line-height:1.3}.factory-bootstrap-433 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.factory-bootstrap-433 .panel-body{padding:15px}.factory-bootstrap-433 .panel-body:after,.factory-bootstrap-433 .panel-body:before{display:table;content:" "}.factory-bootstrap-433 .panel-body:after{clear:both}.factory-bootstrap-433 .panel>.list-group{margin-bottom:0}.factory-bootstrap-433 .panel>.list-group .list-group-item{border-width:1px 0}.factory-bootstrap-433 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-433 .panel>.list-group .list-group-item:last-child{border-bottom:0}.factory-bootstrap-433 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.factory-bootstrap-433 .panel>.table,.factory-bootstrap-433 .panel>.table-responsive>.table{margin-bottom:0}.factory-bootstrap-433 .panel>.panel-body+.table,.factory-bootstrap-433 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.factory-bootstrap-433 .panel>.table>tbody:first-child td,.factory-bootstrap-433 .panel>.table>tbody:first-child th{border-top:0}.factory-bootstrap-433 .panel>.table-bordered,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered{border:0}.factory-bootstrap-433 .panel>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-433 .panel>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-433 .panel>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-433 .panel>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-433 .panel>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-433 .panel>.table-bordered>thead>tr>th:first-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.factory-bootstrap-433 .panel>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-433 .panel>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-433 .panel>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-433 .panel>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-433 .panel>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-433 .panel>.table-bordered>thead>tr>th:last-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.factory-bootstrap-433 .panel>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-433 .panel>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-433 .panel>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-433 .panel>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-433 .panel>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-433 .panel>.table-bordered>thead>tr:last-child>th,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-433 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}.factory-bootstrap-433 .panel>.table-responsive{margin-bottom:0;border:0}.factory-bootstrap-433 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.factory-bootstrap-433 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.factory-bootstrap-433 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.factory-bootstrap-433 .panel-title>a{color:inherit}.factory-bootstrap-433 .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-433 .panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.factory-bootstrap-433 .panel-group .panel+.panel{margin-top:5px}.factory-bootstrap-433 .panel-group .panel-heading{border-bottom:0}.factory-bootstrap-433 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.factory-bootstrap-433 .panel-group .panel-footer{border-top:0}.factory-bootstrap-433 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.factory-bootstrap-433 .panel-default{border-color:#ddd}.factory-bootstrap-433 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.factory-bootstrap-433 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.factory-bootstrap-433 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.factory-bootstrap-433 .panel-primary{border-color:#428bca}.factory-bootstrap-433 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-433 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.factory-bootstrap-433 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.factory-bootstrap-433 .panel-success{border-color:#d6e9c6}.factory-bootstrap-433 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.factory-bootstrap-433 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.factory-bootstrap-433 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.factory-bootstrap-433 .panel-warning{border-color:#faebcc}.factory-bootstrap-433 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.factory-bootstrap-433 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.factory-bootstrap-433 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.factory-bootstrap-433 .panel-danger{border-color:#ebccd1}.factory-bootstrap-433 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.factory-bootstrap-433 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.factory-bootstrap-433 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.factory-bootstrap-433 .panel-info{border-color:#bce8f1}.factory-bootstrap-433 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.factory-bootstrap-433 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.factory-bootstrap-433 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.factory-bootstrap-433 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.factory-bootstrap-433 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.factory-bootstrap-433 .well-lg{padding:24px;border-radius:6px}.factory-bootstrap-433 .well-sm{padding:9px;border-radius:3px}.factory-bootstrap-433 .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-433 .alert .close{position:relative;top:-8px;right:-7px}.factory-bootstrap-433 .close:focus,.factory-bootstrap-433 .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-433 button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.factory-bootstrap-433 .modal-open{overflow:hidden}.factory-bootstrap-433 .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-433 .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-433 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.factory-bootstrap-433 .modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.factory-bootstrap-433 .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-433 .modal-backdrop,.factory-bootstrap-433-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.factory-bootstrap-433 .modal-backdrop.fade,.factory-bootstrap-433-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.factory-bootstrap-433 .modal-backdrop.in,.factory-bootstrap-433-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-433 .modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.factory-bootstrap-433 .modal-header .close{margin-top:-2px}.factory-bootstrap-433 .modal-title{margin:0;line-height:1.428571429}.factory-bootstrap-433 .modal-body{position:relative;padding:20px;max-height:none}.factory-bootstrap-433 .modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.factory-bootstrap-433 .modal-footer:after,.factory-bootstrap-433 .modal-footer:before{display:table;content:" "}.factory-bootstrap-433 .modal-footer:after{clear:both}.factory-bootstrap-433 .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.factory-bootstrap-433 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.factory-bootstrap-433 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.factory-bootstrap-433 .modal-dialog{width:600px;margin:30px auto}.factory-bootstrap-433 .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-433 .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-433 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-433 .tooltip.top{padding:5px 0;margin-top:-3px}.factory-bootstrap-433 .tooltip.right{padding:0 5px;margin-left:3px}.factory-bootstrap-433 .tooltip.bottom{padding:5px 0;margin-top:3px}.factory-bootstrap-433 .tooltip.left{padding:0 5px;margin-left:-3px}.factory-bootstrap-433 .tooltip-inner{width:400px;padding:15px 20px;color:#fff;text-align:left;text-decoration:none;background-color:#673ab7;border-radius:3px}.factory-bootstrap-433 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-433 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-433 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-433 .tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-433 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#673ab7;border-width:5px 5px 5px 0}.factory-bootstrap-433 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#673ab7;border-width:5px 0 5px 5px}.factory-bootstrap-433 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-433 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-433 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-433 .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-433 .popover.top{margin-top:-10px}.factory-bootstrap-433 .popover.right{margin-left:10px}.factory-bootstrap-433 .popover.bottom{margin-top:10px}.factory-bootstrap-433 .popover.left{margin-left:-10px}.factory-bootstrap-433 .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-433 .popover-content{padding:9px 14px}.factory-bootstrap-433 .popover .arrow,.factory-bootstrap-433 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-433 .popover .arrow{border-width:11px}.factory-bootstrap-433 .popover .arrow:after{border-width:10px;content:""}.factory-bootstrap-433 .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-433 .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.factory-bootstrap-433 .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-433 .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.factory-bootstrap-433 .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-433 .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.factory-bootstrap-433 .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-433 .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.factory-bootstrap-433 .carousel{position:relative}.factory-bootstrap-433 .carousel-inner{position:relative;width:100%;overflow:hidden}.factory-bootstrap-433 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.factory-bootstrap-433 .carousel-inner>.item>a>img,.factory-bootstrap-433 .carousel-inner>.item>img{display:block;height:auto;max-width:100%;line-height:1}.factory-bootstrap-433 .carousel-inner>.active,.factory-bootstrap-433 .carousel-inner>.next,.factory-bootstrap-433 .carousel-inner>.prev{display:block}.factory-bootstrap-433 .carousel-inner>.active{left:0}.factory-bootstrap-433 .carousel-inner>.next,.factory-bootstrap-433 .carousel-inner>.prev{position:absolute;top:0;width:100%}.factory-bootstrap-433 .carousel-inner>.next{left:100%}.factory-bootstrap-433 .carousel-inner>.prev{left:-100%}.factory-bootstrap-433 .carousel-inner>.next.left,.factory-bootstrap-433 .carousel-inner>.prev.right{left:0}.factory-bootstrap-433 .carousel-inner>.active.left{left:-100%}.factory-bootstrap-433 .carousel-inner>.active.right{left:100%}.factory-bootstrap-433 .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-433 .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-433 .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-433 .carousel-control:focus,.factory-bootstrap-433 .carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-433 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-433 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-433 .carousel-control .icon-next,.factory-bootstrap-433 .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.factory-bootstrap-433 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-433 .carousel-control .icon-prev{left:50%}.factory-bootstrap-433 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-433 .carousel-control .icon-next{right:50%}.factory-bootstrap-433 .carousel-control .icon-next,.factory-bootstrap-433 .carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.factory-bootstrap-433 .carousel-control .icon-prev:before{content:'\2039'}.factory-bootstrap-433 .carousel-control .icon-next:before{content:'\203a'}.factory-bootstrap-433 .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-433 .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-433 .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.factory-bootstrap-433 .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-433 .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-433 .clearfix:after,.factory-bootstrap-433 .clearfix:before{display:table;content:" "}.factory-bootstrap-433 .clearfix:after{clear:both}.factory-bootstrap-433 .center-block{display:block;margin-right:auto;margin-left:auto}.factory-bootstrap-433 .pull-right{float:right!important}.factory-bootstrap-433 .pull-left{float:left!important}.factory-bootstrap-433 .hide{display:none!important}.factory-bootstrap-433 .show{display:block!important}.factory-bootstrap-433 .invisible{visibility:hidden}.factory-bootstrap-433 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.factory-bootstrap-433 .hidden{display:none!important;visibility:hidden!important}.factory-bootstrap-433 .affix{position:fixed}@-ms-viewport{width:device-width}.factory-bootstrap-433 .visible-lg,.factory-bootstrap-433 .visible-md,.factory-bootstrap-433 .visible-sm,.factory-bootstrap-433 .visible-xs,.factory-bootstrap-433 td.visible-lg,.factory-bootstrap-433 td.visible-md,.factory-bootstrap-433 td.visible-sm,.factory-bootstrap-433 td.visible-xs,.factory-bootstrap-433 th.visible-lg,.factory-bootstrap-433 th.visible-md,.factory-bootstrap-433 th.visible-sm,.factory-bootstrap-433 th.visible-xs,.factory-bootstrap-433 tr.visible-lg,.factory-bootstrap-433 tr.visible-md,.factory-bootstrap-433 tr.visible-sm,.factory-bootstrap-433 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-433 .hidden-xs{display:block!important}.factory-bootstrap-433 table.hidden-xs{display:table}.factory-bootstrap-433 tr.hidden-xs{display:table-row!important}.factory-bootstrap-433 td.hidden-xs,.factory-bootstrap-433 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-433 .hidden-sm{display:block!important}.factory-bootstrap-433 table.hidden-sm{display:table}.factory-bootstrap-433 tr.hidden-sm{display:table-row!important}.factory-bootstrap-433 td.hidden-sm,.factory-bootstrap-433 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-433 .hidden-md{display:block!important}.factory-bootstrap-433 table.hidden-md{display:table}.factory-bootstrap-433 tr.hidden-md{display:table-row!important}.factory-bootstrap-433 td.hidden-md,.factory-bootstrap-433 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-433 .hidden-lg{display:block!important}.factory-bootstrap-433 table.hidden-lg{display:table}.factory-bootstrap-433 tr.hidden-lg{display:table-row!important}.factory-bootstrap-433 td.hidden-lg,.factory-bootstrap-433 th.hidden-lg{display:table-cell!important}@media (max-width:767px){.factory-bootstrap-433 .hidden-lg.hidden-xs,.factory-bootstrap-433 td.hidden-lg.hidden-xs,.factory-bootstrap-433 th.hidden-lg.hidden-xs,.factory-bootstrap-433 tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.factory-bootstrap-433 .hidden-lg.hidden-sm,.factory-bootstrap-433 td.hidden-lg.hidden-sm,.factory-bootstrap-433 th.hidden-lg.hidden-sm,.factory-bootstrap-433 tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.factory-bootstrap-433 .hidden-lg.hidden-md,.factory-bootstrap-433 td.hidden-lg.hidden-md,.factory-bootstrap-433 th.hidden-lg.hidden-md,.factory-bootstrap-433 tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.factory-bootstrap-433 .hidden-lg,.factory-bootstrap-433 td.hidden-lg,.factory-bootstrap-433 th.hidden-lg,.factory-bootstrap-433 tr.hidden-lg{display:none!important}}.factory-bootstrap-433 .visible-print,.factory-bootstrap-433 td.visible-print,.factory-bootstrap-433 th.visible-print,.factory-bootstrap-433 tr.visible-print{display:none!important}@media print{.factory-bootstrap-433 .visible-print{display:block!important}.factory-bootstrap-433 table.visible-print{display:table}.factory-bootstrap-433 tr.visible-print{display:table-row!important}.factory-bootstrap-433 td.visible-print,.factory-bootstrap-433 th.visible-print{display:table-cell!important}.factory-bootstrap-433 .hidden-print,.factory-bootstrap-433 td.hidden-print,.factory-bootstrap-433 th.hidden-print,.factory-bootstrap-433 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-433 .btn-danger,.factory-bootstrap-433 .btn-default,.factory-bootstrap-433 .btn-info,.factory-bootstrap-433 .btn-primary,.factory-bootstrap-433 .btn-success,.factory-bootstrap-433 .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-433 .btn-danger.active,.factory-bootstrap-433 .btn-danger:active,.factory-bootstrap-433 .btn-default.active,.factory-bootstrap-433 .btn-default:active,.factory-bootstrap-433 .btn-info.active,.factory-bootstrap-433 .btn-info:active,.factory-bootstrap-433 .btn-primary.active,.factory-bootstrap-433 .btn-primary:active,.factory-bootstrap-433 .btn-success.active,.factory-bootstrap-433 .btn-success:active,.factory-bootstrap-433 .btn-warning.active,.factory-bootstrap-433 .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-433 .btn.active,.factory-bootstrap-433 .btn:active{background-image:none}.factory-bootstrap-433 .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-433 .btn-default.active,.factory-bootstrap-433 .btn-default:active{background-color:#fff;border-color:#dbdbdb}.factory-bootstrap-433 .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-433 .btn-gold:focus,.factory-bootstrap-433 .btn-gold:hover{background:#fef0a1}.factory-bootstrap-433 .btn-gold.active,.factory-bootstrap-433 .btn-gold:active{background:#fef0a1;-webkit-box-shadow:inset 0 3px 8px 0 #f8ba36;box-shadow:inset 0 3px 8px 0 #f8ba36}.factory-bootstrap-433 .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-433 .btn-primary:focus,.factory-bootstrap-433 .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-433 .btn-primary.active,.factory-bootstrap-433 .btn-primary:active{background-color:#2d6ca2;border-color:#2b669a}.factory-bootstrap-433 .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-433 .btn-success:focus,.factory-bootstrap-433 .btn-success:hover{background-color:#419641;background-position:0 -15px}.factory-bootstrap-433 .btn-success.active,.factory-bootstrap-433 .btn-success:active{background-color:#419641;border-color:#3e8f3e}.factory-bootstrap-433 .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-433 .btn-warning:focus,.factory-bootstrap-433 .btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.factory-bootstrap-433 .btn-warning.active,.factory-bootstrap-433 .btn-warning:active{background-color:#eb9316;border-color:#e38d13}.factory-bootstrap-433 .btn-danger{color:#fff;background:#d9534f;border-color:#d43f3a}.factory-bootstrap-433 .btn-danger.active,.factory-bootstrap-433 .btn-danger:active,.factory-bootstrap-433 .btn-danger:focus,.factory-bootstrap-433 .btn-danger:hover,.factory-bootstrap-433 .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.factory-bootstrap-433 .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-433 .btn-info:focus,.factory-bootstrap-433 .btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.factory-bootstrap-433 .btn-info.active,.factory-bootstrap-433 .btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.factory-bootstrap-433 .img-thumbnail,.factory-bootstrap-433 .thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-433 .dropdown-menu>li>a:focus,.factory-bootstrap-433 .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-433 .dropdown-menu>.active>a,.factory-bootstrap-433 .dropdown-menu>.active>a:focus,.factory-bootstrap-433 .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-433 .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-433 .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-433 .navbar-brand,.factory-bootstrap-433 .navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.factory-bootstrap-433 .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-433 .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-433 .navbar-inverse .navbar-brand,.factory-bootstrap-433 .navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-433 .navbar-fixed-bottom,.factory-bootstrap-433 .navbar-fixed-top,.factory-bootstrap-433 .navbar-static-top{border-radius:0}.factory-bootstrap-433 .alert{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-433 .alert .actions{padding-top:10px}.factory-bootstrap-433 .alert-success{color:#3c763d;background-color:#dff0d8;border-bottom:2px solid #c8e5bc}.factory-bootstrap-433 .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-433 .alert{text-shadow:none;box-shadow:none;margin:0;margin-top:10px;margin-bottom:10px;padding:10px}.factory-bootstrap-433 .alert-normal,.factory-bootstrap-433 .alert-warning{background:#fcf8e3;color:#8a6d3b;border:1px solid #b8823b}.factory-bootstrap-433 .alert-danger{background:#cf4944;color:#fff;border-bottom:2px solid #b23e3a}.factory-bootstrap-433 .alert-danger a:not(.btn),.factory-bootstrap-433 .alert-error a:not(.btn){color:#fff}.factory-bootstrap-433 .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-433 .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-433 .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-433 .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-433 .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-433 .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-433 .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-433 .list-group-item.active,.factory-bootstrap-433 .list-group-item.active:focus,.factory-bootstrap-433 .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-433 .panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-433 .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-433 .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-433 .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-433 .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-433 .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-433 .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-433 .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-433 .factory-after{margin-left:7px;display:inline-block}.factory-bootstrap-433 .factory-hidden{display:none}.factory-bootstrap-433 .factory-ajax-loader{width:25px;height:25px;background:url(../assets/images/loader-sm-tr.gif)}.factory-control-error{background-color:rgba(0,0,0,.8);white-space:normal;z-index:10;font-weight:400;line-height:150%;border-radius:4px;color:#fff;font-size:13px;margin-top:5px;padding:4px 10px 3px;max-width:500px;display:inline-block}.factory-control-error i{margin:0 7px 0 1px}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 article,.factory-bootstrap-439 aside,.factory-bootstrap-439 details,.factory-bootstrap-439 figcaption,.factory-bootstrap-439 figure,.factory-bootstrap-439 footer,.factory-bootstrap-439 header,.factory-bootstrap-439 hgroup,.factory-bootstrap-439 main,.factory-bootstrap-439 nav,.factory-bootstrap-439 section,.factory-bootstrap-439 summary{display:block}.factory-bootstrap-439 audio,.factory-bootstrap-439 canvas,.factory-bootstrap-439 video{display:inline-block}.factory-bootstrap-439 audio:not([controls]){display:none;height:0}.factory-bootstrap-439 [hidden],.factory-bootstrap-439 template{display:none}.factory-bootstrap-439 body{margin:0}.factory-bootstrap-439 a{background:0 0}.factory-bootstrap-439 a:focus{outline:thin dotted}.factory-bootstrap-439 a:active,.factory-bootstrap-439 a:hover{outline:0}.factory-bootstrap-439 h1{margin:.67em 0}.factory-bootstrap-439 b,.factory-bootstrap-439 strong{font-weight:700}.factory-bootstrap-439 dfn{font-style:italic}.factory-bootstrap-439 hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-439 mark{color:#000;background:#ff0}.factory-bootstrap-439 code,.factory-bootstrap-439 kbd,.factory-bootstrap-439 pre,.factory-bootstrap-439 samp{font-size:1em}.factory-bootstrap-439 pre{white-space:pre-wrap}.factory-bootstrap-439 q{quotes:"\201C" "\201D" "\2018" "\2019"}.factory-bootstrap-439 sub,.factory-bootstrap-439 sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}.factory-bootstrap-439 sup{top:-.5em}.factory-bootstrap-439 sub{bottom:-.25em}.factory-bootstrap-439 img{border:0}.factory-bootstrap-439 svg:not(:root){overflow:hidden}.factory-bootstrap-439 figure{margin:0}.factory-bootstrap-439 button,.factory-bootstrap-439 input,.factory-bootstrap-439 select,.factory-bootstrap-439 textarea{margin:0}.factory-bootstrap-439 button,.factory-bootstrap-439 select{text-transform:none}.factory-bootstrap-439 select{padding-right:4px!important}.factory-bootstrap-439 button,.factory-bootstrap-439 input[type=reset],.factory-bootstrap-439 input[type=submit],html .factory-bootstrap-439 input[type=button]{cursor:pointer;-webkit-appearance:button}.factory-bootstrap-439 button[disabled],html .factory-bootstrap-439 input[disabled]{cursor:default}.factory-bootstrap-439 input[type=checkbox],.factory-bootstrap-439 input[type=radio]{padding:0;box-sizing:border-box}.factory-bootstrap-439 input[type=search]{-webkit-appearance:textfield}.factory-bootstrap-439 input[type=search]::-webkit-search-cancel-button,.factory-bootstrap-439 input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.factory-bootstrap-439 button::-moz-focus-inner,.factory-bootstrap-439 input::-moz-focus-inner{padding:0;border:0}.factory-bootstrap-439 textarea{overflow:auto;vertical-align:top}.factory-bootstrap-439 table{border-collapse:collapse;border-spacing:0}@media print{.factory-bootstrap-439 *{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}.factory-bootstrap-439 a,.factory-bootstrap-439 a:visited{text-decoration:underline}.factory-bootstrap-439 a[href]:after{content:" (" attr(href) ")"}.factory-bootstrap-439 abbr[title]:after{content:" (" attr(title) ")"}.factory-bootstrap-439 a[href^="javascript:"]:after,.factory-bootstrap-439 a[href^="#"]:after{content:""}.factory-bootstrap-439 blockquote,.factory-bootstrap-439 pre{border:1px solid #999;page-break-inside:avoid}.factory-bootstrap-439 thead{display:table-header-group}.factory-bootstrap-439 img,.factory-bootstrap-439 tr{page-break-inside:avoid}.factory-bootstrap-439 img{max-width:100%!important}@page{margin:2cm .5cm}.factory-bootstrap-439 h2,.factory-bootstrap-439 h3,.factory-bootstrap-439 p{orphans:3;widows:3}.factory-bootstrap-439 h2,.factory-bootstrap-439 h3{page-break-after:avoid}.factory-bootstrap-439 select{background:#fff!important}.factory-bootstrap-439 .navbar{display:none}.factory-bootstrap-439 .table td,.factory-bootstrap-439 .table th{background-color:#fff!important}.factory-bootstrap-439 .btn>.caret,.factory-bootstrap-439 .dropup>.btn>.caret{border-top-color:#000!important}.factory-bootstrap-439 .label{border:1px solid #000}.factory-bootstrap-439 .table{border-collapse:collapse!important}.factory-bootstrap-439 .table-bordered td,.factory-bootstrap-439 .table-bordered th{border:1px solid #ddd!important}}.factory-bootstrap-439 *,.factory-bootstrap-439 :after,.factory-bootstrap-439 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html .factory-bootstrap-439{-webkit-tap-highlight-color:rgba(0,0,0,0)}.factory-bootstrap-439 body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}.factory-bootstrap-439 button,.factory-bootstrap-439 input,.factory-bootstrap-439 select,.factory-bootstrap-439 textarea{font-family:inherit;font-size:inherit;line-height:inherit}.factory-bootstrap-439 img{vertical-align:middle}.factory-bootstrap-439 .img-responsive{display:block;height:auto;max-width:100%}.factory-bootstrap-439 .img-rounded{border-radius:6px}.factory-bootstrap-439 .img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.factory-bootstrap-439 .img-circle{border-radius:50%}.factory-bootstrap-439 hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.factory-bootstrap-439 .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.factory-bootstrap-439 .h1,.factory-bootstrap-439 .h2,.factory-bootstrap-439 .h3,.factory-bootstrap-439 .h4,.factory-bootstrap-439 .h5,.factory-bootstrap-439 .h6,.factory-bootstrap-439 h1,.factory-bootstrap-439 h2,.factory-bootstrap-439 h3,.factory-bootstrap-439 h4,.factory-bootstrap-439 h5,.factory-bootstrap-439 h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}.factory-bootstrap-439 .h1 .small,.factory-bootstrap-439 .h1 small,.factory-bootstrap-439 .h2 .small,.factory-bootstrap-439 .h2 small,.factory-bootstrap-439 .h3 .small,.factory-bootstrap-439 .h3 small,.factory-bootstrap-439 .h4 .small,.factory-bootstrap-439 .h4 small,.factory-bootstrap-439 .h5 .small,.factory-bootstrap-439 .h5 small,.factory-bootstrap-439 .h6 .small,.factory-bootstrap-439 .h6 small,.factory-bootstrap-439 h1 .small,.factory-bootstrap-439 h1 small,.factory-bootstrap-439 h2 .small,.factory-bootstrap-439 h2 small,.factory-bootstrap-439 h3 .small,.factory-bootstrap-439 h3 small,.factory-bootstrap-439 h4 .small,.factory-bootstrap-439 h4 small,.factory-bootstrap-439 h5 .small,.factory-bootstrap-439 h5 small,.factory-bootstrap-439 h6 .small,.factory-bootstrap-439 h6 small{font-weight:400;line-height:1;color:#999}.factory-bootstrap-439 h1,.factory-bootstrap-439 h2,.factory-bootstrap-439 h3{margin-top:20px;margin-bottom:10px}.factory-bootstrap-439 h1 .small,.factory-bootstrap-439 h1 small,.factory-bootstrap-439 h2 .small,.factory-bootstrap-439 h2 small,.factory-bootstrap-439 h3 .small,.factory-bootstrap-439 h3 small{font-size:65%}.factory-bootstrap-439 h4,.factory-bootstrap-439 h5,.factory-bootstrap-439 h6{margin-top:10px;margin-bottom:10px}.factory-bootstrap-439 h4 .small,.factory-bootstrap-439 h4 small,.factory-bootstrap-439 h5 .small,.factory-bootstrap-439 h5 small,.factory-bootstrap-439 h6 .small,.factory-bootstrap-439 h6 small{font-size:75%}.factory-bootstrap-439 .h1,.factory-bootstrap-439 h1{font-size:36px}.factory-bootstrap-439 .h2,.factory-bootstrap-439 h2{font-size:30px}.factory-bootstrap-439 .h3,.factory-bootstrap-439 h3{font-size:24px}.factory-bootstrap-439 .h4,.factory-bootstrap-439 h4{font-size:18px}.factory-bootstrap-439 .h5,.factory-bootstrap-439 h5{font-size:14px}.factory-bootstrap-439 .h6,.factory-bootstrap-439 h6{font-size:12px}.factory-bootstrap-439 p{margin:0 0 10px}.factory-bootstrap-439 .lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.factory-bootstrap-439 .small,.factory-bootstrap-439 small{font-size:85%}.factory-bootstrap-439 cite{font-style:normal}.factory-bootstrap-439 .text-muted{color:#999}.factory-bootstrap-439 .text-primary{color:#428bca}.factory-bootstrap-439 .text-primary:hover{color:#3071a9}.factory-bootstrap-439 .text-warning{color:#8a6d3b}.factory-bootstrap-439 .text-warning:hover{color:#66512c}.factory-bootstrap-439 .text-danger{color:#a94442}.factory-bootstrap-439 .text-danger:hover{color:#843534}.factory-bootstrap-439 .text-success{color:#3c763d}.factory-bootstrap-439 .text-success:hover{color:#2b542c}.factory-bootstrap-439 .text-info{color:#31708f}.factory-bootstrap-439 .text-info:hover{color:#245269}.factory-bootstrap-439 .text-left{text-align:left}.factory-bootstrap-439 .text-right{text-align:right}.factory-bootstrap-439 .text-center{text-align:center}.factory-bootstrap-439 .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.factory-bootstrap-439 ol,.factory-bootstrap-439 ul{margin-top:0;margin-bottom:10px}.factory-bootstrap-439 ol ol,.factory-bootstrap-439 ol ul,.factory-bootstrap-439 ul ol,.factory-bootstrap-439 ul ul{margin-bottom:0}.factory-bootstrap-439 .list-inline,.factory-bootstrap-439 .list-unstyled{padding-left:0;list-style:none}.factory-bootstrap-439 .list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.factory-bootstrap-439 .list-inline>li:first-child{padding-left:0}.factory-bootstrap-439 dl{margin-top:0;margin-bottom:20px}.factory-bootstrap-439 dd,.factory-bootstrap-439 dt{line-height:1.428571429}.factory-bootstrap-439 dt{font-weight:700}.factory-bootstrap-439 dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:after,.dl-horizontal dd:before{display:table;content:" "}.dl-horizontal dd:after{clear:both}}.factory-bootstrap-439 abbr[data-original-title],.factory-bootstrap-439 abbr[title]{cursor:help;border-bottom:1px dotted #999}.factory-bootstrap-439 .initialism{font-size:90%;text-transform:uppercase}.factory-bootstrap-439 blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}.factory-bootstrap-439 blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}.factory-bootstrap-439 blockquote p:last-child{margin-bottom:0}.factory-bootstrap-439 blockquote .small,.factory-bootstrap-439 blockquote small{display:block;line-height:1.428571429;color:#999}.factory-bootstrap-439 blockquote .small:before,.factory-bootstrap-439 blockquote small:before{content:'\2014 \00A0'}.factory-bootstrap-439 blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}.factory-bootstrap-439 blockquote.pull-right .small,.factory-bootstrap-439 blockquote.pull-right p,.factory-bootstrap-439 blockquote.pull-right small{text-align:right}.factory-bootstrap-439 blockquote.pull-right .small:before,.factory-bootstrap-439 blockquote.pull-right small:before{content:''}.factory-bootstrap-439 blockquote.pull-right .small:after,.factory-bootstrap-439 blockquote.pull-right small:after{content:'\00A0 \2014'}.factory-bootstrap-439 blockquote:after,.factory-bootstrap-439 blockquote:before{content:""}.factory-bootstrap-439 address{margin-bottom:20px;font-style:normal;line-height:1.428571429}.factory-bootstrap-439 code,.factory-bootstrap-439 kbd,.factory-bootstrap-439 pre,.factory-bootstrap-439 samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.factory-bootstrap-439 code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}.factory-bootstrap-439 pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.factory-bootstrap-439 pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.factory-bootstrap-439 .pre-scrollable{max-height:340px;overflow-y:scroll}.factory-bootstrap-439 .container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.factory-bootstrap-439 .container:after,.factory-bootstrap-439 .container:before{display:table;content:" "}.factory-bootstrap-439 .container:after{clear:both}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.factory-bootstrap-439 .row{margin-right:-15px;margin-left:-15px}.factory-bootstrap-439 .row:after,.factory-bootstrap-439 .row:before{display:table;content:" "}.factory-bootstrap-439 .row:after{clear:both}.factory-bootstrap-439 .col-lg-1,.factory-bootstrap-439 .col-lg-10,.factory-bootstrap-439 .col-lg-11,.factory-bootstrap-439 .col-lg-12,.factory-bootstrap-439 .col-lg-2,.factory-bootstrap-439 .col-lg-3,.factory-bootstrap-439 .col-lg-4,.factory-bootstrap-439 .col-lg-5,.factory-bootstrap-439 .col-lg-6,.factory-bootstrap-439 .col-lg-7,.factory-bootstrap-439 .col-lg-8,.factory-bootstrap-439 .col-lg-9,.factory-bootstrap-439 .col-md-1,.factory-bootstrap-439 .col-md-10,.factory-bootstrap-439 .col-md-11,.factory-bootstrap-439 .col-md-12,.factory-bootstrap-439 .col-md-2,.factory-bootstrap-439 .col-md-3,.factory-bootstrap-439 .col-md-4,.factory-bootstrap-439 .col-md-5,.factory-bootstrap-439 .col-md-6,.factory-bootstrap-439 .col-md-7,.factory-bootstrap-439 .col-md-8,.factory-bootstrap-439 .col-md-9,.factory-bootstrap-439 .col-sm-1,.factory-bootstrap-439 .col-sm-10,.factory-bootstrap-439 .col-sm-11,.factory-bootstrap-439 .col-sm-12,.factory-bootstrap-439 .col-sm-2,.factory-bootstrap-439 .col-sm-3,.factory-bootstrap-439 .col-sm-4,.factory-bootstrap-439 .col-sm-5,.factory-bootstrap-439 .col-sm-6,.factory-bootstrap-439 .col-sm-7,.factory-bootstrap-439 .col-sm-8,.factory-bootstrap-439 .col-sm-9,.factory-bootstrap-439 .col-xs-1,.factory-bootstrap-439 .col-xs-10,.factory-bootstrap-439 .col-xs-11,.factory-bootstrap-439 .col-xs-12,.factory-bootstrap-439 .col-xs-2,.factory-bootstrap-439 .col-xs-3,.factory-bootstrap-439 .col-xs-4,.factory-bootstrap-439 .col-xs-5,.factory-bootstrap-439 .col-xs-6,.factory-bootstrap-439 .col-xs-7,.factory-bootstrap-439 .col-xs-8,.factory-bootstrap-439 .col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.factory-bootstrap-439 .col-xs-1,.factory-bootstrap-439 .col-xs-10,.factory-bootstrap-439 .col-xs-11,.factory-bootstrap-439 .col-xs-12,.factory-bootstrap-439 .col-xs-2,.factory-bootstrap-439 .col-xs-3,.factory-bootstrap-439 .col-xs-4,.factory-bootstrap-439 .col-xs-5,.factory-bootstrap-439 .col-xs-6,.factory-bootstrap-439 .col-xs-7,.factory-bootstrap-439 .col-xs-8,.factory-bootstrap-439 .col-xs-9{float:left}.factory-bootstrap-439 .col-xs-12{width:100%}.factory-bootstrap-439 .col-xs-11{width:91.66666666666666%}.factory-bootstrap-439 .col-xs-10{width:83.33333333333334%}.factory-bootstrap-439 .col-xs-9{width:75%}.factory-bootstrap-439 .col-xs-8{width:66.66666666666666%}.factory-bootstrap-439 .col-xs-7{width:58.333333333333336%}.factory-bootstrap-439 .col-xs-6{width:50%}.factory-bootstrap-439 .col-xs-5{width:41.66666666666667%}.factory-bootstrap-439 .col-xs-4{width:33.33333333333333%}.factory-bootstrap-439 .col-xs-3{width:25%}.factory-bootstrap-439 .col-xs-2{width:16.666666666666664%}.factory-bootstrap-439 .col-xs-1{width:8.333333333333332%}.factory-bootstrap-439 .col-xs-pull-12{right:100%}.factory-bootstrap-439 .col-xs-pull-11{right:91.66666666666666%}.factory-bootstrap-439 .col-xs-pull-10{right:83.33333333333334%}.factory-bootstrap-439 .col-xs-pull-9{right:75%}.factory-bootstrap-439 .col-xs-pull-8{right:66.66666666666666%}.factory-bootstrap-439 .col-xs-pull-7{right:58.333333333333336%}.factory-bootstrap-439 .col-xs-pull-6{right:50%}.factory-bootstrap-439 .col-xs-pull-5{right:41.66666666666667%}.factory-bootstrap-439 .col-xs-pull-4{right:33.33333333333333%}.factory-bootstrap-439 .col-xs-pull-3{right:25%}.factory-bootstrap-439 .col-xs-pull-2{right:16.666666666666664%}.factory-bootstrap-439 .col-xs-pull-1{right:8.333333333333332%}.factory-bootstrap-439 .col-xs-pull-0{right:0}.factory-bootstrap-439 .col-xs-push-12{left:100%}.factory-bootstrap-439 .col-xs-push-11{left:91.66666666666666%}.factory-bootstrap-439 .col-xs-push-10{left:83.33333333333334%}.factory-bootstrap-439 .col-xs-push-9{left:75%}.factory-bootstrap-439 .col-xs-push-8{left:66.66666666666666%}.factory-bootstrap-439 .col-xs-push-7{left:58.333333333333336%}.factory-bootstrap-439 .col-xs-push-6{left:50%}.factory-bootstrap-439 .col-xs-push-5{left:41.66666666666667%}.factory-bootstrap-439 .col-xs-push-4{left:33.33333333333333%}.factory-bootstrap-439 .col-xs-push-3{left:25%}.factory-bootstrap-439 .col-xs-push-2{left:16.666666666666664%}.factory-bootstrap-439 .col-xs-push-1{left:8.333333333333332%}.factory-bootstrap-439 .col-xs-push-0{left:0}.factory-bootstrap-439 .col-xs-offset-12{margin-left:100%}.factory-bootstrap-439 .col-xs-offset-11{margin-left:91.66666666666666%}.factory-bootstrap-439 .col-xs-offset-10{margin-left:83.33333333333334%}.factory-bootstrap-439 .col-xs-offset-9{margin-left:75%}.factory-bootstrap-439 .col-xs-offset-8{margin-left:66.66666666666666%}.factory-bootstrap-439 .col-xs-offset-7{margin-left:58.333333333333336%}.factory-bootstrap-439 .col-xs-offset-6{margin-left:50%}.factory-bootstrap-439 .col-xs-offset-5{margin-left:41.66666666666667%}.factory-bootstrap-439 .col-xs-offset-4{margin-left:33.33333333333333%}.factory-bootstrap-439 .col-xs-offset-3{margin-left:25%}.factory-bootstrap-439 .col-xs-offset-2{margin-left:16.666666666666664%}.factory-bootstrap-439 .col-xs-offset-1{margin-left:8.333333333333332%}.factory-bootstrap-439 .col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}.factory-bootstrap-439 table{max-width:100%;background-color:transparent}.factory-bootstrap-439 th{text-align:left}.factory-bootstrap-439 .table{width:100%;margin-bottom:20px}.factory-bootstrap-439 .table>tbody>tr>td,.factory-bootstrap-439 .table>tbody>tr>th,.factory-bootstrap-439 .table>tfoot>tr>td,.factory-bootstrap-439 .table>tfoot>tr>th,.factory-bootstrap-439 .table>thead>tr>td,.factory-bootstrap-439 .table>thead>tr>th{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.factory-bootstrap-439 .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.factory-bootstrap-439 .table>caption+thead>tr:first-child>td,.factory-bootstrap-439 .table>caption+thead>tr:first-child>th,.factory-bootstrap-439 .table>colgroup+thead>tr:first-child>td,.factory-bootstrap-439 .table>colgroup+thead>tr:first-child>th,.factory-bootstrap-439 .table>thead:first-child>tr:first-child>td,.factory-bootstrap-439 .table>thead:first-child>tr:first-child>th{border-top:0}.factory-bootstrap-439 .table>tbody+tbody{border-top:2px solid #ddd}.factory-bootstrap-439 .table .table{background-color:#fff}.factory-bootstrap-439 .table-condensed>tbody>tr>td,.factory-bootstrap-439 .table-condensed>tbody>tr>th,.factory-bootstrap-439 .table-condensed>tfoot>tr>td,.factory-bootstrap-439 .table-condensed>tfoot>tr>th,.factory-bootstrap-439 .table-condensed>thead>tr>td,.factory-bootstrap-439 .table-condensed>thead>tr>th{padding:5px}.factory-bootstrap-439 .table-bordered,.factory-bootstrap-439 .table-bordered>tbody>tr>td,.factory-bootstrap-439 .table-bordered>tbody>tr>th,.factory-bootstrap-439 .table-bordered>tfoot>tr>td,.factory-bootstrap-439 .table-bordered>tfoot>tr>th,.factory-bootstrap-439 .table-bordered>thead>tr>td,.factory-bootstrap-439 .table-bordered>thead>tr>th{border:1px solid #ddd}.factory-bootstrap-439 .table-bordered>thead>tr>td,.factory-bootstrap-439 .table-bordered>thead>tr>th{border-bottom-width:2px}.factory-bootstrap-439 .table-striped>tbody>tr:nth-child(odd)>td,.factory-bootstrap-439 .table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.factory-bootstrap-439 .table-hover>tbody>tr:hover>td,.factory-bootstrap-439 .table-hover>tbody>tr:hover>th{background-color:#f5f5f5}.factory-bootstrap-439 table col[class*=col-]{position:static;display:table-column;float:none}.factory-bootstrap-439 table td[class*=col-],.factory-bootstrap-439 table th[class*=col-]{display:table-cell;float:none}.factory-bootstrap-439 .table>tbody>.active>td,.factory-bootstrap-439 .table>tbody>.active>th,.factory-bootstrap-439 .table>tbody>tr>.active,.factory-bootstrap-439 .table>tfoot>.active>td,.factory-bootstrap-439 .table>tfoot>.active>th,.factory-bootstrap-439 .table>tfoot>tr>.active,.factory-bootstrap-439 .table>thead>.active>td,.factory-bootstrap-439 .table>thead>.active>th,.factory-bootstrap-439 .table>thead>tr>.active{background-color:#f5f5f5}.factory-bootstrap-439 .table-hover>tbody>.active:hover>td,.factory-bootstrap-439 .table-hover>tbody>.active:hover>th,.factory-bootstrap-439 .table-hover>tbody>tr>.active:hover{background-color:#e8e8e8}.factory-bootstrap-439 .table>tbody>.success>td,.factory-bootstrap-439 .table>tbody>.success>th,.factory-bootstrap-439 .table>tbody>tr>.success,.factory-bootstrap-439 .table>tfoot>.success>td,.factory-bootstrap-439 .table>tfoot>.success>th,.factory-bootstrap-439 .table>tfoot>tr>.success,.factory-bootstrap-439 .table>thead>.success>td,.factory-bootstrap-439 .table>thead>.success>th,.factory-bootstrap-439 .table>thead>tr>.success{background-color:#dff0d8}.factory-bootstrap-439 .table-hover>tbody>.success:hover>td,.factory-bootstrap-439 .table-hover>tbody>.success:hover>th,.factory-bootstrap-439 .table-hover>tbody>tr>.success:hover{background-color:#d0e9c6}.factory-bootstrap-439 .table>tbody>.danger>td,.factory-bootstrap-439 .table>tbody>.danger>th,.factory-bootstrap-439 .table>tbody>tr>.danger,.factory-bootstrap-439 .table>tfoot>.danger>td,.factory-bootstrap-439 .table>tfoot>.danger>th,.factory-bootstrap-439 .table>tfoot>tr>.danger,.factory-bootstrap-439 .table>thead>.danger>td,.factory-bootstrap-439 .table>thead>.danger>th,.factory-bootstrap-439 .table>thead>tr>.danger{background-color:#f2dede}.factory-bootstrap-439 .table-hover>tbody>.danger:hover>td,.factory-bootstrap-439 .table-hover>tbody>.danger:hover>th,.factory-bootstrap-439 .table-hover>tbody>tr>.danger:hover{background-color:#ebcccc}.factory-bootstrap-439 .table>tbody>.warning>td,.factory-bootstrap-439 .table>tbody>.warning>th,.factory-bootstrap-439 .table>tbody>tr>.warning,.factory-bootstrap-439 .table>tfoot>.warning>td,.factory-bootstrap-439 .table>tfoot>.warning>th,.factory-bootstrap-439 .table>tfoot>tr>.warning,.factory-bootstrap-439 .table>thead>.warning>td,.factory-bootstrap-439 .table>thead>.warning>th,.factory-bootstrap-439 .table>thead>tr>.warning{background-color:#fcf8e3}.factory-bootstrap-439 .table-hover>tbody>.warning:hover>td,.factory-bootstrap-439 .table-hover>tbody>.warning:hover>th,.factory-bootstrap-439 .table-hover>tbody>tr>.warning:hover{background-color:#faf2cc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}.factory-bootstrap-439 fieldset{padding:0;margin:0;border:0}.factory-bootstrap-439 legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5;-moz-box-sizing:content-box;box-sizing:content-box}.factory-bootstrap-439 label{display:inline-block;margin-bottom:5px;font-weight:700}.factory-bootstrap-439 input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.factory-bootstrap-439 input[type=checkbox],.factory-bootstrap-439 input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}.factory-bootstrap-439 input[type=file]{display:block}.factory-bootstrap-439 select[multiple],.factory-bootstrap-439 select[size]{height:auto}.factory-bootstrap-439 select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}.factory-bootstrap-439 input[type=checkbox]:focus,.factory-bootstrap-439 input[type=file]:focus,.factory-bootstrap-439 input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-439 input[type=number]::-webkit-inner-spin-button,.factory-bootstrap-439 input[type=number]::-webkit-outer-spin-button{height:auto}.factory-bootstrap-439 output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.factory-bootstrap-439 .form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.factory-bootstrap-439 .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-439 .form-control:-moz-placeholder{color:#999}.factory-bootstrap-439 .form-control::-moz-placeholder{color:#999;opacity:1}.factory-bootstrap-439 .form-control:-ms-input-placeholder{color:#999}.factory-bootstrap-439 .form-control::-webkit-input-placeholder{color:#999}.factory-bootstrap-439 .form-control[disabled],.factory-bootstrap-439 .form-control[readonly],.factory-bootstrap-439 fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.factory-bootstrap-439 textarea.form-control{height:auto}.factory-bootstrap-439 .form-group{margin-bottom:15px}.factory-bootstrap-439 .checkbox,.factory-bootstrap-439 .radio{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.factory-bootstrap-439 .checkbox label,.factory-bootstrap-439 .radio label{display:inline;margin-bottom:0;font-weight:400;cursor:pointer}.factory-bootstrap-439 .checkbox input[type=checkbox],.factory-bootstrap-439 .checkbox-inline input[type=checkbox],.factory-bootstrap-439 .radio input[type=radio],.factory-bootstrap-439 .radio-inline input[type=radio]{float:left;margin-left:-20px}.factory-bootstrap-439 .checkbox+.checkbox,.factory-bootstrap-439 .radio+.radio{margin-top:-5px}.factory-bootstrap-439 .checkbox-inline,.factory-bootstrap-439 .radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.factory-bootstrap-439 .checkbox-inline+.checkbox-inline,.factory-bootstrap-439 .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.factory-bootstrap-439 .checkbox-inline[disabled],.factory-bootstrap-439 .checkbox[disabled],.factory-bootstrap-439 .radio-inline[disabled],.factory-bootstrap-439 .radio[disabled],.factory-bootstrap-439 fieldset[disabled] .checkbox,.factory-bootstrap-439 fieldset[disabled] .checkbox-inline,.factory-bootstrap-439 fieldset[disabled] .radio,.factory-bootstrap-439 fieldset[disabled] .radio-inline,.factory-bootstrap-439 fieldset[disabled] input[type=checkbox],.factory-bootstrap-439 fieldset[disabled] input[type=radio],.factory-bootstrap-439 input[type=checkbox][disabled],.factory-bootstrap-439 input[type=radio][disabled]{cursor:not-allowed}.factory-bootstrap-439 .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 select.input-sm{height:30px;line-height:30px}.factory-bootstrap-439 textarea.input-sm{height:auto}.factory-bootstrap-439 .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-439 select.input-lg{height:46px;line-height:46px}.factory-bootstrap-439 textarea.input-lg{height:auto}.factory-bootstrap-439 .has-warning .checkbox,.factory-bootstrap-439 .has-warning .checkbox-inline,.factory-bootstrap-439 .has-warning .control-label,.factory-bootstrap-439 .has-warning .help-block,.factory-bootstrap-439 .has-warning .radio,.factory-bootstrap-439 .has-warning .radio-inline{color:#8a6d3b}.factory-bootstrap-439 .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-439 .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.factory-bootstrap-439 .has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.factory-bootstrap-439 .has-error .checkbox,.factory-bootstrap-439 .has-error .checkbox-inline,.factory-bootstrap-439 .has-error .control-label,.factory-bootstrap-439 .has-error .help-block,.factory-bootstrap-439 .has-error .radio,.factory-bootstrap-439 .has-error .radio-inline{color:#a94442}.factory-bootstrap-439 .controls{display:block}.factory-bootstrap-439 .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-439 .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.factory-bootstrap-439 .has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.factory-bootstrap-439 .has-success .checkbox,.factory-bootstrap-439 .has-success .checkbox-inline,.factory-bootstrap-439 .has-success .control-label,.factory-bootstrap-439 .has-success .help-block,.factory-bootstrap-439 .has-success .radio,.factory-bootstrap-439 .has-success .radio-inline{color:#3c763d}.factory-bootstrap-439 .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-439 .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.factory-bootstrap-439 .has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.factory-bootstrap-439 .form-control-static{margin-bottom:0}.factory-bootstrap-439 .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373;font-weight:400}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .checkbox,.form-inline .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{float:none;margin-left:0}}.factory-bootstrap-439 .form-horizontal .checkbox,.factory-bootstrap-439 .form-horizontal .checkbox-inline,.factory-bootstrap-439 .form-horizontal .control-label,.factory-bootstrap-439 .form-horizontal .radio,.factory-bootstrap-439 .form-horizontal .radio-inline{position:relative;padding-top:7px;margin-top:0;margin-bottom:0}.factory-bootstrap-439 .form-horizontal .control-label{max-width:200px}.factory-bootstrap-439 .form-horizontal .checkbox,.factory-bootstrap-439 .form-horizontal .radio{min-height:27px}.factory-bootstrap-439 .form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.factory-bootstrap-439 .form-horizontal .form-group:after,.factory-bootstrap-439 .form-horizontal .form-group:before{display:table;content:" "}.factory-bootstrap-439 .form-horizontal .form-group:after{clear:both}.factory-bootstrap-439 .form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.factory-bootstrap-439 .btn{display:inline-block;padding:5px 12px;margin-bottom:0;font-size:13px;font-weight:400;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.factory-bootstrap-439 .btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.factory-bootstrap-439 .btn{text-decoration:none}.factory-bootstrap-439 .btn:focus,.factory-bootstrap-439 .btn:hover{color:#333;text-decoration:none}.factory-bootstrap-439 .btn.disabled,.factory-bootstrap-439 .btn[disabled],.factory-bootstrap-439 fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-439 .btn-default.active,.factory-bootstrap-439 .btn-default:active,.factory-bootstrap-439 .btn-default:focus,.factory-bootstrap-439 .btn-default:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-default{background:#fafafa;border-color:#999;color:#222}.factory-bootstrap-439 .btn-default.active,.factory-bootstrap-439 .btn-default:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-default{background-image:none}.factory-bootstrap-439 .btn-default.disabled,.factory-bootstrap-439 .btn-default.disabled.active,.factory-bootstrap-439 .btn-default.disabled:active,.factory-bootstrap-439 .btn-default.disabled:focus,.factory-bootstrap-439 .btn-default.disabled:hover,.factory-bootstrap-439 .btn-default[disabled],.factory-bootstrap-439 .btn-default[disabled].active,.factory-bootstrap-439 .btn-default[disabled]:active,.factory-bootstrap-439 .btn-default[disabled]:focus,.factory-bootstrap-439 .btn-default[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-default,.factory-bootstrap-439 fieldset[disabled] .btn-default.active,.factory-bootstrap-439 fieldset[disabled] .btn-default:active,.factory-bootstrap-439 fieldset[disabled] .btn-default:focus,.factory-bootstrap-439 fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.factory-bootstrap-439 .btn-default .badge{color:#fff;background-color:#fff}.factory-bootstrap-439 .btn-primary.active,.factory-bootstrap-439 .btn-primary:active,.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.factory-bootstrap-439 .btn-primary.active,.factory-bootstrap-439 .btn-primary:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-primary{background-image:none}.factory-bootstrap-439 .btn-primary.disabled,.factory-bootstrap-439 .btn-primary.disabled.active,.factory-bootstrap-439 .btn-primary.disabled:active,.factory-bootstrap-439 .btn-primary.disabled:focus,.factory-bootstrap-439 .btn-primary.disabled:hover,.factory-bootstrap-439 .btn-primary[disabled],.factory-bootstrap-439 .btn-primary[disabled].active,.factory-bootstrap-439 .btn-primary[disabled]:active,.factory-bootstrap-439 .btn-primary[disabled]:focus,.factory-bootstrap-439 .btn-primary[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-primary,.factory-bootstrap-439 fieldset[disabled] .btn-primary.active,.factory-bootstrap-439 fieldset[disabled] .btn-primary:active,.factory-bootstrap-439 fieldset[disabled] .btn-primary:focus,.factory-bootstrap-439 fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.factory-bootstrap-439 .btn-primary .badge{color:#428bca;background-color:#fff}.factory-bootstrap-439 .btn-warning{color:#fff;background-color:#f0ad4e}.factory-bootstrap-439 .btn-warning.active,.factory-bootstrap-439 .btn-warning:active,.factory-bootstrap-439 .btn-warning:focus,.factory-bootstrap-439 .btn-warning:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.factory-bootstrap-439 .btn-warning.active,.factory-bootstrap-439 .btn-warning:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-warning{background-image:none}.factory-bootstrap-439 .btn-warning.disabled,.factory-bootstrap-439 .btn-warning.disabled.active,.factory-bootstrap-439 .btn-warning.disabled:active,.factory-bootstrap-439 .btn-warning.disabled:focus,.factory-bootstrap-439 .btn-warning.disabled:hover,.factory-bootstrap-439 .btn-warning[disabled],.factory-bootstrap-439 .btn-warning[disabled].active,.factory-bootstrap-439 .btn-warning[disabled]:active,.factory-bootstrap-439 .btn-warning[disabled]:focus,.factory-bootstrap-439 .btn-warning[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-warning,.factory-bootstrap-439 fieldset[disabled] .btn-warning.active,.factory-bootstrap-439 fieldset[disabled] .btn-warning:active,.factory-bootstrap-439 fieldset[disabled] .btn-warning:focus,.factory-bootstrap-439 fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.factory-bootstrap-439 .btn-warning .badge{color:#f0ad4e;background-color:#fff}.factory-bootstrap-439 .btn-success{color:#fff;background-color:#5cb85c}.factory-bootstrap-439 .btn-success.active,.factory-bootstrap-439 .btn-success:active,.factory-bootstrap-439 .btn-success:focus,.factory-bootstrap-439 .btn-success:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.factory-bootstrap-439 .btn-success.active,.factory-bootstrap-439 .btn-success:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-success{background-image:none}.factory-bootstrap-439 .btn-success.disabled,.factory-bootstrap-439 .btn-success.disabled.active,.factory-bootstrap-439 .btn-success.disabled:active,.factory-bootstrap-439 .btn-success.disabled:focus,.factory-bootstrap-439 .btn-success.disabled:hover,.factory-bootstrap-439 .btn-success[disabled],.factory-bootstrap-439 .btn-success[disabled].active,.factory-bootstrap-439 .btn-success[disabled]:active,.factory-bootstrap-439 .btn-success[disabled]:focus,.factory-bootstrap-439 .btn-success[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-success,.factory-bootstrap-439 fieldset[disabled] .btn-success.active,.factory-bootstrap-439 fieldset[disabled] .btn-success:active,.factory-bootstrap-439 fieldset[disabled] .btn-success:focus,.factory-bootstrap-439 fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.factory-bootstrap-439 .btn-success .badge{color:#5cb85c;background-color:#fff}.factory-bootstrap-439 .btn-info{color:#fff;background-color:#5bc0de}.factory-bootstrap-439 .btn-info.active,.factory-bootstrap-439 .btn-info:active,.factory-bootstrap-439 .btn-info:focus,.factory-bootstrap-439 .btn-info:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.factory-bootstrap-439 .btn-info.active,.factory-bootstrap-439 .btn-info:active,.factory-bootstrap-439 .open .dropdown-toggle.btn-info{background-image:none}.factory-bootstrap-439 .btn-info.disabled,.factory-bootstrap-439 .btn-info.disabled.active,.factory-bootstrap-439 .btn-info.disabled:active,.factory-bootstrap-439 .btn-info.disabled:focus,.factory-bootstrap-439 .btn-info.disabled:hover,.factory-bootstrap-439 .btn-info[disabled],.factory-bootstrap-439 .btn-info[disabled].active,.factory-bootstrap-439 .btn-info[disabled]:active,.factory-bootstrap-439 .btn-info[disabled]:focus,.factory-bootstrap-439 .btn-info[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-info,.factory-bootstrap-439 fieldset[disabled] .btn-info.active,.factory-bootstrap-439 fieldset[disabled] .btn-info:active,.factory-bootstrap-439 fieldset[disabled] .btn-info:focus,.factory-bootstrap-439 fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.factory-bootstrap-439 .btn-info .badge{color:#5bc0de;background-color:#fff}.factory-bootstrap-439 .btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.factory-bootstrap-439 .btn-link,.factory-bootstrap-439 .btn-link:active,.factory-bootstrap-439 .btn-link[disabled],.factory-bootstrap-439 fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-439 .btn-link,.factory-bootstrap-439 .btn-link:active,.factory-bootstrap-439 .btn-link:focus,.factory-bootstrap-439 .btn-link:hover{border-color:transparent}.factory-bootstrap-439 .btn-link:focus,.factory-bootstrap-439 .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.factory-bootstrap-439 .btn-link[disabled]:focus,.factory-bootstrap-439 .btn-link[disabled]:hover,.factory-bootstrap-439 fieldset[disabled] .btn-link:focus,.factory-bootstrap-439 fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.factory-bootstrap-439 .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-439 .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 .btn-block{display:block;width:100%;padding-right:0;padding-left:0}.factory-bootstrap-439 .btn-block+.btn-block{margin-top:5px}.factory-bootstrap-439 input[type=button].btn-block,.factory-bootstrap-439 input[type=reset].btn-block,.factory-bootstrap-439 input[type=submit].btn-block{width:100%}.factory-bootstrap-439 .fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.factory-bootstrap-439 .fade.in{opacity:1}.factory-bootstrap-439 .collapse{display:none}.factory-bootstrap-439 .collapse.in{display:block}.factory-bootstrap-439 .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular) format('svg')}.factory-bootstrap-439 .glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;line-height:1;-moz-osx-font-smoothing:grayscale}.factory-bootstrap-439 .glyphicon:empty{width:1em}.factory-bootstrap-439 .glyphicon-asterisk:before{content:"\2a"}.factory-bootstrap-439 .glyphicon-plus:before{content:"\2b"}.factory-bootstrap-439 .glyphicon-euro:before{content:"\20ac"}.factory-bootstrap-439 .glyphicon-minus:before{content:"\2212"}.factory-bootstrap-439 .glyphicon-cloud:before{content:"\2601"}.factory-bootstrap-439 .glyphicon-envelope:before{content:"\2709"}.factory-bootstrap-439 .glyphicon-pencil:before{content:"\270f"}.factory-bootstrap-439 .glyphicon-glass:before{content:"\e001"}.factory-bootstrap-439 .glyphicon-music:before{content:"\e002"}.factory-bootstrap-439 .glyphicon-search:before{content:"\e003"}.factory-bootstrap-439 .glyphicon-heart:before{content:"\e005"}.factory-bootstrap-439 .glyphicon-star:before{content:"\e006"}.factory-bootstrap-439 .glyphicon-star-empty:before{content:"\e007"}.factory-bootstrap-439 .glyphicon-user:before{content:"\e008"}.factory-bootstrap-439 .glyphicon-film:before{content:"\e009"}.factory-bootstrap-439 .glyphicon-th-large:before{content:"\e010"}.factory-bootstrap-439 .glyphicon-th:before{content:"\e011"}.factory-bootstrap-439 .glyphicon-th-list:before{content:"\e012"}.factory-bootstrap-439 .glyphicon-ok:before{content:"\e013"}.factory-bootstrap-439 .glyphicon-remove:before{content:"\e014"}.factory-bootstrap-439 .glyphicon-zoom-in:before{content:"\e015"}.factory-bootstrap-439 .glyphicon-zoom-out:before{content:"\e016"}.factory-bootstrap-439 .glyphicon-off:before{content:"\e017"}.factory-bootstrap-439 .glyphicon-signal:before{content:"\e018"}.factory-bootstrap-439 .glyphicon-cog:before{content:"\e019"}.factory-bootstrap-439 .glyphicon-trash:before{content:"\e020"}.factory-bootstrap-439 .glyphicon-home:before{content:"\e021"}.factory-bootstrap-439 .glyphicon-file:before{content:"\e022"}.factory-bootstrap-439 .glyphicon-time:before{content:"\e023"}.factory-bootstrap-439 .glyphicon-road:before{content:"\e024"}.factory-bootstrap-439 .glyphicon-download-alt:before{content:"\e025"}.factory-bootstrap-439 .glyphicon-download:before{content:"\e026"}.factory-bootstrap-439 .glyphicon-upload:before{content:"\e027"}.factory-bootstrap-439 .glyphicon-inbox:before{content:"\e028"}.factory-bootstrap-439 .glyphicon-play-circle:before{content:"\e029"}.factory-bootstrap-439 .glyphicon-repeat:before{content:"\e030"}.factory-bootstrap-439 .glyphicon-refresh:before{content:"\e031"}.factory-bootstrap-439 .glyphicon-list-alt:before{content:"\e032"}.factory-bootstrap-439 .glyphicon-lock:before{content:"\e033"}.factory-bootstrap-439 .glyphicon-flag:before{content:"\e034"}.factory-bootstrap-439 .glyphicon-headphones:before{content:"\e035"}.factory-bootstrap-439 .glyphicon-volume-off:before{content:"\e036"}.factory-bootstrap-439 .glyphicon-volume-down:before{content:"\e037"}.factory-bootstrap-439 .glyphicon-volume-up:before{content:"\e038"}.factory-bootstrap-439 .glyphicon-qrcode:before{content:"\e039"}.factory-bootstrap-439 .glyphicon-barcode:before{content:"\e040"}.factory-bootstrap-439 .glyphicon-tag:before{content:"\e041"}.factory-bootstrap-439 .glyphicon-tags:before{content:"\e042"}.factory-bootstrap-439 .glyphicon-book:before{content:"\e043"}.factory-bootstrap-439 .glyphicon-bookmark:before{content:"\e044"}.factory-bootstrap-439 .glyphicon-print:before{content:"\e045"}.factory-bootstrap-439 .glyphicon-camera:before{content:"\e046"}.factory-bootstrap-439 .glyphicon-font:before{content:"\e047"}.factory-bootstrap-439 .glyphicon-bold:before{content:"\e048"}.factory-bootstrap-439 .glyphicon-italic:before{content:"\e049"}.factory-bootstrap-439 .glyphicon-text-height:before{content:"\e050"}.factory-bootstrap-439 .glyphicon-text-width:before{content:"\e051"}.factory-bootstrap-439 .glyphicon-align-left:before{content:"\e052"}.factory-bootstrap-439 .glyphicon-align-center:before{content:"\e053"}.factory-bootstrap-439 .glyphicon-align-right:before{content:"\e054"}.factory-bootstrap-439 .glyphicon-align-justify:before{content:"\e055"}.factory-bootstrap-439 .glyphicon-list:before{content:"\e056"}.factory-bootstrap-439 .glyphicon-indent-left:before{content:"\e057"}.factory-bootstrap-439 .glyphicon-indent-right:before{content:"\e058"}.factory-bootstrap-439 .glyphicon-facetime-video:before{content:"\e059"}.factory-bootstrap-439 .glyphicon-picture:before{content:"\e060"}.factory-bootstrap-439 .glyphicon-map-marker:before{content:"\e062"}.factory-bootstrap-439 .glyphicon-adjust:before{content:"\e063"}.factory-bootstrap-439 .glyphicon-tint:before{content:"\e064"}.factory-bootstrap-439 .glyphicon-edit:before{content:"\e065"}.factory-bootstrap-439 .glyphicon-share:before{content:"\e066"}.factory-bootstrap-439 .glyphicon-check:before{content:"\e067"}.factory-bootstrap-439 .glyphicon-move:before{content:"\e068"}.factory-bootstrap-439 .glyphicon-step-backward:before{content:"\e069"}.factory-bootstrap-439 .glyphicon-fast-backward:before{content:"\e070"}.factory-bootstrap-439 .glyphicon-backward:before{content:"\e071"}.factory-bootstrap-439 .glyphicon-play:before{content:"\e072"}.factory-bootstrap-439 .glyphicon-pause:before{content:"\e073"}.factory-bootstrap-439 .glyphicon-stop:before{content:"\e074"}.factory-bootstrap-439 .glyphicon-forward:before{content:"\e075"}.factory-bootstrap-439 .glyphicon-fast-forward:before{content:"\e076"}.factory-bootstrap-439 .glyphicon-step-forward:before{content:"\e077"}.factory-bootstrap-439 .glyphicon-eject:before{content:"\e078"}.factory-bootstrap-439 .glyphicon-chevron-left:before{content:"\e079"}.factory-bootstrap-439 .glyphicon-chevron-right:before{content:"\e080"}.factory-bootstrap-439 .glyphicon-plus-sign:before{content:"\e081"}.factory-bootstrap-439 .glyphicon-minus-sign:before{content:"\e082"}.factory-bootstrap-439 .glyphicon-remove-sign:before{content:"\e083"}.factory-bootstrap-439 .glyphicon-ok-sign:before{content:"\e084"}.factory-bootstrap-439 .glyphicon-question-sign:before{content:"\e085"}.factory-bootstrap-439 .glyphicon-info-sign:before{content:"\e086"}.factory-bootstrap-439 .glyphicon-screenshot:before{content:"\e087"}.factory-bootstrap-439 .glyphicon-remove-circle:before{content:"\e088"}.factory-bootstrap-439 .glyphicon-ok-circle:before{content:"\e089"}.factory-bootstrap-439 .glyphicon-ban-circle:before{content:"\e090"}.factory-bootstrap-439 .glyphicon-arrow-left:before{content:"\e091"}.factory-bootstrap-439 .glyphicon-arrow-right:before{content:"\e092"}.factory-bootstrap-439 .glyphicon-arrow-up:before{content:"\e093"}.factory-bootstrap-439 .glyphicon-arrow-down:before{content:"\e094"}.factory-bootstrap-439 .glyphicon-share-alt:before{content:"\e095"}.factory-bootstrap-439 .glyphicon-resize-full:before{content:"\e096"}.factory-bootstrap-439 .glyphicon-resize-small:before{content:"\e097"}.factory-bootstrap-439 .glyphicon-exclamation-sign:before{content:"\e101"}.factory-bootstrap-439 .glyphicon-gift:before{content:"\e102"}.factory-bootstrap-439 .glyphicon-leaf:before{content:"\e103"}.factory-bootstrap-439 .glyphicon-fire:before{content:"\e104"}.factory-bootstrap-439 .glyphicon-eye-open:before{content:"\e105"}.factory-bootstrap-439 .glyphicon-eye-close:before{content:"\e106"}.factory-bootstrap-439 .glyphicon-warning-sign:before{content:"\e107"}.factory-bootstrap-439 .glyphicon-plane:before{content:"\e108"}.factory-bootstrap-439 .glyphicon-calendar:before{content:"\e109"}.factory-bootstrap-439 .glyphicon-random:before{content:"\e110"}.factory-bootstrap-439 .glyphicon-comment:before{content:"\e111"}.factory-bootstrap-439 .glyphicon-magnet:before{content:"\e112"}.factory-bootstrap-439 .glyphicon-chevron-up:before{content:"\e113"}.factory-bootstrap-439 .glyphicon-chevron-down:before{content:"\e114"}.factory-bootstrap-439 .glyphicon-retweet:before{content:"\e115"}.factory-bootstrap-439 .glyphicon-shopping-cart:before{content:"\e116"}.factory-bootstrap-439 .glyphicon-folder-close:before{content:"\e117"}.factory-bootstrap-439 .glyphicon-folder-open:before{content:"\e118"}.factory-bootstrap-439 .glyphicon-resize-vertical:before{content:"\e119"}.factory-bootstrap-439 .glyphicon-resize-horizontal:before{content:"\e120"}.factory-bootstrap-439 .glyphicon-hdd:before{content:"\e121"}.factory-bootstrap-439 .glyphicon-bullhorn:before{content:"\e122"}.factory-bootstrap-439 .glyphicon-bell:before{content:"\e123"}.factory-bootstrap-439 .glyphicon-certificate:before{content:"\e124"}.factory-bootstrap-439 .glyphicon-thumbs-up:before{content:"\e125"}.factory-bootstrap-439 .glyphicon-thumbs-down:before{content:"\e126"}.factory-bootstrap-439 .glyphicon-hand-right:before{content:"\e127"}.factory-bootstrap-439 .glyphicon-hand-left:before{content:"\e128"}.factory-bootstrap-439 .glyphicon-hand-up:before{content:"\e129"}.factory-bootstrap-439 .glyphicon-hand-down:before{content:"\e130"}.factory-bootstrap-439 .glyphicon-circle-arrow-right:before{content:"\e131"}.factory-bootstrap-439 .glyphicon-circle-arrow-left:before{content:"\e132"}.factory-bootstrap-439 .glyphicon-circle-arrow-up:before{content:"\e133"}.factory-bootstrap-439 .glyphicon-circle-arrow-down:before{content:"\e134"}.factory-bootstrap-439 .glyphicon-globe:before{content:"\e135"}.factory-bootstrap-439 .glyphicon-wrench:before{content:"\e136"}.factory-bootstrap-439 .glyphicon-tasks:before{content:"\e137"}.factory-bootstrap-439 .glyphicon-filter:before{content:"\e138"}.factory-bootstrap-439 .glyphicon-briefcase:before{content:"\e139"}.factory-bootstrap-439 .glyphicon-fullscreen:before{content:"\e140"}.factory-bootstrap-439 .glyphicon-dashboard:before{content:"\e141"}.factory-bootstrap-439 .glyphicon-paperclip:before{content:"\e142"}.factory-bootstrap-439 .glyphicon-heart-empty:before{content:"\e143"}.factory-bootstrap-439 .glyphicon-link:before{content:"\e144"}.factory-bootstrap-439 .glyphicon-phone:before{content:"\e145"}.factory-bootstrap-439 .glyphicon-pushpin:before{content:"\e146"}.factory-bootstrap-439 .glyphicon-usd:before{content:"\e148"}.factory-bootstrap-439 .glyphicon-gbp:before{content:"\e149"}.factory-bootstrap-439 .glyphicon-sort:before{content:"\e150"}.factory-bootstrap-439 .glyphicon-sort-by-alphabet:before{content:"\e151"}.factory-bootstrap-439 .glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.factory-bootstrap-439 .glyphicon-sort-by-order:before{content:"\e153"}.factory-bootstrap-439 .glyphicon-sort-by-order-alt:before{content:"\e154"}.factory-bootstrap-439 .glyphicon-sort-by-attributes:before{content:"\e155"}.factory-bootstrap-439 .glyphicon-sort-by-attributes-alt:before{content:"\e156"}.factory-bootstrap-439 .glyphicon-unchecked:before{content:"\e157"}.factory-bootstrap-439 .glyphicon-expand:before{content:"\e158"}.factory-bootstrap-439 .glyphicon-collapse-down:before{content:"\e159"}.factory-bootstrap-439 .glyphicon-collapse-up:before{content:"\e160"}.factory-bootstrap-439 .glyphicon-log-in:before{content:"\e161"}.factory-bootstrap-439 .glyphicon-flash:before{content:"\e162"}.factory-bootstrap-439 .glyphicon-log-out:before{content:"\e163"}.factory-bootstrap-439 .glyphicon-new-window:before{content:"\e164"}.factory-bootstrap-439 .glyphicon-record:before{content:"\e165"}.factory-bootstrap-439 .glyphicon-save:before{content:"\e166"}.factory-bootstrap-439 .glyphicon-open:before{content:"\e167"}.factory-bootstrap-439 .glyphicon-saved:before{content:"\e168"}.factory-bootstrap-439 .glyphicon-import:before{content:"\e169"}.factory-bootstrap-439 .glyphicon-export:before{content:"\e170"}.factory-bootstrap-439 .glyphicon-send:before{content:"\e171"}.factory-bootstrap-439 .glyphicon-floppy-disk:before{content:"\e172"}.factory-bootstrap-439 .glyphicon-floppy-saved:before{content:"\e173"}.factory-bootstrap-439 .glyphicon-floppy-remove:before{content:"\e174"}.factory-bootstrap-439 .glyphicon-floppy-save:before{content:"\e175"}.factory-bootstrap-439 .glyphicon-floppy-open:before{content:"\e176"}.factory-bootstrap-439 .glyphicon-credit-card:before{content:"\e177"}.factory-bootstrap-439 .glyphicon-transfer:before{content:"\e178"}.factory-bootstrap-439 .glyphicon-cutlery:before{content:"\e179"}.factory-bootstrap-439 .glyphicon-header:before{content:"\e180"}.factory-bootstrap-439 .glyphicon-compressed:before{content:"\e181"}.factory-bootstrap-439 .glyphicon-earphone:before{content:"\e182"}.factory-bootstrap-439 .glyphicon-phone-alt:before{content:"\e183"}.factory-bootstrap-439 .glyphicon-tower:before{content:"\e184"}.factory-bootstrap-439 .glyphicon-stats:before{content:"\e185"}.factory-bootstrap-439 .glyphicon-sd-video:before{content:"\e186"}.factory-bootstrap-439 .glyphicon-hd-video:before{content:"\e187"}.factory-bootstrap-439 .glyphicon-subtitles:before{content:"\e188"}.factory-bootstrap-439 .glyphicon-sound-stereo:before{content:"\e189"}.factory-bootstrap-439 .glyphicon-sound-dolby:before{content:"\e190"}.factory-bootstrap-439 .glyphicon-sound-5-1:before{content:"\e191"}.factory-bootstrap-439 .glyphicon-sound-6-1:before{content:"\e192"}.factory-bootstrap-439 .glyphicon-sound-7-1:before{content:"\e193"}.factory-bootstrap-439 .glyphicon-copyright-mark:before{content:"\e194"}.factory-bootstrap-439 .glyphicon-registration-mark:before{content:"\e195"}.factory-bootstrap-439 .glyphicon-cloud-download:before{content:"\e197"}.factory-bootstrap-439 .glyphicon-cloud-upload:before{content:"\e198"}.factory-bootstrap-439 .glyphicon-tree-conifer:before{content:"\e199"}.factory-bootstrap-439 .glyphicon-tree-deciduous:before{content:"\e200"}.factory-bootstrap-439 .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.factory-bootstrap-439 .dropdown{position:relative}.factory-bootstrap-439 .dropdown-toggle:focus{outline:0}.factory-bootstrap-439 .dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.factory-bootstrap-439 .dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-439 .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-439 .dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429;color:#333;white-space:nowrap}.factory-bootstrap-439 .dropdown-menu>li>a:focus,.factory-bootstrap-439 .dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.factory-bootstrap-439 .dropdown-menu>.active>a,.factory-bootstrap-439 .dropdown-menu>.active>a:focus,.factory-bootstrap-439 .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.factory-bootstrap-439 .dropdown-menu>.disabled>a,.factory-bootstrap-439 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-439 .dropdown-menu>.disabled>a:hover{color:#999}.factory-bootstrap-439 .dropdown-menu>.disabled>a:focus,.factory-bootstrap-439 .dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-439 .open>.dropdown-menu{display:block}.factory-bootstrap-439 .open>a{outline:0}.factory-bootstrap-439 .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.factory-bootstrap-439 .dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.factory-bootstrap-439 .pull-right>.dropdown-menu{right:0;left:auto}.factory-bootstrap-439 .dropup .caret,.factory-bootstrap-439 .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.factory-bootstrap-439 .dropup .dropdown-menu,.factory-bootstrap-439 .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.factory-bootstrap-439 .btn-group,.factory-bootstrap-439 .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.factory-bootstrap-439 .btn-group-vertical>.btn,.factory-bootstrap-439 .btn-group>.btn{position:relative;float:left}.factory-bootstrap-439 .btn-group-vertical>.btn.active,.factory-bootstrap-439 .btn-group-vertical>.btn:active,.factory-bootstrap-439 .btn-group-vertical>.btn:focus,.factory-bootstrap-439 .btn-group-vertical>.btn:hover,.factory-bootstrap-439 .btn-group>.btn.active,.factory-bootstrap-439 .btn-group>.btn:active,.factory-bootstrap-439 .btn-group>.btn:focus,.factory-bootstrap-439 .btn-group>.btn:hover{z-index:2}.factory-bootstrap-439 .btn-group-vertical>.btn:focus,.factory-bootstrap-439 .btn-group>.btn:focus{outline:0}.factory-bootstrap-439 .btn-group .btn+.btn,.factory-bootstrap-439 .btn-group .btn+.btn-group,.factory-bootstrap-439 .btn-group .btn-group+.btn,.factory-bootstrap-439 .btn-group .btn-group+.btn-group{margin-left:-1px}.factory-bootstrap-439 .btn-toolbar:after,.factory-bootstrap-439 .btn-toolbar:before{display:table;content:" "}.factory-bootstrap-439 .btn-toolbar:after{clear:both}.factory-bootstrap-439 .btn-toolbar .btn-group{float:left}.factory-bootstrap-439 .btn-toolbar>.btn+.btn,.factory-bootstrap-439 .btn-toolbar>.btn+.btn-group,.factory-bootstrap-439 .btn-toolbar>.btn-group+.btn,.factory-bootstrap-439 .btn-toolbar>.btn-group+.btn-group{margin-left:5px}.factory-bootstrap-439 .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.factory-bootstrap-439 .btn-group>.btn:first-child{margin-left:0}.factory-bootstrap-439 .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-439 .btn-group>.btn:last-child:not(:first-child),.factory-bootstrap-439 .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .btn-group>.btn-group{float:left}.factory-bootstrap-439 .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-439 .btn-group>.btn-group:first-child>.btn:last-child,.factory-bootstrap-439 .btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-439 .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .btn-group .dropdown-toggle:active,.factory-bootstrap-439 .btn-group.open .dropdown-toggle{outline:0}.factory-bootstrap-439 .btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 .btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 .btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-439 .btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.factory-bootstrap-439 .btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.factory-bootstrap-439 .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.factory-bootstrap-439 .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-439 .btn-group{border:4px solid #f9f9f9;border-radius:4px}.factory-bootstrap-439 .btn-group .btn.active.value{text-shadow:none;color:#fff;background-color:#33aad5;-webkit-box-shadow:inset 0 1px 1px #0074a2;box-shadow:inset 0 1px 3px #0074a2;border-top:1px solid #0074a2;border-bottom:1px solid #0074a2;border-left:1px solid #0074a2}.factory-bootstrap-439 .btn .caret{margin-left:0}.factory-bootstrap-439 .btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.factory-bootstrap-439 .dropup .btn-lg .caret{border-width:0 5px 5px}.factory-bootstrap-439 .btn-group-vertical>.btn,.factory-bootstrap-439 .btn-group-vertical>.btn-group,.factory-bootstrap-439 .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.factory-bootstrap-439 .btn-group-vertical>.btn-group:after,.factory-bootstrap-439 .btn-group-vertical>.btn-group:before{display:table;content:" "}.factory-bootstrap-439 .btn-group-vertical>.btn-group:after{clear:both}.factory-bootstrap-439 .btn-group-vertical>.btn-group>.btn{float:none}.factory-bootstrap-439 .btn-group-vertical>.btn+.btn,.factory-bootstrap-439 .btn-group-vertical>.btn+.btn-group,.factory-bootstrap-439 .btn-group-vertical>.btn-group+.btn,.factory-bootstrap-439 .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.factory-bootstrap-439 .btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-439 .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-439 .btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.factory-bootstrap-439 .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.factory-bootstrap-439 .btn-group-vertical>.btn-group:first-child>.btn:last-child,.factory-bootstrap-439 .btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-439 .btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.factory-bootstrap-439 .btn-group-justified>.btn,.factory-bootstrap-439 .btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.factory-bootstrap-439 .btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{display:none}.factory-bootstrap-439 .input-group{position:relative;display:table;border-collapse:separate}.factory-bootstrap-439 .input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.factory-bootstrap-439 .input-group .form-control{width:100%;margin-bottom:0}.factory-bootstrap-439 .input-group-lg>.form-control,.factory-bootstrap-439 .input-group-lg>.input-group-addon,.factory-bootstrap-439 .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.factory-bootstrap-439 select.input-group-lg>.form-control,.factory-bootstrap-439 select.input-group-lg>.input-group-addon,.factory-bootstrap-439 select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}.factory-bootstrap-439 textarea.input-group-lg>.form-control,.factory-bootstrap-439 textarea.input-group-lg>.input-group-addon,.factory-bootstrap-439 textarea.input-group-lg>.input-group-btn>.btn{height:auto}.factory-bootstrap-439 .input-group-sm>.form-control,.factory-bootstrap-439 .input-group-sm>.input-group-addon,.factory-bootstrap-439 .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.factory-bootstrap-439 select.input-group-sm>.form-control,.factory-bootstrap-439 select.input-group-sm>.input-group-addon,.factory-bootstrap-439 select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}.factory-bootstrap-439 textarea.input-group-sm>.form-control,.factory-bootstrap-439 textarea.input-group-sm>.input-group-addon,.factory-bootstrap-439 textarea.input-group-sm>.input-group-btn>.btn{height:auto}.factory-bootstrap-439 .input-group .form-control,.factory-bootstrap-439 .input-group-addon,.factory-bootstrap-439 .input-group-btn{display:table-cell}.factory-bootstrap-439 .input-group .form-control:not(:first-child):not(:last-child),.factory-bootstrap-439 .input-group-addon:not(:first-child):not(:last-child),.factory-bootstrap-439 .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.factory-bootstrap-439 .input-group-addon,.factory-bootstrap-439 .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.factory-bootstrap-439 .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.factory-bootstrap-439 .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.factory-bootstrap-439 .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.factory-bootstrap-439 .input-group-addon input[type=checkbox],.factory-bootstrap-439 .input-group-addon input[type=radio]{margin-top:0}.factory-bootstrap-439 .input-group .form-control:first-child,.factory-bootstrap-439 .input-group-addon:first-child,.factory-bootstrap-439 .input-group-btn:first-child>.btn,.factory-bootstrap-439 .input-group-btn:first-child>.dropdown-toggle,.factory-bootstrap-439 .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.factory-bootstrap-439 .input-group-addon:first-child{border-right:0}.factory-bootstrap-439 .input-group .form-control:last-child,.factory-bootstrap-439 .input-group-addon:last-child,.factory-bootstrap-439 .input-group-btn:first-child>.btn:not(:first-child),.factory-bootstrap-439 .input-group-btn:last-child>.btn,.factory-bootstrap-439 .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .input-group-addon:last-child{border-left:0}.factory-bootstrap-439 .input-group-btn{position:relative;white-space:nowrap}.factory-bootstrap-439 .input-group-btn:first-child>.btn{margin-right:-1px}.factory-bootstrap-439 .input-group-btn:last-child>.btn{margin-left:-1px}.factory-bootstrap-439 .input-group-btn>.btn{position:relative}.factory-bootstrap-439 .input-group-btn>.btn+.btn{margin-left:-4px}.factory-bootstrap-439 .input-group-btn>.btn:active,.factory-bootstrap-439 .input-group-btn>.btn:hover{z-index:2}.factory-bootstrap-439 .nav{padding-left:0;margin-bottom:0;list-style:none}.factory-bootstrap-439 .nav:after,.factory-bootstrap-439 .nav:before{display:table;content:" "}.factory-bootstrap-439 .nav:after{clear:both}.factory-bootstrap-439 .nav>li{position:relative;display:block}.factory-bootstrap-439 .nav>li>a{position:relative;display:block;padding:10px 15px}.factory-bootstrap-439 .nav>li>a:focus,.factory-bootstrap-439 .nav>li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-439 .nav>li.disabled>a{color:#999}.factory-bootstrap-439 .nav>li.disabled>a:focus,.factory-bootstrap-439 .nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.factory-bootstrap-439 .nav .open>a,.factory-bootstrap-439 .nav .open>a:focus,.factory-bootstrap-439 .nav .open>a:hover{background-color:#eee;border-color:#428bca}.factory-bootstrap-439 .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.factory-bootstrap-439 .nav>li>a>img{max-width:none}.factory-bootstrap-439 .nav-tabs{border-bottom:1px solid #ddd}.factory-bootstrap-439 .nav-tabs>li{float:left;margin-bottom:-1px}.factory-bootstrap-439 .nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.factory-bootstrap-439 .nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.factory-bootstrap-439 .nav-tabs>li.active>a,.factory-bootstrap-439 .nav-tabs>li.active>a:focus,.factory-bootstrap-439 .nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.factory-bootstrap-439 .nav-tabs.nav-justified{width:100%;border-bottom:0}.factory-bootstrap-439 .nav-tabs.nav-justified>li{float:none}.factory-bootstrap-439 .nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-439 .nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.factory-bootstrap-439 .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-439 .nav-tabs.nav-justified>.active>a,.factory-bootstrap-439 .nav-tabs.nav-justified>.active>a:focus,.factory-bootstrap-439 .nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.factory-bootstrap-439 .nav-pills>li{float:left}.factory-bootstrap-439 .nav-pills>li>a{border-radius:4px}.factory-bootstrap-439 .nav-pills>li+li{margin-left:2px}.factory-bootstrap-439 .nav-pills>li.active>a,.factory-bootstrap-439 .nav-pills>li.active>a:focus,.factory-bootstrap-439 .nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.factory-bootstrap-439 .nav-stacked>li{float:none}.factory-bootstrap-439 .nav-stacked>li+li{margin-top:2px;margin-left:0}.factory-bootstrap-439 .nav-justified{width:100%}.factory-bootstrap-439 .nav-justified>li{float:none}.factory-bootstrap-439 .nav-justified>li>a{margin-bottom:5px;text-align:center}.factory-bootstrap-439 .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.factory-bootstrap-439 .nav-tabs-justified{border-bottom:0}.factory-bootstrap-439 .nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.factory-bootstrap-439 .nav-tabs-justified>.active>a,.factory-bootstrap-439 .nav-tabs-justified>.active>a:focus,.factory-bootstrap-439 .nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.factory-bootstrap-439 .tab-content>.tab-pane{display:none}.factory-bootstrap-439 .tab-content>.active{display:block}.factory-bootstrap-439 .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.factory-bootstrap-439 .navbar:after,.factory-bootstrap-439 .navbar:before{display:table;content:" "}.factory-bootstrap-439 .navbar:after{clear:both}@media (min-width:768px){.navbar{border-radius:4px}}.factory-bootstrap-439 .navbar-header:after,.factory-bootstrap-439 .navbar-header:before{display:table;content:" "}.factory-bootstrap-439 .navbar-header:after{clear:both}@media (min-width:768px){.navbar-header{float:left}}.factory-bootstrap-439 .navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.factory-bootstrap-439 .navbar-collapse:after,.factory-bootstrap-439 .navbar-collapse:before{display:table;content:" "}.factory-bootstrap-439 .navbar-collapse:after{clear:both}.factory-bootstrap-439 .navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.factory-bootstrap-439 .container>.navbar-collapse,.factory-bootstrap-439 .container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.factory-bootstrap-439 .navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.factory-bootstrap-439 .navbar-fixed-bottom,.factory-bootstrap-439 .navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.factory-bootstrap-439 .navbar-fixed-top{top:0;border-width:0 0 1px}.factory-bootstrap-439 .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.factory-bootstrap-439 .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px}.factory-bootstrap-439 .navbar-brand:focus,.factory-bootstrap-439 .navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.factory-bootstrap-439 .navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.factory-bootstrap-439 .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.factory-bootstrap-439 .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.factory-bootstrap-439 .navbar-nav{margin:7.5px -15px}.factory-bootstrap-439 .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.factory-bootstrap-439 .navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{float:none;margin-left:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.factory-bootstrap-439 .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.factory-bootstrap-439 .navbar-nav.pull-right>li>.dropdown-menu,.factory-bootstrap-439 .navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.factory-bootstrap-439 .navbar-btn{margin-top:8px;margin-bottom:8px}.factory-bootstrap-439 .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.factory-bootstrap-439 .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.factory-bootstrap-439 .navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.factory-bootstrap-439 .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.factory-bootstrap-439 .navbar-default .navbar-brand{color:#777}.factory-bootstrap-439 .navbar-default .navbar-brand:focus,.factory-bootstrap-439 .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.factory-bootstrap-439 .navbar-default .navbar-nav>li>a,.factory-bootstrap-439 .navbar-default .navbar-text{color:#777}.factory-bootstrap-439 .navbar-default .navbar-nav>li>a:focus,.factory-bootstrap-439 .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.factory-bootstrap-439 .navbar-default .navbar-nav>.active>a,.factory-bootstrap-439 .navbar-default .navbar-nav>.active>a:focus,.factory-bootstrap-439 .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.factory-bootstrap-439 .navbar-default .navbar-nav>.disabled>a,.factory-bootstrap-439 .navbar-default .navbar-nav>.disabled>a:focus,.factory-bootstrap-439 .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.factory-bootstrap-439 .navbar-default .navbar-toggle{border-color:#ddd}.factory-bootstrap-439 .navbar-default .navbar-toggle:focus,.factory-bootstrap-439 .navbar-default .navbar-toggle:hover{background-color:#ddd}.factory-bootstrap-439 .navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.factory-bootstrap-439 .navbar-default .navbar-collapse,.factory-bootstrap-439 .navbar-default .navbar-form{border-color:#e7e7e7}.factory-bootstrap-439 .navbar-default .navbar-nav>.open>a,.factory-bootstrap-439 .navbar-default .navbar-nav>.open>a:focus,.factory-bootstrap-439 .navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.factory-bootstrap-439 .navbar-default .navbar-link{color:#777}.factory-bootstrap-439 .navbar-default .navbar-link:hover{color:#333}.factory-bootstrap-439 .navbar-inverse{background-color:#222;border-color:#080808}.factory-bootstrap-439 .navbar-inverse .navbar-brand{color:#999}.factory-bootstrap-439 .navbar-inverse .navbar-brand:focus,.factory-bootstrap-439 .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.factory-bootstrap-439 .navbar-inverse .navbar-nav>li>a,.factory-bootstrap-439 .navbar-inverse .navbar-text{color:#999}.factory-bootstrap-439 .navbar-inverse .navbar-nav>li>a:focus,.factory-bootstrap-439 .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.factory-bootstrap-439 .navbar-inverse .navbar-nav>.active>a,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.active>a:focus,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.factory-bootstrap-439 .navbar-inverse .navbar-nav>.disabled>a,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.disabled>a:focus,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.factory-bootstrap-439 .navbar-inverse .navbar-toggle{border-color:#333}.factory-bootstrap-439 .navbar-inverse .navbar-toggle:focus,.factory-bootstrap-439 .navbar-inverse .navbar-toggle:hover{background-color:#333}.factory-bootstrap-439 .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.factory-bootstrap-439 .navbar-inverse .navbar-collapse,.factory-bootstrap-439 .navbar-inverse .navbar-form{border-color:#101010}.factory-bootstrap-439 .navbar-inverse .navbar-nav>.open>a,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.open>a:focus,.factory-bootstrap-439 .navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.factory-bootstrap-439 .navbar-inverse .navbar-link{color:#999}.factory-bootstrap-439 .navbar-inverse .navbar-link:hover{color:#fff}.factory-bootstrap-439 .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.factory-bootstrap-439 .breadcrumb>li{display:inline-block}.factory-bootstrap-439 .breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.factory-bootstrap-439 .breadcrumb>.active{color:#999}.factory-bootstrap-439 .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.factory-bootstrap-439 .pagination>li{display:inline}.factory-bootstrap-439 .pagination>li>a,.factory-bootstrap-439 .pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-439 .pagination>li:first-child>a,.factory-bootstrap-439 .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.factory-bootstrap-439 .pagination>li:last-child>a,.factory-bootstrap-439 .pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.factory-bootstrap-439 .pagination>li>a:focus,.factory-bootstrap-439 .pagination>li>a:hover,.factory-bootstrap-439 .pagination>li>span:focus,.factory-bootstrap-439 .pagination>li>span:hover{background-color:#eee}.factory-bootstrap-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#1e8cbe;border-color:#0074a2}.factory-bootstrap-439 .pagination>.disabled>a,.factory-bootstrap-439 .pagination>.disabled>a:focus,.factory-bootstrap-439 .pagination>.disabled>a:hover,.factory-bootstrap-439 .pagination>.disabled>span,.factory-bootstrap-439 .pagination>.disabled>span:focus,.factory-bootstrap-439 .pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.factory-bootstrap-439 .pagination-lg>li>a,.factory-bootstrap-439 .pagination-lg>li>span{padding:10px 16px;font-size:18px}.factory-bootstrap-439 .pagination-lg>li:first-child>a,.factory-bootstrap-439 .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.factory-bootstrap-439 .pagination-lg>li:last-child>a,.factory-bootstrap-439 .pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.factory-bootstrap-439 .pagination-sm>li>a,.factory-bootstrap-439 .pagination-sm>li>span{padding:5px 10px;font-size:12px}.factory-bootstrap-439 .pagination-sm>li:first-child>a,.factory-bootstrap-439 .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.factory-bootstrap-439 .pagination-sm>li:last-child>a,.factory-bootstrap-439 .pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.factory-bootstrap-439 .pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.factory-bootstrap-439 .pager:after,.factory-bootstrap-439 .pager:before{display:table;content:" "}.factory-bootstrap-439 .pager:after{clear:both}.factory-bootstrap-439 .pager li{display:inline}.factory-bootstrap-439 .pager li>a,.factory-bootstrap-439 .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.factory-bootstrap-439 .pager li>a:focus,.factory-bootstrap-439 .pager li>a:hover{text-decoration:none;background-color:#eee}.factory-bootstrap-439 .pager .next>a,.factory-bootstrap-439 .pager .next>span{float:right}.factory-bootstrap-439 .pager .previous>a,.factory-bootstrap-439 .pager .previous>span{float:left}.factory-bootstrap-439 .pager .disabled>a,.factory-bootstrap-439 .pager .disabled>a:focus,.factory-bootstrap-439 .pager .disabled>a:hover,.factory-bootstrap-439 .pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.factory-bootstrap-439 .label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.factory-bootstrap-439 .label[href]:focus,.factory-bootstrap-439 .label[href]:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-439 .label:empty{display:none}.factory-bootstrap-439 .btn .label{position:relative;top:-1px}.factory-bootstrap-439 .label-default{background-color:#999}.factory-bootstrap-439 .label-default[href]:focus,.factory-bootstrap-439 .label-default[href]:hover{background-color:gray}.factory-bootstrap-439 .label-primary{background-color:#428bca}.factory-bootstrap-439 .label-primary[href]:focus,.factory-bootstrap-439 .label-primary[href]:hover{background-color:#3071a9}.factory-bootstrap-439 .label-success{background-color:#5cb85c}.factory-bootstrap-439 .label-success[href]:focus,.factory-bootstrap-439 .label-success[href]:hover{background-color:#449d44}.factory-bootstrap-439 .label-info{background-color:#5bc0de}.factory-bootstrap-439 .label-info[href]:focus,.factory-bootstrap-439 .label-info[href]:hover{background-color:#31b0d5}.factory-bootstrap-439 .label-warning{background-color:#f0ad4e}.factory-bootstrap-439 .label-warning[href]:focus,.factory-bootstrap-439 .label-warning[href]:hover{background-color:#ec971f}.factory-bootstrap-439 .label-danger{background-color:#d9534f}.factory-bootstrap-439 .label-danger[href]:focus,.factory-bootstrap-439 .label-danger[href]:hover{background-color:#c9302c}.factory-bootstrap-439 .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.factory-bootstrap-439 .badge:empty{display:none}.factory-bootstrap-439 .btn .badge{position:relative;top:-1px}.factory-bootstrap-439 a.badge:focus,.factory-bootstrap-439 a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.factory-bootstrap-439 .nav-pills>.active>a>.badge,.factory-bootstrap-439 a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.factory-bootstrap-439 .nav-pills>li>a>.badge{margin-left:3px}.factory-bootstrap-439 .jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.factory-bootstrap-439 .jumbotron .h1,.factory-bootstrap-439 .jumbotron h1{line-height:1;color:inherit}.factory-bootstrap-439 .jumbotron p{line-height:1.4}.factory-bootstrap-439 .container .jumbotron{border-radius:6px}.factory-bootstrap-439 .jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.factory-bootstrap-439 .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.factory-bootstrap-439 .thumbnail a>img,.factory-bootstrap-439 .thumbnail>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}.factory-bootstrap-439 a.thumbnail.active,.factory-bootstrap-439 a.thumbnail:focus,.factory-bootstrap-439 a.thumbnail:hover{border-color:#428bca}.factory-bootstrap-439 .thumbnail .caption{padding:9px;color:#333}.factory-bootstrap-439 .alert{border:1px solid transparent;border-radius:4px}.factory-bootstrap-439 .alert h4{margin-top:0;color:inherit}.factory-bootstrap-439 .alert .alert-link{font-weight:700}.factory-bootstrap-439 .alert>p,.factory-bootstrap-439 .alert>ul{margin-bottom:0}.factory-bootstrap-439 .alert>p+p{margin-top:5px}.factory-bootstrap-439 .alert-dismissable{padding-right:35px}.factory-bootstrap-439 .alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.factory-bootstrap-439 .alert-info{color:#31708f;background-color:#d9edf7}.factory-bootstrap-439 .alert-info hr{border-top-color:#a6e1ec}.factory-bootstrap-439 .alert-info .alert-link{color:#245269}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.factory-bootstrap-439 .progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.factory-bootstrap-439 .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#2ea2cc;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.factory-bootstrap-439 .progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.factory-bootstrap-439 .progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.factory-bootstrap-439 .progress-bar-success{background-color:#5cb85c}.factory-bootstrap-439 .progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-439 .progress-bar-info{background-color:#5bc0de}.factory-bootstrap-439 .progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-439 .progress-bar-warning{background-color:#f0ad4e}.factory-bootstrap-439 .progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-439 .progress-bar-danger{background-color:#d9534f}.factory-bootstrap-439 .progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.factory-bootstrap-439 .media,.factory-bootstrap-439 .media-body{overflow:hidden;zoom:1}.factory-bootstrap-439 .media,.factory-bootstrap-439 .media .media{margin-top:15px}.factory-bootstrap-439 .media:first-child{margin-top:0}.factory-bootstrap-439 .media-object{display:block}.factory-bootstrap-439 .media-heading{margin:0 0 5px}.factory-bootstrap-439 .media>.pull-left{margin-right:10px}.factory-bootstrap-439 .media>.pull-right{margin-left:10px}.factory-bootstrap-439 .media-list{padding-left:0;list-style:none}.factory-bootstrap-439 .list-group{padding-left:0;margin-bottom:20px}.factory-bootstrap-439 .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.factory-bootstrap-439 .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.factory-bootstrap-439 .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.factory-bootstrap-439 .list-group-item>.badge{float:right}.factory-bootstrap-439 .list-group-item>.badge+.badge{margin-right:5px}.factory-bootstrap-439 a.list-group-item{color:#555}.factory-bootstrap-439 a.list-group-item .list-group-item-heading{color:#333}.factory-bootstrap-439 a.list-group-item:focus,.factory-bootstrap-439 a.list-group-item:hover{text-decoration:none;background-color:#f5f5f5}.factory-bootstrap-439 a.list-group-item.active,.factory-bootstrap-439 a.list-group-item.active:focus,.factory-bootstrap-439 a.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-439 a.list-group-item.active .list-group-item-heading,.factory-bootstrap-439 a.list-group-item.active:focus .list-group-item-heading,.factory-bootstrap-439 a.list-group-item.active:hover .list-group-item-heading{color:inherit}.factory-bootstrap-439 a.list-group-item.active .list-group-item-text,.factory-bootstrap-439 a.list-group-item.active:focus .list-group-item-text,.factory-bootstrap-439 a.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.factory-bootstrap-439 .list-group-item-heading{margin-top:0;margin-bottom:5px}.factory-bootstrap-439 .list-group-item-text{margin-bottom:0;line-height:1.3}.factory-bootstrap-439 .panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px}.factory-bootstrap-439 .panel-body{padding:15px}.factory-bootstrap-439 .panel-body:after,.factory-bootstrap-439 .panel-body:before{display:table;content:" "}.factory-bootstrap-439 .panel-body:after{clear:both}.factory-bootstrap-439 .panel>.list-group{margin-bottom:0}.factory-bootstrap-439 .panel>.list-group .list-group-item{border-width:1px 0}.factory-bootstrap-439 .panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.factory-bootstrap-439 .panel>.list-group .list-group-item:last-child{border-bottom:0}.factory-bootstrap-439 .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.factory-bootstrap-439 .panel>.table,.factory-bootstrap-439 .panel>.table-responsive>.table{margin-bottom:0}.factory-bootstrap-439 .panel>.panel-body+.table,.factory-bootstrap-439 .panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.factory-bootstrap-439 .panel>.table>tbody:first-child td,.factory-bootstrap-439 .panel>.table>tbody:first-child th{border-top:0}.factory-bootstrap-439 .panel>.table-bordered,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered{border:0}.factory-bootstrap-439 .panel>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-439 .panel>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-439 .panel>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-439 .panel>.table-bordered>thead>tr>th:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.factory-bootstrap-439 .panel>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-439 .panel>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-439 .panel>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-439 .panel>.table-bordered>thead>tr>th:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.factory-bootstrap-439 .panel>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-439 .panel>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-439 .panel>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-439 .panel>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-439 .panel>.table-bordered>thead>tr:last-child>th,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.factory-bootstrap-439 .panel>.table-responsive>.table-bordered>thead>tr:last-child>th{border-bottom:0}.factory-bootstrap-439 .panel>.table-responsive{margin-bottom:0;border:0}.factory-bootstrap-439 .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.factory-bootstrap-439 .panel-heading>.dropdown .dropdown-toggle{color:inherit}.factory-bootstrap-439 .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.factory-bootstrap-439 .panel-title>a{color:inherit}.factory-bootstrap-439 .panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.factory-bootstrap-439 .panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.factory-bootstrap-439 .panel-group .panel+.panel{margin-top:5px}.factory-bootstrap-439 .panel-group .panel-heading{border-bottom:0}.factory-bootstrap-439 .panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.factory-bootstrap-439 .panel-group .panel-footer{border-top:0}.factory-bootstrap-439 .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.factory-bootstrap-439 .panel-default{border-color:#ddd}.factory-bootstrap-439 .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.factory-bootstrap-439 .panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.factory-bootstrap-439 .panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.factory-bootstrap-439 .panel-primary{border-color:#428bca}.factory-bootstrap-439 .panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.factory-bootstrap-439 .panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.factory-bootstrap-439 .panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.factory-bootstrap-439 .panel-success{border-color:#d6e9c6}.factory-bootstrap-439 .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.factory-bootstrap-439 .panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.factory-bootstrap-439 .panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.factory-bootstrap-439 .panel-warning{border-color:#faebcc}.factory-bootstrap-439 .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.factory-bootstrap-439 .panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.factory-bootstrap-439 .panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.factory-bootstrap-439 .panel-danger{border-color:#ebccd1}.factory-bootstrap-439 .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.factory-bootstrap-439 .panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.factory-bootstrap-439 .panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.factory-bootstrap-439 .panel-info{border-color:#bce8f1}.factory-bootstrap-439 .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.factory-bootstrap-439 .panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.factory-bootstrap-439 .panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.factory-bootstrap-439 .well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px}.factory-bootstrap-439 .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.factory-bootstrap-439 .well-lg{padding:24px;border-radius:6px}.factory-bootstrap-439 .well-sm{padding:9px;border-radius:3px}.factory-bootstrap-439 .close{float:right;font-size:14px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.3;filter:alpha(opacity=30)}.factory-bootstrap-439 .alert .close{position:relative;top:-8px;right:-7px}.factory-bootstrap-439 .close:focus,.factory-bootstrap-439 .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-439 button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.factory-bootstrap-439 .modal-open{overflow:hidden}.factory-bootstrap-439 .modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll;width:auto;margin-left:0;background-color:transparent;border:0}.factory-bootstrap-439 .modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.factory-bootstrap-439 .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.factory-bootstrap-439 .modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.factory-bootstrap-439 .modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box}.factory-bootstrap-439 .modal-backdrop,.factory-bootstrap-439-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.factory-bootstrap-439 .modal-backdrop.fade,.factory-bootstrap-439-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.factory-bootstrap-439 .modal-backdrop.in,.factory-bootstrap-439-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-439 .modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.factory-bootstrap-439 .modal-header .close{margin-top:-2px}.factory-bootstrap-439 .modal-title{margin:0;line-height:1.428571429}.factory-bootstrap-439 .modal-body{position:relative;padding:20px;max-height:none}.factory-bootstrap-439 .modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.factory-bootstrap-439 .modal-footer:after,.factory-bootstrap-439 .modal-footer:before{display:table;content:" "}.factory-bootstrap-439 .modal-footer:after{clear:both}.factory-bootstrap-439 .modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.factory-bootstrap-439 .modal-footer .btn-group .btn+.btn{margin-left:-1px}.factory-bootstrap-439 .modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.factory-bootstrap-439 .modal-dialog{width:600px;margin:30px auto}.factory-bootstrap-439 .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}}.factory-bootstrap-439 .tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.factory-bootstrap-439 .tooltip.in{opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-439 .tooltip.top{padding:5px 0;margin-top:-3px}.factory-bootstrap-439 .tooltip.right{padding:0 5px;margin-left:3px}.factory-bootstrap-439 .tooltip.bottom{padding:5px 0;margin-top:3px}.factory-bootstrap-439 .tooltip.left{padding:0 5px;margin-left:-3px}.factory-bootstrap-439 .tooltip-inner{width:400px;padding:15px 20px;color:#fff;text-align:left;text-decoration:none;background-color:#673ab7;border-radius:3px}.factory-bootstrap-439 .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-439 .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-439 .tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-439 .tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#673ab7;border-width:5px 5px 0}.factory-bootstrap-439 .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#673ab7;border-width:5px 5px 5px 0}.factory-bootstrap-439 .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#673ab7;border-width:5px 0 5px 5px}.factory-bootstrap-439 .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-439 .tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-439 .tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#673ab7;border-width:0 5px 5px}.factory-bootstrap-439 .popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);background-clip:padding-box}.factory-bootstrap-439 .popover.top{margin-top:-10px}.factory-bootstrap-439 .popover.right{margin-left:10px}.factory-bootstrap-439 .popover.bottom{margin-top:10px}.factory-bootstrap-439 .popover.left{margin-left:-10px}.factory-bootstrap-439 .popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.factory-bootstrap-439 .popover-content{padding:9px 14px}.factory-bootstrap-439 .popover .arrow,.factory-bootstrap-439 .popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.factory-bootstrap-439 .popover .arrow{border-width:11px}.factory-bootstrap-439 .popover .arrow:after{border-width:10px;content:""}.factory-bootstrap-439 .popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.factory-bootstrap-439 .popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.factory-bootstrap-439 .popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.factory-bootstrap-439 .popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.factory-bootstrap-439 .popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);border-top-width:0}.factory-bootstrap-439 .popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.factory-bootstrap-439 .popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,.25);border-right-width:0}.factory-bootstrap-439 .popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.factory-bootstrap-439 .carousel{position:relative}.factory-bootstrap-439 .carousel-inner{position:relative;width:100%;overflow:hidden}.factory-bootstrap-439 .carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.factory-bootstrap-439 .carousel-inner>.item>a>img,.factory-bootstrap-439 .carousel-inner>.item>img{display:block;height:auto;max-width:100%;line-height:1}.factory-bootstrap-439 .carousel-inner>.active,.factory-bootstrap-439 .carousel-inner>.next,.factory-bootstrap-439 .carousel-inner>.prev{display:block}.factory-bootstrap-439 .carousel-inner>.active{left:0}.factory-bootstrap-439 .carousel-inner>.next,.factory-bootstrap-439 .carousel-inner>.prev{position:absolute;top:0;width:100%}.factory-bootstrap-439 .carousel-inner>.next{left:100%}.factory-bootstrap-439 .carousel-inner>.prev{left:-100%}.factory-bootstrap-439 .carousel-inner>.next.left,.factory-bootstrap-439 .carousel-inner>.prev.right{left:0}.factory-bootstrap-439 .carousel-inner>.active.left{left:-100%}.factory-bootstrap-439 .carousel-inner>.active.right{left:100%}.factory-bootstrap-439 .carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);opacity:.5;filter:alpha(opacity=50)}.factory-bootstrap-439 .carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.factory-bootstrap-439 .carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.factory-bootstrap-439 .carousel-control:focus,.factory-bootstrap-439 .carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.factory-bootstrap-439 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-439 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-439 .carousel-control .icon-next,.factory-bootstrap-439 .carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.factory-bootstrap-439 .carousel-control .glyphicon-chevron-left,.factory-bootstrap-439 .carousel-control .icon-prev{left:50%}.factory-bootstrap-439 .carousel-control .glyphicon-chevron-right,.factory-bootstrap-439 .carousel-control .icon-next{right:50%}.factory-bootstrap-439 .carousel-control .icon-next,.factory-bootstrap-439 .carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.factory-bootstrap-439 .carousel-control .icon-prev:before{content:'\2039'}.factory-bootstrap-439 .carousel-control .icon-next:before{content:'\203a'}.factory-bootstrap-439 .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.factory-bootstrap-439 .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.factory-bootstrap-439 .carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.factory-bootstrap-439 .carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.factory-bootstrap-439 .carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.factory-bootstrap-439 .clearfix:after,.factory-bootstrap-439 .clearfix:before{display:table;content:" "}.factory-bootstrap-439 .clearfix:after{clear:both}.factory-bootstrap-439 .center-block{display:block;margin-right:auto;margin-left:auto}.factory-bootstrap-439 .pull-right{float:right!important}.factory-bootstrap-439 .pull-left{float:left!important}.factory-bootstrap-439 .hide{display:none!important}.factory-bootstrap-439 .show{display:block!important}.factory-bootstrap-439 .invisible{visibility:hidden}.factory-bootstrap-439 .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.factory-bootstrap-439 .hidden{display:none!important;visibility:hidden!important}.factory-bootstrap-439 .affix{position:fixed}@-ms-viewport{width:device-width}.factory-bootstrap-439 .visible-lg,.factory-bootstrap-439 .visible-md,.factory-bootstrap-439 .visible-sm,.factory-bootstrap-439 .visible-xs,.factory-bootstrap-439 td.visible-lg,.factory-bootstrap-439 td.visible-md,.factory-bootstrap-439 td.visible-sm,.factory-bootstrap-439 td.visible-xs,.factory-bootstrap-439 th.visible-lg,.factory-bootstrap-439 th.visible-md,.factory-bootstrap-439 th.visible-sm,.factory-bootstrap-439 th.visible-xs,.factory-bootstrap-439 tr.visible-lg,.factory-bootstrap-439 tr.visible-md,.factory-bootstrap-439 tr.visible-sm,.factory-bootstrap-439 tr.visible-xs{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}table.visible-xs.visible-sm{display:table}tr.visible-xs.visible-sm{display:table-row!important}td.visible-xs.visible-sm,th.visible-xs.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}table.visible-xs.visible-md{display:table}tr.visible-xs.visible-md{display:table-row!important}td.visible-xs.visible-md,th.visible-xs.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-xs.visible-lg{display:block!important}table.visible-xs.visible-lg{display:table}tr.visible-xs.visible-lg{display:table-row!important}td.visible-xs.visible-lg,th.visible-xs.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-sm.visible-xs{display:block!important}table.visible-sm.visible-xs{display:table}tr.visible-sm.visible-xs{display:table-row!important}td.visible-sm.visible-xs,th.visible-sm.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}table.visible-sm.visible-md{display:table}tr.visible-sm.visible-md{display:table-row!important}td.visible-sm.visible-md,th.visible-sm.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-sm.visible-lg{display:block!important}table.visible-sm.visible-lg{display:table}tr.visible-sm.visible-lg{display:table-row!important}td.visible-sm.visible-lg,th.visible-sm.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-md.visible-xs{display:block!important}table.visible-md.visible-xs{display:table}tr.visible-md.visible-xs{display:table-row!important}td.visible-md.visible-xs,th.visible-md.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}table.visible-md.visible-sm{display:table}tr.visible-md.visible-sm{display:table-row!important}td.visible-md.visible-sm,th.visible-md.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-md.visible-lg{display:block!important}table.visible-md.visible-lg{display:table}tr.visible-md.visible-lg{display:table-row!important}td.visible-md.visible-lg,th.visible-md.visible-lg{display:table-cell!important}}@media (max-width:767px){.visible-lg.visible-xs{display:block!important}table.visible-lg.visible-xs{display:table}tr.visible-lg.visible-xs{display:table-row!important}td.visible-lg.visible-xs,th.visible-lg.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}table.visible-lg.visible-sm{display:table}tr.visible-lg.visible-sm{display:table-row!important}td.visible-lg.visible-sm,th.visible-lg.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}table.visible-lg.visible-md{display:table}tr.visible-lg.visible-md{display:table-row!important}td.visible-lg.visible-md,th.visible-lg.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}.factory-bootstrap-439 .hidden-xs{display:block!important}.factory-bootstrap-439 table.hidden-xs{display:table}.factory-bootstrap-439 tr.hidden-xs{display:table-row!important}.factory-bootstrap-439 td.hidden-xs,.factory-bootstrap-439 th.hidden-xs{display:table-cell!important}@media (max-width:767px){.hidden-xs,td.hidden-xs,th.hidden-xs,tr.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,td.hidden-xs.hidden-md,th.hidden-xs.hidden-md,tr.hidden-xs.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg{display:none!important}}.factory-bootstrap-439 .hidden-sm{display:block!important}.factory-bootstrap-439 table.hidden-sm{display:table}.factory-bootstrap-439 tr.hidden-sm{display:table-row!important}.factory-bootstrap-439 td.hidden-sm,.factory-bootstrap-439 th.hidden-sm{display:table-cell!important}@media (max-width:767px){.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm,td.hidden-sm,th.hidden-sm,tr.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,td.hidden-sm.hidden-md,th.hidden-sm.hidden-md,tr.hidden-sm.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg{display:none!important}}.factory-bootstrap-439 .hidden-md{display:block!important}.factory-bootstrap-439 table.hidden-md{display:table}.factory-bootstrap-439 tr.hidden-md{display:table-row!important}.factory-bootstrap-439 td.hidden-md,.factory-bootstrap-439 th.hidden-md{display:table-cell!important}@media (max-width:767px){.hidden-md.hidden-xs,td.hidden-md.hidden-xs,th.hidden-md.hidden-xs,tr.hidden-md.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,td.hidden-md.hidden-sm,th.hidden-md.hidden-sm,tr.hidden-md.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md,td.hidden-md,th.hidden-md,tr.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-md.hidden-lg,td.hidden-md.hidden-lg,th.hidden-md.hidden-lg,tr.hidden-md.hidden-lg{display:none!important}}.factory-bootstrap-439 .hidden-lg{display:block!important}.factory-bootstrap-439 table.hidden-lg{display:table}.factory-bootstrap-439 tr.hidden-lg{display:table-row!important}.factory-bootstrap-439 td.hidden-lg,.factory-bootstrap-439 th.hidden-lg{display:table-cell!important}@media (max-width:767px){.factory-bootstrap-439 .hidden-lg.hidden-xs,.factory-bootstrap-439 td.hidden-lg.hidden-xs,.factory-bootstrap-439 th.hidden-lg.hidden-xs,.factory-bootstrap-439 tr.hidden-lg.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.factory-bootstrap-439 .hidden-lg.hidden-sm,.factory-bootstrap-439 td.hidden-lg.hidden-sm,.factory-bootstrap-439 th.hidden-lg.hidden-sm,.factory-bootstrap-439 tr.hidden-lg.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.factory-bootstrap-439 .hidden-lg.hidden-md,.factory-bootstrap-439 td.hidden-lg.hidden-md,.factory-bootstrap-439 th.hidden-lg.hidden-md,.factory-bootstrap-439 tr.hidden-lg.hidden-md{display:none!important}}@media (min-width:1200px){.factory-bootstrap-439 .hidden-lg,.factory-bootstrap-439 td.hidden-lg,.factory-bootstrap-439 th.hidden-lg,.factory-bootstrap-439 tr.hidden-lg{display:none!important}}.factory-bootstrap-439 .visible-print,.factory-bootstrap-439 td.visible-print,.factory-bootstrap-439 th.visible-print,.factory-bootstrap-439 tr.visible-print{display:none!important}@media print{.factory-bootstrap-439 .visible-print{display:block!important}.factory-bootstrap-439 table.visible-print{display:table}.factory-bootstrap-439 tr.visible-print{display:table-row!important}.factory-bootstrap-439 td.visible-print,.factory-bootstrap-439 th.visible-print{display:table-cell!important}.factory-bootstrap-439 .hidden-print,.factory-bootstrap-439 td.hidden-print,.factory-bootstrap-439 th.hidden-print,.factory-bootstrap-439 tr.hidden-print{display:none!important}}/*!
12
  * Factory Default Bootstrap Theme
13
  *
14
  * The code is based on Bootstrap v2.1.1
22
  *
23
  * @package factory-bootstrap
24
  * @since 1.0.0
25
+ */.factory-bootstrap-439 .btn-danger,.factory-bootstrap-439 .btn-default,.factory-bootstrap-439 .btn-info,.factory-bootstrap-439 .btn-primary,.factory-bootstrap-439 .btn-success,.factory-bootstrap-439 .btn-warning{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.factory-bootstrap-439 .btn-danger.active,.factory-bootstrap-439 .btn-danger:active,.factory-bootstrap-439 .btn-default.active,.factory-bootstrap-439 .btn-default:active,.factory-bootstrap-439 .btn-info.active,.factory-bootstrap-439 .btn-info:active,.factory-bootstrap-439 .btn-primary.active,.factory-bootstrap-439 .btn-primary:active,.factory-bootstrap-439 .btn-success.active,.factory-bootstrap-439 .btn-success:active,.factory-bootstrap-439 .btn-warning.active,.factory-bootstrap-439 .btn-warning:active{-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.1);box-shadow:inset 0 1px 1px rgba(0,0,0,.1)}.factory-bootstrap-439 .btn.active,.factory-bootstrap-439 .btn:active{background-image:none}.factory-bootstrap-439 .btn-default{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);vertical-align:top}.factory-bootstrap-439 .btn-default.active,.factory-bootstrap-439 .btn-default:active{background-color:#fff;border-color:#dbdbdb}.factory-bootstrap-439 .btn-gold{font-weight:700;padding:7px 12px;cursor:pointer;line-height:16px;display:inline-block;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;box-shadow:#e3e3e3 0 1px 1px;-moz-box-shadow:0 1px 1px rgba(000,000,000,.1),inset 0 1px 1px rgba(255,255,255,.7);-webkit-box-shadow:0 1px 1px rgba(000,000,000,.1),inset 0 1px 1px rgba(255,255,255,.7);text-shadow:1px 1px 0 #ffe8b2;color:#7c5d1b;border:1px solid #d6a437;background:#feeb80}.factory-bootstrap-439 .btn-gold:focus,.factory-bootstrap-439 .btn-gold:hover{background:#fef0a1}.factory-bootstrap-439 .btn-gold.active,.factory-bootstrap-439 .btn-gold:active{background:#fef0a1;-webkit-box-shadow:inset 0 3px 8px 0 #f8ba36;box-shadow:inset 0 3px 8px 0 #f8ba36}.factory-bootstrap-439 .btn-primary{background:#2ea2cc;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(120,200,230,.5),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none}.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover{background:#1e8cbe;border-color:#0074a2;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff}.factory-bootstrap-439 .btn-primary.active,.factory-bootstrap-439 .btn-primary:active{background-color:#2d6ca2;border-color:#2b669a}.factory-bootstrap-439 .btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);background-repeat:repeat-x;border-color:#3e8f3e;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-439 .btn-success:focus,.factory-bootstrap-439 .btn-success:hover{background-color:#419641;background-position:0 -15px}.factory-bootstrap-439 .btn-success.active,.factory-bootstrap-439 .btn-success:active{background-color:#419641;border-color:#3e8f3e}.factory-bootstrap-439 .btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);background-repeat:repeat-x;border-color:#e38d13;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-439 .btn-warning:focus,.factory-bootstrap-439 .btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.factory-bootstrap-439 .btn-warning.active,.factory-bootstrap-439 .btn-warning:active{background-color:#eb9316;border-color:#e38d13}.factory-bootstrap-439 .btn-danger{color:#fff;background:#d9534f;border-color:#d43f3a}.factory-bootstrap-439 .btn-danger.active,.factory-bootstrap-439 .btn-danger:active,.factory-bootstrap-439 .btn-danger:focus,.factory-bootstrap-439 .btn-danger:hover,.factory-bootstrap-439 .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.factory-bootstrap-439 .btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);background-repeat:repeat-x;border-color:#28a4c9;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-439 .btn-info:focus,.factory-bootstrap-439 .btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.factory-bootstrap-439 .btn-info.active,.factory-bootstrap-439 .btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.factory-bootstrap-439 .img-thumbnail,.factory-bootstrap-439 .thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-439 .dropdown-menu>li>a:focus,.factory-bootstrap-439 .dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.factory-bootstrap-439 .dropdown-menu>.active>a,.factory-bootstrap-439 .dropdown-menu>.active>a:focus,.factory-bootstrap-439 .dropdown-menu>.active>a:hover{background-color:#357ebd;background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.factory-bootstrap-439 .navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.factory-bootstrap-439 .navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.factory-bootstrap-439 .navbar-brand,.factory-bootstrap-439 .navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.factory-bootstrap-439 .navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.factory-bootstrap-439 .navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.factory-bootstrap-439 .navbar-inverse .navbar-brand,.factory-bootstrap-439 .navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.factory-bootstrap-439 .navbar-fixed-bottom,.factory-bootstrap-439 .navbar-fixed-top,.factory-bootstrap-439 .navbar-static-top{border-radius:0}.factory-bootstrap-439 .alert{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-439 .alert .actions{padding-top:10px}.factory-bootstrap-439 .alert-success{color:#3c763d;background-color:#dff0d8;border-bottom:2px solid #c8e5bc}.factory-bootstrap-439 .alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;border-color:#9acfea;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0)}.factory-bootstrap-439 .alert{text-shadow:none;box-shadow:none;margin:0;margin-top:10px;margin-bottom:10px;padding:10px}.factory-bootstrap-439 .alert-normal,.factory-bootstrap-439 .alert-warning{background:#fcf8e3;color:#8a6d3b;border:1px solid #b8823b}.factory-bootstrap-439 .alert-danger{background:#cf4944;color:#fff;border-bottom:2px solid #b23e3a}.factory-bootstrap-439 .alert-danger a:not(.btn),.factory-bootstrap-439 .alert-error a:not(.btn){color:#fff}.factory-bootstrap-439 .progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.factory-bootstrap-439 .progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.factory-bootstrap-439 .progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.factory-bootstrap-439 .progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.factory-bootstrap-439 .progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.factory-bootstrap-439 .progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.factory-bootstrap-439 .list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.factory-bootstrap-439 .list-group-item.active,.factory-bootstrap-439 .list-group-item.active:focus,.factory-bootstrap-439 .list-group-item.active:hover{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;border-color:#3278b3;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0)}.factory-bootstrap-439 .panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.factory-bootstrap-439 .panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.factory-bootstrap-439 .panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.factory-bootstrap-439 .panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.factory-bootstrap-439 .panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.factory-bootstrap-439 .panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.factory-bootstrap-439 .panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.factory-bootstrap-439 .well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;border-color:#dcdcdc;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}.factory-bootstrap-439 .factory-after{margin-left:7px;display:inline-block}.factory-bootstrap-439 .factory-hidden{display:none}.factory-bootstrap-439 .factory-ajax-loader{width:25px;height:25px;background:url(../assets/images/loader-sm-tr.gif)}.factory-control-error{background-color:rgba(0,0,0,.8);white-space:normal;z-index:10;font-weight:400;line-height:150%;border-radius:4px;color:#fff;font-size:13px;margin-top:5px;padding:4px 10px 3px;max-width:500px;display:inline-block}.factory-control-error i{margin:0 7px 0 1px}
libs/factory/bootstrap/assets/css-min/bootstrap.datepicker.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
libs/factory/bootstrap/assets/css-min/bootstrap.ectoplasm.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .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-433 .btn-primary:focus,.factory-bootstrap-433 .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-433 .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-433 .btn-primary:disabled,.factory-bootstrap-433 .btn-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.factory-bootstrap-433 .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-433 .pagination>.active>a,.factory-bootstrap-433 .pagination>.active>a:focus,.factory-bootstrap-433 .pagination>.active>a:hover,.factory-bootstrap-433 .pagination>.active>span,.factory-bootstrap-433 .pagination>.active>span:focus,.factory-bootstrap-433 .pagination>.active>span:hover{background-color:#a3b745;border-color:#839237}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .btn-primary{background:#a3b745;border-color:#839237;color:#fff;-webkit-box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #c0cd7b,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover{background:#89993a;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 1px 0 #b7c669,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #b7c669,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:active{background:#89993a;border-color:#727f30;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.factory-bootstrap-439 .btn-group .btn.active.value{background-color:#a3b745;-webkit-box-shadow:inset 0 1px 2px #839237;box-shadow:inset 0 1px 2px #839237;border-top:1px solid #839237;border-bottom:1px solid #839237;border-left:1px solid #839237}.factory-bootstrap-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#a3b745;border-color:#839237}
libs/factory/bootstrap/assets/css-min/bootstrap.form-group.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .factory-form-group .factory-legend{padding:9px 12px;background-color:#f9f9f9}.factory-bootstrap-433 .factory-form-group .factory-title{font-weight:700;font-size:14px;line-height:14px;color:#555;margin:0}.factory-bootstrap-433 .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-433 .factory-form-group .factory-hint-icon.factory-hint-icon-green{background:#8bc34a}.factory-bootstrap-433 .factory-form-group .factory-hint-icon.factory-hint-icon-grey{background:#9e9e9e}.factory-bootstrap-433 .factory-form-group .factory-hint-icon.factory-hint-icon-red{background:#E91E63}.factory-bootstrap-433 .factory-form-group .factory-hint{margin:0;font-size:12px;line-height:16px;margin-top:6px}.factory-bootstrap-433 .factory-form-group+.factory-form-group{margin-top:30px}.factory-bootstrap-433 .factory-form-group legend+.control-group{margin-top:0}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-form-group .factory-legend{padding:9px 12px;background-color:#f9f9f9}.factory-bootstrap-439 .factory-form-group .factory-title{font-weight:700;font-size:14px;line-height:14px;color:#555;margin:0}.factory-bootstrap-439 .factory-form-group .factory-hint-icon{display:block;width:16px;height:16px;line-height:13px;padding:0;font-size:11px;text-align:center;position:absolute;top:-5px;right:-3px;color:#fff;background:#E91E63;border-radius:3px}.factory-bootstrap-439 .factory-form-group .factory-hint-icon.factory-hint-icon-green{background:#8bc34a}.factory-bootstrap-439 .factory-form-group .factory-hint-icon.factory-hint-icon-grey{background:#9e9e9e}.factory-bootstrap-439 .factory-form-group .factory-hint-icon.factory-hint-icon-red{background:#E91E63}.factory-bootstrap-439 .factory-form-group .factory-hint{margin:0;font-size:12px;line-height:16px;margin-top:6px}.factory-bootstrap-439 .factory-form-group+.factory-form-group{margin-top:30px}.factory-bootstrap-439 .factory-form-group legend+.control-group{margin-top:0}
libs/factory/bootstrap/assets/css-min/bootstrap.light.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .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-433 .btn-primary:focus,.factory-bootstrap-433 .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-433 .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-433 .btn-primary:disabled,.factory-bootstrap-433 .btn-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.factory-bootstrap-433 .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-433 .pagination>.active>a,.factory-bootstrap-433 .pagination>.active>a:focus,.factory-bootstrap-433 .pagination>.active>a:hover,.factory-bootstrap-433 .pagination>.active>span,.factory-bootstrap-433 .pagination>.active>span:focus,.factory-bootstrap-433 .pagination>.active>span:hover{background-color:#04a4cc;border-color:#037c9a}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .btn-primary{background:#04a4cc;border-color:#037c9a;color:#fff;-webkit-box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #22cffb,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover{background:#0384a4;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 1px 0 #09cafa,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #09cafa,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:active{background:#0384a4;border-color:#036881;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.factory-bootstrap-439 .btn-group .btn.active.value{background-color:#04a4cc;-webkit-box-shadow:inset 0 1px 2px #037c9a;box-shadow:inset 0 1px 2px #037c9a;border-top:1px solid #037c9a;border-bottom:1px solid #037c9a;border-left:1px solid #037c9a}.factory-bootstrap-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#04a4cc;border-color:#037c9a}
libs/factory/bootstrap/assets/css-min/bootstrap.midnight.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .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-433 .btn-primary:focus,.factory-bootstrap-433 .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-433 .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-433 .btn-primary:disabled,.factory-bootstrap-433 .btn-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.factory-bootstrap-433 .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-433 .pagination>.active>a,.factory-bootstrap-433 .pagination>.active>a:focus,.factory-bootstrap-433 .pagination>.active>a:hover,.factory-bootstrap-433 .pagination>.active>span,.factory-bootstrap-433 .pagination>.active>span:focus,.factory-bootstrap-433 .pagination>.active>span:hover{background-color:#e14d43;border-color:#d02a21}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .btn-primary{background:#e14d43;border-color:#d02a21;color:#fff;-webkit-box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #ec8a85,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover{background:#d92c23;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8756f,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8756f,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:active{background:#d92c23;border-color:#ba251e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#d1c7c7!important;background:#d92c23!important;border-color:#ba251e!important;text-shadow:none!important}.factory-bootstrap-439 .btn-group .btn.active.value{background-color:#e14d43;-webkit-box-shadow:inset 0 1px 2px #d02a21;box-shadow:inset 0 1px 2px #d02a21;border-top:1px solid #d02a21;border-bottom:1px solid #d02a21;border-left:1px solid #d02a21}.factory-bootstrap-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#e14d43;border-color:#d02a21}
libs/factory/bootstrap/assets/css-min/bootstrap.ocean.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .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-433 .btn-primary:focus,.factory-bootstrap-433 .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-433 .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-433 .btn-primary:disabled,.factory-bootstrap-433 .btn-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.factory-bootstrap-433 .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-433 .pagination>.active>a,.factory-bootstrap-433 .pagination>.active>a:focus,.factory-bootstrap-433 .pagination>.active>a:hover,.factory-bootstrap-433 .pagination>.active>span,.factory-bootstrap-433 .pagination>.active>span:focus,.factory-bootstrap-433 .pagination>.active>span:hover{background-color:#9ebaa0;border-color:#80a583}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .btn-primary{background:#9ebaa0;border-color:#80a583;color:#fff;-webkit-box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #cbdacc,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover{background:#86a988;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 1px 0 #bccfbd,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #bccfbd,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:active{background:#86a988;border-color:#719a74;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#c7d1c8!important;background:#86a988!important;border-color:#719a74!important;text-shadow:none!important}.factory-bootstrap-439 .btn-group .btn.active.value{background-color:#9ebaa0;-webkit-box-shadow:inset 0 1px 2px #80a583;box-shadow:inset 0 1px 2px #80a583;border-top:1px solid #80a583;border-bottom:1px solid #80a583;border-left:1px solid #80a583}.factory-bootstrap-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#9ebaa0;border-color:#80a583}
libs/factory/bootstrap/assets/css-min/bootstrap.separator.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .factory-separator{border-bottom:1px solid #f9f9f9;border-top:1px solid #d1d1d1;margin-bottom:25px}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-separator{border-bottom:1px solid #f9f9f9;border-top:1px solid #d1d1d1;margin-bottom:25px}
libs/factory/bootstrap/assets/css-min/bootstrap.sunrise.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .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-433 .btn-primary:focus,.factory-bootstrap-433 .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-433 .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-433 .btn-primary:disabled,.factory-bootstrap-433 .btn-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.factory-bootstrap-433 .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-433 .pagination>.active>a,.factory-bootstrap-433 .pagination>.active>a:focus,.factory-bootstrap-433 .pagination>.active>a:hover,.factory-bootstrap-433 .pagination>.active>span,.factory-bootstrap-433 .pagination>.active>span:focus,.factory-bootstrap-433 .pagination>.active>span:hover{background-color:#dd823b;border-color:#c36822}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .btn-primary{background:#dd823b;border-color:#c36822;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e8ab7c,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:focus,.factory-bootstrap-439 .btn-primary:hover{background:#cc6c23;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 1px 0 #e59d66,0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 #e59d66,0 1px 0 rgba(0,0,0,.15)}.factory-bootstrap-439 .btn-primary:active{background:#cc6c23;border-color:#ad5c1e;color:#fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}.factory-bootstrap-439 .btn-primary:disabled,.factory-bootstrap-439 .btn-primary[disabled]{color:#d1cbc7!important;background:#cc6c23!important;border-color:#ad5c1e!important;text-shadow:none!important}.factory-bootstrap-439 .btn-group .btn.active.value{background-color:#dd823b;-webkit-box-shadow:inset 0 1px 2px #c36822;box-shadow:inset 0 1px 2px #c36822;border-top:1px solid #c36822;border-bottom:1px solid #c36822;border-left:1px solid #c36822}.factory-bootstrap-439 .pagination>.active>a,.factory-bootstrap-439 .pagination>.active>a:focus,.factory-bootstrap-439 .pagination>.active>a:hover,.factory-bootstrap-439 .pagination>.active>span,.factory-bootstrap-439 .pagination>.active>span:focus,.factory-bootstrap-439 .pagination>.active>span:hover{background-color:#dd823b;border-color:#c36822}
libs/factory/bootstrap/assets/css-min/control.checkbox.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- #side-sortables .factory-bootstrap-433 .factory-buttons-way{float:right;position:relative;top:-25px;left:5px;border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-433 .factory-buttons-way{border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-433 .factory-buttons-way button{padding-left:10px;padding-right:10px}.factory-bootstrap-433 .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-433 .factory-checkbox-tumbler-hint{margin-top:5px}.factory-bootstrap-433 .factory-checkbox-tumbler-hint .factory-tumbler-content{display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-433 .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-433 .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-433 .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-433 .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-433 .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-433 .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-433 .factory-buttons-way .factory-on.active{background-color:#dd823b;-webkit-box-shadow:inset 0 1px 2px #c36822;box-shadow:inset 0 1px 2px #c36822;border-top:1px solid #c36822;border-bottom:1px solid #c36822;border-left:1px solid #c36822}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ #side-sortables .factory-bootstrap-439 .factory-buttons-way{float:right;position:relative;top:-25px;left:5px;border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-439 .factory-checkbox-disabled button,.factory-bootstrap-439 .factory-checkbox-disabled input{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.factory-bootstrap-439 .factory-buttons-way{border:3px solid #f9f9f9;border-radius:4px}.factory-bootstrap-439 .factory-buttons-way button{padding-left:10px;padding-right:10px}.factory-bootstrap-439 .factory-buttons-way .factory-on.active{text-shadow:none;color:#fff;background-color:#33aad5;-webkit-box-shadow:inset 0 1px 1px #0074a2;box-shadow:inset 0 1px 3px #0074a2;border-top:1px solid #0074a2;border-bottom:1px solid #0074a2;border-left:1px solid #0074a2}.factory-bootstrap-439 .factory-checkbox-tumbler-hint{margin-top:5px}.factory-bootstrap-439 .factory-checkbox-tumbler-hint .factory-tumbler-content{display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-439 .factory-buttons-way .factory-on.active{background-color:#04a4cc;-webkit-box-shadow:inset 0 1px 2px #037c9a;box-shadow:inset 0 1px 2px #037c9a;border-top:1px solid #037c9a;border-bottom:1px solid #037c9a;border-left:1px solid #037c9a}.admin-color-blue .factory-bootstrap-439 .factory-buttons-way .factory-on.active{background-color:#e1a948;-webkit-box-shadow:inset 0 1px 2px #d39323;box-shadow:inset 0 1px 2px #d39323;border-top:1px solid #d39323;border-bottom:1px solid #d39323;border-left:1px solid #d39323}.admin-color-coffee .factory-bootstrap-439 .factory-buttons-way .factory-on.active{background-color:#c7a589;-webkit-box-shadow:inset 0 1px 2px #b78a66;box-shadow:inset 0 1px 2px #b78a66;border-top:1px solid #b78a66;border-bottom:1px solid #b78a66;border-left:1px solid #b78a66}.admin-color-ectoplasm .factory-bootstrap-439 .factory-buttons-way .factory-on.active{background-color:#a3b745;-webkit-box-shadow:inset 0 1px 2px #839237;box-shadow:inset 0 1px 2px #839237;border-top:1px solid #839237;border-bottom:1px solid #839237;border-left:1px solid #839237}.admin-color-midnight .factory-bootstrap-439 .factory-buttons-way .factory-on.active{background-color:#e14d43;-webkit-box-shadow:inset 0 1px 2px #d02a21;box-shadow:inset 0 1px 2px #d02a21;border-top:1px solid #d02a21;border-bottom:1px solid #d02a21;border-left:1px solid #d02a21}.admin-color-ocean .factory-bootstrap-439 .factory-buttons-way .factory-on.active{background-color:#9ebaa0;-webkit-box-shadow:inset 0 1px 2px #80a583;box-shadow:inset 0 1px 2px #80a583;border-top:1px solid #80a583;border-bottom:1px solid #80a583;border-left:1px solid #80a583}.admin-color-sunrise .factory-bootstrap-439 .factory-buttons-way .factory-on.active{background-color:#dd823b;-webkit-box-shadow:inset 0 1px 2px #c36822;box-shadow:inset 0 1px 2px #c36822;border-top:1px solid #c36822;border-bottom:1px solid #c36822;border-left:1px solid #c36822}
libs/factory/bootstrap/assets/css-min/control.dropdown.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .factory-dropdown.factory-buttons-way .fa{margin-right:6px;position:relative}.factory-bootstrap-433 .factory-dropdown.factory-buttons-way{border:0;border-radius:0}.factory-bootstrap-433 .factory-hints .factory-hint{margin-top:5px;display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-433 .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-433 .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-433 .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-433 .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-433 .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-433 .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-433 .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-433 .factory-dropdown.factory-ddslick-way .dd-select{background-color:#fff!important}.factory-bootstrap-433 .factory-dropdown.factory-ddslick-way label{margin-bottom:1px}.factory-bootstrap-433 .factory-dropdown.factory-ddslick-way .dd-option,.factory-bootstrap-433 .factory-dropdown.factory-ddslick-way .dd-selected{padding:8px 12px 8px 11px!important}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-dropdown.factory-buttons-way .fa{margin-right:6px;position:relative}.factory-bootstrap-439 .factory-dropdown.factory-buttons-way{border:0;border-radius:0}.factory-bootstrap-439 .factory-hints .factory-hint{margin-top:5px;display:inline-block;background-color:#ffd;padding:1px 5px}.admin-color-light .factory-bootstrap-439 .factory-dropdown.factory-buttons-way .active{background-color:#04a4cc;-webkit-box-shadow:inset 0 1px 2px #037c9a;box-shadow:inset 0 1px 2px #037c9a;border-top:1px solid #037c9a;border-bottom:1px solid #037c9a;border-left:1px solid #037c9a}.admin-color-blue .factory-bootstrap-439 .factory-dropdown.factory-buttons-way .active{background-color:#e1a948;-webkit-box-shadow:inset 0 1px 2px #d39323;box-shadow:inset 0 1px 2px #d39323;border-top:1px solid #d39323;border-bottom:1px solid #d39323;border-left:1px solid #d39323}.admin-color-coffee .factory-bootstrap-439 .factory-dropdown.factory-buttons-way .active{background-color:#c7a589;-webkit-box-shadow:inset 0 1px 2px #b78a66;box-shadow:inset 0 1px 2px #b78a66;border-top:1px solid #b78a66;border-bottom:1px solid #b78a66;border-left:1px solid #b78a66}.admin-color-ectoplasm .factory-bootstrap-439 .factory-dropdown.factory-buttons-way .active{background-color:#a3b745;-webkit-box-shadow:inset 0 1px 2px #839237;box-shadow:inset 0 1px 2px #839237;border-top:1px solid #839237;border-bottom:1px solid #839237;border-left:1px solid #839237}.admin-color-midnight .factory-bootstrap-439 .factory-dropdown.factory-buttons-way .active{background-color:#e14d43;-webkit-box-shadow:inset 0 1px 2px #d02a21;box-shadow:inset 0 1px 2px #d02a21;border-top:1px solid #d02a21;border-bottom:1px solid #d02a21;border-left:1px solid #d02a21}.admin-color-ocean .factory-bootstrap-439 .factory-dropdown.factory-buttons-way .active{background-color:#9ebaa0;-webkit-box-shadow:inset 0 1px 2px #80a583;box-shadow:inset 0 1px 2px #80a583;border-top:1px solid #80a583;border-bottom:1px solid #80a583;border-left:1px solid #80a583}.admin-color-sunrise .factory-bootstrap-439 .factory-dropdown.factory-buttons-way .active{background-color:#dd823b;-webkit-box-shadow:inset 0 1px 2px #c36822;box-shadow:inset 0 1px 2px #c36822;border-top:1px solid #c36822;border-bottom:1px solid #c36822;border-left:1px solid #c36822}.factory-bootstrap-439 .factory-dropdown.factory-ddslick-way .dd-select{background-color:#fff!important}.factory-bootstrap-439 .factory-dropdown.factory-ddslick-way label{margin-bottom:1px}.factory-bootstrap-439 .factory-dropdown.factory-ddslick-way .dd-option,.factory-bootstrap-439 .factory-dropdown.factory-ddslick-way .dd-selected{padding:8px 12px 8px 11px!important}
libs/factory/bootstrap/assets/css-min/control.multiple-textbox.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .factory-mtextbox-item{position:relative;margin-bottom:5px}.factory-bootstrap-433 .factory-mtextbox-item input,.factory-mtextbox-remove-item{display:inline-block}.factory-bootstrap-433 .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-433 .factory-mtextbox-item .factory-mtextbox-remove-item:focus,.factory-bootstrap-433 .factory-mtextbox-item .factory-mtextbox-remove-item:hover{box-shadow:none;outline:0}.factory-bootstrap-433 .factory-mtextbox-add-item{display:block;margin-top:10px}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-mtextbox-item{position:relative;margin-bottom:5px}.factory-bootstrap-439 .factory-mtextbox-item input,.factory-mtextbox-remove-item{display:inline-block}.factory-bootstrap-439 .factory-mtextbox-item .factory-mtextbox-remove-item{position:absolute;top:0;right:0;bottom:0;width:40px;border-radius:0 3px 3px 0;outline:0}.factory-bootstrap-439 .factory-mtextbox-item .factory-mtextbox-remove-item:focus,.factory-bootstrap-439 .factory-mtextbox-item .factory-mtextbox-remove-item:hover{box-shadow:none;outline:0}.factory-bootstrap-439 .factory-mtextbox-add-item{display:block;margin-top:10px}
libs/factory/bootstrap/assets/css-min/holder.more-link.min.css CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -8,4 +8,4 @@
8
  */
9
 
10
 
11
- .factory-bootstrap-433 .factory-more-link-content{border-top:1px dashed #DDD;padding-top:25px;width:100%;padding-right:20px;position:relative}.factory-bootstrap-433 .factory-tab .factory-more-link-show{display:inline-block;text-decoration:none;border-bottom:1px dotted #21759b;position:relative}.factory-bootstrap-433 .factory-tab .factory-more-link-show:hover{border-color:#d54e21}.factory-bootstrap-433 .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-433 .factory-tab .factory-more-link-hide:hover{color:#999}
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
8
  */
9
 
10
 
11
+ .factory-bootstrap-439 .factory-more-link-content{border-top:1px dashed #DDD;padding-top:25px;width:100%;padding-right:20px;position:relative}.factory-bootstrap-439 .factory-tab .factory-more-link-show{display:inline-block;text-decoration:none;border-bottom:1px dotted #21759b;position:relative}.factory-bootstrap-439 .factory-tab .factory-more-link-show:hover{border-color:#d54e21}.factory-bootstrap-439 .factory-tab .factory-more-link-hide{position:absolute;margin-top:-35px;background-color:#fff;padding:0 5px;right:20px;color:#bbb;text-decoration:none}.factory-bootstrap-439 .factory-tab .factory-more-link-hide:hover{color:#999}
libs/factory/bootstrap/assets/js-min/bootstrap.dropdown.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- +function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=factory-dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}},a.fn.factoryBootstrap433_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.factoryBootstrap433_dropdown.Constructor=f,a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(jQuery);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
+ +function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=factory-dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}},a.fn.factoryBootstrap439_dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.factoryBootstrap439_dropdown.Constructor=f,a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(jQuery);
libs/factory/bootstrap/assets/js-min/bootstrap.tooltip.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
libs/factory/bootstrap/assets/js-min/control.checkbox.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- !function(a){var b=function(b){var c=this;this.$element=a(b),this.$result=this.$element.find(".factory-result"),this.$on=this.$element.find(".factory-on"),this.$off=this.$element.find(".factory-off");var d=this.$element.is(".factory-tumbler"),e=this.$element.is(".factory-has-tumbler-hint"),f=this.$element.data("tumbler-function"),g=this.$element.data("tumbler-delay");g||(g=3e3),this.callByPath=function(a,b){for(var c=a.split("."),d=window,e=0;e<c.length;e++)d=d[c[e]];d.apply(d,b)},this.$on.click(function(){return c.$off.removeClass("active"),c.$on.addClass("active"),d?setTimeout(function(){c.$on.removeClass("active"),c.$off.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.attr("checked","checked"),c.$result.val(1),c.$result.trigger("change")),!1}),this.$off.click(function(){return c.$on.removeClass("active"),c.$off.addClass("active"),d?setTimeout(function(){c.$off.removeClass("active"),c.$on.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.removeAttr("checked"),c.$result.val(0),c.$result.trigger("change")),!1}),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){(void 0!==window.__factory_checkbox_control_events_off_data||void 0!==window.__factory_checkbox_control_events_on_data)&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.prop("checked"),f=window.__factory_checkbox_control_events_on_data[d],g=window.__factory_checkbox_control_events_off_data[d];if(f||g){var h,i;void 0===window.__factory_checkbox_control_detach_elements&&(window.__factory_checkbox_control_detach_elements={}),h=window.__factory_checkbox_control_detach_elements,i=e?f:g;for(var j in i)if(i.hasOwnProperty(j)){var k,l=i[j];a.isArray(l)||(k=c.hashCode(d+l));var m;switch(j){case"hide":"string"==typeof l&&a(l).hide(0);break;case"show":"string"==typeof l&&a(l).fadeIn(200);break;case"detach":"string"==typeof l&&a(l).each(function(b){h[k]||(h[k]={}),h[k][b]||(h[k][b]={}),h[k][b].recovery_contanier=a(this).parent(),h[k][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(h[k]){for(var n in h[k])h[k].hasOwnProperty(n)&&h[k][n].recovery_contanier&&h[k][n].element&&h[k][n].recovery_contanier.append(h[k][n].element);delete h[k]}break;case"removeClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).removeClass(l[m]);break;case"addClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).addClass(l[m]);break;case"setValue":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&void 0!==l[m]&&null!==l[m]&&(console.log(l[m]),a(m).val(l[m]))}}}},this.executeEvents(this.$result)};a.fn.factoryBootstrap433_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.factoryBootstrap433_checkboxControl.Constructor=b,a(function(){a(".factory-bootstrap-433 .factory-checkbox.factory-buttons-way").factoryBootstrap433_checkboxControl()})}(jQuery);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
+ !function(a){var b=function(b){var c=this;this.$element=a(b),this.$result=this.$element.find(".factory-result"),this.$on=this.$element.find(".factory-on"),this.$off=this.$element.find(".factory-off");var d=this.$element.is(".factory-tumbler"),e=this.$element.is(".factory-has-tumbler-hint"),f=this.$element.data("tumbler-function"),g=this.$element.data("tumbler-delay");g||(g=3e3),this.callByPath=function(a,b){for(var c=a.split("."),d=window,e=0;e<c.length;e++)d=d[c[e]];d.apply(d,b)},this.$on.click(function(){return c.$off.removeClass("active"),c.$on.addClass("active"),d?setTimeout(function(){c.$on.removeClass("active"),c.$off.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.attr("checked","checked"),c.$result.val(1),c.$result.trigger("change")),!1}),this.$off.click(function(){return c.$on.removeClass("active"),c.$off.addClass("active"),d?setTimeout(function(){c.$off.removeClass("active"),c.$on.addClass("active");var a=e?c.$element.next():null;f?c.callByPath(f,[c.$element,a]):e&&(c.$element.next().fadeIn(300),setTimeout(function(){c.$element.next().fadeOut(500)},g))},300):(c.$result.removeAttr("checked"),c.$result.val(0),c.$result.trigger("change")),!1}),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){(void 0!==window.__factory_checkbox_control_events_off_data||void 0!==window.__factory_checkbox_control_events_on_data)&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.prop("checked"),f=window.__factory_checkbox_control_events_on_data[d],g=window.__factory_checkbox_control_events_off_data[d];if(f||g){var h,i;void 0===window.__factory_checkbox_control_detach_elements&&(window.__factory_checkbox_control_detach_elements={}),h=window.__factory_checkbox_control_detach_elements,i=e?f:g;for(var j in i)if(i.hasOwnProperty(j)){var k,l=i[j];a.isArray(l)||(k=c.hashCode(d+l));var m;switch(j){case"hide":"string"==typeof l&&a(l).hide(0);break;case"show":"string"==typeof l&&a(l).fadeIn(200);break;case"detach":"string"==typeof l&&a(l).each(function(b){h[k]||(h[k]={}),h[k][b]||(h[k][b]={}),h[k][b].recovery_contanier=a(this).parent(),h[k][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(h[k]){for(var n in h[k])h[k].hasOwnProperty(n)&&h[k][n].recovery_contanier&&h[k][n].element&&h[k][n].recovery_contanier.append(h[k][n].element);delete h[k]}break;case"removeClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).removeClass(l[m]);break;case"addClasses":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&l[m]&&a(m).addClass(l[m]);break;case"setValue":if("object"==typeof l)for(m in l)l.hasOwnProperty(m)&&void 0!==l[m]&&null!==l[m]&&(console.log(l[m]),a(m).val(l[m]))}}}},this.executeEvents(this.$result)};a.fn.factoryBootstrap439_checkboxControl=function(c){if("string"==typeof c){var d=a(this).data("factory.checkbox.control");return d?d[c]():null}return this.each(function(){var c=a(this),d=c.data("factory.checkbox.control");d||c.data("factory.checkbox.control",d=new b(this))})},a.fn.factoryBootstrap439_checkboxControl.Constructor=b,a(function(){a(".factory-bootstrap-439 .factory-checkbox.factory-buttons-way").factoryBootstrap439_checkboxControl()})}(jQuery);
libs/factory/bootstrap/assets/js-min/control.dropdown.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- !function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name")||this.$element.attr("name"),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){void 0!==window.factory_dropdown_control_events_data&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.val(),f=window.factory_dropdown_control_events_data[d];if(f&&f[e]){var g;void 0===window.__factory_dropdown_control_detach_elements&&(window.__factory_dropdown_control_detach_elements={}),g=window.__factory_dropdown_control_detach_elements;for(var h in f[e])if(f[e].hasOwnProperty(h)){var i,j=f[e][h];switch(a.isArray(j)||(i=c.hashCode(d+j)),h){case"hide":"string"==typeof j&&a(j).hide(0);break;case"show":"string"==typeof j&&a(j).fadeIn(200);break;case"detach":"string"==typeof j&&a(j).each(function(b){g[i]||(g[i]={}),g[i][b]||(g[i][b]={}),g[i][b].recovery_contanier=a(this).parent(),g[i][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(g[i]){for(var k in g[i])g[i].hasOwnProperty(k)&&g[i][k].recovery_contanier&&g[i][k].element&&g[i][k].recovery_contanier.append(g[i][k].element);delete g[i]}break;case"removeClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).removeClass(j[l]);break;case"addClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).addClass(j[l])}}}},"buttons"===this.way)this.$result=this.$element.find(".factory-result"),this.$hints=this.$element.find(".factory-hints"),this.$buttons=this.$element.find(".btn"),c.executeEvents(this.$result),this.$buttons.click(function(){var b=a(this).data("value");return c.$buttons.removeClass("active"),a(this).addClass("active"),c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+b).fadeIn(),c.$result.val(b),c.$result.trigger("change"),!1});else if("ddslick"===this.way){c.executeEvents(c.$element.find(".factory-result"));var d=window["factory_"+this.name+"_data"],e=this.$element.find(".factory-ddslick"),f=this.$element.data("width")||300,g=this.$element.data("align")||"right";a(d).each(function(){return this.imageHoverSrc?void(a("<img/>")[0].src=this.imageHoverSrc):!0}),e.ddslick({data:d,width:f,imagePosition:g,selectText:"- select -",onSelected:function(a){a.selectedData.imageHoverSrc&&c.$element.find(".dd-selected-image").attr("src",a.selectedData.imageHoverSrc);var b=c.$element.find(".factory-result").val(a.selectedData.value);b.change()}})}else{c.executeEvents(this.$element),this.$hints=this.$element.next(),this.$hints.hasClass("factory-hints")&&(this.$element.change(function(){return c.updateHints(),!1}),this.updateHints=function(){var a=c.$element.val();c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+a).show()},c.updateHints()),this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(a){console&&console.log&&console.log(a.responseText),c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length)for(var d in a){var e=a[d];c.addListItem(e)}else this.$element.append("<option>"+b.emptyList+"</li>");this.$element.trigger("factory-loaded")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<option />").attr("value",b.value).text(b.title).appendTo(this.$element),e=c.getAjaxData();e.selected&&e.selected==b.value&&d.attr("selected","selected")},this.showError=function(b){this.clearList();var d=a("<div class='factory-control-error'></div>").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),e=c.getAjaxData();this.$element.append("<option>"+e.emptyList+"</li>"),this.$element.after(d),this.$element.addClass("factory-has-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var h=this.$element.data("ajax");h&&this.loadData()}};a.fn.factoryBootstrap433_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.factoryBootstrap433_dropdownControl.Constructor=b,a(function(){a(".factory-bootstrap-433 .factory-dropdown").factoryBootstrap433_dropdownControl()})}(jQuery);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
+ !function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name")||this.$element.attr("name"),this.hashCode=function(a){var b=0;if(!a||0===a.length)return b;for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);b=(b<<5)-b+d,b&=b}return b=b.toString(16),b=b.replace("-","")},this.executeEvents=function(a){void 0!==window.factory_dropdown_control_events_data&&(a.change(function(){c.eventsProcess(a)}),c.eventsProcess(a))},this.eventsProcess=function(b){var d=b.attr("name"),e=b.val(),f=window.factory_dropdown_control_events_data[d];if(f&&f[e]){var g;void 0===window.__factory_dropdown_control_detach_elements&&(window.__factory_dropdown_control_detach_elements={}),g=window.__factory_dropdown_control_detach_elements;for(var h in f[e])if(f[e].hasOwnProperty(h)){var i,j=f[e][h];switch(a.isArray(j)||(i=c.hashCode(d+j)),h){case"hide":"string"==typeof j&&a(j).hide(0);break;case"show":"string"==typeof j&&a(j).fadeIn(200);break;case"detach":"string"==typeof j&&a(j).each(function(b){g[i]||(g[i]={}),g[i][b]||(g[i][b]={}),g[i][b].recovery_contanier=a(this).parent(),g[i][b].element=a(this).clone(!0),a(this).remove()});break;case"recovery":if(g[i]){for(var k in g[i])g[i].hasOwnProperty(k)&&g[i][k].recovery_contanier&&g[i][k].element&&g[i][k].recovery_contanier.append(g[i][k].element);delete g[i]}break;case"removeClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).removeClass(j[l]);break;case"addClasses":if("object"==typeof j)for(var l in j)j.hasOwnProperty(l)&&j[l]&&a(l).addClass(j[l])}}}},"buttons"===this.way)this.$result=this.$element.find(".factory-result"),this.$hints=this.$element.find(".factory-hints"),this.$buttons=this.$element.find(".btn"),c.executeEvents(this.$result),this.$buttons.click(function(){var b=a(this).data("value");return c.$buttons.removeClass("active"),a(this).addClass("active"),c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+b).fadeIn(),c.$result.val(b),c.$result.trigger("change"),!1});else if("ddslick"===this.way){c.executeEvents(c.$element.find(".factory-result"));var d=window["factory_"+this.name+"_data"],e=this.$element.find(".factory-ddslick"),f=this.$element.data("width")||300,g=this.$element.data("align")||"right";a(d).each(function(){return this.imageHoverSrc?void(a("<img/>")[0].src=this.imageHoverSrc):!0}),e.ddslick({data:d,width:f,imagePosition:g,selectText:"- select -",onSelected:function(a){a.selectedData.imageHoverSrc&&c.$element.find(".dd-selected-image").attr("src",a.selectedData.imageHoverSrc);var b=c.$element.find(".factory-result").val(a.selectedData.value);b.change()}})}else{c.executeEvents(this.$element),this.$hints=this.$element.next(),this.$hints.hasClass("factory-hints")&&(this.$element.change(function(){return c.updateHints(),!1}),this.updateHints=function(){var a=c.$element.val();c.$hints.find(".factory-hint").hide(),c.$hints.find(".factory-hint-"+a).show()},c.updateHints()),this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(a){console&&console.log&&console.log(a.responseText),c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length)for(var d in a){var e=a[d];c.addListItem(e)}else this.$element.append("<option>"+b.emptyList+"</li>");this.$element.trigger("factory-loaded")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<option />").attr("value",b.value).text(b.title).appendTo(this.$element),e=c.getAjaxData();e.selected&&e.selected==b.value&&d.attr("selected","selected")},this.showError=function(b){this.clearList();var d=a("<div class='factory-control-error'></div>").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),e=c.getAjaxData();this.$element.append("<option>"+e.emptyList+"</li>"),this.$element.after(d),this.$element.addClass("factory-has-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var h=this.$element.data("ajax");h&&this.loadData()}};a.fn.factoryBootstrap439_dropdownControl=function(c){if("string"==typeof c){var d=a(this).data("factory.dropdown.control");return d?d[c]():null}return this.each(function(){var c=a(this),d=c.data("factory.dropdown.control");d||c.data("factory.dropdown.control",d=new b(this))})},a.fn.factoryBootstrap439_dropdownControl.Constructor=b,a(function(){a(".factory-bootstrap-439 .factory-dropdown").factoryBootstrap439_dropdownControl()})}(jQuery);
libs/factory/bootstrap/assets/js-min/control.list.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- !function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name"),"checklist"===this.way){this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(){c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length){this.$element.removeClass("factory-empty");for(var d in a){var e=a[d];c.addListItem(e)}}else this.$element.addClass("factory-empty"),this.$element.append("<li>"+b.emptyList+"</li>")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<li>"),e=a("<label>").attr("for","factory-checklist-"+c.name+"-"+b.value).appendTo(d),f=a("<span>").appendTo(e),g=a("<input />").attr("type","checkbox").attr("name",c.name+"[]").val(b.value).attr("id","factory-checklist-"+c.name+"-"+b.value).appendTo(f),h=(a("<span>"+b.title+"</span>").appendTo(e),c.getAjaxData());h.selected.length&&a.inArray(b.value,h.selected)>=0&&g.attr("checked","checked"),this.$element.append(d)},this.showError=function(b){this.$element.html("").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),this.$element.addClass("factory-list-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var d=this.$element.data("ajax");d&&this.loadData()}};a.fn.factoryBootstrap433_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.factoryBootstrap433_listControl.Constructor=b,a(function(){a(".factory-bootstrap-433 .factory-list").factoryBootstrap433_listControl()})}(jQuery);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
+ !function(a){var b=function(b){var c=this;if(this.$element=a(b),this.way=this.$element.data("way"),this.name=this.$element.data("name"),"checklist"===this.way){this.getAjaxData=function(){var a=c.$element.data("ajax-data-id");return window[a]},this.loadData=function(){var b=c.getAjaxData();a.ajax({url:b.url,data:b.data,dataType:"json",success:function(a){return a.error?c.showError(a.error):void c.fill(a.items)},error:function(){c.showError("Unexpected error occurred during the ajax request.")},complete:function(){c.removeLoader()}})},this.fill=function(a){this.clearList();var b=c.getAjaxData();if(a&&a.length){this.$element.removeClass("factory-empty");for(var d in a){var e=a[d];c.addListItem(e)}}else this.$element.addClass("factory-empty"),this.$element.append("<li>"+b.emptyList+"</li>")},this.clearList=function(){this.$element.html("")},this.addListItem=function(b){var d=a("<li>"),e=a("<label>").attr("for","factory-checklist-"+c.name+"-"+b.value).appendTo(d),f=a("<span>").appendTo(e),g=a("<input />").attr("type","checkbox").attr("name",c.name+"[]").val(b.value).attr("id","factory-checklist-"+c.name+"-"+b.value).appendTo(f),h=(a("<span>"+b.title+"</span>").appendTo(e),c.getAjaxData());h.selected.length&&a.inArray(b.value,h.selected)>=0&&g.attr("checked","checked"),this.$element.append(d)},this.showError=function(b){this.$element.html("").append(a("<i class='fa fa-exclamation-triangle'></i>")).append(b),this.$element.addClass("factory-list-error")},this.removeLoader=function(){this.$element.removeClass("factory-hidden");var b=c.getAjaxData();a(b.loader).remove()};var d=this.$element.data("ajax");d&&this.loadData()}};a.fn.factoryBootstrap439_listControl=function(c){if("string"==typeof c){var d=a(this).data("factory.list.control");return d?d[c]():null}return this.each(function(){var c=a(this),d=c.data("factory.list.control");d||c.data("factory.list.control",d=new b(this))})},a.fn.factoryBootstrap439_listControl.Constructor=b,a(function(){a(".factory-bootstrap-439 .factory-list").factoryBootstrap439_listControl()})}(jQuery);
libs/factory/bootstrap/assets/js-min/control.multiple-textbox.min.js CHANGED
@@ -1,5 +1,5 @@
1
  /*!
2
- * Bootstrap generator - v1.0.1, 2018-02-26
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
@@ -7,4 +7,4 @@
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
- !function(a){"use strict";var b=function(b){this.$element=a(b);var c=a(".factory-mtextbox-item",this.$element).eq(0).clone(!0);a(".factory-mtextbox-add-item",this.$element).on("click",function(){var b=a(this).closest(".factory-multiple-textbox-group").find(".factory-mtextbox-items"),d=c.clone(!0),e=a('<button class="btn btn-default btn-small factory-mtextbox-remove-item"><i class="fa fa-times" aria-hidden="true"></i></button>');return b.append(d.append(e)),d.find('input[type="text"]').val("").focus(),!1}),a(document).on("click",".factory-mtextbox-remove-item",function(){return a(this).closest(".factory-mtextbox-item").remove(),!1})};a.fn.factoryBootstrap433_MultipleTextboxControl=function(){return this.each(function(){new b(this)})},a(function(){a(".factory-bootstrap-433 .factory-multiple-textbox-group").factoryBootstrap433_MultipleTextboxControl()})}(jQuery);
1
  /*!
2
+ * Bootstrap generator - v1.0.1, 2020-11-08
3
  * Webcraftic factory build
4
  *
5
  * Copyright 2018, Alex Kovalev <alex.kovalevv@gmail.com>, Webcraftic <wordpress.webraftic@gmail.com>
7
  * Support: http://webcraftic.com/contact-us/
8
  */
9
 
10
+ !function(a){"use strict";var b=function(b){this.$element=a(b);var c=a(".factory-mtextbox-item",this.$element).eq(0).clone(!0);a(".factory-mtextbox-add-item",this.$element).on("click",function(){var b=a(this).closest(".factory-multiple-textbox-group").find(".factory-mtextbox-items"),d=c.clone(!0),e=a('<button class="btn btn-default btn-small factory-mtextbox-remove-item"><i class="fa fa-times" aria-hidden="true"></i></button>');return b.append(d.append(e)),d.find('input[type="text"]').val("").focus(),!1}),a(document).on("click",".factory-mtextbox-remove-item",function(){return a(this).closest(".factory-mtextbox-item").remove(),!1})};a.fn.factoryBootstrap439_MultipleTextboxControl=function(){return this.each(function(){new b(this)})},a(function(){a(".factory-bootstrap-439 .factory-multiple-textbox-group").factoryBootstrap439_MultipleTextboxControl()})}(jQuery);
libs/factory/bootstrap/boot.php CHANGED
@@ -19,27 +19,27 @@ if( !is_admin() ) {
19
  return;
20
  }
21
 
22
- if( defined('FACTORY_BOOTSTRAP_433_LOADED') ) {
23
  return;
24
  }
25
 
26
- define('FACTORY_BOOTSTRAP_433_VERSION', '4.3.3');
27
- define('FACTORY_BOOTSTRAP_433_LOADED', true);
28
 
29
  if( !defined('FACTORY_FLAT_ADMIN') ) {
30
  define('FACTORY_FLAT_ADMIN', true);
31
  }
32
 
33
- define('FACTORY_BOOTSTRAP_433_DIR', dirname(__FILE__));
34
- define('FACTORY_BOOTSTRAP_433_URL', plugins_url(null, __FILE__));
35
 
36
- require_once(FACTORY_BOOTSTRAP_433_DIR . '/includes/functions.php');
37
 
38
  /**
39
- * @param Wbcr_Factory432_Plugin $plugin
40
  */
41
- add_action('wbcr_factory_bootstrap_433_plugin_created', function ($plugin) {
42
- $manager = new Wbcr_FactoryBootstrap433_Manager($plugin);
43
  $plugin->setBootstap($manager);
44
  });
45
 
19
  return;
20
  }
21
 
22
+ if( defined('FACTORY_BOOTSTRAP_439_LOADED') ) {
23
  return;
24
  }
25
 
26
+ define('FACTORY_BOOTSTRAP_439_VERSION', '4.3.9');
27
+ define('FACTORY_BOOTSTRAP_439_LOADED', true);
28
 
29
  if( !defined('FACTORY_FLAT_ADMIN') ) {
30
  define('FACTORY_FLAT_ADMIN', true);
31
  }
32
 
33
+ define('FACTORY_BOOTSTRAP_439_DIR', dirname(__FILE__));
34
+ define('FACTORY_BOOTSTRAP_439_URL', plugins_url(null, __FILE__));
35
 
36
+ require_once(FACTORY_BOOTSTRAP_439_DIR . '/includes/functions.php');
37
 
38
  /**
39
+ * @param Wbcr_Factory439_Plugin $plugin
40
  */
41
+ add_action('wbcr_factory_bootstrap_439_plugin_created', function ($plugin) {
42
+ $manager = new Wbcr_FactoryBootstrap439_Manager($plugin);
43
  $plugin->setBootstap($manager);
44
  });
45
 
libs/factory/bootstrap/includes/functions.php CHANGED
@@ -20,13 +20,13 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  *
21
  * @since 3.2.0
22
  */
23
- class Wbcr_FactoryBootstrap433_Manager {
24
 
25
  /**
26
  * A plugin for which the manager was created.
27
  *
28
  * @since 3.2.0
29
- * @var Wbcr_Factory432_Plugin
30
  */
31
  public $plugin;
32
 
@@ -51,7 +51,7 @@ class Wbcr_FactoryBootstrap433_Manager {
51
  *
52
  * @since 1.0.0
53
  */
54
- public function __construct( Wbcr_Factory432_Plugin $plugin ) {
55
  $this->plugin = $plugin;
56
 
57
  add_action( 'admin_enqueue_scripts', [ $this, 'loadAssets' ] );
@@ -111,8 +111,8 @@ class Wbcr_FactoryBootstrap433_Manager {
111
  */
112
  public function loadAssets( $hook ) {
113
 
114
- do_action( 'wbcr_factory_432_bootstrap_enqueue_scripts', $hook );
115
- do_action( 'wbcr_factory_432_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), $hook );
116
 
117
  $dependencies = [];
118
  if ( ! empty( $this->scripts ) ) {
@@ -156,8 +156,8 @@ class Wbcr_FactoryBootstrap433_Manager {
156
  $cache_enable = apply_filters( 'wbcr/factory/bootstrap/cache_enable', true );
157
 
158
  $cache_id = md5( implode( ',', $this->scripts ) . $type . $this->plugin->getPluginVersion() );
159
- $cache_dir_path = FACTORY_BOOTSTRAP_433_DIR . '/assets/cache/';
160
- $cache_dir_url = FACTORY_BOOTSTRAP_433_URL . '/assets/cache/';
161
 
162
  $cache_filepath = $cache_dir_path . $cache_id . ".min." . $type;
163
  $cache_fileurl = $cache_dir_url . $cache_id . ".min." . $type;
@@ -184,7 +184,7 @@ class Wbcr_FactoryBootstrap433_Manager {
184
  foreach ( $scripts as $script_to_load ) {
185
  $script_to_load = sanitize_text_field( $script_to_load );
186
  if ( $cache_enable && $cache_dir_exists ) {
187
- $fname = FACTORY_BOOTSTRAP_433_DIR . "/assets/$type-min/$script_to_load.min." . $type;
188
  if ( file_exists( $fname ) ) {
189
  $f = @fopen( $fname, 'r' );
190
  $concat_files[] = @fread( $f, filesize( $fname ) );
@@ -192,9 +192,9 @@ class Wbcr_FactoryBootstrap433_Manager {
192
  }
193
  } else {
194
  if ( $type == 'js' ) {
195
- wp_enqueue_script( md5( $script_to_load ), FACTORY_BOOTSTRAP_433_URL . "/assets/$type-min/$script_to_load.min." . $type, $is_first ? $dependencies : false, $this->plugin->getPluginVersion() );
196
  } else {
197
- wp_enqueue_style( md5( $script_to_load ), FACTORY_BOOTSTRAP_433_URL . "/assets/$type-min/$script_to_load.min." . $type, [], $this->plugin->getPluginVersion() );
198
  }
199
  $is_first = false;
200
  }
20
  *
21
  * @since 3.2.0
22
  */
23
+ class Wbcr_FactoryBootstrap439_Manager {
24
 
25
  /**
26
  * A plugin for which the manager was created.
27
  *
28
  * @since 3.2.0
29
+ * @var Wbcr_Factory439_Plugin
30
  */
31
  public $plugin;
32
 
51
  *
52
  * @since 1.0.0
53
  */
54
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
55
  $this->plugin = $plugin;
56
 
57
  add_action( 'admin_enqueue_scripts', [ $this, 'loadAssets' ] );
111
  */
112
  public function loadAssets( $hook ) {
113
 
114
+ do_action( 'wbcr_factory_439_bootstrap_enqueue_scripts', $hook );
115
+ do_action( 'wbcr_factory_439_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), $hook );
116
 
117
  $dependencies = [];
118
  if ( ! empty( $this->scripts ) ) {
156
  $cache_enable = apply_filters( 'wbcr/factory/bootstrap/cache_enable', true );
157
 
158
  $cache_id = md5( implode( ',', $this->scripts ) . $type . $this->plugin->getPluginVersion() );
159
+ $cache_dir_path = FACTORY_BOOTSTRAP_439_DIR . '/assets/cache/';
160
+ $cache_dir_url = FACTORY_BOOTSTRAP_439_URL . '/assets/cache/';
161
 
162
  $cache_filepath = $cache_dir_path . $cache_id . ".min." . $type;
163
  $cache_fileurl = $cache_dir_url . $cache_id . ".min." . $type;
184
  foreach ( $scripts as $script_to_load ) {
185
  $script_to_load = sanitize_text_field( $script_to_load );
186
  if ( $cache_enable && $cache_dir_exists ) {
187
+ $fname = FACTORY_BOOTSTRAP_439_DIR . "/assets/$type-min/$script_to_load.min." . $type;
188
  if ( file_exists( $fname ) ) {
189
  $f = @fopen( $fname, 'r' );
190
  $concat_files[] = @fread( $f, filesize( $fname ) );
192
  }
193
  } else {
194
  if ( $type == 'js' ) {
195
+ wp_enqueue_script( md5( $script_to_load ), FACTORY_BOOTSTRAP_439_URL . "/assets/$type-min/$script_to_load.min." . $type, $is_first ? $dependencies : false, $this->plugin->getPluginVersion() );
196
  } else {
197
+ wp_enqueue_style( md5( $script_to_load ), FACTORY_BOOTSTRAP_439_URL . "/assets/$type-min/$script_to_load.min." . $type, [], $this->plugin->getPluginVersion() );
198
  }
199
  $is_first = false;
200
  }
libs/factory/bootstrap/package-lock.json ADDED
@@ -0,0 +1,1810 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "bootstrap-generator",
3
+ "version": "1.0.1",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "abbrev": {
8
+ "version": "1.1.1",
9
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
10
+ "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg="
11
+ },
12
+ "amdefine": {
13
+ "version": "1.0.1",
14
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
15
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
16
+ "dev": true
17
+ },
18
+ "argparse": {
19
+ "version": "0.1.16",
20
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
21
+ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
22
+ "dev": true,
23
+ "requires": {
24
+ "underscore": "~1.7.0",
25
+ "underscore.string": "~2.4.0"
26
+ },
27
+ "dependencies": {
28
+ "underscore.string": {
29
+ "version": "2.4.0",
30
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
31
+ "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
32
+ "dev": true
33
+ }
34
+ }
35
+ },
36
+ "arr-diff": {
37
+ "version": "4.0.0",
38
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
39
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
40
+ },
41
+ "arr-flatten": {
42
+ "version": "1.1.0",
43
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
44
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
45
+ },
46
+ "arr-union": {
47
+ "version": "3.1.0",
48
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
49
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
50
+ },
51
+ "array-each": {
52
+ "version": "1.0.1",
53
+ "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
54
+ "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8="
55
+ },
56
+ "array-slice": {
57
+ "version": "1.1.0",
58
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
59
+ "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w=="
60
+ },
61
+ "array-unique": {
62
+ "version": "0.3.2",
63
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
64
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
65
+ },
66
+ "assign-symbols": {
67
+ "version": "1.0.0",
68
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
69
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
70
+ },
71
+ "async": {
72
+ "version": "0.1.22",
73
+ "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
74
+ "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
75
+ "dev": true
76
+ },
77
+ "atob": {
78
+ "version": "2.1.2",
79
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
80
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
81
+ },
82
+ "base": {
83
+ "version": "0.11.2",
84
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
85
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
86
+ "requires": {
87
+ "cache-base": "^1.0.1",
88
+ "class-utils": "^0.3.5",
89
+ "component-emitter": "^1.2.1",
90
+ "define-property": "^1.0.0",
91
+ "isobject": "^3.0.1",
92
+ "mixin-deep": "^1.2.0",
93
+ "pascalcase": "^0.1.1"
94
+ },
95
+ "dependencies": {
96
+ "define-property": {
97
+ "version": "1.0.0",
98
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
99
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
100
+ "requires": {
101
+ "is-descriptor": "^1.0.0"
102
+ }
103
+ },
104
+ "is-accessor-descriptor": {
105
+ "version": "1.0.0",
106
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
107
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
108
+ "requires": {
109
+ "kind-of": "^6.0.0"
110
+ }
111
+ },
112
+ "is-data-descriptor": {
113
+ "version": "1.0.0",
114
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
115
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
116
+ "requires": {
117
+ "kind-of": "^6.0.0"
118
+ }
119
+ },
120
+ "is-descriptor": {
121
+ "version": "1.0.2",
122
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
123
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
124
+ "requires": {
125
+ "is-accessor-descriptor": "^1.0.0",
126
+ "is-data-descriptor": "^1.0.0",
127
+ "kind-of": "^6.0.2"
128
+ }
129
+ }
130
+ }
131
+ },
132
+ "braces": {
133
+ "version": "2.3.2",
134
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
135
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
136
+ "requires": {
137
+ "arr-flatten": "^1.1.0",
138
+ "array-unique": "^0.3.2",
139
+ "extend-shallow": "^2.0.1",
140
+ "fill-range": "^4.0.0",
141
+ "isobject": "^3.0.1",
142
+ "repeat-element": "^1.1.2",
143
+ "snapdragon": "^0.8.1",
144
+ "snapdragon-node": "^2.0.1",
145
+ "split-string": "^3.0.2",
146
+ "to-regex": "^3.0.1"
147
+ },
148
+ "dependencies": {
149
+ "extend-shallow": {
150
+ "version": "2.0.1",
151
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
152
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
153
+ "requires": {
154
+ "is-extendable": "^0.1.0"
155
+ }
156
+ }
157
+ }
158
+ },
159
+ "cache-base": {
160
+ "version": "1.0.1",
161
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
162
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
163
+ "requires": {
164
+ "collection-visit": "^1.0.0",
165
+ "component-emitter": "^1.2.1",
166
+ "get-value": "^2.0.6",
167
+ "has-value": "^1.0.0",
168
+ "isobject": "^3.0.1",
169
+ "set-value": "^2.0.0",
170
+ "to-object-path": "^0.3.0",
171
+ "union-value": "^1.0.0",
172
+ "unset-value": "^1.0.0"
173
+ }
174
+ },
175
+ "camelcase": {
176
+ "version": "1.2.1",
177
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
178
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
179
+ "dev": true
180
+ },
181
+ "class-utils": {
182
+ "version": "0.3.6",
183
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
184
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
185
+ "requires": {
186
+ "arr-union": "^3.1.0",
187
+ "define-property": "^0.2.5",
188
+ "isobject": "^3.0.0",
189
+ "static-extend": "^0.1.1"
190
+ },
191
+ "dependencies": {
192
+ "define-property": {
193
+ "version": "0.2.5",
194
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
195
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
196
+ "requires": {
197
+ "is-descriptor": "^0.1.0"
198
+ }
199
+ }
200
+ }
201
+ },
202
+ "clean-css": {
203
+ "version": "2.0.8",
204
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-2.0.8.tgz",
205
+ "integrity": "sha1-6TfN/cxXgaAIF67EB56Fs+wVeiA=",
206
+ "dev": true,
207
+ "requires": {
208
+ "commander": "2.0.x"
209
+ }
210
+ },
211
+ "cli": {
212
+ "version": "0.4.5",
213
+ "resolved": "https://registry.npmjs.org/cli/-/cli-0.4.5.tgz",
214
+ "integrity": "sha1-ePlIXNFhtWbppsctcXDEJw6B22E=",
215
+ "dev": true,
216
+ "requires": {
217
+ "glob": ">= 3.1.4"
218
+ }
219
+ },
220
+ "coffee-script": {
221
+ "version": "1.3.3",
222
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
223
+ "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
224
+ "dev": true
225
+ },
226
+ "collection-visit": {
227
+ "version": "1.0.0",
228
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
229
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
230
+ "requires": {
231
+ "map-visit": "^1.0.0",
232
+ "object-visit": "^1.0.0"
233
+ }
234
+ },
235
+ "colors": {
236
+ "version": "0.6.2",
237
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
238
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
239
+ "dev": true
240
+ },
241
+ "commander": {
242
+ "version": "2.0.0",
243
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz",
244
+ "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=",
245
+ "dev": true
246
+ },
247
+ "component-emitter": {
248
+ "version": "1.3.0",
249
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
250
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
251
+ },
252
+ "console-browserify": {
253
+ "version": "0.1.6",
254
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-0.1.6.tgz",
255
+ "integrity": "sha1-0SijwLuINQ61YmxufHGm8P1ImDw=",
256
+ "dev": true
257
+ },
258
+ "copy-descriptor": {
259
+ "version": "0.1.1",
260
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
261
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
262
+ },
263
+ "dateformat": {
264
+ "version": "1.0.2-1.2.3",
265
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
266
+ "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
267
+ "dev": true
268
+ },
269
+ "debug": {
270
+ "version": "2.6.9",
271
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
272
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
273
+ "requires": {
274
+ "ms": "2.0.0"
275
+ }
276
+ },
277
+ "decamelize": {
278
+ "version": "1.2.0",
279
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
280
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
281
+ "dev": true
282
+ },
283
+ "decode-uri-component": {
284
+ "version": "0.2.0",
285
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
286
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
287
+ },
288
+ "define-property": {
289
+ "version": "2.0.2",
290
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
291
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
292
+ "requires": {
293
+ "is-descriptor": "^1.0.2",
294
+ "isobject": "^3.0.1"
295
+ },
296
+ "dependencies": {
297
+ "is-accessor-descriptor": {
298
+ "version": "1.0.0",
299
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
300
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
301
+ "requires": {
302
+ "kind-of": "^6.0.0"
303
+ }
304
+ },
305
+ "is-data-descriptor": {
306
+ "version": "1.0.0",
307
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
308
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
309
+ "requires": {
310
+ "kind-of": "^6.0.0"
311
+ }
312
+ },
313
+ "is-descriptor": {
314
+ "version": "1.0.2",
315
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
316
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
317
+ "requires": {
318
+ "is-accessor-descriptor": "^1.0.0",
319
+ "is-data-descriptor": "^1.0.0",
320
+ "kind-of": "^6.0.2"
321
+ }
322
+ }
323
+ }
324
+ },
325
+ "detect-file": {
326
+ "version": "1.0.0",
327
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
328
+ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc="
329
+ },
330
+ "esprima": {
331
+ "version": "1.0.4",
332
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
333
+ "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
334
+ "dev": true
335
+ },
336
+ "eventemitter2": {
337
+ "version": "0.4.14",
338
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
339
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
340
+ "dev": true
341
+ },
342
+ "exit": {
343
+ "version": "0.1.2",
344
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
345
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
346
+ "dev": true
347
+ },
348
+ "expand-brackets": {
349
+ "version": "2.1.4",
350
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
351
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
352
+ "requires": {
353
+ "debug": "^2.3.3",
354
+ "define-property": "^0.2.5",
355
+ "extend-shallow": "^2.0.1",
356
+ "posix-character-classes": "^0.1.0",
357
+ "regex-not": "^1.0.0",
358
+ "snapdragon": "^0.8.1",
359
+ "to-regex": "^3.0.1"
360
+ },
361
+ "dependencies": {
362
+ "define-property": {
363
+ "version": "0.2.5",
364
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
365
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
366
+ "requires": {
367
+ "is-descriptor": "^0.1.0"
368
+ }
369
+ },
370
+ "extend-shallow": {
371
+ "version": "2.0.1",
372
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
373
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
374
+ "requires": {
375
+ "is-extendable": "^0.1.0"
376
+ }
377
+ }
378
+ }
379
+ },
380
+ "expand-tilde": {
381
+ "version": "2.0.2",
382
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
383
+ "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
384
+ "requires": {
385
+ "homedir-polyfill": "^1.0.1"
386
+ }
387
+ },
388
+ "extend": {
389
+ "version": "3.0.2",
390
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
391
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
392
+ },
393
+ "extend-shallow": {
394
+ "version": "3.0.2",
395
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
396
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
397
+ "requires": {
398
+ "assign-symbols": "^1.0.0",
399
+ "is-extendable": "^1.0.1"
400
+ },
401
+ "dependencies": {
402
+ "is-extendable": {
403
+ "version": "1.0.1",
404
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
405
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
406
+ "requires": {
407
+ "is-plain-object": "^2.0.4"
408
+ }
409
+ }
410
+ }
411
+ },
412
+ "extglob": {
413
+ "version": "2.0.4",
414
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
415
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
416
+ "requires": {
417
+ "array-unique": "^0.3.2",
418
+ "define-property": "^1.0.0",
419
+ "expand-brackets": "^2.1.4",
420
+ "extend-shallow": "^2.0.1",
421
+ "fragment-cache": "^0.2.1",
422
+ "regex-not": "^1.0.0",
423
+ "snapdragon": "^0.8.1",
424
+ "to-regex": "^3.0.1"
425
+ },
426
+ "dependencies": {
427
+ "define-property": {
428
+ "version": "1.0.0",
429
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
430
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
431
+ "requires": {
432
+ "is-descriptor": "^1.0.0"
433
+ }
434
+ },
435
+ "extend-shallow": {
436
+ "version": "2.0.1",
437
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
438
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
439
+ "requires": {
440
+ "is-extendable": "^0.1.0"
441
+ }
442
+ },
443
+ "is-accessor-descriptor": {
444
+ "version": "1.0.0",
445
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
446
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
447
+ "requires": {
448
+ "kind-of": "^6.0.0"
449
+ }
450
+ },
451
+ "is-data-descriptor": {
452
+ "version": "1.0.0",
453
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
454
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
455
+ "requires": {
456
+ "kind-of": "^6.0.0"
457
+ }
458
+ },
459
+ "is-descriptor": {
460
+ "version": "1.0.2",
461
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
462
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
463
+ "requires": {
464
+ "is-accessor-descriptor": "^1.0.0",
465
+ "is-data-descriptor": "^1.0.0",
466
+ "kind-of": "^6.0.2"
467
+ }
468
+ }
469
+ }
470
+ },
471
+ "fill-range": {
472
+ "version": "4.0.0",
473
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
474
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
475
+ "requires": {
476
+ "extend-shallow": "^2.0.1",
477
+ "is-number": "^3.0.0",
478
+ "repeat-string": "^1.6.1",
479
+ "to-regex-range": "^2.1.0"
480
+ },
481
+ "dependencies": {
482
+ "extend-shallow": {
483
+ "version": "2.0.1",
484
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
485
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
486
+ "requires": {
487
+ "is-extendable": "^0.1.0"
488
+ }
489
+ }
490
+ }
491
+ },
492
+ "findup-sync": {
493
+ "version": "0.1.3",
494
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
495
+ "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
496
+ "dev": true,
497
+ "requires": {
498
+ "glob": "~3.2.9",
499
+ "lodash": "~2.4.1"
500
+ },
501
+ "dependencies": {
502
+ "glob": {
503
+ "version": "3.2.11",
504
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
505
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
506
+ "dev": true,
507
+ "requires": {
508
+ "inherits": "2",
509
+ "minimatch": "0.3"
510
+ }
511
+ },
512
+ "lodash": {
513
+ "version": "2.4.2",
514
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
515
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
516
+ "dev": true
517
+ },
518
+ "minimatch": {
519
+ "version": "0.3.0",
520
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
521
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
522
+ "dev": true,
523
+ "requires": {
524
+ "lru-cache": "2",
525
+ "sigmund": "~1.0.0"
526
+ }
527
+ }
528
+ }
529
+ },
530
+ "fined": {
531
+ "version": "1.2.0",
532
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
533
+ "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
534
+ "requires": {
535
+ "expand-tilde": "^2.0.2",
536
+ "is-plain-object": "^2.0.3",
537
+ "object.defaults": "^1.1.0",
538
+ "object.pick": "^1.2.0",
539
+ "parse-filepath": "^1.0.1"
540
+ }
541
+ },
542
+ "flagged-respawn": {
543
+ "version": "1.0.1",
544
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
545
+ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q=="
546
+ },
547
+ "for-in": {
548
+ "version": "1.0.2",
549
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
550
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA="
551
+ },
552
+ "for-own": {
553
+ "version": "1.0.0",
554
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
555
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
556
+ "requires": {
557
+ "for-in": "^1.0.1"
558
+ }
559
+ },
560
+ "fragment-cache": {
561
+ "version": "0.2.1",
562
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
563
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
564
+ "requires": {
565
+ "map-cache": "^0.2.2"
566
+ }
567
+ },
568
+ "function-bind": {
569
+ "version": "1.1.1",
570
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
571
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
572
+ },
573
+ "get-value": {
574
+ "version": "2.0.6",
575
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
576
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
577
+ },
578
+ "getobject": {
579
+ "version": "0.1.0",
580
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
581
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
582
+ "dev": true
583
+ },
584
+ "glob": {
585
+ "version": "3.1.21",
586
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
587
+ "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
588
+ "dev": true,
589
+ "requires": {
590
+ "graceful-fs": "~1.2.0",
591
+ "inherits": "1",
592
+ "minimatch": "~0.2.11"
593
+ },
594
+ "dependencies": {
595
+ "inherits": {
596
+ "version": "1.0.2",
597
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
598
+ "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
599
+ "dev": true
600
+ }
601
+ }
602
+ },
603
+ "global-modules": {
604
+ "version": "1.0.0",
605
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
606
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
607
+ "requires": {
608
+ "global-prefix": "^1.0.1",
609
+ "is-windows": "^1.0.1",
610
+ "resolve-dir": "^1.0.0"
611
+ }
612
+ },
613
+ "global-prefix": {
614
+ "version": "1.0.2",
615
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
616
+ "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
617
+ "requires": {
618
+ "expand-tilde": "^2.0.2",
619
+ "homedir-polyfill": "^1.0.1",
620
+ "ini": "^1.3.4",
621
+ "is-windows": "^1.0.1",
622
+ "which": "^1.2.14"
623
+ },
624
+ "dependencies": {
625
+ "which": {
626
+ "version": "1.3.1",
627
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
628
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
629
+ "requires": {
630
+ "isexe": "^2.0.0"
631
+ }
632
+ }
633
+ }
634
+ },
635
+ "graceful-fs": {
636
+ "version": "1.2.3",
637
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
638
+ "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
639
+ "dev": true
640
+ },
641
+ "grunt": {
642
+ "version": "0.4.5",
643
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
644
+ "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
645
+ "dev": true,
646
+ "requires": {
647
+ "async": "~0.1.22",
648
+ "coffee-script": "~1.3.3",
649
+ "colors": "~0.6.2",
650
+ "dateformat": "1.0.2-1.2.3",
651
+ "eventemitter2": "~0.4.13",
652
+ "exit": "~0.1.1",
653
+ "findup-sync": "~0.1.2",
654
+ "getobject": "~0.1.0",
655
+ "glob": "~3.1.21",
656
+ "grunt-legacy-log": "~0.1.0",
657
+ "grunt-legacy-util": "~0.2.0",
658
+ "hooker": "~0.2.3",
659
+ "iconv-lite": "~0.2.11",
660
+ "js-yaml": "~2.0.5",
661
+ "lodash": "~0.9.2",
662
+ "minimatch": "~0.2.12",
663
+ "nopt": "~1.0.10",
664
+ "rimraf": "~2.2.8",
665
+ "underscore.string": "~2.2.1",
666
+ "which": "~1.0.5"
667
+ }
668
+ },
669
+ "grunt-cli": {
670
+ "version": "1.3.2",
671
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz",
672
+ "integrity": "sha512-8OHDiZZkcptxVXtMfDxJvmN7MVJNE8L/yIcPb4HB7TlyFD1kDvjHrb62uhySsU14wJx9ORMnTuhRMQ40lH/orQ==",
673
+ "requires": {
674
+ "grunt-known-options": "~1.1.0",
675
+ "interpret": "~1.1.0",
676
+ "liftoff": "~2.5.0",
677
+ "nopt": "~4.0.1",
678
+ "v8flags": "~3.1.1"
679
+ },
680
+ "dependencies": {
681
+ "nopt": {
682
+ "version": "4.0.3",
683
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
684
+ "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
685
+ "requires": {
686
+ "abbrev": "1",
687
+ "osenv": "^0.1.4"
688
+ }
689
+ }
690
+ }
691
+ },
692
+ "grunt-contrib-clean": {
693
+ "version": "0.5.0",
694
+ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.5.0.tgz",
695
+ "integrity": "sha1-9T397ghJsce0Dp67umn0jExgecU=",
696
+ "dev": true,
697
+ "requires": {
698
+ "rimraf": "~2.2.1"
699
+ }
700
+ },
701
+ "grunt-contrib-concat": {
702
+ "version": "0.3.0",
703
+ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-0.3.0.tgz",
704
+ "integrity": "sha1-SPoNQzbSm2U62CJaa9b4VrRIPjI=",
705
+ "dev": true
706
+ },
707
+ "grunt-contrib-copy": {
708
+ "version": "0.5.0",
709
+ "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-0.5.0.tgz",
710
+ "integrity": "sha1-QQB1rEWlhWuhkbHMclclRQ1KAhU=",
711
+ "dev": true
712
+ },
713
+ "grunt-contrib-cssmin": {
714
+ "version": "0.7.0",
715
+ "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.7.0.tgz",
716
+ "integrity": "sha1-pXNenx0mMUnkn+A1KU5CnYxnC6s=",
717
+ "dev": true,
718
+ "requires": {
719
+ "clean-css": "~2.0.0",
720
+ "grunt-lib-contrib": "~0.6.0"
721
+ }
722
+ },
723
+ "grunt-contrib-jshint": {
724
+ "version": "0.6.5",
725
+ "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-0.6.5.tgz",
726
+ "integrity": "sha1-OvtGdnRTZMxKGe7nk0wOBgCLVm4=",
727
+ "dev": true,
728
+ "requires": {
729
+ "jshint": "~2.1.10"
730
+ }
731
+ },
732
+ "grunt-contrib-uglify": {
733
+ "version": "0.2.7",
734
+ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.2.7.tgz",
735
+ "integrity": "sha1-5r2lHgxAoUWfbOrUI8Ze/XJaG/c=",
736
+ "dev": true,
737
+ "requires": {
738
+ "grunt-lib-contrib": "~0.6.1",
739
+ "uglify-js": "~2.4.0"
740
+ }
741
+ },
742
+ "grunt-known-options": {
743
+ "version": "1.1.1",
744
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
745
+ "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ=="
746
+ },
747
+ "grunt-legacy-log": {
748
+ "version": "0.1.3",
749
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
750
+ "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
751
+ "dev": true,
752
+ "requires": {
753
+ "colors": "~0.6.2",
754
+ "grunt-legacy-log-utils": "~0.1.1",
755
+ "hooker": "~0.2.3",
756
+ "lodash": "~2.4.1",
757
+ "underscore.string": "~2.3.3"
758
+ },
759
+ "dependencies": {
760
+ "lodash": {
761
+ "version": "2.4.2",
762
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
763
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
764
+ "dev": true
765
+ },
766
+ "underscore.string": {
767
+ "version": "2.3.3",
768
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
769
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
770
+ "dev": true
771
+ }
772
+ }
773
+ },
774
+ "grunt-legacy-log-utils": {
775
+ "version": "0.1.1",
776
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
777
+ "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
778
+ "dev": true,
779
+ "requires": {
780
+ "colors": "~0.6.2",
781
+ "lodash": "~2.4.1",
782
+ "underscore.string": "~2.3.3"
783
+ },
784
+ "dependencies": {
785
+ "lodash": {
786
+ "version": "2.4.2",
787
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
788
+ "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
789
+ "dev": true
790
+ },
791
+ "underscore.string": {
792
+ "version": "2.3.3",
793
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
794
+ "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
795
+ "dev": true
796
+ }
797
+ }
798
+ },
799
+ "grunt-legacy-util": {
800
+ "version": "0.2.0",
801
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
802
+ "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
803
+ "dev": true,
804
+ "requires": {
805
+ "async": "~0.1.22",
806
+ "exit": "~0.1.1",
807
+ "getobject": "~0.1.0",
808
+ "hooker": "~0.2.3",
809
+ "lodash": "~0.9.2",
810
+ "underscore.string": "~2.2.1",
811
+ "which": "~1.0.5"
812
+ }
813
+ },
814
+ "grunt-lib-contrib": {
815
+ "version": "0.6.1",
816
+ "resolved": "https://registry.npmjs.org/grunt-lib-contrib/-/grunt-lib-contrib-0.6.1.tgz",
817
+ "integrity": "sha1-P1att9oG6BR5XuJBWw6+X7iQPrs=",
818
+ "dev": true,
819
+ "requires": {
820
+ "zlib-browserify": "0.0.1"
821
+ }
822
+ },
823
+ "grunt-preprocess": {
824
+ "version": "4.2.0",
825
+ "resolved": "https://registry.npmjs.org/grunt-preprocess/-/grunt-preprocess-4.2.0.tgz",
826
+ "integrity": "sha1-SJUTzet1A1NEmn9lbVAXWvc/FfY=",
827
+ "dev": true,
828
+ "requires": {
829
+ "preprocess": "~2.3.1"
830
+ }
831
+ },
832
+ "has": {
833
+ "version": "1.0.3",
834
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
835
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
836
+ "requires": {
837
+ "function-bind": "^1.1.1"
838
+ }
839
+ },
840
+ "has-value": {
841
+ "version": "1.0.0",
842
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
843
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
844
+ "requires": {
845
+ "get-value": "^2.0.6",
846
+ "has-values": "^1.0.0",
847
+ "isobject": "^3.0.0"
848
+ }
849
+ },
850
+ "has-values": {
851
+ "version": "1.0.0",
852
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
853
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
854
+ "requires": {
855
+ "is-number": "^3.0.0",
856
+ "kind-of": "^4.0.0"
857
+ },
858
+ "dependencies": {
859
+ "kind-of": {
860
+ "version": "4.0.0",
861
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
862
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
863
+ "requires": {
864
+ "is-buffer": "^1.1.5"
865
+ }
866
+ }
867
+ }
868
+ },
869
+ "homedir-polyfill": {
870
+ "version": "1.0.3",
871
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
872
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
873
+ "requires": {
874
+ "parse-passwd": "^1.0.0"
875
+ }
876
+ },
877
+ "hooker": {
878
+ "version": "0.2.3",
879
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
880
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
881
+ "dev": true
882
+ },
883
+ "iconv-lite": {
884
+ "version": "0.2.11",
885
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
886
+ "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
887
+ "dev": true
888
+ },
889
+ "inherits": {
890
+ "version": "2.0.3",
891
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
892
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
893
+ "dev": true
894
+ },
895
+ "ini": {
896
+ "version": "1.3.5",
897
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
898
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
899
+ },
900
+ "interpret": {
901
+ "version": "1.1.0",
902
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
903
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ="
904
+ },
905
+ "is-absolute": {
906
+ "version": "1.0.0",
907
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
908
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
909
+ "requires": {
910
+ "is-relative": "^1.0.0",
911
+ "is-windows": "^1.0.1"
912
+ }
913
+ },
914
+ "is-accessor-descriptor": {
915
+ "version": "0.1.6",
916
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
917
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
918
+ "requires": {
919
+ "kind-of": "^3.0.2"
920
+ },
921
+ "dependencies": {
922
+ "kind-of": {
923
+ "version": "3.2.2",
924
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
925
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
926
+ "requires": {
927
+ "is-buffer": "^1.1.5"
928
+ }
929
+ }
930
+ }
931
+ },
932
+ "is-buffer": {
933
+ "version": "1.1.6",
934
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
935
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
936
+ },
937
+ "is-core-module": {
938
+ "version": "2.1.0",
939
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz",
940
+ "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==",
941
+ "requires": {
942
+ "has": "^1.0.3"
943
+ }
944
+ },
945
+ "is-data-descriptor": {
946
+ "version": "0.1.4",
947
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
948
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
949
+ "requires": {
950
+ "kind-of": "^3.0.2"
951
+ },
952
+ "dependencies": {
953
+ "kind-of": {
954
+ "version": "3.2.2",
955
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
956
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
957
+ "requires": {
958
+ "is-buffer": "^1.1.5"
959
+ }
960
+ }
961
+ }
962
+ },
963
+ "is-descriptor": {
964
+ "version": "0.1.6",
965
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
966
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
967
+ "requires": {
968
+ "is-accessor-descriptor": "^0.1.6",
969
+ "is-data-descriptor": "^0.1.4",
970
+ "kind-of": "^5.0.0"
971
+ },
972
+ "dependencies": {
973
+ "kind-of": {
974
+ "version": "5.1.0",
975
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
976
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
977
+ }
978
+ }
979
+ },
980
+ "is-extendable": {
981
+ "version": "0.1.1",
982
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
983
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik="
984
+ },
985
+ "is-extglob": {
986
+ "version": "2.1.1",
987
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
988
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
989
+ },
990
+ "is-glob": {
991
+ "version": "3.1.0",
992
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
993
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
994
+ "requires": {
995
+ "is-extglob": "^2.1.0"
996
+ }
997
+ },
998
+ "is-number": {
999
+ "version": "3.0.0",
1000
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
1001
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
1002
+ "requires": {
1003
+ "kind-of": "^3.0.2"
1004
+ },
1005
+ "dependencies": {
1006
+ "kind-of": {
1007
+ "version": "3.2.2",
1008
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1009
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1010
+ "requires": {
1011
+ "is-buffer": "^1.1.5"
1012
+ }
1013
+ }
1014
+ }
1015
+ },
1016
+ "is-plain-object": {
1017
+ "version": "2.0.4",
1018
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
1019
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
1020
+ "requires": {
1021
+ "isobject": "^3.0.1"
1022
+ }
1023
+ },
1024
+ "is-relative": {
1025
+ "version": "1.0.0",
1026
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
1027
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
1028
+ "requires": {
1029
+ "is-unc-path": "^1.0.0"
1030
+ }
1031
+ },
1032
+ "is-unc-path": {
1033
+ "version": "1.0.0",
1034
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
1035
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
1036
+ "requires": {
1037
+ "unc-path-regex": "^0.1.2"
1038
+ }
1039
+ },
1040
+ "is-windows": {
1041
+ "version": "1.0.2",
1042
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
1043
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
1044
+ },
1045
+ "isarray": {
1046
+ "version": "1.0.0",
1047
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1048
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1049
+ },
1050
+ "isexe": {
1051
+ "version": "2.0.0",
1052
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1053
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
1054
+ },
1055
+ "isobject": {
1056
+ "version": "3.0.1",
1057
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1058
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
1059
+ },
1060
+ "js-yaml": {
1061
+ "version": "2.0.5",
1062
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
1063
+ "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
1064
+ "dev": true,
1065
+ "requires": {
1066
+ "argparse": "~ 0.1.11",
1067
+ "esprima": "~ 1.0.2"
1068
+ }
1069
+ },
1070
+ "jshint": {
1071
+ "version": "2.1.11",
1072
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.1.11.tgz",
1073
+ "integrity": "sha1-61EI/vm6Xd67gwmD9XLSQuSeP5Y=",
1074
+ "dev": true,
1075
+ "requires": {
1076
+ "cli": "0.4.x",
1077
+ "console-browserify": "0.1.x",
1078
+ "minimatch": "0.x.x",
1079
+ "shelljs": "0.1.x",
1080
+ "underscore": "1.4.x"
1081
+ },
1082
+ "dependencies": {
1083
+ "underscore": {
1084
+ "version": "1.4.4",
1085
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz",
1086
+ "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=",
1087
+ "dev": true
1088
+ }
1089
+ }
1090
+ },
1091
+ "kind-of": {
1092
+ "version": "6.0.3",
1093
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
1094
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
1095
+ },
1096
+ "liftoff": {
1097
+ "version": "2.5.0",
1098
+ "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
1099
+ "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=",
1100
+ "requires": {
1101
+ "extend": "^3.0.0",
1102
+ "findup-sync": "^2.0.0",
1103
+ "fined": "^1.0.1",
1104
+ "flagged-respawn": "^1.0.0",
1105
+ "is-plain-object": "^2.0.4",
1106
+ "object.map": "^1.0.0",
1107
+ "rechoir": "^0.6.2",
1108
+ "resolve": "^1.1.7"
1109
+ },
1110
+ "dependencies": {
1111
+ "findup-sync": {
1112
+ "version": "2.0.0",
1113
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
1114
+ "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
1115
+ "requires": {
1116
+ "detect-file": "^1.0.0",
1117
+ "is-glob": "^3.1.0",
1118
+ "micromatch": "^3.0.4",
1119
+ "resolve-dir": "^1.0.1"
1120
+ }
1121
+ }
1122
+ }
1123
+ },
1124
+ "lodash": {
1125
+ "version": "0.9.2",
1126
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
1127
+ "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
1128
+ "dev": true
1129
+ },
1130
+ "lru-cache": {
1131
+ "version": "2.7.3",
1132
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
1133
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
1134
+ "dev": true
1135
+ },
1136
+ "make-iterator": {
1137
+ "version": "1.0.1",
1138
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
1139
+ "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
1140
+ "requires": {
1141
+ "kind-of": "^6.0.2"
1142
+ }
1143
+ },
1144
+ "map-cache": {
1145
+ "version": "0.2.2",
1146
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
1147
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
1148
+ },
1149
+ "map-visit": {
1150
+ "version": "1.0.0",
1151
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
1152
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
1153
+ "requires": {
1154
+ "object-visit": "^1.0.0"
1155
+ }
1156
+ },
1157
+ "micromatch": {
1158
+ "version": "3.1.10",
1159
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
1160
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
1161
+ "requires": {
1162
+ "arr-diff": "^4.0.0",
1163
+ "array-unique": "^0.3.2",
1164
+ "braces": "^2.3.1",
1165
+ "define-property": "^2.0.2",
1166
+ "extend-shallow": "^3.0.2",
1167
+ "extglob": "^2.0.4",
1168
+ "fragment-cache": "^0.2.1",
1169
+ "kind-of": "^6.0.2",
1170
+ "nanomatch": "^1.2.9",
1171
+ "object.pick": "^1.3.0",
1172
+ "regex-not": "^1.0.0",
1173
+ "snapdragon": "^0.8.1",
1174
+ "to-regex": "^3.0.2"
1175
+ }
1176
+ },
1177
+ "minimatch": {
1178
+ "version": "0.2.14",
1179
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
1180
+ "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
1181
+ "dev": true,
1182
+ "requires": {
1183
+ "lru-cache": "2",
1184
+ "sigmund": "~1.0.0"
1185
+ }
1186
+ },
1187
+ "mixin-deep": {
1188
+ "version": "1.3.2",
1189
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
1190
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
1191
+ "requires": {
1192
+ "for-in": "^1.0.2",
1193
+ "is-extendable": "^1.0.1"
1194
+ },
1195
+ "dependencies": {
1196
+ "is-extendable": {
1197
+ "version": "1.0.1",
1198
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
1199
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
1200
+ "requires": {
1201
+ "is-plain-object": "^2.0.4"
1202
+ }
1203
+ }
1204
+ }
1205
+ },
1206
+ "ms": {
1207
+ "version": "2.0.0",
1208
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1209
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1210
+ },
1211
+ "nanomatch": {
1212
+ "version": "1.2.13",
1213
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
1214
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
1215
+ "requires": {
1216
+ "arr-diff": "^4.0.0",
1217
+ "array-unique": "^0.3.2",
1218
+ "define-property": "^2.0.2",
1219
+ "extend-shallow": "^3.0.2",
1220
+ "fragment-cache": "^0.2.1",
1221
+ "is-windows": "^1.0.2",
1222
+ "kind-of": "^6.0.2",
1223
+ "object.pick": "^1.3.0",
1224
+ "regex-not": "^1.0.0",
1225
+ "snapdragon": "^0.8.1",
1226
+ "to-regex": "^3.0.1"
1227
+ }
1228
+ },
1229
+ "nopt": {
1230
+ "version": "1.0.10",
1231
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
1232
+ "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
1233
+ "dev": true,
1234
+ "requires": {
1235
+ "abbrev": "1"
1236
+ }
1237
+ },
1238
+ "object-copy": {
1239
+ "version": "0.1.0",
1240
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
1241
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
1242
+ "requires": {
1243
+ "copy-descriptor": "^0.1.0",
1244
+ "define-property": "^0.2.5",
1245
+ "kind-of": "^3.0.3"
1246
+ },
1247
+ "dependencies": {
1248
+ "define-property": {
1249
+ "version": "0.2.5",
1250
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1251
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1252
+ "requires": {
1253
+ "is-descriptor": "^0.1.0"
1254
+ }
1255
+ },
1256
+ "kind-of": {
1257
+ "version": "3.2.2",
1258
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1259
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1260
+ "requires": {
1261
+ "is-buffer": "^1.1.5"
1262
+ }
1263
+ }
1264
+ }
1265
+ },
1266
+ "object-visit": {
1267
+ "version": "1.0.1",
1268
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
1269
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
1270
+ "requires": {
1271
+ "isobject": "^3.0.0"
1272
+ }
1273
+ },
1274
+ "object.defaults": {
1275
+ "version": "1.1.0",
1276
+ "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
1277
+ "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
1278
+ "requires": {
1279
+ "array-each": "^1.0.1",
1280
+ "array-slice": "^1.0.0",
1281
+ "for-own": "^1.0.0",
1282
+ "isobject": "^3.0.0"
1283
+ }
1284
+ },
1285
+ "object.map": {
1286
+ "version": "1.0.1",
1287
+ "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
1288
+ "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
1289
+ "requires": {
1290
+ "for-own": "^1.0.0",
1291
+ "make-iterator": "^1.0.0"
1292
+ }
1293
+ },
1294
+ "object.pick": {
1295
+ "version": "1.3.0",
1296
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
1297
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
1298
+ "requires": {
1299
+ "isobject": "^3.0.1"
1300
+ }
1301
+ },
1302
+ "os-homedir": {
1303
+ "version": "1.0.2",
1304
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
1305
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
1306
+ },
1307
+ "os-tmpdir": {
1308
+ "version": "1.0.2",
1309
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1310
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
1311
+ },
1312
+ "osenv": {
1313
+ "version": "0.1.5",
1314
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
1315
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
1316
+ "requires": {
1317
+ "os-homedir": "^1.0.0",
1318
+ "os-tmpdir": "^1.0.0"
1319
+ }
1320
+ },
1321
+ "parse-filepath": {
1322
+ "version": "1.0.2",
1323
+ "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
1324
+ "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
1325
+ "requires": {
1326
+ "is-absolute": "^1.0.0",
1327
+ "map-cache": "^0.2.0",
1328
+ "path-root": "^0.1.1"
1329
+ }
1330
+ },
1331
+ "parse-passwd": {
1332
+ "version": "1.0.0",
1333
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
1334
+ "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY="
1335
+ },
1336
+ "pascalcase": {
1337
+ "version": "0.1.1",
1338
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
1339
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ="
1340
+ },
1341
+ "path-parse": {
1342
+ "version": "1.0.6",
1343
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1344
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
1345
+ },
1346
+ "path-root": {
1347
+ "version": "0.1.1",
1348
+ "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
1349
+ "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
1350
+ "requires": {
1351
+ "path-root-regex": "^0.1.0"
1352
+ }
1353
+ },
1354
+ "path-root-regex": {
1355
+ "version": "0.1.2",
1356
+ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
1357
+ "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0="
1358
+ },
1359
+ "posix-character-classes": {
1360
+ "version": "0.1.1",
1361
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
1362
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
1363
+ },
1364
+ "preprocess": {
1365
+ "version": "2.3.1",
1366
+ "resolved": "https://registry.npmjs.org/preprocess/-/preprocess-2.3.1.tgz",
1367
+ "integrity": "sha1-vaMCLmI+m1mdTAgoGG2FvZ8SxQA=",
1368
+ "dev": true
1369
+ },
1370
+ "rechoir": {
1371
+ "version": "0.6.2",
1372
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
1373
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
1374
+ "requires": {
1375
+ "resolve": "^1.1.6"
1376
+ }
1377
+ },
1378
+ "regex-not": {
1379
+ "version": "1.0.2",
1380
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
1381
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
1382
+ "requires": {
1383
+ "extend-shallow": "^3.0.2",
1384
+ "safe-regex": "^1.1.0"
1385
+ }
1386
+ },
1387
+ "repeat-element": {
1388
+ "version": "1.1.3",
1389
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
1390
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g=="
1391
+ },
1392
+ "repeat-string": {
1393
+ "version": "1.6.1",
1394
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1395
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
1396
+ },
1397
+ "resolve": {
1398
+ "version": "1.18.1",
1399
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz",
1400
+ "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==",
1401
+ "requires": {
1402
+ "is-core-module": "^2.0.0",
1403
+ "path-parse": "^1.0.6"
1404
+ }
1405
+ },
1406
+ "resolve-dir": {
1407
+ "version": "1.0.1",
1408
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
1409
+ "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
1410
+ "requires": {
1411
+ "expand-tilde": "^2.0.0",
1412
+ "global-modules": "^1.0.0"
1413
+ }
1414
+ },
1415
+ "resolve-url": {
1416
+ "version": "0.2.1",
1417
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
1418
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo="
1419
+ },
1420
+ "ret": {
1421
+ "version": "0.1.15",
1422
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
1423
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
1424
+ },
1425
+ "rimraf": {
1426
+ "version": "2.2.8",
1427
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
1428
+ "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
1429
+ "dev": true
1430
+ },
1431
+ "safe-regex": {
1432
+ "version": "1.1.0",
1433
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
1434
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
1435
+ "requires": {
1436
+ "ret": "~0.1.10"
1437
+ }
1438
+ },
1439
+ "set-value": {
1440
+ "version": "2.0.1",
1441
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
1442
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
1443
+ "requires": {
1444
+ "extend-shallow": "^2.0.1",
1445
+ "is-extendable": "^0.1.1",
1446
+ "is-plain-object": "^2.0.3",
1447
+ "split-string": "^3.0.1"
1448
+ },
1449
+ "dependencies": {
1450
+ "extend-shallow": {
1451
+ "version": "2.0.1",
1452
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1453
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1454
+ "requires": {
1455
+ "is-extendable": "^0.1.0"
1456
+ }
1457
+ }
1458
+ }
1459
+ },
1460
+ "shelljs": {
1461
+ "version": "0.1.4",
1462
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.1.4.tgz",
1463
+ "integrity": "sha1-37vnjVbDwBaNL7eeEOzR28sH7A4=",
1464
+ "dev": true
1465
+ },
1466
+ "sigmund": {
1467
+ "version": "1.0.1",
1468
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
1469
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
1470
+ "dev": true
1471
+ },
1472
+ "snapdragon": {
1473
+ "version": "0.8.2",
1474
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
1475
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
1476
+ "requires": {
1477
+ "base": "^0.11.1",
1478
+ "debug": "^2.2.0",
1479
+ "define-property": "^0.2.5",
1480
+ "extend-shallow": "^2.0.1",
1481
+ "map-cache": "^0.2.2",
1482
+ "source-map": "^0.5.6",
1483
+ "source-map-resolve": "^0.5.0",
1484
+ "use": "^3.1.0"
1485
+ },
1486
+ "dependencies": {
1487
+ "define-property": {
1488
+ "version": "0.2.5",
1489
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1490
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1491
+ "requires": {
1492
+ "is-descriptor": "^0.1.0"
1493
+ }
1494
+ },
1495
+ "extend-shallow": {
1496
+ "version": "2.0.1",
1497
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1498
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1499
+ "requires": {
1500
+ "is-extendable": "^0.1.0"
1501
+ }
1502
+ },
1503
+ "source-map": {
1504
+ "version": "0.5.7",
1505
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1506
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
1507
+ }
1508
+ }
1509
+ },
1510
+ "snapdragon-node": {
1511
+ "version": "2.1.1",
1512
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
1513
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
1514
+ "requires": {
1515
+ "define-property": "^1.0.0",
1516
+ "isobject": "^3.0.0",
1517
+ "snapdragon-util": "^3.0.1"
1518
+ },
1519
+ "dependencies": {
1520
+ "define-property": {
1521
+ "version": "1.0.0",
1522
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1523
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1524
+ "requires": {
1525
+ "is-descriptor": "^1.0.0"
1526
+ }
1527
+ },
1528
+ "is-accessor-descriptor": {
1529
+ "version": "1.0.0",
1530
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1531
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1532
+ "requires": {
1533
+ "kind-of": "^6.0.0"
1534
+ }
1535
+ },
1536
+ "is-data-descriptor": {
1537
+ "version": "1.0.0",
1538
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1539
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1540
+ "requires": {
1541
+ "kind-of": "^6.0.0"
1542
+ }
1543
+ },
1544
+ "is-descriptor": {
1545
+ "version": "1.0.2",
1546
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1547
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1548
+ "requires": {
1549
+ "is-accessor-descriptor": "^1.0.0",
1550
+ "is-data-descriptor": "^1.0.0",
1551
+ "kind-of": "^6.0.2"
1552
+ }
1553
+ }
1554
+ }
1555
+ },
1556
+ "snapdragon-util": {
1557
+ "version": "3.0.1",
1558
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
1559
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
1560
+ "requires": {
1561
+ "kind-of": "^3.2.0"
1562
+ },
1563
+ "dependencies": {
1564
+ "kind-of": {
1565
+ "version": "3.2.2",
1566
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1567
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1568
+ "requires": {
1569
+ "is-buffer": "^1.1.5"
1570
+ }
1571
+ }
1572
+ }
1573
+ },
1574
+ "source-map": {
1575
+ "version": "0.1.34",
1576
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz",
1577
+ "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=",
1578
+ "dev": true,
1579
+ "requires": {
1580
+ "amdefine": ">=0.0.4"
1581
+ }
1582
+ },
1583
+ "source-map-resolve": {
1584
+ "version": "0.5.3",
1585
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
1586
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
1587
+ "requires": {
1588
+ "atob": "^2.1.2",
1589
+ "decode-uri-component": "^0.2.0",
1590
+ "resolve-url": "^0.2.1",
1591
+ "source-map-url": "^0.4.0",
1592
+ "urix": "^0.1.0"
1593
+ }
1594
+ },
1595
+ "source-map-url": {
1596
+ "version": "0.4.0",
1597
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
1598
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
1599
+ },
1600
+ "split-string": {
1601
+ "version": "3.1.0",
1602
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
1603
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
1604
+ "requires": {
1605
+ "extend-shallow": "^3.0.0"
1606
+ }
1607
+ },
1608
+ "static-extend": {
1609
+ "version": "0.1.2",
1610
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
1611
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
1612
+ "requires": {
1613
+ "define-property": "^0.2.5",
1614
+ "object-copy": "^0.1.0"
1615
+ },
1616
+ "dependencies": {
1617
+ "define-property": {
1618
+ "version": "0.2.5",
1619
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1620
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1621
+ "requires": {
1622
+ "is-descriptor": "^0.1.0"
1623
+ }
1624
+ }
1625
+ }
1626
+ },
1627
+ "to-object-path": {
1628
+ "version": "0.3.0",
1629
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
1630
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
1631
+ "requires": {
1632
+ "kind-of": "^3.0.2"
1633
+ },
1634
+ "dependencies": {
1635
+ "kind-of": {
1636
+ "version": "3.2.2",
1637
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1638
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1639
+ "requires": {
1640
+ "is-buffer": "^1.1.5"
1641
+ }
1642
+ }
1643
+ }
1644
+ },
1645
+ "to-regex": {
1646
+ "version": "3.0.2",
1647
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
1648
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
1649
+ "requires": {
1650
+ "define-property": "^2.0.2",
1651
+ "extend-shallow": "^3.0.2",
1652
+ "regex-not": "^1.0.2",
1653
+ "safe-regex": "^1.1.0"
1654
+ }
1655
+ },
1656
+ "to-regex-range": {
1657
+ "version": "2.1.1",
1658
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
1659
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
1660
+ "requires": {
1661
+ "is-number": "^3.0.0",
1662
+ "repeat-string": "^1.6.1"
1663
+ }
1664
+ },
1665
+ "uglify-js": {
1666
+ "version": "2.4.24",
1667
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz",
1668
+ "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=",
1669
+ "dev": true,
1670
+ "requires": {
1671
+ "async": "~0.2.6",
1672
+ "source-map": "0.1.34",
1673
+ "uglify-to-browserify": "~1.0.0",
1674
+ "yargs": "~3.5.4"
1675
+ },
1676
+ "dependencies": {
1677
+ "async": {
1678
+ "version": "0.2.10",
1679
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
1680
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=",
1681
+ "dev": true
1682
+ }
1683
+ }
1684
+ },
1685
+ "uglify-to-browserify": {
1686
+ "version": "1.0.2",
1687
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
1688
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
1689
+ "dev": true
1690
+ },
1691
+ "unc-path-regex": {
1692
+ "version": "0.1.2",
1693
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
1694
+ "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
1695
+ },
1696
+ "underscore": {
1697
+ "version": "1.7.0",
1698
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
1699
+ "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
1700
+ "dev": true
1701
+ },
1702
+ "underscore.string": {
1703
+ "version": "2.2.1",
1704
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
1705
+ "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
1706
+ "dev": true
1707
+ },
1708
+ "union-value": {
1709
+ "version": "1.0.1",
1710
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
1711
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
1712
+ "requires": {
1713
+ "arr-union": "^3.1.0",
1714
+ "get-value": "^2.0.6",
1715
+ "is-extendable": "^0.1.1",
1716
+ "set-value": "^2.0.1"
1717
+ }
1718
+ },
1719
+ "unset-value": {
1720
+ "version": "1.0.0",
1721
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
1722
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
1723
+ "requires": {
1724
+ "has-value": "^0.3.1",
1725
+ "isobject": "^3.0.0"
1726
+ },
1727
+ "dependencies": {
1728
+ "has-value": {
1729
+ "version": "0.3.1",
1730
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
1731
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
1732
+ "requires": {
1733
+ "get-value": "^2.0.3",
1734
+ "has-values": "^0.1.4",
1735
+ "isobject": "^2.0.0"
1736
+ },
1737
+ "dependencies": {
1738
+ "isobject": {
1739
+ "version": "2.1.0",
1740
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1741
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
1742
+ "requires": {
1743
+ "isarray": "1.0.0"
1744
+ }
1745
+ }
1746
+ }
1747
+ },
1748
+ "has-values": {
1749
+ "version": "0.1.4",
1750
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
1751
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
1752
+ }
1753
+ }
1754
+ },
1755
+ "urix": {
1756
+ "version": "0.1.0",
1757
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
1758
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI="
1759
+ },
1760
+ "use": {
1761
+ "version": "3.1.1",
1762
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
1763
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
1764
+ },
1765
+ "v8flags": {
1766
+ "version": "3.1.3",
1767
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz",
1768
+ "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==",
1769
+ "requires": {
1770
+ "homedir-polyfill": "^1.0.1"
1771
+ }
1772
+ },
1773
+ "which": {
1774
+ "version": "1.0.9",
1775
+ "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
1776
+ "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
1777
+ "dev": true
1778
+ },
1779
+ "window-size": {
1780
+ "version": "0.1.0",
1781
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
1782
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
1783
+ "dev": true
1784
+ },
1785
+ "wordwrap": {
1786
+ "version": "0.0.2",
1787
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
1788
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
1789
+ "dev": true
1790
+ },
1791
+ "yargs": {
1792
+ "version": "3.5.4",
1793
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz",
1794
+ "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=",
1795
+ "dev": true,
1796
+ "requires": {
1797
+ "camelcase": "^1.0.2",
1798
+ "decamelize": "^1.0.0",
1799
+ "window-size": "0.1.0",
1800
+ "wordwrap": "0.0.2"
1801
+ }
1802
+ },
1803
+ "zlib-browserify": {
1804
+ "version": "0.0.1",
1805
+ "resolved": "https://registry.npmjs.org/zlib-browserify/-/zlib-browserify-0.0.1.tgz",
1806
+ "integrity": "sha1-T6akXQDbwV8xikr6HZr8Aljhdsw=",
1807
+ "dev": true
1808
+ }
1809
+ }
1810
+ }
libs/factory/clearfy/assets/css/clearfy-base.css CHANGED
@@ -5,18 +5,39 @@
5
  * @copyright Webcraftic 06.10.2018
6
  * @sicne 2.0.5
7
  */
8
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-clearfy-224-multisite-suggetion {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  padding: 30px 80px;
10
  }
11
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-clearfy-224-multisite-suggetion h3 {
12
  margin: 0 0 20px;
13
  }
14
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-clearfy-224-multisite-suggetion .wbcr-factory-inner-contanier {
15
  border: 2px dashed #8bc34a;
16
  background: #fff;
17
  padding: 20px;
18
  }
19
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-clearfy-224-multisite-suggetion .wbcr-factory-activate-premium {
20
  display: inline-block;
21
  cursor: pointer;
22
  line-height: 16px;
@@ -35,16 +56,16 @@
35
  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
36
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
37
  }
38
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-clearfy-224-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-432-impressive-page-template .wbcr-factory-clearfy-224-multisite-suggetion .wbcr-factory-activate-premium:focus {
44
  outline: none;
45
  border: 0;
46
  }
47
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-clearfy-224-multisite-suggetion .wbcr-factory-purchase-premium {
48
  display: inline-block;
49
  cursor: pointer;
50
  line-height: 16px;
@@ -63,22 +84,22 @@
63
  -moz-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
64
  -webkit-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
65
  }
66
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-clearfy-224-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-432-impressive-page-template .wbcr-factory-clearfy-224-multisite-suggetion .wbcr-factory-purchase-premium:focus {
72
  outline: none;
73
  border: 0;
74
  }
75
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion {
76
  background: #fff;
77
  color: #353535;
78
  font-weight: 600;
79
  border: 2px dashed #8bc34a;
80
  }
81
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion h3 {
82
  margin: 0 0 20px;
83
  padding: 10px 0;
84
  text-align: center;
@@ -89,16 +110,16 @@
89
  vertical-align: middle;
90
  text-transform: uppercase;
91
  }
92
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion ul {
93
  position: relative;
94
  margin-bottom: 20px;
95
  }
96
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion ul li {
97
  font-size: 15px;
98
  padding: 7px;
99
  padding-left: 20px;
100
  }
101
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion ul li:before {
102
  content: " ";
103
  display: inline-block;
104
  width: 0.4em;
@@ -112,7 +133,7 @@
112
  -o-transform: rotate(45deg);
113
  transform: rotate(45deg);
114
  }
115
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion .wbcr-factory-purchase-premium {
116
  display: block;
117
  cursor: pointer;
118
  line-height: 16px;
@@ -131,44 +152,102 @@
131
  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
132
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
133
  }
134
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-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-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-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-432-impressive-page-template .wbcr-factory-clearfy-224-multisite-pro-suggetion {
145
  padding: 10px 80px;
146
  }
147
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion {
148
  padding: 10px;
149
  }
150
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-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-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion ul {
157
  margin-bottom: 20px;
158
  }
159
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion ul li {
160
  font-size: 13px;
161
  padding: 2px;
162
  padding-left: 10px;
163
  }
164
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-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-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-224-pro-suggettion .wbcr-factory-purchase-premium {
172
  font-weight: 700;
173
  line-height: 16px;
174
  font-size: 12px;
5
  * @copyright Webcraftic 06.10.2018
6
  * @sicne 2.0.5
7
  */
8
+ #WBCR {
9
+ /* subscribe widget */
10
+ }
11
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .factory-checkbox.wbcr-factory-clearfy-icon-pro:after {
12
+ display: inline-block;
13
+ position: relative;
14
+ content: 'PRO';
15
+ background: #ff5722;
16
+ border-radius: 4px;
17
+ color: #fff;
18
+ font-size: 10px;
19
+ line-height: 1;
20
+ font-style: normal;
21
+ padding: 4px 6px;
22
+ margin-left: 4px;
23
+ vertical-align: top;
24
+ top: -8px;
25
+ left: -10px;
26
+ right: auto;
27
+ z-index: 11;
28
+ }
29
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion {
30
  padding: 30px 80px;
31
  }
32
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion h3 {
33
  margin: 0 0 20px;
34
  }
35
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-inner-contanier {
36
  border: 2px dashed #8bc34a;
37
  background: #fff;
38
  padding: 20px;
39
  }
40
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-activate-premium {
41
  display: inline-block;
42
  cursor: pointer;
43
  line-height: 16px;
56
  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
57
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
58
  }
59
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-activate-premium:active {
60
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
61
  -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
62
  -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
63
  }
64
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-activate-premium:focus {
65
  outline: none;
66
  border: 0;
67
  }
68
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-purchase-premium {
69
  display: inline-block;
70
  cursor: pointer;
71
  line-height: 16px;
84
  -moz-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
85
  -webkit-box-shadow: 0 1px 0 rgba(60, 45, 2, 0.31);
86
  }
87
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-purchase-premium:active {
88
  box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
89
  -moz-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
90
  -webkit-box-shadow: inset 0 1px 0 rgba(60, 45, 2, 0.31);
91
  }
92
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-suggetion .wbcr-factory-purchase-premium:focus {
93
  outline: none;
94
  border: 0;
95
  }
96
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion {
97
  background: #fff;
98
  color: #353535;
99
  font-weight: 600;
100
  border: 2px dashed #8bc34a;
101
  }
102
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion h3 {
103
  margin: 0 0 20px;
104
  padding: 10px 0;
105
  text-align: center;
110
  vertical-align: middle;
111
  text-transform: uppercase;
112
  }
113
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul {
114
  position: relative;
115
  margin-bottom: 20px;
116
  }
117
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul li {
118
  font-size: 15px;
119
  padding: 7px;
120
  padding-left: 20px;
121
  }
122
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul li:before {
123
  content: " ";
124
  display: inline-block;
125
  width: 0.4em;
133
  -o-transform: rotate(45deg);
134
  transform: rotate(45deg);
135
  }
136
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion .wbcr-factory-purchase-premium {
137
  display: block;
138
  cursor: pointer;
139
  line-height: 16px;
152
  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
153
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
154
  }
155
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion .wbcr-factory-purchase-premium:active {
156
  box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
157
  -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
158
  -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.2);
159
  }
160
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion .wbcr-factory-purchase-premium:focus {
161
  outline: none;
162
  border: 0;
163
  }
164
+ #WBCR .wbcr-factory-subscribe-widget {
165
+ margin-top: 0 !important;
166
+ border: 1px solid rgba(0, 0, 0, 0.1);
167
+ border-radius: 5px;
168
+ }
169
+ #WBCR .wbcr-factory-subscribe-widget__field {
170
+ margin: 10px auto;
171
+ display: block;
172
+ width: 100%;
173
+ text-align: center;
174
+ box-shadow: 0 0 0 transparent;
175
+ border-radius: 4px;
176
+ border: 1px solid #d6d4d4;
177
+ background-color: #fff;
178
+ color: #32373c;
179
+ }
180
+ #WBCR .wbcr-factory-subscribe-widget__button {
181
+ display: block;
182
+ width: 100%;
183
+ text-align: center;
184
+ margin: 14px 0 0;
185
+ box-shadow: none;
186
+ min-width: 100px;
187
+ background-color: #ff5722;
188
+ border: 0;
189
+ color: #fff;
190
+ }
191
+ #WBCR .wbcr-factory-subscribe-widget__button:active,
192
+ #WBCR .wbcr-factory-subscribe-widget__button:focus {
193
+ box-shadow: inset -1px 1px 1px #222;
194
+ outline: none;
195
+ }
196
+ #WBCR .wbcr-factory-subscribe-widget__msgbox {
197
+ font-weight: bold;
198
+ }
199
+ #WBCR .wbcr-factory-subscribe-widget__text {
200
+ display: none;
201
+ padding: 10px 14px;
202
+ margin: 0 0 10px;
203
+ }
204
+ #WBCR .wbcr-factory-subscribe-widget__text--success {
205
+ background: #d6efbe;
206
+ color: #61824b;
207
+ }
208
+ #WBCR .wbcr-factory-subscribe-widget__text--success2 {
209
+ background: #ffe0b3;
210
+ }
211
+ #WBCR .wbcr-factory-subscribe-widget__text--error {
212
+ background: #f1b1b6;
213
+ }
214
+ #WBCR .wbcr-factory-subscribe-widget__checkbox {
215
+ margin: 0 10px 0 0;
216
+ }
217
+ #WBCR .wbcr-factory-subscribe-widget__checkbox-label {
218
+ font-weight: normal;
219
+ color: #8c8888;
220
+ font-size: 12px;
221
+ }
222
  @media screen and (max-width: 1550px) {
223
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-clearfy-230-multisite-pro-suggetion {
224
  padding: 10px 80px;
225
  }
226
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion {
227
  padding: 10px;
228
  }
229
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion h3 {
230
  margin: 0 0 20px;
231
  padding: 10px 0;
232
  font-size: 13px;
233
  font-weight: 600;
234
  }
235
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul {
236
  margin-bottom: 20px;
237
  }
238
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul li {
239
  font-size: 13px;
240
  padding: 2px;
241
  padding-left: 10px;
242
  }
243
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion ul li:before {
244
  width: 0.4em;
245
  height: 0.7em;
246
  border-width: 0 0.2em 0.2em 0;
247
  left: 0;
248
  margin-right: 10px;
249
  }
250
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-clearfy-230-pro-suggettion .wbcr-factory-purchase-premium {
251
  font-weight: 700;
252
  line-height: 16px;
253
  font-size: 12px;
libs/factory/clearfy/assets/css/clearfy-base.css.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["clearfy-base.less"],"names":[],"mappings":";;;;;;;AAoCA,KAEE,iDACE;EACE,kBAAA;;AAJN,KAEE,iDACE,8CAGE;EACE,gBAAA;;AAPR,KAEE,iDACE,8CAOE;EACE,0BAAA;EACA,gBAAA;EACA,aAAA;;AAbR,KAEE,iDACE,8CAaE;EACE,qBAAA;EA5CN,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,sCAAA;EACA,2CAAA;EACA,8CAAA;;AACA,KAaA,iDACE,8CAaE,+BA3BH;EACC,4CAAA;EACA,iDAAA;EACA,oDAAA;;AAEF,KAQA,iDACE,8CAaE,+BAtBH;EACC,aAAA;EACA,SAAA;;AAIJ,KAEE,iDACE,8CAiBE;EACE,qBAAA;EAhDN,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,yCAAA;EACA,8CAAA;EACA,iDAAA;;AACA,KAaA,iDACE,8CAiBE,+BA/BH;EACC,+CAAA;EACA,oDAAA;EACA,uDAAA;;AAEF,KAQA,iDACE,8CAiBE,+BA1BH;EACC,aAAA;EACA,SAAA;;AAIJ,KAEE,iDAwBE,oCACE;EACE,gBAAA;EACA,cAAA;EACA,gBAAA;EACA,0BAAA;;AA/BR,KAEE,iDAwBE,oCACE,yCAME;EACE,gBAAA;EACA,eAAA;EACA,kBAAA;EACA,gCAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,yBAAA;;AA1CV,KAEE,iDAwBE,oCACE,yCAkBE;EAEE,kBAAA;EACA,mBAAA;;AAhDV,KAEE,iDAwBE,oCACE,yCAkBE,GAKE;EACE,eAAA;EACA,YAAA;EACA,kBAAA;;AAIA,KAvDV,iDAwBE,oCACE,yCAkBE,GAKE,GAOG;EACC,SAAS,GAAT;EACA,qBAAA;EACA,YAAA;EACA,aAAA;EACA,qBAAA;EACA,6BAAA;EACA,OAAA;EACA,kBAAA;EACA,mBAAmB,aAAnB;EACA,gBAAgB,aAAhB;EACA,cAAc,aAAd;EACA,WAAW,aAAX;;AArEd,KAEE,iDAwBE,oCACE,yCAgDE;EACE,cAAA;EAvGR,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,sCAAA;EACA,2CAAA;EACA,8CAAA;;AACA,KAaA,iDAwBE,oCACE,yCAgDE,+BAtFL;EACC,4CAAA;EACA,iDAAA;EACA,oDAAA;;AAEF,KAQA,iDAwBE,oCACE,yCAgDE,+BAjFL;EACC,aAAA;EACA,SAAA;;AAwFJ,mBAAsC;EACpC,KACE,iDACE;IACE,kBAAA;;EAHN,KACE,iDAKE,oCACE;IACE,aAAA;;EARR,KACE,iDAKE,oCACE,yCAGE;IACE,gBAAA;IACA,eAAA;IACA,eAAA;IACA,gBAAA;;EAdV,KACE,iDAKE,oCACE,yCAUE;IACE,mBAAA;;EAlBV,KACE,iDAKE,oCACE,yCAUE,GAGE;IACE,eAAA;IACA,YAAA;IACA,kBAAA;;EAEA,KAxBV,iDAKE,oCACE,yCAUE,GAGE,GAKG;IACC,YAAA;IACA,aAAA;IACA,6BAAA;IACA,OAAA;IACA,kBAAA;;EA9Bd,KACE,iDAKE,oCACE,yCA4BE;IACE,gBAAA;IACA,iBAAA;IACA,eAAA;IACA,iBAAA;IACA,kBAAA;IACA,uBAAA;IACA,0BAAA","file":"clearfy-base.css"}
1
+ {"version":3,"sources":["clearfy-base.less"],"names":[],"mappings":";;;;;;;AAoCA;;;AAAA,KAoBE,iDACE,kBAAiB,8BAA8B;EAnB/C,qBAAA;EACA,kBAAA;EACA,SAAS,KAAT;EACA,mBAAA;EACA,kBAAA;EACA,WAAA;EACA,eAAA;EACA,cAAA;EACA,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,WAAA;;AAjBJ,KAoBE,iDAKE;EACE,kBAAA;;AA1BN,KAoBE,iDAKE,8CAGE;EACE,gBAAA;;AA7BR,KAoBE,iDAKE,8CAOE;EACE,0BAAA;EACA,gBAAA;EACA,aAAA;;AAnCR,KAoBE,iDAKE,8CAaE;EACE,qBAAA;EAlEN,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,sCAAA;EACA,2CAAA;EACA,8CAAA;;AACA,KA+BA,iDAKE,8CAaE,+BAjDH;EACC,4CAAA;EACA,iDAAA;EACA,oDAAA;;AAEF,KA0BA,iDAKE,8CAaE,+BA5CH;EACC,aAAA;EACA,SAAA;;AAIJ,KAoBE,iDAKE,8CAkBE;EACE,qBAAA;EAvEN,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,yCAAA;EACA,8CAAA;EACA,iDAAA;;AACA,KA+BA,iDAKE,8CAkBE,+BAtDH;EACC,+CAAA;EACA,oDAAA;EACA,uDAAA;;AAEF,KA0BA,iDAKE,8CAkBE,+BAjDH;EACC,aAAA;EACA,SAAA;;AAIJ,KAoBE,iDA6BE,oCACE;EACE,gBAAA;EACA,cAAA;EACA,gBAAA;EACA,0BAAA;;AAtDR,KAoBE,iDA6BE,oCACE,yCAME;EACE,gBAAA;EACA,eAAA;EACA,kBAAA;EACA,gCAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;EACA,sBAAA;EACA,yBAAA;;AAjEV,KAoBE,iDA6BE,oCACE,yCAkBE;EAEE,kBAAA;EACA,mBAAA;;AAvEV,KAoBE,iDA6BE,oCACE,yCAkBE,GAKE;EACE,eAAA;EACA,YAAA;EACA,kBAAA;;AAKA,KA7DV,iDA6BE,oCACE,yCAkBE,GAKE,GAQG;EACC,SAAS,GAAT;EACA,qBAAA;EACA,YAAA;EACA,aAAA;EACA,qBAAA;EACA,6BAAA;EACA,OAAA;EACA,kBAAA;EACA,mBAAmB,aAAnB;EACA,gBAAgB,aAAhB;EACA,cAAc,aAAd;EACA,WAAW,aAAX;;AA7Fd,KAoBE,iDA6BE,oCACE,yCAiDE;EACE,cAAA;EA/HR,eAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,yBAAA;EACA,kBAAA;EACA,uBAAA;EACA,0BAAA;EACA,cAAA;EACA,mBAAA;EACA,sCAAA;EACA,2CAAA;EACA,8CAAA;;AACA,KA+BA,iDA6BE,oCACE,yCAiDE,+BA9GL;EACC,4CAAA;EACA,iDAAA;EACA,oDAAA;;AAEF,KA0BA,iDA6BE,oCACE,yCAiDE,+BAzGL;EACC,aAAA;EACA,SAAA;;AAIJ,KA6GE;EACE,wBAAA;EACA,oCAAA;EACA,kBAAA;;AAGA,KANF,+BAMG;EACC,iBAAA;EACA,cAAA;EACA,WAAA;EACA,kBAAA;EACA,6BAAA;EACA,kBAAA;EACA,yBAAA;EACA,sBAAA;EACA,cAAA;;AAGF,KAlBF,+BAkBG;EACC,cAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,SAAA;EACA,WAAA;;AAEA,KA7BJ,+BAkBG,QAWE;AAAS,KA7Bd,+BAkBG,QAWY;EACT,mCAAA;EACA,aAAA;;AAIJ,KAnCF,+BAmCG;EACC,iBAAA;;AAGF,KAvCF,+BAuCG;EACC,aAAA;EACA,kBAAA;EACA,gBAAA;;AAIF,KA9CF,+BA8CG;EACC,mBAAA;EACA,cAAA;;AAGF,KAnDF,+BAmDG;EACC,mBAAA;;AAGF,KAvDF,+BAuDG;EACC,mBAAA;;AAGF,KA3DF,+BA2DG;EACC,kBAAA;;AAGF,KA/DF,+BA+DG;EACC,mBAAA;EACA,cAAA;EACA,eAAA;;AAKN,mBAAsC;EACpC,KACE,iDACE;IACE,kBAAA;;EAHN,KACE,iDAKE,oCACE;IACE,aAAA;;EARR,KACE,iDAKE,oCACE,yCAGE;IACE,gBAAA;IACA,eAAA;IACA,eAAA;IACA,gBAAA;;EAdV,KACE,iDAKE,oCACE,yCAUE;IACE,mBAAA;;EAlBV,KACE,iDAKE,oCACE,yCAUE,GAGE;IACE,eAAA;IACA,YAAA;IACA,kBAAA;;EAEA,KAxBV,iDAKE,oCACE,yCAUE,GAGE,GAKG;IACC,YAAA;IACA,aAAA;IACA,6BAAA;IACA,OAAA;IACA,kBAAA;;EA9Bd,KACE,iDAKE,oCACE,yCA4BE;IACE,gBAAA;IACA,iBAAA;IACA,eAAA;IACA,iBAAA;IACA,kBAAA;IACA,uBAAA;IACA,0BAAA","file":"clearfy-base.css"}
libs/factory/clearfy/assets/css/clearfy-base.less CHANGED
@@ -35,8 +35,30 @@
35
  }
36
 
37
  #WBCR {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
  .wbcr-factory-pages-000-impressive-page-template {
 
 
 
 
40
  .wbcr-factory-clearfy-000-multisite-suggetion {
41
  padding: 30px 80px;
42
 
@@ -54,6 +76,7 @@
54
  display: inline-block;
55
  .button();
56
  }
 
57
  .wbcr-factory-purchase-premium {
58
  display: inline-block;
59
  .button(#fdd868, #755c0e, rgba(60, 45, 2, 0.31));
@@ -88,6 +111,7 @@
88
  font-size: 15px;
89
  padding: 7px;
90
  padding-left: 20px;
 
91
  &:before {
92
  }
93
 
@@ -116,6 +140,78 @@
116
  }
117
  }
118
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  }
120
 
121
  @media screen and (max-width: 1550px) {
35
  }
36
 
37
  #WBCR {
38
+ .premium-label(@position: relative, @positionTop:-8px, @positionLeft:-10px, @positionRight:auto) {
39
+ display: inline-block;
40
+ position: @position;
41
+ content: 'PRO';
42
+ background: #ff5722;
43
+ border-radius: 4px;
44
+ color: #fff;
45
+ font-size: 10px;
46
+ line-height: 1;
47
+ font-style: normal;
48
+ padding: 4px 6px;
49
+ margin-left: 4px;
50
+ vertical-align: top;
51
+ top: @positionTop;
52
+ left: @positionLeft;
53
+ right: @positionRight;
54
+ z-index: 11;
55
+ }
56
 
57
  .wbcr-factory-pages-000-impressive-page-template {
58
+ .factory-checkbox.wbcr-factory-clearfy-icon-pro:after {
59
+ .premium-label();
60
+ }
61
+
62
  .wbcr-factory-clearfy-000-multisite-suggetion {
63
  padding: 30px 80px;
64
 
76
  display: inline-block;
77
  .button();
78
  }
79
+
80
  .wbcr-factory-purchase-premium {
81
  display: inline-block;
82
  .button(#fdd868, #755c0e, rgba(60, 45, 2, 0.31));
111
  font-size: 15px;
112
  padding: 7px;
113
  padding-left: 20px;
114
+
115
  &:before {
116
  }
117
 
140
  }
141
  }
142
  }
143
+
144
+ /* subscribe widget */
145
+
146
+ .wbcr-factory-subscribe-widget {
147
+ margin-top: 0 !important;
148
+ border: 1px solid rgba(0, 0, 0, 0.1);
149
+ border-radius: 5px;
150
+
151
+
152
+ &__field {
153
+ margin: 10px auto;
154
+ display: block;
155
+ width: 100%;
156
+ text-align: center;
157
+ box-shadow: 0 0 0 transparent;
158
+ border-radius: 4px;
159
+ border: 1px solid #d6d4d4;
160
+ background-color: #fff;
161
+ color: #32373c;
162
+ }
163
+
164
+ &__button {
165
+ display: block;
166
+ width: 100%;
167
+ text-align: center;
168
+ margin: 14px 0 0;
169
+ box-shadow: none;
170
+ min-width: 100px;
171
+ background-color: #ff5722;
172
+ border: 0;
173
+ color: #fff;
174
+
175
+ &:active, &:focus {
176
+ box-shadow: inset -1px 1px 1px #222;
177
+ outline: none;
178
+ }
179
+ }
180
+
181
+ &__msgbox {
182
+ font-weight: bold;
183
+ }
184
+
185
+ &__text {
186
+ display: none;
187
+ padding: 10px 14px;
188
+ margin: 0 0 10px;
189
+
190
+ }
191
+
192
+ &__text--success {
193
+ background: #d6efbe;
194
+ color: #61824b;
195
+ }
196
+
197
+ &__text--success2 {
198
+ background: #ffe0b3;
199
+ }
200
+
201
+ &__text--error {
202
+ background: #f1b1b6;
203
+ }
204
+
205
+ &__checkbox {
206
+ margin: 0 10px 0 0;
207
+ }
208
+
209
+ &__checkbox-label {
210
+ font-weight: normal;
211
+ color: #8c8888;
212
+ font-size: 12px;
213
+ }
214
+ }
215
  }
216
 
217
  @media screen and (max-width: 1550px) {
libs/factory/clearfy/assets/css/components.css ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Page components
3
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
+ * @copyright Alex Kovalev 30.09.2017
5
+ */
6
+ #WBCR .wbc-factory-clearfy-230-components {
7
+ padding: 0 20px 20px;
8
+ text-align: center;
9
+ }
10
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card {
11
+ position: relative;
12
+ display: inline-block;
13
+ width: 32.7%;
14
+ height: 250px;
15
+ margin-left: 0;
16
+ margin-right: 0;
17
+ text-align: left;
18
+ float: none;
19
+ vertical-align: top;
20
+ }
21
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card:first-child {
22
+ margin-left: 0;
23
+ }
24
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-bottom {
25
+ position: absolute;
26
+ bottom: 0;
27
+ right: 0;
28
+ left: 0;
29
+ }
30
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-top {
31
+ min-height: 163px;
32
+ }
33
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .desc,
34
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .name {
35
+ margin-right: 0 !important;
36
+ }
37
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .name h3 {
38
+ font-size: 17px;
39
+ margin-top: 0 !important;
40
+ }
41
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .install-now {
42
+ float: right;
43
+ }
44
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .delete-now {
45
+ float: right;
46
+ margin-left: 5px;
47
+ }
48
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .delete-now .dashicons,
49
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .delete-now .dashicons-before:before {
50
+ font-size: 16px !important;
51
+ line-height: 1.5 !important;
52
+ color: #62696f;
53
+ }
54
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card a.open-plugin-details-modal {
55
+ color: #5c5d5f;
56
+ text-decoration: none;
57
+ font-weight: 600;
58
+ font-size: 15px;
59
+ }
60
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-premium-ribbon {
61
+ position: absolute;
62
+ bottom: 60px;
63
+ right: 0;
64
+ height: 30px;
65
+ width: 120px;
66
+ border-radius: 3px 0 0 3px;
67
+ background-color: #f7dea9;
68
+ color: #67532f;
69
+ text-align: center;
70
+ font-size: 12px;
71
+ font-weight: 600;
72
+ line-height: 2.4;
73
+ text-transform: uppercase;
74
+ z-index: 1;
75
+ }
76
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-free-ribbon {
77
+ position: absolute;
78
+ bottom: 60px;
79
+ right: 0;
80
+ height: 30px;
81
+ width: 120px;
82
+ border-radius: 3px 0 0 3px;
83
+ background-color: #cccccc;
84
+ color: #6b6b6b;
85
+ text-align: center;
86
+ font-size: 12px;
87
+ font-weight: 600;
88
+ line-height: 2.4;
89
+ text-transform: uppercase;
90
+ z-index: 1;
91
+ }
92
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card .plugin-card-freemium-ribbon {
93
+ position: absolute;
94
+ bottom: 60px;
95
+ right: 0;
96
+ height: 30px;
97
+ width: 120px;
98
+ border-radius: 3px 0 0 3px;
99
+ background-color: #cae2b3;
100
+ color: #546742;
101
+ text-align: center;
102
+ font-size: 12px;
103
+ font-weight: 600;
104
+ line-height: 2.4;
105
+ text-transform: uppercase;
106
+ z-index: 1;
107
+ }
108
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.premium {
109
+ border-color: #e8d7b2;
110
+ background-color: #fff9eb;
111
+ }
112
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive {
113
+ background-color: #f1f1f1;
114
+ }
115
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive a.open-plugin-details-modal {
116
+ color: #ababab;
117
+ text-decoration: none;
118
+ font-weight: 600;
119
+ font-size: 15px;
120
+ }
121
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive .plugin-icon {
122
+ opacity: 0.3;
123
+ }
124
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive .desc {
125
+ color: #afafaf;
126
+ }
127
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card.plugin-status-deactive.premium {
128
+ background-color: #f9f2f1;
129
+ }
130
+ @media screen and (max-width: 1750px) {
131
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card {
132
+ width: 49%;
133
+ }
134
+ }
135
+ @media screen and (max-width: 1350px) {
136
+ #WBCR .wbc-factory-clearfy-230-components .plugin-card {
137
+ width: 100%;
138
+ }
139
+ }
140
+ /*# sourceMappingURL=components.css.map */
libs/factory/clearfy/assets/css/components.css.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["components.less"],"names":[],"mappings":";;;;;AAMA,KAkBE;EACE,oBAAA;EACA,kBAAA;;AApBJ,KAkBE,oCAIE;EACE,kBAAA;EACA,qBAAA;EACA,YAAA;EACA,aAAA;EACA,cAAA;EACA,eAAA;EACA,gBAAA;EACA,WAAA;EACA,mBAAA;;AAEA,KAfJ,oCAIE,aAWG;EACC,cAAA;;AAlCR,KAkBE,oCAIE,aAeE;EACE,kBAAA;EACA,SAAA;EACA,QAAA;EACA,OAAA;;AAzCR,KAkBE,oCAIE,aAsBE;EACE,iBAAA;;AA7CR,KAkBE,oCAIE,aA0BE;AAhDN,KAkBE,oCAIE,aA0BS;EACL,0BAAA;;AAjDR,KAkBE,oCAIE,aA8BE,MACE;EACE,eAAA;EACA,wBAAA;;AAvDV,KAkBE,oCAIE,aAqCE;EACE,YAAA;;AA5DR,KAkBE,oCAIE,aAyCE;EACE,YAAA;EACA,gBAAA;;AAjER,KAkBE,oCAIE,aAyCE,YAIE;AAnER,KAkBE,oCAIE,aAyCE,YAIc,kBAAiB;EAC3B,0BAAA;EACA,gBAAA;EACA,cAAA;;AAtEV,KAkBE,oCAIE,aAoDE,EAAC;EACC,cAAA;EACA,qBAAA;EACA,gBAAA;EACA,eAAA;;AA9ER,KAkBE,oCAIE,aA4DE;EAhFF,kBAAA;EACA,YAAA;EACA,QAAA;EACA,YAAA;EACA,YAAA;EACA,0BAAA;EACA,yBAAA;EACA,cAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,UAAA;;AAfJ,KAkBE,oCAIE,aAiEE;EArFF,kBAAA;EACA,YAAA;EACA,QAAA;EACA,YAAA;EACA,YAAA;EACA,0BAAA;EACA,yBAAA;EACA,cAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,UAAA;;AAfJ,KAkBE,oCAIE,aAsEE;EA1FF,kBAAA;EACA,YAAA;EACA,QAAA;EACA,YAAA;EACA,YAAA;EACA,0BAAA;EACA,yBAAA;EACA,cAAA;EACA,kBAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,yBAAA;EACA,UAAA;;AAiFE,KA9EJ,oCAIE,aA0EG;EACC,qBAAA;EACA,yBAAA;;AAGF,KAnFJ,oCAIE,aA+EG;EACC,yBAAA;;AADF,KAnFJ,oCAIE,aA+EG,uBAIC,EAAC;EACC,cAAA;EACA,qBAAA;EACA,gBAAA;EACA,eAAA;;AARJ,KAnFJ,oCAIE,aA+EG,uBAWC;EACE,YAAA;;AAZJ,KAnFJ,oCAIE,aA+EG,uBAeC;EACE,cAAA;;AAGF,KAtGN,oCAIE,aA+EG,uBAmBE;EACC,yBAAA;;AAOV,mBAAsC;EACpC,KACE,oCACE;IACE,UAAA;;;AAMR,mBAAsC;EACpC,KACE,oCACE;IACE,WAAA","file":"components.css"}
libs/factory/clearfy/assets/css/components.less ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Page components
3
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
4
+ * @copyright Alex Kovalev 30.09.2017
5
+ */
6
+
7
+ #WBCR {
8
+ .card-ribbon(@bgColor:#f7dea9, @color:#67532f) {
9
+ position: absolute;
10
+ bottom: 60px;
11
+ right: 0;
12
+ height: 30px;
13
+ width: 120px;
14
+ border-radius: 3px 0 0 3px;
15
+ background-color: @bgColor;
16
+ color: @color;
17
+ text-align: center;
18
+ font-size: 12px;
19
+ font-weight: 600;
20
+ line-height: 2.4;
21
+ text-transform: uppercase;
22
+ z-index: 1;
23
+ }
24
+
25
+ .wbc-factory-clearfy-000-components {
26
+ padding: 0 20px 20px;
27
+ text-align: center;
28
+
29
+ .plugin-card {
30
+ position: relative;
31
+ display: inline-block;
32
+ width: 32.7%;
33
+ height: 250px;
34
+ margin-left: 0;
35
+ margin-right: 0;
36
+ text-align: left;
37
+ float: none;
38
+ vertical-align: top;
39
+
40
+ &:first-child {
41
+ margin-left: 0;
42
+ }
43
+
44
+ .plugin-card-bottom {
45
+ position: absolute;
46
+ bottom: 0;
47
+ right: 0;
48
+ left: 0;
49
+ }
50
+
51
+ .plugin-card-top {
52
+ min-height: 163px;
53
+ }
54
+
55
+ .desc, .name {
56
+ margin-right: 0 !important;
57
+ }
58
+
59
+ .name {
60
+ h3 {
61
+ font-size: 17px;
62
+ margin-top: 0 !important;
63
+ }
64
+ }
65
+
66
+ .install-now {
67
+ float: right;
68
+ }
69
+
70
+ .delete-now {
71
+ float: right;
72
+ margin-left: 5px;
73
+
74
+ .dashicons, .dashicons-before:before {
75
+ font-size: 16px !important;
76
+ line-height: 1.5 !important;
77
+ color: #62696f;
78
+ }
79
+ }
80
+
81
+ a.open-plugin-details-modal {
82
+ color: #5c5d5f;
83
+ text-decoration: none;
84
+ font-weight: 600;
85
+ font-size: 15px;
86
+ }
87
+
88
+ // Premium
89
+ .plugin-card-premium-ribbon {
90
+ .card-ribbon();
91
+ }
92
+
93
+ // Free
94
+ .plugin-card-free-ribbon {
95
+ .card-ribbon(#cccccc, #6b6b6b);
96
+ }
97
+
98
+ // Freemium
99
+ .plugin-card-freemium-ribbon {
100
+ .card-ribbon(#cae2b3, #546742);
101
+ }
102
+
103
+ &.premium {
104
+ border-color: #e8d7b2;
105
+ background-color: #fff9eb;
106
+ }
107
+
108
+ &.plugin-status-deactive {
109
+ background-color: #f1f1f1;
110
+ //background-color: #f9f2f1;
111
+
112
+ a.open-plugin-details-modal {
113
+ color: #ababab;
114
+ text-decoration: none;
115
+ font-weight: 600;
116
+ font-size: 15px;
117
+ }
118
+
119
+ .plugin-icon {
120
+ opacity: 0.3;
121
+ }
122
+
123
+ .desc {
124
+ color: #afafaf;
125
+ }
126
+
127
+ &.premium {
128
+ background-color: #f9f2f1;
129
+ }
130
+ }
131
+ }
132
+ }
133
+ }
134
+
135
+ @media screen and (max-width: 1750px) {
136
+ #WBCR {
137
+ .wbc-factory-clearfy-000-components {
138
+ .plugin-card {
139
+ width: 49%;
140
+ }
141
+ }
142
+ }
143
+ }
144
+
145
+ @media screen and (max-width: 1350px) {
146
+ #WBCR {
147
+ .wbc-factory-clearfy-000-components {
148
+ .plugin-card {
149
+ width: 100%;
150
+ }
151
+ }
152
+ }
153
+ }
libs/factory/clearfy/assets/css/libs/autocomplete.css CHANGED
@@ -5,39 +5,39 @@
5
  *
6
  * @since 2.2.0
7
  */
8
- #wbcr-factory-clearfy-224__search_options_form #wbcr-factory-clearfy-224__autocomplete {
9
  width: 100%;
10
  box-sizing: border-box;
11
  border-color: #d6d4d4;
12
  }
13
- #wbcr-factory-clearfy-224__search_options_form.wbcr-factory-clearfy-224__autocomplete-wrap {
14
  padding: 10px;
15
  }
16
- #wbcr-factory-clearfy-224__search_options_form .wbcr-factory-clearfy-224__autocomplete-label {
17
  display: block !important;
18
  }
19
- .wbcr-factory-clearfy-224__autocomplete-suggestions {
20
  border: 1px solid #999;
21
  background: #FFF;
22
  overflow: auto;
23
  }
24
- .wbcr-factory-clearfy-224__autocomplete-suggestion {
25
  padding: 2px 5px;
26
  white-space: nowrap;
27
  overflow: hidden;
28
  cursor: pointer;
29
  }
30
- .wbcr-factory-clearfy-224__autocomplete-selected {
31
  background: #F0F0F0;
32
  }
33
- .wbcr-factory-clearfy-224__autocomplete-suggestions strong {
34
  font-weight: normal;
35
  color: #3399FF;
36
  }
37
- .wbcr-factory-clearfy-224__autocomplete-group {
38
  padding: 2px 5px;
39
  }
40
- .wbcr-factory-clearfy-224__autocomplete-group strong {
41
  display: block;
42
  border-bottom: 1px solid #000;
43
  }
5
  *
6
  * @since 2.2.0
7
  */
8
+ #wbcr-factory-clearfy-230__search_options_form #wbcr-factory-clearfy-230__autocomplete {
9
  width: 100%;
10
  box-sizing: border-box;
11
  border-color: #d6d4d4;
12
  }
13
+ #wbcr-factory-clearfy-230__search_options_form.wbcr-factory-clearfy-230__autocomplete-wrap {
14
  padding: 10px;
15
  }
16
+ #wbcr-factory-clearfy-230__search_options_form .wbcr-factory-clearfy-230__autocomplete-label {
17
  display: block !important;
18
  }
19
+ .wbcr-factory-clearfy-230__autocomplete-suggestions {
20
  border: 1px solid #999;
21
  background: #FFF;
22
  overflow: auto;
23
  }
24
+ .wbcr-factory-clearfy-230__autocomplete-suggestion {
25
  padding: 2px 5px;
26
  white-space: nowrap;
27
  overflow: hidden;
28
  cursor: pointer;
29
  }
30
+ .wbcr-factory-clearfy-230__autocomplete-selected {
31
  background: #F0F0F0;
32
  }
33
+ .wbcr-factory-clearfy-230__autocomplete-suggestions strong {
34
  font-weight: normal;
35
  color: #3399FF;
36
  }
37
+ .wbcr-factory-clearfy-230__autocomplete-group {
38
  padding: 2px 5px;
39
  }
40
+ .wbcr-factory-clearfy-230__autocomplete-group strong {
41
  display: block;
42
  border-bottom: 1px solid #000;
43
  }
libs/factory/clearfy/assets/css/page-setup.css ADDED
@@ -0,0 +1,454 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #WBCR {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
5
+ .w-factory-clearfy-230__form-buttons {
6
+ text-align: right;
7
+ padding: 10px;
8
+ background: #f7f7f7;
9
+ border-top: 1px solid #e8e8e8;
10
+ }
11
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__skip-button {
12
+ background-color: #e7e7e7;
13
+ border-color: #e7e7e7;
14
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #e7e7e7;
15
+ text-shadow: 0 -1px 1px #e7e7e7, 1px 0 1px #e7e7e7, 0 1px 1px #e7e7e7, -1px 0 1px #e7e7e7;
16
+ margin: 0;
17
+ color: #8a8a8a;
18
+ }
19
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__skip-button:active,
20
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__skip-button:hover,
21
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__skip-button:focus {
22
+ background: #dddddd;
23
+ border-color: #dddddd;
24
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #dddddd;
25
+ color: #8a8a8a;
26
+ }
27
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__continue-button {
28
+ background-color: #f57d4f;
29
+ border-color: #f77d50;
30
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f77d50;
31
+ text-shadow: 0 -1px 1px #f77d50, 1px 0 1px #f77d50, 0 1px 1px #f77d50, -1px 0 1px #f77d50;
32
+ margin: 0;
33
+ }
34
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__continue-button:active,
35
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__continue-button:hover,
36
+ .w-factory-clearfy-230__form-buttons .w-factory-clearfy-230__continue-button:focus {
37
+ background: #f86b3b;
38
+ border-color: #f86b3b;
39
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f86b3b;
40
+ }
41
+ .w-factory-clearfy-230-setup {
42
+ text-align: center;
43
+ max-width: 900px;
44
+ margin: 65px auto 24px;
45
+ box-shadow: none;
46
+ background: #f1f1f1;
47
+ padding: 0;
48
+ }
49
+ .w-factory-clearfy-230-setup__inner-wrap,
50
+ .w-factory-clearfy-230__setup-form .factory-form-layout {
51
+ padding: 30px;
52
+ }
53
+ .w-factory-clearfy-230-setup-steps {
54
+ padding: 0 0 24px;
55
+ margin: 0;
56
+ list-style: none outside;
57
+ overflow: hidden;
58
+ color: #ccc;
59
+ width: 100%;
60
+ display: -webkit-inline-box;
61
+ display: inline-flex;
62
+ }
63
+ .w-factory-clearfy-230-setup-steps li {
64
+ width: 100%;
65
+ float: left;
66
+ padding: 0 0 0.8em;
67
+ margin: 0;
68
+ text-align: center;
69
+ position: relative;
70
+ border-bottom: 4px solid #ccc;
71
+ line-height: 1.4;
72
+ }
73
+ .w-factory-clearfy-230-setup-steps li::before {
74
+ content: "";
75
+ border: 4px solid #ccc;
76
+ border-radius: 100%;
77
+ width: 4px;
78
+ height: 4px;
79
+ position: absolute;
80
+ bottom: 0;
81
+ left: 50%;
82
+ margin-left: -6px;
83
+ margin-bottom: -8px;
84
+ background: #fff;
85
+ }
86
+ .w-factory-clearfy-230-setup-steps li.active {
87
+ border-color: #ff1c40 !important;
88
+ color: #222;
89
+ font-weight: 700;
90
+ }
91
+ .w-factory-clearfy-230-setup-steps li.active::before {
92
+ border-color: #ff1c40 !important;
93
+ }
94
+ .w-factory-clearfy-230-setup-steps li a {
95
+ color: #a16696;
96
+ text-decoration: none;
97
+ padding: 1.5em;
98
+ margin: -1.5em;
99
+ position: relative;
100
+ z-index: 1;
101
+ }
102
+ .w-factory-clearfy-230-setup-steps li a:focus,
103
+ .w-factory-clearfy-230-setup-steps li a:hover {
104
+ color: #111;
105
+ text-decoration: underline;
106
+ }
107
+ /*.w-factory-clearfy-230-setup-steps li.done {
108
+ border-color: #f57d4f;
109
+ color: #f57d4f
110
+ }
111
+
112
+ .w-factory-clearfy-230-setup-steps li.done::before {
113
+ border-color: #f57d4f;
114
+ background: #f57d4f
115
+ }*/
116
+ .w-factory-clearfy-230-setup .w-factory-clearfy-230-setup-actions {
117
+ overflow: hidden;
118
+ margin: 20px 0 0;
119
+ position: relative;
120
+ }
121
+ .w-factory-clearfy-230-setup-content p:last-child {
122
+ margin-bottom: 0;
123
+ }
124
+ .w-factory-clearfy-230-setup-content p.store-setup {
125
+ margin-top: 0;
126
+ }
127
+ .w-factory-clearfy-230-setup-footer-links {
128
+ font-size: 0.85em;
129
+ color: #7b7b7b;
130
+ margin: 1.18em auto;
131
+ display: inline-block;
132
+ text-align: center;
133
+ }
134
+ .w-factory-clearfy-230-logo {
135
+ text-align: center;
136
+ }
137
+ .w-factory-clearfy-230-logo img {
138
+ max-width: 250px;
139
+ }
140
+ .w-factory-clearfy-230-setup-content {
141
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.13);
142
+ margin: 0 0 20px;
143
+ background: #fff;
144
+ zoom: 1;
145
+ text-align: left;
146
+ }
147
+ .w-factory-clearfy-230-setup-content table {
148
+ font-size: 1em;
149
+ line-height: 1.75;
150
+ color: #666;
151
+ }
152
+ .w-factory-clearfy-230-setup-content table thead {
153
+ background: #f1f1f1;
154
+ }
155
+ .w-factory-clearfy-230-setup-content table th,
156
+ .w-factory-clearfy-230-setup-content table td {
157
+ padding: 10px 15px;
158
+ }
159
+ .w-factory-clearfy-230-setup-content h1,
160
+ .w-factory-clearfy-230-setup-content h2,
161
+ .w-factory-clearfy-230-setup-content h3,
162
+ .w-factory-clearfy-230-setup-content table {
163
+ margin: 0 0 20px;
164
+ border: 0;
165
+ padding: 0;
166
+ color: #666;
167
+ clear: none;
168
+ font-weight: 500;
169
+ }
170
+ .w-factory-clearfy-230-setup-content p {
171
+ margin: 20px 0;
172
+ font-size: 1.15em;
173
+ line-height: 1.75;
174
+ color: #666;
175
+ text-align: center;
176
+ }
177
+ .w-factory-clearfy-230-setup-step__new_onboarding-welcome {
178
+ font-size: 22px !important;
179
+ }
180
+ .w-factory-clearfy-230-setup-content a {
181
+ color: #f57d4f;
182
+ }
183
+ .w-factory-clearfy-230-setup-content a:focus,
184
+ .w-factory-clearfy-230-setup-content a:hover {
185
+ color: #111;
186
+ }
187
+ .w-factory-clearfy-230-setup-content table.tax-rates {
188
+ width: 100%;
189
+ font-size: 0.92em;
190
+ }
191
+ .w-factory-clearfy-230-setup-content table.tax-rates th {
192
+ padding: 0;
193
+ text-align: center;
194
+ width: auto;
195
+ vertical-align: middle;
196
+ }
197
+ .w-factory-clearfy-230-setup-content table.tax-rates td {
198
+ border: 1px solid #f5f5f5;
199
+ padding: 6px;
200
+ text-align: center;
201
+ vertical-align: middle;
202
+ }
203
+ .w-factory-clearfy-230-setup-content table.tax-rates td input {
204
+ outline: 0;
205
+ border: 0;
206
+ padding: 0;
207
+ box-shadow: none;
208
+ text-align: center;
209
+ width: 100%;
210
+ }
211
+ .w-factory-clearfy-230-setup-content table.tax-rates td.sort {
212
+ cursor: move;
213
+ color: #ccc;
214
+ }
215
+ .w-factory-clearfy-230-setup-content table.tax-rates td.sort::before {
216
+ content: "\f333";
217
+ font-family: dashicons;
218
+ }
219
+ .w-factory-clearfy-230-setup-content table.tax-rates td.readonly {
220
+ background: #f5f5f5;
221
+ }
222
+ .w-factory-clearfy-230-setup-content table.tax-rates .add {
223
+ padding: 1em 0 0 1em;
224
+ line-height: 1;
225
+ font-size: 1em;
226
+ width: 0;
227
+ margin: 6px 0 0;
228
+ height: 0;
229
+ overflow: hidden;
230
+ position: relative;
231
+ display: inline-block;
232
+ }
233
+ .w-factory-clearfy-230-setup-content table.tax-rates .add::before {
234
+ content: "\f502";
235
+ font-family: dashicons;
236
+ position: absolute;
237
+ left: 0;
238
+ top: 0;
239
+ }
240
+ .w-factory-clearfy-230-setup-content table.tax-rates .remove {
241
+ padding: 1em 0 0 1em;
242
+ line-height: 1;
243
+ font-size: 1em;
244
+ width: 0;
245
+ margin: 0;
246
+ height: 0;
247
+ overflow: hidden;
248
+ position: relative;
249
+ display: inline-block;
250
+ }
251
+ .w-factory-clearfy-230-setup-content table.tax-rates .remove::before {
252
+ content: "\f182";
253
+ font-family: dashicons;
254
+ position: absolute;
255
+ left: 0;
256
+ top: 0;
257
+ }
258
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages {
259
+ width: 100%;
260
+ border-top: 1px solid #eee;
261
+ }
262
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages thead th {
263
+ display: none;
264
+ }
265
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages .page-name {
266
+ width: 30%;
267
+ font-weight: 700;
268
+ }
269
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages td,
270
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages th {
271
+ padding: 14px 0;
272
+ border-bottom: 1px solid #eee;
273
+ }
274
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages td:first-child,
275
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages th:first-child {
276
+ padding-right: 9px;
277
+ }
278
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages th {
279
+ padding-top: 0;
280
+ }
281
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages .page-options p {
282
+ color: #777;
283
+ margin: 6px 0 0 24px;
284
+ line-height: 1.75;
285
+ }
286
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages .page-options p input {
287
+ vertical-align: middle;
288
+ margin: 1px 0 0;
289
+ height: 1.75em;
290
+ width: 1.75em;
291
+ line-height: 1.75;
292
+ }
293
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-pages .page-options p label {
294
+ line-height: 1;
295
+ }
296
+ @media screen and (max-width: 782px) {
297
+ .w-factory-clearfy-230-setup-content .form-table tbody th {
298
+ width: auto;
299
+ }
300
+ }
301
+ .w-factory-clearfy-230-setup-content .twitter-share-button {
302
+ float: right;
303
+ }
304
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps {
305
+ overflow: hidden;
306
+ margin: 0 0 24px;
307
+ padding-bottom: 2px;
308
+ }
309
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps h2 {
310
+ margin-bottom: 12px;
311
+ }
312
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps .w-factory-clearfy-230-setup-next-steps-first {
313
+ float: left;
314
+ width: 50%;
315
+ box-sizing: border-box;
316
+ }
317
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps .w-factory-clearfy-230-setup-next-steps-last {
318
+ float: right;
319
+ width: 50%;
320
+ box-sizing: border-box;
321
+ }
322
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul {
323
+ padding: 0 2em 0 0;
324
+ list-style: none outside;
325
+ margin: 0;
326
+ }
327
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul li a {
328
+ display: block;
329
+ padding: 0 0 0.75em;
330
+ }
331
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button {
332
+ background-color: #f7f7f7;
333
+ border-color: #ccc;
334
+ color: #23282d;
335
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #ccc;
336
+ text-shadow: 1px 0 1px #eee, 0 1px 1px #eee;
337
+ font-size: 1em;
338
+ height: auto;
339
+ line-height: 1.75;
340
+ margin: 0 0 0.75em;
341
+ opacity: 1;
342
+ padding: 1em;
343
+ text-align: center;
344
+ }
345
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button:active,
346
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button:focus,
347
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button:hover {
348
+ background: #f5f5f5;
349
+ border-color: #aaa;
350
+ }
351
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button-primary {
352
+ color: #fff;
353
+ background-color: #f19570;
354
+ border-color: #f77d50;
355
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f77d50;
356
+ text-shadow: 0 -1px 1px #f77d50, 1px 0 1px #f77d50, 0 1px 1px #f77d50, -1px 0 1px #f77d50;
357
+ }
358
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button-primary:active,
359
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button-primary:focus,
360
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .setup-product a.button-primary:hover {
361
+ color: #fff;
362
+ background: #f77d50;
363
+ border-color: #f77d50;
364
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #f77d50;
365
+ }
366
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul li a::before {
367
+ color: #82878c;
368
+ font: 400 20px/1 dashicons;
369
+ speak: none;
370
+ display: inline-block;
371
+ padding: 0 10px 0 0;
372
+ top: 1px;
373
+ position: relative;
374
+ text-decoration: none !important;
375
+ vertical-align: top;
376
+ }
377
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .learn-more a::before {
378
+ content: "\f105";
379
+ }
380
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .video-walkthrough a::before {
381
+ content: "\f126";
382
+ }
383
+ .w-factory-clearfy-230-setup-content .w-factory-clearfy-230-setup-next-steps ul .newsletter a::before {
384
+ content: "\f465";
385
+ }
386
+ .w-factory-clearfy-230-setup-content .updated,
387
+ .w-factory-clearfy-230-setup-content .woocommerce-newsletter {
388
+ padding: 24px 24px 0;
389
+ margin: 0 0 24px;
390
+ overflow: hidden;
391
+ background: #f5f5f5;
392
+ }
393
+ .w-factory-clearfy-230-setup-content .updated p,
394
+ .w-factory-clearfy-230-setup-content .woocommerce-newsletter p {
395
+ padding: 0;
396
+ margin: 0 0 12px;
397
+ }
398
+ .w-factory-clearfy-230-setup-content .updated form,
399
+ .w-factory-clearfy-230-setup-content .updated p:last-child,
400
+ .w-factory-clearfy-230-setup-content .woocommerce-newsletter form,
401
+ .w-factory-clearfy-230-setup-content .woocommerce-newsletter p:last-child {
402
+ margin: 0 0 24px;
403
+ }
404
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox] {
405
+ opacity: 0;
406
+ position: absolute;
407
+ left: -9999px;
408
+ }
409
+ .w-factory-clearfy-230-setup-content .checkbox label {
410
+ position: relative;
411
+ display: inline-block;
412
+ padding-left: 28px;
413
+ }
414
+ .w-factory-clearfy-230-setup-content .checkbox label::after,
415
+ .w-factory-clearfy-230-setup-content .checkbox label::before {
416
+ position: absolute;
417
+ content: "";
418
+ display: inline-block;
419
+ }
420
+ .w-factory-clearfy-230-setup-content .checkbox label::before {
421
+ height: 16px;
422
+ width: 16px;
423
+ left: 0;
424
+ top: 3px;
425
+ border: 1px solid #aaa;
426
+ background-color: #fff;
427
+ border-radius: 3px;
428
+ }
429
+ .w-factory-clearfy-230-setup-content .checkbox label::after {
430
+ height: 5px;
431
+ width: 9px;
432
+ border-left: 2px solid;
433
+ border-bottom: 2px solid;
434
+ -webkit-transform: rotate(-45deg);
435
+ -ms-transform: rotate(-45deg);
436
+ transform: rotate(-45deg);
437
+ left: 4px;
438
+ top: 7px;
439
+ color: #fff;
440
+ }
441
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox] + label::after {
442
+ content: none;
443
+ }
444
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox]:checked + label::after {
445
+ content: "";
446
+ }
447
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox]:focus + label::before {
448
+ outline: #3b99fc auto 5px;
449
+ }
450
+ .w-factory-clearfy-230-setup-content .checkbox input[type=checkbox]:checked + label::before {
451
+ background: #935687;
452
+ border-color: #935687;
453
+ }
454
+ /*# sourceMappingURL=page-setup.css.map */
libs/factory/clearfy/assets/css/page-setup.css.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["page-setup.less"],"names":[],"mappings":"AAAA;EACE,SAAA;EACA,UAAA;;AAGF;EACE,iBAAA;EACA,aAAA;EACA,mBAAA;EAEA,6BAAA;;AALF,oCAOE;EACE,yBAAA;EACA,qBAAA;EACA,oEAAA;EACA,yFAAA;EACA,SAAA;EACA,cAAA;;AAEA,oCARF,oCAQG;AAAS,oCARZ,oCAQa;AAAQ,oCARrB,oCAQsB;EAClB,mBAAA;EACA,qBAAA;EACA,oEAAA;EACA,cAAA;;AAnBN,oCAuBE;EACE,yBAAA;EACA,qBAAA;EACA,oEAAA;EACA,yFAAA;EACA,SAAA;;AAEA,oCAPF,wCAOG;AAAS,oCAPZ,wCAOa;AAAQ,oCAPrB,wCAOsB;EAClB,mBAAA;EACA,qBAAA;EACA,oEAAA;;AAKN;EACE,kBAAA;EACA,gBAAA;EACA,sBAAA;EACA,gBAAA;EACA,mBAAA;EACA,UAAA;;AAGF;AAA0C,kCAAmC;EAC3E,aAAA;;AAGF;EACE,iBAAA;EACA,SAAA;EACA,wBAAA;EACA,gBAAA;EACA,WAAA;EACA,WAAA;EACA,2BAAA;EACA,oBAAA;;AAGF,kCAAmC;EACjC,WAAA;EACA,WAAA;EACA,kBAAA;EACA,SAAA;EACA,kBAAA;EACA,kBAAA;EACA,6BAAA;EACA,gBAAA;;AAEA,kCAViC,GAUhC;EACC,SAAS,EAAT;EACA,sBAAA;EACA,mBAAA;EACA,UAAA;EACA,WAAA;EACA,kBAAA;EACA,SAAA;EACA,SAAA;EACA,iBAAA;EACA,mBAAA;EACA,gBAAA;;AAGF,kCAxBiC,GAwBhC;EACC,qBAAA;EACA,WAAA;EACA,gBAAA;;AAEA,kCA7B+B,GAwBhC,OAKE;EACC,qBAAA;;AAKN,kCAAmC,GAAG;EACpC,cAAA;EACA,qBAAA;EACA,cAAA;EACA,cAAA;EACA,kBAAA;EACA,UAAA;;AAGF,kCAAmC,GAAG,EAAC;AAAQ,kCAAmC,GAAG,EAAC;EACpF,WAAA;EACA,0BAAA;;;;;;;;;;;AAcF,4BAA6B;EAC3B,gBAAA;EACA,gBAAA;EACA,kBAAA;;AAGF,oCAAqC,EAAC;EACpC,gBAAA;;AAGF,oCAAqC,EAAC;EACpC,aAAA;;AAGF;EACE,iBAAA;EACA,cAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;;AAGF;EACE,kBAAA;;AADF,2BAGE;EACE,gBAAA;;AAKJ;EACE,yCAAA;EAEA,gBAAA;EACA,gBAAA;EAEA,OAAA;EACA,gBAAA;;AAEA,oCAAE;EACA,cAAA;EACA,iBAAA;EACA,WAAA;;AAHF,oCAAE,MAKA;EACE,mBAAA;;AANJ,oCAAE,MASA;AATF,oCAAE,MASI;EACF,kBAAA;;AAKN,oCAAqC;AAAI,oCAAqC;AAAI,oCAAqC;AAAI,oCAAqC;EAC9J,gBAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;EACA,WAAA;EACA,gBAAA;;AAGF,oCAAqC;EACnC,cAAA;EACA,iBAAA;EACA,iBAAA;EACA,WAAA;EACA,kBAAA;;AAGF;EACE,0BAAA;;AAIF,oCAAqC;EACnC,cAAA;;AAGF,oCAAqC,EAAC;AAAQ,oCAAqC,EAAC;EAClF,WAAA;;AAIF,oCAAqC,MAAK;EACxC,WAAA;EACA,iBAAA;;AAGF,oCAAqC,MAAK,UAAW;EACnD,UAAA;EACA,kBAAA;EACA,WAAA;EACA,sBAAA;;AAGF,oCAAqC,MAAK,UAAW;EACnD,yBAAA;EACA,YAAA;EACA,kBAAA;EACA,sBAAA;;AAGF,oCAAqC,MAAK,UAAW,GAAG;EACtD,UAAA;EACA,SAAA;EACA,UAAA;EACA,gBAAA;EACA,kBAAA;EACA,WAAA;;AAGF,oCAAqC,MAAK,UAAW,GAAE;EACrD,YAAA;EACA,WAAA;;AAGF,oCAAqC,MAAK,UAAW,GAAE,KAAK;EAC1D,SAAS,OAAT;EACA,sBAAA;;AAGF,oCAAqC,MAAK,UAAW,GAAE;EACrD,mBAAA;;AAGF,oCAAqC,MAAK,UAAW;EACnD,oBAAA;EACA,cAAA;EACA,cAAA;EACA,QAAA;EACA,eAAA;EACA,SAAA;EACA,gBAAA;EACA,kBAAA;EACA,qBAAA;;AAGF,oCAAqC,MAAK,UAAW,KAAI;EACvD,SAAS,OAAT;EACA,sBAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;;AAGF,oCAAqC,MAAK,UAAW;EACnD,oBAAA;EACA,cAAA;EACA,cAAA;EACA,QAAA;EACA,SAAA;EACA,SAAA;EACA,gBAAA;EACA,kBAAA;EACA,qBAAA;;AAGF,oCAAqC,MAAK,UAAW,QAAO;EAC1D,SAAS,OAAT;EACA,sBAAA;EACA,kBAAA;EACA,OAAA;EACA,MAAA;;AAGF,oCAAqC;EACnC,WAAA;EACA,0BAAA;;AAGF,oCAAqC,mCAAmC,MAAM;EAC5E,aAAA;;AAGF,oCAAqC,mCAAmC;EACtE,UAAA;EACA,gBAAA;;AAGF,oCAAqC,mCAAmC;AAAI,oCAAqC,mCAAmC;EAClJ,eAAA;EACA,6BAAA;;AAGF,oCAAqC,mCAAmC,GAAE;AAAc,oCAAqC,mCAAmC,GAAE;EAChK,kBAAA;;AAGF,oCAAqC,mCAAmC;EACtE,cAAA;;AAGF,oCAAqC,mCAAmC,cAAc;EACpF,WAAA;EACA,oBAAA;EACA,iBAAA;;AAGF,oCAAqC,mCAAmC,cAAc,EAAE;EACtF,sBAAA;EACA,eAAA;EACA,cAAA;EACA,aAAA;EACA,iBAAA;;AAGF,oCAAqC,mCAAmC,cAAc,EAAE;EACtF,cAAA;;AAGF,mBAAqC;EACnC,oCAAqC,YAAY,MAAM;IACrD,WAAA;;;AAIJ,oCAAqC;EACnC,YAAA;;AAGF,oCAAqC;EACnC,gBAAA;EACA,gBAAA;EACA,mBAAA;;AAGF,oCAAqC,wCAAwC;EAC3E,mBAAA;;AAGF,oCAAqC,wCAAwC;EAC3E,WAAA;EACA,UAAA;EACA,sBAAA;;AAGF,oCAAqC,wCAAwC;EAC3E,YAAA;EACA,UAAA;EACA,sBAAA;;AAGF,oCAAqC,wCAAwC;EAC3E,kBAAA;EACA,wBAAA;EACA,SAAA;;AAGF,oCAAqC,wCAAwC,GAAG,GAAG;EACjF,cAAA;EACA,mBAAA;;AAGF,oCAAqC,wCAAwC,GAAG,eAAe,EAAC;EAC9F,yBAAA;EACA,kBAAA;EACA,cAAA;EACA,iEAAA;EACA,2CAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EACA,kBAAA;EACA,UAAA;EACA,YAAA;EACA,kBAAA;;AAGF,oCAAqC,wCAAwC,GAAG,eAAe,EAAC,OAAO;AAAS,oCAAqC,wCAAwC,GAAG,eAAe,EAAC,OAAO;AAAQ,oCAAqC,wCAAwC,GAAG,eAAe,EAAC,OAAO;EACpU,mBAAA;EACA,kBAAA;;AAGF,oCAAqC,wCAAwC,GAAG,eAAe,EAAC;EAC9F,WAAA;EACA,yBAAA;EACA,qBAAA;EACA,oEAAA;EACA,yFAAA;;AAGF,oCAAqC,wCAAwC,GAAG,eAAe,EAAC,eAAe;AAAS,oCAAqC,wCAAwC,GAAG,eAAe,EAAC,eAAe;AAAQ,oCAAqC,wCAAwC,GAAG,eAAe,EAAC,eAAe;EAC5V,WAAA;EACA,mBAAA;EACA,qBAAA;EACA,oEAAA;;AAGF,oCAAqC,wCAAwC,GAAG,GAAG,EAAC;EAClF,cAAA;EACA,0BAAA;EACA,WAAA;EACA,qBAAA;EACA,mBAAA;EACA,QAAA;EACA,kBAAA;EACA,gCAAA;EACA,mBAAA;;AAGF,oCAAqC,wCAAwC,GAAG,YAAY,EAAC;EAC3F,SAAS,OAAT;;AAGF,oCAAqC,wCAAwC,GAAG,mBAAmB,EAAC;EAClG,SAAS,OAAT;;AAGF,oCAAqC,wCAAwC,GAAG,YAAY,EAAC;EAC3F,SAAS,OAAT;;AAGF,oCAAqC;AAAU,oCAAqC;EAClF,oBAAA;EACA,gBAAA;EACA,gBAAA;EACA,mBAAA;;AAGF,oCAAqC,SAAS;AAAG,oCAAqC,wBAAwB;EAC5G,UAAA;EACA,gBAAA;;AAGF,oCAAqC,SAAS;AAAM,oCAAqC,SAAS,EAAC;AAAa,oCAAqC,wBAAwB;AAAM,oCAAqC,wBAAwB,EAAC;EAC/O,gBAAA;;AAGF,oCAAqC,UAAU,MAAK;EAClD,UAAA;EACA,kBAAA;EACA,aAAA;;AAGF,oCAAqC,UAAU;EAC7C,kBAAA;EACA,qBAAA;EACA,kBAAA;;AAGF,oCAAqC,UAAU,MAAK;AAAS,oCAAqC,UAAU,MAAK;EAC/G,kBAAA;EACA,SAAS,EAAT;EACA,qBAAA;;AAGF,oCAAqC,UAAU,MAAK;EAClD,YAAA;EACA,WAAA;EACA,OAAA;EACA,QAAA;EACA,sBAAA;EACA,sBAAA;EACA,kBAAA;;AAGF,oCAAqC,UAAU,MAAK;EAClD,WAAA;EACA,UAAA;EACA,sBAAA;EACA,wBAAA;EACA,mBAAmB,cAAnB;EACA,eAAe,cAAf;EACA,WAAW,cAAX;EACA,SAAA;EACA,QAAA;EACA,WAAA;;AAGF,oCAAqC,UAAU,MAAK,eAAgB,QAAO;EACzE,aAAA;;AAGF,oCAAqC,UAAU,MAAK,eAAe,QAAS,QAAO;EACjF,SAAS,EAAT;;AAGF,oCAAqC,UAAU,MAAK,eAAe,MAAO,QAAO;EAC/E,yBAAA;;AAGF,oCAAqC,UAAU,MAAK,eAAe,QAAS,QAAO;EACjF,mBAAA;EACA,qBAAA","file":"page-setup.css"}
libs/factory/clearfy/assets/css/page-setup.less ADDED
@@ -0,0 +1,515 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #WBCR {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
5
+
6
+ .w-factory-clearfy-000__form-buttons {
7
+ text-align: right;
8
+ padding: 10px;
9
+ background: #f7f7f7;
10
+
11
+ border-top: 1px solid #e8e8e8;
12
+
13
+ .w-factory-clearfy-000__skip-button {
14
+ background-color: #e7e7e7;
15
+ border-color: #e7e7e7;
16
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #e7e7e7;
17
+ text-shadow: 0 -1px 1px #e7e7e7, 1px 0 1px #e7e7e7, 0 1px 1px #e7e7e7, -1px 0 1px #e7e7e7;
18
+ margin: 0;
19
+ color: #8a8a8a;
20
+
21
+ &:active, &:hover, &:focus {
22
+ background: #dddddd;
23
+ border-color: #dddddd;
24
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #dddddd;
25
+ color: #8a8a8a;
26
+ }
27
+ }
28
+
29
+ .w-factory-clearfy-000__continue-button {
30
+ background-color: #f57d4f;
31
+ border-color: #f77d50;
32
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #f77d50;
33
+ text-shadow: 0 -1px 1px #f77d50, 1px 0 1px #f77d50, 0 1px 1px #f77d50, -1px 0 1px #f77d50;
34
+ margin: 0;
35
+
36
+ &:active, &:hover, &:focus {
37
+ background: #f86b3b;
38
+ border-color: #f86b3b;
39
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #f86b3b
40
+ }
41
+ }
42
+ }
43
+
44
+ .w-factory-clearfy-000-setup {
45
+ text-align: center;
46
+ max-width: 900px;
47
+ margin: 65px auto 24px;
48
+ box-shadow: none;
49
+ background: #f1f1f1;
50
+ padding: 0;
51
+ }
52
+
53
+ .w-factory-clearfy-000-setup__inner-wrap, .w-factory-clearfy-000__setup-form .factory-form-layout {
54
+ padding: 30px;
55
+ }
56
+
57
+ .w-factory-clearfy-000-setup-steps {
58
+ padding: 0 0 24px;
59
+ margin: 0;
60
+ list-style: none outside;
61
+ overflow: hidden;
62
+ color: #ccc;
63
+ width: 100%;
64
+ display: -webkit-inline-box;
65
+ display: inline-flex;
66
+ }
67
+
68
+ .w-factory-clearfy-000-setup-steps li {
69
+ width: 100%;
70
+ float: left;
71
+ padding: 0 0 .8em;
72
+ margin: 0;
73
+ text-align: center;
74
+ position: relative;
75
+ border-bottom: 4px solid #ccc;
76
+ line-height: 1.4;
77
+
78
+ &::before {
79
+ content: "";
80
+ border: 4px solid #ccc;
81
+ border-radius: 100%;
82
+ width: 4px;
83
+ height: 4px;
84
+ position: absolute;
85
+ bottom: 0;
86
+ left: 50%;
87
+ margin-left: -6px;
88
+ margin-bottom: -8px;
89
+ background: #fff
90
+ }
91
+
92
+ &.active {
93
+ border-color: #ff1c40 !important;
94
+ color: #222;
95
+ font-weight: 700;
96
+
97
+ &::before {
98
+ border-color: #ff1c40 !important;
99
+ }
100
+ }
101
+ }
102
+
103
+ .w-factory-clearfy-000-setup-steps li a {
104
+ color: #a16696;
105
+ text-decoration: none;
106
+ padding: 1.5em;
107
+ margin: -1.5em;
108
+ position: relative;
109
+ z-index: 1
110
+ }
111
+
112
+ .w-factory-clearfy-000-setup-steps li a:focus, .w-factory-clearfy-000-setup-steps li a:hover {
113
+ color: #111;
114
+ text-decoration: underline
115
+ }
116
+
117
+
118
+ /*.w-factory-clearfy-000-setup-steps li.done {
119
+ border-color: #f57d4f;
120
+ color: #f57d4f
121
+ }
122
+
123
+ .w-factory-clearfy-000-setup-steps li.done::before {
124
+ border-color: #f57d4f;
125
+ background: #f57d4f
126
+ }*/
127
+
128
+ .w-factory-clearfy-000-setup .w-factory-clearfy-000-setup-actions {
129
+ overflow: hidden;
130
+ margin: 20px 0 0;
131
+ position: relative
132
+ }
133
+
134
+ .w-factory-clearfy-000-setup-content p:last-child {
135
+ margin-bottom: 0
136
+ }
137
+
138
+ .w-factory-clearfy-000-setup-content p.store-setup {
139
+ margin-top: 0
140
+ }
141
+
142
+ .w-factory-clearfy-000-setup-footer-links {
143
+ font-size: .85em;
144
+ color: #7b7b7b;
145
+ margin: 1.18em auto;
146
+ display: inline-block;
147
+ text-align: center
148
+ }
149
+
150
+ .w-factory-clearfy-000-logo {
151
+ text-align: center;
152
+
153
+ img {
154
+ max-width: 250px;
155
+ }
156
+ }
157
+
158
+
159
+ .w-factory-clearfy-000-setup-content {
160
+ box-shadow: 0 1px 3px rgba(0, 0, 0, .13);
161
+ //padding: 2em;
162
+ margin: 0 0 20px;
163
+ background: #fff;
164
+ //overflow: hidden;
165
+ zoom: 1;
166
+ text-align: left;
167
+
168
+ & table {
169
+ font-size: 1em;
170
+ line-height: 1.75;
171
+ color: #666;
172
+
173
+ thead {
174
+ background: #f1f1f1;
175
+ }
176
+
177
+ th, td {
178
+ padding: 10px 15px;
179
+ }
180
+ }
181
+ }
182
+
183
+ .w-factory-clearfy-000-setup-content h1, .w-factory-clearfy-000-setup-content h2, .w-factory-clearfy-000-setup-content h3, .w-factory-clearfy-000-setup-content table {
184
+ margin: 0 0 20px;
185
+ border: 0;
186
+ padding: 0;
187
+ color: #666;
188
+ clear: none;
189
+ font-weight: 500
190
+ }
191
+
192
+ .w-factory-clearfy-000-setup-content p {
193
+ margin: 20px 0;
194
+ font-size: 1.15em;
195
+ line-height: 1.75;
196
+ color: #666;
197
+ text-align: center;
198
+ }
199
+
200
+ .w-factory-clearfy-000-setup-step__new_onboarding-welcome {
201
+ font-size: 22px !important;
202
+ }
203
+
204
+
205
+ .w-factory-clearfy-000-setup-content a {
206
+ color: #f57d4f
207
+ }
208
+
209
+ .w-factory-clearfy-000-setup-content a:focus, .w-factory-clearfy-000-setup-content a:hover {
210
+ color: #111
211
+ }
212
+
213
+
214
+ .w-factory-clearfy-000-setup-content table.tax-rates {
215
+ width: 100%;
216
+ font-size: .92em
217
+ }
218
+
219
+ .w-factory-clearfy-000-setup-content table.tax-rates th {
220
+ padding: 0;
221
+ text-align: center;
222
+ width: auto;
223
+ vertical-align: middle
224
+ }
225
+
226
+ .w-factory-clearfy-000-setup-content table.tax-rates td {
227
+ border: 1px solid #f5f5f5;
228
+ padding: 6px;
229
+ text-align: center;
230
+ vertical-align: middle
231
+ }
232
+
233
+ .w-factory-clearfy-000-setup-content table.tax-rates td input {
234
+ outline: 0;
235
+ border: 0;
236
+ padding: 0;
237
+ box-shadow: none;
238
+ text-align: center;
239
+ width: 100%
240
+ }
241
+
242
+ .w-factory-clearfy-000-setup-content table.tax-rates td.sort {
243
+ cursor: move;
244
+ color: #ccc
245
+ }
246
+
247
+ .w-factory-clearfy-000-setup-content table.tax-rates td.sort::before {
248
+ content: "\f333";
249
+ font-family: dashicons
250
+ }
251
+
252
+ .w-factory-clearfy-000-setup-content table.tax-rates td.readonly {
253
+ background: #f5f5f5
254
+ }
255
+
256
+ .w-factory-clearfy-000-setup-content table.tax-rates .add {
257
+ padding: 1em 0 0 1em;
258
+ line-height: 1;
259
+ font-size: 1em;
260
+ width: 0;
261
+ margin: 6px 0 0;
262
+ height: 0;
263
+ overflow: hidden;
264
+ position: relative;
265
+ display: inline-block
266
+ }
267
+
268
+ .w-factory-clearfy-000-setup-content table.tax-rates .add::before {
269
+ content: "\f502";
270
+ font-family: dashicons;
271
+ position: absolute;
272
+ left: 0;
273
+ top: 0
274
+ }
275
+
276
+ .w-factory-clearfy-000-setup-content table.tax-rates .remove {
277
+ padding: 1em 0 0 1em;
278
+ line-height: 1;
279
+ font-size: 1em;
280
+ width: 0;
281
+ margin: 0;
282
+ height: 0;
283
+ overflow: hidden;
284
+ position: relative;
285
+ display: inline-block
286
+ }
287
+
288
+ .w-factory-clearfy-000-setup-content table.tax-rates .remove::before {
289
+ content: "\f182";
290
+ font-family: dashicons;
291
+ position: absolute;
292
+ left: 0;
293
+ top: 0
294
+ }
295
+
296
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages {
297
+ width: 100%;
298
+ border-top: 1px solid #eee
299
+ }
300
+
301
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages thead th {
302
+ display: none
303
+ }
304
+
305
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages .page-name {
306
+ width: 30%;
307
+ font-weight: 700
308
+ }
309
+
310
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages td, .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages th {
311
+ padding: 14px 0;
312
+ border-bottom: 1px solid #eee
313
+ }
314
+
315
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages td:first-child, .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages th:first-child {
316
+ padding-right: 9px
317
+ }
318
+
319
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages th {
320
+ padding-top: 0
321
+ }
322
+
323
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages .page-options p {
324
+ color: #777;
325
+ margin: 6px 0 0 24px;
326
+ line-height: 1.75
327
+ }
328
+
329
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages .page-options p input {
330
+ vertical-align: middle;
331
+ margin: 1px 0 0;
332
+ height: 1.75em;
333
+ width: 1.75em;
334
+ line-height: 1.75
335
+ }
336
+
337
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-pages .page-options p label {
338
+ line-height: 1
339
+ }
340
+
341
+ @media screen and (max-width: 782px) {
342
+ .w-factory-clearfy-000-setup-content .form-table tbody th {
343
+ width: auto
344
+ }
345
+ }
346
+
347
+ .w-factory-clearfy-000-setup-content .twitter-share-button {
348
+ float: right
349
+ }
350
+
351
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps {
352
+ overflow: hidden;
353
+ margin: 0 0 24px;
354
+ padding-bottom: 2px
355
+ }
356
+
357
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps h2 {
358
+ margin-bottom: 12px
359
+ }
360
+
361
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps .w-factory-clearfy-000-setup-next-steps-first {
362
+ float: left;
363
+ width: 50%;
364
+ box-sizing: border-box
365
+ }
366
+
367
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps .w-factory-clearfy-000-setup-next-steps-last {
368
+ float: right;
369
+ width: 50%;
370
+ box-sizing: border-box
371
+ }
372
+
373
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul {
374
+ padding: 0 2em 0 0;
375
+ list-style: none outside;
376
+ margin: 0
377
+ }
378
+
379
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul li a {
380
+ display: block;
381
+ padding: 0 0 .75em
382
+ }
383
+
384
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .setup-product a.button {
385
+ background-color: #f7f7f7;
386
+ border-color: #ccc;
387
+ color: #23282d;
388
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #ccc;
389
+ text-shadow: 1px 0 1px #eee, 0 1px 1px #eee;
390
+ font-size: 1em;
391
+ height: auto;
392
+ line-height: 1.75;
393
+ margin: 0 0 .75em;
394
+ opacity: 1;
395
+ padding: 1em;
396
+ text-align: center
397
+ }
398
+
399
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .setup-product a.button:active, .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .setup-product a.button:focus, .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .setup-product a.button:hover {
400
+ background: #f5f5f5;
401
+ border-color: #aaa
402
+ }
403
+
404
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .setup-product a.button-primary {
405
+ color: #fff;
406
+ background-color: #f19570;
407
+ border-color: #f77d50;
408
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #f77d50;
409
+ text-shadow: 0 -1px 1px #f77d50, 1px 0 1px #f77d50, 0 1px 1px #f77d50, -1px 0 1px #f77d50
410
+ }
411
+
412
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .setup-product a.button-primary:active, .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .setup-product a.button-primary:focus, .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .setup-product a.button-primary:hover {
413
+ color: #fff;
414
+ background: #f77d50;
415
+ border-color: #f77d50;
416
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #f77d50
417
+ }
418
+
419
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul li a::before {
420
+ color: #82878c;
421
+ font: 400 20px/1 dashicons;
422
+ speak: none;
423
+ display: inline-block;
424
+ padding: 0 10px 0 0;
425
+ top: 1px;
426
+ position: relative;
427
+ text-decoration: none !important;
428
+ vertical-align: top
429
+ }
430
+
431
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .learn-more a::before {
432
+ content: "\f105"
433
+ }
434
+
435
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .video-walkthrough a::before {
436
+ content: "\f126"
437
+ }
438
+
439
+ .w-factory-clearfy-000-setup-content .w-factory-clearfy-000-setup-next-steps ul .newsletter a::before {
440
+ content: "\f465"
441
+ }
442
+
443
+ .w-factory-clearfy-000-setup-content .updated, .w-factory-clearfy-000-setup-content .woocommerce-newsletter {
444
+ padding: 24px 24px 0;
445
+ margin: 0 0 24px;
446
+ overflow: hidden;
447
+ background: #f5f5f5
448
+ }
449
+
450
+ .w-factory-clearfy-000-setup-content .updated p, .w-factory-clearfy-000-setup-content .woocommerce-newsletter p {
451
+ padding: 0;
452
+ margin: 0 0 12px
453
+ }
454
+
455
+ .w-factory-clearfy-000-setup-content .updated form, .w-factory-clearfy-000-setup-content .updated p:last-child, .w-factory-clearfy-000-setup-content .woocommerce-newsletter form, .w-factory-clearfy-000-setup-content .woocommerce-newsletter p:last-child {
456
+ margin: 0 0 24px
457
+ }
458
+
459
+ .w-factory-clearfy-000-setup-content .checkbox input[type=checkbox] {
460
+ opacity: 0;
461
+ position: absolute;
462
+ left: -9999px
463
+ }
464
+
465
+ .w-factory-clearfy-000-setup-content .checkbox label {
466
+ position: relative;
467
+ display: inline-block;
468
+ padding-left: 28px
469
+ }
470
+
471
+ .w-factory-clearfy-000-setup-content .checkbox label::after, .w-factory-clearfy-000-setup-content .checkbox label::before {
472
+ position: absolute;
473
+ content: "";
474
+ display: inline-block
475
+ }
476
+
477
+ .w-factory-clearfy-000-setup-content .checkbox label::before {
478
+ height: 16px;
479
+ width: 16px;
480
+ left: 0;
481
+ top: 3px;
482
+ border: 1px solid #aaa;
483
+ background-color: #fff;
484
+ border-radius: 3px
485
+ }
486
+
487
+ .w-factory-clearfy-000-setup-content .checkbox label::after {
488
+ height: 5px;
489
+ width: 9px;
490
+ border-left: 2px solid;
491
+ border-bottom: 2px solid;
492
+ -webkit-transform: rotate(-45deg);
493
+ -ms-transform: rotate(-45deg);
494
+ transform: rotate(-45deg);
495
+ left: 4px;
496
+ top: 7px;
497
+ color: #fff
498
+ }
499
+
500
+ .w-factory-clearfy-000-setup-content .checkbox input[type=checkbox] + label::after {
501
+ content: none
502
+ }
503
+
504
+ .w-factory-clearfy-000-setup-content .checkbox input[type=checkbox]:checked + label::after {
505
+ content: ""
506
+ }
507
+
508
+ .w-factory-clearfy-000-setup-content .checkbox input[type=checkbox]:focus + label::before {
509
+ outline: #3b99fc auto 5px
510
+ }
511
+
512
+ .w-factory-clearfy-000-setup-content .checkbox input[type=checkbox]:checked + label::before {
513
+ background: #935687;
514
+ border-color: #935687
515
+ }
libs/factory/clearfy/assets/js/clearfy-globals.js ADDED
@@ -0,0 +1,221 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Глобальный JS файл, который регистрирует глобальные переменные с общими методами для всех компонентов Clearfy
3
+ * и самого Clearfy.
4
+ *
5
+ * $.wbcr_factory_clearfy_230.app - методы для работы с приложением. Скрыть, показать уведомления.
6
+ * $.wbcr_factory_clearfy_230.hooks - это иммитация хуков и фильтров аналогично тем, что используются в Wordpress
7
+ *
8
+ * Copyright 2018, Webcraftic, http://webcraftic.com
9
+ *
10
+ * @since 2.0.5
11
+ * @pacakge clearfy
12
+ */
13
+ (function($) {
14
+ 'use strict';
15
+
16
+ if( !$.wbcr_factory_clearfy_230 ) {
17
+ $.wbcr_factory_clearfy_230 = {};
18
+ }
19
+
20
+ //todo: Переопредление для совместимости со старыми версиями плагинов.
21
+ $.wbcr_factory_clearfy_230.filters = $.wbcr_factory_clearfy_230.filters || $.wfactory_439.filters;
22
+ //todo: Переопредление для совместимости со старыми версиями плагинов.
23
+ $.wbcr_factory_clearfy_230.hooks = $.wbcr_factory_clearfy_230.hooks || $.wfactory_439.hooks;
24
+
25
+ $.wbcr_factory_clearfy_230.app = $.wbcr_factory_clearfy_230.app || {
26
+ /**
27
+ * Создает и показывает уведомление внутри интерфейса Clearfy
28
+ *
29
+ * @param {string} message - сообщение об ошибке или предупреждение
30
+ * @param {string} type - тип уведомления (error, warning, success)
31
+ */
32
+ showNotice: function(message, type) {
33
+ var noticeContanier = $('<div></div>'),
34
+ noticeInnerWrap = $('<p></p>'),
35
+ dashicon = $('<span></span>'),
36
+ dashiconClass,
37
+ noticeId = this.makeid();
38
+
39
+ if( !type ) {
40
+ type = 'warning';
41
+ }
42
+
43
+ noticeContanier.addClass('alert', 'wbcr-factory-warning-notice')
44
+ .addClass('alert-' + type).addClass('wbcr-factory-' + type + '-notice');
45
+
46
+ noticeContanier.append(noticeInnerWrap);
47
+ noticeContanier.attr('id', 'uq-' + noticeId);
48
+
49
+ if( 'success' === type ) {
50
+ dashiconClass = 'dashicons-plus';
51
+ } else if( 'error' === type ) {
52
+ dashiconClass = 'dashicons-no';
53
+ } else {
54
+ dashiconClass = 'dashicons-warning';
55
+ }
56
+
57
+ dashicon.addClass('dashicons').addClass(dashiconClass);
58
+ noticeInnerWrap.prepend(dashicon);
59
+ dashicon.after(message);
60
+
61
+ $([document.documentElement, document.body]).animate({
62
+ scrollTop: $('.wbcr-factory-content').offset().top - 100
63
+ }, 300, function() {
64
+ noticeContanier.hide();
65
+ $('.wbcr-factory-content').prepend(noticeContanier);
66
+ noticeContanier.fadeIn();
67
+
68
+ /**
69
+ * Хук выполняет проивольную функцию, после того как уведомление отображено
70
+ * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
71
+ * Пример регистрации хука $.wfactory_439.hooks.add('wbcr/factory_clearfy_230/updated',
72
+ * function(noticeId) {});
73
+ * @param {string} noticeId - id уведомления
74
+ */
75
+ $.wfactory_439.hooks.run('wbcr/factory_clearfy_230/showed_notice', [noticeId]);
76
+ $.wfactory_439.hooks.run('wbcr/clearfy/showed_notice', [noticeId]);
77
+ });
78
+
79
+ return noticeId;
80
+ },
81
+
82
+ /**
83
+ * Удаляет уведомление из интерфейса Clearfy
84
+ *
85
+ * @param {string} noticeId - id уведомления
86
+ */
87
+ hideNotice: function(noticeId) {
88
+ var el;
89
+ if( !noticeId ) {
90
+ el = $('.wbcr-factory-content').find('.alert');
91
+ } else {
92
+ el = $('#uq-' + noticeId);
93
+ }
94
+
95
+ el.fadeOut(500, function(e) {
96
+ $(e).remove();
97
+
98
+ /**
99
+ * Хук выполняет проивольную функцию, после того как уведомление скрыто
100
+ * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
101
+ * Пример регистрации хука $.wfactory_439.hooks.add('wbcr/factory_clearfy_230/updated',
102
+ * function(noticeId)
103
+ * {});
104
+ * @param {string} noticeId - id уведомления
105
+ */
106
+ $.wfactory_439.hooks.run('wbcr/factory_clearfy_230/hidded_notice', [noticeId]);
107
+ $.wfactory_439.hooks.run('wbcr/clearfy/hidded_notice', [noticeId]);
108
+ });
109
+ },
110
+
111
+ makeid: function() {
112
+ var text = "";
113
+ var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
114
+
115
+ for( var i = 0; i < 32; i++ ) {
116
+ text += possible.charAt(Math.floor(Math.random() * possible.length));
117
+ }
118
+
119
+ return text;
120
+ }
121
+
122
+ };
123
+
124
+ $.wfactory_439.hooks.add('core/components/pre_activate', function(button) {
125
+ // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
126
+ if( !$('#WBCR').length ) {
127
+ return false;
128
+ }
129
+
130
+ if( button.closest('.alert').length ) {
131
+ button.closest('.alert').remove();
132
+ }
133
+
134
+ if( button.closest('.plugin-card').length ) {
135
+ button.closest('.plugin-card').removeClass('plugin-status-deactive');
136
+ button.closest('.plugin-card').find('.delete-now').remove();
137
+ }
138
+ });
139
+
140
+ $.wfactory_439.hooks.add('core/components/deactivated', function(button, data, response) {
141
+ // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
142
+ if( !$('#WBCR').length ) {
143
+ return false;
144
+ }
145
+
146
+ if( button.closest('.plugin-card').length ) {
147
+ button.closest('.plugin-card').addClass('plugin-status-deactive');
148
+
149
+ if( response.data['delete_button'] && response.data['delete_button'] !== '' ) {
150
+ button.before($(response.data['delete_button']).addClass('delete-now'));
151
+ }
152
+ }
153
+
154
+ if( button.closest('.wbcr-hide-after-action').length ) {
155
+ button.closest('.wbcr-hide-after-action').remove();
156
+ }
157
+ });
158
+
159
+ $.wfactory_439.hooks.add('core/components/deleted', function(button) {
160
+ // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
161
+ if( !$('#WBCR').length ) {
162
+ return false;
163
+ }
164
+
165
+ let button_i18n = button.data('i18n');
166
+
167
+ button.closest('.plugin-card').find('.install-now').data('plugin-action', 'install');
168
+ button.closest('.plugin-card').find('.install-now').attr('data-plugin-action', 'install');
169
+ button.closest('.plugin-card').find('.install-now').removeClass('button-primary').addClass('button-default');
170
+ button.closest('.plugin-card').find('.install-now').text(button_i18n.install);
171
+
172
+ if( button.closest('.plugin-card').length ) {
173
+ button.closest('.plugin-card').addClass('plugin-status-deactive');
174
+ button.remove();
175
+ }
176
+ });
177
+
178
+ $.wfactory_439.hooks.add('core/components/activation_error', function(plugin, button, response) {
179
+ // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
180
+ if( !($('#WBCR').length && $.wbcr_factory_clearfy_230) ) {
181
+ return false;
182
+ }
183
+
184
+ button.closest('.plugin-card').addClass('plugin-status-deactive');
185
+
186
+ if( response.data && response.data.error_message ) {
187
+ $.wbcr_factory_clearfy_230.app.showNotice(response.data.error_message, 'danger');
188
+ }
189
+ });
190
+
191
+ $.wfactory_439.hooks.add('core/components/update_error', function(button, data, response) {
192
+ // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
193
+ if( !($('#WBCR').length && $.wbcr_factory_clearfy_230) ) {
194
+ return false;
195
+ }
196
+
197
+ if( response.data && response.data.error_message ) {
198
+ $.wbcr_factory_clearfy_230.app.showNotice(response.data.error_message, 'danger');
199
+ }
200
+
201
+ });
202
+
203
+ $.wfactory_439.hooks.add('core/components/activated', function(button, data, response) {
204
+ // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
205
+ if( !$('#WBCR').length ) {
206
+ return false;
207
+ }
208
+
209
+ button.closest('.plugin-card').removeClass('plugin-status-deactive');
210
+ });
211
+
212
+ $.wfactory_439.hooks.add('core/components/ajax_error', function(xhr, ajaxOptions, thrownError) {
213
+ // Выполняем код ниже, только на страницах плагина с интерфейсом Clearfy
214
+ if( !($('#WBCR').length && $.wbcr_factory_clearfy_230) ) {
215
+ return false;
216
+ }
217
+
218
+ $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
219
+ });
220
+
221
+ })(jQuery);
libs/factory/clearfy/assets/js/{license-manager.js → clearfy-license-manager.js} RENAMED
@@ -20,7 +20,7 @@ jQuery(function($) {
20
  licenseAction = $(this).data('action');
21
 
22
  for( i = 0; i < allNotices.length; i++ ) {
23
- $.wbcr_factory_clearfy_224.app.hideNotice(allNotices[i]);
24
  }
25
 
26
  $('.wcl-control-btn').hide();
@@ -53,7 +53,7 @@ jQuery(function($) {
53
 
54
  if( response.data ) {
55
  console.log(response.data.error_message);
56
- noticeId = $.wbcr_factory_clearfy_224.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
57
  allNotices.push(noticeId);
58
  } else {
59
  console.log(response);
@@ -63,7 +63,7 @@ jQuery(function($) {
63
  }
64
 
65
  if( response.data && response.data.message ) {
66
- noticeId = $.wbcr_factory_clearfy_224.app.showNotice(response.data.message, 'success');
67
  allNotices.push(noticeId);
68
 
69
  // todo: доработать генерацию формы, вместо перезагрузки страницы
@@ -80,7 +80,7 @@ jQuery(function($) {
80
  console.log(xhr.responseText);
81
  console.log(thrownError);
82
 
83
- var noticeId = $.wbcr_factory_clearfy_224.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
84
 
85
  allNotices.push(noticeId);
86
  }
20
  licenseAction = $(this).data('action');
21
 
22
  for( i = 0; i < allNotices.length; i++ ) {
23
+ $.wbcr_factory_clearfy_230.app.hideNotice(allNotices[i]);
24
  }
25
 
26
  $('.wcl-control-btn').hide();
53
 
54
  if( response.data ) {
55
  console.log(response.data.error_message);
56
+ noticeId = $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + response.data.error_message + ']', 'danger');
57
  allNotices.push(noticeId);
58
  } else {
59
  console.log(response);
63
  }
64
 
65
  if( response.data && response.data.message ) {
66
+ noticeId = $.wbcr_factory_clearfy_230.app.showNotice(response.data.message, 'success');
67
  allNotices.push(noticeId);
68
 
69
  // todo: доработать генерацию формы, вместо перезагрузки страницы
80
  console.log(xhr.responseText);
81
  console.log(thrownError);
82
 
83
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
84
 
85
  allNotices.push(noticeId);
86
  }
libs/factory/clearfy/assets/js/{search-options.js → clearfy-search-options.js} RENAMED
@@ -28,10 +28,10 @@
28
  throw new Error('Global var {wfactory_clearfy_search_options} is not declared.');
29
  }
30
 
31
- $('#wbcr-factory-clearfy-224__autocomplete').wfactory_clearfy_autocomplete({
32
  lookup: wfactory_clearfy_search_options,
33
  onSelect: function(suggestion) {
34
- $('#wbcr-factory-clearfy-224__autocomplete').prop("disabled", true);
35
  window.location.href = suggestion.data.page_url;
36
  }
37
  });
28
  throw new Error('Global var {wfactory_clearfy_search_options} is not declared.');
29
  }
30
 
31
+ $('#wbcr-factory-clearfy-230__autocomplete').wfactory_clearfy_autocomplete({
32
  lookup: wfactory_clearfy_search_options,
33
  onSelect: function(suggestion) {
34
+ $('#wbcr-factory-clearfy-230__autocomplete').prop("disabled", true);
35
  window.location.href = suggestion.data.page_url;
36
  }
37
  });
libs/factory/clearfy/assets/js/clearfy-widgets.js ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(function($) {
2
+ $('#wbcr-factory-subscribe-widget__subscribe-form').submit(function(e) {
3
+ e.preventDefault();
4
+ var agree = $(this).find('[name=agree_terms]:checked');
5
+ if( agree.length === 0 ) {
6
+ return;
7
+ }
8
+
9
+ $.ajax({
10
+ method: "POST",
11
+ url: "https://clearfy.pro/wp-json/mailerlite/v1/subscribe/",
12
+ data: {
13
+ email: $('#wbcr-factory-subscribe-widget__email').val(),
14
+ group_id: $('#wbcr-factory-subscribe-widget__group-id').val(),
15
+ },
16
+ success: function(data) {
17
+ if( !data.message ) {
18
+ if( data.subscribed ) {
19
+ $(".wbcr-factory-subscribe-widget__text--success").show();
20
+ } else {
21
+ $(".wbcr-factory-subscribe-widget__text--success2").show();
22
+ }
23
+ } else {
24
+ console.log(data.message);
25
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + data.message + ']', 'danger');
26
+ setTimeout(function() {
27
+ $.wbcr_factory_clearfy_230.app.hideNotice(noticeId);
28
+ }, 5000);
29
+ }
30
+ },
31
+ error: function(xhr, ajaxOptions, thrownError) {
32
+
33
+ console.log(xhr.status);
34
+ console.log(xhr.responseText);
35
+ console.log(thrownError);
36
+
37
+ var noticeId = $.wbcr_factory_clearfy_230.app.showNotice('Error: [' + thrownError + '] Status: [' + xhr.status + '] Error massage: [' + xhr.responseText + ']', 'danger');
38
+ setTimeout(function() {
39
+ $.wbcr_factory_clearfy_230.app.hideNotice(noticeId);
40
+ }, 5000);
41
+ }
42
+ });
43
+ });
44
+ });
libs/factory/clearfy/assets/js/globals.js DELETED
@@ -1,203 +0,0 @@
1
- /*!
2
- * Глобальный JS файл, который регистрирует глобальные переменные с общими методами для всех компонентов Clearfy
3
- * и самого Clearfy.
4
- *
5
- * $.wbcr_factory_clearfy_224.app - методы для работы с приложением. Скрыть, показать уведомления.
6
- * $.wbcr_factory_clearfy_224.hooks - это иммитация хуков и фильтров аналогично тем, что используются в Wordpress
7
- *
8
- * Copyright 2018, Webcraftic, http://webcraftic.com
9
- *
10
- * @since 2.0.5
11
- * @pacakge clearfy
12
- */
13
- (function($) {
14
- 'use strict';
15
-
16
- if( !$.wbcr_factory_clearfy_224 ) {
17
- $.wbcr_factory_clearfy_224 = {};
18
- }
19
-
20
- $.wbcr_factory_clearfy_224.app = $.wbcr_factory_clearfy_224.app || {
21
- /**
22
- * Создает и показывает уведомление внутри интерфейса Clearfy
23
- *
24
- * @param {string} message - сообщение об ошибке или предупреждение
25
- * @param {string} type - тип уведомления (error, warning, success)
26
- */
27
- showNotice: function(message, type) {
28
- var noticeContanier = $('<div></div>'),
29
- noticeInnerWrap = $('<p></p>'),
30
- dashicon = $('<span></span>'),
31
- dashiconClass,
32
- noticeId = this.makeid();
33
-
34
- if( !type ) {
35
- type = 'warning';
36
- }
37
-
38
- noticeContanier.addClass('alert', 'wbcr-factory-warning-notice')
39
- .addClass('alert-' + type).addClass('wbcr-factory-' + type + '-notice');
40
-
41
- noticeContanier.append(noticeInnerWrap);
42
- noticeContanier.attr('id', 'uq-' + noticeId);
43
-
44
- if( type == 'success' ) {
45
- dashiconClass = 'dashicons-plus';
46
- } else if( type == 'error' ) {
47
- dashiconClass = 'dashicons-no';
48
- } else {
49
- dashiconClass = 'dashicons-warning';
50
- }
51
-
52
- dashicon.addClass('dashicons').addClass(dashiconClass);
53
- noticeInnerWrap.prepend(dashicon);
54
- dashicon.after(message);
55
-
56
- $([document.documentElement, document.body]).animate({
57
- scrollTop: $('.wbcr-factory-content').offset().top - 100
58
- }, 300, function() {
59
- noticeContanier.hide();
60
- $('.wbcr-factory-content').prepend(noticeContanier);
61
- noticeContanier.fadeIn();
62
-
63
- /**
64
- * Хук выполняет проивольную функцию, после того как уведомление отображено
65
- * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
66
- * Пример регистрации хука $.wbcr_factory_clearfy_224.hooks.add('wbcr/factory_clearfy_224/updated',
67
- * function(noticeId) {});
68
- * @param {string} noticeId - id уведомления
69
- */
70
- $.wbcr_factory_clearfy_224.hooks.run('wbcr/factory_clearfy_224/showed_notice', [noticeId]);
71
- $.wbcr_factory_clearfy_224.hooks.run('wbcr/clearfy/showed_notice', [noticeId]);
72
- });
73
-
74
- return noticeId;
75
- },
76
-
77
- /**
78
- * Удаляет уведомление из интерфейса Clearfy
79
- *
80
- * @param {string} noticeId - id уведомления
81
- */
82
- hideNotice: function(noticeId) {
83
- var el;
84
- if( !noticeId ) {
85
- el = $('.wbcr-factory-content').find('.alert');
86
- } else {
87
- el = $('#uq-' + noticeId);
88
- }
89
-
90
- el.fadeOut(500, function(e) {
91
- $(e).remove();
92
-
93
- /**
94
- * Хук выполняет проивольную функцию, после того как уведомление скрыто
95
- * Реализация системы фильтров и хуков в файле libs/clearfy/admin/assests/js/global.js
96
- * Пример регистрации хука $.wbcr_factory_clearfy_224.hooks.add('wbcr/factory_clearfy_224/updated',
97
- * function(noticeId)
98
- * {});
99
- * @param {string} noticeId - id уведомления
100
- */
101
- $.wbcr_factory_clearfy_224.hooks.run('wbcr/factory_clearfy_224/hidded_notice', [noticeId]);
102
- $.wbcr_factory_clearfy_224.hooks.run('wbcr/clearfy/hidded_notice', [noticeId]);
103
- });
104
- },
105
-
106
- makeid: function() {
107
- var text = "";
108
- var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
109
-
110
- for( var i = 0; i < 32; i++ ) {
111
- text += possible.charAt(Math.floor(Math.random() * possible.length));
112
- }
113
-
114
- return text;
115
- }
116
-
117
- };
118
-
119
- $.wbcr_factory_clearfy_224.filters = $.wbcr_factory_clearfy_224.filters || {
120
-
121
- /**
122
- * A set of registered filters.
123
- */
124
- _items: {},
125
-
126
- /**
127
- * A set of priorities of registered filters.
128
- */
129
- _priorities: {},
130
-
131
- /**
132
- * Applies filters to a given input value.
133
- */
134
- run: function(filterName, args) {
135
- var input = args && args.length > 0 ? args[0] : null;
136
- if( !this._items[filterName] ) {
137
- return input;
138
- }
139
-
140
- for( var i in this._priorities[filterName] ) {
141
- if( !this._priorities[filterName].hasOwnProperty(i) ) {
142
- continue;
143
- }
144
-
145
- var priority = this._priorities[filterName][i];
146
-
147
- for( var k = 0; k < this._items[filterName][priority].length; k++ ) {
148
- var f = this._items[filterName][priority][k];
149
- input = f.apply(f, args);
150
- }
151
- }
152
-
153
- return input;
154
- },
155
-
156
- /**
157
- * Registers a new filter.
158
- */
159
- add: function(filterName, callback, priority) {
160
-
161
- if( !priority ) {
162
- priority = 10;
163
- }
164
-
165
- if( !this._items[filterName] ) {
166
- this._items[filterName] = {};
167
- }
168
- if( !this._items[filterName][priority] ) {
169
- this._items[filterName][priority] = [];
170
- }
171
- this._items[filterName][priority].push(callback);
172
-
173
- if( !this._priorities[filterName] ) {
174
- this._priorities[filterName] = [];
175
- }
176
- if( $.inArray(priority, this._priorities[filterName]) === -1 ) {
177
- this._priorities[filterName].push(priority);
178
- }
179
-
180
- this._priorities[filterName].sort(function(a, b) {
181
- return a - b;
182
- });
183
- }
184
- };
185
-
186
- $.wbcr_factory_clearfy_224.hooks = $.wbcr_factory_clearfy_224.hooks || {
187
-
188
- /**
189
- * Applies filters to a given input value.
190
- */
191
- run: function(filterName, args) {
192
- $.wbcr_factory_clearfy_224.filters.run(filterName, args);
193
- },
194
-
195
- /**
196
- * Registers a new filter.
197
- */
198
- add: function(filterName, callback, priority) {
199
- $.wbcr_factory_clearfy_224.filters.add(filterName, callback, priority);
200
- }
201
- };
202
-
203
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/clearfy/assets/js/libs/jquery.autocomplete.min.js CHANGED
@@ -5,4 +5,4 @@
5
  * Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
6
  * For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
7
  */
8
- !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports&&"function"==typeof require?require("jquery"):jQuery)}(function(a){"use strict";function b(c,d){var e=this;e.element=c,e.el=a(c),e.suggestions=[],e.badQueries=[],e.selectedIndex=-1,e.currentValue=e.element.value,e.timeoutId=null,e.cachedResponse={},e.onChangeTimeout=null,e.onChange=null,e.isLocal=!1,e.suggestionsContainer=null,e.noSuggestionsContainer=null,e.options=a.extend(!0,{},b.defaults,d),e.classes={selected:"wbcr-factory-clearfy-224__autocomplete-selected",suggestion:"wbcr-factory-clearfy-224__autocomplete-suggestion"},e.hint=null,e.hintValue="",e.selection=null,e.initialize(),e.setOptions(d)}function c(a,b,c){return a.value.toLowerCase().indexOf(c)!==-1}function d(b){return"string"==typeof b?a.parseJSON(b):b}function e(a,b){if(!b)return a.value;var c="("+g.escapeRegExChars(b)+")";return a.value.replace(new RegExp(c,"gi"),"<strong>$1</strong>").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/&lt;(\/?strong)&gt;/g,"<$1>")}function f(a,b){return'<div class="wbcr-factory-clearfy-224__autocomplete-group">'+b+"</div>"}var g=function(){return{escapeRegExChars:function(a){return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(a){var b=document.createElement("div");return b.className=a,b.style.position="absolute",b.style.display="none",b}}}(),h={ESC:27,TAB:9,RETURN:13,LEFT:37,UP:38,RIGHT:39,DOWN:40},i=a.noop;b.utils=g,a.Autocomplete=b,b.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,width:"auto",minChars:1,maxHeight:300,deferRequestBy:0,params:{},formatResult:e,formatGroup:f,delimiter:null,zIndex:9999,type:"GET",noCache:!1,onSearchStart:i,onSearchComplete:i,onSearchError:i,preserveInput:!1,containerClass:"wbcr-factory-clearfy-224__autocomplete-suggestions",tabDisabled:!1,dataType:"text",currentRequest:null,triggerSelectOnValidInput:!0,preventBadQueries:!0,lookupFilter:c,paramName:"query",transformResult:d,showNoSuggestionNotice:!1,noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1},b.prototype={initialize:function(){var c,d=this,e="."+d.classes.suggestion,f=d.classes.selected,g=d.options;d.element.setAttribute("autocomplete","off"),d.noSuggestionsContainer=a('<div class="autocomplete-no-suggestion"></div>').html(this.options.noSuggestionNotice).get(0),d.suggestionsContainer=b.utils.createNode(g.containerClass),c=a(d.suggestionsContainer),c.appendTo(g.appendTo||"body"),"auto"!==g.width&&c.css("width",g.width),c.on("mouseover.autocomplete",e,function(){d.activate(a(this).data("index"))}),c.on("mouseout.autocomplete",function(){d.selectedIndex=-1,c.children("."+f).removeClass(f)}),c.on("click.autocomplete",e,function(){d.select(a(this).data("index"))}),c.on("click.autocomplete",function(){clearTimeout(d.blurTimeoutId)}),d.fixPositionCapture=function(){d.visible&&d.fixPosition()},a(window).on("resize.autocomplete",d.fixPositionCapture),d.el.on("keydown.autocomplete",function(a){d.onKeyPress(a)}),d.el.on("keyup.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("blur.autocomplete",function(){d.onBlur()}),d.el.on("focus.autocomplete",function(){d.onFocus()}),d.el.on("change.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("input.autocomplete",function(a){d.onKeyUp(a)})},onFocus:function(){var a=this;a.disabled||(a.fixPosition(),a.el.val().length>=a.options.minChars&&a.onValueChange())},onBlur:function(){var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);b.blurTimeoutId=setTimeout(function(){b.hide(),b.selection&&b.currentValue!==e&&(c.onInvalidateSelection||a.noop).call(b.element)},200)},abortAjax:function(){var a=this;a.currentRequest&&(a.currentRequest.abort(),a.currentRequest=null)},setOptions:function(b){var c=this,d=a.extend({},c.options,b);c.isLocal=Array.isArray(d.lookup),c.isLocal&&(d.lookup=c.verifySuggestionsFormat(d.lookup)),d.orientation=c.validateOrientation(d.orientation,"bottom"),a(c.suggestionsContainer).css({"max-height":d.maxHeight+"px",width:d.width+"px","z-index":d.zIndex}),this.options=d},clearCache:function(){this.cachedResponse={},this.badQueries=[]},clear:function(){this.clearCache(),this.currentValue="",this.suggestions=[]},disable:function(){var a=this;a.disabled=!0,clearTimeout(a.onChangeTimeout),a.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){var b=this,c=a(b.suggestionsContainer),d=c.parent().get(0);if(d===document.body||b.options.forceFixPosition){var e=b.options.orientation,f=c.outerHeight(),g=b.el.outerHeight(),h=b.el.offset(),i={top:h.top,left:h.left};if("auto"===e){var j=a(window).height(),k=a(window).scrollTop(),l=-k+h.top-f,m=k+j-(h.top+g+f);e=Math.max(l,m)===l?"top":"bottom"}if("top"===e?i.top+=-f:i.top+=g,d!==document.body){var n,o=c.css("opacity");b.visible||c.css("opacity",0).show(),n=c.offsetParent().offset(),i.top-=n.top,i.top+=d.scrollTop,i.left-=n.left,b.visible||c.css("opacity",o).hide()}"auto"===b.options.width&&(i.width=b.el.outerWidth()+"px"),c.css(i)}},isCursorAtEnd:function(){var a,b=this,c=b.el.val().length,d=b.element.selectionStart;return"number"==typeof d?d===c:!document.selection||(a=document.selection.createRange(),a.moveStart("character",-c),c===a.text.length)},onKeyPress:function(a){var b=this;if(!b.disabled&&!b.visible&&a.which===h.DOWN&&b.currentValue)return void b.suggest();if(!b.disabled&&b.visible){switch(a.which){case h.ESC:b.el.val(b.currentValue),b.hide();break;case h.RIGHT:if(b.hint&&b.options.onHint&&b.isCursorAtEnd()){b.selectHint();break}return;case h.TAB:if(b.hint&&b.options.onHint)return void b.selectHint();if(b.selectedIndex===-1)return void b.hide();if(b.select(b.selectedIndex),b.options.tabDisabled===!1)return;break;case h.RETURN:if(b.selectedIndex===-1)return void b.hide();b.select(b.selectedIndex);break;case h.UP:b.moveUp();break;case h.DOWN:b.moveDown();break;default:return}a.stopImmediatePropagation(),a.preventDefault()}},onKeyUp:function(a){var b=this;if(!b.disabled){switch(a.which){case h.UP:case h.DOWN:return}clearTimeout(b.onChangeTimeout),b.currentValue!==b.el.val()&&(b.findBestHint(),b.options.deferRequestBy>0?b.onChangeTimeout=setTimeout(function(){b.onValueChange()},b.options.deferRequestBy):b.onValueChange())}},onValueChange:function(){if(this.ignoreValueChange)return void(this.ignoreValueChange=!1);var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);return b.selection&&b.currentValue!==e&&(b.selection=null,(c.onInvalidateSelection||a.noop).call(b.element)),clearTimeout(b.onChangeTimeout),b.currentValue=d,b.selectedIndex=-1,c.triggerSelectOnValidInput&&b.isExactMatch(e)?void b.select(0):void(e.length<c.minChars?b.hide():b.getSuggestions(e))},isExactMatch:function(a){var b=this.suggestions;return 1===b.length&&b[0].value.toLowerCase()===a.toLowerCase()},getQuery:function(b){var c,d=this.options.delimiter;return d?(c=b.split(d),a.trim(c[c.length-1])):b},getSuggestionsLocal:function(b){var c,d=this,e=d.options,f=b.toLowerCase(),g=e.lookupFilter,h=parseInt(e.lookupLimit,10);return c={suggestions:a.grep(e.lookup,function(a){return g(a,b,f)})},h&&c.suggestions.length>h&&(c.suggestions=c.suggestions.slice(0,h)),c},getSuggestions:function(b){var c,d,e,f,g=this,h=g.options,i=h.serviceUrl;if(h.params[h.paramName]=b,h.onSearchStart.call(g.element,h.params)!==!1){if(d=h.ignoreParams?null:h.params,a.isFunction(h.lookup))return void h.lookup(b,function(a){g.suggestions=a.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,a.suggestions)});g.isLocal?c=g.getSuggestionsLocal(b):(a.isFunction(i)&&(i=i.call(g.element,b)),e=i+"?"+a.param(d||{}),c=g.cachedResponse[e]),c&&Array.isArray(c.suggestions)?(g.suggestions=c.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,c.suggestions)):g.isBadQuery(b)?h.onSearchComplete.call(g.element,b,[]):(g.abortAjax(),f={url:i,data:d,type:h.type,dataType:h.dataType},a.extend(f,h.ajaxSettings),g.currentRequest=a.ajax(f).done(function(a){var c;g.currentRequest=null,c=h.transformResult(a,b),g.processResponse(c,b,e),h.onSearchComplete.call(g.element,b,c.suggestions)}).fail(function(a,c,d){h.onSearchError.call(g.element,b,a,c,d)}))}},isBadQuery:function(a){if(!this.options.preventBadQueries)return!1;for(var b=this.badQueries,c=b.length;c--;)if(0===a.indexOf(b[c]))return!0;return!1},hide:function(){var b=this,c=a(b.suggestionsContainer);a.isFunction(b.options.onHide)&&b.visible&&b.options.onHide.call(b.element,c),b.visible=!1,b.selectedIndex=-1,clearTimeout(b.onChangeTimeout),a(b.suggestionsContainer).hide(),b.signalHint(null)},suggest:function(){if(!this.suggestions.length)return void(this.options.showNoSuggestionNotice?this.noSuggestions():this.hide());var b,c=this,d=c.options,e=d.groupBy,f=d.formatResult,g=c.getQuery(c.currentValue),h=c.classes.suggestion,i=c.classes.selected,j=a(c.suggestionsContainer),k=a(c.noSuggestionsContainer),l=d.beforeRender,m="",n=function(a,c){var f=a.data[e];return b===f?"":(b=f,d.formatGroup(a,b))};return d.triggerSelectOnValidInput&&c.isExactMatch(g)?void c.select(0):(a.each(c.suggestions,function(a,b){e&&(m+=n(b,g,a)),m+='<div class="'+h+'" data-index="'+a+'">'+f(b,g,a)+"</div>"}),this.adjustContainerWidth(),k.detach(),j.html(m),a.isFunction(l)&&l.call(c.element,j,c.suggestions),c.fixPosition(),j.show(),d.autoSelectFirst&&(c.selectedIndex=0,j.scrollTop(0),j.children("."+h).first().addClass(i)),c.visible=!0,void c.findBestHint())},noSuggestions:function(){var b=this,c=b.options.beforeRender,d=a(b.suggestionsContainer),e=a(b.noSuggestionsContainer);this.adjustContainerWidth(),e.detach(),d.empty(),d.append(e),a.isFunction(c)&&c.call(b.element,d,b.suggestions),b.fixPosition(),d.show(),b.visible=!0},adjustContainerWidth:function(){var b,c=this,d=c.options,e=a(c.suggestionsContainer);"auto"===d.width?(b=c.el.outerWidth(),e.css("width",b>0?b:300)):"flex"===d.width&&e.css("width","")},findBestHint:function(){var b=this,c=b.el.val().toLowerCase(),d=null;c&&(a.each(b.suggestions,function(a,b){var e=0===b.value.toLowerCase().indexOf(c);return e&&(d=b),!e}),b.signalHint(d))},signalHint:function(b){var c="",d=this;b&&(c=d.currentValue+b.value.substr(d.currentValue.length)),d.hintValue!==c&&(d.hintValue=c,d.hint=b,(this.options.onHint||a.noop)(c))},verifySuggestionsFormat:function(b){return b.length&&"string"==typeof b[0]?a.map(b,function(a){return{value:a,data:null}}):b},validateOrientation:function(b,c){return b=a.trim(b||"").toLowerCase(),a.inArray(b,["auto","bottom","top"])===-1&&(b=c),b},processResponse:function(a,b,c){var d=this,e=d.options;a.suggestions=d.verifySuggestionsFormat(a.suggestions),e.noCache||(d.cachedResponse[c]=a,e.preventBadQueries&&!a.suggestions.length&&d.badQueries.push(b)),b===d.getQuery(d.currentValue)&&(d.suggestions=a.suggestions,d.suggest())},activate:function(b){var c,d=this,e=d.classes.selected,f=a(d.suggestionsContainer),g=f.find("."+d.classes.suggestion);return f.find("."+e).removeClass(e),d.selectedIndex=b,d.selectedIndex!==-1&&g.length>d.selectedIndex?(c=g.get(d.selectedIndex),a(c).addClass(e),c):null},selectHint:function(){var b=this,c=a.inArray(b.hint,b.suggestions);b.select(c)},select:function(a){var b=this;b.hide(),b.onSelect(a)},moveUp:function(){var b=this;if(b.selectedIndex!==-1)return 0===b.selectedIndex?(a(b.suggestionsContainer).children("."+b.classes.suggestion).first().removeClass(b.classes.selected),b.selectedIndex=-1,b.ignoreValueChange=!1,b.el.val(b.currentValue),void b.findBestHint()):void b.adjustScroll(b.selectedIndex-1)},moveDown:function(){var a=this;a.selectedIndex!==a.suggestions.length-1&&a.adjustScroll(a.selectedIndex+1)},adjustScroll:function(b){var c=this,d=c.activate(b);if(d){var e,f,g,h=a(d).outerHeight();e=d.offsetTop,f=a(c.suggestionsContainer).scrollTop(),g=f+c.options.maxHeight-h,e<f?a(c.suggestionsContainer).scrollTop(e):e>g&&a(c.suggestionsContainer).scrollTop(e-c.options.maxHeight+h),c.options.preserveInput||(c.ignoreValueChange=!0,c.el.val(c.getValue(c.suggestions[b].value))),c.signalHint(null)}},onSelect:function(b){var c=this,d=c.options.onSelect,e=c.suggestions[b];c.currentValue=c.getValue(e.value),c.currentValue===c.el.val()||c.options.preserveInput||c.el.val(c.currentValue),c.signalHint(null),c.suggestions=[],c.selection=e,a.isFunction(d)&&d.call(c.element,e)},getValue:function(a){var b,c,d=this,e=d.options.delimiter;return e?(b=d.currentValue,c=b.split(e),1===c.length?a:b.substr(0,b.length-c[c.length-1].length)+a):a},dispose:function(){var b=this;b.el.off(".autocomplete").removeData("autocomplete"),a(window).off("resize.autocomplete",b.fixPositionCapture),a(b.suggestionsContainer).remove()}},a.fn.devbridgeAutocomplete=function(c,d){var e="autocomplete";return arguments.length?this.each(function(){var f=a(this),g=f.data(e);"string"==typeof c?g&&"function"==typeof g[c]&&g[c](d):(g&&g.dispose&&g.dispose(),g=new b(this,c),f.data(e,g))}):this.first().data(e)},a.fn.wfactory_clearfy_autocomplete||(a.fn.wfactory_clearfy_autocomplete=a.fn.devbridgeAutocomplete)});
5
  * Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.
6
  * For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete
7
  */
8
+ !function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports&&"function"==typeof require?require("jquery"):jQuery)}(function(a){"use strict";function b(c,d){var e=this;e.element=c,e.el=a(c),e.suggestions=[],e.badQueries=[],e.selectedIndex=-1,e.currentValue=e.element.value,e.timeoutId=null,e.cachedResponse={},e.onChangeTimeout=null,e.onChange=null,e.isLocal=!1,e.suggestionsContainer=null,e.noSuggestionsContainer=null,e.options=a.extend(!0,{},b.defaults,d),e.classes={selected:"wbcr-factory-clearfy-230__autocomplete-selected",suggestion:"wbcr-factory-clearfy-230__autocomplete-suggestion"},e.hint=null,e.hintValue="",e.selection=null,e.initialize(),e.setOptions(d)}function c(a,b,c){return a.value.toLowerCase().indexOf(c)!==-1}function d(b){return"string"==typeof b?a.parseJSON(b):b}function e(a,b){if(!b)return a.value;var c="("+g.escapeRegExChars(b)+")";return a.value.replace(new RegExp(c,"gi"),"<strong>$1</strong>").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/&lt;(\/?strong)&gt;/g,"<$1>")}function f(a,b){return'<div class="wbcr-factory-clearfy-230__autocomplete-group">'+b+"</div>"}var g=function(){return{escapeRegExChars:function(a){return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(a){var b=document.createElement("div");return b.className=a,b.style.position="absolute",b.style.display="none",b}}}(),h={ESC:27,TAB:9,RETURN:13,LEFT:37,UP:38,RIGHT:39,DOWN:40},i=a.noop;b.utils=g,a.Autocomplete=b,b.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,width:"auto",minChars:1,maxHeight:300,deferRequestBy:0,params:{},formatResult:e,formatGroup:f,delimiter:null,zIndex:9999,type:"GET",noCache:!1,onSearchStart:i,onSearchComplete:i,onSearchError:i,preserveInput:!1,containerClass:"wbcr-factory-clearfy-230__autocomplete-suggestions",tabDisabled:!1,dataType:"text",currentRequest:null,triggerSelectOnValidInput:!0,preventBadQueries:!0,lookupFilter:c,paramName:"query",transformResult:d,showNoSuggestionNotice:!1,noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1},b.prototype={initialize:function(){var c,d=this,e="."+d.classes.suggestion,f=d.classes.selected,g=d.options;d.element.setAttribute("autocomplete","off"),d.noSuggestionsContainer=a('<div class="autocomplete-no-suggestion"></div>').html(this.options.noSuggestionNotice).get(0),d.suggestionsContainer=b.utils.createNode(g.containerClass),c=a(d.suggestionsContainer),c.appendTo(g.appendTo||"body"),"auto"!==g.width&&c.css("width",g.width),c.on("mouseover.autocomplete",e,function(){d.activate(a(this).data("index"))}),c.on("mouseout.autocomplete",function(){d.selectedIndex=-1,c.children("."+f).removeClass(f)}),c.on("click.autocomplete",e,function(){d.select(a(this).data("index"))}),c.on("click.autocomplete",function(){clearTimeout(d.blurTimeoutId)}),d.fixPositionCapture=function(){d.visible&&d.fixPosition()},a(window).on("resize.autocomplete",d.fixPositionCapture),d.el.on("keydown.autocomplete",function(a){d.onKeyPress(a)}),d.el.on("keyup.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("blur.autocomplete",function(){d.onBlur()}),d.el.on("focus.autocomplete",function(){d.onFocus()}),d.el.on("change.autocomplete",function(a){d.onKeyUp(a)}),d.el.on("input.autocomplete",function(a){d.onKeyUp(a)})},onFocus:function(){var a=this;a.disabled||(a.fixPosition(),a.el.val().length>=a.options.minChars&&a.onValueChange())},onBlur:function(){var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);b.blurTimeoutId=setTimeout(function(){b.hide(),b.selection&&b.currentValue!==e&&(c.onInvalidateSelection||a.noop).call(b.element)},200)},abortAjax:function(){var a=this;a.currentRequest&&(a.currentRequest.abort(),a.currentRequest=null)},setOptions:function(b){var c=this,d=a.extend({},c.options,b);c.isLocal=Array.isArray(d.lookup),c.isLocal&&(d.lookup=c.verifySuggestionsFormat(d.lookup)),d.orientation=c.validateOrientation(d.orientation,"bottom"),a(c.suggestionsContainer).css({"max-height":d.maxHeight+"px",width:d.width+"px","z-index":d.zIndex}),this.options=d},clearCache:function(){this.cachedResponse={},this.badQueries=[]},clear:function(){this.clearCache(),this.currentValue="",this.suggestions=[]},disable:function(){var a=this;a.disabled=!0,clearTimeout(a.onChangeTimeout),a.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){var b=this,c=a(b.suggestionsContainer),d=c.parent().get(0);if(d===document.body||b.options.forceFixPosition){var e=b.options.orientation,f=c.outerHeight(),g=b.el.outerHeight(),h=b.el.offset(),i={top:h.top,left:h.left};if("auto"===e){var j=a(window).height(),k=a(window).scrollTop(),l=-k+h.top-f,m=k+j-(h.top+g+f);e=Math.max(l,m)===l?"top":"bottom"}if("top"===e?i.top+=-f:i.top+=g,d!==document.body){var n,o=c.css("opacity");b.visible||c.css("opacity",0).show(),n=c.offsetParent().offset(),i.top-=n.top,i.top+=d.scrollTop,i.left-=n.left,b.visible||c.css("opacity",o).hide()}"auto"===b.options.width&&(i.width=b.el.outerWidth()+"px"),c.css(i)}},isCursorAtEnd:function(){var a,b=this,c=b.el.val().length,d=b.element.selectionStart;return"number"==typeof d?d===c:!document.selection||(a=document.selection.createRange(),a.moveStart("character",-c),c===a.text.length)},onKeyPress:function(a){var b=this;if(!b.disabled&&!b.visible&&a.which===h.DOWN&&b.currentValue)return void b.suggest();if(!b.disabled&&b.visible){switch(a.which){case h.ESC:b.el.val(b.currentValue),b.hide();break;case h.RIGHT:if(b.hint&&b.options.onHint&&b.isCursorAtEnd()){b.selectHint();break}return;case h.TAB:if(b.hint&&b.options.onHint)return void b.selectHint();if(b.selectedIndex===-1)return void b.hide();if(b.select(b.selectedIndex),b.options.tabDisabled===!1)return;break;case h.RETURN:if(b.selectedIndex===-1)return void b.hide();b.select(b.selectedIndex);break;case h.UP:b.moveUp();break;case h.DOWN:b.moveDown();break;default:return}a.stopImmediatePropagation(),a.preventDefault()}},onKeyUp:function(a){var b=this;if(!b.disabled){switch(a.which){case h.UP:case h.DOWN:return}clearTimeout(b.onChangeTimeout),b.currentValue!==b.el.val()&&(b.findBestHint(),b.options.deferRequestBy>0?b.onChangeTimeout=setTimeout(function(){b.onValueChange()},b.options.deferRequestBy):b.onValueChange())}},onValueChange:function(){if(this.ignoreValueChange)return void(this.ignoreValueChange=!1);var b=this,c=b.options,d=b.el.val(),e=b.getQuery(d);return b.selection&&b.currentValue!==e&&(b.selection=null,(c.onInvalidateSelection||a.noop).call(b.element)),clearTimeout(b.onChangeTimeout),b.currentValue=d,b.selectedIndex=-1,c.triggerSelectOnValidInput&&b.isExactMatch(e)?void b.select(0):void(e.length<c.minChars?b.hide():b.getSuggestions(e))},isExactMatch:function(a){var b=this.suggestions;return 1===b.length&&b[0].value.toLowerCase()===a.toLowerCase()},getQuery:function(b){var c,d=this.options.delimiter;return d?(c=b.split(d),a.trim(c[c.length-1])):b},getSuggestionsLocal:function(b){var c,d=this,e=d.options,f=b.toLowerCase(),g=e.lookupFilter,h=parseInt(e.lookupLimit,10);return c={suggestions:a.grep(e.lookup,function(a){return g(a,b,f)})},h&&c.suggestions.length>h&&(c.suggestions=c.suggestions.slice(0,h)),c},getSuggestions:function(b){var c,d,e,f,g=this,h=g.options,i=h.serviceUrl;if(h.params[h.paramName]=b,h.onSearchStart.call(g.element,h.params)!==!1){if(d=h.ignoreParams?null:h.params,a.isFunction(h.lookup))return void h.lookup(b,function(a){g.suggestions=a.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,a.suggestions)});g.isLocal?c=g.getSuggestionsLocal(b):(a.isFunction(i)&&(i=i.call(g.element,b)),e=i+"?"+a.param(d||{}),c=g.cachedResponse[e]),c&&Array.isArray(c.suggestions)?(g.suggestions=c.suggestions,g.suggest(),h.onSearchComplete.call(g.element,b,c.suggestions)):g.isBadQuery(b)?h.onSearchComplete.call(g.element,b,[]):(g.abortAjax(),f={url:i,data:d,type:h.type,dataType:h.dataType},a.extend(f,h.ajaxSettings),g.currentRequest=a.ajax(f).done(function(a){var c;g.currentRequest=null,c=h.transformResult(a,b),g.processResponse(c,b,e),h.onSearchComplete.call(g.element,b,c.suggestions)}).fail(function(a,c,d){h.onSearchError.call(g.element,b,a,c,d)}))}},isBadQuery:function(a){if(!this.options.preventBadQueries)return!1;for(var b=this.badQueries,c=b.length;c--;)if(0===a.indexOf(b[c]))return!0;return!1},hide:function(){var b=this,c=a(b.suggestionsContainer);a.isFunction(b.options.onHide)&&b.visible&&b.options.onHide.call(b.element,c),b.visible=!1,b.selectedIndex=-1,clearTimeout(b.onChangeTimeout),a(b.suggestionsContainer).hide(),b.signalHint(null)},suggest:function(){if(!this.suggestions.length)return void(this.options.showNoSuggestionNotice?this.noSuggestions():this.hide());var b,c=this,d=c.options,e=d.groupBy,f=d.formatResult,g=c.getQuery(c.currentValue),h=c.classes.suggestion,i=c.classes.selected,j=a(c.suggestionsContainer),k=a(c.noSuggestionsContainer),l=d.beforeRender,m="",n=function(a,c){var f=a.data[e];return b===f?"":(b=f,d.formatGroup(a,b))};return d.triggerSelectOnValidInput&&c.isExactMatch(g)?void c.select(0):(a.each(c.suggestions,function(a,b){e&&(m+=n(b,g,a)),m+='<div class="'+h+'" data-index="'+a+'">'+f(b,g,a)+"</div>"}),this.adjustContainerWidth(),k.detach(),j.html(m),a.isFunction(l)&&l.call(c.element,j,c.suggestions),c.fixPosition(),j.show(),d.autoSelectFirst&&(c.selectedIndex=0,j.scrollTop(0),j.children("."+h).first().addClass(i)),c.visible=!0,void c.findBestHint())},noSuggestions:function(){var b=this,c=b.options.beforeRender,d=a(b.suggestionsContainer),e=a(b.noSuggestionsContainer);this.adjustContainerWidth(),e.detach(),d.empty(),d.append(e),a.isFunction(c)&&c.call(b.element,d,b.suggestions),b.fixPosition(),d.show(),b.visible=!0},adjustContainerWidth:function(){var b,c=this,d=c.options,e=a(c.suggestionsContainer);"auto"===d.width?(b=c.el.outerWidth(),e.css("width",b>0?b:300)):"flex"===d.width&&e.css("width","")},findBestHint:function(){var b=this,c=b.el.val().toLowerCase(),d=null;c&&(a.each(b.suggestions,function(a,b){var e=0===b.value.toLowerCase().indexOf(c);return e&&(d=b),!e}),b.signalHint(d))},signalHint:function(b){var c="",d=this;b&&(c=d.currentValue+b.value.substr(d.currentValue.length)),d.hintValue!==c&&(d.hintValue=c,d.hint=b,(this.options.onHint||a.noop)(c))},verifySuggestionsFormat:function(b){return b.length&&"string"==typeof b[0]?a.map(b,function(a){return{value:a,data:null}}):b},validateOrientation:function(b,c){return b=a.trim(b||"").toLowerCase(),a.inArray(b,["auto","bottom","top"])===-1&&(b=c),b},processResponse:function(a,b,c){var d=this,e=d.options;a.suggestions=d.verifySuggestionsFormat(a.suggestions),e.noCache||(d.cachedResponse[c]=a,e.preventBadQueries&&!a.suggestions.length&&d.badQueries.push(b)),b===d.getQuery(d.currentValue)&&(d.suggestions=a.suggestions,d.suggest())},activate:function(b){var c,d=this,e=d.classes.selected,f=a(d.suggestionsContainer),g=f.find("."+d.classes.suggestion);return f.find("."+e).removeClass(e),d.selectedIndex=b,d.selectedIndex!==-1&&g.length>d.selectedIndex?(c=g.get(d.selectedIndex),a(c).addClass(e),c):null},selectHint:function(){var b=this,c=a.inArray(b.hint,b.suggestions);b.select(c)},select:function(a){var b=this;b.hide(),b.onSelect(a)},moveUp:function(){var b=this;if(b.selectedIndex!==-1)return 0===b.selectedIndex?(a(b.suggestionsContainer).children("."+b.classes.suggestion).first().removeClass(b.classes.selected),b.selectedIndex=-1,b.ignoreValueChange=!1,b.el.val(b.currentValue),void b.findBestHint()):void b.adjustScroll(b.selectedIndex-1)},moveDown:function(){var a=this;a.selectedIndex!==a.suggestions.length-1&&a.adjustScroll(a.selectedIndex+1)},adjustScroll:function(b){var c=this,d=c.activate(b);if(d){var e,f,g,h=a(d).outerHeight();e=d.offsetTop,f=a(c.suggestionsContainer).scrollTop(),g=f+c.options.maxHeight-h,e<f?a(c.suggestionsContainer).scrollTop(e):e>g&&a(c.suggestionsContainer).scrollTop(e-c.options.maxHeight+h),c.options.preserveInput||(c.ignoreValueChange=!0,c.el.val(c.getValue(c.suggestions[b].value))),c.signalHint(null)}},onSelect:function(b){var c=this,d=c.options.onSelect,e=c.suggestions[b];c.currentValue=c.getValue(e.value),c.currentValue===c.el.val()||c.options.preserveInput||c.el.val(c.currentValue),c.signalHint(null),c.suggestions=[],c.selection=e,a.isFunction(d)&&d.call(c.element,e)},getValue:function(a){var b,c,d=this,e=d.options.delimiter;return e?(b=d.currentValue,c=b.split(e),1===c.length?a:b.substr(0,b.length-c[c.length-1].length)+a):a},dispose:function(){var b=this;b.el.off(".autocomplete").removeData("autocomplete"),a(window).off("resize.autocomplete",b.fixPositionCapture),a(b.suggestionsContainer).remove()}},a.fn.devbridgeAutocomplete=function(c,d){var e="autocomplete";return arguments.length?this.each(function(){var f=a(this),g=f.data(e);"string"==typeof c?g&&"function"==typeof g[c]&&g[c](d):(g&&g.dispose&&g.dispose(),g=new b(this,c),f.data(e,g))}):this.first().data(e)},a.fn.wfactory_clearfy_autocomplete||(a.fn.wfactory_clearfy_autocomplete=a.fn.devbridgeAutocomplete)});
libs/factory/clearfy/boot.php CHANGED
@@ -10,71 +10,80 @@
10
  */
11
 
12
  // Exit if accessed directly
13
- if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- if ( defined( 'FACTORY_CLEARFY_224_LOADED' ) ) {
18
  return;
19
  }
20
 
21
- define( 'FACTORY_CLEARFY_224_LOADED', true );
22
 
23
- define( 'FACTORY_CLEARFY_224', '2.2.4' );
24
 
25
- define( 'FACTORY_CLEARFY_224_DIR', dirname( __FILE__ ) );
26
- define( 'FACTORY_CLEARFY_224_URL', plugins_url( null, __FILE__ ) );
27
 
28
- load_plugin_textdomain( 'wbcr_factory_clearfy_224', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
29
 
30
- require( FACTORY_CLEARFY_224_DIR . '/includes/ajax-handlers.php' );
31
- require( FACTORY_CLEARFY_224_DIR . '/includes/class-helpers.php' );
32
- require( FACTORY_CLEARFY_224_DIR . '/includes/class-configurate.php' );
33
 
34
  // module provides function only for the admin area
35
- if ( is_admin() ) {
36
  /**
37
  * Подключаем скрипты для установки компонентов Clearfy
38
  * на все страницы админпанели.
39
  */
40
- add_action( 'admin_enqueue_scripts', function () {
41
- wp_enqueue_script( 'wbcr-factory-clearfy-224-global', FACTORY_CLEARFY_224_URL . '/assets/js/globals.js', [ 'jquery' ], FACTORY_CLEARFY_224 );
 
 
 
42
 
43
- require_once FACTORY_CLEARFY_224_DIR . '/includes/class-search-options.php';
44
- $all_options = \WBCR\Factory_Clearfy_224\Search_Options::get_all_options();
45
 
46
- if ( empty( $all_options ) ) {
47
  return;
48
  }
49
 
50
  $allow_print_data = false;
51
  $formated_options = [];
52
 
53
- foreach ( $all_options as $option ) {
54
- if ( ! $allow_print_data && isset( $_GET['page'] ) && $option['page_id'] === $_GET['page'] ) {
55
  $allow_print_data = true;
56
  }
57
 
58
  $formated_options[] = [
59
  'value' => $option['title'],
60
- 'data' => [
61
  //'hint' => isset($option['hint']) ? $option['hint'] : '',
62
  'page_url' => $option['page_url'],
63
- 'page_id' => $option['page_id']
64
  ]
65
  ];
66
  }
67
 
68
- if ( ! $allow_print_data ) {
69
  return;
70
  }
71
 
72
- wp_localize_script( 'wbcr-factory-clearfy-224-global', 'wfactory_clearfy_search_options', $formated_options );
73
- } );
74
 
75
- if ( defined( 'FACTORY_PAGES_432_LOADED' ) ) {
76
- require( FACTORY_CLEARFY_224_DIR . '/pages/class-pages.php' );
77
- require( FACTORY_CLEARFY_224_DIR . '/pages/class-page-more-features.php' );
78
- require( FACTORY_CLEARFY_224_DIR . '/pages/class-page-license.php' );
 
 
 
 
 
 
79
  }
80
  }
10
  */
11
 
12
  // Exit if accessed directly
13
+ if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
 
17
+ if( defined('FACTORY_CLEARFY_230_LOADED') ) {
18
  return;
19
  }
20
 
21
+ define('FACTORY_CLEARFY_230_LOADED', true);
22
 
23
+ define('FACTORY_CLEARFY_230', '2.3.0');
24
 
25
+ define('FACTORY_CLEARFY_230_DIR', dirname(__FILE__));
26
+ define('FACTORY_CLEARFY_230_URL', plugins_url(null, __FILE__));
27
 
28
+ load_plugin_textdomain('wbcr_factory_clearfy_230', false, dirname(plugin_basename(__FILE__)) . '/langs');
29
 
30
+ require(FACTORY_CLEARFY_230_DIR . '/includes/ajax-handlers.php');
31
+ require(FACTORY_CLEARFY_230_DIR . '/includes/class-helpers.php');
32
+ require(FACTORY_CLEARFY_230_DIR . '/includes/class-configurate.php');
33
 
34
  // module provides function only for the admin area
35
+ if( is_admin() ) {
36
  /**
37
  * Подключаем скрипты для установки компонентов Clearfy
38
  * на все страницы админпанели.
39
  */
40
+ add_action('admin_enqueue_scripts', function ($hook) {
41
+ wp_enqueue_script('wbcr-factory-clearfy-230-global', FACTORY_CLEARFY_230_URL . '/assets/js/clearfy-globals.js', [
42
+ 'jquery',
43
+ 'wfactory-439-core-general'
44
+ ], FACTORY_CLEARFY_230);
45
 
46
+ require_once FACTORY_CLEARFY_230_DIR . '/includes/class-search-options.php';
47
+ $all_options = \WBCR\Factory_Clearfy_230\Search_Options::get_all_options();
48
 
49
+ if( empty($all_options) ) {
50
  return;
51
  }
52
 
53
  $allow_print_data = false;
54
  $formated_options = [];
55
 
56
+ foreach($all_options as $option) {
57
+ if( !$allow_print_data && isset($_GET['page']) && $option['page_id'] === $_GET['page'] ) {
58
  $allow_print_data = true;
59
  }
60
 
61
  $formated_options[] = [
62
  'value' => $option['title'],
63
+ 'data' => [
64
  //'hint' => isset($option['hint']) ? $option['hint'] : '',
65
  'page_url' => $option['page_url'],
66
+ 'page_id' => $option['page_id']
67
  ]
68
  ];
69
  }
70
 
71
+ if( !$allow_print_data ) {
72
  return;
73
  }
74
 
75
+ wp_localize_script('wbcr-factory-clearfy-230-global', 'wfactory_clearfy_search_options', $formated_options);
76
+ });
77
 
78
+ if( defined('FACTORY_PAGES_438_LOADED') ) {
79
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-pages.php');
80
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-page-more-features.php');
81
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-page-license.php');
82
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-pages-components.php');
83
+
84
+ require(FACTORY_CLEARFY_230_DIR . '/pages/setup-parts/class-step.php');
85
+ require(FACTORY_CLEARFY_230_DIR . '/pages/setup-parts/class-step-form.php');
86
+ require(FACTORY_CLEARFY_230_DIR . '/pages/setup-parts/class-step-custom.php');
87
+ require(FACTORY_CLEARFY_230_DIR . '/pages/class-page-setup.php');
88
  }
89
  }
libs/factory/clearfy/includes/ajax-handlers.php CHANGED
@@ -17,10 +17,10 @@ if ( ! defined( 'ABSPATH' ) ) {
17
  *
18
  * @since 2.0.7
19
  *
20
- * @param Wbcr_Factory432_Plugin $plugin_instance
21
  *
22
  */
23
- function wbcr_factory_clearfy_224_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_224_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_224' ) ] );
38
  die();
39
  }
40
 
@@ -45,23 +45,23 @@ function wbcr_factory_clearfy_224_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_224' ) ] );
49
  } else {
50
  $plugin_instance->premium->activate( $license_key );
51
- $success_message = __( 'Your license has been successfully activated', 'wbcr_factory_clearfy_224' );
52
  }
53
  break;
54
  case 'deactivate':
55
  $plugin_instance->premium->deactivate();
56
- $success_message = __( 'The license is deactivated', 'wbcr_factory_clearfy_224' );
57
  break;
58
  case 'sync':
59
  $plugin_instance->premium->sync();
60
- $success_message = __( 'The license has been updated', 'wbcr_factory_clearfy_224' );
61
  break;
62
  case 'unsubscribe':
63
  $plugin_instance->premium->cancel_paid_subscription();
64
- $success_message = __( 'Subscription success cancelled', 'wbcr_factory_clearfy_224' );
65
  break;
66
  }
67
  } catch( Exception $e ) {
17
  *
18
  * @since 2.0.7
19
  *
20
+ * @param Wbcr_Factory439_Plugin $plugin_instance
21
  *
22
  */
23
+ function wbcr_factory_clearfy_230_check_license( $plugin_instance ) {
24
 
25
  $plugin_name = $plugin_instance->request->post( 'plugin_name', null, true );
26
 
34
  check_admin_referer( "clearfy_activate_license_for_{$plugin_name}" );
35
 
36
  if ( empty( $action ) || ! in_array( $action, [ 'activate', 'deactivate', 'sync', 'unsubscribe' ] ) ) {
37
+ wp_send_json_error( [ 'error_message' => __( 'Licensing action not passed or this action is prohibited!', 'wbcr_factory_clearfy_230' ) ] );
38
  die();
39
  }
40
 
45
  switch ( $action ) {
46
  case 'activate':
47
  if ( empty( $license_key ) || strlen( $license_key ) > 32 ) {
48
+ wp_send_json_error( [ 'error_message' => __( 'License key is empty or license key too long (license key is 32 characters long)', 'wbcr_factory_clearfy_230' ) ] );
49
  } else {
50
  $plugin_instance->premium->activate( $license_key );
51
+ $success_message = __( 'Your license has been successfully activated', 'wbcr_factory_clearfy_230' );
52
  }
53
  break;
54
  case 'deactivate':
55
  $plugin_instance->premium->deactivate();
56
+ $success_message = __( 'The license is deactivated', 'wbcr_factory_clearfy_230' );
57
  break;
58
  case 'sync':
59
  $plugin_instance->premium->sync();
60
+ $success_message = __( 'The license has been updated', 'wbcr_factory_clearfy_230' );
61
  break;
62
  case 'unsubscribe':
63
  $plugin_instance->premium->cancel_paid_subscription();
64
+ $success_message = __( 'Subscription success cancelled', 'wbcr_factory_clearfy_230' );
65
  break;
66
  }
67
  } catch( Exception $e ) {
libs/factory/clearfy/includes/class-configurate.php CHANGED
@@ -13,12 +13,12 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  * @copyright (c) 2018, Webcraftic Ltd
14
  *
15
  */
16
- abstract class Wbcr_FactoryClearfy224_Configurate {
17
 
18
  /**
19
- * @param Wbcr_Factory432_Plugin $plugin
20
  */
21
- public function __construct( Wbcr_Factory432_Plugin $plugin ) {
22
  $this->plugin = $plugin;
23
  $this->registerActionsAndFilters();
24
  }
13
  * @copyright (c) 2018, Webcraftic Ltd
14
  *
15
  */
16
+ abstract class Wbcr_FactoryClearfy230_Configurate {
17
 
18
  /**
19
+ * @param Wbcr_Factory439_Plugin $plugin
20
  */
21
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
22
  $this->plugin = $plugin;
23
  $this->registerActionsAndFilters();
24
  }
libs/factory/clearfy/includes/class-helpers.php CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  * @copyright (c) 2018, Webcraftic Ltd
15
  *
16
  */
17
- class WbcrFactoryClearfy224_Helpers {
18
 
19
  /**
20
  * Recursive sanitation for an array
14
  * @copyright (c) 2018, Webcraftic Ltd
15
  *
16
  */
17
+ class WbcrFactoryClearfy230_Helpers {
18
 
19
  /**
20
  * Recursive sanitation for an array
libs/factory/clearfy/includes/class-search-options.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_Clearfy_224;
4
 
5
  /**
6
  * Class Search options
1
  <?php
2
 
3
+ namespace WBCR\Factory_Clearfy_230;
4
 
5
  /**
6
  * Class Search options
libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.mo DELETED
Binary file
libs/factory/clearfy/langs/wbcr_factory_clearfy_224-ru_RU.po DELETED
@@ -1,307 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: clearfy\n"
4
- "POT-Creation-Date: 2018-10-16 22:37+0300\n"
5
- "PO-Revision-Date: 2018-10-16 22:41+0300\n"
6
- "Last-Translator: alex.kovalevv@gmail.com <alex.kovalevv@gmail.com>\n"
7
- "Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\n"
8
- "Language: ru_RU\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.1.1\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
- "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
- "X-Poedit-SearchPath-0: .\n"
19
-
20
- #: includes/check-clearfy-compatibility.php:265
21
- msgid "Clearfy warning"
22
- msgstr "Clearfy предупреждение"
23
-
24
- #: includes/check-clearfy-compatibility.php:266
25
- #, php-format
26
- msgid "The %s component"
27
- msgstr "Работа компонента %s"
28
-
29
- #: includes/check-clearfy-compatibility.php:268
30
- msgid "warning"
31
- msgstr "предупреждение"
32
-
33
- #: includes/check-clearfy-compatibility.php:269
34
- #, php-format
35
- msgid "The %s plugin"
36
- msgstr "Работа плагина %s"
37
-
38
- #: includes/check-clearfy-compatibility.php:272
39
- msgid "has stopped."
40
- msgstr "была остановлена."
41
-
42
- #: includes/check-clearfy-compatibility.php:273
43
- msgid "Possible reasons:"
44
- msgstr "Возможные причины:"
45
-
46
- #: includes/check-clearfy-compatibility.php:279
47
- #, php-format
48
- msgid "You need to update the PHP version to %s or higher!"
49
- msgstr "Вам нужно обновить версию PHP до %s или выше!"
50
-
51
- #: includes/check-clearfy-compatibility.php:284
52
- #, php-format
53
- msgid "You need to update WordPress to %s or higher!"
54
- msgstr "Вам нужно обновить WordPress до %s или выше!"
55
-
56
- #: includes/check-clearfy-compatibility.php:289
57
- #, php-format
58
- msgid "You need to update the Clearfy plugin version to %s or higher!"
59
- msgstr "Вам нужно обновить версию плагина Clearfy до %s или выше!"
60
-
61
- #: includes/check-clearfy-compatibility.php:294
62
- msgid "This plugin is already activated, you are trying to activate it again."
63
- msgstr "Этот плагин уже активирован, вы пытаетесь активировать его снова."
64
-
65
- #: includes/check-clearfy-compatibility.php:299
66
- #, php-format
67
- msgid ""
68
- "Clearfy has the features of the %s plugin. Please, deactivate %s to avoid "
69
- "conflicts of plugins!"
70
- msgstr ""
71
- "Плагин Clearfy уже включает в себя функции плагина %s. Пожалуйста, "
72
- "деактивируйте плагин %s, чтобы не создавать конфликтов!"
73
-
74
- #: pages/class.pages.php:212
75
- msgid "Upgrade to Clearfy Business"
76
- msgstr "Перейти на Clearfy Бизнес"
77
-
78
- #: pages/class.pages.php:213
79
- msgid "Oops... Sorry for the inconvenience caused!"
80
- msgstr "Упс... Мы приносим свои извинения за неудобства!"
81
-
82
- #: pages/class.pages.php:214
83
- msgid ""
84
- "Complete multisite support is available in Clearfy Business and Clearfy "
85
- "Business Revolution packages only!"
86
- msgstr ""
87
- "Полная поддержка мультисайтов доступна только в пакете Clearfy Бизнес и "
88
- "Clearfy Бизнес Революция!"
89
-
90
- #: pages/class.pages.php:215
91
- msgid ""
92
- "You can activate the plugin on each website and use it with zero "
93
- "limitations. But you can’t save the plugin’s settings under the Super "
94
- "Administrator role!"
95
- msgstr ""
96
- "Вы можете активировать плагин отдельно для каждого сайта и использовать его "
97
- "без ограничений, но в режиме суперадминистратора, вы не можете сохранять "
98
- "настройки плагина!"
99
-
100
- #: pages/class.pages.php:217
101
- msgid "Activate license "
102
- msgstr "Активировать лицензию "
103
-
104
- #: pages/class.pages.php:218
105
- #, php-format
106
- msgid "Upgrade to Clearfy Business for $%d"
107
- msgstr "Обновить до Clearfy Бизнес за $%d"
108
-
109
- #: pages/class.pages.php:273
110
- msgid "MORE IN CLEARFY <span>BUSINESS</span>"
111
- msgstr "ЛУЧШЕЕ В CLEARFY <span>БИЗНЕС</span>"
112
-
113
- #: pages/class.pages.php:275
114
- msgid "4 premium components now;"
115
- msgstr "4 премиум компонента сейчас;"
116
-
117
- #: pages/class.pages.php:276
118
- msgid "40 new premium components within a year for the single price;"
119
- msgstr "40 новых премиум компонентов в год по одной цене;"
120
-
121
- #: pages/class.pages.php:277
122
- msgid "Multisite support;"
123
- msgstr "Поддержка мультисайтов;"
124
-
125
- #: pages/class.pages.php:278
126
- msgid "Advanced settings;"
127
- msgstr "Дополнительные настройки;"
128
-
129
- #: pages/class.pages.php:279
130
- msgid "No ads;"
131
- msgstr "Нет рекламы;"
132
-
133
- #: pages/class.pages.php:280
134
- msgid "Perfect support."
135
- msgstr "Лучшая поддержка."
136
-
137
- #: pages/class.pages.php:283
138
- #, php-format
139
- msgid "Upgrade for $%s"
140
- msgstr "Обновиться за $%s"
141
-
142
- #: pages/class.pages.php:299
143
- msgid ""
144
- "A neutral setting that can not harm your site, but you must be sure that you "
145
- "need to use it."
146
- msgstr ""
147
- "Нейтральная настройка, которая не может нанести вред вашему сайту, но вы "
148
- "должны быть уверены, что вам нужно ее использовать."
149
-
150
- #: pages/class.pages.php:305
151
- msgid ""
152
- "When set this option, you must be careful. Plugins and themes may depend on "
153
- "this function. You must be sure that you can disable this feature for the "
154
- "site."
155
- msgstr ""
156
- "При включении этой настройки, вы должны быть осторожны. Некоторые плагины и "
157
- "темы могут зависеть от этой функции. Вы должны быть уверены, что эту функцию "
158
- "можно отключить для сайта."
159
-
160
- #: pages/class.pages.php:311
161
- msgid "Absolutely safe setting, We recommend to use."
162
- msgstr "Абсолютно безопасная настройка, рекомендуем использовать."
163
-
164
- #: pages/class.pages.php:316
165
- msgid "Hover to the icon to get help for the feature you selected."
166
- msgstr ""
167
- "Наведите указатель мыши на значок, чтобы получить справку по выбранной "
168
- "функции."
169
-
170
- #: pages/class.pages.php:334
171
- msgid "Do you want the plugin to improved and update?"
172
- msgstr "Вы хотите, чтобы плагин улучшался и обновлялся?"
173
-
174
- #: pages/class.pages.php:337
175
- msgid ""
176
- "Help the author, leave a review on wordpress.org. Thanks to feedback, I will "
177
- "know that the plugin is really useful to you and is needed."
178
- msgstr ""
179
- "Помогите автору, оставьте отзыв на wordpress.org. Благодаря отзывам, я буду "
180
- "знать, что плагин действительно полезен для вас и необходим."
181
-
182
- #: pages/class.pages.php:339
183
- msgid "And also write your ideas on how to extend or improve the plugin."
184
- msgstr "А также напишите свои идеи о том, как расширить или улучшить плагин."
185
-
186
- #: pages/class.pages.php:344
187
- msgid "Go rate us and push ideas"
188
- msgstr "Оставить отзыв или поделиться идеей"
189
-
190
- #: pages/class.pages.php:356
191
- msgid "Donation for plugin development"
192
- msgstr "Пожертвования на развитие плагина"
193
-
194
- #: pages/more-features.php:31
195
- msgid "More features (<b>free</b>)"
196
- msgstr "Дополнительно"
197
-
198
- #: pages/more-features.php:40
199
- msgid "install the ultimate version of the plugin for free!"
200
- msgstr "установите полную версию плагина бесплатно!"
201
-
202
- #: pages/more-features.php:51
203
- msgid "Code cleaning"
204
- msgstr "Очищает код"
205
-
206
- #: pages/more-features.php:53
207
- msgid "Clears the source code of the page from unused code."
208
- msgstr "Очищает исходный код страницы от неиспользуемого кода."
209
-
210
- #: pages/more-features.php:60
211
- msgid "Improve SEO"
212
- msgstr "Улучшает SEO"
213
-
214
- #: pages/more-features.php:62
215
- msgid ""
216
- "Removes duplicate pages, closes external links, changes the headers of the "
217
- "server."
218
- msgstr ""
219
- "Удаляет дубликаты страниц, закрывает внешние ссылки, изменяет заголовки "
220
- "сервера."
221
-
222
- #: pages/more-features.php:69
223
- msgid "Site protection"
224
- msgstr "Защита сайта"
225
-
226
- #: pages/more-features.php:71
227
- msgid "Enables and disables features that improve the protection of your site."
228
- msgstr "Включает и отключает функции, которые улучшают защиту вашего сайта."
229
-
230
- #: pages/more-features.php:78
231
- msgid "Disable comments"
232
- msgstr "Отключает комментарии"
233
-
234
- #: pages/more-features.php:80
235
- msgid "Disables comments on the entire site or on specific pages."
236
- msgstr "Отключает комментарии на всем сайте или у определенных страниц."
237
-
238
- #: pages/more-features.php:87
239
- msgid "Manage updates"
240
- msgstr "Менеджер обновлений"
241
-
242
- #: pages/more-features.php:89
243
- msgid ""
244
- "Enables or disables automatically updates for plugins, themes and core. It "
245
- "is also possible\n"
246
- "\t\t\t\t\t\t\tto disable all updates."
247
- msgstr ""
248
- "Включает или отключает автоматические обновление плагинов, тем и ядра. Также "
249
- "возможно\n"
250
- "отключение всех обновлений."
251
-
252
- #: pages/more-features.php:97
253
- msgid "Manage widgets"
254
- msgstr "Управление виджетами"
255
-
256
- #: pages/more-features.php:99
257
- msgid "Allows you to remove unused widgets."
258
- msgstr "Позволяет удалить неиспользуемые виджеты."
259
-
260
- #: pages/more-features.php:106
261
- msgid "Speed Optimization"
262
- msgstr "Оптимизация производительности"
263
-
264
- #: pages/more-features.php:108
265
- msgid ""
266
- "Increases performance by disabling unused functions and reducing the number "
267
- "of requests."
268
- msgstr ""
269
- "Повышает производительность, отключая неиспользуемые функции и уменьшая "
270
- "количество запросов."
271
-
272
- #: pages/more-features.php:115
273
- msgid "Site privacy"
274
- msgstr "Конфиденциальность сайта"
275
-
276
- #: pages/more-features.php:117
277
- msgid ""
278
- "Allows you to hide the version of the site and plugins. Allows you to hide "
279
- "your\n"
280
- "\t\t\t\t\t\t\tWordPress."
281
- msgstr ""
282
- "Позволяет скрыть версию сайта и плагинов. Позволяет скрыть ваш\n"
283
- "WordPress."
284
-
285
- #: pages/more-features.php:125
286
- msgid "Easy setup"
287
- msgstr "Простая настройка"
288
-
289
- #: pages/more-features.php:127
290
- msgid ""
291
- "In quick mode, you can easily configure the plugin according to your needs."
292
- msgstr ""
293
- "В быстром режиме вы можете легко настроить плагин в соответствии с вашими "
294
- "потребностями."
295
-
296
- #: pages/more-features.php:142
297
- msgid "Get the ultimate plugin 100% FREE"
298
- msgstr "Получить полную версию бесплатно на 100%."
299
-
300
- #~ msgid "component"
301
- #~ msgstr "компонент"
302
-
303
- #~ msgid "plugin"
304
- #~ msgstr "плагин"
305
-
306
- #~ msgid "Site ptotection"
307
- #~ msgstr "Защищает ваш сайт"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/clearfy/langs/{wbcr_factory_clearfy_223-ru_RU.mo → wbcr_factory_clearfy_230-ru_RU.mo} RENAMED
File without changes
libs/factory/clearfy/langs/{wbcr_factory_clearfy_223-ru_RU.po → wbcr_factory_clearfy_230-ru_RU.po} RENAMED
File without changes
libs/factory/clearfy/pages/class-page-license.php CHANGED
@@ -11,7 +11,7 @@ if( !defined('ABSPATH') ) {
11
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
12
  * @since 2.0.7
13
  */
14
- class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase {
15
 
16
  /**
17
  * {@inheritdoc}
@@ -80,7 +80,7 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
80
 
81
  /**
82
  * @since 2.0.7
83
- * @var \WBCR\Factory_432\Premium\Provider
84
  */
85
  protected $premium;
86
 
@@ -98,7 +98,7 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
98
 
99
  /**
100
  * @since 2.0.7
101
- * @var \WBCR\Factory_432\Premium\Interfaces\License
102
  */
103
  protected $premium_license;
104
 
@@ -107,9 +107,9 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
107
 
108
  /**
109
  * {@inheritdoc}
110
- * @param Wbcr_Factory432_Plugin $plugin
111
  */
112
- public function __construct(Wbcr_Factory432_Plugin $plugin)
113
  {
114
  $this->plugin = $plugin;
115
 
@@ -136,8 +136,8 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
136
  {
137
  parent::assets($scripts, $styles);
138
 
139
- $this->styles->add(FACTORY_CLEARFY_224_URL . '/assets/css/license-manager.css');
140
- $this->scripts->add(FACTORY_CLEARFY_224_URL . '/assets/js/license-manager.js');
141
  }
142
 
143
  /**
@@ -147,7 +147,7 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
147
  */
148
  public function ajax_handler()
149
  {
150
- wbcr_factory_clearfy_224_check_license($this->plugin);
151
  }
152
 
153
  /**
@@ -157,7 +157,7 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
157
  {
158
  ?>
159
  <div id="wcl-license-wrapper"
160
- data-loader="<?php echo FACTORY_CLEARFY_224_URL . '/assets/img/loader.gif'; ?>"
161
  data-plugin-name="<?php echo esc_attr($this->plugin_name); ?>"
162
  data-nonce="<?php echo wp_create_nonce("clearfy_activate_license_for_{$this->plugin_name}") ?>">
163
  <?php $this->show_license_form(); ?>
@@ -263,11 +263,11 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
263
  if( $this->is_premium ):
264
  ?>
265
  <p style="margin-top: 10px;">
266
- <?php printf(__('<a href="%s" target="_blank" rel="noopener">Lean more</a> about the premium version and get the license key to activate it now!', 'wbcr_factory_clearfy_224'), $this->plugin->get_support()->get_pricing_url(true, 'license_page')); ?>
267
  </p>
268
  <?php else: ?>
269
  <p style="margin-top: 10px;">
270
- <?php printf(__('Can’t find your key? Go to <a href="%s" target="_blank" rel="noopener">this page</a> and login using the e-mail address associated with your purchase.', 'wbcr_factory_clearfy_224'), $this->plugin->get_support()->get_contacts_url(true, 'license_page')) ?>
271
  </p>
272
  <?php endif;
273
  }
@@ -279,16 +279,16 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
279
  {
280
  ?>
281
  <div id="license-manager"
282
- class="factory-bootstrap-433 onp-page-wrap <?= $this->get_license_type() ?>-license-manager-content">
283
  <div>
284
- <h3><?php printf(__('Activate %s', 'wbcr_factory_clearfy_224'), $this->plan_name) ?></h3>
285
  <?php echo $this->get_plan_description() ?>
286
  </div>
287
  <br>
288
  <?php if( is_wp_error($notice) ) : ?>
289
  <div class="license-message <?= $this->get_license_type() ?>-license-message">
290
  <div class="alert <?php echo esc_attr($notice->get_error_code()); ?>">
291
- <h4 class="alert-heading"><?php _e($notice->get_error_message(), 'wbcr_factory_clearfy_224') ?></h4>
292
  </div>
293
  </div>
294
  <?php endif; ?>
@@ -298,20 +298,20 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
298
  <a href="<?php echo $this->plugin->get_support()->get_pricing_url(true, 'license_page'); ?>"
299
  class="purchase-premium" target="_blank" rel="noopener">
300
  <span class="btn btn-gold btn-inner-wrap">
301
- <?php _e('Upgrade to Premium', 'wbcr_factory_clearfy_224') ?>
302
  </span>
303
  </a>
304
- <p><?php printf(__('Your current license for %1$s:', 'wbcr_factory_clearfy_224'), $this->plugin->getPluginTitle()) ?></p>
305
  <?php endif; ?>
306
  <div class="license-details-block <?= $this->get_license_type() ?>-details-block">
307
  <?php if( $this->is_premium ): ?>
308
  <a data-action="deactivate" href="#"
309
  class="btn btn-default btn-small license-delete-button wcl-control-btn">
310
- <?php _e('Delete Key', 'wbcr_factory_clearfy_224') ?>
311
  </a>
312
  <a data-action="sync" href="#"
313
  class="btn btn-default btn-small license-synchronization-button wcl-control-btn">
314
- <?php _e('Synchronization', 'wbcr_factory_clearfy_224') ?>
315
  </a>
316
  <?php endif; ?>
317
  <h3>
@@ -330,19 +330,19 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
330
  <?php endif; ?>
331
  <div class="license-key-description">
332
  <?php if( !$this->is_premium ): ?>
333
- <p><?php _e('Public License is a GPLv3 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'wbcr_factory_clearfy_224') ?></p>
334
  <?php else: ?>
335
- <p><?php _e('Сommercial license, only to the premium add-on to this free plugin. You cannot distribute or modify the premium add-on. But free plugin is a GPLv3 compatible license allowing you to change and use this version of the plugin for free.', 'wbcr_factory_clearfy_224') ?></p>
336
  <?php endif; ?>
337
  <?php if( $this->is_premium && $this->premium_has_subscription ): ?>
338
  <p class="activate-trial-hint">
339
- <?php _e('You use a paid subscription for the plugin updates. In case you don’t want to receive paid updates, please, click <a data-action="unsubscribe" class="wcl-control-btn" href="#">cancel subscription</a>', 'wbcr_factory_clearfy_224') ?>
340
  </p>
341
  <?php endif; ?>
342
 
343
  <?php if( $this->get_license_type() == 'trial' ): ?>
344
  <p class="activate-error-hint">
345
- <?php printf(__('Your license has expired, please extend the license to get updates and support.', 'wbcr_factory_clearfy_224'), '') ?>
346
  </p>
347
  <?php endif; ?>
348
  </div>
@@ -350,19 +350,19 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
350
  <tr>
351
  <!--<td class="license-param license-param-domain">
352
  <span class="license-value"><?php echo esc_attr($_SERVER['SERVER_NAME']); ?></span>
353
- <span class="license-value-name"><?php _e('domain', 'wbcr_factory_clearfy_224') ?></span>
354
  </td>-->
355
  <td class="license-param license-param-days">
356
  <span class="license-value"><?= $this->get_plan() ?></span>
357
- <span class="license-value-name"><?php _e('plan', 'wbcr_factory_clearfy_224') ?></span>
358
  </td>
359
  <?php if( $this->is_premium ) : ?>
360
  <td class="license-param license-param-sites">
361
  <span class="license-value">
362
  <?php echo esc_attr($this->premium_license->get_count_active_sites()); ?>
363
- <?php _e('of', 'wbcr_factory_clearfy_224') ?>
364
  <?php echo esc_attr($this->premium_license->get_sites_quota()); ?></span>
365
- <span class="license-value-name"><?php _e('active sites', 'wbcr_factory_clearfy_224') ?></span>
366
  </td>
367
  <?php endif; ?>
368
  <td class="license-param license-param-version">
@@ -372,8 +372,8 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
372
  <?php if( $this->is_premium ): ?>
373
  <td class="license-param license-param-days">
374
  <?php if( $this->get_license_type() == 'trial' ): ?>
375
- <span class="license-value"><?php _e('EXPIRED!', 'wbcr_factory_clearfy_224') ?></span>
376
- <span class="license-value-name"><?php _e('please update the key', 'wbcr_factory_clearfy_224') ?></span>
377
  <?php else: ?>
378
  <span class="license-value">
379
  <?php
@@ -383,9 +383,9 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
383
  echo $this->get_expiration_days();
384
  }
385
  ?>
386
- <small> <?php _e('day(s)', 'wbcr_factory_clearfy_224') ?></small>
387
  </span>
388
- <span class="license-value-name"><?php _e('remained', 'wbcr_factory_clearfy_224') ?></span>
389
  <?php endif; ?>
390
  </td>
391
  <?php endif; ?>
@@ -396,14 +396,14 @@ class Wbcr_FactoryClearfy224_LicensePage extends Wbcr_FactoryClearfy224_PageBase
396
  <div class="license-input">
397
  <form action="" method="post">
398
  <?php if($this->is_premium): ?>
399
- <p><?php _e('Have a key to activate the premium version? Paste it here:', 'wbcr_factory_clearfy_224') ?><p>
400
  <?php else: ?>
401
- <p><?php _e('Have a key to activate the plugin? Paste it here:', 'wbcr_factory_clearfy_224') ?>
402
  <p>
403
  <?php endif; ?>
404
  <button data-action="activate" class="btn btn-default wcl-control-btn" type="button"
405
  id="license-submit">
406
- <?php _e('Submit Key', 'wbcr_factory_clearfy_224') ?>
407
  </button>
408
  <div class="license-key-wrap">
409
  <input type="text" id="license-key" name="licensekey" value="" class="form-control"/>
11
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
12
  * @since 2.0.7
13
  */
14
+ class Wbcr_FactoryClearfy230_LicensePage extends Wbcr_FactoryClearfy230_PageBase {
15
 
16
  /**
17
  * {@inheritdoc}
80
 
81
  /**
82
  * @since 2.0.7
83
+ * @var \WBCR\Factory_439\Premium\Provider
84
  */
85
  protected $premium;
86
 
98
 
99
  /**
100
  * @since 2.0.7
101
+ * @var \WBCR\Factory_439\Premium\Interfaces\License
102
  */
103
  protected $premium_license;
104
 
107
 
108
  /**
109
  * {@inheritdoc}
110
+ * @param Wbcr_Factory439_Plugin $plugin
111
  */
112
+ public function __construct(Wbcr_Factory439_Plugin $plugin)
113
  {
114
  $this->plugin = $plugin;
115
 
136
  {
137
  parent::assets($scripts, $styles);
138
 
139
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/license-manager.css');
140
+ $this->scripts->add(FACTORY_CLEARFY_230_URL . '/assets/js/clearfy-license-manager.js');
141
  }
142
 
143
  /**
147
  */
148
  public function ajax_handler()
149
  {
150
+ wbcr_factory_clearfy_230_check_license($this->plugin);
151
  }
152
 
153
  /**
157
  {
158
  ?>
159
  <div id="wcl-license-wrapper"
160
+ data-loader="<?php echo FACTORY_CLEARFY_230_URL . '/assets/img/loader.gif'; ?>"
161
  data-plugin-name="<?php echo esc_attr($this->plugin_name); ?>"
162
  data-nonce="<?php echo wp_create_nonce("clearfy_activate_license_for_{$this->plugin_name}") ?>">
163
  <?php $this->show_license_form(); ?>
263
  if( $this->is_premium ):
264
  ?>
265
  <p style="margin-top: 10px;">
266
+ <?php printf(__('<a href="%s" target="_blank" rel="noopener">Lean more</a> about the premium version and get the license key to activate it now!', 'wbcr_factory_clearfy_230'), $this->plugin->get_support()->get_pricing_url(true, 'license_page')); ?>
267
  </p>
268
  <?php else: ?>
269
  <p style="margin-top: 10px;">
270
+ <?php printf(__('Can’t find your key? Go to <a href="%s" target="_blank" rel="noopener">this page</a> and login using the e-mail address associated with your purchase.', 'wbcr_factory_clearfy_230'), $this->plugin->get_support()->get_contacts_url(true, 'license_page')) ?>
271
  </p>
272
  <?php endif;
273
  }
279
  {
280
  ?>
281
  <div id="license-manager"
282
+ class="factory-bootstrap-439 onp-page-wrap <?= $this->get_license_type() ?>-license-manager-content">
283
  <div>
284
+ <h3><?php printf(__('Activate %s', 'wbcr_factory_clearfy_230'), $this->plan_name) ?></h3>
285
  <?php echo $this->get_plan_description() ?>
286
  </div>
287
  <br>
288
  <?php if( is_wp_error($notice) ) : ?>
289
  <div class="license-message <?= $this->get_license_type() ?>-license-message">
290
  <div class="alert <?php echo esc_attr($notice->get_error_code()); ?>">
291
+ <h4 class="alert-heading"><?php _e($notice->get_error_message(), 'wbcr_factory_clearfy_230') ?></h4>
292
  </div>
293
  </div>
294
  <?php endif; ?>
298
  <a href="<?php echo $this->plugin->get_support()->get_pricing_url(true, 'license_page'); ?>"
299
  class="purchase-premium" target="_blank" rel="noopener">
300
  <span class="btn btn-gold btn-inner-wrap">
301
+ <?php _e('Upgrade to Premium', 'wbcr_factory_clearfy_230') ?>
302
  </span>
303
  </a>
304
+ <p><?php printf(__('Your current license for %1$s:', 'wbcr_factory_clearfy_230'), $this->plugin->getPluginTitle()) ?></p>
305
  <?php endif; ?>
306
  <div class="license-details-block <?= $this->get_license_type() ?>-details-block">
307
  <?php if( $this->is_premium ): ?>
308
  <a data-action="deactivate" href="#"
309
  class="btn btn-default btn-small license-delete-button wcl-control-btn">
310
+ <?php _e('Delete Key', 'wbcr_factory_clearfy_230') ?>
311
  </a>
312
  <a data-action="sync" href="#"
313
  class="btn btn-default btn-small license-synchronization-button wcl-control-btn">
314
+ <?php _e('Synchronization', 'wbcr_factory_clearfy_230') ?>
315
  </a>
316
  <?php endif; ?>
317
  <h3>
330
  <?php endif; ?>
331
  <div class="license-key-description">
332
  <?php if( !$this->is_premium ): ?>
333
+ <p><?php _e('Public License is a GPLv3 compatible license allowing you to change and use this version of the plugin for free. Please keep in mind this license covers only free edition of the plugin. Premium versions are distributed with other type of a license.', 'wbcr_factory_clearfy_230') ?></p>
334
  <?php else: ?>
335
+ <p><?php _e('Сommercial license, only to the premium add-on to this free plugin. You cannot distribute or modify the premium add-on. But free plugin is a GPLv3 compatible license allowing you to change and use this version of the plugin for free.', 'wbcr_factory_clearfy_230') ?></p>
336
  <?php endif; ?>
337
  <?php if( $this->is_premium && $this->premium_has_subscription ): ?>
338
  <p class="activate-trial-hint">
339
+ <?php _e('You use a paid subscription for the plugin updates. In case you don’t want to receive paid updates, please, click <a data-action="unsubscribe" class="wcl-control-btn" href="#">cancel subscription</a>', 'wbcr_factory_clearfy_230') ?>
340
  </p>
341
  <?php endif; ?>
342
 
343
  <?php if( $this->get_license_type() == 'trial' ): ?>
344
  <p class="activate-error-hint">
345
+ <?php printf(__('Your license has expired, please extend the license to get updates and support.', 'wbcr_factory_clearfy_230'), '') ?>
346
  </p>
347
  <?php endif; ?>
348
  </div>
350
  <tr>
351
  <!--<td class="license-param license-param-domain">
352
  <span class="license-value"><?php echo esc_attr($_SERVER['SERVER_NAME']); ?></span>
353
+ <span class="license-value-name"><?php _e('domain', 'wbcr_factory_clearfy_230') ?></span>
354
  </td>-->
355
  <td class="license-param license-param-days">
356
  <span class="license-value"><?= $this->get_plan() ?></span>
357
+ <span class="license-value-name"><?php _e('plan', 'wbcr_factory_clearfy_230') ?></span>
358
  </td>
359
  <?php if( $this->is_premium ) : ?>
360
  <td class="license-param license-param-sites">
361
  <span class="license-value">
362
  <?php echo esc_attr($this->premium_license->get_count_active_sites()); ?>
363
+ <?php _e('of', 'wbcr_factory_clearfy_230') ?>
364
  <?php echo esc_attr($this->premium_license->get_sites_quota()); ?></span>
365
+ <span class="license-value-name"><?php _e('active sites', 'wbcr_factory_clearfy_230') ?></span>
366
  </td>
367
  <?php endif; ?>
368
  <td class="license-param license-param-version">
372
  <?php if( $this->is_premium ): ?>
373
  <td class="license-param license-param-days">
374
  <?php if( $this->get_license_type() == 'trial' ): ?>
375
+ <span class="license-value"><?php _e('EXPIRED!', 'wbcr_factory_clearfy_230') ?></span>
376
+ <span class="license-value-name"><?php _e('please update the key', 'wbcr_factory_clearfy_230') ?></span>
377
  <?php else: ?>
378
  <span class="license-value">
379
  <?php
383
  echo $this->get_expiration_days();
384
  }
385
  ?>
386
+ <small> <?php _e('day(s)', 'wbcr_factory_clearfy_230') ?></small>
387
  </span>
388
+ <span class="license-value-name"><?php _e('remained', 'wbcr_factory_clearfy_230') ?></span>
389
  <?php endif; ?>
390
  </td>
391
  <?php endif; ?>
396
  <div class="license-input">
397
  <form action="" method="post">
398
  <?php if($this->is_premium): ?>
399
+ <p><?php _e('Have a key to activate the premium version? Paste it here:', 'wbcr_factory_clearfy_230') ?><p>
400
  <?php else: ?>
401
+ <p><?php _e('Have a key to activate the plugin? Paste it here:', 'wbcr_factory_clearfy_230') ?>
402
  <p>
403
  <?php endif; ?>
404
  <button data-action="activate" class="btn btn-default wcl-control-btn" type="button"
405
  id="license-submit">
406
+ <?php _e('Submit Key', 'wbcr_factory_clearfy_230') ?>
407
  </button>
408
  <div class="license-key-wrap">
409
  <input type="text" id="license-key" name="licensekey" value="" class="form-control"/>
libs/factory/clearfy/pages/class-page-more-features.php CHANGED
@@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) {
15
  }
16
 
17
 
18
- class Wbcr_FactoryClearfy224_MoreFeaturesPage extends Wbcr_FactoryPages432_ImpressiveThemplate {
19
 
20
  /**
21
  * {@inheritDoc}
@@ -60,8 +60,8 @@ class Wbcr_FactoryClearfy224_MoreFeaturesPage extends Wbcr_FactoryPages432_Impre
60
  */
61
  public $internal = true;
62
 
63
- public function __construct( Wbcr_Factory432_Plugin $plugin ) {
64
- $this->menu_title = __( 'More features (<b>free</b>)', 'wbcr_factory_clearfy_224' );
65
 
66
  parent::__construct( $plugin );
67
 
@@ -74,7 +74,7 @@ class Wbcr_FactoryClearfy224_MoreFeaturesPage extends Wbcr_FactoryPages432_Impre
74
  * @return string
75
  */
76
  public function getPageTitle() {
77
- return __( 'More features', 'wbcr_factory_clearfy_224' );
78
  }
79
 
80
  /**
@@ -88,66 +88,66 @@ class Wbcr_FactoryClearfy224_MoreFeaturesPage extends Wbcr_FactoryPages432_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_224' ) ?></h3>
92
- <p><?php _e( 'Clears the source code of the page from unused code.', 'wbcr_factory_clearfy_224' ) ?></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_224' ) ?></h3>
99
- <p><?php _e( 'Removes duplicate pages, closes external links, changes the headers of the server.', 'wbcr_factory_clearfy_224' ) ?></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_224' ) ?></h3>
106
- <p><?php _e( 'Enables and disables features that improve the protection of your site.', 'wbcr_factory_clearfy_224' ) ?></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_224' ) ?></h3>
113
- <p><?php _e( 'Disables comments on the entire site or on specific pages.', 'wbcr_factory_clearfy_224' ) ?></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_224' ) ?></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_224' ) ?></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_224' ) ?></h3>
128
- <p><?php _e( 'Allows you to remove unused widgets.', 'wbcr_factory_clearfy_224' ) ?></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_224' ) ?></h3>
135
- <p><?php _e( 'Increases performance by disabling unused functions and reducing the number of requests.', 'wbcr_factory_clearfy_224' ) ?></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_224' ) ?></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_224' ) ?></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_224' ) ?></h3>
150
- <p><?php _e( 'In quick mode, you can easily configure the plugin according to your needs.', 'wbcr_factory_clearfy_224' ) ?></p>
151
  </div>
152
  </div>
153
  </div>
@@ -161,7 +161,7 @@ class Wbcr_FactoryClearfy224_MoreFeaturesPage extends Wbcr_FactoryPages432_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_224' ) ?>
165
  </a>
166
  </div>
167
  <?php
15
  }
16
 
17
 
18
+ class Wbcr_FactoryClearfy230_MoreFeaturesPage extends Wbcr_FactoryPages438_ImpressiveThemplate {
19
 
20
  /**
21
  * {@inheritDoc}
60
  */
61
  public $internal = true;
62
 
63
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
64
+ $this->menu_title = __( 'More features (<b>free</b>)', 'wbcr_factory_clearfy_230' );
65
 
66
  parent::__construct( $plugin );
67
 
74
  * @return string
75
  */
76
  public function getPageTitle() {
77
+ return __( 'More features', 'wbcr_factory_clearfy_230' );
78
  }
79
 
80
  /**
88
  <div class="col-sm-4">
89
  <div class="wbcr-factory-feature-box">
90
  <span class="dashicons dashicons-yes"></span>
91
+ <h3><?php _e( 'Code cleaning', 'wbcr_factory_clearfy_230' ) ?></h3>
92
+ <p><?php _e( 'Clears the source code of the page from unused code.', 'wbcr_factory_clearfy_230' ) ?></p>
93
  </div>
94
  </div>
95
  <div class="col-sm-4">
96
  <div class="wbcr-factory-feature-box">
97
  <span class="dashicons dashicons-chart-bar"></span>
98
+ <h3><?php _e( 'Improve SEO', 'wbcr_factory_clearfy_230' ) ?></h3>
99
+ <p><?php _e( 'Removes duplicate pages, closes external links, changes the headers of the server.', 'wbcr_factory_clearfy_230' ) ?></p>
100
  </div>
101
  </div>
102
  <div class="col-sm-4">
103
  <div class="wbcr-factory-feature-box">
104
  <span class="dashicons dashicons-shield-alt"></span>
105
+ <h3><?php _e( 'Site protection', 'wbcr_factory_clearfy_230' ) ?></h3>
106
+ <p><?php _e( 'Enables and disables features that improve the protection of your site.', 'wbcr_factory_clearfy_230' ) ?></p>
107
  </div>
108
  </div>
109
  <div class="col-sm-4">
110
  <div class="wbcr-factory-feature-box">
111
  <span class="dashicons dashicons-welcome-comments"></span>
112
+ <h3><?php _e( 'Disable comments', 'wbcr_factory_clearfy_230' ) ?></h3>
113
+ <p><?php _e( 'Disables comments on the entire site or on specific pages.', 'wbcr_factory_clearfy_230' ) ?></p>
114
  </div>
115
  </div>
116
  <div class="col-sm-4">
117
  <div class="wbcr-factory-feature-box">
118
  <span class="dashicons dashicons-update"></span>
119
+ <h3><?php _e( 'Manage updates', 'wbcr_factory_clearfy_230' ) ?></h3>
120
  <p><?php _e( 'Enables or disables automatically updates for plugins, themes and core. It is also possible
121
+ to disable all updates.', 'wbcr_factory_clearfy_230' ) ?></p>
122
  </div>
123
  </div>
124
  <div class="col-sm-4">
125
  <div class="wbcr-factory-feature-box">
126
  <span class="dashicons dashicons-admin-plugins"></span>
127
+ <h3><?php _e( 'Manage widgets', 'wbcr_factory_clearfy_230' ) ?></h3>
128
+ <p><?php _e( 'Allows you to remove unused widgets.', 'wbcr_factory_clearfy_230' ) ?></p>
129
  </div>
130
  </div>
131
  <div class="col-sm-4">
132
  <div class="wbcr-factory-feature-box">
133
  <span class="dashicons dashicons-dashboard"></span>
134
+ <h3><?php _e( 'Speed Optimization', 'wbcr_factory_clearfy_230' ) ?></h3>
135
+ <p><?php _e( 'Increases performance by disabling unused functions and reducing the number of requests.', 'wbcr_factory_clearfy_230' ) ?></p>
136
  </div>
137
  </div>
138
  <div class="col-sm-4">
139
  <div class="wbcr-factory-feature-box">
140
  <span class="dashicons dashicons-visibility"></span>
141
+ <h3><?php _e( 'Site privacy', 'wbcr_factory_clearfy_230' ) ?></h3>
142
  <p><?php _e( 'Allows you to hide the version of the site and plugins. Allows you to hide your
143
+ WordPress.', 'wbcr_factory_clearfy_230' ) ?></p>
144
  </div>
145
  </div>
146
  <div class="col-sm-4">
147
  <div class="wbcr-factory-feature-box">
148
  <span class="dashicons dashicons-admin-settings"></span>
149
+ <h3><?php _e( 'Easy setup', 'wbcr_factory_clearfy_230' ) ?></h3>
150
+ <p><?php _e( 'In quick mode, you can easily configure the plugin according to your needs.', 'wbcr_factory_clearfy_230' ) ?></p>
151
  </div>
152
  </div>
153
  </div>
161
  $url .= '?utm_source=wordpress.org&utm_campaign=' . $this->plugin->getPluginName();
162
  ?>
163
  <a href="<?= $url ?>" class="wbcr-factory-premium-button" target="_blank">
164
+ <?php _e( 'Get the ultimate plugin 100% FREE', 'wbcr_factory_clearfy_230' ) ?>
165
  </a>
166
  </div>
167
  <?php
libs/factory/clearfy/pages/class-page-setup.php ADDED
@@ -0,0 +1,184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
+
5
+ // Exit if accessed directly
6
+ if( !defined('ABSPATH') ) {
7
+ exit;
8
+ }
9
+
10
+ /**
11
+ * Класс страницы, которая реализует функции мастера установки.
12
+ *
13
+ * Этот класс унаследован от стандартного шаблона страницы \Wbcr_FactoryPages438_ImpressiveThemplate,
14
+ * поэтому все его инструменты могут быть применены и в этом классе. Но вы должны учитывать, что
15
+ * поведение экшенов страницы было изменено. В данной реализации экшены используется для пагинации шагов.
16
+ *
17
+ * @package WBCR\FactoryClearfy230\Pages
18
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>, Github: https://github.com/alexkovalevv
19
+ * @since 2.2.2
20
+ */
21
+ class Setup extends \Wbcr_FactoryPages438_ImpressiveThemplate {
22
+
23
+ const DEFAULT_STEP = 'step0';
24
+
25
+ /**
26
+ * @var string
27
+ */
28
+ public $type = 'page';
29
+
30
+ /**
31
+ * {@inheritDoc}
32
+ *
33
+ * @since 2.2.2 - добавлен
34
+ * @var bool
35
+ */
36
+ public $page_parent_page = 'none';
37
+
38
+ /**
39
+ * @var string
40
+ */
41
+ public $menu_target = 'options-general.php';
42
+
43
+ /**
44
+ * {@inheritDoc}
45
+ *
46
+ * @since 2.2.2 - добавлен
47
+ * @var bool
48
+ */
49
+ public $show_right_sidebar_in_options = false;
50
+
51
+ /**
52
+ * {@inheritDoc}
53
+ *
54
+ * @since 2.2.2 - добавлен
55
+ * @var bool
56
+ */
57
+ public $available_for_multisite = false;
58
+
59
+ /**
60
+ * {@inheritDoc}
61
+ *
62
+ * @since 2.2.2 - добавлен
63
+ * @var bool
64
+ */
65
+ public $internal = true;
66
+
67
+ private $current_step = 'step0';
68
+ private $steps = [];
69
+
70
+ /**
71
+ * @param \Wbcr_Factory439_Plugin $plugin
72
+ */
73
+ public function __construct(\Wbcr_Factory439_Plugin $plugin)
74
+ {
75
+ $this->id = 'setup';
76
+
77
+ $this->menu_title = __('Setup master', 'wbcr_factory_clearfy_230');
78
+ $this->page_menu_short_description = __('Setup master', 'wbcr_factory_clearfy_230');
79
+ parent::__construct($plugin);
80
+ }
81
+
82
+ public function getPageTitle()
83
+ {
84
+ return __('Setup', 'wbcr_factory_clearfy_230');
85
+ }
86
+
87
+ public function get_close_wizard_url()
88
+ {
89
+ return $this->plugin->getPluginPageUrl('quick_start');
90
+ }
91
+
92
+ /**
93
+ * Поведение экшенов страницы было изменено. В данной реализации экшены используется для пагинации шагов.
94
+ *
95
+ * @param string $action
96
+ *
97
+ * @throws \Exception
98
+ */
99
+ public function executeByName($action)
100
+ {
101
+ $step = self::DEFAULT_STEP;
102
+
103
+ if( false !== strpos($action, 'step') && isset($this->steps[$action]) ) {
104
+ $step = $this->current_step = $action;
105
+ }
106
+
107
+ ob_start();
108
+ $this->steps[$step]->html();
109
+ $step_content = ob_get_clean();
110
+
111
+ $this->showPage($step_content);
112
+ }
113
+
114
+ /**
115
+ * Регистрируем класс обработчик шага
116
+ *
117
+ * Класс обработчик полностью отвечает за шаблон и функционально шага.
118
+ *
119
+ * @param string $path
120
+ * @param string $class_name
121
+ * @throws \Exception
122
+ */
123
+ protected function register_step($path, $class_name)
124
+ {
125
+ require_once $path;
126
+
127
+ if( !class_exists($class_name) ) {
128
+ throw new \Exception("Class {$class_name} is not found!");
129
+ }
130
+
131
+ $step = new $class_name($this);
132
+ $this->steps[$step->get_id()] = $step;
133
+ }
134
+
135
+ /**
136
+ * Requests assets (js and css) for the page.
137
+ *
138
+ * @param \Wbcr_Factory439_ScriptList $scripts
139
+ * @param \Wbcr_Factory439_StyleList $styles
140
+ *
141
+ * @return void
142
+ * @see Wbcr_FactoryPages438_AdminPage
143
+ *
144
+ */
145
+ public function assets($scripts, $styles)
146
+ {
147
+ parent::assets($scripts, $styles);
148
+
149
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/page-setup.css');
150
+
151
+ // Require step assets
152
+ if( isset($_GET['action']) && false !== strpos($_GET['action'], 'step') && isset($this->steps[$_GET['action']]) ) {
153
+ $this->steps[$_GET['action']]->assets($scripts, $styles);
154
+ }
155
+ }
156
+
157
+ /**
158
+ * {@inheritDoc}
159
+ *
160
+ * @param string $content
161
+ * @since 2.2.2 - добавлен
162
+ */
163
+ protected function showPage($content = null)
164
+ {
165
+ ?>
166
+ <div class="w-factory-clearfy-230-setup">
167
+ <ol class="w-factory-clearfy-230-setup-steps">
168
+ <?php foreach($this->steps as $step): ?>
169
+ <?php if( self::DEFAULT_STEP === $step->get_id() ) {
170
+ continue;
171
+ } ?>
172
+ <li <?php if($this->current_step === $step->get_id()): ?>class="active"<?php endif; ?>><?php echo $step->get_title(); ?></li>
173
+ <?php endforeach; ?>
174
+ </ol>
175
+ <div class="w-factory-clearfy-230-setup-content">
176
+ <?php echo $content; ?>
177
+ </div>
178
+ <a class="w-factory-clearfy-230-setup-footer-links" href="<?php echo esc_url($this->get_close_wizard_url()); ?>">
179
+ <?php _e('Not now', 'wbcr_factory_clearfy_230') ?>
180
+ </a>
181
+ </div>
182
+ <?php
183
+ }
184
+ }
libs/factory/clearfy/pages/class-pages-components.php ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
+
5
+ /**
6
+ * This file is the add-ons page.
7
+ *
8
+ * @author Alex Kovalev <alex@byonepress.com>
9
+ * @since 1.0.0
10
+ * @copyright (c) 2017, OnePress Ltd
11
+ *
12
+ */
13
+
14
+ // Exit if accessed directly
15
+ if( !defined('ABSPATH') ) {
16
+ exit;
17
+ }
18
+
19
+ class Components extends \Wbcr_FactoryClearfy230_PageBase {
20
+
21
+ /**
22
+ * The id of the page in the admin menu.
23
+ *
24
+ * Mainly used to navigate between pages.
25
+ *
26
+ * @since 1.0.0
27
+ * @see FactoryPages438_AdminPage
28
+ *
29
+ * @var string
30
+ */
31
+ public $id = "components";
32
+
33
+ public $page_menu_position = 0;
34
+
35
+ public $page_menu_dashicon = 'dashicons-admin-plugins';
36
+
37
+ public $type = 'page';
38
+
39
+ public $show_right_sidebar_in_options = false;
40
+
41
+ public $available_for_multisite = true;
42
+
43
+ /**
44
+ * @param \Wbcr_Factory439_Plugin $plugin
45
+ */
46
+ public function __construct(\Wbcr_Factory439_Plugin $plugin)
47
+ {
48
+ $this->menu_title = __('Components', 'wbcr_factory_clearfy_230');
49
+ $this->page_menu_short_description = __('More features for plugin', 'wbcr_factory_clearfy_230');
50
+
51
+ parent::__construct($plugin);
52
+
53
+ $this->plugin = $plugin;
54
+ }
55
+
56
+ /**
57
+ * Requests assets (js and css) for the page.
58
+ *
59
+ * @return void
60
+ * @since 1.0.0
61
+ * @see FactoryPages438_AdminPage
62
+ *
63
+ */
64
+ public function assets($scripts, $styles)
65
+ {
66
+ parent::assets($scripts, $styles);
67
+
68
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/components.css');
69
+
70
+ /**
71
+ * @param \Wbcr_Factory439_StyleList $styles
72
+ * @param \Wbcr_Factory439_ScriptList $scripts
73
+ * @since 1.4.0
74
+ *
75
+ */
76
+ do_action('wbcr/clearfy/components/page_assets', $scripts, $styles);
77
+ }
78
+
79
+ /**
80
+ * We register notifications for some actions
81
+ *
82
+ * @param $notices
83
+ * @param \Wbcr_Factory439_Plugin $plugin
84
+ *
85
+ * @return array
86
+ * @see libs\factory\pages\themplates\FactoryPages438_ImpressiveThemplate
87
+ */
88
+ public function getActionNotices($notices)
89
+ {
90
+ $notices[] = [
91
+ 'conditions' => [
92
+ 'wbcr-force-update-components-success' => 1
93
+ ],
94
+ 'type' => 'success',
95
+ 'message' => __('Components have been successfully updated to the latest version.', 'wbcr_factory_clearfy_230')
96
+ ];
97
+
98
+ $notices[] = [
99
+ 'conditions' => [
100
+ 'wbcr-force-update-components-error' => 'inactive_licence'
101
+ ],
102
+ 'type' => 'danger',
103
+ 'message' => __('To use premium components, you need activate a license!', 'wbcr_factory_clearfy_230') . '<a href="admin.php?page=license-wbcr_clearfy" class="btn btn-gold">' . __('Activate license', 'wbcr_factory_clearfy_230') . '</a>'
104
+ ];
105
+
106
+ $notices[] = [
107
+ 'conditions' => [
108
+ 'wbcr-force-update-components-error' => 'unknown_error'
109
+ ],
110
+ 'type' => 'danger',
111
+ 'message' => __('An unknown error occurred while updating plugin components. Please contact the plugin support team to resolve this issue.', 'hide_my_wp')
112
+ ];
113
+
114
+ return $notices;
115
+ }
116
+
117
+ public function get_components()
118
+ {
119
+ return [];
120
+ }
121
+
122
+ /**
123
+ * This method simply sorts the list of components.
124
+ *
125
+ * @param $components
126
+ *
127
+ * @return array
128
+ */
129
+ public function order($components)
130
+ {
131
+ $deactivate_components = $this->plugin->getPopulateOption('deactive_preinstall_components', []);
132
+
133
+ $ordered_components = [
134
+ 'premium_active' => [],
135
+ 'premium_deactive' => [],
136
+ 'other' => []
137
+ ];
138
+
139
+ foreach((array)$components as $component) {
140
+
141
+ if( ('premium' === $component['build'] || 'freemium' === $component['build']) && 'internal' === $component['type'] ) {
142
+ if( in_array($component['name'], $deactivate_components) ) {
143
+ // free component is deactivated
144
+ $order_key = 'premium_deactive';
145
+ } else {
146
+ // free component activated
147
+ $order_key = 'premium_active';
148
+ }
149
+ } else {
150
+ $order_key = 'other';
151
+ }
152
+
153
+ $ordered_components[$order_key][] = $component;
154
+ }
155
+
156
+ return array_merge($ordered_components['premium_active'], $ordered_components['premium_deactive'], $ordered_components['other']);
157
+ }
158
+
159
+ /**
160
+ * This method simply show contents of the component page.
161
+ *
162
+ * @throws \Exception
163
+ */
164
+ public function showPageContent()
165
+ {
166
+ $components = $this->order($this->get_components());
167
+
168
+ /**
169
+ * @param array $components
170
+ * @since 1.4.0
171
+ *
172
+ */
173
+ $components = apply_filters('wbcr/clearfy/components/items_list', $components);
174
+
175
+ ?>
176
+ <div class="wbcr-factory-page-group-header"><?php _e('<strong>Plugin Components</strong>.', 'wbcr_factory_clearfy_230') ?>
177
+ <p>
178
+ <?php _e('These are components of the plugin bundle. When you activate the plugin, all the components turned on by default. If you don’t need some function, you can easily turn it off on this page.', 'wbcr_factory_clearfy_230') ?>
179
+ </p>
180
+ </div>
181
+ <div class="wbc-factory-clearfy-230-components">
182
+ <?php
183
+ /**
184
+ * @since 1.4.0
185
+ */
186
+ do_action('wbcr/clearfy/components/custom_plugins_card', $components);
187
+ ?>
188
+
189
+ <?php foreach((array)$components as $component): ?>
190
+ <?php
191
+
192
+ $slug = $component['name'];
193
+
194
+ if( $component['type'] == 'wordpress' || $component['type'] == 'creativemotion' ) {
195
+ $slug = $component['base_path'];
196
+ }
197
+
198
+ $install_button = $this->plugin->get_install_component_button($component['type'], $slug);
199
+
200
+ $status_class = '';
201
+ if( !$install_button->is_plugin_activate() ) {
202
+ $status_class = ' plugin-status-deactive';
203
+ }
204
+
205
+ $install_button->add_class('install-now');
206
+
207
+ // Delete button
208
+ $delete_button = $this->plugin->get_delete_component_button($component['type'], $slug);
209
+ $delete_button->add_class('delete-now');
210
+
211
+ ?>
212
+ <div class="plugin-card<?php echo esc_attr($status_class) ?>">
213
+ <?php if( isset($component['build']) ): ?>
214
+ <div class="plugin-card-<?php echo esc_attr($component['build']) ?>-ribbon"><?php echo ucfirst(esc_html($component['build'])) ?></div>
215
+ <?php endif; ?>
216
+ <div class="plugin-card-top">
217
+ <div class="name column-name">
218
+ <h3>
219
+ <a href="<?php echo esc_url($component['url']) ?>" class="thickbox open-plugin-details-modal">
220
+ <?php echo esc_html($component['title']) ?>
221
+ <img src="<?php echo esc_attr($component['icon']) ?>" class="plugin-icon" alt="<?php echo esc_attr($component['title']) ?>">
222
+ </a>
223
+ </h3>
224
+ </div>
225
+ <div class="desc column-description">
226
+ <p><?php echo esc_html($component['description']); ?></p>
227
+ </div>
228
+ </div>
229
+ <div class="plugin-card-bottom">
230
+ <?php if( 'premium' === $component['build'] && !($this->plugin->premium->is_activate() && $this->plugin->premium->is_install_package()) ): ?>
231
+ <a target="_blank" href="<?php echo esc_url($component['url']) ?>" class="button button-default install-now"><?php _e('Read more', 'wbcr_factory_clearfy_230'); ?></a>
232
+ <?php else: ?>
233
+ <?php $delete_button->render_button(); ?><?php $install_button->render_button(); ?>
234
+ <?php endif; ?>
235
+ </div>
236
+ </div>
237
+ <?php endforeach; ?>
238
+ <div class="clearfix"></div>
239
+ </div>
240
+ <?php
241
+ }
242
+ }
243
+
244
+
libs/factory/clearfy/pages/class-pages.php CHANGED
@@ -14,15 +14,16 @@ if( !defined('ABSPATH') ) {
14
  }
15
 
16
  /**
17
- * Class Wbcr_FactoryPages432_ImpressiveThemplate
18
  *
19
  * @method string getInfoWidget() - get widget content information
20
  * @method string getRatingWidget(array $args = []) - get widget content rating
21
  * @method string getDonateWidget() - get widget content donate
 
22
  * @method string getBusinessSuggetionWidget()
23
  * @method string getSupportWidget
24
  */
25
- class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThemplate {
26
 
27
  /**
28
  * {@inheritDoc}
@@ -57,9 +58,9 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
57
  public $show_search_options_form = true;
58
 
59
  /**
60
- * @param Wbcr_Factory432_Plugin $plugin
61
  */
62
- public function __construct(Wbcr_Factory432_Plugin $plugin)
63
  {
64
  parent::__construct($plugin);
65
 
@@ -95,30 +96,38 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
95
  /**
96
  * Requests assets (js and css) for the page.
97
  *
98
- * @param Wbcr_Factory432_ScriptList $scripts
99
- * @param Wbcr_Factory432_StyleList $styles
100
  *
101
  * @return void
102
- * @see Wbcr_FactoryPages432_AdminPage
103
  *
104
  */
105
  public function assets($scripts, $styles)
106
  {
107
  parent::assets($scripts, $styles);
108
 
109
- $this->styles->add(FACTORY_CLEARFY_224_URL . '/assets/css/clearfy-base.css');
110
 
111
  // todo: вынести все общие скрипты и стили фреймворка, продумать совместимость с другими плагинами
112
  if( defined('WCL_PLUGIN_URL') ) {
113
  $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/general.css');
114
  }
115
 
 
 
 
 
 
 
 
 
116
  // Script for search form on plugin options
117
  if( $this->show_search_options_form && "options" === $this->type ) {
118
- $this->styles->add(FACTORY_CLEARFY_224_URL . '/assets/css/libs/autocomplete.css');
119
 
120
- $this->scripts->add(FACTORY_CLEARFY_224_URL . '/assets/js/libs/jquery.autocomplete.min.js');
121
- $this->scripts->add(FACTORY_CLEARFY_224_URL . '/assets/js/search-options.js');
122
  }
123
 
124
  /**
@@ -131,7 +140,7 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
131
  }
132
 
133
  /**
134
- * @return Wbcr_Factory432_Request
135
  */
136
  public function request()
137
  {
@@ -218,8 +227,11 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
218
  $widgets['rating_widget'] = $this->getRatingWidget();
219
  $widgets['support_widget'] = $this->getSupportWidget();
220
  //$widgets['donate_widget'] = $this->getDonateWidget();
221
- } else if( $position == 'right' ) {
222
  $widgets['business_suggetion'] = $this->getBusinessSuggetionWidget();
 
 
 
223
  $widgets['info_widget'] = $this->getInfoWidget();
224
  $widgets['rating_widget'] = $this->getRatingWidget();
225
  }
@@ -227,7 +239,7 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
227
  /**
228
  * @since 4.0.9 - является устаревшим
229
  */
230
- $widgets = wbcr_factory_432_apply_filters_deprecated('wbcr_factory_pages_432_imppage_get_widgets', [
231
  $widgets,
232
  $position,
233
  $this->plugin,
@@ -256,24 +268,24 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
256
  $purchase_url = $this->plugin->get_support()->get_pricing_url(true, 'right_sidebar_ads');
257
 
258
  $default_features = [
259
- '4_premium' => __('4 premium components now;', 'wbcr_factory_clearfy_224'),
260
- '40_premium' => __('40 new premium components within a year for the single price;', 'wbcr_factory_clearfy_224'),
261
- 'multisite_support' => __('Multisite support;', 'wbcr_factory_clearfy_224'),
262
- 'advance_settings' => __('Advanced settings;', 'wbcr_factory_clearfy_224'),
263
- 'no_ads' => __('No ads;', 'wbcr_factory_clearfy_224'),
264
- 'perfect_support' => __('Perfect support.', 'wbcr_factory_clearfy_224')
265
  ];
266
 
267
  /**
268
  * @since 2.0.8 - added
269
  */
270
- $suggetion_title = __('MORE IN CLEARFY <span>BUSINESS</span>', 'wbcr_factory_clearfy_224');
271
  $suggetion_title = apply_filters('wbcr/clearfy/pages/suggetion_title', $suggetion_title, $plugin_name, $this->id);
272
 
273
  /**
274
  * @since 2.0.8 - deprecated
275
  */
276
- $suggetion_features = wbcr_factory_432_apply_filters_deprecated('wbcr/clearfy/page_bussines_suggetion_features', [
277
  $default_features,
278
  $this->plugin->getPluginName(),
279
  $this->id
@@ -289,18 +301,18 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
289
  $suggetion_features = $default_features;
290
  }
291
  ?>
292
- <div class="wbcr-factory-sidebar-widget wbcr-factory-clearfy-224-pro-suggettion">
293
  <h3><?php echo $suggetion_title; ?></h3>
294
  <ul>
295
  <?php if( !empty($suggetion_features) ): ?>
296
  <?php foreach($suggetion_features as $feature): ?>
297
- <li><?= $feature ?></li>
298
  <?php endforeach; ?>
299
  <?php endif; ?>
300
  </ul>
301
  <a href="<?php echo $purchase_url ?>" class="wbcr-factory-purchase-premium" target="_blank"
302
  rel="noopener">
303
- <?php printf(__('Upgrade for $%s', 'wbcr_factory_clearfy_224'), $upgrade_price) ?>
304
  </a>
305
  </div>
306
  <?php
@@ -322,25 +334,25 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
322
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
323
  alt=""/>
324
  </span>
325
- - <?php _e('A neutral setting that can not harm your site, but you must be sure that you need to use it.', 'wbcr_factory_clearfy_224'); ?>
326
  </li>
327
  <li>
328
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
329
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
330
  alt=""/>
331
  </span>
332
- - <?php _e('When set this option, you must be careful. Plugins and themes may depend on this function. You must be sure that you can disable this feature for the site.', 'wbcr_factory_clearfy_224'); ?>
333
  </li>
334
  <li>
335
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
336
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
337
  alt=""/>
338
  </span>
339
- - <?php _e('Absolutely safe setting, We recommend to use.', 'wbcr_factory_clearfy_224'); ?>
340
  </li>
341
  </ul>
342
  ----------<br>
343
- <p><?php _e('Hover to the icon to get help for the feature you selected.', 'wbcr_factory_clearfy_224'); ?></p>
344
  </div>
345
  <?php
346
  }
@@ -362,19 +374,19 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
362
  $page_url = $args[0];
363
  }
364
 
365
- $page_url = apply_filters('wbcr_factory_pages_432_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_224'); ?></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_224'); ?></p>
373
- <p><?php _e('And also write your ideas on how to extend or improve the plugin.', 'wbcr_factory_clearfy_224'); ?></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_224'); ?></strong>
378
  </a>
379
  </p>
380
  </div>
@@ -392,7 +404,7 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
392
  ?>
393
  <div class="wbcr-factory-sidebar-widget">
394
  <p>
395
- <strong><?php _e('Donation for plugin development', 'wbcr_factory_clearfy_224'); ?></strong>
396
  </p>
397
  <?php if( get_locale() !== 'ru_RU' ): ?>
398
  <form id="wbcr-factory-paypal-donation-form" action="https://www.paypal.com/cgi-bin/webscr"
@@ -400,7 +412,7 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
400
  <input type="hidden" name="cmd" value="_s-xclick">
401
  <input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
402
  <div class="wbcr-factory-donation-price">5$</div>
403
- <input type="image" src="<?= FACTORY_PAGES_432_URL ?>/templates/assets/img/paypal-donate.png"
404
  border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
405
  </form>
406
  <?php else: ?>
@@ -425,19 +437,19 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
425
 
426
  ?>
427
  <div id="wbcr-clr-support-widget" class="wbcr-factory-sidebar-widget">
428
- <p><strong><?php _e('Having Issues?', 'clearfy'); ?></strong></p>
429
  <div class="wbcr-clr-support-widget-body">
430
  <p>
431
- <?php _e('We provide free support for this plugin. If you are pushed with a problem, just create a new ticket. We will definitely help you!', 'clearfy'); ?>
432
  </p>
433
  <ul>
434
  <li><span class="dashicons dashicons-sos"></span>
435
- <a href="<?= $free_support_url ?>" target="_blank"
436
- rel="noopener"><?php _e('Get starting free support', 'clearfy'); ?></a>
437
  </li>
438
  <li style="margin-top: 15px;background: #fff4f1;padding: 10px;color: #a58074;">
439
  <span class="dashicons dashicons-warning"></span>
440
- <?php printf(__('If you find a php error or a vulnerability in plugin, you can <a href="%s" target="_blank" rel="noopener">create ticket</a> in hot support that we responded instantly.', 'clearfy'), $hot_support_url); ?>
441
  </li>
442
  </ul>
443
  </div>
@@ -445,6 +457,40 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
445
  <?php
446
  }
447
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
448
  /**
449
  * Registers page options in the options registry
450
  *
@@ -452,13 +498,13 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
452
  */
453
  public function register_options_to_search()
454
  {
455
- require_once FACTORY_CLEARFY_224_DIR . '/includes/class-search-options.php';
456
 
457
  $options = $this->getPageOptions();
458
  $page_url = $this->getBaseUrl();
459
  $page_id = $this->getResultId();
460
 
461
- \WBCR\Factory_Clearfy_224\Search_Options::register_options($options, $page_url, $page_id);
462
  }
463
 
464
  /**
@@ -472,12 +518,12 @@ class Wbcr_FactoryClearfy224_PageBase extends Wbcr_FactoryPages432_ImpressiveThe
472
  return;
473
  }
474
  ?>
475
- <div id="wbcr-factory-clearfy-224__search_options_form" class="wbcr-factory-clearfy-224__autocomplete-wrap">
476
- <label for="autocomplete" class="wbcr-factory-clearfy-224__autocomplete-label">
477
- <?php _e('Can\'t find the settings you need? Use the search by the plugin options:', 'wbcr_factory_clearfy_224'); ?>
478
  </label>
479
- <input type="text" name="country" id="wbcr-factory-clearfy-224__autocomplete"/>
480
-
481
  </div>
482
  <?php
483
  }
14
  }
15
 
16
  /**
17
+ * Class Wbcr_FactoryPages438_ImpressiveThemplate
18
  *
19
  * @method string getInfoWidget() - get widget content information
20
  * @method string getRatingWidget(array $args = []) - get widget content rating
21
  * @method string getDonateWidget() - get widget content donate
22
+ * @method string getSubscribeWidget()
23
  * @method string getBusinessSuggetionWidget()
24
  * @method string getSupportWidget
25
  */
26
+ class Wbcr_FactoryClearfy230_PageBase extends Wbcr_FactoryPages438_ImpressiveThemplate {
27
 
28
  /**
29
  * {@inheritDoc}
58
  public $show_search_options_form = true;
59
 
60
  /**
61
+ * @param Wbcr_Factory439_Plugin $plugin
62
  */
63
+ public function __construct(Wbcr_Factory439_Plugin $plugin)
64
  {
65
  parent::__construct($plugin);
66
 
96
  /**
97
  * Requests assets (js and css) for the page.
98
  *
99
+ * @param Wbcr_Factory439_ScriptList $scripts
100
+ * @param Wbcr_Factory439_StyleList $styles
101
  *
102
  * @return void
103
+ * @see Wbcr_FactoryPages438_AdminPage
104
  *
105
  */
106
  public function assets($scripts, $styles)
107
  {
108
  parent::assets($scripts, $styles);
109
 
110
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/clearfy-base.css');
111
 
112
  // todo: вынести все общие скрипты и стили фреймворка, продумать совместимость с другими плагинами
113
  if( defined('WCL_PLUGIN_URL') ) {
114
  $this->styles->add(WCL_PLUGIN_URL . '/admin/assets/css/general.css');
115
  }
116
 
117
+ if( !($this->plugin->has_premium() && $this->plugin->premium->is_active()) ) {
118
+ $this->scripts->add(FACTORY_CLEARFY_230_URL . '/assets/js/clearfy-widgets.js', [
119
+ 'jquery',
120
+ 'wfactory-439-core-general',
121
+ 'wbcr-factory-clearfy-230-global'
122
+ ], 'wbcr-factory-clearfy-230-widgets');
123
+ }
124
+
125
  // Script for search form on plugin options
126
  if( $this->show_search_options_form && "options" === $this->type ) {
127
+ $this->styles->add(FACTORY_CLEARFY_230_URL . '/assets/css/libs/autocomplete.css');
128
 
129
+ $this->scripts->add(FACTORY_CLEARFY_230_URL . '/assets/js/libs/jquery.autocomplete.min.js');
130
+ $this->scripts->add(FACTORY_CLEARFY_230_URL . '/assets/js/clearfy-search-options.js');
131
  }
132
 
133
  /**
140
  }
141
 
142
  /**
143
+ * @return Wbcr_Factory439_Request
144
  */
145
  public function request()
146
  {
227
  $widgets['rating_widget'] = $this->getRatingWidget();
228
  $widgets['support_widget'] = $this->getSupportWidget();
229
  //$widgets['donate_widget'] = $this->getDonateWidget();
230
+ } else if( $position == 'right' && !($this->plugin->has_premium() && $this->plugin->premium->is_activate()) ) {
231
  $widgets['business_suggetion'] = $this->getBusinessSuggetionWidget();
232
+ if( $this->plugin->getPluginInfoAttr('subscribe_widget') ) {
233
+ $widgets['subscribe'] = $this->getSubscribeWidget();
234
+ }
235
  $widgets['info_widget'] = $this->getInfoWidget();
236
  $widgets['rating_widget'] = $this->getRatingWidget();
237
  }
239
  /**
240
  * @since 4.0.9 - является устаревшим
241
  */
242
+ $widgets = wbcr_factory_439_apply_filters_deprecated('wbcr_factory_pages_438_imppage_get_widgets', [
243
  $widgets,
244
  $position,
245
  $this->plugin,
268
  $purchase_url = $this->plugin->get_support()->get_pricing_url(true, 'right_sidebar_ads');
269
 
270
  $default_features = [
271
+ '4_premium' => __('4 premium components now;', 'wbcr_factory_clearfy_230'),
272
+ '40_premium' => __('40 new premium components within a year for the single price;', 'wbcr_factory_clearfy_230'),
273
+ 'multisite_support' => __('Multisite support;', 'wbcr_factory_clearfy_230'),
274
+ 'advance_settings' => __('Advanced settings;', 'wbcr_factory_clearfy_230'),
275
+ 'no_ads' => __('No ads;', 'wbcr_factory_clearfy_230'),
276
+ 'perfect_support' => __('Perfect support.', 'wbcr_factory_clearfy_230')
277
  ];
278
 
279
  /**
280
  * @since 2.0.8 - added
281
  */
282
+ $suggetion_title = __('MORE IN CLEARFY <span>BUSINESS</span>', 'wbcr_factory_clearfy_230');
283
  $suggetion_title = apply_filters('wbcr/clearfy/pages/suggetion_title', $suggetion_title, $plugin_name, $this->id);
284
 
285
  /**
286
  * @since 2.0.8 - deprecated
287
  */
288
+ $suggetion_features = wbcr_factory_439_apply_filters_deprecated('wbcr/clearfy/page_bussines_suggetion_features', [
289
  $default_features,
290
  $this->plugin->getPluginName(),
291
  $this->id
301
  $suggetion_features = $default_features;
302
  }
303
  ?>
304
+ <div class="wbcr-factory-sidebar-widget wbcr-factory-clearfy-230-pro-suggettion">
305
  <h3><?php echo $suggetion_title; ?></h3>
306
  <ul>
307
  <?php if( !empty($suggetion_features) ): ?>
308
  <?php foreach($suggetion_features as $feature): ?>
309
+ <li><?php echo $feature; ?></li>
310
  <?php endforeach; ?>
311
  <?php endif; ?>
312
  </ul>
313
  <a href="<?php echo $purchase_url ?>" class="wbcr-factory-purchase-premium" target="_blank"
314
  rel="noopener">
315
+ <?php printf(__('Upgrade for $%s', 'wbcr_factory_clearfy_230'), $upgrade_price) ?>
316
  </a>
317
  </div>
318
  <?php
334
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
335
  alt=""/>
336
  </span>
337
+ - <?php _e('A neutral setting that can not harm your site, but you must be sure that you need to use it.', 'wbcr_factory_clearfy_230'); ?>
338
  </li>
339
  <li>
340
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-grey">
341
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
342
  alt=""/>
343
  </span>
344
+ - <?php _e('When set this option, you must be careful. Plugins and themes may depend on this function. You must be sure that you can disable this feature for the site.', 'wbcr_factory_clearfy_230'); ?>
345
  </li>
346
  <li>
347
  <span class="wbcr-factory-hint-icon-simple wbcr-factory-simple-green">
348
  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAQAAABKmM6bAAAAUUlEQVQIHU3BsQ1AQABA0X/komIrnQHYwyhqQ1hBo9KZRKL9CBfeAwy2ri42JA4mPQ9rJ6OVt0BisFM3Po7qbEliru7m/FkY+TN64ZVxEzh4ndrMN7+Z+jXCAAAAAElFTkSuQmCC"
349
  alt=""/>
350
  </span>
351
+ - <?php _e('Absolutely safe setting, We recommend to use.', 'wbcr_factory_clearfy_230'); ?>
352
  </li>
353
  </ul>
354
  ----------<br>
355
+ <p><?php _e('Hover to the icon to get help for the feature you selected.', 'wbcr_factory_clearfy_230'); ?></p>
356
  </div>
357
  <?php
358
  }
374
  $page_url = $args[0];
375
  }
376
 
377
+ $page_url = apply_filters('wbcr_factory_pages_438_imppage_rating_widget_url', $page_url, $this->plugin->getPluginName(), $this->getResultId());
378
 
379
  ?>
380
  <div class="wbcr-factory-sidebar-widget">
381
  <p>
382
+ <strong><?php _e('Do you want the plugin to improved and update?', 'wbcr_factory_clearfy_230'); ?></strong>
383
  </p>
384
+ <p><?php _e('Help the author, leave a review on wordpress.org. Thanks to feedback, I will know that the plugin is really useful to you and is needed.', 'wbcr_factory_clearfy_230'); ?></p>
385
+ <p><?php _e('And also write your ideas on how to extend or improve the plugin.', 'wbcr_factory_clearfy_230'); ?></p>
386
  <p>
387
  <i class="wbcr-factory-icon-5stars"></i>
388
+ <a href="<?php echo $page_url; ?>" title="Go rate us" target="_blank">
389
+ <strong><?php _e('Go rate us and push ideas', 'wbcr_factory_clearfy_230'); ?></strong>
390
  </a>
391
  </p>
392
  </div>
404
  ?>
405
  <div class="wbcr-factory-sidebar-widget">
406
  <p>
407
+ <strong><?php _e('Donation for plugin development', 'wbcr_factory_clearfy_230'); ?></strong>
408
  </p>
409
  <?php if( get_locale() !== 'ru_RU' ): ?>
410
  <form id="wbcr-factory-paypal-donation-form" action="https://www.paypal.com/cgi-bin/webscr"
412
  <input type="hidden" name="cmd" value="_s-xclick">
413
  <input type="hidden" name="hosted_button_id" value="VDX7JNTQPNPFW">
414
  <div class="wbcr-factory-donation-price">5$</div>
415
+ <input type="image" src="<?php echo FACTORY_PAGES_438_URL ?>/templates/assets/img/paypal-donate.png"
416
  border="0" name="submit" alt="PayPal – The safer, easier way to pay online!">
417
  </form>
418
  <?php else: ?>
437
 
438
  ?>
439
  <div id="wbcr-clr-support-widget" class="wbcr-factory-sidebar-widget">
440
+ <p><strong><?php _e('Having Issues?', 'wbcr_factory_clearfy_230'); ?></strong></p>
441
  <div class="wbcr-clr-support-widget-body">
442
  <p>
443
+ <?php _e('We provide free support for this plugin. If you are pushed with a problem, just create a new ticket. We will definitely help you!', 'wbcr_factory_clearfy_230'); ?>
444
  </p>
445
  <ul>
446
  <li><span class="dashicons dashicons-sos"></span>
447
+ <a href="<?php echo $free_support_url; ?>" target="_blank"
448
+ rel="noopener"><?php _e('Get starting free support', 'wbcr_factory_clearfy_230'); ?></a>
449
  </li>
450
  <li style="margin-top: 15px;background: #fff4f1;padding: 10px;color: #a58074;">
451
  <span class="dashicons dashicons-warning"></span>
452
+ <?php printf(__('If you find a php error or a vulnerability in plugin, you can <a href="%s" target="_blank" rel="noopener">create ticket</a> in hot support that we responded instantly.', 'wbcr_factory_clearfy_230'), $hot_support_url); ?>
453
  </li>
454
  </ul>
455
  </div>
457
  <?php
458
  }
459
 
460
+ public function showSubscribeWidget()
461
+ {
462
+ $widget_settings = $this->plugin->getPluginInfoAttr('subscribe_settings');
463
+ $group_id = isset($widget_settings['group_id']) ? $widget_settings['group_id'] : 0;
464
+ $terms = "https://cm-wp.com/?bizpanda=privacy-policy";
465
+ ?>
466
+ <div id="wbcr-clr-subscribe-widget" class="wbcr-factory-sidebar-widget wbcr-factory-subscribe-widget">
467
+ <p><strong><?php _e('Subscribe to plugin’s newsletter', 'wbcr_factory_clearfy_230'); ?></strong></p>
468
+ <div class="wbcr-clr-subscribe-widget-body">
469
+
470
+ <div class="wbcr-factory-subscribe-widget__message-contanier">
471
+ <div class="wbcr-factory-subscribe-widget__text wbcr-factory-subscribe-widget__text--success">
472
+ <?php _e("Thank you, you have successfully subscribed!", 'wbcr_factory_clearfy_230') ?>
473
+ </div>
474
+ <div class="wbcr-factory-subscribe-widget__text wbcr-factory-subscribe-widget__text--success2">
475
+ <?php _e("Thank you for your subscription, a confirmation email has been sent to you. You need to confirm your subscription to complete this process.", 'wbcr_factory_clearfy_230'); ?>
476
+ </div>
477
+ </div>
478
+
479
+ <form id="wbcr-factory-subscribe-widget__subscribe-form" method="post">
480
+ <input id="wbcr-factory-subscribe-widget__email" class="wbcr-factory-subscribe-widget__field" type="email" name="email" placeholder="<?php _e('Enter your email address', 'wbcr_factory_clearfy_230'); ?>" required>
481
+ <label class="wbcr-factory-subscribe-widget__checkbox-label">
482
+ <input class="wbcr-factory-subscribe-widget__checkbox" type="checkbox" name="agree_terms" required>
483
+ <?php echo sprintf(__("I confirm to subscribe to the CreativeMotion newsletter to receive the latest news. You can find how we use your information on our %s Privacy Policy %s", 'wbcr_factory_clearfy_230'), '<a href="' . $terms . '" target="_blank">', '</a>'); ?>
484
+ </label>
485
+ <input type="hidden" id="wbcr-factory-subscribe-widget__group-id" value="<?php echo esc_attr($group_id); ?>">
486
+ <input type="submit" class="btn wbcr-factory-subscribe-widget__button" value="<?php _e('Subscribe', 'wbcr_factory_clearfy_230'); ?>">
487
+ </form>
488
+ </div>
489
+ </div>
490
+
491
+ <?php
492
+ }
493
+
494
  /**
495
  * Registers page options in the options registry
496
  *
498
  */
499
  public function register_options_to_search()
500
  {
501
+ require_once FACTORY_CLEARFY_230_DIR . '/includes/class-search-options.php';
502
 
503
  $options = $this->getPageOptions();
504
  $page_url = $this->getBaseUrl();
505
  $page_id = $this->getResultId();
506
 
507
+ \WBCR\Factory_Clearfy_230\Search_Options::register_options($options, $page_url, $page_id);
508
  }
509
 
510
  /**
518
  return;
519
  }
520
  ?>
521
+ <div id="wbcr-factory-clearfy-230__search_options_form" class="wbcr-factory-clearfy-230__autocomplete-wrap">
522
+ <label for="autocomplete" class="wbcr-factory-clearfy-230__autocomplete-label">
523
+ <?php _e('Can\'t find the settings you need? Use the search by the plugin options:', 'wbcr_factory_clearfy_230'); ?>
524
  </label>
525
+ <input type="text" name="country" id="wbcr-factory-clearfy-230__autocomplete"/>
526
+
527
  </div>
528
  <?php
529
  }
libs/factory/clearfy/pages/setup-parts/class-step-custom.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Custom extends Step {
12
+
13
+ public function get_title()
14
+ {
15
+ return 'Custom step';
16
+ }
17
+
18
+ public function render_button($continue = true, $skip = false, $custom_title = null, $align = 'right')
19
+ {
20
+ $this->set_button_handler();
21
+ $button_title = !empty($custom_title) ? $custom_title : __('Continue', 'wbcr_factory_clearfy_230');
22
+
23
+ if( !$this->get_next_id() ) {
24
+ $button_title = __('Finish', 'wbcr_factory_clearfy_230');
25
+ }
26
+
27
+ if( !in_array($align, ['center', 'left', 'right']) ) {
28
+ $align = 'right';
29
+ }
30
+
31
+ ?>
32
+ <form method="post" id="w-factory-clearfy-230__setup-form-<?php echo $this->get_id() ?>" class="form-horizontal">
33
+ <div class="w-factory-clearfy-230__form-buttons" style="text-align: <?php echo esc_attr($align); ?>">
34
+ <?php if( $skip ): ?>
35
+ <input type="submit" name="skip_button_<?php echo $this->get_id() ?>" class="button-primary button button-large w-factory-clearfy-230__skip-button" value="<?php _e('Skip', 'wbcr_factory_clearfy_230') ?>">
36
+ <?php endif; ?>
37
+ <?php if( $continue ): ?>
38
+ <input type="submit" name="continue_button_<?php echo $this->get_id() ?>" class="button-primary button button-large w-factory-clearfy-230__continue-button" value="<?php echo $button_title; ?>">
39
+ <?php endif; ?>
40
+ </div>
41
+ </form>
42
+ <?php
43
+ }
44
+
45
+ protected function set_button_handler()
46
+ {
47
+ if( isset($_POST['continue_button_' . $this->get_id()]) ) {
48
+ $this->continue_step();
49
+ }
50
+
51
+ if( isset($_POST['skip_button_' . $this->get_id()]) ) {
52
+ $this->skip_step();
53
+ }
54
+ }
55
+
56
+ public function html()
57
+ {
58
+ /// nothing
59
+ }
60
+
61
+ }
libs/factory/clearfy/pages/setup-parts/class-step-form.php ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ class Step_Form extends Step {
12
+
13
+ public function __construct(\WBCR\FactoryClearfy230\Pages\Setup $page)
14
+ {
15
+ parent::__construct($page);
16
+ }
17
+
18
+ public function get_title()
19
+ {
20
+ return 'Default form';
21
+ }
22
+
23
+ public function get_form_description()
24
+ {
25
+ return 'This is a sample html form, please customize the form fields, add description and title.';
26
+ }
27
+
28
+ public function get_form_options()
29
+ {
30
+ return [];
31
+ }
32
+
33
+ protected function instance_form($options)
34
+ {
35
+
36
+ $form = new \Wbcr_FactoryForms436_Form([
37
+ 'scope' => rtrim($this->plugin->getPrefix(), '_'),
38
+ 'name' => $this->page->getResultId() . "-options-" . $this->get_id()
39
+ ], $this->plugin);
40
+
41
+ $form->setProvider(new \Wbcr_FactoryForms436_OptionsValueProvider($this->plugin));
42
+
43
+ $form_options = [];
44
+
45
+ $form_options[] = [
46
+ 'type' => 'form-group',
47
+ 'items' => $options,
48
+ //'cssClass' => 'postbox'
49
+ ];
50
+
51
+ if( isset($form_options[0]) && isset($form_options[0]['items']) && is_array($form_options[0]['items']) ) {
52
+ foreach($form_options[0]['items'] as $key => $value) {
53
+
54
+ if( $value['type'] == 'div' || $value['type'] == 'more-link' ) {
55
+ if( isset($form_options[0]['items'][$key]['items']) && !empty($form_options[0]['items'][$key]['items']) ) {
56
+ foreach($form_options[0]['items'][$key]['items'] as $group_key => $group_value) {
57
+ $form_options[0]['items'][$key]['items'][$group_key]['layout']['column-left'] = '8';
58
+ $form_options[0]['items'][$key]['items'][$group_key]['layout']['column-right'] = '4';
59
+ }
60
+
61
+ continue;
62
+ }
63
+ }
64
+
65
+ if( in_array($value['type'], [
66
+ 'checkbox',
67
+ 'textarea',
68
+ 'integer',
69
+ 'textbox',
70
+ 'dropdown',
71
+ 'list',
72
+ 'wp-editor'
73
+ ]) ) {
74
+ $form_options[0]['items'][$key]['layout']['column-left'] = '8';
75
+ $form_options[0]['items'][$key]['layout']['column-right'] = '4';
76
+ }
77
+ }
78
+ }
79
+
80
+ $form->add($form_options);
81
+ $this->set_form_handler($form);
82
+
83
+ return $form;
84
+ }
85
+
86
+ protected function render_form(\Wbcr_FactoryForms436_Form $form)
87
+ {
88
+ ?>
89
+ <form method="post" id="w-factory-clearfy-230__setup-form-<?php echo $this->get_id() ?>" class="w-factory-clearfy-230__setup-form form-horizontal">
90
+ <?php $form->html(); ?>
91
+ <div class="w-factory-clearfy-230__form-buttons">
92
+ <!--<input type="submit" name="skip_button_<?php /*echo $this->get_id() */ ?>" class="button-primary button button-large w-factory-clearfy-230__skip-button" value="<?php /*_e('Skip', 'wbcr_factory_clearfy_230') */ ?>">-->
93
+ <input type="submit" name="continue_button_<?php echo $this->get_id() ?>" class="button-primary button button-large w-factory-clearfy-230__continue-button" value="<?php _e('Continue', 'wbcr_factory_clearfy_230') ?>">
94
+ </div>
95
+ </form>
96
+ <?php
97
+ }
98
+
99
+ protected function set_form_handler(\Wbcr_FactoryForms436_Form $form)
100
+ {
101
+ if( isset($_POST['continue_button_' . $this->get_id()]) ) {
102
+ $form->save();
103
+ $this->continue_step();
104
+ }
105
+
106
+ if( isset($_POST['skip_button_' . $this->get_id()]) ) {
107
+ $this->skip_step();
108
+ }
109
+ }
110
+
111
+ public function html()
112
+ {
113
+ $form_options = $this->get_form_options();
114
+
115
+ if( empty($form_options) ) {
116
+ echo 'Html form is not configured.';
117
+
118
+ return;
119
+ }
120
+
121
+ $form = $this->instance_form($this->get_form_options());
122
+ ?>
123
+ <div id="WBCR" class="wrap">
124
+ <div class="wbcr-factory-pages-438-impressive-page-template factory-bootstrap-439 factory-fontawesome-000">
125
+ <div class="w-factory-clearfy-230-setup__inner-wrap">
126
+ <h3><?php echo $this->get_title(); ?></h3>
127
+ <p style="text-align: left;"><?php echo $this->get_form_description(); ?></p>
128
+ </div>
129
+ <?php $this->render_form($form); ?>
130
+ </div>
131
+ </div>
132
+ <?php
133
+ }
134
+
135
+ }
libs/factory/clearfy/pages/setup-parts/class-step.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WBCR\FactoryClearfy230\Pages;
4
+
5
+ /**
6
+ * Step
7
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
8
+ * @copyright (c) 23.07.2020, Webcraftic
9
+ * @version 1.0
10
+ */
11
+ abstract class Step {
12
+
13
+ protected $id;
14
+
15
+ protected $prev_id = false;
16
+ protected $next_id = false;
17
+
18
+ /**
19
+ * @var \WBCR\FactoryClearfy230\Pages\Setup
20
+ */
21
+ protected $page;
22
+
23
+ /**
24
+ * @var \Wbcr_Factory439_Plugin
25
+ */
26
+ protected $plugin;
27
+
28
+ public function __construct(\WBCR\FactoryClearfy230\Pages\Setup $page)
29
+ {
30
+ $this->page = $page;
31
+ $this->plugin = $page->plugin;
32
+ //$this->form_handler();
33
+ }
34
+
35
+ public function get_id()
36
+ {
37
+ if( empty($this->id) ) {
38
+ throw new \Exception('Step ID setting is required for the {' . static::class . '} class!');
39
+ }
40
+
41
+ return $this->id;
42
+ }
43
+
44
+ public function get_next_id()
45
+ {
46
+ return $this->next_id;
47
+ }
48
+
49
+ /**
50
+ * Requests assets (js and css) for the page.
51
+ *
52
+ * @return void
53
+ * @since 1.0.0
54
+ * @see FactoryPages438_AdminPage
55
+ *
56
+ */
57
+ public function assets($scripts, $styles)
58
+ {
59
+ // nothing
60
+ }
61
+
62
+ protected function continue_step($skip = false)
63
+ {
64
+ $next_id = $this->get_next_id();
65
+ if( !$next_id ) {
66
+ $next_id = $this->get_id();
67
+ }
68
+ wp_safe_redirect($this->page->getActionUrl($next_id));
69
+ die();
70
+ }
71
+
72
+ protected function skip_step()
73
+ {
74
+ $this->continue_step(true);
75
+ }
76
+
77
+ abstract public function get_title();
78
+
79
+ abstract public function html();
80
+
81
+ }
libs/factory/core/ajax/install-addons.php ADDED
@@ -0,0 +1,228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Ajax plugin configuration
4
+ *
5
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
6
+ * @copyright (c) 2017 Webraftic Ltd
7
+ * @version 1.0
8
+ */
9
+
10
+ // Exit if accessed directly
11
+ if( !defined('ABSPATH') ) {
12
+ exit;
13
+ }
14
+
15
+ /**
16
+ * This action allows you to process Ajax requests to activate external components Clearfy
17
+ */
18
+ function wfactory_439_install_components($plugin_instance)
19
+ {
20
+ check_ajax_referer('updates');
21
+
22
+ $slug = $plugin_instance->request->post('plugin', null, true);
23
+ $action = $plugin_instance->request->post('plugin_action', null, true);
24
+ $storage = $plugin_instance->request->post('storage', null, true);
25
+
26
+ if( !current_user_can('update_plugins') ) {
27
+ wp_die(__('You don\'t have enough capability to edit this information.', 'wbcr_factory_439'), __('Something went wrong.'), 403);
28
+ }
29
+
30
+ if( empty($slug) || empty($action) ) {
31
+ wp_send_json_error(['error_message' => __('Required attributes are not passed or empty.', 'wbcr_factory_439')]);
32
+ }
33
+ $success = false;
34
+ $send_data = [];
35
+
36
+ if( $storage == 'internal' ) {
37
+ if( $action == 'activate' ) {
38
+ if( $plugin_instance->activateComponent($slug) ) {
39
+ $success = true;
40
+ }
41
+ } else if( $action == 'deactivate' ) {
42
+
43
+ if( $plugin_instance->deactivateComponent($slug) ) {
44
+ $success = true;
45
+ }
46
+ } else {
47
+ wp_send_json_error(['error_message' => __('You are trying to perform an invalid action.', 'wbcr_factory_439')]);
48
+ }
49
+ } else if( $storage == 'wordpress' || $storage == 'creativemotion' ) {
50
+ if( !empty($slug) ) {
51
+ $network_wide = $plugin_instance->isNetworkActive();
52
+
53
+ if( $action == 'activate' ) {
54
+ $result = activate_plugin($slug, '', $network_wide);
55
+
56
+ if( is_wp_error($result) ) {
57
+ wp_send_json_error(['error_message' => $result->get_error_message()]);
58
+ }
59
+ } else if( $action == 'deactivate' ) {
60
+ deactivate_plugins($slug, false, $network_wide);
61
+ }
62
+
63
+ $success = true;
64
+ }
65
+ }
66
+
67
+ if( $action == 'install' || $action == 'deactivate' ) {
68
+ try {
69
+ // Delete button
70
+ $delete_button = $plugin_instance->get_delete_component_button($storage, $slug);
71
+ $send_data['delete_button'] = $delete_button->get_button();
72
+ } catch( Exception $e ) {
73
+ wp_send_json_error(['error_message' => $e->getMessage()]);
74
+ }
75
+ }
76
+
77
+ // Если требуется обновить постоянные ссылки, даем сигнал, что пользователю, нужно показать
78
+ // всплывающее уведомление.
79
+ // todo: сделать более красивое решение с передачей текстовых сообщений
80
+ /*if ( $action == 'deactivate' ) {
81
+ $is_need_rewrite_rules = $plugin_instance->getPopulateOption( 'need_rewrite_rules' );
82
+ if ( $is_need_rewrite_rules ) {
83
+ $send_data['need_rewrite_rules'] = sprintf( '<span class="wbcr-clr-need-rewrite-rules-message">' . __( 'When you deactivate some components, permanent links may work incorrectly. If this happens, please, <a href="%s">update the permalinks</a>, so you could complete the deactivation.', 'wbcr_factory_439' ), admin_url( 'options-permalink.php' ) . '</span>' );
84
+ }
85
+ }*/
86
+
87
+ if( $success ) {
88
+ // todo: для совместимости с плагином Clearfy
89
+ if( "wbcr_clearfy" === $plugin_instance->getPluginName() ) {
90
+ do_action('wbcr_clearfy_update_component', $slug, $action, $storage);
91
+ }
92
+ do_action("wfactory/updated_{$plugin_instance->getPluginName()}_component", $slug, $action, $storage);
93
+
94
+ wp_send_json_success($send_data);
95
+ }
96
+
97
+ wp_send_json_error(['error_message' => __('An unknown error occurred during the activation of the component.', 'wbcr_factory_439')]);
98
+ }
99
+
100
+ /**
101
+ * Ajax event that calls the wbcr/clearfy/activated_component action,
102
+ * to get the component to work. Usually this is a call to the installation functions,
103
+ * but in some cases, overwriting permanent references or compatibility checks.
104
+ */
105
+ function wfactory_439_prepare_component($plugin_instance)
106
+ {
107
+ check_ajax_referer('updates');
108
+
109
+ $component_name = $plugin_instance->request->post('plugin', null, true);
110
+
111
+ if( !current_user_can('update_plugins') ) {
112
+ wp_send_json_error(['error_message' => __('You don\'t have enough capability to edit this information.', 'wbcr_factory_439')], 403);
113
+ }
114
+
115
+ if( empty($component_name) ) {
116
+ wp_send_json_error(['error_message' => __('Required attribute [component_name] is empty.', 'wbcr_factory_439')]);
117
+ }
118
+ // todo: для совместимости с плагином Clearfy
119
+ if( "wbcr_clearfy" === $plugin_instance->getPluginName() ) {
120
+ do_action('wbcr/clearfy/activated_component', $component_name);
121
+ }
122
+ do_action("wfactory/activated_{$plugin_instance->getPluginName()}_component", $component_name);
123
+
124
+ wp_send_json_success();
125
+ }
126
+
127
+ /**
128
+ * Ajax handler for installing a plugin.
129
+ *
130
+ * @since 4.6.0
131
+ *
132
+ * @see Plugin_Upgrader
133
+ *
134
+ * @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
135
+ */
136
+ function wfactory_439_creativemotion_install_plugin($plugin_instance)
137
+ {
138
+ check_ajax_referer('updates');
139
+
140
+ if( empty($_POST['slug']) ) {
141
+ wp_send_json_error(array(
142
+ 'slug' => '',
143
+ 'errorCode' => 'no_plugin_specified',
144
+ 'errorMessage' => __('No plugin specified.'),
145
+ ));
146
+ }
147
+
148
+ $status = array(
149
+ 'install' => 'plugin',
150
+ 'slug' => sanitize_key(wp_unslash($_POST['slug'])),
151
+ );
152
+
153
+ if( !current_user_can('install_plugins') ) {
154
+ $status['errorMessage'] = __('Sorry, you are not allowed to install plugins on this site.');
155
+ wp_send_json_error($status);
156
+ }
157
+
158
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
159
+ include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
160
+
161
+ $api = plugins_api('plugin_information', array(
162
+ 'slug' => sanitize_key(wp_unslash($_POST['slug'])),
163
+ 'fields' => array(
164
+ 'sections' => false,
165
+ ),
166
+ ));
167
+
168
+ if( is_wp_error($api) ) {
169
+ $status['errorMessage'] = $api->get_error_message();
170
+ wp_send_json_error($status);
171
+ }
172
+
173
+ $status['pluginName'] = $api->name;
174
+
175
+ $skin = new WP_Ajax_Upgrader_Skin();
176
+ $upgrader = new Plugin_Upgrader($skin);
177
+ //$result = $upgrader->install($api->download_link);
178
+ $result = $upgrader->install('https://clearfy.pro/components/download.php');
179
+
180
+ if( defined('WP_DEBUG') && WP_DEBUG ) {
181
+ $status['debug'] = $skin->get_upgrade_messages();
182
+ }
183
+
184
+ if( is_wp_error($result) ) {
185
+ $status['errorCode'] = $result->get_error_code();
186
+ $status['errorMessage'] = $result->get_error_message();
187
+ wp_send_json_error($status);
188
+ } elseif( is_wp_error($skin->result) ) {
189
+ $status['errorCode'] = $skin->result->get_error_code();
190
+ $status['errorMessage'] = $skin->result->get_error_message();
191
+ wp_send_json_error($status);
192
+ } elseif( $skin->get_errors()->has_errors() ) {
193
+ $status['errorMessage'] = $skin->get_error_messages();
194
+ wp_send_json_error($status);
195
+ } elseif( is_null($result) ) {
196
+ global $wp_filesystem;
197
+
198
+ $status['errorCode'] = 'unable_to_connect_to_filesystem';
199
+ $status['errorMessage'] = __('Unable to connect to the filesystem. Please confirm your credentials.');
200
+
201
+ // Pass through the error from WP_Filesystem if one was raised.
202
+ if( $wp_filesystem instanceof WP_Filesystem_Base && is_wp_error($wp_filesystem->errors) && $wp_filesystem->errors->has_errors() ) {
203
+ $status['errorMessage'] = esc_html($wp_filesystem->errors->get_error_message());
204
+ }
205
+
206
+ wp_send_json_error($status);
207
+ }
208
+
209
+ $install_status = install_plugin_install_status($api);
210
+ $pagenow = isset($_POST['pagenow']) ? sanitize_key($_POST['pagenow']) : '';
211
+
212
+ // If installation request is coming from import page, do not return network activation link.
213
+ $plugins_url = ('import' === $pagenow) ? admin_url('plugins.php') : network_admin_url('plugins.php');
214
+
215
+ if( current_user_can('activate_plugin', $install_status['file']) && is_plugin_inactive($install_status['file']) ) {
216
+ $status['activateUrl'] = add_query_arg(array(
217
+ '_wpnonce' => wp_create_nonce('activate-plugin_' . $install_status['file']),
218
+ 'action' => 'activate',
219
+ 'plugin' => $install_status['file'],
220
+ ), $plugins_url);
221
+ }
222
+
223
+ if( is_multisite() && current_user_can('manage_network_plugins') && 'import' !== $pagenow ) {
224
+ $status['activateUrl'] = add_query_arg(array('networkwide' => 1), $status['activateUrl']);
225
+ }
226
+
227
+ wp_send_json_success($status);
228
+ }
libs/factory/core/assets/js/core-components.js ADDED
@@ -0,0 +1,227 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * This code provides tools for downloading, installing external add-ons for the Clearfy plugin
3
+ *
4
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
5
+ * @copyright (c) 10.09.2017, Webcraftic
6
+ * @version 1.0
7
+ */
8
+
9
+ (function($) {
10
+ 'use strict';
11
+
12
+ var externalAddon = {
13
+ init: function() {
14
+ this.events();
15
+ },
16
+ events: function() {
17
+ var self = this;
18
+
19
+ /**
20
+ * This event is intended for installation, removal, activation, deactivation of external add-ons
21
+ */
22
+
23
+ $(document).on('click', '.wfactory-439-process-button', function() {
24
+ var $this = $(this),
25
+ button_i18n = $(this).data('i18n'),
26
+ plugin_slug = $(this).data('slug'),
27
+ plugin_action = $(this).data('plugin-action'),
28
+ plugin = $(this).data('plugin'),
29
+ storage = $(this).data('storage'),
30
+ wpnonce = $(this).data('wpnonce');
31
+
32
+ var action = ('creativemotion' === storage)
33
+ ? 'wfactory-439-creativemotion-install-plugin'
34
+ : 'install-plugin';
35
+
36
+ if( storage === 'freemius' || ((storage === 'wordpress' || storage === 'creativemotion' || storage === 'internal') && (plugin_action === 'activate' || plugin_action === 'deactivate')) ) {
37
+ action = 'wfactory-439-intall-component';
38
+ } else if( storage === 'wordpress' && plugin_action === 'delete' ) {
39
+ action = 'delete-plugin';
40
+ }
41
+
42
+ var data = {
43
+ action: action,
44
+ slug: plugin_slug,
45
+ storage: storage,
46
+ plugin: plugin,
47
+ plugin_action: plugin_action,
48
+ _wpnonce: wpnonce
49
+ };
50
+
51
+ if( plugin_action === 'install' ) {
52
+ $this.addClass('updating-message');
53
+ }
54
+
55
+ $this.addClass('disabled').text(button_i18n.loading);
56
+
57
+ $.wfactory_439.hooks.run('core/components/pre_update', [$this, data]);
58
+
59
+ self.sendRequest(data, function(response) {
60
+ if( !response || !response.success ) {
61
+ $.wfactory_439.hooks.run('core/components/update_error', [
62
+ $this,
63
+ data,
64
+ response
65
+ ]);
66
+
67
+ return;
68
+ }
69
+
70
+ if( response.success ) {
71
+ $this.removeClass('disabled').removeClass('updating-message');
72
+
73
+ if( plugin_action === 'install' ) {
74
+
75
+ plugin_action = 'activate';
76
+ $this.data('plugin-action', 'activate');
77
+ $this.attr('data-plugin-action', 'activate');
78
+
79
+ if( $this.hasClass('button') ) {
80
+ $this.removeClass('button-default').addClass('button-primary');
81
+ }
82
+
83
+ $.wfactory_439.hooks.run('core/components/installed', [
84
+ $this,
85
+ data,
86
+ response
87
+ ]);
88
+
89
+ } else if( plugin_action === 'activate' ) {
90
+
91
+ plugin_action = 'deactivate';
92
+ $this.data('plugin-action', 'deactivate');
93
+ $this.attr('data-plugin-action', 'deactivate');
94
+
95
+ if( $this.hasClass('button') ) {
96
+ $this.removeClass('button-primary').addClass('button-default');
97
+ }
98
+
99
+ $.wfactory_439.hooks.run('core/components/pre_activate', [
100
+ $this,
101
+ data,
102
+ response
103
+ ]);
104
+
105
+ /**
106
+ * Send an additional request for activation of the component, during activation
107
+ * perform the action wbcr/clearfy/activated_component.
108
+ *
109
+ * Basically, this is necessary to prepare the plugin to work, write the necessary rows and
110
+ * tables in the database, rewriting permalinks, checking conflicts, etc.
111
+ */
112
+ if( storage === 'freemius' || storage === 'internal' ) {
113
+ self.sendRequestToComponentActivationPrepare($this, data, button_i18n);
114
+ return;
115
+ }
116
+
117
+ } else if( plugin_action === 'deactivate' ) {
118
+
119
+ plugin_action = 'activate';
120
+ $this.data('plugin-action', 'activate');
121
+ $this.attr('data-plugin-action', 'activate');
122
+
123
+ if( $this.hasClass('button') ) {
124
+ $this.removeClass('button-default').addClass('button-primary');
125
+ }
126
+
127
+ $.wfactory_439.hooks.run('core/components/deactivated', [
128
+ $this,
129
+ data,
130
+ response
131
+ ]);
132
+
133
+ } else if( plugin_action === 'delete' ) {
134
+
135
+ plugin_action = 'install';
136
+
137
+ $.wfactory_439.hooks.run('core/components/deleted', [$this, data, response]);
138
+ }
139
+ } else {
140
+ if( plugin_action === 'install' ) {
141
+ $this.removeClass('updating-message');
142
+ }
143
+ }
144
+
145
+ $this.text(button_i18n[plugin_action]);
146
+
147
+ $.wfactory_439.hooks.run('core/components/updated', [$this, data, response]);
148
+ });
149
+
150
+ return false;
151
+ });
152
+ },
153
+
154
+ /**
155
+ * Отправляет дополнительный запрос на активацию компонента, во время активации
156
+ * выполняет хук wbcr/clearfy/activated_component.
157
+ *
158
+ * В принципе, это необходимо для подготовки плагина к работе, записи необходимых строк и таблиц в
159
+ * базу данных, перепись постоянных ссылок, проверка конфликтов и т.д.
160
+ *
161
+ * @param {object} componentButton
162
+ * @param {object} sendData
163
+ * @param {object} button_i18n
164
+ */
165
+ sendRequestToComponentActivationPrepare: function(componentButton, sendData, button_i18n) {
166
+ var self = this;
167
+
168
+ componentButton.addClass('button-primary')
169
+ .addClass('disabled')
170
+ .text(button_i18n.preparation);
171
+
172
+ sendData.action = 'wfactory-439-prepare-component';
173
+
174
+ this.sendRequest(sendData, function(response) {
175
+ componentButton.removeClass('disabled');
176
+
177
+ if( !response || !response.success ) {
178
+ componentButton.text(button_i18n['activate']);
179
+
180
+ $.wfactory_439.hooks.run('core/components/activation_error', [
181
+ componentButton,
182
+ sendData,
183
+ response
184
+ ]);
185
+ return;
186
+ }
187
+
188
+ componentButton.removeClass('button-primary').text(button_i18n['deactivate']);
189
+
190
+ $.wfactory_439.hooks.run('core/components/activated', [
191
+ componentButton,
192
+ sendData,
193
+ response
194
+ ]);
195
+ });
196
+ },
197
+
198
+ sendRequest: function(data, callback) {
199
+ var self = this;
200
+
201
+ $.ajax(ajaxurl, {
202
+ type: 'post',
203
+ dataType: 'json',
204
+ data: data,
205
+ success: function(data, textStatus, jqXHR) {
206
+ callback && callback(data);
207
+ },
208
+ error: function(xhr, ajaxOptions, thrownError) {
209
+ console.log(xhr.status);
210
+ console.log(xhr.responseText);
211
+ console.log(thrownError);
212
+
213
+ $.wfactory_439.hooks.run('core/components/ajax_error', [
214
+ xhr,
215
+ ajaxOptions,
216
+ thrownError
217
+ ]);
218
+ }
219
+ });
220
+ }
221
+ };
222
+
223
+ $(document).ready(function() {
224
+ externalAddon.init();
225
+ });
226
+
227
+ })(jQuery);
libs/factory/core/assets/js/core-general.js ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
4
+ * @copyright (c) 02.09.2020, Webcraftic
5
+ * @version 1.0
6
+ */
7
+
8
+ (function($) {
9
+ 'use strict';
10
+
11
+ if( !$.wfactory_439 ) {
12
+ $.wfactory_439 = {};
13
+ }
14
+
15
+ $.wfactory_439.filters = $.wfactory_439.filters || {
16
+
17
+ /**
18
+ * A set of registered filters.
19
+ */
20
+ _items: {},
21
+
22
+ /**
23
+ * A set of priorities of registered filters.
24
+ */
25
+ _priorities: {},
26
+
27
+ /**
28
+ * Applies filters to a given input value.
29
+ */
30
+ run: function(filterName, args) {
31
+ var input = args && args.length > 0 ? args[0] : null;
32
+ if( !this._items[filterName] ) {
33
+ return input;
34
+ }
35
+
36
+ for( var i in this._priorities[filterName] ) {
37
+ if( !this._priorities[filterName].hasOwnProperty(i) ) {
38
+ continue;
39
+ }
40
+
41
+ var priority = this._priorities[filterName][i];
42
+
43
+ for( var k = 0; k < this._items[filterName][priority].length; k++ ) {
44
+ var f = this._items[filterName][priority][k];
45
+ input = f.apply(f, args);
46
+ }
47
+ }
48
+
49
+ return input;
50
+ },
51
+
52
+ /**
53
+ * Registers a new filter.
54
+ */
55
+ add: function(filterName, callback, priority) {
56
+
57
+ if( !priority ) {
58
+ priority = 10;
59
+ }
60
+
61
+ if( !this._items[filterName] ) {
62
+ this._items[filterName] = {};
63
+ }
64
+ if( !this._items[filterName][priority] ) {
65
+ this._items[filterName][priority] = [];
66
+ }
67
+ this._items[filterName][priority].push(callback);
68
+
69
+ if( !this._priorities[filterName] ) {
70
+ this._priorities[filterName] = [];
71
+ }
72
+ if( $.inArray(priority, this._priorities[filterName]) === -1 ) {
73
+ this._priorities[filterName].push(priority);
74
+ }
75
+
76
+ this._priorities[filterName].sort(function(a, b) {
77
+ return a - b;
78
+ });
79
+ }
80
+ };
81
+
82
+ $.wfactory_439.hooks = $.wfactory_439.hooks || {
83
+
84
+ /**
85
+ * Applies filters to a given input value.
86
+ */
87
+ run: function(filterName, args) {
88
+ $.wfactory_439.filters.run(filterName, args);
89
+ },
90
+
91
+ /**
92
+ * Registers a new filter.
93
+ */
94
+ add: function(filterName, callback, priority) {
95
+ $.wfactory_439.filters.add(filterName, callback, priority);
96
+ }
97
+ };
98
+
99
+ })(jQuery);
libs/factory/core/boot.php CHANGED
@@ -14,49 +14,59 @@ if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
 
17
- if( defined('FACTORY_432_LOADED') ) {
18
  return;
19
  }
20
 
21
- define('FACTORY_432_LOADED', true);
22
 
23
- define('FACTORY_432_VERSION', '4.3.2');
24
 
25
- define('FACTORY_432_DIR', dirname(__FILE__));
26
- define('FACTORY_432_URL', plugins_url(null, __FILE__));
27
 
28
- load_plugin_textdomain('wbcr_factory_432', false, dirname(plugin_basename(__FILE__)) . '/langs');
29
 
30
  #comp merge
31
- require_once(FACTORY_432_DIR . '/includes/functions.php');
32
 
33
- require_once(FACTORY_432_DIR . '/includes/entities/class-factory-paths.php');
34
- require_once(FACTORY_432_DIR . '/includes/entities/class-factory-support.php');
35
 
36
- require_once(FACTORY_432_DIR . '/includes/class-factory-requests.php');
37
- require_once(FACTORY_432_DIR . '/includes/class-factory-options.php');
38
- require_once(FACTORY_432_DIR . '/includes/class-factory-plugin-base.php');
39
- require_once(FACTORY_432_DIR . '/includes/class-factory-migrations.php');
40
- require_once(FACTORY_432_DIR . '/includes/class-factory-notices.php');
41
 
42
  // ASSETS
43
- require_once(FACTORY_432_DIR . '/includes/assets-managment/class-factory-assets-list.php');
44
- require_once(FACTORY_432_DIR . '/includes/assets-managment/class-factory-script-list.php');
45
- require_once(FACTORY_432_DIR . '/includes/assets-managment/class-factory-style-list.php');
46
 
47
  // PREMIUM
48
- require_once(FACTORY_432_DIR . '/includes/premium/class-factory-license-interface.php');
49
- require_once(FACTORY_432_DIR . '/includes/premium/class-factory-provider-abstract.php');
50
- require_once(FACTORY_432_DIR . '/includes/premium/class-factory-manager.php');
51
 
52
  // UPDATES
53
- require_once(FACTORY_432_DIR . '/includes/updates/repositories/class-factory-repository-abstract.php');
54
- require_once(FACTORY_432_DIR . '/includes/updates/repositories/class-factory-wordpress.php');
55
- require_once(FACTORY_432_DIR . '/includes/updates/class-factory-upgrader.php');
56
- require_once(FACTORY_432_DIR . '/includes/updates/class-factory-premium-upgrader.php');
57
 
58
- require_once(FACTORY_432_DIR . '/includes/class-factory-plugin-abstract.php');
59
 
60
- require_once(FACTORY_432_DIR . '/includes/activation/class-factory-activator.php');
61
- require_once(FACTORY_432_DIR . '/includes/activation/class-factory-update.php');
62
  #endcomp
 
 
 
 
 
 
 
 
 
 
14
  exit;
15
  }
16
 
17
+ if( defined('FACTORY_439_LOADED') ) {
18
  return;
19
  }
20
 
21
+ define('FACTORY_439_LOADED', true);
22
 
23
+ define('FACTORY_439_VERSION', '4.3.9');
24
 
25
+ define('FACTORY_439_DIR', dirname(__FILE__));
26
+ define('FACTORY_439_URL', plugins_url(null, __FILE__));
27
 
28
+ load_plugin_textdomain('wbcr_factory_439', false, dirname(plugin_basename(__FILE__)) . '/langs');
29
 
30
  #comp merge
31
+ require_once(FACTORY_439_DIR . '/includes/functions.php');
32
 
33
+ require_once(FACTORY_439_DIR . '/includes/entities/class-factory-paths.php');
34
+ require_once(FACTORY_439_DIR . '/includes/entities/class-factory-support.php');
35
 
36
+ require_once(FACTORY_439_DIR . '/includes/class-factory-requests.php');
37
+ require_once(FACTORY_439_DIR . '/includes/class-factory-options.php');
38
+ require_once(FACTORY_439_DIR . '/includes/class-factory-plugin-base.php');
39
+ require_once(FACTORY_439_DIR . '/includes/class-factory-migrations.php');
40
+ require_once(FACTORY_439_DIR . '/includes/class-factory-notices.php');
41
 
42
  // ASSETS
43
+ require_once(FACTORY_439_DIR . '/includes/assets-managment/class-factory-assets-list.php');
44
+ require_once(FACTORY_439_DIR . '/includes/assets-managment/class-factory-script-list.php');
45
+ require_once(FACTORY_439_DIR . '/includes/assets-managment/class-factory-style-list.php');
46
 
47
  // PREMIUM
48
+ require_once(FACTORY_439_DIR . '/includes/premium/class-factory-license-interface.php');
49
+ require_once(FACTORY_439_DIR . '/includes/premium/class-factory-provider-abstract.php');
50
+ require_once(FACTORY_439_DIR . '/includes/premium/class-factory-manager.php');
51
 
52
  // UPDATES
53
+ require_once(FACTORY_439_DIR . '/includes/updates/repositories/class-factory-repository-abstract.php');
54
+ require_once(FACTORY_439_DIR . '/includes/updates/repositories/class-factory-wordpress.php');
55
+ require_once(FACTORY_439_DIR . '/includes/updates/class-factory-upgrader.php');
56
+ require_once(FACTORY_439_DIR . '/includes/updates/class-factory-premium-upgrader.php');
57
 
58
+ require_once(FACTORY_439_DIR . '/includes/class-factory-plugin-abstract.php');
59
 
60
+ require_once(FACTORY_439_DIR . '/includes/activation/class-factory-activator.php');
61
+ require_once(FACTORY_439_DIR . '/includes/activation/class-factory-update.php');
62
  #endcomp
63
+
64
+ add_action('admin_enqueue_scripts', function () {
65
+ wp_enqueue_script('wfactory-439-core-general', FACTORY_439_URL . '/assets/js/core-general.js', [
66
+ 'jquery'
67
+ ], FACTORY_439_VERSION);
68
+ wp_enqueue_script('wfactory-439-core-components', FACTORY_439_URL . '/assets/js/core-components.js', [
69
+ 'jquery',
70
+ 'wfactory-439-core-general'
71
+ ], FACTORY_439_VERSION);
72
+ });
libs/factory/core/includes/activation/class-factory-activator.php CHANGED
@@ -19,16 +19,16 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  *
20
  * @since 1.0.0
21
  */
22
- abstract class Wbcr_Factory432_Activator {
23
 
24
  /**
25
  * Curent plugin.
26
  *
27
- * @var Wbcr_Factory432_Plugin
28
  */
29
  public $plugin;
30
 
31
- public function __construct( Wbcr_Factory432_Plugin $plugin ) {
32
  $this->plugin = $plugin;
33
  }
34
 
19
  *
20
  * @since 1.0.0
21
  */
22
+ abstract class Wbcr_Factory439_Activator {
23
 
24
  /**
25
  * Curent plugin.
26
  *
27
+ * @var Wbcr_Factory439_Plugin
28
  */
29
  public $plugin;
30
 
31
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
32
  $this->plugin = $plugin;
33
  }
34
 
libs/factory/core/includes/activation/class-factory-update.php CHANGED
@@ -20,16 +20,16 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  *
21
  * @since 1.0.0
22
  */
23
- abstract class Wbcr_Factory432_Update {
24
 
25
  /**
26
  * Current plugin
27
  *
28
- * @var Wbcr_Factory432_Plugin
29
  */
30
  var $plugin;
31
 
32
- public function __construct( Wbcr_Factory432_Plugin $plugin ) {
33
  $this->plugin = $plugin;
34
  }
35
 
20
  *
21
  * @since 1.0.0
22
  */
23
+ abstract class Wbcr_Factory439_Update {
24
 
25
  /**
26
  * Current plugin
27
  *
28
+ * @var Wbcr_Factory439_Plugin
29
  */
30
  var $plugin;
31
 
32
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
33
  $this->plugin = $plugin;
34
  }
35
 
libs/factory/core/includes/assets-managment/class-factory-assets-list.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  *
20
  * @since 1.0.0
21
  */
22
- class Wbcr_Factory432_AssetsList {
23
 
24
  protected $all = [];
25
  public $header_place = [];
@@ -29,15 +29,15 @@ class Wbcr_Factory432_AssetsList {
29
  protected $default_place;
30
 
31
  /**
32
- * @var Wbcr_Factory432_Plugin
33
  */
34
  protected $plugin;
35
 
36
  /**
37
- * @param Wbcr_Factory432_Plugin $plugin
38
  * @param bool $defaultIsFooter
39
  */
40
- public function __construct( Wbcr_Factory432_Plugin $plugin, $defaultIsFooter = true ) {
41
  $this->plugin = $plugin;
42
 
43
  if ( $defaultIsFooter ) {
19
  *
20
  * @since 1.0.0
21
  */
22
+ class Wbcr_Factory439_AssetsList {
23
 
24
  protected $all = [];
25
  public $header_place = [];
29
  protected $default_place;
30
 
31
  /**
32
+ * @var Wbcr_Factory439_Plugin
33
  */
34
  protected $plugin;
35
 
36
  /**
37
+ * @param Wbcr_Factory439_Plugin $plugin
38
  * @param bool $defaultIsFooter
39
  */
40
+ public function __construct( Wbcr_Factory439_Plugin $plugin, $defaultIsFooter = true ) {
41
  $this->plugin = $plugin;
42
 
43
  if ( $defaultIsFooter ) {
libs/factory/core/includes/assets-managment/class-factory-script-list.php CHANGED
@@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_Factory432_ScriptList extends Wbcr_Factory432_AssetsList {
24
 
25
  public $localize_data = [];
26
  public $use_ajax = false;
@@ -149,7 +149,7 @@ class Wbcr_Factory432_ScriptList extends Wbcr_Factory432_AssetsList {
149
  * @param string $varname
150
  * @param array $data
151
  *
152
- * @return Wbcr_Factory432_ScriptList $this
153
  */
154
  public function localize( $varname, $data ) {
155
  $bindTo = count( $this->all ) == 0 ? null : end( $this->all );
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_Factory439_ScriptList extends Wbcr_Factory439_AssetsList {
24
 
25
  public $localize_data = [];
26
  public $use_ajax = false;
149
  * @param string $varname
150
  * @param array $data
151
  *
152
+ * @return Wbcr_Factory439_ScriptList $this
153
  */
154
  public function localize( $varname, $data ) {
155
  $bindTo = count( $this->all ) == 0 ? null : end( $this->all );
libs/factory/core/includes/assets-managment/class-factory-style-list.php CHANGED
@@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_Factory432_StyleList extends Wbcr_Factory432_AssetsList {
24
 
25
  /**
26
  * Adds new items to the collection (default place).
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_Factory439_StyleList extends Wbcr_Factory439_AssetsList {
24
 
25
  /**
26
  * Adds new items to the collection (default place).
libs/factory/core/includes/class-check-compatibility.php CHANGED
@@ -75,19 +75,19 @@ if ( ! class_exists( 'Wbcr_Factory_Compatibility' ) ) {
75
  $notice_text = $notice_default_text = '';
76
  $notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
77
 
78
- $notice_default_text .= sprintf( __( 'The %s plugin has stopped.', 'wbcr_factory_clearfy_224' ), $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_432' ), $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_432' ), $this->required_wp_version ) . '<br>';
91
  }
92
 
93
  if ( $has_one ) {
75
  $notice_text = $notice_default_text = '';
76
  $notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
77
 
78
+ $notice_default_text .= sprintf( __( 'The %s plugin has stopped.', 'wbcr_factory_clearfy_230' ), $this->plugin_title ) . ' ';
79
  $notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
80
 
81
  $has_one = false;
82
 
83
  if ( ! $this->isPhpCompatibility() ) {
84
  $has_one = true;
85
+ $notice_text .= '- ' . sprintf( __( 'You need to update the PHP version to %s or higher!', 'wbcr_factory_439' ), $this->required_php_version ) . '<br>';
86
  }
87
 
88
  if ( ! $this->isWpCompatibility() ) {
89
  $has_one = true;
90
+ $notice_text .= '- ' . sprintf( __( 'You need to update WordPress to %s or higher!', 'wbcr_factory_439' ), $this->required_wp_version ) . '<br>';
91
  }
92
 
93
  if ( $has_one ) {
libs/factory/core/includes/class-factory-migrations.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432;
4
 
5
  use Exception;
6
- use Wbcr_Factory432_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
@@ -35,11 +35,11 @@ class Migrations {
35
  /**
36
  * Migrations constructor.
37
  *
38
- * @param Wbcr_Factory432_Plugin $plugin
39
  *
40
  * @throws Exception
41
  */
42
- public function __construct( Wbcr_Factory432_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_432' ) . "</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_432' ) . '</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_432" ) . ' ' . date( "Y-m-d H:i:s", $this->get_plugin_activated_time() ) . "<br>";
166
 
167
- $notice_text .= __( "Old plugin version (debug):", "wbcr_factory_432" ) . ' ' . $this->get_old_plugin_version() . "<br>";
168
- $notice_text .= __( "Current plugin version:", "wbcr_factory_432" ) . ' ' . $this->get_current_plugin_version() . "<br>";
169
- $notice_text .= __( "Need migration:", "wbcr_factory_432" ) . ' ' . ( $this->need_migration() ? "true" : "false" ) . "<br><br>";
170
- $notice_text .= "<a href='{$migrate_url}' class='button button-default'>" . __( "Migrate now", "wbcr_factory_432" ) . "</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_432' ) . '</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_432' ) );
509
  }
510
 
511
  $tokens = token_get_all( $phpCode );
1
  <?php
2
 
3
+ namespace WBCR\Factory_439;
4
 
5
  use Exception;
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
35
  /**
36
  * Migrations constructor.
37
  *
38
+ * @param Wbcr_Factory439_Plugin $plugin
39
  *
40
  * @throws Exception
41
  */
42
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
43
 
44
  $this->plugin = $plugin;
45
  $plugin_name = $plugin->getPluginName();
129
  $fix_migration_error_url = add_query_arg( 'wbcr_factory_fix_migration_error', 1 );
130
 
131
  $notice_text = $migration_error_text;
132
+ $notice_text .= "<br><br><a href='{$fix_migration_error_url}' class='button button-default'>" . __( 'I fixed, confirm migration', 'wbcr_factory_439' ) . "</a>";
133
 
134
  $notices[] = [
135
  'id' => 'migration_debug_bar',
136
  'type' => 'error',
137
  'dismissible' => false,
138
  'dismiss_expires' => 0,
139
+ 'text' => '<p><b>' . $this->plugin->getPluginTitle() . ' ' . __( 'migration error', 'wbcr_factory_439' ) . '</b><br>' . $notice_text . '</p>'
140
  ];
141
 
142
  return $notices;
162
 
163
  $migrate_url = add_query_arg( 'wbcr_factory_test_migration', 1 );
164
 
165
+ $notice_text = __( "Plugin activated:", "wbcr_factory_439" ) . ' ' . date( "Y-m-d H:i:s", $this->get_plugin_activated_time() ) . "<br>";
166
 
167
+ $notice_text .= __( "Old plugin version (debug):", "wbcr_factory_439" ) . ' ' . $this->get_old_plugin_version() . "<br>";
168
+ $notice_text .= __( "Current plugin version:", "wbcr_factory_439" ) . ' ' . $this->get_current_plugin_version() . "<br>";
169
+ $notice_text .= __( "Need migration:", "wbcr_factory_439" ) . ' ' . ( $this->need_migration() ? "true" : "false" ) . "<br><br>";
170
+ $notice_text .= "<a href='{$migrate_url}' class='button button-default'>" . __( "Migrate now", "wbcr_factory_439" ) . "</a><br>";
171
 
172
  $notices[] = [
173
  'id' => 'migration_debug_bar',
174
  'type' => 'warning',
175
  'dismissible' => false,
176
  'dismiss_expires' => 0,
177
+ 'text' => '<p><b style="color:red;">' . $this->plugin->getPluginTitle() . ' ' . __( 'migrations DEBUG bar', 'wbcr_factory_439' ) . '</b><br>' . $notice_text . '</p>'
178
  ];
179
 
180
  return $notices;
505
  $classes = [];
506
 
507
  if ( ! function_exists( 'token_get_all' ) ) {
508
+ throw new Exception( __( 'There is no PHP Tokenizer extension installed on your server, you cannot use the token_get_all function.', 'wbcr_factory_439' ) );
509
  }
510
 
511
  $tokens = token_get_all( $phpCode );
libs/factory/core/includes/class-factory-notices.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432;
4
 
5
- use Wbcr_Factory432_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_Factory432_Plugin
31
  */
32
  protected $plugin;
33
  /**
@@ -58,7 +58,7 @@ class Notices {
58
  /**
59
  * Инициализируем уведомлений сразу после загрузки модуля уведомлений
60
  *
61
- * @param Wbcr_Factory432_Plugin $plugin
62
  */
63
  public function __construct($plugin)
64
  {
@@ -86,7 +86,7 @@ class Notices {
86
  public function currentScreenAction()
87
  {
88
  /**
89
- * @since 2.1.2 - Добавлен, модуль factory_notices_000 был удален. Поэтому в этому хуке мы заменили префикс на factory_432
90
  */
91
  $this->notices = apply_filters('wbcr/factory/admin_notices', $this->notices, $this->plugin->getPluginName());
92
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_439;
4
 
5
+ use Wbcr_Factory439_Plugin;
6
 
7
  // Exit if accessed directly
8
  if( !defined('ABSPATH') ) {
27
  class Notices {
28
 
29
  /**
30
+ * @var Wbcr_Factory439_Plugin
31
  */
32
  protected $plugin;
33
  /**
58
  /**
59
  * Инициализируем уведомлений сразу после загрузки модуля уведомлений
60
  *
61
+ * @param Wbcr_Factory439_Plugin $plugin
62
  */
63
  public function __construct($plugin)
64
  {
86
  public function currentScreenAction()
87
  {
88
  /**
89
+ * @since 2.1.2 - Добавлен, модуль factory_notices_000 был удален. Поэтому в этому хуке мы заменили префикс на factory_439
90
  */
91
  $this->notices = apply_filters('wbcr/factory/admin_notices', $this->notices, $this->plugin->getPluginName());
92
 
libs/factory/core/includes/class-factory-options.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432;
4
 
5
  // Exit if accessed directly
6
  use Exception;
@@ -10,7 +10,7 @@ if ( ! defined( 'ABSPATH' ) ) {
10
  }
11
 
12
  /**
13
- * Трейт используется для расширения базового класса плагина Wbcr_Factory432_Base, позволяя работать с опциями плагина.
14
  *
15
  * Этот трейт является оберткой для Wordpress функций get_option, get_site_option, update_option, update_site_option,
16
  * delete_option, delete_site_option. Основная задача была получать, обновлять, удалять опции без использования префиксов,
1
  <?php
2
 
3
+ namespace WBCR\Factory_439;
4
 
5
  // Exit if accessed directly
6
  use Exception;
10
  }
11
 
12
  /**
13
+ * Трейт используется для расширения базового класса плагина Wbcr_Factory439_Base, позволяя работать с опциями плагина.
14
  *
15
  * Этот трейт является оберткой для Wordpress функций get_option, get_site_option, update_option, update_site_option,
16
  * delete_option, delete_site_option. Основная задача была получать, обновлять, удалять опции без использования префиксов,
libs/factory/core/includes/class-factory-plugin-abstract.php CHANGED
@@ -24,42 +24,42 @@ if( !defined('ABSPATH') ) {
24
  * @package factory-core
25
  *
26
  */
27
- abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
28
 
29
  /**
30
- * Instance class Wbcr_Factory432_Request, required manages http requests
31
  *
32
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/390561806
33
- * @var Wbcr_Factory432_Request
34
  */
35
  public $request;
36
 
37
  /**
38
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/393936924
39
- * @var \WBCR\Factory_432\Premium\Provider
40
  */
41
  public $premium;
42
 
43
  /**
44
  * The Bootstrap Manager class
45
  *
46
- * @var Wbcr_FactoryBootstrap433_Manager
47
  */
48
  public $bootstrap;
49
 
50
  /**
51
  * The Bootstrap Manager class
52
  *
53
- * @var Wbcr_FactoryForms430_Manager
54
  */
55
  public $forms;
56
 
57
  /**
58
- * Простой массив со списком зарегистрированных классов унаследованных от Wbcr_Factory432_Activator.
59
  * Классы активации используются для упаковки набора функций, которые нужно выполнить во время
60
  * активации плагина.
61
  *
62
- * @var array[] Wbcr_Factory432_Activator
63
  */
64
  protected $activator_class = [];
65
 
@@ -86,10 +86,19 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
86
  *
87
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
88
  * @since 4.1.9
89
- * @var WBCR\Factory_Adverts_112\Base
90
  */
91
  private $adverts;
92
 
 
 
 
 
 
 
 
 
 
93
  /**
94
  * Инициализирует компоненты фреймворка и плагина.
95
  *
@@ -106,8 +115,8 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
106
 
107
  parent::__construct($plugin_path, $data);
108
 
109
- $this->request = new Wbcr_Factory432_Request();
110
- //$this->route = new Wbcr_Factory432_Route();
111
 
112
  // INIT PLUGIN FRAMEWORK MODULES
113
  // Framework modules should always be loaded first,
@@ -133,15 +142,53 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
133
 
134
  // INIT PLUGIN COMPONENTS
135
  $this->init_plugin_components();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
136
  }
137
 
 
 
 
 
 
 
 
138
  /**
139
  * Устанавливает класс менеджер, которому плагин будет делегировать подключение ресурсов (картинок,
140
  * скриптов, стилей) фреймворка.
141
  *
142
- * @param Wbcr_FactoryBootstrap433_Manager $bootstrap
143
  */
144
- public function setBootstap(Wbcr_FactoryBootstrap433_Manager $bootstrap)
145
  {
146
  $this->bootstrap = $bootstrap;
147
  }
@@ -149,9 +196,9 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
149
  /**
150
  * Устанавливает класс менеджер, которому будет делегирована работа с html формами фреймворка.
151
  *
152
- * @param Wbcr_FactoryForms430_Manager $forms
153
  */
154
- public function setForms(Wbcr_FactoryForms430_Manager $forms)
155
  {
156
  $this->forms = $forms;
157
  }
@@ -169,6 +216,22 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
169
  }
170
  }
171
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  /**
173
  * Устанавливает класс провайдера лицензий
174
  *
@@ -183,8 +246,8 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
183
  */
184
  public function set_license_provider($name, $class_name)
185
  {
186
- if( !isset(WBCR\Factory_432\Premium\Manager::$providers[$name]) ) {
187
- WBCR\Factory_432\Premium\Manager::$providers[$name] = $class_name;
188
  }
189
  }
190
 
@@ -202,8 +265,8 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
202
  */
203
  public function set_update_repository($name, $class_name)
204
  {
205
- if( !isset(WBCR\Factory_432\Updates\Upgrader::$repositories[$name]) ) {
206
- WBCR\Factory_432\Updates\Upgrader::$repositories[$name] = $class_name;
207
  }
208
  }
209
 
@@ -213,7 +276,7 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
213
  * Доступен глобально через метод app(), чаще всего используется для создания точек для ротации
214
  * рекламных объявлений.
215
  *
216
- * @return \WBCR\Factory_Adverts_112\Base
217
  * @since 1.1
218
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
219
  */
@@ -249,18 +312,18 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
249
 
250
  public function newScriptList()
251
  {
252
- return new Wbcr_Factory432_ScriptList($this);
253
  }
254
 
255
  public function newStyleList()
256
  {
257
- return new Wbcr_Factory432_StyleList($this);
258
  }
259
 
260
  /**
261
  * Все страницы плагина создаются через специальную обертку, за которую отвечает модуль
262
  * фреймворка pages. Разработчик создает собственный класс, унаследованный от
263
- * Wbcr_FactoryPages432_AdminPage, а затем регистрирует его через этот метод.
264
  * Метод выполняет подключение класса страницы и регистрирует его в модуле фреймворка
265
  * pages.
266
  *
@@ -270,7 +333,7 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
270
  * @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/222887949 - документация по созданию страниц
271
  *
272
  * @param string $class_name Имя регистрируемого класса страницы. Пример: WCL_Page_Name.
273
- * Регистрируемый класс должен быть унаследован от класса Wbcr_FactoryPages432_AdminPage.
274
  * @param string $file_path Абсолютный путь к файлу с классом страницы.
275
  *
276
  * @throws Exception
@@ -292,11 +355,11 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
292
  throw new Exception('A class with this name {' . $class_name . '} does not exist.');
293
  }
294
 
295
- if( !class_exists('Wbcr_FactoryPages432') ) {
296
- throw new Exception('The factory_pages_432 module is not included.');
297
  }
298
 
299
- Wbcr_FactoryPages432::register($this, $class_name);
300
  }
301
 
302
  /**
@@ -346,16 +409,16 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
346
  /**
347
  * @since 4.1.1 - change hook name
348
  */
349
- if( apply_filters("wbcr/factory_432/cancel_plugin_activation_{$this->plugin_name}", false) ) {
350
  return;
351
  }
352
 
353
  /**
354
- * wbcr_factory_432_plugin_activation
355
  *
356
  * @since 4.1.1 - deprecated
357
  */
358
- wbcr_factory_432_do_action_deprecated('wbcr_factory_432_plugin_activation', [
359
  $this
360
  ], '4.1.1', "wbcr/factory/plugin_activation");
361
 
@@ -364,7 +427,7 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
364
  *
365
  * @since 4.1.2 - deprecated
366
  */
367
- wbcr_factory_432_do_action_deprecated('wbcr/factory/plugin_activation', [
368
  $this
369
  ], '4.1.2', "wbcr/factory/before_plugin_activation");
370
 
@@ -380,16 +443,16 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
380
  *
381
  * @since 4.1.2 - deprecated
382
  */
383
- wbcr_factory_432_do_action_deprecated("wbcr/factory/plugin_{$this->plugin_name}_activation", [
384
  $this
385
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_activation");
386
 
387
  /**
388
- * wbcr_factory_432_plugin_activation_' . $this->plugin_name
389
  *
390
  * @since 4.1.1 - deprecated
391
  */
392
- wbcr_factory_432_do_action_deprecated('wbcr_factory_432_plugin_activation_' . $this->plugin_name, [
393
  $this
394
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_activation");
395
 
@@ -430,16 +493,16 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
430
  /**
431
  * @since 4.1.1 - change hook name
432
  */
433
- if( apply_filters("wbcr/factory_432/cancel_plugin_deactivation_{$this->plugin_name}", false) ) {
434
  return;
435
  }
436
 
437
  /**
438
- * wbcr_factory_432_plugin_deactivation
439
  *
440
  * @since 4.1.1 - deprecated
441
  */
442
- wbcr_factory_432_do_action_deprecated('wbcr_factory_432_plugin_deactivation', [
443
  $this
444
  ], '4.1.1', "wbcr/factory/plugin_deactivation");
445
 
@@ -448,7 +511,7 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
448
  *
449
  * @since 4.1.2 - deprecated
450
  */
451
- wbcr_factory_432_do_action_deprecated('wbcr/factory/plugin_deactivation', [
452
  $this
453
  ], '4.1.2', "wbcr/factory/before_plugin_deactivation");
454
 
@@ -460,11 +523,11 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
460
  do_action('wbcr/factory/plugin_deactivation', $this);
461
 
462
  /**
463
- * wbcr_factory_432_plugin_deactivation_ . $this->plugin_name
464
  *
465
  * @since 4.1.1 - deprecated
466
  */
467
- wbcr_factory_432_do_action_deprecated('wbcr_factory_432_plugin_deactivation_' . $this->plugin_name, [
468
  $this
469
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation");
470
 
@@ -473,7 +536,7 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
473
  *
474
  * @since 4.1.2 - deprecated
475
  */
476
- wbcr_factory_432_do_action_deprecated("wbcr/factory/plugin_{$this->plugin_name}_deactivation", [
477
  $this
478
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation");
479
 
@@ -511,8 +574,8 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
511
  */
512
  public function getPluginPageUrl($page_id, $args = [])
513
  {
514
- if( !class_exists('Wbcr_FactoryPages432') ) {
515
- throw new Exception('The factory_pages_432 module is not included.');
516
  }
517
 
518
  if( !is_admin() ) {
@@ -521,7 +584,120 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
521
  return null;
522
  }
523
 
524
- return Wbcr_FactoryPages432::getPageUrl($this, $page_id, $args);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
525
  }
526
 
527
  /**
@@ -622,12 +798,12 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
622
  /**
623
  * @since 4.1.1 - deprecated
624
  */
625
- wbcr_factory_432_do_action_deprecated('wbcr_factory_432_core_modules_loaded-' . $this->plugin_name, [], '4.1.1', "wbcr/factory_432/modules_loaded-" . $this->plugin_name);
626
 
627
  /**
628
  * @since 4.1.1 - add
629
  */
630
- do_action('wbcr/factory_432/modules_loaded-' . $this->plugin_name);
631
  }
632
 
633
 
@@ -654,7 +830,7 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
654
  });
655
 
656
  if( is_admin() ) {
657
- add_filter('wbcr_factory_432_core_admin_allow_multisite', '__return_true');
658
 
659
  register_activation_hook($this->get_paths()->main_file, [$this, 'activation_hook']);
660
  register_deactivation_hook($this->get_paths()->main_file, [$this, 'deactivation_hook']);
@@ -670,7 +846,7 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
670
  */
671
  protected function init_plugin_migrations()
672
  {
673
- new WBCR\Factory_432\Migrations($this);
674
  }
675
 
676
  /**
@@ -681,7 +857,7 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
681
  */
682
  protected function init_plugin_notices()
683
  {
684
- new Wbcr\Factory_432\Notices($this);
685
  }
686
 
687
  /**
@@ -697,7 +873,7 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
697
  protected function init_plugin_updates()
698
  {
699
  if( $this->has_updates ) {
700
- new WBCR\Factory_432\Updates\Upgrader($this);
701
  }
702
  }
703
 
@@ -720,11 +896,11 @@ abstract class Wbcr_Factory432_Plugin extends Wbcr_Factory432_Base {
720
  }
721
 
722
  // Создаем экземляр премиум менеджера, мы сможем к нему обращаться глобально.
723
- $this->premium = WBCR\Factory_432\Premium\Manager::instance($this, $this->license_settings);
724
 
725
  // Подключаем премиум апгрейдер
726
  if( isset($this->license_settings['has_updates']) && $this->license_settings['has_updates'] ) {
727
- new WBCR\Factory_432\Updates\Premium_Upgrader($this);
728
  }
729
  }
730
  }
24
  * @package factory-core
25
  *
26
  */
27
+ abstract class Wbcr_Factory439_Plugin extends Wbcr_Factory439_Base {
28
 
29
  /**
30
+ * Instance class Wbcr_Factory439_Request, required manages http requests
31
  *
32
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/390561806
33
+ * @var Wbcr_Factory439_Request
34
  */
35
  public $request;
36
 
37
  /**
38
  * @see https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/393936924
39
+ * @var \WBCR\Factory_439\Premium\Provider
40
  */
41
  public $premium;
42
 
43
  /**
44
  * The Bootstrap Manager class
45
  *
46
+ * @var Wbcr_FactoryBootstrap439_Manager
47
  */
48
  public $bootstrap;
49
 
50
  /**
51
  * The Bootstrap Manager class
52
  *
53
+ * @var Wbcr_FactoryForms436_Manager
54
  */
55
  public $forms;
56
 
57
  /**
58
+ * Простой массив со списком зарегистрированных классов унаследованных от Wbcr_Factory439_Activator.
59
  * Классы активации используются для упаковки набора функций, которые нужно выполнить во время
60
  * активации плагина.
61
  *
62
+ * @var array[] Wbcr_Factory439_Activator
63
  */
64
  protected $activator_class = [];
65
 
86
  *
87
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
88
  * @since 4.1.9
89
+ * @var WBCR\Factory_Adverts_117\Base
90
  */
91
  private $adverts;
92
 
93
+ /**
94
+ * The Logger class
95
+ *
96
+ * @author Artem Prihodko <webtemyk@yandex.ru>
97
+ * @since 4.3.7
98
+ * @var WBCR\Factory_Logger_101\Logger
99
+ */
100
+ public $logger;
101
+
102
  /**
103
  * Инициализирует компоненты фреймворка и плагина.
104
  *
115
 
116
  parent::__construct($plugin_path, $data);
117
 
118
+ $this->request = new Wbcr_Factory439_Request();
119
+ //$this->route = new Wbcr_Factory439_Route();
120
 
121
  // INIT PLUGIN FRAMEWORK MODULES
122
  // Framework modules should always be loaded first,
142
 
143
  // INIT PLUGIN COMPONENTS
144
  $this->init_plugin_components();
145
+
146
+ if( wp_doing_ajax() && isset($_REQUEST['action']) ) {
147
+ if( "wfactory-439-intall-component" == $_REQUEST['action'] ) {
148
+ add_action('wp_ajax_wfactory-439-intall-component', [$this, 'ajax_handler_install_components']);
149
+ }
150
+
151
+ if( "wfactory-439-prepare-component" == $_REQUEST['action'] ) {
152
+ add_action('wp_ajax_wfactory-439-prepare-component', [$this, 'ajax_handler_prepare_component']);
153
+ }
154
+ if( "wfactory-439-creativemotion-install-plugin" == $_REQUEST['action'] ) {
155
+ add_action('wp_ajax_wfactory-439-creativemotion-install-plugin', [
156
+ $this,
157
+ 'ajax_handler_install_creativemotion_plugins'
158
+ ]);
159
+ }
160
+ }
161
+ }
162
+
163
+ // Ajax Handlers
164
+ // --------------------------------------------------------
165
+
166
+ public function ajax_handler_install_components()
167
+ {
168
+ require_once FACTORY_439_DIR . '/ajax/install-addons.php';
169
+ wfactory_439_install_components($this);
170
+ }
171
+
172
+ public function ajax_handler_prepare_component()
173
+ {
174
+ require_once FACTORY_439_DIR . '/ajax/install-addons.php';
175
+ wfactory_439_prepare_component($this);
176
  }
177
 
178
+ public function ajax_handler_install_creativemotion_plugins()
179
+ {
180
+ require_once FACTORY_439_DIR . '/ajax/install-addons.php';
181
+ wfactory_439_creativemotion_install_plugin($this);
182
+ }
183
+ // --------------------------------------------------------
184
+
185
  /**
186
  * Устанавливает класс менеджер, которому плагин будет делегировать подключение ресурсов (картинок,
187
  * скриптов, стилей) фреймворка.
188
  *
189
+ * @param Wbcr_FactoryBootstrap439_Manager $bootstrap
190
  */
191
+ public function setBootstap(Wbcr_FactoryBootstrap439_Manager $bootstrap)
192
  {
193
  $this->bootstrap = $bootstrap;
194
  }
196
  /**
197
  * Устанавливает класс менеджер, которому будет делегирована работа с html формами фреймворка.
198
  *
199
+ * @param Wbcr_FactoryForms436_Manager $forms
200
  */
201
+ public function setForms(Wbcr_FactoryForms436_Manager $forms)
202
  {
203
  $this->forms = $forms;
204
  }
216
  }
217
  }
218
 
219
+ /**
220
+ * Устанавливает класс менеджер, которому будет делегирована работа с объявлениями в Wordpress
221
+ *
222
+ * @param string $class_name Logger class name
223
+ * @param array $settings Logger settings
224
+ *
225
+ * @author Artem Prihodko <webtemyk@yandex.ru>
226
+ * @since 4.3.7
227
+ */
228
+ public function set_logger($class_name, $settings = [])
229
+ {
230
+ if( empty($this->logger) ) {
231
+ $this->logger = new $class_name($this, $settings);
232
+ }
233
+ }
234
+
235
  /**
236
  * Устанавливает класс провайдера лицензий
237
  *
246
  */
247
  public function set_license_provider($name, $class_name)
248
  {
249
+ if( !isset(WBCR\Factory_439\Premium\Manager::$providers[$name]) ) {
250
+ WBCR\Factory_439\Premium\Manager::$providers[$name] = $class_name;
251
  }
252
  }
253
 
265
  */
266
  public function set_update_repository($name, $class_name)
267
  {
268
+ if( !isset(WBCR\Factory_439\Updates\Upgrader::$repositories[$name]) ) {
269
+ WBCR\Factory_439\Updates\Upgrader::$repositories[$name] = $class_name;
270
  }
271
  }
272
 
276
  * Доступен глобально через метод app(), чаще всего используется для создания точек для ротации
277
  * рекламных объявлений.
278
  *
279
+ * @return \WBCR\Factory_Adverts_117\Base
280
  * @since 1.1
281
  * @author Alexander Kovalev <alex.kovalevv@gmail.com>
282
  */
312
 
313
  public function newScriptList()
314
  {
315
+ return new Wbcr_Factory439_ScriptList($this);
316
  }
317
 
318
  public function newStyleList()
319
  {
320
+ return new Wbcr_Factory439_StyleList($this);
321
  }
322
 
323
  /**
324
  * Все страницы плагина создаются через специальную обертку, за которую отвечает модуль
325
  * фреймворка pages. Разработчик создает собственный класс, унаследованный от
326
+ * Wbcr_FactoryPages438_AdminPage, а затем регистрирует его через этот метод.
327
  * Метод выполняет подключение класса страницы и регистрирует его в модуле фреймворка
328
  * pages.
329
  *
333
  * @see https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/222887949 - документация по созданию страниц
334
  *
335
  * @param string $class_name Имя регистрируемого класса страницы. Пример: WCL_Page_Name.
336
+ * Регистрируемый класс должен быть унаследован от класса Wbcr_FactoryPages438_AdminPage.
337
  * @param string $file_path Абсолютный путь к файлу с классом страницы.
338
  *
339
  * @throws Exception
355
  throw new Exception('A class with this name {' . $class_name . '} does not exist.');
356
  }
357
 
358
+ if( !class_exists('Wbcr_FactoryPages438') ) {
359
+ throw new Exception('The factory_pages_438 module is not included.');
360
  }
361
 
362
+ Wbcr_FactoryPages438::register($this, $class_name);
363
  }
364
 
365
  /**
409
  /**
410
  * @since 4.1.1 - change hook name
411
  */
412
+ if( apply_filters("wbcr/factory_439/cancel_plugin_activation_{$this->plugin_name}", false) ) {
413
  return;
414
  }
415
 
416
  /**
417
+ * wbcr_factory_439_plugin_activation
418
  *
419
  * @since 4.1.1 - deprecated
420
  */
421
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_plugin_activation', [
422
  $this
423
  ], '4.1.1', "wbcr/factory/plugin_activation");
424
 
427
  *
428
  * @since 4.1.2 - deprecated
429
  */
430
+ wbcr_factory_439_do_action_deprecated('wbcr/factory/plugin_activation', [
431
  $this
432
  ], '4.1.2', "wbcr/factory/before_plugin_activation");
433
 
443
  *
444
  * @since 4.1.2 - deprecated
445
  */
446
+ wbcr_factory_439_do_action_deprecated("wbcr/factory/plugin_{$this->plugin_name}_activation", [
447
  $this
448
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_activation");
449
 
450
  /**
451
+ * wbcr_factory_439_plugin_activation_' . $this->plugin_name
452
  *
453
  * @since 4.1.1 - deprecated
454
  */
455
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_plugin_activation_' . $this->plugin_name, [
456
  $this
457
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_activation");
458
 
493
  /**
494
  * @since 4.1.1 - change hook name
495
  */
496
+ if( apply_filters("wbcr/factory_439/cancel_plugin_deactivation_{$this->plugin_name}", false) ) {
497
  return;
498
  }
499
 
500
  /**
501
+ * wbcr_factory_439_plugin_deactivation
502
  *
503
  * @since 4.1.1 - deprecated
504
  */
505
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_plugin_deactivation', [
506
  $this
507
  ], '4.1.1', "wbcr/factory/plugin_deactivation");
508
 
511
  *
512
  * @since 4.1.2 - deprecated
513
  */
514
+ wbcr_factory_439_do_action_deprecated('wbcr/factory/plugin_deactivation', [
515
  $this
516
  ], '4.1.2', "wbcr/factory/before_plugin_deactivation");
517
 
523
  do_action('wbcr/factory/plugin_deactivation', $this);
524
 
525
  /**
526
+ * wbcr_factory_439_plugin_deactivation_ . $this->plugin_name
527
  *
528
  * @since 4.1.1 - deprecated
529
  */
530
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_plugin_deactivation_' . $this->plugin_name, [
531
  $this
532
  ], '4.1.1', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation");
533
 
536
  *
537
  * @since 4.1.2 - deprecated
538
  */
539
+ wbcr_factory_439_do_action_deprecated("wbcr/factory/plugin_{$this->plugin_name}_deactivation", [
540
  $this
541
  ], '4.1.2', "wbcr/factory/before_plugin_{$this->plugin_name}_deactivation");
542
 
574
  */
575
  public function getPluginPageUrl($page_id, $args = [])
576
  {
577
+ if( !class_exists('Wbcr_FactoryPages438') ) {
578
+ throw new Exception('The factory_pages_438 module is not included.');
579
  }
580
 
581
  if( !is_admin() ) {
584
  return null;
585
  }
586
 
587
+ return Wbcr_FactoryPages438::getPageUrl($this, $page_id, $args);
588
+ }
589
+
590
+ /**
591
+ * Allows you to get a button to install the plugin component
592
+ *
593
+ * @param $component_type
594
+ * @param $slug
595
+ * param $premium
596
+ *
597
+ * @return \WBCR\Factory_439\Components\Install_Button
598
+ */
599
+ public function get_install_component_button($component_type, $slug)
600
+ {
601
+ require_once FACTORY_439_DIR . '/includes/components/class-install-component-button.php';
602
+
603
+ return new \WBCR\Factory_439\Components\Install_Button($this, $component_type, $slug);
604
+ }
605
+
606
+ /**
607
+ * Allows you to get a button to delete the plugin component
608
+ *
609
+ * @param $component_type
610
+ * @param $slug
611
+ *
612
+ * @return \WBCR\Factory_439\Components\Delete_Button
613
+ */
614
+ public function get_delete_component_button($component_type, $slug)
615
+ {
616
+ require_once FACTORY_439_DIR . '/includes/components/class-delete-component-button.php';
617
+
618
+ return new WBCR\Factory_439\Components\Delete_Button($this, $component_type, $slug);
619
+ }
620
+
621
+ /**
622
+ * @param string $component_name
623
+ *
624
+ * @return bool
625
+ */
626
+ public function is_activate_component($component_name)
627
+ {
628
+ if( !is_string($component_name) ) {
629
+ return false;
630
+ }
631
+
632
+ $deactivate_components = $this->getPopulateOption('deactive_preinstall_components', []);
633
+
634
+ if( !is_array($deactivate_components) ) {
635
+ $deactivate_components = [];
636
+ }
637
+
638
+ if( $deactivate_components && in_array($component_name, $deactivate_components) ) {
639
+ return false;
640
+ }
641
+
642
+ return true;
643
+ }
644
+
645
+ /**
646
+ * @param string $component_name
647
+ *
648
+ * @return bool
649
+ */
650
+ public function activate_component($component_name)
651
+ {
652
+ if( $this->is_activate_component($component_name) ) {
653
+ return true;
654
+ }
655
+
656
+ do_action('wfactory/pre_activate_component', $component_name);
657
+
658
+ $deactivate_components = $this->getPopulateOption('deactive_preinstall_components', []);
659
+
660
+ if( !empty($deactivate_components) && is_array($deactivate_components) ) {
661
+ $index = array_search($component_name, $deactivate_components);
662
+ unset($deactivate_components[$index]);
663
+ }
664
+
665
+ if( empty($deactivate_components) ) {
666
+ $this->deletePopulateOption('deactive_preinstall_components');
667
+ } else {
668
+ $this->updatePopulateOption('deactive_preinstall_components', $deactivate_components);
669
+ }
670
+
671
+ return true;
672
+ }
673
+
674
+ /**
675
+ * @param string $component_name
676
+ *
677
+ * @return bool
678
+ */
679
+ public function deactivate_component($component_name)
680
+ {
681
+ if( !$this->is_activate_component($component_name) ) {
682
+ return true;
683
+ }
684
+
685
+ do_action('wfactory/pre_deactivate_component', $component_name);
686
+
687
+ $deactivate_components = $this->getPopulateOption('deactive_preinstall_components', []);
688
+
689
+ if( !empty($deactivate_components) && is_array($deactivate_components) ) {
690
+ $deactivate_components[] = $component_name;
691
+ } else {
692
+ $deactivate_components = [];
693
+ $deactivate_components[] = $component_name;
694
+ }
695
+
696
+ $this->updatePopulateOption('deactive_preinstall_components', $deactivate_components);
697
+
698
+ do_action('wfactory/deactivated_component', $component_name);
699
+
700
+ return true;
701
  }
702
 
703
  /**
798
  /**
799
  * @since 4.1.1 - deprecated
800
  */
801
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_core_modules_loaded-' . $this->plugin_name, [], '4.1.1', "wbcr/factory_439/modules_loaded-" . $this->plugin_name);
802
 
803
  /**
804
  * @since 4.1.1 - add
805
  */
806
+ do_action('wbcr/factory_439/modules_loaded-' . $this->plugin_name);
807
  }
808
 
809
 
830
  });
831
 
832
  if( is_admin() ) {
833
+ add_filter('wbcr_factory_439_core_admin_allow_multisite', '__return_true');
834
 
835
  register_activation_hook($this->get_paths()->main_file, [$this, 'activation_hook']);
836
  register_deactivation_hook($this->get_paths()->main_file, [$this, 'deactivation_hook']);
846
  */
847
  protected function init_plugin_migrations()
848
  {
849
+ new WBCR\Factory_439\Migrations($this);
850
  }
851
 
852
  /**
857
  */
858
  protected function init_plugin_notices()
859
  {
860
+ new Wbcr\Factory_439\Notices($this);
861
  }
862
 
863
  /**
873
  protected function init_plugin_updates()
874
  {
875
  if( $this->has_updates ) {
876
+ new WBCR\Factory_439\Updates\Upgrader($this);
877
  }
878
  }
879
 
896
  }
897
 
898
  // Создаем экземляр премиум менеджера, мы сможем к нему обращаться глобально.
899
+ $this->premium = WBCR\Factory_439\Premium\Manager::instance($this, $this->license_settings);
900
 
901
  // Подключаем премиум апгрейдер
902
  if( isset($this->license_settings['has_updates']) && $this->license_settings['has_updates'] ) {
903
+ new WBCR\Factory_439\Updates\Premium_Upgrader($this);
904
  }
905
  }
906
  }
libs/factory/core/includes/class-factory-plugin-base.php CHANGED
@@ -5,7 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
5
  }
6
 
7
  /**
8
- * Базовый класс для создания нового плагина. Полную реализацию класса смотрите в Wbcr_Factory432_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_Factory432_Base {
21
 
22
- use WBCR\Factory_432\Options;
23
 
24
  /**
25
  * Обязательное свойство. Префикс, используется для создания пространство имен.
@@ -81,7 +81,7 @@ class Wbcr_Factory432_Base {
81
  * https://robin-image-optimizer.webcraftic.com/premium-features.
82
  *
83
  * Это свойство заполняется для того, чтобы в процессе разработки вы могли использовать
84
- * экземпляр класса \WBCR\Factory_432\Entities\Support, для получения информации о сайте плагина.
85
  * Тем самым вы избавляете себя от жесткого прописывания ссылок на лендинг плагина и
86
  * можете изменить все ссылки в одном месте.
87
  *
@@ -127,7 +127,7 @@ class Wbcr_Factory432_Base {
127
  * к примеру: freemius, codecanyon, templatemonster, вам нужно указать только настройки для
128
  * взаимодействия с выбранным вами провайдером. Каждая реализация провайдера лицензий может иметь
129
  * индивидуальный настройки, в этом примере приведены настройки для freemius провайдера
130
- * WBCR\Factory_432\Premium\Provider > WBCR\Factory_Freemius_120\Premium\Provider
131
  *
132
  * На текущий момент существует только реализация для freemius провайдера.
133
  *
@@ -177,9 +177,9 @@ class Wbcr_Factory432_Base {
177
  * }
178
  */
179
  protected $load_factory_modules = [
180
- [ 'libs/factory/bootstrap', 'factory_bootstrap_433', 'admin' ],
181
- [ 'libs/factory/forms', 'factory_forms_430', 'admin' ],
182
- [ 'libs/factory/pages', 'factory_pages_432', 'admin' ],
183
  ];
184
 
185
  /**
@@ -209,20 +209,20 @@ class Wbcr_Factory432_Base {
209
 
210
 
211
  /**
212
- * Экземпляр класса \WBCR\Factory_432\Entities\Support используется для получения информации
213
  * о сайте плагина. Чаще всего используется для получения ссылки на страницу с тарифами или
214
  * ссылки на форму обратной связи. Встроен механизм отслеживания по utm меткам.
215
  *
216
- * @var \WBCR\Factory_432\Entities\Support
217
  */
218
  protected $support;
219
 
220
  /**
221
- * Экземпляр класса \WBCR\Factory_432\Entities\Paths используется для получения информации о
222
  * путях плагина. Часто используется для получения путей или ссылок на место хранения плагина
223
  * или его входного файла.
224
  *
225
- * @var \WBCR\Factory_432\Entities\Paths
226
  */
227
  protected $paths;
228
 
@@ -270,8 +270,8 @@ class Wbcr_Factory432_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_432\Entities\Support( $this->support_details );
274
- $this->paths = new \WBCR\Factory_432\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_Factory432_Base {
391
  * Проверяет, включен ли премиум для этого плагина или нет.
392
  *
393
  * @return bool Возвращает true, если премиум пакет включен для этого плагина.
394
- * См. Wbcr_Factory432_Base::has_premium
395
  */
396
  public function has_premium() {
397
  return $this->has_premium;
@@ -400,7 +400,7 @@ class Wbcr_Factory432_Base {
400
  /**
401
  * Позволяет получить заголовок плагина.
402
  *
403
- * @return string Возвращает заголовок плагина. См. Wbcr_Factory432_Base::plugin_title
404
  */
405
  public function getPluginTitle() {
406
  return $this->plugin_title;
@@ -409,7 +409,7 @@ class Wbcr_Factory432_Base {
409
  /**
410
  * Позволяет получить префикс плагина.
411
  *
412
- * @return string Возвращает префикс плагина.См. Wbcr_Factory432_Base::prefix
413
  */
414
  public function getPrefix() {
415
  return $this->prefix;
@@ -418,7 +418,7 @@ class Wbcr_Factory432_Base {
418
  /**
419
  * Позволяет получить имя плагина.
420
  *
421
- * @return string Возвращает имя плагина. См. Wbcr_Factory432_Base::plugin_name
422
  */
423
  public function getPluginName() {
424
  return $this->plugin_name;
@@ -427,7 +427,7 @@ class Wbcr_Factory432_Base {
427
  /**
428
  * Позволяет получить версию плагина.
429
  *
430
- * @return string Возвращает версию плагина. См. Wbcr_Factory432_Base::plugin_version
431
  */
432
  public function getPluginVersion() {
433
  return $this->plugin_version;
@@ -449,7 +449,7 @@ class Wbcr_Factory432_Base {
449
  * какие-то данные не описанные в интерфейсе этого плагина.
450
  *
451
  * @param string $attr_name Имя атрибута, который нужно получить. Идентично ключу в массиве
452
- * Wbcr_Factory432_Base::plugin_data
453
  *
454
  * @return null
455
  */
@@ -462,18 +462,18 @@ class Wbcr_Factory432_Base {
462
  }
463
 
464
  /**
465
- * Предоставляет доступ к экземпляру класса \WBCR\Factory_432\Entities\Support.
466
  *
467
- * @return \WBCR\Factory_432\Entities\Support
468
  */
469
  public function get_support() {
470
  return $this->support;
471
  }
472
 
473
  /**
474
- * Предоставляет доступ к экземпляру класса \WBCR\Factory_432\Entities\Paths.
475
  *
476
- * @return \WBCR\Factory_432\Entities\Paths
477
  */
478
  public function get_paths() {
479
  return $this->paths;
@@ -482,7 +482,7 @@ class Wbcr_Factory432_Base {
482
  /**
483
  * Позволяет получить сырые данные плагина в виде объекта StdClass.
484
  *
485
- * @return object Возвращает объект с сырыми данными плагина. См. Wbcr_Factory432_Base::plugin_data
486
  */
487
  public function getPluginInfo() {
488
  return (object) $this->plugin_data;
5
  }
6
 
7
  /**
8
+ * Базовый класс для создания нового плагина. Полную реализацию класса смотрите в Wbcr_Factory439_Plugin
9
  *
10
  * Документация по классу: https://webcraftic.atlassian.net/wiki/spaces/FFD/pages/392724484
11
  * Документация по созданию плагина: https://webcraftic.atlassian.net/wiki/spaces/CNCFC/pages/327828
17
  * @since 1.0.0
18
  * @package factory-core
19
  */
20
+ class Wbcr_Factory439_Base {
21
 
22
+ use WBCR\Factory_439\Options;
23
 
24
  /**
25
  * Обязательное свойство. Префикс, используется для создания пространство имен.
81
  * https://robin-image-optimizer.webcraftic.com/premium-features.
82
  *
83
  * Это свойство заполняется для того, чтобы в процессе разработки вы могли использовать
84
+ * экземпляр класса \WBCR\Factory_439\Entities\Support, для получения информации о сайте плагина.
85
  * Тем самым вы избавляете себя от жесткого прописывания ссылок на лендинг плагина и
86
  * можете изменить все ссылки в одном месте.
87
  *
127
  * к примеру: freemius, codecanyon, templatemonster, вам нужно указать только настройки для
128
  * взаимодействия с выбранным вами провайдером. Каждая реализация провайдера лицензий может иметь
129
  * индивидуальный настройки, в этом примере приведены настройки для freemius провайдера
130
+ * WBCR\Factory_439\Premium\Provider > WBCR\Factory_Freemius_126\Premium\Provider
131
  *
132
  * На текущий момент существует только реализация для freemius провайдера.
133
  *
177
  * }
178
  */
179
  protected $load_factory_modules = [
180
+ [ 'libs/factory/bootstrap', 'factory_bootstrap_439', 'admin' ],
181
+ [ 'libs/factory/forms', 'factory_forms_436', 'admin' ],
182
+ [ 'libs/factory/pages', 'factory_pages_438', 'admin' ],
183
  ];
184
 
185
  /**
209
 
210
 
211
  /**
212
+ * Экземпляр класса \WBCR\Factory_439\Entities\Support используется для получения информации
213
  * о сайте плагина. Чаще всего используется для получения ссылки на страницу с тарифами или
214
  * ссылки на форму обратной связи. Встроен механизм отслеживания по utm меткам.
215
  *
216
+ * @var \WBCR\Factory_439\Entities\Support
217
  */
218
  protected $support;
219
 
220
  /**
221
+ * Экземпляр класса \WBCR\Factory_439\Entities\Paths используется для получения информации о
222
  * путях плагина. Часто используется для получения путей или ссылок на место хранения плагина
223
  * или его входного файла.
224
  *
225
+ * @var \WBCR\Factory_439\Entities\Paths
226
  */
227
  protected $paths;
228
 
270
  throw new Exception( 'One of the required attributes has not been passed (prefix, plugin_title, plugin_name, plugin_version, plugin_text_domain).' );
271
  }
272
 
273
+ $this->support = new \WBCR\Factory_439\Entities\Support( $this->support_details );
274
+ $this->paths = new \WBCR\Factory_439\Entities\Paths( $plugin_file );
275
 
276
  // used only in the module 'updates'
277
  $this->plugin_slug = ! empty( $this->plugin_name ) ? $this->plugin_name : basename( $plugin_file );
391
  * Проверяет, включен ли премиум для этого плагина или нет.
392
  *
393
  * @return bool Возвращает true, если премиум пакет включен для этого плагина.
394
+ * См. Wbcr_Factory439_Base::has_premium
395
  */
396
  public function has_premium() {
397
  return $this->has_premium;
400
  /**
401
  * Позволяет получить заголовок плагина.
402
  *
403
+ * @return string Возвращает заголовок плагина. См. Wbcr_Factory439_Base::plugin_title
404
  */
405
  public function getPluginTitle() {
406
  return $this->plugin_title;
409
  /**
410
  * Позволяет получить префикс плагина.
411
  *
412
+ * @return string Возвращает префикс плагина.См. Wbcr_Factory439_Base::prefix
413
  */
414
  public function getPrefix() {
415
  return $this->prefix;
418
  /**
419
  * Позволяет получить имя плагина.
420
  *
421
+ * @return string Возвращает имя плагина. См. Wbcr_Factory439_Base::plugin_name
422
  */
423
  public function getPluginName() {
424
  return $this->plugin_name;
427
  /**
428
  * Позволяет получить версию плагина.
429
  *
430
+ * @return string Возвращает версию плагина. См. Wbcr_Factory439_Base::plugin_version
431
  */
432
  public function getPluginVersion() {
433
  return $this->plugin_version;
449
  * какие-то данные не описанные в интерфейсе этого плагина.
450
  *
451
  * @param string $attr_name Имя атрибута, который нужно получить. Идентично ключу в массиве
452
+ * Wbcr_Factory439_Base::plugin_data
453
  *
454
  * @return null
455
  */
462
  }
463
 
464
  /**
465
+ * Предоставляет доступ к экземпляру класса \WBCR\Factory_439\Entities\Support.
466
  *
467
+ * @return \WBCR\Factory_439\Entities\Support
468
  */
469
  public function get_support() {
470
  return $this->support;
471
  }
472
 
473
  /**
474
+ * Предоставляет доступ к экземпляру класса \WBCR\Factory_439\Entities\Paths.
475
  *
476
+ * @return \WBCR\Factory_439\Entities\Paths
477
  */
478
  public function get_paths() {
479
  return $this->paths;
482
  /**
483
  * Позволяет получить сырые данные плагина в виде объекта StdClass.
484
  *
485
+ * @return object Возвращает объект с сырыми данными плагина. См. Wbcr_Factory439_Base::plugin_data
486
  */
487
  public function getPluginInfo() {
488
  return (object) $this->plugin_data;
libs/factory/core/includes/class-factory-requests.php CHANGED
@@ -11,7 +11,7 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  * @package factory-core
12
  */
13
 
14
- class Wbcr_Factory432_Request {
15
 
16
  /**
17
  * @param null $param
11
  * @package factory-core
12
  */
13
 
14
+ class Wbcr_Factory439_Request {
15
 
16
  /**
17
  * @param null $param
libs/factory/core/includes/class-factory-requirements.php CHANGED
@@ -12,8 +12,8 @@
12
  * @since 4.0.9
13
  */
14
  // @formatter:off
15
- if ( ! class_exists( 'Wbcr_Factory432_Requirements' ) ) {
16
- class Wbcr_Factory432_Requirements {
17
 
18
  /**
19
  * Factory framework version
@@ -242,7 +242,7 @@ if ( ! class_exists( 'Wbcr_Factory432_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_224' ), $this->plugin_title ) . ' ';
246
  $notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
247
 
248
  $has_one = false;
@@ -273,21 +273,21 @@ if ( ! class_exists( 'Wbcr_Factory432_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_432' ), $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_432' ), $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_432' ), $this->plugin_title );
291
  }
292
  }
293
  }
12
  * @since 4.0.9
13
  */
14
  // @formatter:off
15
+ if ( ! class_exists( 'Wbcr_Factory439_Requirements' ) ) {
16
+ class Wbcr_Factory439_Requirements {
17
 
18
  /**
19
  * Factory framework version
242
  $notice_text = $notice_default_text = '';
243
  $notice_default_text .= '<b>' . $this->plugin_title . ' ' . __( 'warning', '' ) . ':</b>' . '<br>';
244
 
245
+ $notice_default_text .= sprintf( __( 'The %s plugin has stopped.', 'wbcr_factory_clearfy_230' ), $this->plugin_title ) . ' ';
246
  $notice_default_text .= __( 'Possible reasons:', '' ) . ' <br>';
247
 
248
  $has_one = false;
273
  * @return string
274
  */
275
  protected function get_php_incompat_text() {
276
+ return sprintf( __( 'You need to update the PHP version to %s or higher!', 'wbcr_factory_439' ), $this->required_php_version );
277
  }
278
 
279
  /**
280
  * @return string
281
  */
282
  protected function get_wp_incompat_text() {
283
+ return sprintf( __( 'You need to update WordPress to %s or higher!', 'wbcr_factory_439' ), $this->required_wp_version );
284
  }
285
 
286
  /**
287
  * @return string
288
  */
289
  protected function get_plugin_already_activate_text() {
290
+ return sprintf( __( 'Plugin %s is already activated, you are trying to activate it again.', 'wbcr_factory_439' ), $this->plugin_title );
291
  }
292
  }
293
  }
libs/factory/core/includes/components/class-delete-component-button.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WBCR\Factory_439\Components;
4
+
5
+ /**
6
+ * This file groups the settings for quick setup
7
+ *
8
+ * @author Webcraftic <wordpress.webraftic@gmail.com>
9
+ * @copyright (c) 16.09.2017, Webcraftic
10
+ * @version 1.0
11
+ */
12
+
13
+ // Exit if accessed directly
14
+ if( !defined('ABSPATH') ) {
15
+ exit;
16
+ }
17
+
18
+ require_once 'class-install-component-button.php';
19
+
20
+ class Delete_Button extends Install_Button {
21
+
22
+ /**
23
+ * @throws \Exception
24
+ */
25
+ protected function build_wordpress()
26
+ {
27
+ parent::build_wordpress();
28
+
29
+ $this->action = 'delete';
30
+ $this->add_data('plugin-action', $this->action);
31
+ $this->remove_class('button-primary');
32
+ }
33
+
34
+ protected function build_internal()
35
+ {
36
+ // nothing
37
+ }
38
+
39
+ /**
40
+ * @param bool $echo
41
+ *
42
+ * @return string|void
43
+ */
44
+ public function get_button()
45
+ {
46
+ $button = '<a href="#" class="' . implode(' ', $this->get_classes()) . '" ' . implode(' ', $this->get_data()) . '><span class="dashicons dashicons-trash"></span></a>';
47
+
48
+ if( $this->type == 'internal' || !$this->is_plugin_install() || $this->is_plugin_activate() ) {
49
+ $button = '';
50
+ }
51
+
52
+ return $button;
53
+ }
54
+ }
55
+
libs/factory/core/includes/components/class-install-component-button.php ADDED
@@ -0,0 +1,460 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WBCR\Factory_439\Components;
4
+
5
+ /**
6
+ * This file groups the settings for quick setup
7
+ *
8
+ * @author Alex Kovalev <alex.kovalevv@gmail.com>
9
+ * @copyright (c) 16.09.2017, Webcraftic
10
+ * @version 1.0
11
+ */
12
+
13
+ // Exit if accessed directly
14
+ if( !defined('ABSPATH') ) {
15
+ exit;
16
+ }
17
+
18
+ class Install_Button {
19
+
20
+ protected $type;
21
+ protected $plugin_slug;
22
+
23
+ protected $classes = [
24
+ 'button',
25
+ 'wfactory-439-process-button'
26
+ ];
27
+ protected $data = [];
28
+ protected $base_path;
29
+
30
+ protected $action;
31
+
32
+ protected $url;
33
+
34
+ /**
35
+ * @param string $group_name
36
+ *
37
+ * @throws \Exception
38
+ * @since 4.3.3
39
+ */
40
+ public function __construct(\Wbcr_Factory439_Plugin $plugin, $type, $plugin_slug)
41
+ {
42
+ if( empty($type) || !is_string($plugin_slug) ) {
43
+ throw new \Exception('Empty type or plugin_slug attribute.');
44
+ }
45
+
46
+ $this->plugin = $plugin;
47
+ $this->type = $type;
48
+ $this->plugin_slug = $plugin_slug;
49
+
50
+ if( $this->type == 'wordpress' || $this->type == 'creativemotion' ) {
51
+ if( strpos(rtrim(trim($this->plugin_slug)), '/') !== false ) {
52
+ $this->base_path = $this->plugin_slug;
53
+ $base_path_parts = explode('/', $this->base_path);
54
+ if( sizeof($base_path_parts) === 2 ) {
55
+ $this->plugin_slug = $base_path_parts[0];
56
+ }
57
+ } else {
58
+ $this->base_path = $this->get_plugin_base_path_by_slug($this->plugin_slug);
59
+ }
60
+
61
+ $this->build_wordpress();
62
+ } else if( $this->type == 'internal' ) {
63
+ $this->build_internal();
64
+ } else {
65
+ throw new \Exception('Invalid button type.');
66
+ }
67
+
68
+ // Set default data
69
+ $this->add_data('storage', $this->type);
70
+ $this->add_data('i18n', \WbcrFactoryClearfy230_Helpers::getEscapeJson($this->get_i18n()));
71
+ $this->add_data('wpnonce', wp_create_nonce('updates'));
72
+ }
73
+
74
+ // Удалить, через несколько версий!
75
+ // Добавлено в 4.3.3
76
+ //--------------------------------------------------------
77
+
78
+ /**
79
+ * todo: для совместимости со старыми плагинами
80
+ * @return string
81
+ * @throws \Exception
82
+ * @since 4.3.3
83
+ */
84
+ public function getLink()
85
+ {
86
+ return $this->get_link();
87
+ }
88
+
89
+ /**
90
+ * todo: для совместимости со старыми плагинами
91
+ * @return string
92
+ * @since 4.3.3
93
+ */
94
+ public function getButton()
95
+ {
96
+ return $this->get_button();
97
+ }
98
+
99
+ /**
100
+ * Print an install a link
101
+ * todo: для совместимости со старыми плагинами
102
+ * @throws \Exception
103
+ * @since 4.3.3
104
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
105
+ */
106
+ public function renderLink()
107
+ {
108
+ echo $this->get_link();
109
+ }
110
+
111
+ /**
112
+ * Print an install button
113
+ * todo: для совместимости со старыми плагинами
114
+ *
115
+ * @throws \Exception
116
+ * @since 4.3.3
117
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
118
+ */
119
+ public function renderButton()
120
+ {
121
+ $this->render_button();
122
+ }
123
+
124
+ /**
125
+ * todo: для совместимости со старыми плагинами
126
+ * @param $class
127
+ *
128
+ * @throws \Exception
129
+ * @since 4.3.3
130
+ */
131
+ public function addClass($class)
132
+ {
133
+ $this->add_class($class);
134
+ }
135
+
136
+ /**
137
+ * todo: для совместимости со старыми плагинами
138
+ * @param $class
139
+ *
140
+ * @return bool
141
+ * @throws \Exception
142
+ * @since 4.3.3
143
+ */
144
+ public function removeClass($class)
145
+ {
146
+ return $this->remove_class($class);
147
+ }
148
+
149
+ //--------------------------------------------------------
150
+
151
+
152
+ /**
153
+ * @return bool
154
+ * @since 4.3.3
155
+ */
156
+ public function is_plugin_activate()
157
+ {
158
+ if( ($this->type == 'wordpress' || $this->type == 'creativemotion') && $this->is_plugin_install() ) {
159
+ require_once ABSPATH . '/wp-admin/includes/plugin.php';
160
+
161
+ return is_plugin_active($this->base_path);
162
+ } else if( $this->type == 'internal' ) {
163
+ $preinsatall_components = $this->plugin->getPopulateOption('deactive_preinstall_components', []);
164
+
165
+ return !in_array($this->plugin_slug, $preinsatall_components);
166
+ }
167
+
168
+ return false;
169
+ }
170
+
171
+ /**
172
+ * @return bool
173
+ * @since 4.3.3
174
+ */
175
+ public function is_plugin_install()
176
+ {
177
+ if( $this->type == 'wordpress' || $this->type == 'creativemotion' ) {
178
+ if( empty($this->base_path) ) {
179
+ return false;
180
+ }
181
+
182
+ // Check if the function get_plugins() is registered. It is necessary for the front-end
183
+ // usually get_plugins() only works in the admin panel.
184
+ if( !function_exists('get_plugins') ) {
185
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
186
+ }
187
+
188
+ $plugins = get_plugins();
189
+
190
+ if( isset($plugins[$this->base_path]) ) {
191
+ return true;
192
+ }
193
+ } else if( $this->type == 'internal' ) {
194
+ return true;
195
+ }
196
+
197
+ return false;
198
+ }
199
+
200
+ /**
201
+ * @param $class
202
+ *
203
+ * @throws \Exception
204
+ * @since 4.3.3
205
+ */
206
+ public function add_class($class)
207
+ {
208
+ if( !is_string($class) ) {
209
+ throw new \Exception('Attribute class must be a string.');
210
+ }
211
+ $this->classes[] = $class;
212
+ }
213
+
214
+ /**
215
+ * @param $class
216
+ *
217
+ * @return bool
218
+ * @throws \Exception
219
+ * @since 4.3.3
220
+ */
221
+ public function remove_class($class)
222
+ {
223
+ if( !is_string($class) ) {
224
+ throw new \Exception('Attribute class must be a string.');
225
+ }
226
+ $key = array_search($class, $this->classes);
227
+ if( isset($this->classes[$key]) ) {
228
+ unset($this->classes[$key]);
229
+
230
+ return true;
231
+ }
232
+
233
+ return false;
234
+ }
235
+
236
+ /**
237
+ * @param $name
238
+ * @param $value
239
+ *
240
+ * @throws \Exception
241
+ * @since 4.3.3
242
+ */
243
+ public function add_data($name, $value)
244
+ {
245
+ if( !is_string($name) || !is_string($value) ) {
246
+ throw new \Exception('Attributes name and value must be a string.');
247
+ }
248
+
249
+ $this->data[$name] = $value;
250
+ }
251
+
252
+ /**
253
+ * @param $name
254
+ *
255
+ * @return bool
256
+ * @throws \Exception
257
+ * @since 4.3.3
258
+ */
259
+ public function remove_data($name)
260
+ {
261
+ if( !is_string($name) ) {
262
+ throw new \Exception('Attribute name must be a string.');
263
+ }
264
+
265
+ if( isset($this->data[$name]) ) {
266
+ unset($this->data[$name]);
267
+
268
+ return true;
269
+ }
270
+
271
+ return false;
272
+ }
273
+
274
+ /**
275
+ * Print an install button
276
+ *
277
+ * @throws \Exception
278
+ * @since 4.3.3
279
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
280
+ */
281
+ public function render_button()
282
+ {
283
+ echo $this->get_button();
284
+ }
285
+
286
+ /**
287
+ * @return string
288
+ * @since 4.3.3
289
+ */
290
+ public function get_button()
291
+ {
292
+ $i18n = $this->get_i18n();
293
+
294
+ $button = '<a href="#" class="' . implode(' ', $this->get_classes()) . '" ' . implode(' ', $this->get_data()) . '>' . $i18n[$this->action] . '</a>';
295
+
296
+ return $button;
297
+ }
298
+
299
+ /**
300
+ * @return string
301
+ * @throws \Exception
302
+ * @since 4.3.3
303
+ */
304
+ public function get_link()
305
+ {
306
+ $this->remove_class('button');
307
+ $this->remove_class('button-default');
308
+ $this->remove_class('button-primary');
309
+
310
+ //$this->add_class('link');
311
+ $this->add_class('button-link');
312
+
313
+ return $this->get_button();
314
+ }
315
+
316
+ /**
317
+ * Print an install a link
318
+ *
319
+ * @throws \Exception
320
+ * @since 4.3.3
321
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
322
+ */
323
+ public function render_link()
324
+ {
325
+ echo $this->get_link();
326
+ }
327
+
328
+ /**
329
+ * @return array
330
+ * @since 4.3.3
331
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
332
+ */
333
+ protected function get_data()
334
+ {
335
+ $data_to_print = [];
336
+
337
+ foreach((array)$this->data as $key => $value) {
338
+ $data_to_print[$key] = 'data-' . esc_attr($key) . '="' . esc_attr($value) . '"';
339
+ }
340
+
341
+ return $data_to_print;
342
+ }
343
+
344
+ /**
345
+ * @return array
346
+ * @since 4.3.3
347
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
348
+ */
349
+ protected function get_classes()
350
+ {
351
+ return array_map('esc_attr', $this->classes);
352
+ }
353
+
354
+ /**
355
+ * @throws \Exception
356
+ * @since 4.3.3
357
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
358
+ */
359
+ protected function build_wordpress()
360
+ {
361
+ if( ('wordpress' === $this->type || 'creativemotion' === $this->type) && !empty($this->base_path) ) {
362
+
363
+ $this->action = 'install';
364
+
365
+ if( $this->is_plugin_install() ) {
366
+ $this->action = 'deactivate';
367
+ if( !$this->is_plugin_activate() ) {
368
+ $this->action = 'activate';
369
+ }
370
+ }
371
+
372
+ $this->add_data('plugin-action', $this->action);
373
+ $this->add_data('slug', $this->plugin_slug);
374
+ $this->add_data('plugin', $this->base_path);
375
+
376
+ if( $this->action == 'activate' ) {
377
+ $this->add_class('button-primary');
378
+ } else {
379
+ $this->add_class('button-default');
380
+ }
381
+ }
382
+ }
383
+
384
+ /**
385
+ * Configurate button of internal components
386
+ *
387
+ * @throws \Exception
388
+ * @since 4.3.3
389
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
390
+ */
391
+ protected function build_internal()
392
+ {
393
+ if( $this->type != 'internal' ) {
394
+ return;
395
+ }
396
+
397
+ $this->action = 'activate';
398
+
399
+ if( $this->is_plugin_activate() ) {
400
+ $this->action = 'deactivate';
401
+ }
402
+
403
+ $this->add_data('plugin-action', $this->action);
404
+ $this->add_data('plugin', $this->plugin_slug);
405
+
406
+ if( $this->action == 'activate' ) {
407
+ $this->add_class('button-primary');
408
+ } else {
409
+ $this->add_class('button-default');
410
+ }
411
+ }
412
+
413
+ /**
414
+ * Internalization for action buttons
415
+ *
416
+ * @return array
417
+ * @since 4.3.3
418
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
419
+ */
420
+ protected function get_i18n()
421
+ {
422
+ return [
423
+ 'activate' => __('Activate', 'wbcr_factory_439'),
424
+ 'install' => __('Install', 'wbcr_factory_439'),
425
+ 'deactivate' => __('Deactivate', 'wbcr_factory_439'),
426
+ 'delete' => __('Delete', 'wbcr_factory_439'),
427
+ 'loading' => __('Please wait...', 'wbcr_factory_439'),
428
+ 'preparation' => __('Preparation...', 'wbcr_factory_439'),
429
+ 'read' => __('Read more', 'wbcr_factory_439')
430
+ ];
431
+ }
432
+
433
+
434
+ /**
435
+ * Allows you to get the base path to the plugin in the directory wp-content/plugins/
436
+ *
437
+ * @param $slug - slug for example "clearfy", "hide-login-page"
438
+ *
439
+ * @return int|null|string - "clearfy/clearfy.php"
440
+ */
441
+ protected function get_plugin_base_path_by_slug($slug)
442
+ {
443
+ // Check if the function get_plugins() is registered. It is necessary for the front-end
444
+ // usually get_plugins() only works in the admin panel.
445
+ if( !function_exists('get_plugins') ) {
446
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
447
+ }
448
+
449
+ $plugins = get_plugins();
450
+
451
+ foreach($plugins as $base_path => $plugin) {
452
+ if( strpos($base_path, rtrim(trim($slug))) !== false ) {
453
+ return $base_path;
454
+ }
455
+ }
456
+
457
+ return null;
458
+ }
459
+ }
460
+
libs/factory/core/includes/entities/class-factory-paths.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
libs/factory/core/includes/entities/class-factory-support.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
libs/factory/core/includes/functions.php CHANGED
@@ -53,17 +53,17 @@ if ( ! function_exists( 'get_user_locale' ) ) {
53
  * @param string $message Optional. A message regarding the change.
54
  *
55
  * @return mixed
56
- * @see wbcr_factory_432_deprecated_hook()
57
  *
58
  */
59
- function wbcr_factory_432_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_432_deprecated_hook( $tag, $version, $replacement, $message );
67
 
68
  return apply_filters_ref_array( $tag, $args );
69
  }
@@ -89,7 +89,7 @@ function wbcr_factory_432_apply_filters_deprecated( $tag, $args, $version, $repl
89
  * @see _deprecated_hook()
90
  *
91
  */
92
- function wbcr_factory_432_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_432_do_action_deprecated( $tag, $args, $version, $replacem
98
  if ( ! has_action( $tag ) ) {
99
  return;
100
  }
101
- wbcr_factory_432_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_432_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_432_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_432_deprecated_hook( $hook, $version, $replacement = null, $message = null ) {
127
  /**
128
  * Fires when a deprecated hook is called.
129
  *
53
  * @param string $message Optional. A message regarding the change.
54
  *
55
  * @return mixed
56
+ * @see wbcr_factory_439_deprecated_hook()
57
  *
58
  */
59
+ function wbcr_factory_439_apply_filters_deprecated( $tag, $args, $version, $replacement = false, $message = null ) {
60
  if ( function_exists( 'apply_filters_deprecated' ) ) {
61
  return apply_filters_deprecated( $tag, $args, $version, $replacement, $message );
62
  }
63
  if ( ! has_filter( $tag ) ) {
64
  return $args[0];
65
  }
66
+ wbcr_factory_439_deprecated_hook( $tag, $version, $replacement, $message );
67
 
68
  return apply_filters_ref_array( $tag, $args );
69
  }
89
  * @see _deprecated_hook()
90
  *
91
  */
92
+ function wbcr_factory_439_do_action_deprecated( $tag, $args, $version, $replacement = false, $message = null ) {
93
  if ( function_exists( 'do_action_deprecated' ) ) {
94
  do_action_deprecated( $tag, $args, $version, $replacement, $message );
95
 
98
  if ( ! has_action( $tag ) ) {
99
  return;
100
  }
101
+ wbcr_factory_439_deprecated_hook( $tag, $version, $replacement, $message );
102
  do_action_ref_array( $tag, $args );
103
  }
104
 
105
  /**
106
  * Marks a deprecated action or filter hook as deprecated and throws a notice.
107
  *
108
+ * Use the 'wbcr_factory_439_deprecated_hook_run' action to get the backtrace describing where the
109
  * deprecated hook was called.
110
  *
111
  * Default behavior is to trigger a user error if WP_DEBUG is true.
123
  * @param string $replacement Optional. The hook that should have been used.
124
  * @param string $message Optional. A message regarding the change.
125
  */
126
+ function wbcr_factory_439_deprecated_hook( $hook, $version, $replacement = null, $message = null ) {
127
  /**
128
  * Fires when a deprecated hook is called.
129
  *
libs/factory/core/includes/premium/class-factory-license-interface.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432\Premium\Interfaces;
4
 
5
  // Exit if accessed directly
6
  if ( ! defined( 'ABSPATH' ) ) {
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Premium\Interfaces;
4
 
5
  // Exit if accessed directly
6
  if ( ! defined( 'ABSPATH' ) ) {
libs/factory/core/includes/premium/class-factory-manager.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432\Premium;
4
 
5
  use Exception;
6
- use Wbcr_Factory432_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_Factory432_Plugin
28
  */
29
  protected $plugin;
30
 
@@ -36,24 +36,24 @@ class Manager {
36
  /**
37
  * Manager constructor.
38
  *
39
- * @param Wbcr_Factory432_Plugin $plugin
40
  * @param array $settings
41
  *
42
  * @throws Exception
43
  */
44
- public function __construct( Wbcr_Factory432_Plugin $plugin, array $settings ) {
45
  $this->plugin = $plugin;
46
  $this->settings = $settings;
47
  }
48
 
49
  /**
50
- * @param Wbcr_Factory432_Plugin $plugin
51
  * @param array $settings
52
  *
53
- * @return \WBCR\Factory_Freemius_120\Premium\Provider
54
  * @throws Exception
55
  */
56
- public static function instance( Wbcr_Factory432_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_120\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_432\Premium\Provider interface!" );
74
  }
75
 
76
  return new self::$providers[ $provider_name ]( $this->plugin, $this->settings );
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Premium;
4
 
5
  use Exception;
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  // Exit if accessed directly
9
  if ( ! defined( 'ABSPATH' ) ) {
24
  public static $providers;
25
 
26
  /**
27
+ * @var Wbcr_Factory439_Plugin
28
  */
29
  protected $plugin;
30
 
36
  /**
37
  * Manager constructor.
38
  *
39
+ * @param Wbcr_Factory439_Plugin $plugin
40
  * @param array $settings
41
  *
42
  * @throws Exception
43
  */
44
+ public function __construct( Wbcr_Factory439_Plugin $plugin, array $settings ) {
45
  $this->plugin = $plugin;
46
  $this->settings = $settings;
47
  }
48
 
49
  /**
50
+ * @param Wbcr_Factory439_Plugin $plugin
51
  * @param array $settings
52
  *
53
+ * @return \WBCR\Factory_Freemius_126\Premium\Provider
54
  * @throws Exception
55
  */
56
+ public static function instance( Wbcr_Factory439_Plugin $plugin, array $settings ) {
57
  $premium_manager = new Manager( $plugin, $settings );
58
 
59
  return $premium_manager->instance_provider();
62
  /**
63
  * @param $provider_name
64
  *
65
+ * @return \WBCR\Factory_Freemius_126\Premium\Provider
66
  * @throws Exception
67
  */
68
  public function instance_provider() {
70
 
71
  if ( isset( self::$providers[ $provider_name ] ) && class_exists( self::$providers[ $provider_name ] ) ) {
72
  if ( self::$providers[ $provider_name ] instanceof Provider ) {
73
+ throw new Exception( "Provider {$provider_name} must extend the class WBCR\Factory_439\Premium\Provider interface!" );
74
  }
75
 
76
  return new self::$providers[ $provider_name ]( $this->plugin, $this->settings );
libs/factory/core/includes/premium/class-factory-provider-abstract.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432\Premium;
4
 
5
  use Exception;
6
- use Wbcr_Factory432_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_Factory432_Plugin
25
  */
26
  protected $plugin;
27
 
@@ -38,10 +38,10 @@ abstract class Provider {
38
  /**
39
  * Provider constructor.
40
  *
41
- * @param Wbcr_Factory432_Plugin $plugin
42
  * @param array $settings
43
  */
44
- public function __construct(Wbcr_Factory432_Plugin $plugin, array $settings)
45
  {
46
  $this->plugin = $plugin;
47
  $this->settings = $settings;
@@ -244,7 +244,7 @@ abstract class Provider {
244
  abstract public function get_billing_cycle();
245
 
246
  /**
247
- * @return \WBCR\Factory_432\Premium\Interfaces\License
248
  */
249
  abstract public function get_license();
250
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Premium;
4
 
5
  use Exception;
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  // Exit if accessed directly
9
  if( !defined('ABSPATH') ) {
21
  abstract class Provider {
22
 
23
  /**
24
+ * @var Wbcr_Factory439_Plugin
25
  */
26
  protected $plugin;
27
 
38
  /**
39
  * Provider constructor.
40
  *
41
+ * @param Wbcr_Factory439_Plugin $plugin
42
  * @param array $settings
43
  */
44
+ public function __construct(Wbcr_Factory439_Plugin $plugin, array $settings)
45
  {
46
  $this->plugin = $plugin;
47
  $this->settings = $settings;
244
  abstract public function get_billing_cycle();
245
 
246
  /**
247
+ * @return \WBCR\Factory_439\Premium\Interfaces\License
248
  */
249
  abstract public function get_license();
250
 
libs/factory/core/includes/updates/class-factory-premium-upgrader.php CHANGED
@@ -1,12 +1,12 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432\Updates;
4
 
5
  use Exception;
6
  use Plugin_Installer_Skin;
7
  use Plugin_Upgrader;
8
- use Wbcr_Factory432_Plugin;
9
- use Wbcr_FactoryPages432_ImpressiveThemplate;
10
  use WP_Filesystem_Base;
11
  use WP_Upgrader;
12
  use WP_Upgrader_Skin;
@@ -16,6 +16,7 @@ if( !defined('ABSPATH') ) {
16
  exit;
17
  }
18
 
 
19
  /**
20
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, repo: https://github.com/alexkovalevv
21
  * @author Webcraftic <wordpress.webraftic@gmail.com>, site: https://webcraftic.com
@@ -31,19 +32,26 @@ class Premium_Upgrader extends Upgrader {
31
  */
32
  protected $type = 'premium';
33
 
 
 
 
 
 
 
 
34
  /**
35
  * Manager constructor.
36
  *
37
  * @param $args
38
  * @param bool $is_premium
39
  *
40
- * @param Wbcr_Factory432_Plugin $plugin
41
  *
42
  * @throws Exception
43
  * @since 4.1.1
44
  *
45
  */
46
- public function __construct(Wbcr_Factory432_Plugin $plugin)
47
  {
48
  parent::__construct($plugin);
49
 
@@ -234,9 +242,9 @@ class Premium_Upgrader extends Upgrader {
234
  /**
235
  * Выводит уведомление внутри интерфейса плагина, на всех страницах плагина.
236
  *
237
- * @param Wbcr_FactoryPages432_ImpressiveThemplate $obj
238
  *
239
- * @param Wbcr_Factory432_Plugin $plugin
240
  *
241
  * @return void
242
  * @since 4.1.1
@@ -301,9 +309,18 @@ class Premium_Upgrader extends Upgrader {
301
  $notice_text = $this->get_notice_text('need_renew_license');
302
  }
303
 
 
 
 
 
 
 
 
 
 
304
  ?>
305
  <tr class="plugin-update-tr active update wbcr-factory-updates">
306
- <td colspan="3" class="plugin-update colspanchange">
307
  <div class="update-message notice inline notice-warning notice-alt">
308
  <p>
309
  <?php echo $notice_text; ?>
@@ -791,12 +808,12 @@ class Premium_Upgrader extends Upgrader {
791
  $cancel_license_url = $this->get_action_url('cancel_license');
792
 
793
  $texts = [
794
- 'need_activate_license' => __('License activation required. A license is required to get premium plugin updates, as well as to get additional services.', 'wbcr_factory_432'),
795
- '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_432'),
796
  'please_install_premium' => sprintf(__('Congratulations, you have activated a premium license! Please install premium add-on to use pro features now.
797
- <a href="%s">Install</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_432'), $upgrade_url, $cancel_license_url),
798
  'please_activate_premium' => sprintf(__('Congratulations, you have activated a premium license! Please activate premium add-on to use pro features now.
799
- <a href="%s">Activate</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_432'), $activate_plugin_url, $cancel_license_url)
800
  ];
801
 
802
  if( isset($texts[$type]) ) {
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Updates;
4
 
5
  use Exception;
6
  use Plugin_Installer_Skin;
7
  use Plugin_Upgrader;
8
+ use Wbcr_Factory439_Plugin;
9
+ use Wbcr_FactoryPages438_ImpressiveThemplate;
10
  use WP_Filesystem_Base;
11
  use WP_Upgrader;
12
  use WP_Upgrader_Skin;
16
  exit;
17
  }
18
 
19
+ require_once ABSPATH . "/wp-admin/includes/list-table.php";
20
  /**
21
  * @author Alex Kovalev <alex.kovalevv@gmail.com>, repo: https://github.com/alexkovalevv
22
  * @author Webcraftic <wordpress.webraftic@gmail.com>, site: https://webcraftic.com
32
  */
33
  protected $type = 'premium';
34
 
35
+ /**
36
+ * Объект таблицы со списком плагинов
37
+ *
38
+ * @var \WP_Plugins_List_Table
39
+ */
40
+ protected $wp_list_table;
41
+
42
  /**
43
  * Manager constructor.
44
  *
45
  * @param $args
46
  * @param bool $is_premium
47
  *
48
+ * @param Wbcr_Factory439_Plugin $plugin
49
  *
50
  * @throws Exception
51
  * @since 4.1.1
52
  *
53
  */
54
+ public function __construct(Wbcr_Factory439_Plugin $plugin)
55
  {
56
  parent::__construct($plugin);
57
 
242
  /**
243
  * Выводит уведомление внутри интерфейса плагина, на всех страницах плагина.
244
  *
245
+ * @param Wbcr_FactoryPages438_ImpressiveThemplate $obj
246
  *
247
+ * @param Wbcr_Factory439_Plugin $plugin
248
  *
249
  * @return void
250
  * @since 4.1.1
309
  $notice_text = $this->get_notice_text('need_renew_license');
310
  }
311
 
312
+ if( !$this->wp_list_table ) {
313
+ $this->wp_list_table = \_get_list_table(
314
+ 'WP_Plugins_List_Table',
315
+ array(
316
+ 'screen' => null,
317
+ )
318
+ );
319
+ }
320
+
321
  ?>
322
  <tr class="plugin-update-tr active update wbcr-factory-updates">
323
+ <td colspan="<?php echo esc_attr($this->wp_list_table->get_column_count());?>" class="plugin-update colspanchange">
324
  <div class="update-message notice inline notice-warning notice-alt">
325
  <p>
326
  <?php echo $notice_text; ?>
808
  $cancel_license_url = $this->get_action_url('cancel_license');
809
 
810
  $texts = [
811
+ 'need_activate_license' => __('License activation required. A license is required to get premium plugin updates, as well as to get additional services.', 'wbcr_factory_439'),
812
+ 'need_renew_license' => __('Your license has expired. You can no longer get premium plugin updates, premium support and your access to Webcraftic services has been suspended.', 'wbcr_factory_439'),
813
  'please_install_premium' => sprintf(__('Congratulations, you have activated a premium license! Please install premium add-on to use pro features now.
814
+ <a href="%s">Install</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_439'), $upgrade_url, $cancel_license_url),
815
  'please_activate_premium' => sprintf(__('Congratulations, you have activated a premium license! Please activate premium add-on to use pro features now.
816
+ <a href="%s">Activate</a> premium add-on or <a href="%s">cancel</a> license.', 'wbcr_factory_439'), $activate_plugin_url, $cancel_license_url)
817
  ];
818
 
819
  if( isset($texts[$type]) ) {
libs/factory/core/includes/updates/class-factory-upgrader.php CHANGED
@@ -1,10 +1,10 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432\Updates;
4
 
5
  use Exception;
6
  use stdClass;
7
- use Wbcr_Factory432_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_120\Updates\Freemius_Repository',
32
- * 'freemius' => '\WBCR\Factory_432\Updates\Wordpress_Repository'
33
  * ]
34
  */
35
  public static $repositories = [];
@@ -42,7 +42,7 @@ class Upgrader {
42
  protected $type = 'default';
43
 
44
  /**
45
- * @var Wbcr_Factory432_Plugin
46
  */
47
  protected $plugin;
48
 
@@ -90,13 +90,13 @@ class Upgrader {
90
  *
91
  * @since 4.1.1
92
  *
93
- * @param Wbcr_Factory432_Plugin $plugin
94
  * @param $args
95
  * @param bool $is_premium
96
  *
97
  * @throws Exception
98
  */
99
- public function __construct( Wbcr_Factory432_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_432\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_432\Updates\Repository interface!" );
291
  }
292
 
293
  return new self::$repositories[ $repository_name ]( $this->plugin );
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Updates;
4
 
5
  use Exception;
6
  use stdClass;
7
+ use Wbcr_Factory439_Plugin;
8
 
9
  // Exit if accessed directly
10
  if ( ! defined( 'ABSPATH' ) ) {
28
  * @since 4.1.7
29
  * @var array хранит имя репозитория и его имя класса
30
  * [
31
+ * 'wordpress' => 'WBCR\Factory_Freemius_126\Updates\Freemius_Repository',
32
+ * 'freemius' => '\WBCR\Factory_439\Updates\Wordpress_Repository'
33
  * ]
34
  */
35
  public static $repositories = [];
42
  protected $type = 'default';
43
 
44
  /**
45
+ * @var Wbcr_Factory439_Plugin
46
  */
47
  protected $plugin;
48
 
90
  *
91
  * @since 4.1.1
92
  *
93
+ * @param Wbcr_Factory439_Plugin $plugin
94
  * @param $args
95
  * @param bool $is_premium
96
  *
97
  * @throws Exception
98
  */
99
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
100
 
101
  $this->plugin = $plugin;
102
 
106
  $this->is_debug = defined( 'FACTORY_UPDATES_DEBUG' ) && FACTORY_UPDATES_DEBUG;
107
 
108
  # Добавляем Wordpress репозиторий в список доступных репозиториев по умолчанию
109
+ self::$repositories['wordpress'] = '\WBCR\Factory_439\Updates\Wordpress_Repository';
110
 
111
  $settings = $this->get_settings();
112
 
287
 
288
  if ( isset( self::$repositories[ $repository_name ] ) && class_exists( self::$repositories[ $repository_name ] ) ) {
289
  if ( self::$repositories[ $repository_name ] instanceof Repository ) {
290
+ throw new Exception( "Repository {$repository_name} must extend the class WBCR\Factory_439\Updates\Repository interface!" );
291
  }
292
 
293
  return new self::$repositories[ $repository_name ]( $this->plugin );
libs/factory/core/includes/updates/repositories/class-factory-repository-abstract.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432\Updates;
4
 
5
  // Exit if accessed directly
6
- use Wbcr_Factory432_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
@@ -23,17 +23,17 @@ abstract class Repository {
23
  protected $initialized = false;
24
 
25
  /**
26
- * @var Wbcr_Factory432_Plugin
27
  */
28
  protected $plugin;
29
 
30
  /**
31
  * Repository constructor.
32
  *
33
- * @param Wbcr_Factory432_Plugin $plugin
34
  * @param bool $is_premium
35
  */
36
- abstract public function __construct( Wbcr_Factory432_Plugin $plugin );
37
 
38
  /**
39
  * @return void
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Updates;
4
 
5
  // Exit if accessed directly
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
23
  protected $initialized = false;
24
 
25
  /**
26
+ * @var Wbcr_Factory439_Plugin
27
  */
28
  protected $plugin;
29
 
30
  /**
31
  * Repository constructor.
32
  *
33
+ * @param Wbcr_Factory439_Plugin $plugin
34
  * @param bool $is_premium
35
  */
36
+ abstract public function __construct( Wbcr_Factory439_Plugin $plugin );
37
 
38
  /**
39
  * @return void
libs/factory/core/includes/updates/repositories/class-factory-wordpress.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
 
3
- namespace WBCR\Factory_432\Updates;
4
 
5
  // Exit if accessed directly
6
- use Wbcr_Factory432_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_Factory432_Plugin $plugin
24
  * @param bool $is_premium
25
  */
26
- public function __construct( Wbcr_Factory432_Plugin $plugin ) {
27
  $this->plugin = $plugin;
28
  }
29
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_439\Updates;
4
 
5
  // Exit if accessed directly
6
+ use Wbcr_Factory439_Plugin;
7
 
8
  if ( ! defined( 'ABSPATH' ) ) {
9
  exit;
20
  /**
21
  * Wordpress constructor.
22
  *
23
+ * @param Wbcr_Factory439_Plugin $plugin
24
  * @param bool $is_premium
25
  */
26
+ public function __construct( Wbcr_Factory439_Plugin $plugin ) {
27
  $this->plugin = $plugin;
28
  }
29
 
libs/factory/core/langs/wbcr_factory_431-ru_RU.mo DELETED
Binary file
libs/factory/core/langs/wbcr_factory_432-ru_RU.mo DELETED
Binary file
libs/factory/core/langs/wbcr_factory_432-ru_RU.po DELETED
@@ -1,128 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: factory_forms\n"
4
- "POT-Creation-Date: 2018-10-16 22:44+0300\n"
5
- "PO-Revision-Date: 2018-10-16 22:45+0300\n"
6
- "Last-Translator: \n"
7
- "Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\n"
8
- "Language: ru_RU\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.1.1\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
- "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
- "X-Poedit-SearchPath-0: .\n"
19
-
20
- #: includes/check-compatibility.php:80
21
- msgid "warning"
22
- msgstr "предупреждение"
23
-
24
- #: includes/check-compatibility.php:82
25
- #, php-format
26
- msgid "The %s plugin has stopped."
27
- msgstr "Работа плагина %s была остановлена."
28
-
29
- #: includes/check-compatibility.php:83
30
- msgid "Possible reasons:"
31
- msgstr "Возможные причины:"
32
-
33
- #: includes/check-compatibility.php:89
34
- #, php-format
35
- msgid "You need to update the PHP version to %s or higher!"
36
- msgstr "Вам нужно обновить версию PHP до %s или выше!"
37
-
38
- #: includes/check-compatibility.php:94
39
- #, php-format
40
- msgid "You need to update WordPress to %s or higher!"
41
- msgstr "Вам нужно обновить WordPress до %s или выше!"
42
-
43
- #: includes/functions.php:132
44
- #, php-format
45
- msgid ""
46
- "%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead."
47
- msgstr ""
48
- "%1$s является <strong>устаревшим,</strong> начиная с версии %2$s в "
49
- "Wordpress! Используйте %3$s."
50
-
51
- #: includes/functions.php:134
52
- #, php-format
53
- msgid ""
54
- "%1$s is <strong>deprecated</strong> since version %2$s with no alternative "
55
- "available."
56
- msgstr ""
57
- "%1$s был вызван с параметром, который является <strong>устаревшими</strong> "
58
- "начиная с версии %2$s , в настоящее время доступных альтернатив нет."
59
-
60
- #: includes/plugin.class.php:202 includes/plugin.class.php:237
61
- msgid ""
62
- "You are trying to call this earlier than the plugin menu will be registered."
63
- msgstr ""
64
- "Вы пытаетесь вызвать это раньше, чем будет зарегистрировано меню плагина."
65
-
66
- #: includes/plugin.class.php:220
67
- msgid ""
68
- "You are trying to get a link to a page that does not have multisite mode. "
69
- "Clicking this link will lead the user to a non-existent page."
70
- msgstr ""
71
- "Вы пытаетесь получить ссылку на страницу, которая не имеет "
72
- "многопользовательского режима. Щелчок по этой ссылке приведет пользователя "
73
- "к несуществующей странице."
74
-
75
- #: includes/plugin.class.php:222
76
- msgid ""
77
- "Trying to get a link to an unregistered page. You are trying to call this "
78
- "earlier than the plugin menu will be registered."
79
- msgstr ""
80
- "Попытка получить ссылку на незарегистрированную страницу. Вы пытаетесь "
81
- "вызвать это раньше, чем будет зарегистрировано меню плагина."
82
-
83
- #~ msgid "On"
84
- #~ msgstr "Вкл"
85
-
86
- #~ msgid "Off"
87
- #~ msgstr "Выкл"
88
-
89
- #~ msgid "(use default website font)"
90
- #~ msgstr "(шрифт сайта по умолчанию)"
91
-
92
- #~ msgid "Sans Serif:"
93
- #~ msgstr "Группа Sans Serif:"
94
-
95
- #~ msgid "Serif:"
96
- #~ msgstr "Группа Serif:"
97
-
98
- #~ msgid "Monospaced:"
99
- #~ msgstr "Группа Monospaced:"
100
-
101
- #~ msgid "vertical"
102
- #~ msgstr "вертикальный"
103
-
104
- #~ msgid "horizontal"
105
- #~ msgstr "горизонтальный"
106
-
107
- #~ msgid "hide extra options"
108
- #~ msgstr "скрыть дополнительные настроки"
109
-
110
- #~ msgid "Select a side and move the slider to set up:"
111
- #~ msgstr "Выберите сторону и переместите ползунок:"
112
-
113
- #~ msgid "Change color"
114
- #~ msgstr "Выбрать цвет"
115
-
116
- #~ msgid "re-color"
117
- #~ msgstr "Перекрасить"
118
-
119
- #~ msgid "Select color:"
120
- #~ msgstr "Выберите цвет:"
121
-
122
- #~ msgid "Changing the color may takes a minute or more. Please be patient."
123
- #~ msgstr ""
124
- #~ "В некоторых случаях изменение цвета может занять около минуты. "
125
- #~ "Пожалуйста, будьте терпеливы."
126
-
127
- #~ msgid "Upload Pattern"
128
- #~ msgstr "Добавить шаблон"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/{adverts/langs/wbcr_factory_adverts_112-ru_RU.mo → core/langs/wbcr_factory_439-ru_RU.mo} RENAMED
File without changes
libs/factory/core/langs/{wbcr_factory_431-ru_RU.po → wbcr_factory_439-ru_RU.po} RENAMED
File without changes
libs/factory/forms/boot.php CHANGED
@@ -22,175 +22,175 @@ 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_430_LOADED') ) {
26
  return;
27
  }
28
 
29
- define('FACTORY_FORMS_430_LOADED', true);
30
 
31
- define('FACTORY_FORMS_430_VERSION', '4.3.0');
32
 
33
  // absolute path and URL to the files and resources of the module.
34
- define('FACTORY_FORMS_430_DIR', dirname(__FILE__));
35
- define('FACTORY_FORMS_430_URL', plugins_url(null, __FILE__));
36
 
37
  #comp merge
38
- require_once(FACTORY_FORMS_430_DIR . '/includes/providers/value-provider.interface.php');
39
- require_once(FACTORY_FORMS_430_DIR . '/includes/providers/meta-value-provider.class.php');
40
- require_once(FACTORY_FORMS_430_DIR . '/includes/providers/options-value-provider.class.php');
41
 
42
- require_once(FACTORY_FORMS_430_DIR . '/includes/form.class.php');
43
  #endcomp
44
 
45
- load_plugin_textdomain('wbcr_factory_forms_430', 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_430_register_controls' hook
53
  *
54
  */
55
- if( !function_exists('wbcr_factory_forms_430_register_default_controls') ) {
56
 
57
  /**
58
- * @param Wbcr_Factory432_Plugin $plugin
59
  *
60
  * @throws Exception
61
  */
62
- function wbcr_factory_forms_430_register_default_controls(Wbcr_Factory432_Plugin $plugin)
63
  {
64
 
65
  if( $plugin && !isset($plugin->forms) ) {
66
  throw new Exception("The module Factory Forms is not loaded for the plugin '{$plugin->getPluginName()}'.");
67
  }
68
 
69
- require_once(FACTORY_FORMS_430_DIR . '/includes/html-builder.class.php');
70
- require_once(FACTORY_FORMS_430_DIR . '/includes/form-element.class.php');
71
- require_once(FACTORY_FORMS_430_DIR . '/includes/control.class.php');
72
- require_once(FACTORY_FORMS_430_DIR . '/includes/complex-control.class.php');
73
- require_once(FACTORY_FORMS_430_DIR . '/includes/holder.class.php');
74
- require_once(FACTORY_FORMS_430_DIR . '/includes/control-holder.class.php');
75
- require_once(FACTORY_FORMS_430_DIR . '/includes/custom-element.class.php');
76
- require_once(FACTORY_FORMS_430_DIR . '/includes/form-layout.class.php');
77
 
78
  // registration of controls
79
  $plugin->forms->registerControls([
80
  [
81
  'type' => 'checkbox',
82
- 'class' => 'Wbcr_FactoryForms430_CheckboxControl',
83
- 'include' => FACTORY_FORMS_430_DIR . '/controls/checkbox.php'
84
  ],
85
  [
86
  'type' => 'list',
87
- 'class' => 'Wbcr_FactoryForms430_ListControl',
88
- 'include' => FACTORY_FORMS_430_DIR . '/controls/list.php'
89
  ],
90
  [
91
  'type' => 'dropdown',
92
- 'class' => 'Wbcr_FactoryForms430_DropdownControl',
93
- 'include' => FACTORY_FORMS_430_DIR . '/controls/dropdown.php'
94
  ],
95
  [
96
  'type' => 'dropdown-and-colors',
97
- 'class' => 'Wbcr_FactoryForms430_DropdownAndColorsControl',
98
- 'include' => FACTORY_FORMS_430_DIR . '/controls/dropdown-and-colors.php'
99
  ],
100
  [
101
  'type' => 'hidden',
102
- 'class' => 'Wbcr_FactoryForms430_HiddenControl',
103
- 'include' => FACTORY_FORMS_430_DIR . '/controls/hidden.php'
104
  ],
105
  [
106
  'type' => 'hidden',
107
- 'class' => 'Wbcr_FactoryForms430_HiddenControl',
108
- 'include' => FACTORY_FORMS_430_DIR . '/controls/hidden.php'
109
  ],
110
  [
111
  'type' => 'radio',
112
- 'class' => 'Wbcr_FactoryForms430_RadioControl',
113
- 'include' => FACTORY_FORMS_430_DIR . '/controls/radio.php'
114
  ],
115
  [
116
  'type' => 'radio-colors',
117
- 'class' => 'Wbcr_FactoryForms430_RadioColorsControl',
118
- 'include' => FACTORY_FORMS_430_DIR . '/controls/radio-colors.php'
119
  ],
120
  [
121
  'type' => 'textarea',
122
- 'class' => 'Wbcr_FactoryForms430_TextareaControl',
123
- 'include' => FACTORY_FORMS_430_DIR . '/controls/textarea.php'
124
  ],
125
  [
126
  'type' => 'textbox',
127
- 'class' => 'Wbcr_FactoryForms430_TextboxControl',
128
- 'include' => FACTORY_FORMS_430_DIR . '/controls/textbox.php'
129
  ],
130
  [
131
  'type' => 'multiple-textbox',
132
- 'class' => 'Wbcr_FactoryForms430_MultipleTextboxControl',
133
- 'include' => FACTORY_FORMS_430_DIR . '/controls/multiple-textbox.php'
134
  ],
135
  [
136
  'type' => 'datetimepicker-range',
137
- 'class' => 'Wbcr_FactoryForms430_DatepickerRangeControl',
138
- 'include' => FACTORY_FORMS_430_DIR . '/controls/datepicker-range.php'
139
  ],
140
  [
141
  'type' => 'url',
142
- 'class' => 'Wbcr_FactoryForms430_UrlControl',
143
- 'include' => FACTORY_FORMS_430_DIR . '/controls/url.php'
144
  ],
145
  [
146
  'type' => 'wp-editor',
147
- 'class' => 'Wbcr_FactoryForms430_WpEditorControl',
148
- 'include' => FACTORY_FORMS_430_DIR . '/controls/wp-editor.php'
149
  ],
150
  [
151
  'type' => 'color',
152
- 'class' => 'Wbcr_FactoryForms430_ColorControl',
153
- 'include' => FACTORY_FORMS_430_DIR . '/controls/color.php'
154
  ],
155
  [
156
  'type' => 'color-and-opacity',
157
- 'class' => 'Wbcr_FactoryForms430_ColorAndOpacityControl',
158
- 'include' => FACTORY_FORMS_430_DIR . '/controls/color-and-opacity.php'
159
  ],
160
  [
161
  'type' => 'gradient',
162
- 'class' => 'Wbcr_FactoryForms430_GradientControl',
163
- 'include' => FACTORY_FORMS_430_DIR . '/controls/gradient.php'
164
  ],
165
  [
166
  'type' => 'font',
167
- 'class' => 'Wbcr_FactoryForms430_FontControl',
168
- 'include' => FACTORY_FORMS_430_DIR . '/controls/font.php'
169
  ],
170
  [
171
  'type' => 'google-font',
172
- 'class' => 'Wbcr_FactoryForms430_GoogleFontControl',
173
- 'include' => FACTORY_FORMS_430_DIR . '/controls/google-font.php'
174
  ],
175
  [
176
  'type' => 'pattern',
177
- 'class' => 'Wbcr_FactoryForms430_PatternControl',
178
- 'include' => FACTORY_FORMS_430_DIR . '/controls/pattern.php'
179
  ],
180
  [
181
  'type' => 'integer',
182
- 'class' => 'Wbcr_FactoryForms430_IntegerControl',
183
- 'include' => FACTORY_FORMS_430_DIR . '/controls/integer.php'
184
  ],
185
  [
186
  'type' => 'control-group',
187
- 'class' => 'Wbcr_FactoryForms430_ControlGroupHolder',
188
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/control-group.php'
189
  ],
190
  [
191
  'type' => 'paddings-editor',
192
- 'class' => 'Wbcr_FactoryForms430_PaddingsEditorControl',
193
- 'include' => FACTORY_FORMS_430_DIR . '/controls/paddings-editor.php'
194
  ],
195
  ]);
196
 
@@ -198,53 +198,53 @@ if( !function_exists('wbcr_factory_forms_430_register_default_controls') ) {
198
  $plugin->forms->registerHolders([
199
  [
200
  'type' => 'tab',
201
- 'class' => 'Wbcr_FactoryForms430_TabHolder',
202
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/tab.php'
203
  ],
204
  [
205
  'type' => 'tab-item',
206
- 'class' => 'Wbcr_FactoryForms430_TabItemHolder',
207
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/tab-item.php'
208
  ],
209
  [
210
  'type' => 'accordion',
211
- 'class' => 'Wbcr_FactoryForms430_AccordionHolder',
212
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/accordion.php'
213
  ],
214
  [
215
  'type' => 'accordion-item',
216
- 'class' => 'Wbcr_FactoryForms430_AccordionItemHolder',
217
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/accordion-item.php'
218
  ],
219
  [
220
  'type' => 'control-group',
221
- 'class' => 'Wbcr_FactoryForms430_ControlGroupHolder',
222
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/control-group.php'
223
  ],
224
  [
225
  'type' => 'control-group-item',
226
- 'class' => 'Wbcr_FactoryForms430_ControlGroupItem',
227
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/control-group-item.php'
228
  ],
229
  [
230
  'type' => 'form-group',
231
- 'class' => 'Wbcr_FactoryForms430_FormGroupHolder',
232
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/form-group.php'
233
  ],
234
  [
235
  'type' => 'more-link',
236
- 'class' => 'Wbcr_FactoryForms430_MoreLinkHolder',
237
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/more-link.php'
238
  ],
239
  [
240
  'type' => 'div',
241
- 'class' => 'Wbcr_FactoryForms430_DivHolder',
242
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/div.php'
243
  ],
244
  [
245
  'type' => 'columns',
246
- 'class' => 'Wbcr_FactoryForms430_ColumnsHolder',
247
- 'include' => FACTORY_FORMS_430_DIR . '/controls/holders/columns.php'
248
  ]
249
  ]);
250
 
@@ -252,23 +252,23 @@ if( !function_exists('wbcr_factory_forms_430_register_default_controls') ) {
252
  $plugin->forms->registerCustomElements([
253
  [
254
  'type' => 'html',
255
- 'class' => 'Wbcr_FactoryForms430_Html',
256
- 'include' => FACTORY_FORMS_430_DIR . '/controls/customs/html.php',
257
  ],
258
  [
259
  'type' => 'separator',
260
- 'class' => 'Wbcr_FactoryForms430_Separator',
261
- 'include' => FACTORY_FORMS_430_DIR . '/controls/customs/separator.php',
262
  ],
263
  ]);
264
 
265
  // registration of form layouts
266
  $plugin->forms->registerFormLayout([
267
  'name' => 'bootstrap-3',
268
- 'class' => 'Wbcr_FactoryForms430_Bootstrap3FormLayout',
269
- 'include' => FACTORY_FORMS_430_DIR . '/layouts/bootstrap-3/bootstrap-3.php'
270
  ]);
271
  }
272
 
273
- add_action('wbcr_factory_forms_430_register_controls', 'wbcr_factory_forms_430_register_default_controls');
274
  }
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_436_LOADED') ) {
26
  return;
27
  }
28
 
29
+ define('FACTORY_FORMS_436_LOADED', true);
30
 
31
+ define('FACTORY_FORMS_436_VERSION', '4.3.6');
32
 
33
  // absolute path and URL to the files and resources of the module.
34
+ define('FACTORY_FORMS_436_DIR', dirname(__FILE__));
35
+ define('FACTORY_FORMS_436_URL', plugins_url(null, __FILE__));
36
 
37
  #comp merge
38
+ require_once(FACTORY_FORMS_436_DIR . '/includes/providers/value-provider.interface.php');
39
+ require_once(FACTORY_FORMS_436_DIR . '/includes/providers/meta-value-provider.class.php');
40
+ require_once(FACTORY_FORMS_436_DIR . '/includes/providers/options-value-provider.class.php');
41
 
42
+ require_once(FACTORY_FORMS_436_DIR . '/includes/form.class.php');
43
  #endcomp
44
 
45
+ load_plugin_textdomain('wbcr_factory_forms_436', 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_436_register_controls' hook
53
  *
54
  */
55
+ if( !function_exists('wbcr_factory_forms_436_register_default_controls') ) {
56
 
57
  /**
58
+ * @param Wbcr_Factory439_Plugin $plugin
59
  *
60
  * @throws Exception
61
  */
62
+ function wbcr_factory_forms_436_register_default_controls(Wbcr_Factory439_Plugin $plugin)
63
  {
64
 
65
  if( $plugin && !isset($plugin->forms) ) {
66
  throw new Exception("The module Factory Forms is not loaded for the plugin '{$plugin->getPluginName()}'.");
67
  }
68
 
69
+ require_once(FACTORY_FORMS_436_DIR . '/includes/html-builder.class.php');
70
+ require_once(FACTORY_FORMS_436_DIR . '/includes/form-element.class.php');
71
+ require_once(FACTORY_FORMS_436_DIR . '/includes/control.class.php');
72
+ require_once(FACTORY_FORMS_436_DIR . '/includes/complex-control.class.php');
73
+ require_once(FACTORY_FORMS_436_DIR . '/includes/holder.class.php');
74
+ require_once(FACTORY_FORMS_436_DIR . '/includes/control-holder.class.php');
75
+ require_once(FACTORY_FORMS_436_DIR . '/includes/custom-element.class.php');
76
+ require_once(FACTORY_FORMS_436_DIR . '/includes/form-layout.class.php');
77
 
78
  // registration of controls
79
  $plugin->forms->registerControls([
80
  [
81
  'type' => 'checkbox',
82
+ 'class' => 'Wbcr_FactoryForms436_CheckboxControl',
83
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/checkbox.php'
84
  ],
85
  [
86
  'type' => 'list',
87
+ 'class' => 'Wbcr_FactoryForms436_ListControl',
88
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/list.php'
89
  ],
90
  [
91
  'type' => 'dropdown',
92
+ 'class' => 'Wbcr_FactoryForms436_DropdownControl',
93
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/dropdown.php'
94
  ],
95
  [
96
  'type' => 'dropdown-and-colors',
97
+ 'class' => 'Wbcr_FactoryForms436_DropdownAndColorsControl',
98
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/dropdown-and-colors.php'
99
  ],
100
  [
101
  'type' => 'hidden',
102
+ 'class' => 'Wbcr_FactoryForms436_HiddenControl',
103
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/hidden.php'
104
  ],
105
  [
106
  'type' => 'hidden',
107
+ 'class' => 'Wbcr_FactoryForms436_HiddenControl',
108
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/hidden.php'
109
  ],
110
  [
111
  'type' => 'radio',
112
+ 'class' => 'Wbcr_FactoryForms436_RadioControl',
113
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/radio.php'
114
  ],
115
  [
116
  'type' => 'radio-colors',
117
+ 'class' => 'Wbcr_FactoryForms436_RadioColorsControl',
118
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/radio-colors.php'
119
  ],
120
  [
121
  'type' => 'textarea',
122
+ 'class' => 'Wbcr_FactoryForms436_TextareaControl',
123
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/textarea.php'
124
  ],
125
  [
126
  'type' => 'textbox',
127
+ 'class' => 'Wbcr_FactoryForms436_TextboxControl',
128
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/textbox.php'
129
  ],
130
  [
131
  'type' => 'multiple-textbox',
132
+ 'class' => 'Wbcr_FactoryForms436_MultipleTextboxControl',
133
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/multiple-textbox.php'
134
  ],
135
  [
136
  'type' => 'datetimepicker-range',
137
+ 'class' => 'Wbcr_FactoryForms436_DatepickerRangeControl',
138
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/datepicker-range.php'
139
  ],
140
  [
141
  'type' => 'url',
142
+ 'class' => 'Wbcr_FactoryForms436_UrlControl',
143
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/url.php'
144
  ],
145
  [
146
  'type' => 'wp-editor',
147
+ 'class' => 'Wbcr_FactoryForms436_WpEditorControl',
148
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/wp-editor.php'
149
  ],
150
  [
151
  'type' => 'color',
152
+ 'class' => 'Wbcr_FactoryForms436_ColorControl',
153
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/color.php'
154
  ],
155
  [
156
  'type' => 'color-and-opacity',
157
+ 'class' => 'Wbcr_FactoryForms436_ColorAndOpacityControl',
158
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/color-and-opacity.php'
159
  ],
160
  [
161
  'type' => 'gradient',
162
+ 'class' => 'Wbcr_FactoryForms436_GradientControl',
163
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/gradient.php'
164
  ],
165
  [
166
  'type' => 'font',
167
+ 'class' => 'Wbcr_FactoryForms436_FontControl',
168
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/font.php'
169
  ],
170
  [
171
  'type' => 'google-font',
172
+ 'class' => 'Wbcr_FactoryForms436_GoogleFontControl',
173
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/google-font.php'
174
  ],
175
  [
176
  'type' => 'pattern',
177
+ 'class' => 'Wbcr_FactoryForms436_PatternControl',
178
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/pattern.php'
179
  ],
180
  [
181
  'type' => 'integer',
182
+ 'class' => 'Wbcr_FactoryForms436_IntegerControl',
183
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/integer.php'
184
  ],
185
  [
186
  'type' => 'control-group',
187
+ 'class' => 'Wbcr_FactoryForms436_ControlGroupHolder',
188
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/control-group.php'
189
  ],
190
  [
191
  'type' => 'paddings-editor',
192
+ 'class' => 'Wbcr_FactoryForms436_PaddingsEditorControl',
193
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/paddings-editor.php'
194
  ],
195
  ]);
196
 
198
  $plugin->forms->registerHolders([
199
  [
200
  'type' => 'tab',
201
+ 'class' => 'Wbcr_FactoryForms436_TabHolder',
202
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/tab.php'
203
  ],
204
  [
205
  'type' => 'tab-item',
206
+ 'class' => 'Wbcr_FactoryForms436_TabItemHolder',
207
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/tab-item.php'
208
  ],
209
  [
210
  'type' => 'accordion',
211
+ 'class' => 'Wbcr_FactoryForms436_AccordionHolder',
212
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/accordion.php'
213
  ],
214
  [
215
  'type' => 'accordion-item',
216
+ 'class' => 'Wbcr_FactoryForms436_AccordionItemHolder',
217
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/accordion-item.php'
218
  ],
219
  [
220
  'type' => 'control-group',
221
+ 'class' => 'Wbcr_FactoryForms436_ControlGroupHolder',
222
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/control-group.php'
223
  ],
224
  [
225
  'type' => 'control-group-item',
226
+ 'class' => 'Wbcr_FactoryForms436_ControlGroupItem',
227
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/control-group-item.php'
228
  ],
229
  [
230
  'type' => 'form-group',
231
+ 'class' => 'Wbcr_FactoryForms436_FormGroupHolder',
232
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/form-group.php'
233
  ],
234
  [
235
  'type' => 'more-link',
236
+ 'class' => 'Wbcr_FactoryForms436_MoreLinkHolder',
237
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/more-link.php'
238
  ],
239
  [
240
  'type' => 'div',
241
+ 'class' => 'Wbcr_FactoryForms436_DivHolder',
242
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/div.php'
243
  ],
244
  [
245
  'type' => 'columns',
246
+ 'class' => 'Wbcr_FactoryForms436_ColumnsHolder',
247
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/holders/columns.php'
248
  ]
249
  ]);
250
 
252
  $plugin->forms->registerCustomElements([
253
  [
254
  'type' => 'html',
255
+ 'class' => 'Wbcr_FactoryForms436_Html',
256
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/customs/html.php',
257
  ],
258
  [
259
  'type' => 'separator',
260
+ 'class' => 'Wbcr_FactoryForms436_Separator',
261
+ 'include' => FACTORY_FORMS_436_DIR . '/controls/customs/separator.php',
262
  ],
263
  ]);
264
 
265
  // registration of form layouts
266
  $plugin->forms->registerFormLayout([
267
  'name' => 'bootstrap-3',
268
+ 'class' => 'Wbcr_FactoryForms436_Bootstrap3FormLayout',
269
+ 'include' => FACTORY_FORMS_436_DIR . '/layouts/bootstrap-3/bootstrap-3.php'
270
  ]);
271
  }
272
 
273
+ add_action('wbcr_factory_forms_436_register_controls', 'wbcr_factory_forms_436_register_default_controls');
274
  }
libs/factory/forms/controls/checkbox.php CHANGED
@@ -20,9 +20,9 @@
20
  exit;
21
  }
22
 
23
- if( !class_exists('Wbcr_FactoryForms430_CheckboxControl') ) {
24
 
25
- class Wbcr_FactoryForms430_CheckboxControl extends Wbcr_FactoryForms430_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_430') ?></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_430') ?></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_FactoryForms436_CheckboxControl') ) {
24
 
25
+ class Wbcr_FactoryForms436_CheckboxControl extends Wbcr_FactoryForms436_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_436') ?></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_436') ?></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_FactoryForms430_ColorAndOpacityControl') ) {
24
  }
25
 
26
- class Wbcr_FactoryForms430_ColorAndOpacityControl extends Wbcr_FactoryForms430_ComplexControl {
27
 
28
  public $type = 'color-and-opacity';
29
 
@@ -57,8 +57,8 @@
57
  'way' => 'slider'
58
  ));
59
 
60
- $this->color = new Wbcr_FactoryForms430_ColorControl($options['color'], $form, $provider);
61
- $this->opacity = new Wbcr_FactoryForms430_IntegerControl($options['opacity'], $form, $provider);
62
 
63
  $this->innerControls = array($this->color, $this->opacity);
64
  }
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms436_ColorAndOpacityControl') ) {
24
  }
25
 
26
+ class Wbcr_FactoryForms436_ColorAndOpacityControl extends Wbcr_FactoryForms436_ComplexControl {
27
 
28
  public $type = 'color-and-opacity';
29
 
57
  'way' => 'slider'
58
  ));
59
 
60
+ $this->color = new Wbcr_FactoryForms436_ColorControl($options['color'], $form, $provider);
61
+ $this->opacity = new Wbcr_FactoryForms436_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_FactoryForms430_ColorControl') ) {
24
 
25
- class Wbcr_FactoryForms430_ColorControl extends Wbcr_FactoryForms430_Control {
26
 
27
  public $type = 'color';
28
 
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms436_ColorControl') ) {
24
 
25
+ class Wbcr_FactoryForms436_ColorControl extends Wbcr_FactoryForms436_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_FactoryForms430_Html') ) {
18
 
19
- class Wbcr_FactoryForms430_Html extends Wbcr_FactoryForms430_CustomElement {
20
 
21
  public $type = 'html';
22
 
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_Html') ) {
18
 
19
+ class Wbcr_FactoryForms436_Html extends Wbcr_FactoryForms436_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_FactoryForms430_Separator') ) {
18
- class Wbcr_FactoryForms430_Separator extends Wbcr_FactoryForms430_CustomElement {
19
 
20
  public $type = 'separator';
21
 
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_Separator') ) {
18
+ class Wbcr_FactoryForms436_Separator extends Wbcr_FactoryForms436_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_FactoryForms430_DatepickerRangeControl') ) {
33
 
34
- class Wbcr_FactoryForms430_DatepickerRangeControl extends Wbcr_FactoryForms430_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_FactoryForms430_TextboxControl($options['range_1'], $form, $provider);
69
- $this->range_2 = new Wbcr_FactoryForms430_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_FactoryForms436_DatepickerRangeControl') ) {
33
 
34
+ class Wbcr_FactoryForms436_DatepickerRangeControl extends Wbcr_FactoryForms436_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_FactoryForms436_TextboxControl($options['range_1'], $form, $provider);
69
+ $this->range_2 = new Wbcr_FactoryForms436_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 FactoryForms430_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 FactoryForms430_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_FactoryForms430_DropdownAndColorsControl') ) {
41
 
42
- class Wbcr_FactoryForms430_DropdownAndColorsControl extends Wbcr_FactoryForms430_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_FactoryForms430_DropdownControl($options['dropdown'], $form, $provider);
73
- $this->colors = new Wbcr_FactoryForms430_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 FactoryForms436_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 FactoryForms436_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_FactoryForms436_DropdownAndColorsControl') ) {
41
 
42
+ class Wbcr_FactoryForms436_DropdownAndColorsControl extends Wbcr_FactoryForms436_ComplexControl {
43
 
44
  public $type = 'dropdown-and-colors';
45
 
69
  'name' => $this->options['name'] . '__colors',
70
  ));
71
 
72
+ $this->dropdown = new Wbcr_FactoryForms436_DropdownControl($options['dropdown'], $form, $provider);
73
+ $this->colors = new Wbcr_FactoryForms436_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_FactoryForms430_DropdownControl' ) ) {
25
 
26
- class Wbcr_FactoryForms430_DropdownControl extends Wbcr_FactoryForms430_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_430' ) ) ?>'
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_430' ) );
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_430' );
353
 
354
  $data = isset( $item['data'] ) ? $item['data'] : null;
355
  } else {
21
  exit;
22
  }
23
 
24
+ if ( ! class_exists( 'Wbcr_FactoryForms436_DropdownControl' ) ) {
25
 
26
+ class Wbcr_FactoryForms436_DropdownControl extends Wbcr_FactoryForms436_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_436' ) ) ?>'
127
  };
128
  </script>
129
  <?php
268
  }
269
 
270
  $is_empty = $this->isAjax() || empty( $items );
271
+ $empty_list = $this->getOption( 'empty', __( '- empty -', 'wbcr_factory_forms_436' ) );
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_436' );
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_FactoryForms430_FontControl') ) {
24
 
25
- class Wbcr_FactoryForms430_FontControl extends Wbcr_FactoryForms430_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_FactoryForms430_IntegerControl($option_font_size, $form, $provider);
58
- $this->family = new Wbcr_FactoryForms430_DropdownControl($option_font_family, $form, $provider);
59
- $this->color = new Wbcr_FactoryForms430_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_430_fonts', $fonts);
70
- $fonts = apply_filters('wbcr_factory_forms_430_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_430')),
81
  array(
82
  'group',
83
- __('Sans Serif:', 'wbcr_factory_forms_430'),
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_430'),
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_430'),
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_FactoryForms436_FontControl') ) {
24
 
25
+ class Wbcr_FactoryForms436_FontControl extends Wbcr_FactoryForms436_ComplexControl {
26
 
27
  public $type = 'font';
28
 
54
  'pickerTarget' => '.factory-control-' . $this->options['name'] . ' .factory-picker-target'
55
  );
56
 
57
+ $this->size = new Wbcr_FactoryForms436_IntegerControl($option_font_size, $form, $provider);
58
+ $this->family = new Wbcr_FactoryForms436_DropdownControl($option_font_family, $form, $provider);
59
+ $this->color = new Wbcr_FactoryForms436_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_436_fonts', $fonts);
70
+ $fonts = apply_filters('wbcr_factory_forms_436_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_436')),
81
  array(
82
  'group',
83
+ __('Sans Serif:', 'wbcr_factory_forms_436'),
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_436'),
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_436'),
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_FactoryForms430_GoogleFontControl extends Wbcr_FactoryForms430_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_FactoryForms430_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_430'))
53
  );
54
 
55
  $fontsCommon = array(
56
  'group',
57
- __('Standard:', 'wbcr_factory_forms_430'),
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_430'), 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_430');
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_430');
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_430');
137
 
138
  return $body;
139
  }
15
  * @package core
16
  * @since 1.0.0
17
  */
18
+ class Wbcr_FactoryForms436_GoogleFontControl extends Wbcr_FactoryForms436_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_FactoryForms436_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_436'))
53
  );
54
 
55
  $fontsCommon = array(
56
  'group',
57
+ __('Standard:', 'wbcr_factory_forms_436'),
58
  array(
59
 
60
  array('Arial, "Helvetica Neue", Helvetica, sans-serif', 'Arial'),
65
  )
66
  );
67
 
68
+ $fontsGoogleFonts = array('group', __('Google Fonts:', 'wbcr_factory_forms_436'), 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_436');
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_436');
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_436');
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_FactoryForms430_GradientControl') ) {
29
- class Wbcr_FactoryForms430_GradientControl extends Wbcr_FactoryForms430_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_430' ) ?>';
70
- factory.res.resHorizontal = '<?php _e( 'horizontal', 'wbcr_factory_forms_430' ) ?>';
71
  </script>
72
  <div <?php $this->attrs() ?>>
73
  <div class="factory-gradient-picker">
25
  exit;
26
  }
27
 
28
+ if( !class_exists('Wbcr_FactoryForms436_GradientControl') ) {
29
+ class Wbcr_FactoryForms436_GradientControl extends Wbcr_FactoryForms436_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_436' ) ?>';
70
+ factory.res.resHorizontal = '<?php _e( 'horizontal', 'wbcr_factory_forms_436' ) ?>';
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_FactoryForms430_HiddenControl') ) {
24
 
25
- class Wbcr_FactoryForms430_HiddenControl extends Wbcr_FactoryForms430_Control {
26
 
27
  public $type = 'hidden';
28
 
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms436_HiddenControl') ) {
24
 
25
+ class Wbcr_FactoryForms436_HiddenControl extends Wbcr_FactoryForms436_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_FactoryForms430_AccordionItemHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms430_AccordionItemHolder extends Wbcr_FactoryForms430_Holder {
25
 
26
  /**
27
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_AccordionItemHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms436_AccordionItemHolder extends Wbcr_FactoryForms436_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_FactoryForms430_AccordionHolder') ) {
17
  /**
18
  * Tab Control Holder
19
  *
20
  * @since 1.0.0
21
  */
22
- class Wbcr_FactoryForms430_AccordionHolder extends Wbcr_FactoryForms430_Holder {
23
 
24
  /**
25
  * A holder type.
13
  if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
+ if( !class_exists('Wbcr_FactoryForms436_AccordionHolder') ) {
17
  /**
18
  * Tab Control Holder
19
  *
20
  * @since 1.0.0
21
  */
22
+ class Wbcr_FactoryForms436_AccordionHolder extends Wbcr_FactoryForms436_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_FactoryForms430_ColumnsHolder') ) {
18
  /**
19
  * Columns Holder
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_FactoryForms430_ColumnsHolder extends Wbcr_FactoryForms430_Holder {
24
 
25
  /**
26
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_ColumnsHolder') ) {
18
  /**
19
  * Columns Holder
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_FactoryForms436_ColumnsHolder extends Wbcr_FactoryForms436_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_FactoryForms430_ControlGroupItem') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms430_ControlGroupItem extends Wbcr_FactoryForms430_Holder {
25
 
26
  /**
27
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_ControlGroupItem') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms436_ControlGroupItem extends Wbcr_FactoryForms436_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_FactoryForms430_ControlGroupHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms430_ControlGroupHolder extends Wbcr_FactoryForms430_ControlHolder {
25
 
26
  /**
27
  * A holder type.
@@ -61,7 +61,7 @@
61
  continue;
62
  }
63
 
64
- $builder = new Wbcr_FactoryForms430_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_FactoryForms436_ControlGroupHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms436_ControlGroupHolder extends Wbcr_FactoryForms436_ControlHolder {
25
 
26
  /**
27
  * A holder type.
61
  continue;
62
  }
63
 
64
+ $builder = new Wbcr_FactoryForms436_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_FactoryForms430_DivHolder') ) {
18
  /**
19
  * Div Control Holder
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_FactoryForms430_DivHolder extends Wbcr_FactoryForms430_Holder {
24
 
25
  /**
26
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_DivHolder') ) {
18
  /**
19
  * Div Control Holder
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_FactoryForms436_DivHolder extends Wbcr_FactoryForms436_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_FactoryForms430_FormGroupHolder') ) {
18
  /**
19
  * Group Holder
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_FactoryForms430_FormGroupHolder extends Wbcr_FactoryForms430_Holder {
24
 
25
  /**
26
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_FormGroupHolder') ) {
18
  /**
19
  * Group Holder
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_FactoryForms436_FormGroupHolder extends Wbcr_FactoryForms436_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_FactoryForms430_MoreLinkHolder') ) {
18
 
19
  /**
20
  * Collapsed Group Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms430_MoreLinkHolder extends Wbcr_FactoryForms430_Holder {
25
 
26
  /**
27
  * A holder type.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_MoreLinkHolder') ) {
18
 
19
  /**
20
  * Collapsed Group Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms436_MoreLinkHolder extends Wbcr_FactoryForms436_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_FactoryForms430_TabItemHolder') ) {
17
  /**
18
  * Tab Item Control Holder
19
  *
20
  * @since 1.0.0
21
  */
22
- class Wbcr_FactoryForms430_TabItemHolder extends Wbcr_FactoryForms430_Holder {
23
 
24
  /**
25
  * A holder type.
13
  exit;
14
  }
15
 
16
+ if( !class_exists('Wbcr_FactoryForms436_TabItemHolder') ) {
17
  /**
18
  * Tab Item Control Holder
19
  *
20
  * @since 1.0.0
21
  */
22
+ class Wbcr_FactoryForms436_TabItemHolder extends Wbcr_FactoryForms436_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_FactoryForms430_TabHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
- class Wbcr_FactoryForms430_TabHolder extends Wbcr_FactoryForms430_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 FactoryForms430_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_FactoryForms430_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_FactoryForms436_TabHolder') ) {
18
 
19
  /**
20
  * Tab Control Holder
21
  *
22
  * @since 1.0.0
23
  */
24
+ class Wbcr_FactoryForms436_TabHolder extends Wbcr_FactoryForms436_Holder {
25
 
26
  /**
27
  * A holder type.
44
  *
45
  * @since 1.0.0
46
  * @param mixed[] $options A holder options.
47
+ * @param FactoryForms436_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_FactoryForms436_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_FactoryForms430_IntegerControl') ) {
36
 
37
- class Wbcr_FactoryForms430_IntegerControl extends Wbcr_FactoryForms430_Control {
38
 
39
  public $type = 'integer';
40
 
32
  exit;
33
  }
34
 
35
+ if( !class_exists('Wbcr_FactoryForms436_IntegerControl') ) {
36
 
37
+ class Wbcr_FactoryForms436_IntegerControl extends Wbcr_FactoryForms436_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_FactoryForms430_ListControl') ) {
25
 
26
- class Wbcr_FactoryForms430_ListControl extends Wbcr_FactoryForms430_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_430') ) ?>'
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_430'));
140
 
141
  if( $is_empty ) {
142
  $this->addCssClass('factory-empty');
21
  exit;
22
  }
23
 
24
+ if( !class_exists('Wbcr_FactoryForms436_ListControl') ) {
25
 
26
+ class Wbcr_FactoryForms436_ListControl extends Wbcr_FactoryForms436_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_436') ) ?>'
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_436'));
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_FactoryForms430_MultipleTextboxControl') ) {
19
 
20
- class Wbcr_FactoryForms430_MultipleTextboxControl extends Wbcr_FactoryForms430_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_430') ?>
90
  </button>
91
  </div>
92
 
15
  exit;
16
  }
17
 
18
+ if( !class_exists('Wbcr_FactoryForms436_MultipleTextboxControl') ) {
19
 
20
+ class Wbcr_FactoryForms436_MultipleTextboxControl extends Wbcr_FactoryForms436_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_436') ?>
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_FactoryForms430_PaddingsEditorControl') ) {
18
 
19
- class Wbcr_FactoryForms430_PaddingsEditorControl extends Wbcr_FactoryForms430_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_430') ?>
71
  </label>
72
 
73
  <div class="factory-slider">
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_PaddingsEditorControl') ) {
18
 
19
+ class Wbcr_FactoryForms436_PaddingsEditorControl extends Wbcr_FactoryForms436_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_436') ?>
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_FactoryForms430_PatternControl') ) {
19
 
20
- class Wbcr_FactoryForms430_PatternControl extends Wbcr_FactoryForms430_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_430_patterns', array());
56
- $this->patterns = apply_filters('wbcr_factory_forms_430_patterns-' . $name, $this->patterns);
57
 
58
  $this->custom_patterns = $this->getOption('patterns', array());
59
 
60
- $this->color = new Wbcr_FactoryForms430_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_430') ?>">
106
  <i class="fa fa-flask"></i>
107
- <span><?php _e('re-color', 'wbcr_factory_forms_430') ?></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_430') ?></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_430') ?></i>
118
  </div>
119
  </div>
120
  <div class="factory-picker-target"></div>
15
  exit;
16
  }
17
 
18
+ if( !class_exists('Wbcr_FactoryForms436_PatternControl') ) {
19
 
20
+ class Wbcr_FactoryForms436_PatternControl extends Wbcr_FactoryForms436_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_436_patterns', array());
56
+ $this->patterns = apply_filters('wbcr_factory_forms_436_patterns-' . $name, $this->patterns);
57
 
58
  $this->custom_patterns = $this->getOption('patterns', array());
59
 
60
+ $this->color = new Wbcr_FactoryForms436_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_436') ?>">
106
  <i class="fa fa-flask"></i>
107
+ <span><?php _e('re-color', 'wbcr_factory_forms_436') ?></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_436') ?></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_436') ?></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_FactoryForms430_RadioColorsControl') ) {
31
 
32
- class Wbcr_FactoryForms430_RadioColorsControl extends Wbcr_FactoryForms430_Control {
33
 
34
  public $type = 'radio-color';
35
 
27
  exit;
28
  }
29
 
30
+ if( !class_exists('Wbcr_FactoryForms436_RadioColorsControl') ) {
31
 
32
+ class Wbcr_FactoryForms436_RadioColorsControl extends Wbcr_FactoryForms436_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_FactoryForms430_RadioControl') ) {
25
 
26
- class Wbcr_FactoryForms430_RadioControl extends Wbcr_FactoryForms430_Control {
27
 
28
  public $type = 'radio';
29
 
21
  exit;
22
  }
23
 
24
+ if( !class_exists('Wbcr_FactoryForms436_RadioControl') ) {
25
 
26
+ class Wbcr_FactoryForms436_RadioControl extends Wbcr_FactoryForms436_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_FactoryForms430_TextareaControl') ) {
24
 
25
- class Wbcr_FactoryForms430_TextareaControl extends Wbcr_FactoryForms430_Control {
26
 
27
  public $type = 'textarea';
28
 
20
  exit;
21
  }
22
 
23
+ if( !class_exists('Wbcr_FactoryForms436_TextareaControl') ) {
24
 
25
+ class Wbcr_FactoryForms436_TextareaControl extends Wbcr_FactoryForms436_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_FactoryForms430_TextboxControl') ) {
33
 
34
- class Wbcr_FactoryForms430_TextboxControl extends Wbcr_FactoryForms430_Control {
35
 
36
  public $type = 'textbox';
37
 
29
  exit;
30
  }
31
 
32
+ if( !class_exists('Wbcr_FactoryForms436_TextboxControl') ) {
33
 
34
+ class Wbcr_FactoryForms436_TextboxControl extends Wbcr_FactoryForms436_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 FactoryForms430_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_FactoryForms430_UrlControl') ) {
22
 
23
- class Wbcr_FactoryForms430_UrlControl extends Wbcr_FactoryForms430_TextboxControl {
24
 
25
  public $type = 'url';
26
 
4
  * Url Control
5
  *
6
  * Main options:
7
+ * @see FactoryForms436_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_FactoryForms436_UrlControl') ) {
22
 
23
+ class Wbcr_FactoryForms436_UrlControl extends Wbcr_FactoryForms436_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_FactoryForms430_WpEditorControl') ) {
26
 
27
- class Wbcr_FactoryForms430_WpEditorControl extends Wbcr_FactoryForms430_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_430_URL . '/assets/css/editor.css';
46
  }
47
  }
48
 
22
  exit;
23
  }
24
 
25
+ if( !class_exists('Wbcr_FactoryForms436_WpEditorControl') ) {
26
 
27
+ class Wbcr_FactoryForms436_WpEditorControl extends Wbcr_FactoryForms436_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_436_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_FactoryForms430_ComplexControl') ) {
17
  /**
18
  * The base class for all controls.
19
  *
20
  * @since 1.0.0
21
  */
22
- abstract class Wbcr_FactoryForms430_ComplexControl extends Wbcr_FactoryForms430_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_FactoryForms430_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_IFactoryForms430_ValueProvider $provider
45
  * @return void
46
  */
47
  public function setProvider($provider)
13
  if( !defined('ABSPATH') ) {
14
  exit;
15
  }
16
+ if( !class_exists('Wbcr_FactoryForms436_ComplexControl') ) {
17
  /**
18
  * The base class for all controls.
19
  *
20
  * @since 1.0.0
21
  */
22
+ abstract class Wbcr_FactoryForms436_ComplexControl extends Wbcr_FactoryForms436_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_FactoryForms436_Control[]
37
  */
38
  public $inner_controls = array();
39
 
41
  * Sets a provider for the control.
42
  *
43
  * @since 1.0.0
44
+ * @param Wbcr_IFactoryForms436_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_FactoryForms430_ControlHolder') ) {
18
  /**
19
  * The base class for control holders.
20
  *
21
  * @since 1.0.0
22
  */
23
- abstract class Wbcr_FactoryForms430_ControlHolder extends Wbcr_FactoryForms430_Control {
24
 
25
  /**
26
  * Holder Elements.
27
  *
28
  * @since 1.0.0
29
- * @var Wbcr_FactoryForms430_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_FactoryForms430_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_FactoryForms430_FormElement[].
64
  */
65
  public function getElements()
66
  {
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_ControlHolder') ) {
18
  /**
19
  * The base class for control holders.
20
  *
21
  * @since 1.0.0
22
  */
23
+ abstract class Wbcr_FactoryForms436_ControlHolder extends Wbcr_FactoryForms436_Control {
24
 
25
  /**
26
  * Holder Elements.
27
  *
28
  * @since 1.0.0
29
+ * @var Wbcr_FactoryForms436_Control[]
30
  */
31
  protected $elements = array();
32
 
43
  *
44
  * @since 1.0.0
45
  * @param mixed[] $options A holder options.
46
+ * @param Wbcr_FactoryForms436_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_FactoryForms436_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_FactoryForms430_Control') ) {
18
 
19
  /**
20
  * The base class for all controls.
21
  *
22
  * @since 1.0.0
23
  */
24
- abstract class Wbcr_FactoryForms430_Control extends Wbcr_FactoryForms430_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_IFactoryForms430_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 FactoryForms430_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 IFactoryForms430_ValueProvider $provider
70
  * @return void
71
  */
72
  public function setProvider($provider)
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_Control') ) {
18
 
19
  /**
20
  * The base class for all controls.
21
  *
22
  * @since 1.0.0
23
  */
24
+ abstract class Wbcr_FactoryForms436_Control extends Wbcr_FactoryForms436_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_IFactoryForms436_ValueProvider
47
  */
48
  protected $provider = null;
49
 
51
  * Create a new instance of the control.
52
  *
53
  * @param mixed[] $options
54
+ * @param FactoryForms436_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 IFactoryForms436_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_FactoryForms430_CustomElement') ) {
18
  /**
19
  * The base class for all controls.
20
  *
21
  * @since 1.0.0
22
  */
23
- abstract class Wbcr_FactoryForms430_CustomElement extends Wbcr_FactoryForms430_FormElement {
24
 
25
  /**
26
  * Is this element a custom form element?
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_CustomElement') ) {
18
  /**
19
  * The base class for all controls.
20
  *
21
  * @since 1.0.0
22
  */
23
+ abstract class Wbcr_FactoryForms436_CustomElement extends Wbcr_FactoryForms436_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_HtmlAttributeBuilder
41
  */
42
  private $html_builder;
43
 
@@ -53,7 +53,7 @@
53
  * A parent form.
54
  *
55
  * @since 1.0.0
56
- * @var Wbcr_FactoryForms430_Form
57
  */
58
  protected $form;
59
 
@@ -61,7 +61,7 @@
61
  * A form layout.
62
  *
63
  * @since 1.0.0
64
- * @var Wbcr_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms436_FormElement') ) {
18
 
19
  /**
20
  * The base class for all form element (controls, holders).
23
  *
24
  * @since 1.0.0
25
  */
26
+ abstract class Wbcr_FactoryForms436_FormElement {
27
 
28
  /**
29
  * A type of an elemnt.
37
  * An html attribute builder.
38
  *
39
  * @since 1.0.0
40
+ * @var Wbcr_FactoryForms436_HtmlAttributeBuilder
41
  */
42
  private $html_builder;
43
 
53
  * A parent form.
54
  *
55
  * @since 1.0.0
56
+ * @var Wbcr_FactoryForms436_Form
57
  */
58
  protected $form;
59
 
61
  * A form layout.
62
  *
63
  * @since 1.0.0
64
+ * @var Wbcr_FactoryForms436_FormLayout
65
  */
66
  protected $layout;
67
 
94
  *
95
  * @since 1.0.0
96
  * @param mixed[] $options A holder options.
97
+ * @param Wbcr_FactoryForms436_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_FactoryForms436_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_FactoryForms430_FormLayout') ) {
18
 
19
  /**
20
  * The base class for all form layouts.
21
  */
22
- abstract class Wbcr_FactoryForms430_FormLayout extends Wbcr_FactoryForms430_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_FactoryForms430_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-430-' . $this->type);
56
- $this->addCssClass('factory-forms-430-' . $this->name);
57
  }
58
 
59
  /**
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_FormLayout') ) {
18
 
19
  /**
20
  * The base class for all form layouts.
21
  */
22
+ abstract class Wbcr_FactoryForms436_FormLayout extends Wbcr_FactoryForms436_Holder {
23
 
24
  /**
25
  * A form layout name.
42
  *
43
  * @since 1.0.0
44
  * @param mixed[] $options A holder options.
45
+ * @param Wbcr_FactoryForms436_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-436-' . $this->type);
56
+ $this->addCssClass('factory-forms-436-' . $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_430_plugin_created', 'wbcr_factory_forms_430_plugin_created');
19
 
20
- function wbcr_factory_forms_430_plugin_created($plugin)
21
  {
22
- $plugin->forms = new Wbcr_FactoryForms430_Manager($plugin);
23
  }
24
 
25
- if( !class_exists('Wbcr_FactoryForms430_Manager') ) {
26
 
27
- class Wbcr_FactoryForms430_Manager {
28
 
29
  // ----------------------------------------------------
30
  // Static fields and methods
@@ -57,7 +57,7 @@
57
  /**
58
  * Registers a set of new controls.
59
  *
60
- * @see FactoryForms430_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 FactoryForms430_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 FactoryForms430_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_FactoryForms430_Form') ) {
184
  /**
185
  * An abstraction for forms.
186
  */
187
- class Wbcr_FactoryForms430_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_IFactoryForms430_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_FactoryForms430_FormLayout
249
  */
250
  public $layout;
251
 
@@ -261,20 +261,20 @@
261
  *
262
  * @since 1.0.0
263
  * @param array $options
264
- * @param Wbcr_Factory432_Plugin $plugin
265
  */
266
- public function __construct(array $options = array(), Wbcr_Factory432_Plugin $plugin)
267
  {
268
  // register controls once, when the first form is created
269
- if( !Wbcr_FactoryForms430_Manager::$controls_registered ) {
270
 
271
- do_action('wbcr_factory_forms_430_register_controls', $plugin);
272
 
273
  //if( !empty($plugin) ) {
274
- do_action('wbcr_factory_forms_430_register_controls_' . $plugin->getPluginName(), $plugin);
275
  //}
276
 
277
- Wbcr_FactoryForms430_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_FactoryForms430_Manager::$temper = 'flat';
293
  }
294
 
295
  /**
296
  * Sets a provider for the control.
297
  *
298
  * @since 1.0.0
299
- * @param Wbcr_IFactoryForms430_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_432_form_items', $this->items, $this->name);
336
  }
337
 
338
  /**
339
  * Returns form controls (control objects).
340
  *
341
  * @since 1.0.0
342
- * @return Wbcr_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_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_FactoryForms430_Manager::$registered_controls;
606
  } elseif( self::isControlHolder($type) ) {
607
- $haystack = Wbcr_FactoryForms430_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_FactoryForms430_Manager::$registered_controls[$item['type']]);
664
  }
665
 
666
  /**
@@ -672,7 +672,7 @@
672
  */
673
  public static function isControlHolder($item)
674
  {
675
- return isset(Wbcr_FactoryForms430_Manager::$registered_holders[$item['type']]);
676
  }
677
 
678
  /**
@@ -684,7 +684,7 @@
684
  */
685
  public static function isCustomElement($item)
686
  {
687
- return isset(Wbcr_FactoryForms430_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_436_plugin_created', 'wbcr_factory_forms_436_plugin_created');
19
 
20
+ function wbcr_factory_forms_436_plugin_created($plugin)
21
  {
22
+ $plugin->forms = new Wbcr_FactoryForms436_Manager($plugin);
23
  }
24
 
25
+ if( !class_exists('Wbcr_FactoryForms436_Manager') ) {
26
 
27
+ class Wbcr_FactoryForms436_Manager {
28
 
29
  // ----------------------------------------------------
30
  // Static fields and methods
57
  /**
58
  * Registers a set of new controls.
59
  *
60
+ * @see FactoryForms436_Form::registerControl()
61
  *
62
  * @since 1.0.0
63
  * @return void
95
  /**
96
  * Registers a set of new holder controls.
97
  *
98
+ * @see FactoryForms436_Form::registerHolder()
99
  *
100
  * @since 1.0.0
101
  * @return void
129
  /**
130
  * Registers a set of new custom form elements.
131
  *
132
+ * @see FactoryForms436_Form::registerCustomElement()
133
  *
134
  * @since 1.0.0
135
  * @return void
180
  public static $controls_registered = false;
181
  }
182
  }
183
+ if( !class_exists('Wbcr_FactoryForms436_Form') ) {
184
  /**
185
  * An abstraction for forms.
186
  */
187
+ class Wbcr_FactoryForms436_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_IFactoryForms436_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_FactoryForms436_FormLayout
249
  */
250
  public $layout;
251
 
261
  *
262
  * @since 1.0.0
263
  * @param array $options
264
+ * @param Wbcr_Factory439_Plugin $plugin
265
  */
266
+ public function __construct(array $options = array(), Wbcr_Factory439_Plugin $plugin)
267
  {
268
  // register controls once, when the first form is created
269
+ if( !Wbcr_FactoryForms436_Manager::$controls_registered ) {
270
 
271
+ do_action('wbcr_factory_forms_436_register_controls', $plugin);
272
 
273
  //if( !empty($plugin) ) {
274
+ do_action('wbcr_factory_forms_436_register_controls_' . $plugin->getPluginName(), $plugin);
275
  //}
276
 
277
+ Wbcr_FactoryForms436_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_FactoryForms436_Manager::$temper = 'flat';
293
  }
294
 
295
  /**
296
  * Sets a provider for the control.
297
  *
298
  * @since 1.0.0
299
+ * @param Wbcr_IFactoryForms436_ValueProvider $provider
300
  * @return void
301
  */
302
  public function setProvider($provider)
332
  */
333
  public function getItems()
334
  {
335
+ return apply_filters('wbcr_factory_439_form_items', $this->items, $this->name);
336
  }
337
 
338
  /**
339
  * Returns form controls (control objects).
340
  *
341
  * @since 1.0.0
342
+ * @return Wbcr_FactoryForms436_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_FactoryForms436_Control[]
359
  */
360
 
361
  public function createControls($holder = null)
395
  *
396
  * @since 1.0.0
397
  * @param array $item Item data.
398
+ * @return Wbcr_FactoryForms436_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_FactoryForms436_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_FactoryForms436_Control A control object.
437
  */
438
  public function createControl($item)
439
  {
441
 
442
  if( is_array($item) ) {
443
 
444
+ $control_data = Wbcr_FactoryForms436_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_FactoryForms436_Holder A control holder object.
469
  */
470
  public function createHolder($item)
471
  {
473
 
474
  if( is_array($item) ) {
475
 
476
+ $holderData = Wbcr_FactoryForms436_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_FactoryForms436_FormElement A custom form element object.
495
  */
496
  public function createCustomElement($item)
497
  {
499
 
500
  if( is_array($item) ) {
501
 
502
+ $data = Wbcr_FactoryForms436_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_FactoryForms436_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_FactoryForms436_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_FactoryForms436_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_FactoryForms436_Manager::$registered_controls;
606
  } elseif( self::isControlHolder($type) ) {
607
+ $haystack = Wbcr_FactoryForms436_Manager::$registered_holders;
608
  }
609
 
610
  if( isset($haystack[$type]) ) {
660
  */
661
  public static function isControl($item)
662
  {
663
+ return isset(Wbcr_FactoryForms436_Manager::$registered_controls[$item['type']]);
664
  }
665
 
666
  /**
672
  */
673
  public static function isControlHolder($item)
674
  {
675
+ return isset(Wbcr_FactoryForms436_Manager::$registered_holders[$item['type']]);
676
  }
677
 
678
  /**
684
  */
685
  public static function isCustomElement($item)
686
  {
687
+ return isset(Wbcr_FactoryForms436_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_FactoryForms430_Holder') ) {
18
 
19
  /**
20
  * The base class for control holders.
21
  *
22
  * @since 1.0.0
23
  */
24
- abstract class Wbcr_FactoryForms430_Holder extends Wbcr_FactoryForms430_FormElement {
25
 
26
  /**
27
  * Holder Elements.
28
  *
29
  * @since 1.0.0
30
- * @var Wbcr_FactoryForms430_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_FactoryForms430_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_FactoryForms430_Control[].
60
  */
61
  public function getElements()
62
  {
@@ -84,7 +84,7 @@
84
  $is_first_item = false;
85
  }
86
 
87
- do_action('wbcr_factory_432_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_FactoryForms436_Holder') ) {
18
 
19
  /**
20
  * The base class for control holders.
21
  *
22
  * @since 1.0.0
23
  */
24
+ abstract class Wbcr_FactoryForms436_Holder extends Wbcr_FactoryForms436_FormElement {
25
 
26
  /**
27
  * Holder Elements.
28
  *
29
  * @since 1.0.0
30
+ * @var Wbcr_FactoryForms436_Control[]
31
  */
32
  protected $elements = array();
33
 
44
  *
45
  * @since 1.0.0
46
  * @param mixed[] $options A holder options.
47
+ * @param Wbcr_FactoryForms436_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_FactoryForms436_Control[].
60
  */
61
  public function getElements()
62
  {
84
  $is_first_item = false;
85
  }
86
 
87
+ do_action('wbcr_factory_439_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_FactoryForms430_HtmlAttributeBuilder') ) {
18
  /**
19
  * Html Attribute Builder
20
  *
21
  * @since 1.0.0
22
  */
23
- class Wbcr_FactoryForms430_HtmlAttributeBuilder {
24
 
25
  /**
26
  * An array to store css classes.
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_HtmlAttributeBuilder') ) {
18
  /**
19
  * Html Attribute Builder
20
  *
21
  * @since 1.0.0
22
  */
23
+ class Wbcr_FactoryForms436_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_FactoryForms430_OptionsValueProvider') ) {
18
 
19
  /**
20
  * Factory Meta Value Provider
@@ -24,7 +24,7 @@
24
  *
25
  * @since 1.0.0
26
  */
27
- class Wbcr_FactoryForms430_MetaValueProvider implements Wbcr_IFactoryForms430_ValueProvider {
28
 
29
 
30
  public $scope;
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_OptionsValueProvider') ) {
18
 
19
  /**
20
  * Factory Meta Value Provider
24
  *
25
  * @since 1.0.0
26
  */
27
+ class Wbcr_FactoryForms436_MetaValueProvider implements Wbcr_IFactoryForms436_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_FactoryForms430_OptionsValueProvider') ) {
17
 
18
  /**
19
  * Factory Options Value Provider
@@ -22,7 +22,7 @@
22
  *
23
  * @since 1.0.0
24
  */
25
- class Wbcr_FactoryForms430_OptionsValueProvider implements Wbcr_IFactoryForms430_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_Factory432_Plugin $plugin)
47
  {
48
  $this->plugin = $plugin;
49
  }
13
  exit;
14
  }
15
 
16
+ if( !class_exists('Wbcr_FactoryForms436_OptionsValueProvider') ) {
17
 
18
  /**
19
  * Factory Options Value Provider
22
  *
23
  * @since 1.0.0
24
  */
25
+ class Wbcr_FactoryForms436_OptionsValueProvider implements Wbcr_IFactoryForms436_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_Factory439_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_IFactoryForms430_ValueProvider') ) {
18
  /**
19
  * The interface for all value provides.
20
  *
21
  * @since 1.0.0
22
  */
23
- interface Wbcr_IFactoryForms430_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_IFactoryForms436_ValueProvider') ) {
18
  /**
19
  * The interface for all value provides.
20
  *
21
  * @since 1.0.0
22
  */
23
+ interface Wbcr_IFactoryForms436_ValueProvider {
24
 
25
  /**
26
  * Inits a form a provider to get data from a storage.
libs/factory/forms/langs/wbcr_factory_forms_430-ru_RU.mo DELETED
Binary file
libs/factory/forms/langs/wbcr_factory_forms_430-ru_RU.po DELETED
@@ -1,95 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: factory_forms\n"
4
- "POT-Creation-Date: 2014-08-24 17:39+0400\n"
5
- "PO-Revision-Date: 2014-08-24 17:49+0400\n"
6
- "Last-Translator: \n"
7
- "Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\n"
8
- "Language: ru_RU\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.6.8\n"
13
- "X-Poedit-Basepath: .\n"
14
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
- "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
- "X-Poedit-SearchPath-0: E:\\cloud\\Dropbox\\OnePress\\Products\\Topic\\Plugin "
19
- "- Opt-In Panda for Wordpress\\wp-content\\plugins\\optinpanda-next\\libs"
20
- "\\factory\\forms\n"
21
-
22
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
23
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/checkbox.php:55
24
- msgid "On"
25
- msgstr "Вкл"
26
-
27
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
28
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/checkbox.php:56
29
- msgid "Off"
30
- msgstr "Выкл"
31
-
32
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
33
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/font.php:33
34
- msgid "(use default website font)"
35
- msgstr "(шрифт сайта по умолчанию)"
36
-
37
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
38
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/font.php:35
39
- msgid "Sans Serif:"
40
- msgstr "Группа Sans Serif:"
41
-
42
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
43
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/font.php:58
44
- msgid "Serif:"
45
- msgstr "Группа Serif:"
46
-
47
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
48
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/font.php:78
49
- msgid "Monospaced:"
50
- msgstr "Группа Monospaced:"
51
-
52
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
53
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/gradient.php:54
54
- msgid "vertical"
55
- msgstr "вертикальный"
56
-
57
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
58
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/gradient.php:55
59
- msgid "horizontal"
60
- msgstr "горизонтальный"
61
-
62
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
63
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/holders/more-link.php:47
64
- msgid "hide extra options"
65
- msgstr "скрыть дополнительные настроки"
66
-
67
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
68
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/paddings-editor.php:51
69
- msgid "Select a side and move the slider to set up:"
70
- msgstr "Выберите сторону и переместите ползунок:"
71
-
72
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
73
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/pattern.php:78
74
- msgid "Change color"
75
- msgstr "Выбрать цвет"
76
-
77
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
78
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/pattern.php:80
79
- msgid "re-color"
80
- msgstr "Перекрасить"
81
-
82
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
83
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/pattern.php:89
84
- msgid "Select color:"
85
- msgstr "Выберите цвет:"
86
-
87
- #: E:\cloud\Dropbox\OnePress\Products\Topic\Plugin - Opt-In Panda for
88
- #: Wordpress\wp-content\plugins\optinpanda-next\libs\factory\forms/controls/pattern.php:91
89
- msgid "Changing the color may takes a minute or more. Please be patient."
90
- msgstr ""
91
- "В некоторых случаях изменение цвета может занять около минуты. Пожалуйста, "
92
- "будьте терпеливы."
93
-
94
- #~ msgid "Upload Pattern"
95
- #~ msgstr "Добавить шаблон"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/forms/langs/{wbcr_factory_forms_429-ru_RU.mo → wbcr_factory_forms_436-ru_RU.mo} RENAMED
File without changes
libs/factory/forms/langs/{wbcr_factory_forms_429-ru_RU.po → wbcr_factory_forms_436-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_FactoryForms430_Bootstrap3FormLayout') ) {
18
  /**
19
  * A form layout based on Twitter Bootstrap 3
20
  */
21
- class Wbcr_FactoryForms430_Bootstrap3FormLayout extends Wbcr_FactoryForms430_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_FactoryForms430_Form $form A parent form.
31
  */
32
  public function __construct($options, $form)
33
  {
@@ -68,7 +68,7 @@
68
  }
69
 
70
  /**
71
- * @param Wbcr_FactoryForms430_Control $control
72
  */
73
  public function beforeControl($control)
74
  {
@@ -116,7 +116,7 @@
116
  }
117
 
118
  /**
119
- * @param Wbcr_FactoryForms430_Control $control
120
  */
121
  public function afterControl($control)
122
  {
@@ -168,7 +168,7 @@
168
  }
169
 
170
  /**
171
- * @param Wbcr_FactoryForms430_Control $control
172
  * @param int $index
173
  * @param int $total
174
  */
@@ -193,7 +193,7 @@
193
  }
194
 
195
  /**
196
- * @param Wbcr_FactoryForms430_Control $control
197
  * @param int $index
198
  * @param int $total
199
  */
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryForms436_Bootstrap3FormLayout') ) {
18
  /**
19
  * A form layout based on Twitter Bootstrap 3
20
  */
21
+ class Wbcr_FactoryForms436_Bootstrap3FormLayout extends Wbcr_FactoryForms436_FormLayout {
22
 
23
  public $name = 'default';
24
 
27
  *
28
  * @since 1.0.0
29
  * @param array $options A holder options.
30
+ * @param Wbcr_FactoryForms436_Form $form A parent form.
31
  */
32
  public function __construct($options, $form)
33
  {
68
  }
69
 
70
  /**
71
+ * @param Wbcr_FactoryForms436_Control $control
72
  */
73
  public function beforeControl($control)
74
  {
116
  }
117
 
118
  /**
119
+ * @param Wbcr_FactoryForms436_Control $control
120
  */
121
  public function afterControl($control)
122
  {
168
  }
169
 
170
  /**
171
+ * @param Wbcr_FactoryForms436_Control $control
172
  * @param int $index
173
  * @param int $total
174
  */
193
  }
194
 
195
  /**
196
+ * @param Wbcr_FactoryForms436_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_120_LOADED') ) {
18
  return;
19
  }
20
 
21
- define('FACTORY_FREEMIUS_120_VERSION', '1.2.0');
22
 
23
- define('FACTORY_FREEMIUS_120_LOADED', true);
24
- define('FACTORY_FREEMIUS_120_DIR', dirname(__FILE__));
25
- define('FACTORY_FREEMIUS_120_URL', plugins_url(null, __FILE__));
26
 
27
  #comp merge
28
  // Freemius
29
- require_once(FACTORY_FREEMIUS_120_DIR . '/includes/entities/class-freemius-entity.php');
30
- require_once(FACTORY_FREEMIUS_120_DIR . '/includes/entities/class-freemius-scope.php');
31
- require_once(FACTORY_FREEMIUS_120_DIR . '/includes/entities/class-freemius-user.php');
32
- require_once(FACTORY_FREEMIUS_120_DIR . '/includes/entities/class-freemius-site.php');
33
- require_once(FACTORY_FREEMIUS_120_DIR . '/includes/entities/class-freemius-license.php');
34
- require_once(FACTORY_FREEMIUS_120_DIR . '/includes/licensing/class-freemius-provider.php');
35
- require_once(FACTORY_FREEMIUS_120_DIR . '/includes/updates/class-freemius-repository.php');
36
 
37
  if( !class_exists('Freemius_Api_WordPress') ) {
38
- require_once FACTORY_FREEMIUS_120_DIR . '/includes/sdk/FreemiusWordPress.php';
39
  }
40
 
41
- require_once(FACTORY_FREEMIUS_120_DIR . '/includes/class-freemius-api.php');
42
 
43
  /**
44
- * @param Wbcr_Factory432_Plugin $plugin
45
  */
46
- add_action('wbcr_factory_freemius_120_plugin_created', function ($plugin) {
47
  # Устанавливаем класс провайдера лицензий для премиум менеджера
48
- $plugin->set_license_provider('freemius', 'WBCR\Factory_Freemius_120\Premium\Provider');
49
  # Устанавливаем класс репозитория обновлений для менеджера обновлений
50
- $plugin->set_update_repository('freemius', 'WBCR\Factory_Freemius_120\Updates\Freemius_Repository');
51
  });
52
  #endcomp
14
  exit;
15
  }
16
 
17
+ if( defined('FACTORY_FREEMIUS_126_LOADED') ) {
18
  return;
19
  }
20
 
21
+ define('FACTORY_FREEMIUS_126_VERSION', '1.2.6');
22
 
23
+ define('FACTORY_FREEMIUS_126_LOADED', true);
24
+ define('FACTORY_FREEMIUS_126_DIR', dirname(__FILE__));
25
+ define('FACTORY_FREEMIUS_126_URL', plugins_url(null, __FILE__));
26
 
27
  #comp merge
28
  // Freemius
29
+ require_once(FACTORY_FREEMIUS_126_DIR . '/includes/entities/class-freemius-entity.php');
30
+ require_once(FACTORY_FREEMIUS_126_DIR . '/includes/entities/class-freemius-scope.php');
31
+ require_once(FACTORY_FREEMIUS_126_DIR . '/includes/entities/class-freemius-user.php');
32
+ require_once(FACTORY_FREEMIUS_126_DIR . '/includes/entities/class-freemius-site.php');
33
+ require_once(FACTORY_FREEMIUS_126_DIR . '/includes/entities/class-freemius-license.php');
34
+ require_once(FACTORY_FREEMIUS_126_DIR . '/includes/licensing/class-freemius-provider.php');
35
+ require_once(FACTORY_FREEMIUS_126_DIR . '/includes/updates/class-freemius-repository.php');
36
 
37
  if( !class_exists('Freemius_Api_WordPress') ) {
38
+ require_once FACTORY_FREEMIUS_126_DIR . '/includes/sdk/FreemiusWordPress.php';
39
  }
40
 
41
+ require_once(FACTORY_FREEMIUS_126_DIR . '/includes/class-freemius-api.php');
42
 
43
  /**
44
+ * @param Wbcr_Factory439_Plugin $plugin
45
  */
46
+ add_action('wbcr_factory_freemius_126_plugin_created', function ($plugin) {
47
  # Устанавливаем класс провайдера лицензий для премиум менеджера
48
+ $plugin->set_license_provider('freemius', 'WBCR\Factory_Freemius_126\Premium\Provider');
49
  # Устанавливаем класс репозитория обновлений для менеджера обновлений
50
+ $plugin->set_update_repository('freemius', 'WBCR\Factory_Freemius_126\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_120;
4
 
5
  use Freemius_Api_WordPress;
6
  use Freemius_Exception;
7
- use Wbcr_Factory432_Plugin;
8
 
9
  if ( ! defined( 'ABSPATH' ) ) {
10
  exit;
@@ -33,7 +33,7 @@ final class Api {
33
  private $api;
34
 
35
  /**
36
- * @var Wbcr_Factory432_Plugin
37
  */
38
  private $plugin;
39
 
@@ -48,14 +48,14 @@ final class Api {
48
  private static $clock_diff;
49
 
50
  /**
51
- * @param Wbcr_Factory432_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_Factory432_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_Factory432_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_Factory432_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_126;
4
 
5
  use Freemius_Api_WordPress;
6
  use Freemius_Exception;
7
+ use Wbcr_Factory439_Plugin;
8
 
9
  if ( ! defined( 'ABSPATH' ) ) {
10
  exit;
33
  private $api;
34
 
35
  /**
36
+ * @var Wbcr_Factory439_Plugin
37
  */
38
  private $plugin;
39
 
48
  private static $clock_diff;
49
 
50
  /**
51
+ * @param Wbcr_Factory439_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_Factory439_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_Factory439_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_Factory439_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_120\Entities;
4
 
5
  use stdClass;
6
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_126\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_120\Entities;
4
 
5
  use stdClass;
6
 
@@ -14,7 +14,7 @@
14
  * @copyright (c) 2018 Webraftic Ltd, Freemius, Inc.
15
  * @version 1.0
16
  */
17
- class License extends Entity implements \WBCR\Factory_432\Premium\Interfaces\License {
18
 
19
  /**
20
  * @var number
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_126\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_439\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_120\Entities;
4
 
5
  use stdClass;
6
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_126\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_120\Entities;
4
 
5
  use stdClass;
6
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_126\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_120\Entities;
4
 
5
  use stdClass;
6
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_126\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_120\Entities;
4
 
5
  if ( ! defined( 'ABSPATH' ) ) {
6
  exit;
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_126\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_120\Premium;
4
-
5
- use WBCR\Factory_Freemius_120\Entities\License;
6
- use WBCR\Factory_Freemius_120\Entities\Plugin;
7
- use WBCR\Factory_Freemius_120\Entities\Site;
8
- use WBCR\Factory_Freemius_120\Entities\User;
9
- use WBCR\Factory_432\Premium\Provider as License_Provider;
10
- use Wbcr_Factory432_Plugin;
11
- use WBCR\Factory_Freemius_120\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_120\Api
44
  */
45
  private $site_api;
46
 
47
  /**
48
- * @var \WBCR\Factory_Freemius_120\Api
49
  */
50
  private $plugin_api;
51
 
52
  /**
53
- * @var \WBCR\Factory_Freemius_120\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_Factory432_Plugin $plugin
86
  *
87
  * @throws Exception
88
  */
89
- public function __construct(Wbcr_Factory432_Plugin $plugin, array $settings)
90
  {
91
  parent::__construct($plugin, $settings);
92
 
@@ -150,7 +150,7 @@ final class Provider extends License_Provider {
150
  }
151
 
152
  /**
153
- * @return \WBCR\Factory_Freemius_120\Entities\License|null
154
  * @throws Exception
155
  */
156
  public function get_license()
@@ -613,7 +613,7 @@ final class Provider extends License_Provider {
613
  /**
614
  * @param bool $flush
615
  *
616
- * @return \WBCR\Factory_Freemius_120\Api
617
  * @throws Exception
618
  */
619
  private function get_api_user_scope(User $user, $flush = false)
@@ -628,7 +628,7 @@ final class Provider extends License_Provider {
628
  /**
629
  * @param bool $flush
630
  *
631
- * @return \WBCR\Factory_Freemius_120\Api
632
  * @throws Exception
633
  */
634
  private function get_api_site_scope(Site $site, $flush = false)
@@ -643,7 +643,7 @@ final class Provider extends License_Provider {
643
  /**
644
  * Get plugin public API scope.
645
  *
646
- * @return \WBCR\Factory_Freemius_120\Api
647
  * @throws Exception
648
  */
649
  private function get_api_plugin_scope()
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_126\Premium;
4
+
5
+ use WBCR\Factory_Freemius_126\Entities\License;
6
+ use WBCR\Factory_Freemius_126\Entities\Plugin;
7
+ use WBCR\Factory_Freemius_126\Entities\Site;
8
+ use WBCR\Factory_Freemius_126\Entities\User;
9
+ use WBCR\Factory_439\Premium\Provider as License_Provider;
10
+ use Wbcr_Factory439_Plugin;
11
+ use WBCR\Factory_Freemius_126\Api;
12
  use WP_Error;
13
  use Exception;
14
 
40
  private $slug;
41
 
42
  /**
43
+ * @var \WBCR\Factory_Freemius_126\Api
44
  */
45
  private $site_api;
46
 
47
  /**
48
+ * @var \WBCR\Factory_Freemius_126\Api
49
  */
50
  private $plugin_api;
51
 
52
  /**
53
+ * @var \WBCR\Factory_Freemius_126\Api
54
  */
55
  private $user_api;
56
 
82
  /**
83
  * Manager constructor.
84
  *
85
+ * @param Wbcr_Factory439_Plugin $plugin
86
  *
87
  * @throws Exception
88
  */
89
+ public function __construct(Wbcr_Factory439_Plugin $plugin, array $settings)
90
  {
91
  parent::__construct($plugin, $settings);
92
 
150
  }
151
 
152
  /**
153
+ * @return \WBCR\Factory_Freemius_126\Entities\License|null
154
  * @throws Exception
155
  */
156
  public function get_license()
613
  /**
614
  * @param bool $flush
615
  *
616
+ * @return \WBCR\Factory_Freemius_126\Api
617
  * @throws Exception
618
  */
619
  private function get_api_user_scope(User $user, $flush = false)
628
  /**
629
  * @param bool $flush
630
  *
631
+ * @return \WBCR\Factory_Freemius_126\Api
632
  * @throws Exception
633
  */
634
  private function get_api_site_scope(Site $site, $flush = false)
643
  /**
644
  * Get plugin public API scope.
645
  *
646
+ * @return \WBCR\Factory_Freemius_126\Api
647
  * @throws Exception
648
  */
649
  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_120\Updates;
4
 
5
  // Exit if accessed directly
6
  use Exception;
7
- use Wbcr_Factory432_Plugin;
8
- use WBCR\Factory_432\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_120\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_Factory432_Plugin $plugin
32
  *
33
  * @throws Exception
34
  */
35
- public function __construct( Wbcr_Factory432_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_120\Premium\Provider ) {
45
  throw new Exception( "This repository type requires Freemius premium provider." );
46
  }
47
 
1
  <?php
2
 
3
+ namespace WBCR\Factory_Freemius_126\Updates;
4
 
5
  // Exit if accessed directly
6
  use Exception;
7
+ use Wbcr_Factory439_Plugin;
8
+ use WBCR\Factory_439\Updates\Repository;
9
 
10
  if ( ! defined( 'ABSPATH' ) ) {
11
  exit;
20
  class Freemius_Repository extends Repository {
21
 
22
  /**
23
+ * @var \WBCR\Factory_Freemius_126\Premium\Provider
24
  */
25
  private $premium;
26
 
28
  * Freemius constructor.
29
  * @since 4.0.0
30
  *
31
+ * @param Wbcr_Factory439_Plugin $plugin
32
  *
33
  * @throws Exception
34
  */
35
+ public function __construct( Wbcr_Factory439_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_126\Premium\Provider ) {
45
  throw new Exception( "This repository type requires Freemius premium provider." );
46
  }
47
 
libs/factory/logger/assets/css/logger.css ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wbcr_factory_logger_container {
2
+ padding-right: 40px;
3
+ }
4
+
5
+ .wbcr_factory_logger_page_title {
6
+ text-align: center;
7
+ padding: 10px 0;
8
+ }
9
+
10
+ .wbcr-log-viewer {
11
+ width: 100%;
12
+ min-height: 50vh;
13
+ max-height: 600px;
14
+ font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace;
15
+ font-size: 12px;
16
+ word-break: break-all;
17
+ word-wrap: break-word;
18
+ overflow: auto;
19
+ -ms-overflow-style: scrollbar;
20
+ background-color: #e9e9e9;
21
+ padding: 8px;
22
+ border: 1px solid #cfcfcf;
23
+ }
24
+
25
+ .wbcr-log-viewer span.wbcr_logger_level {
26
+ border-radius: 3px;
27
+ padding: 1px 4px;
28
+ margin: 4px;
29
+ }
30
+
31
+ .wbcr_factory_logger_buttons {
32
+ padding: 10px 0;
33
+ }
libs/factory/logger/boot.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ use WBCR\Factory_Logger_101\Logger;
4
+
5
+ /**
6
+ * Factory Logger
7
+ *
8
+ * @author Artem Prihodko <webtemyk@yandex.ru>
9
+ * @since 1.0.0
10
+ *
11
+ * @package factory-logger
12
+ * @copyright (c) 2020, Webcraftic Ltd
13
+ *
14
+ * @version 1.0.0
15
+ */
16
+
17
+ // Exit if accessed directly
18
+ if ( ! defined( 'ABSPATH' ) ) {
19
+ exit;
20
+ }
21
+
22
+ if ( defined( 'FACTORY_LOGGER_101_LOADED' ) || ( defined( 'FACTORY_LOGGER_STOP' ) && FACTORY_LOGGER_STOP ) ) {
23
+ return;
24
+ }
25
+
26
+ define( 'FACTORY_LOGGER_101_LOADED', true );
27
+ define( 'FACTORY_LOGGER_101_VERSION', '1.0.1' );
28
+ define( 'FACTORY_LOGGER_101_DIR', dirname( __FILE__ ) );
29
+ define( 'FACTORY_LOGGER_101_URL', plugins_url( null, __FILE__ ) );
30
+
31
+ load_plugin_textdomain( 'wbcr_factory_logger_101', false, dirname( plugin_basename( __FILE__ ) ) . '/langs' );
32
+
33
+ require_once( FACTORY_LOGGER_101_DIR . '/includes/class-logger.php' );
34
+
35
+ if ( is_admin() ) {
36
+ require_once( FACTORY_LOGGER_101_DIR . '/includes/class-log-export.php' );
37
+ require_once( FACTORY_LOGGER_101_DIR . '/pages/class-logger-impressive-page.php' );
38
+ require_once( FACTORY_LOGGER_101_DIR . '/pages/class-logger-admin-page.php' );
39
+ }
40
+
41
+ /**
42
+ * @param Wbcr_Factory439_Plugin $plugin
43
+ */
44
+ add_action( 'wbcr_factory_logger_101_plugin_created', function ( $plugin ) {
45
+ /* @var Wbcr_Factory439_Plugin $plugin */
46
+
47
+ /* Settings of Logger
48
+ $settings = [
49
+ 'dir' => null,
50
+ 'file' => 'app.log',
51
+ 'flush_interval' => 1000,
52
+ 'rotate_size' => 5000000,
53
+ 'rotate_limit' => 3,
54
+ ];
55
+
56
+ $plugin->set_logger( "WBCR\Factory_Logger_101\Logger", $settings );
57
+ */
58
+ $plugin->set_logger( "WBCR\Factory_Logger_101\Logger" );
59
+ } );
libs/factory/logger/includes/class-log-export.php ADDED
@@ -0,0 +1,258 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WBCR\Factory_Logger_101;
4
+
5
+ /**
6
+ * Prepares export files, ZIPs them and allows to download the package.
7
+ *
8
+ * Usage example:
9
+ *
10
+ * ```php
11
+ * $export_model = new Log_Export('package.zip');
12
+ * $prepared = $export_model->prepare();
13
+ *
14
+ * if($prepared) {
15
+ * // start streaming ZIP archive to be downloaded
16
+ * $export_model->download();
17
+ * }
18
+ * ```
19
+ */
20
+ class Log_Export {
21
+
22
+ /**
23
+ * @var Logger Logger class
24
+ */
25
+ private $logger;
26
+
27
+ /**
28
+ * @var string Default archive name on download. {datetime} will be replaced with current m-d-Y.
29
+ */
30
+ private $_archive_name = 'plugin_log_export-{datetime}.zip';
31
+
32
+ /**
33
+ * @var string|null Archive save path.
34
+ */
35
+ private $_archive_save_path;
36
+
37
+ /**
38
+ * Log_Export constructor.
39
+ *
40
+ * @param Logger $logger
41
+ * @param null|string $archive_name
42
+ */
43
+ public function __construct( $logger, $archive_name = null ) {
44
+ $this->logger = $logger;
45
+ if ( $archive_name !== null ) {
46
+ $this->_archive_name = $archive_name;
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Prepare export.
52
+ *
53
+ * @return bool
54
+ */
55
+ public function prepare() {
56
+
57
+ if ( ! class_exists( '\ZipArchive' ) ) {
58
+ $this->logger->error( 'App does not have \ZipArchive class available. It is not possible to prepare export' );
59
+
60
+ return false;
61
+ }
62
+
63
+ $zip = new \ZipArchive();
64
+
65
+ $log_base_dir = $this->logger->get_base_dir();
66
+
67
+ if ( $log_base_dir === false ) {
68
+ $this->logger->error( sprintf( 'Failed to get log path %s', $log_base_dir ) );
69
+
70
+ return false;
71
+ }
72
+
73
+ $uploads = wp_get_upload_dir();
74
+
75
+ if ( isset( $uploads['error'] ) && $uploads['error'] !== false ) {
76
+ $this->logger->error( 'Unable to get save path of ZIP archive from wp_get_upload_dir()' );
77
+
78
+ return false;
79
+ }
80
+
81
+ $save_base_path = isset( $uploads['basedir'] ) ? $uploads['basedir'] : null;
82
+ $zip_archive_name = 'wplugin_export.zip';
83
+ $zip_save_path = $save_base_path . DIRECTORY_SEPARATOR . $zip_archive_name;
84
+
85
+
86
+ if ( ! $zip->open( $zip_save_path, \ZipArchive::CREATE ) ) {
87
+ $this->logger->error( sprintf( 'Failed to created ZIP archive in path %s. Skipping export...', $zip_save_path ) );
88
+
89
+ return false;
90
+ }
91
+
92
+ // Add all logs to ZIP archive
93
+ $glob_path = $log_base_dir . '*.log';
94
+ $log_files = glob( $glob_path );
95
+
96
+ if ( ! empty( $log_files ) ) {
97
+ foreach ( $log_files as $file ) {
98
+ if ( ! $zip->addFile( $file, wp_basename( $file ) ) ) {
99
+ $this->logger->error( sprintf( 'Failed to add %s to %s archive. Skipping it.', $file, $zip_save_path ) );
100
+
101
+ return false;
102
+ }
103
+ }
104
+ }
105
+
106
+ $system_info = $this->prepare_system_info();
107
+
108
+ if ( ! empty( $system_info ) ) {
109
+ $system_info_file_name = 'system-info.txt';
110
+ $system_info_path = $save_base_path . DIRECTORY_SEPARATOR . $system_info_file_name;
111
+ if ( false !== @file_put_contents( $system_info_path, $system_info ) ) {
112
+ if ( ! $zip->addFile( $system_info_path, $system_info_file_name ) ) {
113
+ $this->logger->error( sprintf( 'Failed to add %s to %s archive. Skipping it.', $system_info_file_name, $system_info_path ) );
114
+ }
115
+ } else {
116
+ $this->logger->error( sprintf( 'Failed to save %s in %s', $system_info_file_name, $zip_save_path ) );
117
+ }
118
+ }
119
+
120
+ if ( ! $zip->close() ) {
121
+ $this->logger->error( sprintf( 'Failed to close ZIP archive %s for unknown reason. ZipArchive::close() failed.' ) );
122
+ }
123
+
124
+ if ( isset( $system_info_path ) ) {
125
+ // Clean-up as this is just temp file
126
+ @unlink( $system_info_path );
127
+ }
128
+
129
+ $this->_archive_save_path = $zip_save_path;
130
+
131
+ return true;
132
+ }
133
+
134
+ /**
135
+ * Prepare generic system information, such as WordPress, PHP version, active plugins, loaded extenstions, etc.
136
+ *
137
+ * @return string
138
+ */
139
+ public function prepare_system_info() {
140
+
141
+ $space = PHP_EOL . PHP_EOL;
142
+ $nl = PHP_EOL;
143
+
144
+ $report = 'Plugin version: ' . $this->logger->plugin->getPluginVersion() . $nl;
145
+
146
+ global $wp_version;
147
+
148
+ $report .= 'WordPress Version: ' . $wp_version . $nl;
149
+ $report .= 'PHP Version: ' . PHP_VERSION . $nl;
150
+ $report .= 'Locale: ' . get_locale() . $nl;
151
+ $report .= 'HTTP Accept: ' . ( isset( $_SERVER['HTTP_ACCEPT'] ) ? $_SERVER['HTTP_ACCEPT'] : '*empty*' ) . $nl;
152
+ $report .= 'HTTP User Agent: ' . ( isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '*empty*' ) . $nl;
153
+ $report .= 'Server software: ' . ( isset( $_SERVER['SERVER_SOFTWARE'] ) ? $_SERVER['SERVER_SOFTWARE'] : '*empty*' ) . $nl;
154
+
155
+ $report .= $space;
156
+
157
+ $active_plugins = get_option( 'active_plugins', null );
158
+
159
+ if ( $active_plugins !== null ) {
160
+
161
+ $prepared_plugins = [];
162
+
163
+ $all_plugins = get_plugins();
164
+
165
+ foreach ( $active_plugins as $active_plugin ) {
166
+ if ( isset( $all_plugins[ $active_plugin ] ) ) {
167
+ $advanced_info = $all_plugins[ $active_plugin ];
168
+ $name = isset( $advanced_info['Name'] ) ? $advanced_info['Name'] : '';
169
+ $version = isset( $advanced_info['Version'] ) ? $advanced_info['Version'] : '';
170
+ $prepared_plugins[] = sprintf( "%s (%s)", $name, $version );
171
+ }
172
+ }
173
+
174
+ $report .= 'Active plugins:' . PHP_EOL;
175
+ $report .= implode( PHP_EOL, $prepared_plugins );
176
+ }
177
+
178
+ if ( function_exists( 'get_loaded_extensions' ) ) {
179
+
180
+ $report .= PHP_EOL . PHP_EOL;
181
+ $report .= 'Active extensions: ' . $nl;
182
+ $report .= implode( ', ', get_loaded_extensions() );
183
+ }
184
+
185
+ $report .= $space;
186
+
187
+ $report .= 'Generated at: ' . date( 'c' );
188
+
189
+ return $report;
190
+ }
191
+
192
+ /**
193
+ * Download saved ZIP archive.
194
+ *
195
+ * It sets download headers, which streams content of the ZIP archive.
196
+ *
197
+ * Additionally it cleans-up by deleting the archive if `$and_delete` set to true.
198
+ *
199
+ * @param bool $should_clean_up Allows to delete temp ZIP archive if required.
200
+ *
201
+ * @return bool
202
+ */
203
+ public function download( $should_clean_up = true ) {
204
+
205
+ $zip_save_path = $this->_archive_save_path;
206
+
207
+ if ( empty( $zip_save_path ) ) {
208
+ return false;
209
+ }
210
+
211
+ $zip_content = @file_get_contents( $zip_save_path );
212
+
213
+ if ( $zip_save_path === false ) {
214
+ $this->logger->error( sprintf( 'Failed to get ZIP %s content as file_get_contents() returned false', $zip_save_path ) );
215
+
216
+ return false;
217
+ }
218
+
219
+ if ( $should_clean_up ) {
220
+ // Delete as ZIP is just for temporary usage
221
+ @unlink( $zip_save_path );
222
+ }
223
+
224
+ $archive_name = str_replace( '{datetime}', date( 'c' ), $this->_archive_name );
225
+
226
+ // Set-up headers to download export file
227
+ header( 'Content-Description: File Transfer' );
228
+ header( 'Content-Type: application/zip' );
229
+ header( 'Content-Disposition: attachment; filename=' . $archive_name );
230
+ header( 'Content-Transfer-Encoding: binary' );
231
+ header( 'Connection: Keep-Alive' );
232
+ header( 'Expires: 0' );
233
+ header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
234
+ header( 'Pragma: public' );
235
+ header( 'Content-Length: ' . strlen( $zip_content ) );
236
+
237
+ echo $zip_content;
238
+ exit();
239
+ }
240
+
241
+ /**
242
+ * Get temporary stored archive path.
243
+ *
244
+ * @return string
245
+ */
246
+ public function get_temp_archive_path() {
247
+ return $this->_archive_save_path;
248
+ }
249
+
250
+ /**
251
+ * Delete temporary stored archive path.
252
+ *
253
+ * @return bool
254
+ */
255
+ public function delete_temp_archive() {
256
+ return @unlink( $this->get_temp_archive_path() );
257
+ }
258
+ }
libs/factory/logger/includes/class-logger.php ADDED
@@ -0,0 +1,494 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace WBCR\Factory_Logger_101;
4
+
5
+ // Exit if accessed directly
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit;
8
+ }
9
+
10
+ /**
11
+ * Adds ability to log application message into .log file.
12
+ *
13
+ * It has 4 core levels:
14
+ * - info: generic log message
15
+ * - warning: log possible exceptions states or unusual
16
+ * - error: log error-related logs
17
+ * - debug: log stack traces, big outputs, etc.
18
+ *
19
+ * Each level has its constant. See LEVEL_* prefix.
20
+ *
21
+ * Additionally it is possible to configure flush interval and file name.
22
+ *
23
+ * Usage examples:
24
+ *
25
+ * ```php
26
+ * // Info message level
27
+ * $this->info('Some generic message, good to know');
28
+ *
29
+ * // Warning message level
30
+ * $this->warning('Something does not work or unusual');
31
+ *
32
+ * // Error message level
33
+ * $this->error('Something critical happened');
34
+ *
35
+ * // Debug message level
36
+ * $this->debug('Some message used for debug purposed. Could be stack trace.');
37
+ * ```
38
+ *
39
+ * @author Artem Prihodko <webtemyk@yandex.ru>
40
+ * @copyright (c) 2020, Webcraftic
41
+ * @version 1.0
42
+ */
43
+ class Logger {
44
+
45
+ const LEVEL_INFO = 'info';
46
+ const LEVEL_WARNING = 'warning';
47
+ const LEVEL_ERROR = 'error';
48
+ const LEVEL_DEBUG = 'debug';
49
+
50
+ /**
51
+ * @var \Wbcr_Factory439_Plugin Plugin class.
52
+ */
53
+ public $plugin;
54
+
55
+ /**
56
+ * @var null|string Request hash.
57
+ */
58
+ public $hash = null;
59
+
60
+ /**
61
+ * @var null|string Directory where log file would be saved.
62
+ */
63
+ public $dir = null;
64
+
65
+ /**
66
+ * @var string File log name where logs would be flushed.
67
+ */
68
+ public $file = 'app.log';
69
+
70
+ /**
71
+ * @var int Flushing interval. When $_logs would reach this number of items they would be flushed to log file.
72
+ */
73
+ public $flush_interval = 1000;
74
+
75
+ /**
76
+ * @var int Rotate size in bytes. Default: 5 Mb.
77
+ */
78
+ public $rotate_size = 5000000;
79
+
80
+ /**
81
+ * @var int Number of rotated files. When size of $rotate_size matches current file, current file would be rotated.
82
+ * For example, there are 3 files, current file became size of $rotate_size, third file would be deleted, two first
83
+ * shifted and empty one created.
84
+ */
85
+ public $rotate_limit = 3;
86
+
87
+ /**
88
+ * @var array List of logs to be dumped.
89
+ */
90
+ private $_logs = [];
91
+
92
+ /**
93
+ * Logger constructor.
94
+ *
95
+ * @param \Wbcr_Factory439_Plugin $plugin
96
+ * @param array $settings
97
+ */
98
+ public function __construct( $plugin, $settings = [] ) {
99
+ $this->plugin = $plugin;
100
+ $this->init( $settings );
101
+ }
102
+
103
+ /**
104
+ * Initiate object.
105
+ *
106
+ * @param array $settings
107
+ */
108
+ public function init( $settings ) {
109
+ $this->hash = substr( uniqid(), - 6, 6 );
110
+
111
+ if ( is_array( $settings ) && ! empty( $settings ) ) {
112
+ foreach ( $settings as $key => $value ) {
113
+ if ( isset( $this->$key ) ) {
114
+ $this->$key = $value;
115
+ }
116
+ }
117
+ }
118
+
119
+ add_action( 'shutdown', [ $this, 'shutdown_flush' ], 9999, 0 );
120
+ }
121
+
122
+ /**
123
+ * Get directory to save collected logs.
124
+ *
125
+ * In addition to that, it manages log rotation so that it does not become too big.
126
+ *
127
+ * @return string|false false on failure, string on success.
128
+ */
129
+ public function get_dir() {
130
+
131
+ $base_dir = $this->get_base_dir();
132
+
133
+ if ( $base_dir === null ) {
134
+ return false;
135
+ }
136
+
137
+ $root_file = $base_dir . $this->file;
138
+
139
+ // Check whether file exists and it exceeds rotate size, then should rotate it copy
140
+ if ( file_exists( $root_file ) && filesize( $root_file ) >= $this->rotate_size ) {
141
+ $name_split = explode( '.', $this->file );
142
+
143
+ if ( ! empty( $name_split ) && isset( $name_split[0] ) ) {
144
+ $name_split[0] = trim( $name_split[0] );
145
+
146
+ for ( $i = $this->rotate_limit; $i >= 0; $i -- ) {
147
+
148
+ $cur_name = $name_split[0] . $i;
149
+ $cur_path = $base_dir . $cur_name . '.log';
150
+
151
+ $next_path = $i !== 0 ? $base_dir . $name_split[0] . ( $i - 1 ) . '.log' : $root_file;
152
+
153
+ if ( file_exists( $next_path ) ) {
154
+ @copy( $next_path, $cur_path );
155
+ }
156
+ }
157
+ }
158
+
159
+ // Need to empty root file as it was supposed to be copied to next rotation :)
160
+ @file_put_contents( $root_file, '' );
161
+ }
162
+
163
+ return $root_file;
164
+ }
165
+
166
+ /**
167
+ * Get base directory, location of logs.
168
+ *
169
+ * @return null|string NULL in case of failure, string on success.
170
+ */
171
+ public function get_base_dir() {
172
+ $plugin_slug = $this->plugin->plugin_slug;
173
+
174
+ if ( empty( $this->dir ) ) {
175
+ $base_path = wp_normalize_path( trailingslashit( WP_CONTENT_DIR ) . "logs/{$plugin_slug}/" );
176
+ } else {
177
+ $base_path = wp_normalize_path( trailingslashit( $this->dir ) . "{$plugin_slug}/" );
178
+ }
179
+
180
+ $folders = glob( $base_path . 'logs-*' );
181
+
182
+ if ( ! empty( $folders ) ) {
183
+ $exploded_path = explode( '/', trim( $folders[0] ) );
184
+ $selected_logs_folder = array_pop( $exploded_path );
185
+ } else {
186
+ if ( function_exists( 'wp_salt' ) ) {
187
+ $hash = md5( wp_salt() );
188
+ } else {
189
+ $hash = md5( AUTH_KEY );
190
+ }
191
+
192
+ $selected_logs_folder = 'logs-' . $hash;
193
+ }
194
+
195
+ $path = $base_path . $selected_logs_folder . '/';
196
+
197
+ if ( ! file_exists( $path ) ) {
198
+ @mkdir( $path, 0755, true );
199
+ }
200
+
201
+ // Create .htaccess file to protect log files
202
+ $htaccess_path = $path . '.htaccess';
203
+
204
+ if ( ! file_exists( $htaccess_path ) ) {
205
+ $htaccess_content = 'deny from all';
206
+ @file_put_contents( $htaccess_path, $htaccess_content );
207
+ }
208
+
209
+ // Create index.htm file in case .htaccess is not support as a fallback
210
+ $index_path = $path . 'index.html';
211
+
212
+ if ( ! file_exists( $index_path ) ) {
213
+ @file_put_contents( $index_path, '' );
214
+ }
215
+
216
+ return $path;
217
+ }
218
+
219
+ /**
220
+ * Get all available log paths.
221
+ *
222
+ * @return array|bool
223
+ */
224
+ public function get_all() {
225
+ $base_dir = $this->get_base_dir();
226
+
227
+ if ( $base_dir === null ) {
228
+ return false;
229
+ }
230
+
231
+ $glob_path = $base_dir . '*.log';
232
+
233
+ return glob( $glob_path );
234
+ }
235
+
236
+ /**
237
+ * Get total log size in bytes.
238
+ *
239
+ * @return int
240
+ * @see size_format() for formatting.
241
+ */
242
+ public function get_total_size() {
243
+ $logs = $this->get_all();
244
+ $bytes = 0;
245
+
246
+ if ( empty( $logs ) ) {
247
+ return $bytes;
248
+ }
249
+
250
+ foreach ( $logs as $log ) {
251
+ $bytes += @filesize( $log );
252
+ }
253
+
254
+ return $bytes;
255
+ }
256
+
257
+ /**
258
+ * Empty all log files and deleted rotated ones.
259
+ *
260
+ * @return bool
261
+ */
262
+ public function clean_up() {
263
+
264
+ $base_dir = $this->get_base_dir();
265
+
266
+ if ( $base_dir === null ) {
267
+ return false;
268
+ }
269
+
270
+ $glob_path = $base_dir . '*.log';
271
+
272
+ $files = glob( $glob_path );
273
+
274
+ if ( $files === false ) {
275
+ return false;
276
+ }
277
+
278
+ if ( empty( $files ) ) {
279
+ return true;
280
+ }
281
+
282
+ $unlinked_count = 0;
283
+
284
+ foreach ( $files as $file ) {
285
+ if ( @unlink( $file ) ) {
286
+ $unlinked_count ++;
287
+ }
288
+ }
289
+
290
+ return count( $files ) === $unlinked_count;
291
+ }
292
+
293
+ /**
294
+ * Flush all messages.
295
+ *
296
+ * @return bool
297
+ */
298
+ public function flush() {
299
+
300
+ $messages = $this->_logs;
301
+
302
+ $this->_logs = [];
303
+
304
+ if ( empty( $messages ) ) {
305
+ return false;
306
+ }
307
+
308
+ $file_content = PHP_EOL . implode( PHP_EOL, $messages );
309
+ $is_put = @file_put_contents( $this->get_dir(), $file_content, FILE_APPEND );
310
+
311
+ return $is_put !== false;
312
+ }
313
+
314
+ /**
315
+ * Flush all messages.
316
+ *
317
+ */
318
+ public function shutdown_flush() {
319
+ $end_line = "-------------------------------";
320
+ if ( ! empty( $this->_logs ) ) {
321
+ $this->_logs[] = $end_line;
322
+ }
323
+
324
+ $this->flush();
325
+ }
326
+
327
+ /**
328
+ *
329
+ * @param $level
330
+ * @param $message
331
+ *
332
+ * @return string
333
+ */
334
+ public function get_format( $level, $message ) {
335
+
336
+ // Example: 2019-01-14 12:03:29.0593 [127.0.0.1][ee6a12][info] {message}
337
+ $template = '%s [%s][:%s:] %s';
338
+ $date = date( 'd-m-Y H:i:s' );
339
+
340
+ $ip = isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : '';
341
+
342
+ return sprintf( $template, $date, $ip, $level, $message );
343
+ }
344
+
345
+ /**
346
+ * Get latest file content.
347
+ *
348
+ * @return bool|string
349
+ */
350
+ public function get_content() {
351
+ if ( ! file_exists( $this->get_dir() ) ) {
352
+ return null;
353
+ }
354
+
355
+ return @file_get_contents( $this->get_dir() );
356
+ }
357
+
358
+ /**
359
+ * Get Export object.
360
+ *
361
+ * @return bool|string
362
+ */
363
+ public function get_export() {
364
+ return new Log_Export( $this, "{$this->plugin->plugin_slug}_log_export-{datetime}.zip" );
365
+ }
366
+
367
+ /**
368
+ * Add new log message.
369
+ *
370
+ * @param string $level Log level.
371
+ * @param string $message Message to log.
372
+ *
373
+ * @return bool
374
+ */
375
+ public function add( $level, $message ) {
376
+
377
+ //if ( $level === $this->LEVEL_DEBUG ) {
378
+ //$log_debug = defined( 'WP_DEBUG' ) && WP_DEBUG;
379
+
380
+ //if ( ! $log_debug ) {
381
+ //return false;
382
+ //}
383
+ //}
384
+
385
+ $this->_logs[] = $this->get_format( $level, $message );
386
+
387
+ if ( count( $this->_logs ) >= $this->flush_interval ) {
388
+ $this->flush();
389
+ }
390
+
391
+ return true;
392
+ }
393
+
394
+ /**
395
+ * Add info level log.
396
+ *
397
+ * @param string $message Message to log.
398
+ */
399
+ public function info( $message ) {
400
+ $this->add( self::LEVEL_INFO, $message );
401
+ }
402
+
403
+ /**
404
+ * Add error level log.
405
+ *
406
+ * @param string $message Message to log.
407
+ */
408
+ public function error( $message ) {
409
+ $this->add( self::LEVEL_ERROR, $message );
410
+ }
411
+
412
+ /**
413
+ * Add debug level log.
414
+ *
415
+ * @param $message
416
+ */
417
+ public function debug( $message ) {
418
+ $this->add( self::LEVEL_DEBUG, $message );
419
+ }
420
+
421
+ /**
422
+ * Add warning level log.
423
+ *
424
+ * @param string $message Message to log.
425
+ */
426
+ public function warning( $message ) {
427
+ $this->add( self::LEVEL_WARNING, $message );
428
+ }
429
+
430
+ /**
431
+ * Writes information to log about memory.
432
+ *
433
+ * @author Alexander Kovalev <alex.kovalevv@gmail.com>
434
+ * @since 1.3.6
435
+ */
436
+ public function memory_usage() {
437
+ $memory_avail = ini_get( 'memory_limit' );
438
+ $memory_used = number_format( memory_get_usage( true ) / ( 1024 * 1024 ), 2 );
439
+ $memory_peak = number_format( memory_get_peak_usage( true ) / ( 1024 * 1024 ), 2 );
440
+
441
+ $this->info( sprintf( "Memory: %s (avail) / %sM (used) / %sM (peak)", $memory_avail, $memory_used, $memory_peak ) );
442
+ }
443
+
444
+ /**
445
+ * Prettify log content.
446
+ *
447
+ * Helps to convert log file content into easy-to-read HTML.
448
+ *
449
+ * Usage example:
450
+ *
451
+ * @return bool|mixed|string
452
+ */
453
+ public function prettify() {
454
+ $content = $this->get_content();
455
+
456
+ $search = [
457
+ "\r\n",
458
+ "\n\r",
459
+ "\025",
460
+ "\n",
461
+ "\r",
462
+ "\t",
463
+ ];
464
+
465
+ $replacement = [
466
+ '<br>',
467
+ '<br>',
468
+ '<br>',
469
+ '<br>',
470
+ '<br>',
471
+ str_repeat( '&nbsp;', 4 ),
472
+ ];
473
+
474
+ $content = str_replace( $search, $replacement, $content );
475
+
476
+
477
+ $color_map = [
478
+ self::LEVEL_INFO => [ 'color' => '#fff', 'bg' => '#52d130' ],
479
+ self::LEVEL_ERROR => [ 'color' => '#fff', 'bg' => '#ff5e5e' ],
480
+ self::LEVEL_WARNING => [ 'color' => '#fff', 'bg' => '#ef910a' ],
481
+ self::LEVEL_DEBUG => [ 'color' => '#fff', 'bg' => '#8f8d8b' ],
482
+ ];
483
+
484
+ /**
485
+ * Highlight log levels
486
+ */
487
+ foreach ( $color_map as $level => $item ) {
488
+ $content = preg_replace( "/(\[:$level:\])/",
489
+ "<span class='wbcr_logger_level' style='color: {$item['color']};background-color: {$item['bg']}'>$level</span>", $content );
490
+ }
491
+
492
+ return $content;
493
+ }
494
+ }
libs/factory/logger/pages/class-logger-admin-page.php ADDED
@@ -0,0 +1,184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit;
6
+ }
7
+
8
+ /**
9
+ * Класс отвечает за работу страницы логов.
10
+ *
11
+ * @author Artem Prihodko <webtemyk@yandex.ru>
12
+ * @copyright (c) 2020, Webcraftic
13
+ * @version 1.0
14
+ */
15
+ class Wbcr_FactoryLogger101_AdminPage extends Wbcr_FactoryPages438_AdminPage {
16
+
17
+ /**
18
+ * {@inheritdoc}
19
+ */
20
+ public $id; // Уникальный идентификатор страницы
21
+
22
+ /**
23
+ * {@inheritdoc}
24
+ */
25
+ public $page_menu_dashicon = 'dashicons-admin-tools';
26
+
27
+ /**
28
+ * {@inheritdoc}
29
+ */
30
+ public $type = 'page';
31
+
32
+ /**
33
+ * @param Wbcr_Factory439_Plugin $plugin
34
+ */
35
+ public function __construct( $plugin ) {
36
+ $this->id = $plugin->getPrefix() . "logger";
37
+
38
+ $this->menu_title = __( 'Plugin Log', 'wbcr_factory_logger_101' );
39
+ $this->page_title = __( 'Plugin log', 'wbcr_factory_logger_101' );
40
+ $this->capabilitiy = "manage_options";
41
+
42
+ add_action( 'wp_ajax_wbcr_factory_logger_101_logs_cleanup', [ $this, 'ajax_cleanup' ] );
43
+
44
+ parent::__construct( $plugin );
45
+ }
46
+
47
+ /**
48
+ * {@inheritdoc}
49
+ *
50
+ * @return void
51
+ * @since 1.0.0
52
+ */
53
+ public function assets( $scripts, $styles ) {
54
+ parent::assets( $scripts, $styles );
55
+
56
+ $this->styles->add( FACTORY_LOGGER_101_URL . '/assets/css/logger.css' );
57
+ }
58
+
59
+ /**
60
+ * {@inheritdoc}
61
+ */
62
+ public function getMenuTitle() {
63
+ return __( 'Plugin Log', 'wbcr_factory_logger_101' );
64
+ }
65
+
66
+ /**
67
+ * Show rendered template - $template_name
68
+ */
69
+ public function indexAction() {
70
+ echo $this->showPageContent();
71
+ }
72
+
73
+ /**
74
+ * {@inheritdoc}
75
+ */
76
+ public function showPageContent() {
77
+ $buttons = "
78
+ <div class='wbcr_factory_logger_buttons'>
79
+ <a href='" . wp_nonce_url( $this->getActionUrl( 'export' ) ) . "'
80
+ class='button button-primary'>" . __( 'Export Debug Information', 'wbcr_factory_logger_101' ) . "</a>
81
+ <a href='#'
82
+ class='button button-secondary'
83
+ onclick='wbcr_factory_logger_101_LogCleanup(this);return false;'
84
+ data-working='" . __( 'Working...', 'wbcr_factory_logger_101' ) . "'>" .
85
+ sprintf( __( 'Clean-up Logs (<span id="wbcr-log-size">%s</span>)', 'wbcr_factory_logger_101' ), $this->get_log_size_formatted() ) . "
86
+ </a>
87
+ </div>";
88
+
89
+ ?>
90
+ <script>
91
+ function wbcr_factory_logger_101_LogCleanup(element) {
92
+
93
+ var btn = jQuery(element),
94
+ currentBtnText = btn.html();
95
+
96
+ console.log(btn.data('working'), btn);
97
+
98
+ btn.text(btn.data('working'));
99
+
100
+ jQuery.ajax({
101
+ url: ajaxurl,
102
+ method: 'post',
103
+ data: {
104
+ action: 'wbcr_factory_logger_101_logs_cleanup',
105
+ nonce: '<?php echo wp_create_nonce( 'wbcr_factory_logger_101_clean_logs' ) ?>'
106
+ },
107
+ success: function (data) {
108
+ btn.html(currentBtnText);
109
+
110
+ jQuery('#wbcr-log-viewer').html('');
111
+ jQuery('#wbcr-log-size').text('0B');
112
+ jQuery.wbcr_factory_clearfy_230.app.showNotice(data.message, data.type);
113
+ },
114
+ error: function (jqXHR, textStatus, errorThrown) {
115
+ jQuery.wbcr_factory_clearfy_230.app.showNotice('Error: ' + errorThrown + ', status: ' + textStatus, 'danger');
116
+ btn.html(currentBtnText);
117
+ }
118
+ });
119
+ }
120
+ </script>
121
+ <div class="wbcr_factory_logger_container">
122
+ <div class="wbcr_factory_logger_page_title">
123
+ <h1><?php _e( 'Logs of the', 'wbcr_factory_logger_101' ) ?>
124
+ &nbsp;<?php echo $this->plugin->getPluginTitle() . " " . $this->plugin->getPluginVersion(); ?></h1>
125
+ <p>
126
+ <?php _e( 'In this section, you can track how the plugin works. Sending this log to the developer will help you resolve possible issues.', 'wbcr_factory_logger_101' ) ?>
127
+ </p>
128
+ </div>
129
+ <?= $buttons; ?>
130
+ <div class="wbcr-log-viewer" id="wbcr-log-viewer">
131
+ <?php echo $this->plugin->logger->prettify() ?>
132
+ </div>
133
+ <?= $buttons; ?>
134
+ </div>
135
+ <?php
136
+ }
137
+
138
+ public function ajax_cleanup() {
139
+ check_admin_referer( 'wbcr_factory_logger_101_clean_logs', 'nonce' );
140
+
141
+ if ( ! current_user_can( 'manage_options' ) ) {
142
+ wp_die( - 1 );
143
+ }
144
+
145
+ if ( ! $this->plugin->logger->clean_up() ) {
146
+ wp_send_json_error( [
147
+ 'message' => esc_html__( 'Failed to clean-up logs. Please try again later.', 'wbcr_factory_logger_101' ),
148
+ 'type' => 'danger',
149
+ ] );
150
+ }
151
+
152
+ wp_send_json( [
153
+ 'message' => esc_html__( 'Logs clean-up successfully', 'wbcr_factory_logger_101' ),
154
+ 'type' => 'success',
155
+ ] );
156
+ }
157
+
158
+ /**
159
+ * Processing log export action in form of ZIP archive.
160
+ */
161
+ public function exportAction() {
162
+ $export = new WBCR\Factory_Logger_101\Log_Export( $this->plugin->logger );
163
+
164
+ if ( $export->prepare() ) {
165
+ $export->download( true );
166
+ }
167
+ }
168
+
169
+ /**
170
+ * Get log size formatted.
171
+ *
172
+ * @return false|string
173
+ */
174
+ private function get_log_size_formatted() {
175
+
176
+ try {
177
+ return size_format( $this->plugin->logger->get_total_size() );
178
+ } catch ( \Exception $exception ) {
179
+ $this->plugin->logger->error( sprintf( 'Failed to get total log size as exception was thrown: %s', $exception->getMessage() ) );
180
+ }
181
+
182
+ return '';
183
+ }
184
+ }
libs/factory/logger/pages/class-logger-impressive-page.php ADDED
@@ -0,0 +1,174 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit;
6
+ }
7
+
8
+ /**
9
+ * Класс отвечает за работу страницы логов.
10
+ *
11
+ * @author Artem Prihodko <webtemyk@yandex.ru>
12
+ * @copyright (c) 2020, Webcraftic
13
+ * @version 1.0
14
+ */
15
+ class Wbcr_FactoryLogger101_PageBase extends Wbcr_FactoryClearfy230_PageBase {
16
+
17
+ /**
18
+ * {@inheritdoc}
19
+ */
20
+ public $id; // Уникальный идентификатор страницы
21
+
22
+ /**
23
+ * {@inheritdoc}
24
+ */
25
+ public $page_menu_dashicon = 'dashicons-admin-tools';
26
+
27
+ /**
28
+ * {@inheritdoc}
29
+ */
30
+ public $type = 'page';
31
+
32
+ /**
33
+ * @param Wbcr_Factory439_Plugin $plugin
34
+ */
35
+ public function __construct( $plugin ) {
36
+ $this->id = $plugin->getPrefix() . "logger";
37
+
38
+ $this->menu_title = __( 'Plugin Log', 'wbcr_factory_logger_101' );
39
+ $this->page_menu_short_description = __( 'Plugin debug report', 'wbcr_factory_logger_101' );
40
+
41
+ add_action( 'wp_ajax_wbcr_factory_logger_101_logs_cleanup', [$this, 'ajax_cleanup']);
42
+
43
+ parent::__construct( $plugin );
44
+ }
45
+
46
+ /**
47
+ * {@inheritdoc}
48
+ *
49
+ * @return void
50
+ * @since 1.0.0
51
+ */
52
+ public function assets( $scripts, $styles ) {
53
+ parent::assets( $scripts, $styles );
54
+
55
+ $this->styles->add( FACTORY_LOGGER_101_URL . '/assets/css/logger.css' );
56
+ }
57
+
58
+ /**
59
+ * {@inheritdoc}
60
+ */
61
+ public function getMenuTitle() {
62
+ return __( 'Plugin Log', 'wbcr_factory_logger_101' );
63
+ }
64
+
65
+ /**
66
+ * {@inheritdoc}
67
+ */
68
+ public function showPageContent() {
69
+ $buttons = "
70
+ <div class='btn-group'>
71
+ <a href='" . wp_nonce_url( $this->getActionUrl( 'export' ) ) . "'
72
+ class='button button-primary'>" . __( 'Export Debug Information', 'wbcr_factory_logger_101' ) . "</a>
73
+ <a href='#'
74
+ class='button button-secondary'
75
+ onclick='wbcr_factory_logger_101_LogCleanup(this);return false;'
76
+ data-working='" . __( 'Working...', 'wbcr_factory_logger_101' ) . "'>" .
77
+ sprintf( __( 'Clean-up Logs (<span id="wbcr-log-size">%s</span>)', 'wbcr_factory_logger_101' ), $this->get_log_size_formatted() ) . "
78
+ </a>
79
+ </div>";
80
+ ?>
81
+ <script>
82
+ function wbcr_factory_logger_101_LogCleanup(element) {
83
+
84
+ var btn = jQuery(element),
85
+ currentBtnText = btn.html();
86
+
87
+ console.log(btn.data('working'), btn);
88
+
89
+ btn.text(btn.data('working'));
90
+
91
+ jQuery.ajax({
92
+ url: ajaxurl,
93
+ method: 'post',
94
+ data: {
95
+ action: 'wbcr_factory_logger_101_logs_cleanup',
96
+ nonce: '<?php echo wp_create_nonce( 'wbcr_factory_logger_101_clean_logs' ) ?>'
97
+ },
98
+ success: function (data) {
99
+ btn.html(currentBtnText);
100
+
101
+ jQuery('#wbcr-log-viewer').html('');
102
+ jQuery('#wbcr-log-size').text('0B');
103
+ jQuery.wbcr_factory_clearfy_230.app.showNotice(data.message, data.type);
104
+ },
105
+ error: function (jqXHR, textStatus, errorThrown) {
106
+ jQuery.wbcr_factory_clearfy_230.app.showNotice('Error: ' + errorThrown + ', status: ' + textStatus, 'danger');
107
+ btn.html(currentBtnText);
108
+ }
109
+ });
110
+ }
111
+ </script>
112
+ <div class="wbcr-factory-page-group-header" style="margin-top:0;">
113
+ <strong><?php _e( 'Plugin Log', 'wbcr_factory_logger_101' ) ?></strong>
114
+ <p>
115
+ <?php _e( 'In this section, you can track how the plugin works. Sending this log to the developer will help you resolve possible issues.', 'wbcr_factory_logger_101' ) ?>
116
+ </p>
117
+ </div>
118
+ <div class="wbcr-factory-page-group-body" style="padding:20px">
119
+ <?=$buttons;?>
120
+ <div class="wbcr-log-viewer" id="wbcr-log-viewer">
121
+ <?php echo $this->plugin->logger->prettify() ?>
122
+ </div>
123
+ <?=$buttons;?>
124
+ </div>
125
+ <?php
126
+ }
127
+
128
+ public function ajax_cleanup() {
129
+ check_admin_referer( 'wbcr_factory_logger_101_clean_logs', 'nonce' );
130
+
131
+ if ( ! current_user_can( 'manage_options' ) ) {
132
+ wp_die( - 1 );
133
+ }
134
+
135
+ if ( ! $this->plugin->logger->clean_up() ) {
136
+ wp_send_json_error( [
137
+ 'message' => esc_html__( 'Failed to clean-up logs. Please try again later.', 'wbcr_factory_logger_101' ),
138
+ 'type' => 'danger',
139
+ ] );
140
+ }
141
+
142
+ wp_send_json( [
143
+ 'message' => esc_html__( 'Logs clean-up successfully', 'wbcr_factory_logger_101' ),
144
+ 'type' => 'success',
145
+ ] );
146
+ }
147
+
148
+ /**
149
+ * Processing log export action in form of ZIP archive.
150
+ */
151
+ public function exportAction() {
152
+ $export = new WBCR\Factory_Logger_101\Log_Export( $this->plugin->logger );
153
+
154
+ if ( $export->prepare() ) {
155
+ $export->download( true );
156
+ }
157
+ }
158
+
159
+ /**
160
+ * Get log size formatted.
161
+ *
162
+ * @return false|string
163
+ */
164
+ private function get_log_size_formatted() {
165
+
166
+ try {
167
+ return size_format( $this->plugin->logger->get_total_size() );
168
+ } catch ( \Exception $exception ) {
169
+ $this->plugin->logger->error( sprintf( 'Failed to get total log size as exception was thrown: %s', $exception->getMessage() ) );
170
+ }
171
+
172
+ return '';
173
+ }
174
+ }
libs/factory/pages/boot.php CHANGED
@@ -19,25 +19,25 @@ if( !is_admin() ) {
19
  return;
20
  }
21
 
22
- if( defined('FACTORY_PAGES_432_LOADED') ) {
23
  return;
24
  }
25
 
26
- define('FACTORY_PAGES_432_LOADED', true);
27
 
28
- define('FACTORY_PAGES_432_VERSION', '4.3.2');
29
 
30
- define('FACTORY_PAGES_432_DIR', dirname(__FILE__));
31
- define('FACTORY_PAGES_432_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_432', false, dirname(plugin_basename(__FILE__)) . '/langs');
38
 
39
- require(FACTORY_PAGES_432_DIR . '/pages.php');
40
- require(FACTORY_PAGES_432_DIR . '/includes/page.class.php');
41
- require(FACTORY_PAGES_432_DIR . '/includes/admin-page.class.php');
42
- require(FACTORY_PAGES_432_DIR . '/templates/impressive-page.class.php');
43
 
19
  return;
20
  }
21
 
22
+ if( defined('FACTORY_PAGES_438_LOADED') ) {
23
  return;
24
  }
25
 
26
+ define('FACTORY_PAGES_438_LOADED', true);
27
 
28
+ define('FACTORY_PAGES_438_VERSION', '4.3.8');
29
 
30
+ define('FACTORY_PAGES_438_DIR', dirname(__FILE__));
31
+ define('FACTORY_PAGES_438_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_438', false, dirname(plugin_basename(__FILE__)) . '/langs');
38
 
39
+ require(FACTORY_PAGES_438_DIR . '/pages.php');
40
+ require(FACTORY_PAGES_438_DIR . '/includes/page.class.php');
41
+ require(FACTORY_PAGES_438_DIR . '/includes/admin-page.class.php');
42
+ require(FACTORY_PAGES_438_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_FactoryPages432_AdminPage') ) {
18
 
19
- class Wbcr_FactoryPages432_AdminPage extends Wbcr_FactoryPages432_Page {
20
 
21
  /**
22
  * Visible page title.
@@ -209,7 +209,7 @@ if( !class_exists('Wbcr_FactoryPages432_AdminPage') ) {
209
  */
210
  public $add_link_to_plugin_actions = false;
211
 
212
- public function __construct(Wbcr_Factory432_Plugin $plugin)
213
  {
214
  parent::__construct($plugin);
215
  $this->configure();
@@ -325,13 +325,13 @@ if( !class_exists('Wbcr_FactoryPages432_AdminPage') ) {
325
  {
326
  $result_id = $this->getResultId();
327
 
328
- $this->hidden = apply_filters('wbcr_factory_432_page_is_hidden_' . $result_id, $this->hidden);
329
 
330
  if( $this->hidden ) {
331
  return;
332
  }
333
 
334
- $this->internal = apply_filters('wbcr_factory_432_page_is_internal_' . $result_id, $this->internal);
335
 
336
  if( $this->internal ) {
337
  $this->menu_target = null;
@@ -370,7 +370,7 @@ if( !class_exists('Wbcr_FactoryPages432_AdminPage') ) {
370
  $this->assets($this->scripts, $this->styles);
371
 
372
  if( !$this->scripts->isEmpty('bootstrap') || !$this->styles->isEmpty('bootstrap') ) {
373
- add_action('wbcr_factory_432_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), [
374
  $this,
375
  'actionAdminBootstrapScripts'
376
  ]);
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryPages438_AdminPage') ) {
18
 
19
+ class Wbcr_FactoryPages438_AdminPage extends Wbcr_FactoryPages438_Page {
20
 
21
  /**
22
  * Visible page title.
209
  */
210
  public $add_link_to_plugin_actions = false;
211
 
212
+ public function __construct(Wbcr_Factory439_Plugin $plugin)
213
  {
214
  parent::__construct($plugin);
215
  $this->configure();
325
  {
326
  $result_id = $this->getResultId();
327
 
328
+ $this->hidden = apply_filters('wbcr_factory_439_page_is_hidden_' . $result_id, $this->hidden);
329
 
330
  if( $this->hidden ) {
331
  return;
332
  }
333
 
334
+ $this->internal = apply_filters('wbcr_factory_439_page_is_internal_' . $result_id, $this->internal);
335
 
336
  if( $this->internal ) {
337
  $this->menu_target = null;
370
  $this->assets($this->scripts, $this->styles);
371
 
372
  if( !$this->scripts->isEmpty('bootstrap') || !$this->styles->isEmpty('bootstrap') ) {
373
+ add_action('wbcr_factory_439_bootstrap_enqueue_scripts_' . $this->plugin->getPluginName(), [
374
  $this,
375
  'actionAdminBootstrapScripts'
376
  ]);
libs/factory/pages/includes/page.class.php CHANGED
@@ -14,9 +14,9 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  exit;
15
  }
16
 
17
- if ( ! class_exists( 'Wbcr_FactoryPages432_Page' ) ) {
18
 
19
- class Wbcr_FactoryPages432_Page {
20
 
21
 
22
  /**
@@ -30,7 +30,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages432_Page' ) ) {
30
  * Чтобы не было конфликтов с другими плагинами, используйте префиксы.
31
  *
32
  * @since 1.0.0
33
- * @see FactoryPages432_AdminPage
34
  *
35
  * @var string
36
  */
@@ -39,7 +39,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages432_Page' ) ) {
39
  /**
40
  * Current Factory Plugin.
41
  *
42
- * @var Wbcr_Factory432_Plugin
43
  */
44
  public $plugin;
45
 
@@ -51,11 +51,11 @@ if ( ! class_exists( 'Wbcr_FactoryPages432_Page' ) ) {
51
  //private $default_actions = array();
52
 
53
  /**
54
- * @param Wbcr_Factory432_Plugin $plugin
55
  *
56
  * @throws Exception
57
  */
58
- public function __construct( Wbcr_Factory432_Plugin $plugin ) {
59
  $this->plugin = $plugin;
60
 
61
  if ( $plugin ) {
@@ -111,7 +111,7 @@ if ( ! class_exists( 'Wbcr_FactoryPages432_Page' ) ) {
111
 
112
  if ( ! method_exists( $this, $actionFunction ) ) {
113
  // todo: продумать и доработать выполнение произвольных и глобальных дейтсвия для всех страниц
114
- /*$custom_actions = apply_filters('wbcr/factory_pages_432/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_FactoryPages438_Page' ) ) {
18
 
19
+ class Wbcr_FactoryPages438_Page {
20
 
21
 
22
  /**
30
  * Чтобы не было конфликтов с другими плагинами, используйте префиксы.
31
  *
32
  * @since 1.0.0
33
+ * @see FactoryPages438_AdminPage
34
  *
35
  * @var string
36
  */
39
  /**
40
  * Current Factory Plugin.
41
  *
42
+ * @var Wbcr_Factory439_Plugin
43
  */
44
  public $plugin;
45
 
51
  //private $default_actions = array();
52
 
53
  /**
54
+ * @param Wbcr_Factory439_Plugin $plugin
55
  *
56
  * @throws Exception
57
  */
58
+ public function __construct( Wbcr_Factory439_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_438/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_432-fr_FR.mo DELETED
Binary file
libs/factory/pages/langs/wbcr_factory_pages_432-fr_FR.po DELETED
@@ -1,99 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: clearfy\n"
4
- "POT-Creation-Date: 2017-11-09 10:33+0300\n"
5
- "PO-Revision-Date: 2017-11-09 19:04+0300\n"
6
- "Last-Translator: alex.kovalevv@gmail.com <alex.kovalevv@gmail.com>\n"
7
- "Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\n"
8
- "Language: fr\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 1.8.8\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
- "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
- "X-Poedit-SearchPath-0: .\n"
19
-
20
- #: templates/impressive-page.class.php:45
21
- msgid "Settings"
22
- msgstr "Paramètres"
23
-
24
- #: templates/impressive-page.class.php:170
25
- msgid ""
26
- "It seems that a caching/performance plugin is active on this site. Please "
27
- "manually invalidate that plugin's cache after making any changes to the "
28
- "settings below."
29
- msgstr ""
30
- "Il semble qu'un plugin cache / performance soit actif sur ce site. Veuillez "
31
- "invalider manuellement le cache de ce plugin après avoir apporté des "
32
- "modifications aux paramètres ci-dessous."
33
-
34
- #: templates/impressive-page.class.php:187
35
- msgid "The settings have been updated successfully!"
36
- msgstr "Les paramètres ont été mis à jour avec succès!"
37
-
38
- #: templates/impressive-page.class.php:251
39
- msgid "Page"
40
- msgstr "Page"
41
-
42
- #: templates/impressive-page.class.php:256
43
- msgid "Save settings"
44
- msgstr "Enregistrer les paramètres"
45
-
46
- #: templates/impressive-page.class.php:328
47
- msgid "You do not have permission to edit page."
48
- msgstr "Vous n'êtes pas autorisé à modifier la page."
49
-
50
- #: templates/impressive-page.class.php:403
51
- msgid ""
52
- "A neutral setting that can not harm your site, but you must be sure that you "
53
- "need to use it."
54
- msgstr ""
55
- "Un paramètre neutre qui ne peut pas nuire à votre site, mais vous devez être "
56
- "sûr que vous devez l'utiliser."
57
-
58
- #: templates/impressive-page.class.php:407
59
- msgid ""
60
- "When set this option, you must be careful. Plugins and themes may depend on "
61
- "this function. You must be sure that you can disable this feature for the "
62
- "site."
63
- msgstr ""
64
- "Lorsque vous définissez cette option, vous devez faire attention. Les "
65
- "plugins et les thèmes peuvent dépendre de cette fonction. Vous devez être "
66
- "sûr que vous pouvez désactiver cette fonctionnalité pour le site."
67
-
68
- #: templates/impressive-page.class.php:411
69
- msgid "Absolutely safe setting, We recommend to use."
70
- msgstr "Réglage absolument sûr, nous recommandons d'utiliser."
71
-
72
- #: templates/impressive-page.class.php:416
73
- msgid "Hover to the icon to get help for the feature you selected."
74
- msgstr "Passez à l'icône pour obtenir de l'aide sur la fonction sélectionnée."
75
-
76
- #: templates/impressive-page.class.php:432
77
- msgid "Do you want the plugin to improved and update?"
78
- msgstr "Voulez-vous que le plugin pour améliorer et mettre à jour?"
79
-
80
- #: templates/impressive-page.class.php:435
81
- msgid ""
82
- "Help the author, leave a review on wordpress.org. Thanks to feedback, I will "
83
- "know that the plugin is really useful to you and is needed."
84
- msgstr ""
85
- "Aidez l'auteur, laissez un commentaire sur wordpress.org. Grâce aux retours, "
86
- "je saurai que le plugin est vraiment utile et nécessaire."
87
-
88
- #: templates/impressive-page.class.php:437
89
- msgid "And also write your ideas on how to extend or improve the plugin."
90
- msgstr ""
91
- "Et écrivez aussi vos idées sur la façon d'étendre ou d'améliorer le plugin."
92
-
93
- #: templates/impressive-page.class.php:442
94
- msgid "Go rate us and push ideas"
95
- msgstr "Allez nous évaluer et pousser des idées"
96
-
97
- #: templates/impressive-page.class.php:454
98
- msgid "Donation for plug-in development"
99
- msgstr "Don pour le développement du plug-in"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/pages/langs/wbcr_factory_pages_432-ru_RU.mo DELETED
Binary file
libs/factory/pages/langs/wbcr_factory_pages_432-ru_RU.po DELETED
@@ -1,98 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: clearfy\n"
4
- "POT-Creation-Date: 2018-10-16 22:44+0300\n"
5
- "PO-Revision-Date: 2018-10-16 22:44+0300\n"
6
- "Last-Translator: alex.kovalevv@gmail.com <alex.kovalevv@gmail.com>\n"
7
- "Language-Team: Alex Kovalev <alex.kovalevv@gmail.com>\n"
8
- "Language: ru_RU\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "X-Generator: Poedit 2.1.1\n"
13
- "X-Poedit-Basepath: ..\n"
14
- "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
15
- "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c\n"
18
- "X-Poedit-SearchPath-0: .\n"
19
-
20
- #: templates/impressive-page.class.php:128
21
- msgid "Settings"
22
- msgstr "Настройки"
23
-
24
- #: templates/impressive-page.class.php:484
25
- msgid "The settings have been updated successfully!"
26
- msgstr "Настройки были успешно обновлены!"
27
-
28
- #: templates/impressive-page.class.php:484
29
- msgid ""
30
- "It seems that a caching/performance plugin is active on this site. Please "
31
- "manually invalidate that plugin's cache after making any changes to the "
32
- "settings below."
33
- msgstr ""
34
- "Похоже, что Вы используете плагин кэширования или ускорения блога. Не "
35
- "забудьте после изменения любых настроек, очистить кэш вручную!"
36
-
37
- #: templates/impressive-page.class.php:659
38
- msgid "Page"
39
- msgstr "Страница"
40
-
41
- #: templates/impressive-page.class.php:665
42
- msgid "Clearfy settings"
43
- msgstr "Настройки Clearfy"
44
-
45
- #: templates/impressive-page.class.php:668
46
- msgid "Save"
47
- msgstr "Сохранить"
48
-
49
- #: templates/impressive-page.class.php:783
50
- msgid "You do not have permission to edit page."
51
- msgstr "У вас недостаточно прав, для редактирования этой страницы."
52
-
53
- #~ msgid "Save settings"
54
- #~ msgstr "Сохранить настройки"
55
-
56
- #~ msgid ""
57
- #~ "A neutral setting that can not harm your site, but you must be sure that "
58
- #~ "you need to use it."
59
- #~ msgstr ""
60
- #~ "Нейтральная настройка, которая не может нанести вред вашему сайту, но вы "
61
- #~ "должны быть уверены, что вам нужно ее использовать."
62
-
63
- #~ msgid ""
64
- #~ "When set this option, you must be careful. Plugins and themes may depend "
65
- #~ "on this function. You must be sure that you can disable this feature for "
66
- #~ "the site."
67
- #~ msgstr ""
68
- #~ "При включении этой настройки, вы должны быть осторожны. Некоторые плагины "
69
- #~ "и темы могут зависеть от этой функции. Вы должны быть уверены, что эту "
70
- #~ "функцию можно отключить для сайта."
71
-
72
- #~ msgid "Absolutely safe setting, We recommend to use."
73
- #~ msgstr "Абсолютно безопасная настройка, рекомендуем использовать."
74
-
75
- #~ msgid "Hover to the icon to get help for the feature you selected."
76
- #~ msgstr ""
77
- #~ "Наведите указатель мыши на значок, чтобы получить справку по выбранной "
78
- #~ "функции."
79
-
80
- #~ msgid "Do you want the plugin to improved and update?"
81
- #~ msgstr "Вы хотите, чтобы плагин улучшался и обновлялся?"
82
-
83
- #~ msgid ""
84
- #~ "Help the author, leave a review on wordpress.org. Thanks to feedback, I "
85
- #~ "will know that the plugin is really useful to you and is needed."
86
- #~ msgstr ""
87
- #~ "Помогите автору, оставьте отзыв на wordpress.org. Благодаря отзывам, я "
88
- #~ "буду знать, что плагин действительно полезен для вас и необходим."
89
-
90
- #~ msgid "And also write your ideas on how to extend or improve the plugin."
91
- #~ msgstr ""
92
- #~ "А также напишите свои идеи о том, как расширить или улучшить плагин."
93
-
94
- #~ msgid "Go rate us and push ideas"
95
- #~ msgstr "Оставить отзыв или поделиться идеей"
96
-
97
- #~ msgid "Donation for plug-in development"
98
- #~ msgstr "Пожертвования на развитие плагина"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
libs/factory/pages/langs/{wbcr_factory_pages_431-fr_FR.mo → wbcr_factory_pages_438-fr_FR.mo} RENAMED
File without changes
libs/factory/pages/langs/{wbcr_factory_pages_431-fr_FR.po → wbcr_factory_pages_438-fr_FR.po} RENAMED
File without changes
libs/factory/pages/langs/{wbcr_factory_pages_431-ru_RU.mo → wbcr_factory_pages_438-ru_RU.mo} RENAMED
File without changes
libs/factory/pages/langs/{wbcr_factory_pages_431-ru_RU.po → wbcr_factory_pages_438-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_FactoryPages432::actionAdminMenu');
18
- add_action('network_admin_menu', 'Wbcr_FactoryPages432::actionAdminMenu');
19
 
20
- if( !class_exists('Wbcr_FactoryPages432') ) {
21
  /**
22
  * A base class to manage pages.
23
  *
24
  * @since 1.0.0
25
  */
26
- class Wbcr_FactoryPages432 {
27
 
28
  /**
29
- * @var Wbcr_FactoryPages432_Page[]
30
  */
31
  private static $pages = array();
32
 
33
  /**
34
- * @param Wbcr_Factory432_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_Factory432_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_Factory432_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_432_get_page_id') ) {
97
  /**
98
  *
99
- * @param Wbcr_Factory432_Plugin $plugin
100
  * @param string $page_id
101
  * @return string
102
  */
103
- function wbcr_factory_pages_432_get_page_id($plugin, $page_id)
104
  {
105
  return $page_id . '-' . $plugin->getPluginName();
106
  }
14
  exit;
15
  }
16
 
17
+ add_action('admin_menu', 'Wbcr_FactoryPages438::actionAdminMenu');
18
+ add_action('network_admin_menu', 'Wbcr_FactoryPages438::actionAdminMenu');
19
 
20
+ if( !class_exists('Wbcr_FactoryPages438') ) {
21
  /**
22
  * A base class to manage pages.
23
  *
24
  * @since 1.0.0
25
  */
26
+ class Wbcr_FactoryPages438 {
27
 
28
  /**
29
+ * @var Wbcr_FactoryPages438_Page[]
30
  */
31
  private static $pages = array();
32
 
33
  /**
34
+ * @param Wbcr_Factory439_Plugin $plugin
35
  * @param $class_name
36
  */
37
  public static function register($plugin, $class_name)
59
  }
60
  }
61
 
62
+ public static function getPageUrl(Wbcr_Factory439_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_Factory439_Plugin $plugin
79
  * @return array
80
  */
81
  public static function getIds($plugin)
93
  }
94
  }
95
 
96
+ if( !function_exists('wbcr_factory_pages_438_get_page_id') ) {
97
  /**
98
  *
99
+ * @param Wbcr_Factory439_Plugin $plugin
100
  * @param string $page_id
101
  * @return string
102
  */
103
+ function wbcr_factory_pages_438_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
@@ -9,7 +9,7 @@
9
  #WBCR .wdan-notices-compact-panel {
10
  display: none !important;
11
  }
12
- #WBCR .wbcr-factory-pages-432-impressive-page-template {
13
  position: relative;
14
  /**
15
  Content sections
@@ -18,134 +18,134 @@
18
  Widget in the sidebar of the plugin
19
  */
20
  }
21
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-color-grey {
22
  color: #9a9a9a;
23
  }
24
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-orange-color {
25
  color: #ffc107;
26
  }
27
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-light-orange-color {
28
  color: #ffeb3b;
29
  }
30
- #WBCR .wbcr-factory-pages-432-impressive-page-template .form-group {
31
  padding: 0 20px;
32
  }
33
- #WBCR .wbcr-factory-pages-432-impressive-page-template .form-group label {
34
  font-weight: normal;
35
  }
36
- #WBCR .wbcr-factory-pages-432-impressive-page-template .form-horizontal .control-label {
37
  max-width: 300px;
38
  }
39
- #WBCR .wbcr-factory-pages-432-impressive-page-template .factory-control-buttons {
40
  text-align: right;
41
  padding-right: 20px;
42
  }
43
- #WBCR .wbcr-factory-pages-432-impressive-page-template .factory-from-control-list label span {
44
  display: inline-block;
45
  vertical-align: bottom;
46
  }
47
- #WBCR .wbcr-factory-pages-432-impressive-page-template .factory-from-control-list label span input[type="checkbox"],
48
- #WBCR .wbcr-factory-pages-432-impressive-page-template .factory-from-control-list label span input[type="checkbox"]:focus {
49
  outline: none;
50
  }
51
- #WBCR .wbcr-factory-pages-432-impressive-page-template .alert {
52
  font-weight: bold;
53
  margin: 0 !important;
54
  border: 0;
55
  border-radius: 0;
56
  padding: 15px;
57
  }
58
- #WBCR .wbcr-factory-pages-432-impressive-page-template .alert + .wbcr-factory-page-group-header {
59
  margin-top: 0 !important;
60
  }
61
- #WBCR .wbcr-factory-pages-432-impressive-page-template .alert.alert-warning {
62
  background: #fff3d0;
63
  }
64
- #WBCR .wbcr-factory-pages-432-impressive-page-template .alert.alert-warning:nth-child(2n+1) {
65
  background: #fffde9;
66
  }
67
- #WBCR .wbcr-factory-pages-432-impressive-page-template .alert.alert-danger {
68
  background: #de716d;
69
  }
70
- #WBCR .wbcr-factory-pages-432-impressive-page-template .alert.alert-danger:nth-child(2n+1) {
71
  background: #ec8c89;
72
  }
73
- #WBCR .wbcr-factory-pages-432-impressive-page-template .alert.alert-success {
74
  background: #d0ecc4;
75
  }
76
- #WBCR .wbcr-factory-pages-432-impressive-page-template .alert.alert-success:nth-child(2n+1) {
77
  background: #e0eadb;
78
  }
79
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-header {
80
  padding: 20px 20px 40px;
81
  }
82
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-recomended-text {
83
  display: block;
84
  font-size: 11px;
85
  font-weight: lighter;
86
  color: #179347;
87
  }
88
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-options,
89
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page {
90
  position: relative;
91
  background: #e6e6e6;
92
  overflow: hidden;
93
  }
94
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-options:after,
95
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page:after {
96
  display: block;
97
  content: '';
98
  clear: both;
99
  }
100
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-group-header {
101
  background: #efefef;
102
  padding: 20px 0 10px 20px;
103
  margin: 30px 0;
104
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
105
  }
106
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-group-header:first-child {
107
  margin-top: 0;
108
  }
109
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-group-header strong {
110
  font-size: 15px;
111
  }
112
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-group-header p {
113
  color: #8c8888;
114
  font-size: 12px;
115
  }
116
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap {
117
  margin-left: 230px;
118
  padding: 80px 0 0 0;
119
  vertical-align: top;
120
  background: #fff;
121
  }
122
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-wrapper,
123
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap h2.nav-tab-wrapper,
124
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap h1.nav-tab-wrapper {
125
  border: 0;
126
  }
127
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-active {
128
  background: #efefef !important;
129
  margin-bottom: -2px !important;
130
  border-bottom: 1px solid #efefef !important;
131
  }
132
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:first-child {
133
  margin: 0;
134
  }
135
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:hover {
136
  background: #f7f7f7;
137
  }
138
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab {
139
  border: 2px solid #dedede;
140
  border-bottom: 0;
141
  box-shadow: -1px 0 0 rgba(0, 0, 0, 0.1);
142
  }
143
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:active,
144
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:focus {
145
  box-shadow: none;
146
  outline: none;
147
  }
148
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header {
149
  position: absolute;
150
  z-index: 13;
151
  top: 0;
@@ -156,7 +156,7 @@
156
  color: #fff;
157
  border-radius: 5px 5px 0 0;
158
  }
159
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo {
160
  float: left;
161
  padding: 25px 0;
162
  font-size: 20px;
@@ -169,11 +169,11 @@
169
  margin-right: 10px;
170
  background: none;
171
  }
172
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title {
173
  display: inline-block;
174
  vertical-align: middle;
175
  }
176
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title h2 {
177
  font-size: 18px;
178
  line-height: 30px;
179
  font-weight: 300;
@@ -184,12 +184,12 @@
184
  text-overflow: ellipsis;
185
  color: #fff;
186
  }
187
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control {
188
  position: relative;
189
  float: right;
190
  margin: 12px;
191
  }
192
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button {
193
  display: inline-block;
194
  vertical-align: top;
195
  font-size: 13px;
@@ -212,49 +212,49 @@
212
  text-decoration: none;
213
  z-index: 3;
214
  }
215
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save {
216
  box-shadow: none;
217
  min-width: 100px;
218
  background-color: #8bc34a;
219
  color: #fff;
220
  }
221
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:hover {
222
  background: #9dbb7b;
223
  color: #fff;
224
  }
225
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:active {
226
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
227
  }
228
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings {
229
  box-shadow: none;
230
  min-width: 200px;
231
  background-color: #9e9e9e;
232
  color: #fff;
233
  }
234
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:hover {
235
  background: #797979;
236
  color: #fff;
237
  }
238
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:active {
239
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
240
  }
241
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar {
242
  float: left;
243
  vertical-align: top;
244
  width: 230px;
245
  background: #e6e6e6;
246
  }
247
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul {
248
  padding: 0;
249
  margin-bottom: 0;
250
  margin-top: 80px;
251
  }
252
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab {
253
  display: block;
254
  background: #efefef;
255
  margin: 1px 0;
256
  }
257
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link {
258
  display: block;
259
  width: 100%;
260
  padding: 20px 20px;
@@ -265,58 +265,58 @@
265
  text-align: left;
266
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
267
  }
268
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__title {
269
  display: block;
270
  font-weight: bold;
271
  }
272
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__short-description {
273
  display: block;
274
  font-size: 13px;
275
  font-weight: normal;
276
  text-transform: none;
277
  color: #9a9a9a;
278
  }
279
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .dashicons {
280
  float: right;
281
  color: #ccc;
282
  }
283
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link::after {
284
  clear: both;
285
  }
286
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover {
287
  background: #f7f6f6;
288
  }
289
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover .dashicons {
290
  color: #9a9a9a;
291
  }
292
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link,
293
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
294
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover,
295
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
296
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:focus {
297
  outline: 0 !important;
298
  box-shadow: none !important;
299
  }
300
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab {
301
  background: #fff;
302
  border-left: 5px solid #ff5722;
303
  }
304
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a {
305
  color: #ff5722;
306
  font-weight: bold;
307
  }
308
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a .dashicons {
309
  color: #9a9a9a;
310
  }
311
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu {
312
  padding: 0;
313
  margin: 0;
314
  }
315
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li {
316
  margin: 1px 0 0;
317
  padding: 0;
318
  }
319
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a {
320
  display: block;
321
  font-weight: normal;
322
  color: #222;
@@ -327,12 +327,12 @@
327
  text-decoration: none;
328
  outline: none;
329
  }
330
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a:focus,
331
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a:link {
332
  outline: 0 !important;
333
  text-shadow: none !important;
334
  }
335
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a .dashicons {
336
  color: #9a9a9a;
337
  font-size: 13px;
338
  border: 0;
@@ -343,48 +343,48 @@
343
  -ms-filter: fliph;
344
  filter: fliph;
345
  }
346
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a.wbcr-factory-tab-active {
347
  background: #fff;
348
  color: #ff5722;
349
  font-weight: 600;
350
  }
351
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a.wbcr-factory-tab-active .dashicons {
352
  color: #ff5722;
353
  }
354
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-content-section,
355
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section {
356
  display: inline-block;
357
  vertical-align: top;
358
  }
359
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-content-section {
360
  width: 74.6%;
361
  }
362
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-content-section.wbcr-fullwidth {
363
  width: 100%;
364
  }
365
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-content-section .nav-tab-wrapper {
366
  margin-top: 15px;
367
  }
368
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content {
369
  background: #f7f7f7;
370
  padding: 0 0 20px 0;
371
  border: 1px solid #dad8d8;
372
  box-shadow: -1px 0px 1px rgba(0, 0, 0, 0.1);
373
  }
374
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content > form {
375
  padding-top: 0 !important;
376
  }
377
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section {
378
  width: 25%;
379
  padding: 10px;
380
  margin: 0 0 -20px;
381
  background-color: #f9f9f9;
382
  box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.1);
383
  }
384
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-sidebar-widget {
385
  margin: 0 0 20px;
386
  }
387
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget {
388
  display: inline-block;
389
  min-height: 230px;
390
  width: 100%;
@@ -393,19 +393,19 @@
393
  padding: 20px 15px;
394
  vertical-align: top;
395
  }
396
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-hide {
397
  display: none;
398
  }
399
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-warning {
400
  background: #fff4d0;
401
  }
402
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-danger {
403
  background: #e2ffc0;
404
  }
405
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-success {
406
  background: #ffebe9;
407
  }
408
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-hint-icon-simple {
409
  display: inline-block;
410
  width: 16px;
411
  height: 16px;
@@ -417,16 +417,16 @@
417
  background: #E91E63;
418
  border-radius: 3px;
419
  }
420
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-grey {
421
  background: #E91E63;
422
  }
423
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-red {
424
  background: #9e9e9e;
425
  }
426
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-green {
427
  background: #8bc34a;
428
  }
429
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-icon-5stars {
430
  display: block;
431
  width: 80px;
432
  height: 17px;
@@ -434,23 +434,23 @@
434
  vertical-align: middle;
435
  margin-bottom: 5px;
436
  }
437
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] {
438
  display: block;
439
  margin: 30px auto 0;
440
  outline: none;
441
  }
442
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :focus,
443
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :active {
444
  box-shadow: none;
445
  }
446
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form .wbcr-factory-donation-price {
447
  font-size: 50px;
448
  margin-top: 30px;
449
  text-align: center;
450
  font-weight: 600;
451
  color: #8BC34A;
452
  }
453
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box {
454
  min-height: 240px;
455
  margin-bottom: 20px;
456
  text-align: center;
@@ -458,24 +458,24 @@
458
  padding: 30px;
459
  border: 1px solid #f3f1e7;
460
  }
461
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box .dashicons {
462
  width: 50px;
463
  height: 50px;
464
  font-size: 50px;
465
  color: #FFC107;
466
  line-height: normal;
467
  }
468
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box h3 {
469
  color: #7b6111;
470
  }
471
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box p {
472
  color: #9e9e9e;
473
  }
474
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-buttons-wrap {
475
  margin-top: 20px;
476
  text-align: center;
477
  }
478
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button {
479
  display: inline-block;
480
  padding: 20px 60px;
481
  background-color: #FFC107;
@@ -485,67 +485,67 @@
485
  font-weight: bold;
486
  transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
487
  }
488
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button:hover {
489
  background-color: #ffce3a;
490
  }
491
- #WBCR .wbcr-factory-pages-432-impressive-page-template #wbcr-factory-confirm-dialog {
492
  padding: 20px;
493
  background: #ffffff;
494
  }
495
- #WBCR .wbcr-factory-pages-432-impressive-page-template #wbcr-factory-confirm-dialog .updated,
496
- #WBCR .wbcr-factory-pages-432-impressive-page-template #wbcr-factory-confirm-dialog .alert {
497
  display: none;
498
  }
499
- #WBCR .wbcr-factory-pages-432-impressive-page-template #wbcr-factory-confirm-dialog h2 {
500
  font-size: 18px;
501
  margin-top: 10px;
502
  }
503
- #WBCR .wbcr-factory-pages-432-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-description {
504
  padding: 10px;
505
  background: #ffedeb;
506
  border: 1px solid #ffdfdc;
507
  margin: 15px 0;
508
  }
509
- #WBCR .wbcr-factory-pages-432-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-hint {
510
  margin-bottom: 15px;
511
  color: #7b7b7b;
512
  }
513
  @media screen and (max-width: 1367px) {
514
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-content-section {
515
  width: 69.6%;
516
  }
517
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section {
518
  width: 30%;
519
  }
520
  }
521
  @media screen and (max-width: 1320px) {
522
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-content-section {
523
  width: 100%;
524
  }
525
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-right-sidebar-section {
526
  display: none !important;
527
  }
528
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-header-logo .dash {
529
  display: none !important;
530
  }
531
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-header-title {
532
  display: none !important;
533
  }
534
  }
535
  @media screen and (max-width: 950px) {
536
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar {
537
  width: 70px;
538
  }
539
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a {
540
  font-size: 0;
541
  }
542
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__title {
543
  font-size: 0;
544
  }
545
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__short-description {
546
  display: none !important;
547
  }
548
- #WBCR .wbcr-factory-pages-432-impressive-page-template .wbcr-factory-page-inner-wrap {
549
  margin-left: 70px;
550
  }
551
  }
9
  #WBCR .wdan-notices-compact-panel {
10
  display: none !important;
11
  }
12
+ #WBCR .wbcr-factory-pages-438-impressive-page-template {
13
  position: relative;
14
  /**
15
  Content sections
18
  Widget in the sidebar of the plugin
19
  */
20
  }
21
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-color-grey {
22
  color: #9a9a9a;
23
  }
24
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-orange-color {
25
  color: #ffc107;
26
  }
27
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-light-orange-color {
28
  color: #ffeb3b;
29
  }
30
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .form-group {
31
  padding: 0 20px;
32
  }
33
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .form-group label {
34
  font-weight: normal;
35
  }
36
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .form-horizontal .control-label {
37
  max-width: 300px;
38
  }
39
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .factory-control-buttons {
40
  text-align: right;
41
  padding-right: 20px;
42
  }
43
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .factory-from-control-list label span {
44
  display: inline-block;
45
  vertical-align: bottom;
46
  }
47
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .factory-from-control-list label span input[type="checkbox"],
48
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .factory-from-control-list label span input[type="checkbox"]:focus {
49
  outline: none;
50
  }
51
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .alert {
52
  font-weight: bold;
53
  margin: 0 !important;
54
  border: 0;
55
  border-radius: 0;
56
  padding: 15px;
57
  }
58
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .alert + .wbcr-factory-page-group-header {
59
  margin-top: 0 !important;
60
  }
61
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .alert.alert-warning {
62
  background: #fff3d0;
63
  }
64
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .alert.alert-warning:nth-child(2n+1) {
65
  background: #fffde9;
66
  }
67
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .alert.alert-danger {
68
  background: #de716d;
69
  }
70
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .alert.alert-danger:nth-child(2n+1) {
71
  background: #ec8c89;
72
  }
73
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .alert.alert-success {
74
  background: #d0ecc4;
75
  }
76
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .alert.alert-success:nth-child(2n+1) {
77
  background: #e0eadb;
78
  }
79
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-header {
80
  padding: 20px 20px 40px;
81
  }
82
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-recomended-text {
83
  display: block;
84
  font-size: 11px;
85
  font-weight: lighter;
86
  color: #179347;
87
  }
88
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-options,
89
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page {
90
  position: relative;
91
  background: #e6e6e6;
92
  overflow: hidden;
93
  }
94
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-options:after,
95
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page:after {
96
  display: block;
97
  content: '';
98
  clear: both;
99
  }
100
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-group-header {
101
  background: #efefef;
102
  padding: 20px 0 10px 20px;
103
  margin: 30px 0;
104
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);
105
  }
106
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-group-header:first-child {
107
  margin-top: 0;
108
  }
109
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-group-header strong {
110
  font-size: 15px;
111
  }
112
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-group-header p {
113
  color: #8c8888;
114
  font-size: 12px;
115
  }
116
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap {
117
  margin-left: 230px;
118
  padding: 80px 0 0 0;
119
  vertical-align: top;
120
  background: #fff;
121
  }
122
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-wrapper,
123
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap h2.nav-tab-wrapper,
124
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap h1.nav-tab-wrapper {
125
  border: 0;
126
  }
127
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab-active {
128
  background: #efefef !important;
129
  margin-bottom: -2px !important;
130
  border-bottom: 1px solid #efefef !important;
131
  }
132
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:first-child {
133
  margin: 0;
134
  }
135
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:hover {
136
  background: #f7f7f7;
137
  }
138
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab {
139
  border: 2px solid #dedede;
140
  border-bottom: 0;
141
  box-shadow: -1px 0 0 rgba(0, 0, 0, 0.1);
142
  }
143
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:active,
144
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap .nav-tab:focus {
145
  box-shadow: none;
146
  outline: none;
147
  }
148
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header {
149
  position: absolute;
150
  z-index: 13;
151
  top: 0;
156
  color: #fff;
157
  border-radius: 5px 5px 0 0;
158
  }
159
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-logo {
160
  float: left;
161
  padding: 25px 0;
162
  font-size: 20px;
169
  margin-right: 10px;
170
  background: none;
171
  }
172
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title {
173
  display: inline-block;
174
  vertical-align: middle;
175
  }
176
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-header-title h2 {
177
  font-size: 18px;
178
  line-height: 30px;
179
  font-weight: 300;
184
  text-overflow: ellipsis;
185
  color: #fff;
186
  }
187
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-control {
188
  position: relative;
189
  float: right;
190
  margin: 12px;
191
  }
192
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button {
193
  display: inline-block;
194
  vertical-align: top;
195
  font-size: 13px;
212
  text-decoration: none;
213
  z-index: 3;
214
  }
215
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save {
216
  box-shadow: none;
217
  min-width: 100px;
218
  background-color: #8bc34a;
219
  color: #fff;
220
  }
221
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:hover {
222
  background: #9dbb7b;
223
  color: #fff;
224
  }
225
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-save:active {
226
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
227
  }
228
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings {
229
  box-shadow: none;
230
  min-width: 200px;
231
  background-color: #9e9e9e;
232
  color: #fff;
233
  }
234
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:hover {
235
  background: #797979;
236
  color: #fff;
237
  }
238
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-header .wbcr-factory-button.wbcr-factory-type-settings:active {
239
  box-shadow: inset -1px 1px 1px rgba(0, 0, 0, 0.3);
240
  }
241
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar {
242
  float: left;
243
  vertical-align: top;
244
  width: 230px;
245
  background: #e6e6e6;
246
  }
247
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul {
248
  padding: 0;
249
  margin-bottom: 0;
250
  margin-top: 80px;
251
  }
252
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab {
253
  display: block;
254
  background: #efefef;
255
  margin: 1px 0;
256
  }
257
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link {
258
  display: block;
259
  width: 100%;
260
  padding: 20px 20px;
265
  text-align: left;
266
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
267
  }
268
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__title {
269
  display: block;
270
  font-weight: bold;
271
  }
272
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .wbcr-factory-tab__short-description {
273
  display: block;
274
  font-size: 13px;
275
  font-weight: normal;
276
  text-transform: none;
277
  color: #9a9a9a;
278
  }
279
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link .dashicons {
280
  float: right;
281
  color: #ccc;
282
  }
283
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link::after {
284
  clear: both;
285
  }
286
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover {
287
  background: #f7f6f6;
288
  }
289
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover .dashicons {
290
  color: #9a9a9a;
291
  }
292
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link,
293
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
294
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:hover,
295
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:active,
296
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__link:focus {
297
  outline: 0 !important;
298
  box-shadow: none !important;
299
  }
300
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab {
301
  background: #fff;
302
  border-left: 5px solid #ff5722;
303
  }
304
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a {
305
  color: #ff5722;
306
  font-weight: bold;
307
  }
308
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab.wbcr-factory-active-tab a .dashicons {
309
  color: #9a9a9a;
310
  }
311
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu {
312
  padding: 0;
313
  margin: 0;
314
  }
315
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li {
316
  margin: 1px 0 0;
317
  padding: 0;
318
  }
319
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a {
320
  display: block;
321
  font-weight: normal;
322
  color: #222;
327
  text-decoration: none;
328
  outline: none;
329
  }
330
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a:focus,
331
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a:link {
332
  outline: 0 !important;
333
  text-shadow: none !important;
334
  }
335
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a .dashicons {
336
  color: #9a9a9a;
337
  font-size: 13px;
338
  border: 0;
343
  -ms-filter: fliph;
344
  filter: fliph;
345
  }
346
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a.wbcr-factory-tab-active {
347
  background: #fff;
348
  color: #ff5722;
349
  font-weight: 600;
350
  }
351
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-submenu li a.wbcr-factory-tab-active .dashicons {
352
  color: #ff5722;
353
  }
354
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-content-section,
355
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section {
356
  display: inline-block;
357
  vertical-align: top;
358
  }
359
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-content-section {
360
  width: 74.6%;
361
  }
362
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-content-section.wbcr-fullwidth {
363
  width: 100%;
364
  }
365
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-content-section .nav-tab-wrapper {
366
  margin-top: 15px;
367
  }
368
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content {
369
  background: #f7f7f7;
370
  padding: 0 0 20px 0;
371
  border: 1px solid #dad8d8;
372
  box-shadow: -1px 0px 1px rgba(0, 0, 0, 0.1);
373
  }
374
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-content-section .wbcr-factory-content > form {
375
  padding-top: 0 !important;
376
  }
377
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section {
378
  width: 25%;
379
  padding: 10px;
380
  margin: 0 0 -20px;
381
  background-color: #f9f9f9;
382
  box-shadow: -1px 1px 5px rgba(0, 0, 0, 0.1);
383
  }
384
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section .wbcr-factory-sidebar-widget {
385
  margin: 0 0 20px;
386
  }
387
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget {
388
  display: inline-block;
389
  min-height: 230px;
390
  width: 100%;
393
  padding: 20px 15px;
394
  vertical-align: top;
395
  }
396
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-hide {
397
  display: none;
398
  }
399
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-warning {
400
  background: #fff4d0;
401
  }
402
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-danger {
403
  background: #e2ffc0;
404
  }
405
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget.wbcr-factory-success {
406
  background: #ffebe9;
407
  }
408
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-hint-icon-simple {
409
  display: inline-block;
410
  width: 16px;
411
  height: 16px;
417
  background: #E91E63;
418
  border-radius: 3px;
419
  }
420
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-grey {
421
  background: #E91E63;
422
  }
423
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-red {
424
  background: #9e9e9e;
425
  }
426
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-simple-green {
427
  background: #8bc34a;
428
  }
429
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget .wbcr-factory-icon-5stars {
430
  display: block;
431
  width: 80px;
432
  height: 17px;
434
  vertical-align: middle;
435
  margin-bottom: 5px;
436
  }
437
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] {
438
  display: block;
439
  margin: 30px auto 0;
440
  outline: none;
441
  }
442
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :focus,
443
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form input[type="image"] :active {
444
  box-shadow: none;
445
  }
446
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-sidebar-widget #wbcr-factory-paypal-donation-form .wbcr-factory-donation-price {
447
  font-size: 50px;
448
  margin-top: 30px;
449
  text-align: center;
450
  font-weight: 600;
451
  color: #8BC34A;
452
  }
453
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box {
454
  min-height: 240px;
455
  margin-bottom: 20px;
456
  text-align: center;
458
  padding: 30px;
459
  border: 1px solid #f3f1e7;
460
  }
461
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box .dashicons {
462
  width: 50px;
463
  height: 50px;
464
  font-size: 50px;
465
  color: #FFC107;
466
  line-height: normal;
467
  }
468
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box h3 {
469
  color: #7b6111;
470
  }
471
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-feature-box p {
472
  color: #9e9e9e;
473
  }
474
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-buttons-wrap {
475
  margin-top: 20px;
476
  text-align: center;
477
  }
478
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button {
479
  display: inline-block;
480
  padding: 20px 60px;
481
  background-color: #FFC107;
485
  font-weight: bold;
486
  transition: background-color 0.3s, border-color 0.3s, color 0.3s, opacity 0.3s;
487
  }
488
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-more_features .wbcr-factory-premium-button:hover {
489
  background-color: #ffce3a;
490
  }
491
+ #WBCR .wbcr-factory-pages-438-impressive-page-template #wbcr-factory-confirm-dialog {
492
  padding: 20px;
493
  background: #ffffff;
494
  }
495
+ #WBCR .wbcr-factory-pages-438-impressive-page-template #wbcr-factory-confirm-dialog .updated,
496
+ #WBCR .wbcr-factory-pages-438-impressive-page-template #wbcr-factory-confirm-dialog .alert {
497
  display: none;
498
  }
499
+ #WBCR .wbcr-factory-pages-438-impressive-page-template #wbcr-factory-confirm-dialog h2 {
500
  font-size: 18px;
501
  margin-top: 10px;
502
  }
503
+ #WBCR .wbcr-factory-pages-438-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-description {
504
  padding: 10px;
505
  background: #ffedeb;
506
  border: 1px solid #ffdfdc;
507
  margin: 15px 0;
508
  }
509
+ #WBCR .wbcr-factory-pages-438-impressive-page-template #wbcr-factory-confirm-dialog .wbcr-factory-confirm-hint {
510
  margin-bottom: 15px;
511
  color: #7b7b7b;
512
  }
513
  @media screen and (max-width: 1367px) {
514
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-content-section {
515
  width: 69.6%;
516
  }
517
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section {
518
  width: 30%;
519
  }
520
  }
521
  @media screen and (max-width: 1320px) {
522
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-content-section {
523
  width: 100%;
524
  }
525
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-right-sidebar-section {
526
  display: none !important;
527
  }
528
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-header-logo .dash {
529
  display: none !important;
530
  }
531
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-header-title {
532
  display: none !important;
533
  }
534
  }
535
  @media screen and (max-width: 950px) {
536
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar {
537
  width: 70px;
538
  }
539
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab a {
540
  font-size: 0;
541
  }
542
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__title {
543
  font-size: 0;
544
  }
545
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-left-navigation-bar ul .wbcr-factory-nav-tab .wbcr-factory-tab__short-description {
546
  display: none !important;
547
  }
548
+ #WBCR .wbcr-factory-pages-438-impressive-page-template .wbcr-factory-page-inner-wrap {
549
  margin-left: 70px;
550
  }
551
  }
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_FactoryPages432_ImpressiveThemplate') ) {
18
  /**
19
- * Class Wbcr_FactoryPages432_ImpressiveThemplate
20
  */
21
- abstract class Wbcr_FactoryPages432_ImpressiveThemplate extends Wbcr_FactoryPages432_AdminPage {
22
 
23
  /**
24
  * Тип страницы:
@@ -112,12 +112,12 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
112
  public $page_menu = [];
113
 
114
  /**
115
- * @param Wbcr_Factory432_Plugin $plugin
116
  */
117
- public function __construct(Wbcr_Factory432_Plugin $plugin)
118
  {
119
- $this->menuIcon = FACTORY_PAGES_432_URL . '/templates/assets/img/webcraftic-plugin-icon.png';
120
- //$allow_multisite = apply_filters('wbcr_factory_432_core_admin_allow_multisite', false);
121
 
122
  if( is_multisite() && $this->available_for_multisite && $plugin->isNetworkActive() ) {
123
  $this->network = true;
@@ -127,7 +127,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
127
 
128
  parent::__construct($plugin);
129
 
130
- $this->title_plugin_action_link = __('Settings', 'wbcr_factory_pages_432');
131
 
132
  $this->setPageMenu();
133
  }
@@ -137,7 +137,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
137
  *
138
  * @return void
139
  * @since 1.0.0
140
- * @see FactoryPages432_AdminPage
141
  *
142
  */
143
  public function assets($scripts, $styles)
@@ -159,7 +159,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
159
  'control.checkbox'
160
  ], 'bootstrap');
161
 
162
- $this->styles->add(FACTORY_PAGES_432_URL . '/templates/assets/css/impressive.page.template.css');
163
  }
164
 
165
  /**
@@ -173,7 +173,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
173
  * @since 4.0.8 - добавлен
174
  * @since 4.0.9 - является устаревшим
175
  */
176
- $plugin_title = wbcr_factory_432_apply_filters_deprecated('wbcr/factory/imppage/plugin_title', [
177
  $this->plugin->getPluginTitle(),
178
  $this->plugin->getPluginName()
179
  ], '4.0.9', 'wbcr/factory/pages/impressive/plugin_title');
@@ -240,22 +240,22 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
240
  {
241
  check_admin_referer('wbcr_factory_' . $this->getResultId() . '_flush_action');
242
 
243
- if( class_exists('WbcrFactoryClearfy224_Helpers') ) {
244
- WbcrFactoryClearfy224_Helpers::flushPageCache();
245
  }
246
 
247
  /**
248
  * @since 4.0.1 - является устаревшим
249
  */
250
- wbcr_factory_432_do_action_deprecated('wbcr_factory_432_imppage_flush_cache', [
251
  $this->plugin->getPluginName(),
252
  $this->getResultId()
253
- ], '4.0.1', 'wbcr_factory_432_imppage_after_form_save');
254
 
255
  /**
256
  * @since 4.0.9 - является устаревшим
257
  */
258
- wbcr_factory_432_do_action_deprecated('wbcr_factory_432_imppage_after_form_save', [
259
  $this->plugin,
260
  $this
261
  ], '4.0.9', 'wbcr/factory/pages/impressive/after_form_save');
@@ -274,7 +274,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
274
  /**
275
  * @since 4.0.9 - является устаревшим
276
  */
277
- $redirect_args = wbcr_factory_432_apply_filters_deprecated('wbcr_factory_432_imppage_after_form_save_redirect_args', [$redirect_args], '4.0.9', 'wbcr/factory/pages/impressive/save_redirect_args');
278
 
279
  /**
280
  * @since 4.0.1 - добавлен
@@ -292,7 +292,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
292
  protected function warningNotice()
293
  {
294
  /*if( WP_CACHE ) {
295
- $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_432'));
296
  }*/
297
  // Метод предназначен для вызова в дочернем классе
298
  }
@@ -372,7 +372,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
372
  /**
373
  * @since 4.0.9 - является устаревшим
374
  */
375
- wbcr_factory_432_do_action_deprecated('wbcr_factory_pages_432_imppage_print_all_notices', [
376
  $this->plugin,
377
  $this
378
  ], '4.0.9', 'wbcr/factory/pages/impressive/print_all_notices');
@@ -392,14 +392,14 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
392
  $this->plugin->getPluginName() . '_saved' => '1'
393
  ],
394
  'type' => 'success',
395
- 'message' => __('The settings have been updated successfully!', 'wbcr_factory_pages_432') . (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_432') : '')
396
  ]
397
  ];
398
 
399
  /**
400
  * @since 4.0.9 - является устаревшим
401
  */
402
- $notices = wbcr_factory_432_apply_filters_deprecated('wbcr_factory_pages_432_imppage_actions_notice', [
403
  $notices,
404
  $this->plugin,
405
  $this->id
@@ -674,7 +674,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
674
  <?php if( $this->type == 'options' ): ?>
675
  <input name="<?= $this->plugin->getPluginName() ?>_save_action"
676
  class="wbcr-factory-button wbcr-factory-type-save" type="submit"
677
- value="<?php _e('Save', 'wbcr_factory_pages_432'); ?>">
678
  <?php wp_nonce_field('wbcr_factory_' . $this->getResultId() . '_save_action'); ?>
679
  <?php endif; ?>
680
  </div>
@@ -733,7 +733,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
733
  /**
734
  * @since 4.0.9 - является устаревшим
735
  */
736
- $widgets = wbcr_factory_432_apply_filters_deprecated('wbcr_factory_pages_432_imppage_get_widgets', [
737
  $widgets,
738
  $position,
739
  $this->plugin,
@@ -751,12 +751,12 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
751
 
752
  protected function showOptions()
753
  {
754
- $form = new Wbcr_FactoryForms430_Form([
755
  'scope' => rtrim($this->plugin->getPrefix(), '_'),
756
  'name' => $this->getResultId() . "-options"
757
  ], $this->plugin);
758
 
759
- $form->setProvider(new Wbcr_FactoryForms430_OptionsValueProvider($this->plugin));
760
 
761
  $options = $this->getPageOptions();
762
 
@@ -796,14 +796,14 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
796
  check_admin_referer('wbcr_factory_' . $this->getResultId() . '_save_action');
797
 
798
  if( !current_user_can('administrator') && !current_user_can($this->capabilitiy) ) {
799
- wp_die(__('You do not have permission to edit page.', 'wbcr_factory_pages_432'));
800
  exit;
801
  }
802
 
803
  /**
804
  * @since 4.0.9 - является устаревшим
805
  */
806
- wbcr_factory_432_do_action_deprecated('wbcr_factory_432_imppage_before_form_save', [
807
  $form,
808
  $this->plugin,
809
  $this
@@ -822,7 +822,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
822
  /**
823
  * @since 4.0.9 - является устаревшим
824
  */
825
- wbcr_factory_432_do_action_deprecated('wbcr_factory_432_imppage_form_saved', [
826
  $form,
827
  $this->plugin,
828
  $this
@@ -843,7 +843,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
843
 
844
  ?>
845
  <div id="WBCR" class="wrap">
846
- <div class="wbcr-factory-pages-432-impressive-page-template factory-bootstrap-433 factory-fontawesome-000">
847
  <div class="wbcr-factory-options wbcr-factory-options-<?= esc_attr($this->id) ?>">
848
  <div class="wbcr-factory-left-navigation-bar">
849
  <?php $this->showPageMenu() ?>
@@ -890,7 +890,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
890
  protected function showPage($content = null)
891
  { ?>
892
  <div id="WBCR" class="wrap">
893
- <div class="wbcr-factory-pages-432-impressive-page-template factory-bootstrap-433 factory-fontawesome-000">
894
  <div class="wbcr-factory-page wbcr-factory-page-<?= $this->id ?>">
895
  <?php $this->showHeader(); ?>
896
  <div class="wbcr-factory-left-navigation-bar">
@@ -957,7 +957,7 @@ if( !class_exists('Wbcr_FactoryPages432_ImpressiveThemplate') ) {
957
  {
958
  ?>
959
  <div id="WBCR" class="wrap">
960
- <div class="wbcr-factory-pages-432-impressive-page-template factory-bootstrap-433 factory-fontawesome-000">
961
  <div id="wbcr-factory-confirm-dialog">
962
  <h2><?php echo $data['title'] ?></h2>
963
  <p class="wbcr-factory-confirm-description"><?php echo $data['description'] ?></p>
14
  exit;
15
  }
16
 
17
+ if( !class_exists('Wbcr_FactoryPages438_ImpressiveThemplate') ) {
18
  /**
19
+ * Class Wbcr_FactoryPages438_ImpressiveThemplate
20
  */
21
+ abstract class Wbcr_FactoryPages438_ImpressiveThemplate extends Wbcr_FactoryPages438_AdminPage {
22
 
23
  /**
24
  * Тип страницы:
112
  public $page_menu = [];
113
 
114
  /**
115
+ * @param Wbcr_Factory439_Plugin $plugin
116
  */
117
+ public function __construct(Wbcr_Factory439_Plugin $plugin)
118
  {
119
+ $this->menuIcon = FACTORY_PAGES_438_URL . '/templates/assets/img/webcraftic-plugin-icon.png';
120
+ //$allow_multisite = apply_filters('wbcr_factory_439_core_admin_allow_multisite', false);
121
 
122
  if( is_multisite() && $this->available_for_multisite && $plugin->isNetworkActive() ) {
123
  $this->network = true;
127
 
128
  parent::__construct($plugin);
129
 
130
+ $this->title_plugin_action_link = __('Settings', 'wbcr_factory_pages_438');
131
 
132
  $this->setPageMenu();
133
  }
137
  *
138
  * @return void
139
  * @since 1.0.0
140
+ * @see FactoryPages438_AdminPage
141
  *
142
  */
143
  public function assets($scripts, $styles)
159
  'control.checkbox'
160
  ], 'bootstrap');
161
 
162
+ $this->styles->add(FACTORY_PAGES_438_URL . '/templates/assets/css/impressive.page.template.css');
163
  }
164
 
165
  /**
173
  * @since 4.0.8 - добавлен
174
  * @since 4.0.9 - является устаревшим
175
  */
176
+ $plugin_title = wbcr_factory_439_apply_filters_deprecated('wbcr/factory/imppage/plugin_title', [
177
  $this->plugin->getPluginTitle(),
178
  $this->plugin->getPluginName()
179
  ], '4.0.9', 'wbcr/factory/pages/impressive/plugin_title');
240
  {
241
  check_admin_referer('wbcr_factory_' . $this->getResultId() . '_flush_action');
242
 
243
+ if( class_exists('WbcrFactoryClearfy230_Helpers') ) {
244
+ WbcrFactoryClearfy230_Helpers::flushPageCache();
245
  }
246
 
247
  /**
248
  * @since 4.0.1 - является устаревшим
249
  */
250
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_imppage_flush_cache', [
251
  $this->plugin->getPluginName(),
252
  $this->getResultId()
253
+ ], '4.0.1', 'wbcr_factory_439_imppage_after_form_save');
254
 
255
  /**
256
  * @since 4.0.9 - является устаревшим
257
  */
258
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_imppage_after_form_save', [
259
  $this->plugin,
260
  $this
261
  ], '4.0.9', 'wbcr/factory/pages/impressive/after_form_save');
274
  /**
275
  * @since 4.0.9 - является устаревшим
276
  */
277
+ $redirect_args = wbcr_factory_439_apply_filters_deprecated('wbcr_factory_439_imppage_after_form_save_redirect_args', [$redirect_args], '4.0.9', 'wbcr/factory/pages/impressive/save_redirect_args');
278
 
279
  /**
280
  * @since 4.0.1 - добавлен
292
  protected function warningNotice()
293
  {
294
  /*if( WP_CACHE ) {
295
+ $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_438'));
296
  }*/
297
  // Метод предназначен для вызова в дочернем классе
298
  }
372
  /**
373
  * @since 4.0.9 - является устаревшим
374
  */
375
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_pages_438_imppage_print_all_notices', [
376
  $this->plugin,
377
  $this
378
  ], '4.0.9', 'wbcr/factory/pages/impressive/print_all_notices');
392
  $this->plugin->getPluginName() . '_saved' => '1'
393
  ],
394
  'type' => 'success',
395
+ 'message' => __('The settings have been updated successfully!', 'wbcr_factory_pages_438') . (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_438') : '')
396
  ]
397
  ];
398
 
399
  /**
400
  * @since 4.0.9 - является устаревшим
401
  */
402
+ $notices = wbcr_factory_439_apply_filters_deprecated('wbcr_factory_pages_438_imppage_actions_notice', [
403
  $notices,
404
  $this->plugin,
405
  $this->id
674
  <?php if( $this->type == 'options' ): ?>
675
  <input name="<?= $this->plugin->getPluginName() ?>_save_action"
676
  class="wbcr-factory-button wbcr-factory-type-save" type="submit"
677
+ value="<?php _e('Save', 'wbcr_factory_pages_438'); ?>">
678
  <?php wp_nonce_field('wbcr_factory_' . $this->getResultId() . '_save_action'); ?>
679
  <?php endif; ?>
680
  </div>
733
  /**
734
  * @since 4.0.9 - является устаревшим
735
  */
736
+ $widgets = wbcr_factory_439_apply_filters_deprecated('wbcr_factory_pages_438_imppage_get_widgets', [
737
  $widgets,
738
  $position,
739
  $this->plugin,
751
 
752
  protected function showOptions()
753
  {
754
+ $form = new Wbcr_FactoryForms436_Form([
755
  'scope' => rtrim($this->plugin->getPrefix(), '_'),
756
  'name' => $this->getResultId() . "-options"
757
  ], $this->plugin);
758
 
759
+ $form->setProvider(new Wbcr_FactoryForms436_OptionsValueProvider($this->plugin));
760
 
761
  $options = $this->getPageOptions();
762
 
796
  check_admin_referer('wbcr_factory_' . $this->getResultId() . '_save_action');
797
 
798
  if( !current_user_can('administrator') && !current_user_can($this->capabilitiy) ) {
799
+ wp_die(__('You do not have permission to edit page.', 'wbcr_factory_pages_438'));
800
  exit;
801
  }
802
 
803
  /**
804
  * @since 4.0.9 - является устаревшим
805
  */
806
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_imppage_before_form_save', [
807
  $form,
808
  $this->plugin,
809
  $this
822
  /**
823
  * @since 4.0.9 - является устаревшим
824
  */
825
+ wbcr_factory_439_do_action_deprecated('wbcr_factory_439_imppage_form_saved', [
826
  $form,
827
  $this->plugin,
828
  $this
843
 
844
  ?>
845
  <div id="WBCR" class="wrap">
846
+ <div class="wbcr-factory-pages-438-impressive-page-template factory-bootstrap-439 factory-fontawesome-000">
847
  <div class="wbcr-factory-options wbcr-factory-options-<?= esc_attr($this->id) ?>">
848
  <div class="wbcr-factory-left-navigation-bar">
849
  <?php $this->showPageMenu() ?>
890
  protected function showPage($content = null)
891
  { ?>
892
  <div id="WBCR" class="wrap">
893
+ <div class="wbcr-factory-pages-438-impressive-page-template factory-bootstrap-439 factory-fontawesome-000">
894
  <div class="wbcr-factory-page wbcr-factory-page-<?= $this->id ?>">
895
  <?php $this->showHeader(); ?>
896
  <div class="wbcr-factory-left-navigation-bar">
957
  {
958
  ?>
959
  <div id="WBCR" class="wrap">
960
+ <div class="wbcr-factory-pages-438-impressive-page-template factory-bootstrap-439 factory-fontawesome-000">
961
  <div id="wbcr-factory-confirm-dialog">
962
  <h2><?php echo $data['title'] ?></h2>
963
  <p class="wbcr-factory-confirm-description"><?php echo $data['description'] ?></p>
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_Factory432_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_Factory439_Update {
8
 
9
  public function install()
10
  {
readme.txt CHANGED
@@ -3,7 +3,7 @@ Tags: notices, notification, notifications, upgrade, nag
3
  Contributors: webcraftic, alexkovalevv, creativemotion
4
  Donate link: https://clearfy.pro/disable-admin-notices/
5
  Requires at least: 4.8
6
- Tested up to: 5.5
7
  Requires PHP: 5.6
8
  Stable tag: trunk
9
  License: GPLv2
@@ -45,8 +45,16 @@ We invite you to check out a few other related free plugins that our team has al
45
 
46
  == Translations ==
47
 
48
- * English - default, always included
49
- * Russian
 
 
 
 
 
 
 
 
50
 
51
  If you want to help with the translation, please contact me through this site or through the contacts inside the plugin.
52
 
@@ -62,6 +70,10 @@ If you want to help with the translation, please contact me through this site or
62
  3. Notifications panel (optional)
63
 
64
  == Changelog ==
 
 
 
 
65
  = 1.2.3 =
66
  * Fixed: Compatibility with other plugins
67
  * Fixed: Appearance of the list of hidden notifications in the adminbar
3
  Contributors: webcraftic, alexkovalevv, creativemotion
4
  Donate link: https://clearfy.pro/disable-admin-notices/
5
  Requires at least: 4.8
6
+ Tested up to: 5.6
7
  Requires PHP: 5.6
8
  Stable tag: trunk
9
  License: GPLv2
45
 
46
  == Translations ==
47
 
48
+ <ul>
49
+ <li>English (default), always included</li>
50
+ <li>Spanish (Spain) — big thanks to @fernandot, @nobnob</li>
51
+ <li>Spanish (Venezuela) — big thanks to @yordansoares, @nobnob</li>
52
+ <li>Spanish (Argentina) — big thanks to @damonh</li>
53
+ <li>French (France) — big thanks to @btpub</li>
54
+ <li>Hungarian — big thanks to @naoko01</li>
55
+ </ul>
56
+ <p>We are very need for your help with <a href="https://translate.wordpress.org/projects/wp-plugins/disable-admin-notices/" rel="nofollow ugc">translating the
57
+ Disable Admin Notices plugin</a> into your native language. We want to make it international and understandable for everyone. Please contact us via email inside the plugin, or create a topic on our <a href="https://wordpress.org/support/plugin/disable-admin-notices">support forum</a> if you can help with the translations. In exchange for your help, we will give you better support and our premium plugins absolutely free!</p>
58
 
59
  If you want to help with the translation, please contact me through this site or through the contacts inside the plugin.
60
 
70
  3. Notifications panel (optional)
71
 
72
  == Changelog ==
73
+ = 1.2.4 (16.12.2020)=
74
+ * Added: Subscribe widget
75
+ * Fixed: Minor bugs
76
+
77
  = 1.2.3 =
78
  * Fixed: Compatibility with other plugins
79
  * Fixed: Appearance of the list of hidden notifications in the adminbar