Constant Contact Forms - Version 1.3.7

Version Description

  • Added: Logging functionality to help aid with debugging and the plugin not working as needed or expected.
  • Added: Passed form ID to filters related to including labels for custom fields.
  • Fixed: Made sure some Constant Contact markup was only added to the page when in a Constant Contact area.
  • Fixed: Issue with submitted custom field lengths when also including the original labels. Users were able to still go above 50 character limit.
  • Fixed: Addressed issue with email bypassing when not needing to opt in.
  • Updated: CMB2 library to version 2.3.0.
  • Updated: Guzzle library to version 5.3.2.
  • Updated: Code quality regarding translated text, namespaces, and returned value consistency.
  • Updated: Added minimum PHP version to plugin readme for use on WordPress.org.
  • Updated: Reduced cache time for account information so changes reflect in WP admin more quickly.
  • Updated: Revised disclosure message on the form to be more GDPR compliant.
Download this release

Release Info

Developer constantcontact
Plugin Icon 128x128 Constant Contact Forms
Version 1.3.7
Comparing to
See all releases

Code changes from version 1.3.6 to 1.3.7

Files changed (304) hide show
  1. assets/css/admin-pages.css +12 -0
  2. assets/js/ctct-plugin-admin.js +28 -5
  3. assets/js/ctct-plugin-admin.min.js +1 -1
  4. assets/js/ctct-plugin-admin/modal.js +23 -0
  5. assets/js/ctct-plugin-admin/newsletter.js +5 -5
  6. assets/sass/admin-pages.scss +16 -0
  7. constant-contact-forms.php +23 -9
  8. includes/class-admin-pages.php +4 -3
  9. includes/class-admin.php +1 -1
  10. includes/class-api.php +29 -19
  11. includes/class-connect.php +5 -4
  12. includes/class-display.php +20 -7
  13. includes/class-logging.php +223 -0
  14. includes/class-mail.php +47 -15
  15. includes/class-middleware.php +4 -0
  16. includes/class-optin.php +1 -1
  17. includes/class-process-form.php +6 -0
  18. includes/class-settings.php +13 -1
  19. includes/helper-functions.php +44 -0
  20. languages/constant-contact-forms.pot +156 -86
  21. package.json +1 -1
  22. readme.txt +14 -1
  23. vendor/CMB2/bootstrap.php +22 -13
  24. vendor/CMB2/css/cmb2-front-rtl.css +252 -188
  25. vendor/CMB2/css/cmb2-front-rtl.min.css +1 -1
  26. vendor/CMB2/css/cmb2-front.css +252 -188
  27. vendor/CMB2/css/cmb2-front.min.css +1 -1
  28. vendor/CMB2/css/cmb2-rtl.css +295 -244
  29. vendor/CMB2/css/cmb2-rtl.min.css +1 -1
  30. vendor/CMB2/css/cmb2.css +295 -244
  31. vendor/CMB2/css/cmb2.min.css +1 -1
  32. vendor/CMB2/css/index.php +1 -1
  33. vendor/CMB2/images/index.php +1 -1
  34. vendor/CMB2/includes/CMB2.php +560 -219
  35. vendor/CMB2/includes/CMB2_Ajax.php +19 -10
  36. vendor/CMB2/includes/CMB2_Base.php +51 -18
  37. vendor/CMB2/includes/CMB2_Boxes.php +6 -5
  38. vendor/CMB2/includes/CMB2_Field.php +261 -110
  39. vendor/CMB2/includes/CMB2_Field_Display.php +37 -10
  40. vendor/CMB2/includes/CMB2_Hookup_Base.php +37 -2
  41. vendor/CMB2/includes/CMB2_JS.php +59 -13
  42. vendor/CMB2/includes/CMB2_Options.php +29 -16
  43. vendor/CMB2/includes/CMB2_Options_Hookup.php +289 -0
  44. vendor/CMB2/includes/CMB2_Sanitize.php +50 -9
  45. vendor/CMB2/includes/CMB2_Show_Filters.php +5 -2
  46. vendor/CMB2/includes/CMB2_Types.php +59 -26
  47. vendor/CMB2/includes/CMB2_Utils.php +112 -47
  48. vendor/CMB2/includes/CMB2_hookup.php +155 -43
  49. vendor/CMB2/includes/helper-functions.php +58 -26
  50. vendor/CMB2/includes/index.php +1 -1
  51. vendor/CMB2/includes/rest-api/CMB2_REST.php +40 -13
  52. vendor/CMB2/includes/rest-api/CMB2_REST_Controller.php +38 -18
  53. vendor/CMB2/includes/rest-api/CMB2_REST_Controller_Boxes.php +6 -4
  54. vendor/CMB2/includes/rest-api/CMB2_REST_Controller_Fields.php +17 -9
  55. vendor/CMB2/includes/shim/WP_REST_Controller.php +48 -20
  56. vendor/CMB2/includes/types/CMB2_Type_Base.php +13 -2
  57. vendor/CMB2/includes/types/CMB2_Type_Checkbox.php +3 -3
  58. vendor/CMB2/includes/types/CMB2_Type_Colorpicker.php +30 -9
  59. vendor/CMB2/includes/types/CMB2_Type_File.php +122 -61
  60. vendor/CMB2/includes/types/CMB2_Type_File_Base.php +8 -4
  61. vendor/CMB2/includes/types/CMB2_Type_File_List.php +9 -6
  62. vendor/CMB2/includes/types/CMB2_Type_Multi_Base.php +17 -14
  63. vendor/CMB2/includes/types/CMB2_Type_Multicheck.php +3 -3
  64. vendor/CMB2/includes/types/CMB2_Type_Oembed.php +7 -5
  65. vendor/CMB2/includes/types/CMB2_Type_Picker_Base.php +5 -4
  66. vendor/CMB2/includes/types/CMB2_Type_Radio.php +3 -3
  67. vendor/CMB2/includes/types/CMB2_Type_Select.php +2 -2
  68. vendor/CMB2/includes/types/CMB2_Type_Select_Timezone.php +2 -2
  69. vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Base.php +73 -3
  70. vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Multicheck.php +57 -35
  71. vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Multicheck_Hierarchical.php +46 -0
  72. vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Radio.php +74 -63
  73. vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Radio_Hierarchical.php +45 -0
  74. vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Select.php +27 -16
  75. vendor/CMB2/includes/types/CMB2_Type_Text.php +4 -3
  76. vendor/CMB2/includes/types/CMB2_Type_Text_Date.php +3 -3
  77. vendor/CMB2/includes/types/CMB2_Type_Text_Datetime_Timestamp.php +3 -3
  78. vendor/CMB2/includes/types/CMB2_Type_Text_Datetime_Timestamp_Timezone.php +3 -3
  79. vendor/CMB2/includes/types/CMB2_Type_Text_Time.php +3 -3
  80. vendor/CMB2/includes/types/CMB2_Type_Textarea.php +4 -3
  81. vendor/CMB2/includes/types/CMB2_Type_Textarea_Code.php +5 -4
  82. vendor/CMB2/includes/types/CMB2_Type_Title.php +3 -2
  83. vendor/CMB2/includes/types/CMB2_Type_Wysiwyg.php +5 -5
  84. vendor/CMB2/index.php +1 -2
  85. vendor/CMB2/init.php +41 -33
  86. vendor/CMB2/js/cmb2-wysiwyg.js +14 -3
  87. vendor/CMB2/js/cmb2.js +123 -95
  88. vendor/CMB2/js/cmb2.min.js +1 -1
  89. vendor/CMB2/js/index.php +1 -1
  90. vendor/CMB2/js/wp-color-picker-alpha.js +496 -0
  91. vendor/CMB2/js/wp-color-picker-alpha.min.js +11 -0
  92. vendor/CMB2/languages/cmb2-ach.po +1 -1
  93. vendor/CMB2/languages/cmb2-af.po +1 -1
  94. vendor/CMB2/languages/cmb2-an.po +1 -1
  95. vendor/CMB2/languages/cmb2-ar.po +2 -2
  96. vendor/CMB2/languages/cmb2-ary.po +2 -2
  97. vendor/CMB2/languages/cmb2-as.po +1 -1
  98. vendor/CMB2/languages/cmb2-az.po +1 -1
  99. vendor/CMB2/languages/cmb2-be.po +1 -1
  100. vendor/CMB2/languages/cmb2-bg.po +1 -1
  101. vendor/CMB2/languages/cmb2-bg_BG.po +1 -1
  102. vendor/CMB2/languages/cmb2-bn_BD.po +1 -1
  103. vendor/CMB2/languages/cmb2-br.po +1 -1
  104. vendor/CMB2/languages/cmb2-bs.po +1 -1
  105. vendor/CMB2/languages/cmb2-bs_BA.po +1 -1
  106. vendor/CMB2/languages/cmb2-ca.mo +0 -0
  107. vendor/CMB2/languages/cmb2-ca.po +4 -4
  108. vendor/CMB2/languages/cmb2-co.po +1 -1
  109. vendor/CMB2/languages/cmb2-cs_CZ.po +1 -1
  110. vendor/CMB2/languages/cmb2-cy.po +1 -1
  111. vendor/CMB2/languages/cmb2-da_DK.po +1 -1
  112. vendor/CMB2/languages/cmb2-de_AT.po +1 -1
  113. vendor/CMB2/languages/cmb2-de_CH.po +2 -2
  114. vendor/CMB2/languages/cmb2-de_DE.po +2 -2
  115. vendor/CMB2/languages/cmb2-dv.po +1 -1
  116. vendor/CMB2/languages/cmb2-el.po +1 -1
  117. vendor/CMB2/languages/cmb2-en@pirate.po +1 -1
  118. vendor/CMB2/languages/cmb2-en_AU.po +1 -1
  119. vendor/CMB2/languages/cmb2-en_CA.po +1 -1
  120. vendor/CMB2/languages/cmb2-en_GB.po +1 -1
  121. vendor/CMB2/languages/cmb2-eo.po +1 -1
  122. vendor/CMB2/languages/cmb2-es_AR.po +1 -1
  123. vendor/CMB2/languages/cmb2-es_CL.po +1 -1
  124. vendor/CMB2/languages/cmb2-es_CO.po +1 -1
  125. vendor/CMB2/languages/cmb2-es_ES.po +2 -2
  126. vendor/CMB2/languages/cmb2-es_MX.po +1 -1
  127. vendor/CMB2/languages/cmb2-es_PE.po +1 -1
  128. vendor/CMB2/languages/cmb2-es_VE.po +1 -1
  129. vendor/CMB2/languages/cmb2-et.po +1 -1
  130. vendor/CMB2/languages/cmb2-eu.po +1 -1
  131. vendor/CMB2/languages/cmb2-fa.po +1 -1
  132. vendor/CMB2/languages/cmb2-fa_IR.mo +0 -0
  133. vendor/CMB2/languages/cmb2-fa_IR.po +110 -101
  134. vendor/CMB2/languages/cmb2-fi.po +2 -2
  135. vendor/CMB2/languages/cmb2-fo.po +1 -1
  136. vendor/CMB2/languages/cmb2-fr_BE.po +1 -1
  137. vendor/CMB2/languages/cmb2-fr_CA.po +1 -1
  138. vendor/CMB2/languages/cmb2-fr_FR.po +2 -2
  139. vendor/CMB2/languages/cmb2-fy.po +1 -1
  140. vendor/CMB2/languages/cmb2-ga.po +1 -1
  141. vendor/CMB2/languages/cmb2-gd.po +1 -1
  142. vendor/CMB2/languages/cmb2-gl_ES.po +1 -1
  143. vendor/CMB2/languages/cmb2-gu_IN.po +1 -1
  144. vendor/CMB2/languages/cmb2-he_IL.po +1 -1
  145. vendor/CMB2/languages/cmb2-hi_IN.po +1 -1
  146. vendor/CMB2/languages/cmb2-hr.po +1 -1
  147. vendor/CMB2/languages/cmb2-hu_HU.po +1 -1
  148. vendor/CMB2/languages/cmb2-hy.po +1 -1
  149. vendor/CMB2/languages/cmb2-id_ID.po +2 -2
  150. vendor/CMB2/languages/cmb2-is_IS.po +1 -1
  151. vendor/CMB2/languages/cmb2-it_IT.mo +0 -0
  152. vendor/CMB2/languages/cmb2-it_IT.po +206 -164
  153. vendor/CMB2/languages/cmb2-ja.po +1 -1
  154. vendor/CMB2/languages/cmb2-jv.po +1 -1
  155. vendor/CMB2/languages/cmb2-ka.po +1 -1
  156. vendor/CMB2/languages/cmb2-ka_GE.po +1 -1
  157. vendor/CMB2/languages/cmb2-kk.po +1 -1
  158. vendor/CMB2/languages/cmb2-km.po +1 -1
  159. vendor/CMB2/languages/cmb2-kn.po +1 -1
  160. vendor/CMB2/languages/cmb2-ko_KR.po +1 -1
  161. vendor/CMB2/languages/cmb2-ku.po +1 -1
  162. vendor/CMB2/languages/cmb2-ky.po +1 -1
  163. vendor/CMB2/languages/cmb2-lo.po +1 -1
  164. vendor/CMB2/languages/cmb2-lt_LT.po +2 -2
  165. vendor/CMB2/languages/cmb2-lv.po +1 -1
  166. vendor/CMB2/languages/cmb2-mg.po +1 -1
  167. vendor/CMB2/languages/cmb2-mk_MK.po +1 -1
  168. vendor/CMB2/languages/cmb2-mn.po +1 -1
  169. vendor/CMB2/languages/cmb2-mr.po +1 -1
  170. vendor/CMB2/languages/cmb2-ms_MY.po +2 -2
  171. vendor/CMB2/languages/cmb2-my_MM.po +1 -1
  172. vendor/CMB2/languages/cmb2-nb_NO.po +1 -1
  173. vendor/CMB2/languages/cmb2-ne_NP.po +1 -1
  174. vendor/CMB2/languages/cmb2-nl_BE.po +1 -1
  175. vendor/CMB2/languages/cmb2-nl_NL.po +1 -1
  176. vendor/CMB2/languages/cmb2-nn_NO.po +1 -1
  177. vendor/CMB2/languages/cmb2-oc.po +1 -1
  178. vendor/CMB2/languages/cmb2-os.po +1 -1
  179. vendor/CMB2/languages/cmb2-pap.po +1 -1
  180. vendor/CMB2/languages/cmb2-pl_PL.po +1 -1
  181. vendor/CMB2/languages/cmb2-ps.po +1 -1
  182. vendor/CMB2/languages/cmb2-pt_BR.po +2 -2
  183. vendor/CMB2/languages/cmb2-pt_PT.mo.orig +0 -0
  184. vendor/CMB2/languages/cmb2-pt_PT.po +2 -2
  185. vendor/CMB2/languages/cmb2-ro_RO.po +1 -1
  186. vendor/CMB2/languages/cmb2-ru_RU.po +2 -2
  187. vendor/CMB2/languages/cmb2-sa.po +1 -1
  188. vendor/CMB2/languages/cmb2-sah.po +1 -1
  189. vendor/CMB2/languages/cmb2-si_LK.po +1 -1
  190. vendor/CMB2/languages/cmb2-sk_SK.po +1 -1
  191. vendor/CMB2/languages/cmb2-sl_SI.po +1 -1
  192. vendor/CMB2/languages/cmb2-so.po +1 -1
  193. vendor/CMB2/languages/cmb2-sq.po +1 -1
  194. vendor/CMB2/languages/cmb2-sr_RS.po +1 -1
  195. vendor/CMB2/languages/cmb2-su.po +1 -1
  196. vendor/CMB2/languages/cmb2-sv_SE.po +2 -2
  197. vendor/CMB2/languages/cmb2-sw.po +1 -1
  198. vendor/CMB2/languages/cmb2-ta_IN.po +1 -1
  199. vendor/CMB2/languages/cmb2-ta_LK.po +1 -1
  200. vendor/CMB2/languages/cmb2-te.po +1 -1
  201. vendor/CMB2/languages/cmb2-tg.po +1 -1
  202. vendor/CMB2/languages/cmb2-th.po +1 -1
  203. vendor/CMB2/languages/cmb2-tk_TM.po +1 -1
  204. vendor/CMB2/languages/cmb2-tl.po +1 -1
  205. vendor/CMB2/languages/cmb2-tr_TR.po +1 -1
  206. vendor/CMB2/languages/cmb2-tzm.po +1 -1
  207. vendor/CMB2/languages/cmb2-ug.po +1 -1
  208. vendor/CMB2/languages/cmb2-uk.po +1 -1
  209. vendor/CMB2/languages/cmb2-ur.po +1 -1
  210. vendor/CMB2/languages/cmb2-ur_PK.po +1 -1
  211. vendor/CMB2/languages/cmb2-uz.po +1 -1
  212. vendor/CMB2/languages/cmb2-vi.po +1 -1
  213. vendor/CMB2/languages/cmb2-zh_CN.po +1 -1
  214. vendor/CMB2/languages/cmb2-zh_HK.po +1 -1
  215. vendor/CMB2/languages/cmb2-zh_TW.po +1 -1
  216. vendor/CMB2/languages/cmb2.pot +203 -181
  217. vendor/autoload.php +7 -0
  218. vendor/composer/ClassLoader.php +413 -0
  219. vendor/composer/LICENSE +21 -0
  220. vendor/composer/autoload_classmap.php +9 -0
  221. vendor/composer/autoload_namespaces.php +9 -0
  222. vendor/composer/autoload_psr4.php +11 -0
  223. vendor/composer/autoload_real.php +45 -0
  224. vendor/composer/installed.json +131 -0
  225. vendor/constantcontact/guzzlehttp/guzzle/Makefile +0 -50
  226. vendor/constantcontact/guzzlehttp/guzzle/phpunit.xml.dist +0 -17
  227. vendor/constantcontact/guzzlehttp/guzzle/src/BatchResults.php +0 -0
  228. vendor/constantcontact/guzzlehttp/guzzle/src/Client.php +7 -0
  229. vendor/constantcontact/guzzlehttp/guzzle/src/ClientInterface.php +0 -0
  230. vendor/constantcontact/guzzlehttp/guzzle/src/Collection.php +0 -0
  231. vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/CookieJar.php +0 -0
  232. vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php +0 -0
  233. vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php +0 -0
  234. vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php +0 -0
  235. vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/SetCookie.php +0 -0
  236. vendor/constantcontact/guzzlehttp/guzzle/src/Event/AbstractEvent.php +0 -0
  237. vendor/constantcontact/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php +0 -0
  238. vendor/constantcontact/guzzlehttp/guzzle/src/Event/AbstractRetryableEvent.php +0 -0
  239. vendor/constantcontact/guzzlehttp/guzzle/src/Event/AbstractTransferEvent.php +0 -0
  240. vendor/constantcontact/guzzlehttp/guzzle/src/Event/BeforeEvent.php +0 -0
  241. vendor/constantcontact/guzzlehttp/guzzle/src/Event/CompleteEvent.php +0 -0
  242. vendor/constantcontact/guzzlehttp/guzzle/src/Event/Emitter.php +0 -0
  243. vendor/constantcontact/guzzlehttp/guzzle/src/Event/EmitterInterface.php +0 -0
  244. vendor/constantcontact/guzzlehttp/guzzle/src/Event/EndEvent.php +0 -0
  245. vendor/constantcontact/guzzlehttp/guzzle/src/Event/ErrorEvent.php +0 -0
  246. vendor/constantcontact/guzzlehttp/guzzle/src/Event/EventInterface.php +0 -0
  247. vendor/constantcontact/guzzlehttp/guzzle/src/Event/HasEmitterInterface.php +0 -0
  248. vendor/constantcontact/guzzlehttp/guzzle/src/Event/HasEmitterTrait.php +0 -0
  249. vendor/constantcontact/guzzlehttp/guzzle/src/Event/ListenerAttacherTrait.php +0 -0
  250. vendor/constantcontact/guzzlehttp/guzzle/src/Event/ProgressEvent.php +0 -0
  251. vendor/constantcontact/guzzlehttp/guzzle/src/Event/RequestEvents.php +0 -0
  252. vendor/constantcontact/guzzlehttp/guzzle/src/Event/SubscriberInterface.php +0 -0
  253. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/BadResponseException.php +0 -0
  254. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/ClientException.php +0 -0
  255. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/ConnectException.php +0 -0
  256. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/CouldNotRewindStreamException.php +0 -0
  257. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/ParseException.php +0 -0
  258. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/RequestException.php +0 -0
  259. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/ServerException.php +0 -0
  260. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/StateException.php +0 -0
  261. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php +0 -0
  262. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/TransferException.php +0 -0
  263. vendor/constantcontact/guzzlehttp/guzzle/src/Exception/XmlParseException.php +0 -0
  264. vendor/constantcontact/guzzlehttp/guzzle/src/HasDataTrait.php +0 -0
  265. vendor/constantcontact/guzzlehttp/guzzle/src/Message/AbstractMessage.php +0 -0
  266. vendor/constantcontact/guzzlehttp/guzzle/src/Message/AppliesHeadersInterface.php +0 -0
  267. vendor/constantcontact/guzzlehttp/guzzle/src/Message/FutureResponse.php +0 -0
  268. vendor/constantcontact/guzzlehttp/guzzle/src/Message/MessageFactory.php +0 -0
  269. vendor/constantcontact/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php +0 -0
  270. vendor/constantcontact/guzzlehttp/guzzle/src/Message/MessageInterface.php +0 -0
  271. vendor/constantcontact/guzzlehttp/guzzle/src/Message/MessageParser.php +0 -0
  272. vendor/constantcontact/guzzlehttp/guzzle/src/Message/Request.php +0 -0
  273. vendor/constantcontact/guzzlehttp/guzzle/src/Message/RequestInterface.php +0 -0
  274. vendor/constantcontact/guzzlehttp/guzzle/src/Message/Response.php +0 -0
  275. vendor/constantcontact/guzzlehttp/guzzle/src/Message/ResponseInterface.php +0 -0
  276. vendor/constantcontact/guzzlehttp/guzzle/src/Mimetypes.php +0 -0
  277. vendor/constantcontact/guzzlehttp/guzzle/src/Pool.php +0 -0
  278. vendor/constantcontact/guzzlehttp/guzzle/src/Post/MultipartBody.php +0 -0
  279. vendor/constantcontact/guzzlehttp/guzzle/src/Post/PostBody.php +0 -0
  280. vendor/constantcontact/guzzlehttp/guzzle/src/Post/PostBodyInterface.php +0 -0
  281. vendor/constantcontact/guzzlehttp/guzzle/src/Post/PostFile.php +0 -0
  282. vendor/constantcontact/guzzlehttp/guzzle/src/Post/PostFileInterface.php +0 -0
  283. vendor/constantcontact/guzzlehttp/guzzle/src/Query.php +0 -0
  284. vendor/constantcontact/guzzlehttp/guzzle/src/QueryParser.php +0 -0
  285. vendor/constantcontact/guzzlehttp/guzzle/src/RequestFsm.php +0 -0
  286. vendor/constantcontact/guzzlehttp/guzzle/src/RingBridge.php +0 -0
  287. vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/Cookie.php +0 -0
  288. vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/History.php +0 -0
  289. vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/HttpError.php +0 -0
  290. vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/Mock.php +0 -0
  291. vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/Prepare.php +0 -0
  292. vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/Redirect.php +0 -0
  293. vendor/constantcontact/guzzlehttp/guzzle/src/ToArrayInterface.php +0 -0
  294. vendor/constantcontact/guzzlehttp/guzzle/src/Transaction.php +0 -0
  295. vendor/constantcontact/guzzlehttp/guzzle/src/UriTemplate.php +0 -0
  296. vendor/constantcontact/guzzlehttp/guzzle/src/Url.php +0 -0
  297. vendor/constantcontact/guzzlehttp/guzzle/src/Utils.php +4 -0
  298. vendor/monolog/monolog/.php_cs +59 -0
  299. vendor/monolog/monolog/CHANGELOG.mdown +317 -0
  300. vendor/monolog/monolog/LICENSE +19 -0
  301. vendor/monolog/monolog/README.mdown +95 -0
  302. vendor/monolog/monolog/composer.json +66 -0
  303. vendor/monolog/monolog/composer.lock +1850 -0
  304. vendor/monolog/monolog/doc/01-usage.md +54 -0
assets/css/admin-pages.css CHANGED
@@ -337,3 +337,15 @@
337
  #cmb2-metabox-ctct_option_metabox_settings .regular-text {
338
  width: 500px;
339
  }
 
 
 
 
 
 
 
 
 
 
 
 
337
  #cmb2-metabox-ctct_option_metabox_settings .regular-text {
338
  width: 500px;
339
  }
340
+
341
+ .cmb2-options-page #ctct_option_metabox_settings .cmb2-metabox > .cmb-row {
342
+ background: transparent;
343
+ border: none;
344
+ box-shadow: none;
345
+ }
346
+
347
+ .ctct-body #ctct_error_logs {
348
+ height: 400px;
349
+ resize: vertical;
350
+ width: 100%;
351
+ }
assets/js/ctct-plugin-admin.js CHANGED
@@ -419,6 +419,7 @@ window.CTCTModal = {};
419
  modalClose: $( '.ctct-modal-close' ),
420
  textareaModal: $( '#ctct-custom-textarea-modal' ),
421
  textareaLink: $( '#ctct-open-textarea-info' ),
 
422
  };
423
  };
424
 
@@ -442,6 +443,28 @@ window.CTCTModal = {};
442
  app.$c.textareaLink.on('click', function(){
443
  app.$c.textareaModal.addClass( 'ctct-modal-open' );
444
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
445
  };
446
 
447
  // Engage
@@ -464,16 +487,16 @@ window.CTCTNewsletter = {};
464
  // Connect page.
465
  $('.ctct-body #subscribe').on('submit', function (event) {
466
  event.preventDefault();
467
- console.log('connect');
468
  var $ctctNewsWrapper = $("#subscribe .ctct-call-to-action"),
469
  ctctNewsForm = $(".ctct-body #subscribe")[0];
470
 
471
  var ctctEmailField = $(".ctct-call-to-action input[type='text']")[0],
472
- aprimoEndpoint = event.target.action;
473
 
474
  if (ctctEmailField.validity.valid === true) {
475
  $("<iframe>", {
476
- "src" : aprimoEndpoint + "?" + $(ctctNewsForm).serialize(),
477
  "height": 0,
478
  "width" : 0,
479
  "style" : "display: none;"
@@ -494,11 +517,11 @@ console.log('connect');
494
  ctctNewsForm = $(".ctct-section #subscribe")[0];
495
 
496
  var ctctEmailField = $(".ctct-section #subscribe input[type='text']")[0],
497
- aprimoEndpoint = event.target.action;
498
 
499
  if (ctctEmailField.validity.valid === true) {
500
  $("<iframe>", {
501
- "src" : aprimoEndpoint + "?" + $(ctctNewsForm).serialize(),
502
  "height": 0,
503
  "width" : 0,
504
  "style" : "display: none;"
419
  modalClose: $( '.ctct-modal-close' ),
420
  textareaModal: $( '#ctct-custom-textarea-modal' ),
421
  textareaLink: $( '#ctct-open-textarea-info' ),
422
+ deleteLogLink: $( '#deletelog' )
423
  };
424
  };
425
 
443
  app.$c.textareaLink.on('click', function(){
444
  app.$c.textareaModal.addClass( 'ctct-modal-open' );
445
  });
446
+ app.$c.deleteLogLink.on( 'click', function( event ) {
447
+ event.preventDefault();
448
+
449
+ // Get the link that was clicked on so we can redirect to it if the user confirms.
450
+ var delete_log_link = jQuery( this ).attr( 'href' );
451
+
452
+ jQuery( "#confirmdelete" ).dialog({
453
+ resizable: false,
454
+ height : "auto",
455
+ width : 400,
456
+ modal : true,
457
+ buttons : {
458
+ "Yes": function () {
459
+ // If the user confirms the action, redirect them to the deletion page.
460
+ window.location.replace( delete_log_link );
461
+ },
462
+ Cancel: function () {
463
+ jQuery( this ).dialog( "close" );
464
+ }
465
+ }
466
+ });
467
+ } );
468
  };
469
 
470
  // Engage
487
  // Connect page.
488
  $('.ctct-body #subscribe').on('submit', function (event) {
489
  event.preventDefault();
490
+
491
  var $ctctNewsWrapper = $("#subscribe .ctct-call-to-action"),
492
  ctctNewsForm = $(".ctct-body #subscribe")[0];
493
 
494
  var ctctEmailField = $(".ctct-call-to-action input[type='text']")[0],
495
+ subscribeEndpoint = event.target.action;
496
 
497
  if (ctctEmailField.validity.valid === true) {
498
  $("<iframe>", {
499
+ "src" : subscribeEndpoint + "?" + $(ctctNewsForm).serialize(),
500
  "height": 0,
501
  "width" : 0,
502
  "style" : "display: none;"
517
  ctctNewsForm = $(".ctct-section #subscribe")[0];
518
 
519
  var ctctEmailField = $(".ctct-section #subscribe input[type='text']")[0],
520
+ subscribeEndpoint = event.target.action;
521
 
522
  if (ctctEmailField.validity.valid === true) {
523
  $("<iframe>", {
524
+ "src" : subscribeEndpoint + "?" + $(ctctNewsForm).serialize(),
525
  "height": 0,
526
  "width" : 0,
527
  "style" : "display: none;"
assets/js/ctct-plugin-admin.min.js CHANGED
@@ -1 +1 @@
1
- window.CTCTAJAX={},function(t,c,e){e.init=function(){e.handleOptinAJAX(),e.handleReviewAJAX()},e.handleOptinAJAX=function(){c("#ctct_admin_notice_tracking_optin").on("click",function(e){var n={action:"constant_contact_optin_ajax_handler",optin:c(this).is(":checked")?"on":"off"};c.ajax({url:ajaxurl,data:n,dataType:"json",success:function(t){},error:function(c,e,n){t.console&&console.log([e,n])}}),c("#ctct-privacy-modal").toggleClass("ctct-modal-open")}),c("#ctct-connect-ga-optin a").on("click",function(e){var n={action:"constant_contact_optin_ajax_handler",optin:c(this).attr("data-allow")};c.ajax({url:ajaxurl,data:n,dataType:"json",success:function(t){c(".ctct-connected-opt-in").hide()},error:function(c,e,n){t.console&&console.log([e,n])}})}),c("#_ctct_data_tracking").on("click",function(t){c("#ctct-privacy-modal").toggleClass("ctct-modal-open")}),c(".ctct-modal-close").on("click",function(t){c("#_ctct_data_tracking").is(":checked")&&c("#_ctct_data_tracking").attr("checked",!1)}),c("#ctct-modal-footer-privacy a").on("click",function(e){var n={action:"constant_contact_privacy_ajax_handler",privacy_agree:c(this).attr("data-agree")};c.ajax({url:ajaxurl,data:n,dataType:"json",success:function(t){c("#ctct-privacy-modal").toggleClass("ctct-modal-open"),"false"===n.privacy_agree&&c("#_ctct_data_tracking").is(":checked")&&c("#_ctct_data_tracking").attr("checked",!1)},error:function(c,e,n){t.console&&console.log([e,n])}})})},e.handleReviewAJAX=function(){c("#ctct-admin-notice-review_request").on("click","a",function(e){var n="dismissed";c(this).hasClass("ctct-review")&&(n="reviewed");var i={action:"constant_contact_review_ajax_handler","ctct-review-action":n};c.ajax({url:ajaxurl,data:i,dataType:"json",success:function(n){t.console&&console.log(n),e.preventDefault(),c("#ctct-admin-notice-review_request").hide()},error:function(c,e,n){t.console&&console.log([e,n])}})})},c(e.init)}(window,jQuery,window.CTCTAJAX),window.CTCTBuilder={},function(t,c,e){e.init=function(){c("#cmb2-metabox-ctct_2_fields_metabox option[value='email']:selected").length&&c("#ctct-no-email-error").remove(),e.cache(),e.bindEvents(),e.selectBinds(),e.modifyFields(),c("#ctct_0_description_metabox h2.hndle").removeClass("ui-sortable-handle, hndle"),c("head").append('<style> #cmb2-metabox-ctct_2_fields_metabox a.move-up::after { content: "'+ctct_texts.move_up+'" } #cmb2-metabox-ctct_2_fields_metabox a.move-down::after { content: "'+ctct_texts.move_down+'" }</style>')},e.cache=function(){e.$c={window:c(t),body:c("body")},e.isLeaveWarningBound=!1},e.bindLeaveWarning=function(){e.isLeaveWarningBound||(c(t).bind("beforeunload",function(){return ctct_texts.leavewarning}),e.isLeaveWarningBound=!0)},e.unbindLeaveWarning=function(){c(t).unbind("beforeunload")},e.bindEvents=function(){c("#post").submit(function(){c(".ctct-email-disabled").removeClass("disabled").prop("disabled",!1),e.unbindLeaveWarning()}),c(".cmb2-wrap input, .cmb2-wrap textarea").on("input",function(){"undefined"!=typeof tinyMCE&&e.bindLeaveWarning()}),c(document).on("cmb2_shift_rows_complete",function(){e.modifyFields(),e.bindLeaveWarning(),e.removeDuplicateMappings()}),c(document).on("cmb2_add_row",function(t){c("#custom_fields_group_repeat .postbox").last().find(".map select").val("none"),e.modifyFields(),e.selectBinds(),e.removeDuplicateMappings()}),e.removeDuplicateMappings()},e.selectBinds=function(){c("#cmb2-metabox-ctct_2_fields_metabox .cmb2_select").change(function(){e.modifyFields(),e.removeDuplicateMappings(),e.bindLeaveWarning()})},e.modifyFields=function(){var e=!1;c("#cmb2-metabox-ctct_2_fields_metabox #custom_fields_group_repeat .cmb-repeatable-grouping").each(function(n,i){var o=c(this).find(".cmb-field-list"),a=c(o).find(".cmb-remove-group-row"),l=c(o).find(".required input[type=checkbox]"),s=l.closest(".cmb-row"),d=c(o).find(".map select option:selected"),r=d.text(),u=c(this).find("h3"),_=c(this).find("input[name*='_ctct_field_label']"),p=c(this).find("input[name*='_ctct_field_desc']");if(u.text(r),0===_.val().length?_.val(r).addClass("ctct-label-filled"):_.addClass("ctct-label-filled"),e||"email"!==c(d).val()?(c(i).find("select").removeClass("disabled ctct-email-disabled").prop("disabled",!1),s.show(),a.show()):(e=!0,l.prop("checked",!0),c(i).find("select").addClass("disabled ctct-email-disabled").prop("disabled",!0),s.hide(),a.hide()),t.ctct_admin_placeholders){var m=t.ctct_admin_placeholders[c(i).find("select").val()];m&&m.length&&p.length?p.attr("placeholder","Example: "+m):t.ctct_admin_placeholders["default"]&&p.attr("placeholder",t.ctct_admin_placeholders["default"])}})},e.removeDuplicateMappings=function(){var t=[],e="#cmb2-metabox-ctct_2_fields_metabox #custom_fields_group_repeat .cmb-repeatable-grouping select",n=c(e);n.each(function(e,n){t.push(c(n).val())}),n.children().show(),t.forEach(function(t){"custom_text_area"!=t&&"custom"!=t&&c(e+" option[value="+t+"]:not( :selected )").hide()})},c(e.init)}(window,jQuery,window.CTCTBuilder),window.CTCTForms={},function(t,c,e){e.init=function(){e.cache(),e.bindEvents()},e.cache=function(){e.$c={window:c(t),body:c("body"),disconnect:".ctct-disconnect"}},e.bindEvents=function(){c(e.$c.disconnect).on("click",function(t){confirm(ctct_texts.disconnectconfirm)})},c(e.init)}(window,jQuery,window.CTCTForms),window.CTCTModal={},function(t,c,e){e.init=function(){e.cache(),e.bindEvents()},e.cache=function(){e.$c={window:c(t),modalSelector:c(".ctct-modal"),modalClose:c(".ctct-modal-close"),textareaModal:c("#ctct-custom-textarea-modal"),textareaLink:c("#ctct-open-textarea-info")}},e.bindEvents=function(){e.$c.modalClose.click(function(){e.$c.modalSelector.removeClass("ctct-modal-open"),e.$c.modalSelector.hasClass("ctct-custom-textarea-modal")||jQuery.ajax({type:"post",dataType:"json",url:ajaxurl,data:{action:"ctct_dismiss_first_modal",ctct_is_dismissed:"true"}})}),e.$c.textareaLink.on("click",function(){e.$c.textareaModal.addClass("ctct-modal-open")})},c(e.init)}(window,jQuery,window.CTCTModal),window.CTCTNewsletter={},function(t,c,e){e.init=function(){e.submitNewsletter()},c(e.init),e.submitNewsletter=function(){c(".ctct-body #subscribe").on("submit",function(t){t.preventDefault(),console.log("connect");var e=c("#subscribe .ctct-call-to-action"),n=c(".ctct-body #subscribe")[0],i=c(".ctct-call-to-action input[type='text']")[0],o=t.target.action;i.validity.valid===!0?(c("<iframe>",{src:o+"?"+c(n).serialize(),height:0,width:0,style:"display: none;"}).appendTo(e),c("#subbutton").val("Thanks for signing up").css({"background-color":"rgb(1, 128, 0)",color:"rgb(255,255,255)"}),c("#subscribe .ctct-call-to-action-text").css({width:"70%"})):c("#subbutton").val("Error occurred")}),c(".ctct-section #subscribe").on("submit",function(t){t.preventDefault();var e=c(".section-marketing-tips"),n=c(".ctct-section #subscribe")[0],i=c(".ctct-section #subscribe input[type='text']")[0],o=t.target.action;i.validity.valid===!0?(c("<iframe>",{src:o+"?"+c(n).serialize(),height:0,width:0,style:"display: none;"}).appendTo(e),c("#subbutton").val("Thanks for signing up").css({"background-color":"rgb(1, 128, 0)"})):c("#subbutton").val("Error occurred")})}}(window,jQuery,window.CTCTNewsletter),window.CTCT_OptIns={},function(t,c,e){e.init=function(){e.cache(),e.bindEvents()},e.cache=function(){e.$c={optin_no_conn:c("#cmb2-metabox-ctct_1_optin_metabox #_ctct_opt_in_not_connected"),list:c("#cmb2-metabox-ctct_0_list_metabox #_ctct_list"),title:c("#cmb2-metabox-ctct_1_optin_metabox .cmb2-id-email-optin-title"),optin:c("#cmb2-metabox-ctct_1_optin_metabox .cmb2-id--ctct-opt-in"),instruct:c("#cmb2-metabox-ctct_1_optin_metabox .cmb2-id--ctct-opt-in-instructions")}},e.bindEvents=function(){e.$c.optin_no_conn.length&&(e.toggleNoConnectionFields(),e.$c.optin_no_conn.change(function(){e.toggleNoConnectionFields()})),e.$c.list.length&&(e.toggleConnectionFields(),e.$c.list.change(function(){e.toggleConnectionFields()}))},e.toggleNoConnectionFields=function(){e.$c.optin_no_conn.prop("checked")?e.$c.instruct.slideDown():e.$c.instruct.slideUp()},e.toggleConnectionFields=function(){""!=e.$c.list.val()?(e.$c.title.slideDown(),e.$c.optin.slideDown(),e.$c.instruct.slideDown()):(e.$c.title.slideUp(),e.$c.optin.slideUp(),e.$c.instruct.slideUp())},c(e.init)}(window,jQuery,window.CTCT_OptIns);
1
+ window.CTCTAJAX={},function(t,e,n){n.init=function(){n.handleOptinAJAX(),n.handleReviewAJAX()},n.handleOptinAJAX=function(){e("#ctct_admin_notice_tracking_optin").on("click",function(n){var c={action:"constant_contact_optin_ajax_handler",optin:e(this).is(":checked")?"on":"off"};e.ajax({url:ajaxurl,data:c,dataType:"json",success:function(t){},error:function(e,n,c){t.console&&console.log([n,c])}}),e("#ctct-privacy-modal").toggleClass("ctct-modal-open")}),e("#ctct-connect-ga-optin a").on("click",function(n){var c={action:"constant_contact_optin_ajax_handler",optin:e(this).attr("data-allow")};e.ajax({url:ajaxurl,data:c,dataType:"json",success:function(t){e(".ctct-connected-opt-in").hide()},error:function(e,n,c){t.console&&console.log([n,c])}})}),e("#_ctct_data_tracking").on("click",function(t){e("#ctct-privacy-modal").toggleClass("ctct-modal-open")}),e(".ctct-modal-close").on("click",function(t){e("#_ctct_data_tracking").is(":checked")&&e("#_ctct_data_tracking").attr("checked",!1)}),e("#ctct-modal-footer-privacy a").on("click",function(n){var c={action:"constant_contact_privacy_ajax_handler",privacy_agree:e(this).attr("data-agree")};e.ajax({url:ajaxurl,data:c,dataType:"json",success:function(t){e("#ctct-privacy-modal").toggleClass("ctct-modal-open"),"false"===c.privacy_agree&&e("#_ctct_data_tracking").is(":checked")&&e("#_ctct_data_tracking").attr("checked",!1)},error:function(e,n,c){t.console&&console.log([n,c])}})})},n.handleReviewAJAX=function(){e("#ctct-admin-notice-review_request").on("click","a",function(n){var c="dismissed";e(this).hasClass("ctct-review")&&(c="reviewed");var i={action:"constant_contact_review_ajax_handler","ctct-review-action":c};e.ajax({url:ajaxurl,data:i,dataType:"json",success:function(c){t.console&&console.log(c),n.preventDefault(),e("#ctct-admin-notice-review_request").hide()},error:function(e,n,c){t.console&&console.log([n,c])}})})},e(n.init)}(window,jQuery,window.CTCTAJAX),window.CTCTBuilder={},function(t,e,n){n.init=function(){e("#cmb2-metabox-ctct_2_fields_metabox option[value='email']:selected").length&&e("#ctct-no-email-error").remove(),n.cache(),n.bindEvents(),n.selectBinds(),n.modifyFields(),e("#ctct_0_description_metabox h2.hndle").removeClass("ui-sortable-handle, hndle"),e("head").append('<style> #cmb2-metabox-ctct_2_fields_metabox a.move-up::after { content: "'+ctct_texts.move_up+'" } #cmb2-metabox-ctct_2_fields_metabox a.move-down::after { content: "'+ctct_texts.move_down+'" }</style>')},n.cache=function(){n.$c={window:e(t),body:e("body")},n.isLeaveWarningBound=!1},n.bindLeaveWarning=function(){n.isLeaveWarningBound||(e(t).bind("beforeunload",function(){return ctct_texts.leavewarning}),n.isLeaveWarningBound=!0)},n.unbindLeaveWarning=function(){e(t).unbind("beforeunload")},n.bindEvents=function(){e("#post").submit(function(){e(".ctct-email-disabled").removeClass("disabled").prop("disabled",!1),n.unbindLeaveWarning()}),e(".cmb2-wrap input, .cmb2-wrap textarea").on("input",function(){"undefined"!=typeof tinyMCE&&n.bindLeaveWarning()}),e(document).on("cmb2_shift_rows_complete",function(){n.modifyFields(),n.bindLeaveWarning(),n.removeDuplicateMappings()}),e(document).on("cmb2_add_row",function(t){e("#custom_fields_group_repeat .postbox").last().find(".map select").val("none"),n.modifyFields(),n.selectBinds(),n.removeDuplicateMappings()}),n.removeDuplicateMappings()},n.selectBinds=function(){e("#cmb2-metabox-ctct_2_fields_metabox .cmb2_select").change(function(){n.modifyFields(),n.removeDuplicateMappings(),n.bindLeaveWarning()})},n.modifyFields=function(){var n=!1;e("#cmb2-metabox-ctct_2_fields_metabox #custom_fields_group_repeat .cmb-repeatable-grouping").each(function(c,i){var o=e(this).find(".cmb-field-list"),a=e(o).find(".cmb-remove-group-row"),l=e(o).find(".required input[type=checkbox]"),s=l.closest(".cmb-row"),d=e(o).find(".map select option:selected"),r=d.text(),u=e(this).find("h3"),p=e(this).find("input[name*='_ctct_field_label']"),_=e(this).find("input[name*='_ctct_field_desc']");if(u.text(r),0===p.val().length?p.val(r).addClass("ctct-label-filled"):p.addClass("ctct-label-filled"),n||"email"!==e(d).val()?(e(i).find("select").removeClass("disabled ctct-email-disabled").prop("disabled",!1),s.show(),a.show()):(n=!0,l.prop("checked",!0),e(i).find("select").addClass("disabled ctct-email-disabled").prop("disabled",!0),s.hide(),a.hide()),t.ctct_admin_placeholders){var m=t.ctct_admin_placeholders[e(i).find("select").val()];m&&m.length&&_.length?_.attr("placeholder","Example: "+m):t.ctct_admin_placeholders["default"]&&_.attr("placeholder",t.ctct_admin_placeholders["default"])}})},n.removeDuplicateMappings=function(){var t=[],n="#cmb2-metabox-ctct_2_fields_metabox #custom_fields_group_repeat .cmb-repeatable-grouping select",c=e(n);c.each(function(n,c){t.push(e(c).val())}),c.children().show(),t.forEach(function(t){"custom_text_area"!=t&&"custom"!=t&&e(n+" option[value="+t+"]:not( :selected )").hide()})},e(n.init)}(window,jQuery,window.CTCTBuilder),window.CTCTForms={},function(t,e,n){n.init=function(){n.cache(),n.bindEvents()},n.cache=function(){n.$c={window:e(t),body:e("body"),disconnect:".ctct-disconnect"}},n.bindEvents=function(){e(n.$c.disconnect).on("click",function(t){confirm(ctct_texts.disconnectconfirm)})},e(n.init)}(window,jQuery,window.CTCTForms),window.CTCTModal={},function(t,e,n){n.init=function(){n.cache(),n.bindEvents()},n.cache=function(){n.$c={window:e(t),modalSelector:e(".ctct-modal"),modalClose:e(".ctct-modal-close"),textareaModal:e("#ctct-custom-textarea-modal"),textareaLink:e("#ctct-open-textarea-info"),deleteLogLink:e("#deletelog")}},n.bindEvents=function(){n.$c.modalClose.click(function(){n.$c.modalSelector.removeClass("ctct-modal-open"),n.$c.modalSelector.hasClass("ctct-custom-textarea-modal")||jQuery.ajax({type:"post",dataType:"json",url:ajaxurl,data:{action:"ctct_dismiss_first_modal",ctct_is_dismissed:"true"}})}),n.$c.textareaLink.on("click",function(){n.$c.textareaModal.addClass("ctct-modal-open")}),n.$c.deleteLogLink.on("click",function(e){e.preventDefault();var n=jQuery(this).attr("href");jQuery("#confirmdelete").dialog({resizable:!1,height:"auto",width:400,modal:!0,buttons:{Yes:function(){t.location.replace(n)},Cancel:function(){jQuery(this).dialog("close")}}})})},e(n.init)}(window,jQuery,window.CTCTModal),window.CTCTNewsletter={},function(t,e,n){n.init=function(){n.submitNewsletter()},e(n.init),n.submitNewsletter=function(){e(".ctct-body #subscribe").on("submit",function(t){t.preventDefault();var n=e("#subscribe .ctct-call-to-action"),c=e(".ctct-body #subscribe")[0],i=e(".ctct-call-to-action input[type='text']")[0],o=t.target.action;i.validity.valid===!0?(e("<iframe>",{src:o+"?"+e(c).serialize(),height:0,width:0,style:"display: none;"}).appendTo(n),e("#subbutton").val("Thanks for signing up").css({"background-color":"rgb(1, 128, 0)",color:"rgb(255,255,255)"}),e("#subscribe .ctct-call-to-action-text").css({width:"70%"})):e("#subbutton").val("Error occurred")}),e(".ctct-section #subscribe").on("submit",function(t){t.preventDefault();var n=e(".section-marketing-tips"),c=e(".ctct-section #subscribe")[0],i=e(".ctct-section #subscribe input[type='text']")[0],o=t.target.action;i.validity.valid===!0?(e("<iframe>",{src:o+"?"+e(c).serialize(),height:0,width:0,style:"display: none;"}).appendTo(n),e("#subbutton").val("Thanks for signing up").css({"background-color":"rgb(1, 128, 0)"})):e("#subbutton").val("Error occurred")})}}(window,jQuery,window.CTCTNewsletter),window.CTCT_OptIns={},function(t,e,n){n.init=function(){n.cache(),n.bindEvents()},n.cache=function(){n.$c={optin_no_conn:e("#cmb2-metabox-ctct_1_optin_metabox #_ctct_opt_in_not_connected"),list:e("#cmb2-metabox-ctct_0_list_metabox #_ctct_list"),title:e("#cmb2-metabox-ctct_1_optin_metabox .cmb2-id-email-optin-title"),optin:e("#cmb2-metabox-ctct_1_optin_metabox .cmb2-id--ctct-opt-in"),instruct:e("#cmb2-metabox-ctct_1_optin_metabox .cmb2-id--ctct-opt-in-instructions")}},n.bindEvents=function(){n.$c.optin_no_conn.length&&(n.toggleNoConnectionFields(),n.$c.optin_no_conn.change(function(){n.toggleNoConnectionFields()})),n.$c.list.length&&(n.toggleConnectionFields(),n.$c.list.change(function(){n.toggleConnectionFields()}))},n.toggleNoConnectionFields=function(){n.$c.optin_no_conn.prop("checked")?n.$c.instruct.slideDown():n.$c.instruct.slideUp()},n.toggleConnectionFields=function(){""!=n.$c.list.val()?(n.$c.title.slideDown(),n.$c.optin.slideDown(),n.$c.instruct.slideDown()):(n.$c.title.slideUp(),n.$c.optin.slideUp(),n.$c.instruct.slideUp())},e(n.init)}(window,jQuery,window.CTCT_OptIns);
assets/js/ctct-plugin-admin/modal.js CHANGED
@@ -15,6 +15,7 @@ window.CTCTModal = {};
15
  modalClose: $( '.ctct-modal-close' ),
16
  textareaModal: $( '#ctct-custom-textarea-modal' ),
17
  textareaLink: $( '#ctct-open-textarea-info' ),
 
18
  };
19
  };
20
 
@@ -38,6 +39,28 @@ window.CTCTModal = {};
38
  app.$c.textareaLink.on('click', function(){
39
  app.$c.textareaModal.addClass( 'ctct-modal-open' );
40
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  };
42
 
43
  // Engage
15
  modalClose: $( '.ctct-modal-close' ),
16
  textareaModal: $( '#ctct-custom-textarea-modal' ),
17
  textareaLink: $( '#ctct-open-textarea-info' ),
18
+ deleteLogLink: $( '#deletelog' )
19
  };
20
  };
21
 
39
  app.$c.textareaLink.on('click', function(){
40
  app.$c.textareaModal.addClass( 'ctct-modal-open' );
41
  });
42
+ app.$c.deleteLogLink.on( 'click', function( event ) {
43
+ event.preventDefault();
44
+
45
+ // Get the link that was clicked on so we can redirect to it if the user confirms.
46
+ var delete_log_link = jQuery( this ).attr( 'href' );
47
+
48
+ jQuery( "#confirmdelete" ).dialog({
49
+ resizable: false,
50
+ height : "auto",
51
+ width : 400,
52
+ modal : true,
53
+ buttons : {
54
+ "Yes": function () {
55
+ // If the user confirms the action, redirect them to the deletion page.
56
+ window.location.replace( delete_log_link );
57
+ },
58
+ Cancel: function () {
59
+ jQuery( this ).dialog( "close" );
60
+ }
61
+ }
62
+ });
63
+ } );
64
  };
65
 
66
  // Engage
assets/js/ctct-plugin-admin/newsletter.js CHANGED
@@ -13,16 +13,16 @@ window.CTCTNewsletter = {};
13
  // Connect page.
14
  $('.ctct-body #subscribe').on('submit', function (event) {
15
  event.preventDefault();
16
- console.log('connect');
17
  var $ctctNewsWrapper = $("#subscribe .ctct-call-to-action"),
18
  ctctNewsForm = $(".ctct-body #subscribe")[0];
19
 
20
  var ctctEmailField = $(".ctct-call-to-action input[type='text']")[0],
21
- aprimoEndpoint = event.target.action;
22
 
23
  if (ctctEmailField.validity.valid === true) {
24
  $("<iframe>", {
25
- "src" : aprimoEndpoint + "?" + $(ctctNewsForm).serialize(),
26
  "height": 0,
27
  "width" : 0,
28
  "style" : "display: none;"
@@ -43,11 +43,11 @@ console.log('connect');
43
  ctctNewsForm = $(".ctct-section #subscribe")[0];
44
 
45
  var ctctEmailField = $(".ctct-section #subscribe input[type='text']")[0],
46
- aprimoEndpoint = event.target.action;
47
 
48
  if (ctctEmailField.validity.valid === true) {
49
  $("<iframe>", {
50
- "src" : aprimoEndpoint + "?" + $(ctctNewsForm).serialize(),
51
  "height": 0,
52
  "width" : 0,
53
  "style" : "display: none;"
13
  // Connect page.
14
  $('.ctct-body #subscribe').on('submit', function (event) {
15
  event.preventDefault();
16
+
17
  var $ctctNewsWrapper = $("#subscribe .ctct-call-to-action"),
18
  ctctNewsForm = $(".ctct-body #subscribe")[0];
19
 
20
  var ctctEmailField = $(".ctct-call-to-action input[type='text']")[0],
21
+ subscribeEndpoint = event.target.action;
22
 
23
  if (ctctEmailField.validity.valid === true) {
24
  $("<iframe>", {
25
+ "src" : subscribeEndpoint + "?" + $(ctctNewsForm).serialize(),
26
  "height": 0,
27
  "width" : 0,
28
  "style" : "display: none;"
43
  ctctNewsForm = $(".ctct-section #subscribe")[0];
44
 
45
  var ctctEmailField = $(".ctct-section #subscribe input[type='text']")[0],
46
+ subscribeEndpoint = event.target.action;
47
 
48
  if (ctctEmailField.validity.valid === true) {
49
  $("<iframe>", {
50
+ "src" : subscribeEndpoint + "?" + $(ctctNewsForm).serialize(),
51
  "height": 0,
52
  "width" : 0,
53
  "style" : "display: none;"
assets/sass/admin-pages.scss CHANGED
@@ -317,3 +317,19 @@
317
  width: 500px;
318
  }
319
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
317
  width: 500px;
318
  }
319
  }
320
+ .cmb2-options-page {
321
+ #ctct_option_metabox_settings {
322
+ .cmb2-metabox > .cmb-row {
323
+ background: transparent;
324
+ border: none;
325
+ box-shadow: none;
326
+ }
327
+ }
328
+ }
329
+ .ctct-body {
330
+ #ctct_error_logs {
331
+ height: 400px;
332
+ resize: vertical;
333
+ width: 100%;
334
+ }
335
+ }
constant-contact-forms.php CHANGED
@@ -12,7 +12,7 @@
12
  * Plugin Name: Constant Contact Forms for WordPress
13
  * Plugin URI: https://www.constantcontact.com
14
  * Description: Be a better marketer. All it takes is Constant Contact email marketing.
15
- * Version: 1.3.6
16
  * Author: Constant Contact
17
  * Author URI: https://www.constantcontact.com/index?pn=miwordpress
18
  * License: GPLv3
@@ -77,7 +77,7 @@ class Constant_Contact {
77
  * @since 1.0.0
78
  * @var string
79
  */
80
- const VERSION = '1.3.6';
81
 
82
  /**
83
  * URL of plugin directory.
@@ -119,6 +119,8 @@ class Constant_Contact {
119
  */
120
  public $menu_icon = 'dashicons-megaphone';
121
 
 
 
122
  /**
123
  * Does site support encrpytions?
124
  *
@@ -287,6 +289,14 @@ class Constant_Contact {
287
  */
288
  private $customizations;
289
 
 
 
 
 
 
 
 
 
290
  /**
291
  * An instance of the ConstantContact_Admin Class.
292
  *
@@ -353,9 +363,10 @@ class Constant_Contact {
353
  $this->plugin_name = __( 'Constant Contact', 'constant-contact-forms' );
354
 
355
  // Set up some helper properties.
356
- $this->basename = plugin_basename( __FILE__ );
357
- $this->url = plugin_dir_url( __FILE__ );
358
- $this->path = plugin_dir_path( __FILE__ );
 
359
 
360
  if ( ! $this->meets_php_requirements() ) {
361
  add_action( 'admin_notices', array( $this, 'minimum_version' ) );
@@ -367,7 +378,7 @@ class Constant_Contact {
367
  $this->admin_plugin_classes();
368
 
369
  // Include our helper functions function for end-users.
370
- Constant_Contact::include_file( 'helper-functions', false );
371
  }
372
 
373
  /**
@@ -403,6 +414,7 @@ class Constant_Contact {
403
  $this->authserver = new ConstantContact_Middleware( $this );
404
  $this->updates = new ConstantContact_Updates( $this );
405
  $this->optin = new ConstantContact_Optin( $this );
 
406
  $this->customizations = new ConstantContact_User_Customizations( $this );
407
  }
408
 
@@ -504,6 +516,8 @@ class Constant_Contact {
504
 
505
  // Set an array of libraries we need to load.
506
  $libs = array(
 
 
507
  'CMB2/init.php',
508
  'constantcontact/autoload.php',
509
  'constantcontact/constantcontact/constantcontact/src/Ctct/autoload.php',
@@ -747,7 +761,7 @@ class Constant_Contact {
747
  * @return array Amended body classes.
748
  */
749
  public function body_classes( $classes = array() ) {
750
- $theme = wp_get_theme()->template;
751
  $classes[] = "ctct-{$theme}"; // Prefixing for user knowledge of source.
752
 
753
  return $classes;
@@ -797,8 +811,8 @@ class Constant_Contact {
797
  }
798
  add_action( 'plugins_loaded', array( constant_contact(), 'hooks' ) );
799
 
800
- register_activation_hook( __FILE__ , array( constant_contact(), '_activate' ) );
801
- register_deactivation_hook( __FILE__ , array( constant_contact(), '_deactivate' ) );
802
 
803
  /**
804
  * Grab the Constant_Contact object and return it.
12
  * Plugin Name: Constant Contact Forms for WordPress
13
  * Plugin URI: https://www.constantcontact.com
14
  * Description: Be a better marketer. All it takes is Constant Contact email marketing.
15
+ * Version: 1.3.7
16
  * Author: Constant Contact
17
  * Author URI: https://www.constantcontact.com/index?pn=miwordpress
18
  * License: GPLv3
77
  * @since 1.0.0
78
  * @var string
79
  */
80
+ const VERSION = '1.3.7';
81
 
82
  /**
83
  * URL of plugin directory.
119
  */
120
  public $menu_icon = 'dashicons-megaphone';
121
 
122
+ public $logger_location = '';
123
+
124
  /**
125
  * Does site support encrpytions?
126
  *
289
  */
290
  private $customizations;
291
 
292
+ /**
293
+ * An instance of the ConstantContact_Logging Class.
294
+ *
295
+ * @since 1.3.7
296
+ * @var ConstantContact_Logging
297
+ */
298
+ private $logging;
299
+
300
  /**
301
  * An instance of the ConstantContact_Admin Class.
302
  *
363
  $this->plugin_name = __( 'Constant Contact', 'constant-contact-forms' );
364
 
365
  // Set up some helper properties.
366
+ $this->basename = plugin_basename( __FILE__ );
367
+ $this->url = plugin_dir_url( __FILE__ );
368
+ $this->path = plugin_dir_path( __FILE__ );
369
+ $this->logger_location = WP_CONTENT_DIR . '/ctct-logs/constant-contact-errors.log';
370
 
371
  if ( ! $this->meets_php_requirements() ) {
372
  add_action( 'admin_notices', array( $this, 'minimum_version' ) );
378
  $this->admin_plugin_classes();
379
 
380
  // Include our helper functions function for end-users.
381
+ self::include_file( 'helper-functions', false );
382
  }
383
 
384
  /**
414
  $this->authserver = new ConstantContact_Middleware( $this );
415
  $this->updates = new ConstantContact_Updates( $this );
416
  $this->optin = new ConstantContact_Optin( $this );
417
+ $this->logging = new ConstantContact_Logging( $this );
418
  $this->customizations = new ConstantContact_User_Customizations( $this );
419
  }
420
 
516
 
517
  // Set an array of libraries we need to load.
518
  $libs = array(
519
+ 'psr/log/vendor/autoload.php',
520
+ 'monolog/monolog/vendor/autoload.php',
521
  'CMB2/init.php',
522
  'constantcontact/autoload.php',
523
  'constantcontact/constantcontact/constantcontact/src/Ctct/autoload.php',
761
  * @return array Amended body classes.
762
  */
763
  public function body_classes( $classes = array() ) {
764
+ $theme = wp_get_theme()->template;
765
  $classes[] = "ctct-{$theme}"; // Prefixing for user knowledge of source.
766
 
767
  return $classes;
811
  }
812
  add_action( 'plugins_loaded', array( constant_contact(), 'hooks' ) );
813
 
814
+ register_activation_hook( __FILE__, array( constant_contact(), '_activate' ) );
815
+ register_deactivation_hook( __FILE__, array( constant_contact(), '_deactivate' ) );
816
 
817
  /**
818
  * Grab the Constant_Contact object and return it.
includes/class-admin-pages.php CHANGED
@@ -282,14 +282,15 @@ class ConstantContact_Admin_Pages {
282
 
283
  <div class="ctct-section section-marketing-tips">
284
  <?php /* @todo Move to its own function/method. */ ?>
285
- <form id="subscribe" accept-charset="utf-8" action="https://a.constantcontact.com/subscriptions/coi_verify/.ashx" method="get" target="_blank">
286
  <input class="button button-blue right" id="subbutton" type="submit" value="<?php esc_attr_e( 'Sign Up', 'constant-contact-forms' ); ?>">
287
  <h1 class="about-header"><?php esc_html_e( 'Email marketing tips delivered to your inbox.', 'constant-contact-forms' ); ?></h1>
288
  <p><?php esc_html_e( 'Ready to grow with email marketing? Subscribe now for the latest tips and industry best practices to create great-looking emails that work.', 'constant-contact-forms' ); ?></p>
289
  <p><input id="subbox" maxlength="255" name="email" type="text" placeholder="<?php esc_attr_e( 'Enter your email address', 'constant-contact-forms' ); ?>">
290
  </p>
291
- <input name="sub" type="hidden" value="3">
292
- <input name="method" type="hidden" value="JMML_SUB3_wp_plugin">
 
293
 
294
  </form>
295
  <small><?php printf( __( 'By submitting this form, you agree to receive periodic product announcements and account notifications from Constant Contact. Cancel these communications at any time by clicking the unsubscribe link in the footer of the actual email. Constant Contact, Inc, 1601 Trapelo Road, Waltham, MA 02451, %s', 'constant-contact-forms' ), '<a href="https://www.constantcontact.com">www.constantcontact.com</a>' ); ?></small>
282
 
283
  <div class="ctct-section section-marketing-tips">
284
  <?php /* @todo Move to its own function/method. */ ?>
285
+ <form id="subscribe" accept-charset="utf-8" action="https://cloud.c.constantcontact.com/jmmlsubscriptions/coi_verify" method="get" target="_blank">
286
  <input class="button button-blue right" id="subbutton" type="submit" value="<?php esc_attr_e( 'Sign Up', 'constant-contact-forms' ); ?>">
287
  <h1 class="about-header"><?php esc_html_e( 'Email marketing tips delivered to your inbox.', 'constant-contact-forms' ); ?></h1>
288
  <p><?php esc_html_e( 'Ready to grow with email marketing? Subscribe now for the latest tips and industry best practices to create great-looking emails that work.', 'constant-contact-forms' ); ?></p>
289
  <p><input id="subbox" maxlength="255" name="email" type="text" placeholder="<?php esc_attr_e( 'Enter your email address', 'constant-contact-forms' ); ?>">
290
  </p>
291
+ <input name="sub" type="hidden" value="3" />
292
+ <input name="method" type="hidden" value="JMML" />
293
+ <input name="page" type="hidden" value="Sub3_Prospect" />
294
 
295
  </form>
296
  <small><?php printf( __( 'By submitting this form, you agree to receive periodic product announcements and account notifications from Constant Contact. Cancel these communications at any time by clicking the unsubscribe link in the footer of the actual email. Constant Contact, Inc, 1601 Trapelo Road, Waltham, MA 02451, %s', 'constant-contact-forms' ), '<a href="https://www.constantcontact.com">www.constantcontact.com</a>' ); ?></small>
includes/class-admin.php CHANGED
@@ -290,7 +290,7 @@ class ConstantContact_Admin {
290
  get_the_title( $list->ID )
291
  );
292
  } else {
293
- echo esc_html( 'No associated form', 'constant-contact-forms' );
294
  }
295
  break;
296
  }
290
  get_the_title( $list->ID )
291
  );
292
  } else {
293
+ esc_html_e( 'No associated form', 'constant-contact-forms' );
294
  }
295
  break;
296
  }
includes/class-api.php CHANGED
@@ -10,7 +10,6 @@
10
 
11
  use Ctct\ConstantContact;
12
  use Ctct\Components\Contacts\Contact;
13
- use Ctct\Components\Contacts\Contacts;
14
  use Ctct\Components\Contacts\ContactList;
15
  use Ctct\Exceptions\CtctException;
16
 
@@ -131,7 +130,7 @@ class ConstantContact_API {
131
  // Make sure we got a response before trying to save our transient.
132
  if ( $acct_data ) {
133
  // Save our data to a transient for a day.
134
- set_transient( 'constant_contact_acct_info', $acct_data, 1 * DAY_IN_SECONDS );
135
  }
136
  } catch ( CtctException $ex ) {
137
  $this->log_errors( $ex->getErrors() );
@@ -417,11 +416,12 @@ class ConstantContact_API {
417
  $response = $this->cc()->contactService->getContacts( $api_token, array( 'email' => $email ) );
418
 
419
  if ( isset( $response->results ) && ! empty( $response->results ) ) {
 
420
  // Update the existing contact if address already existed.
421
  $return_contact = $this->_update_contact( $response, $api_token, $list, $new_contact, $form_id );
422
 
423
  } else {
424
-
425
  // Create a new contact if one does not exist.
426
  $return_contact = $this->_create_contact( $api_token, $list, $email, $new_contact, $form_id );
427
  }
@@ -434,7 +434,7 @@ class ConstantContact_API {
434
 
435
 
436
  /**
437
- * Helper method to creat contact.
438
  *
439
  * @since 1.0.0
440
  * @since 1.3.0 Added $form_id parameter.
@@ -458,7 +458,11 @@ class ConstantContact_API {
458
  $contact->addList( esc_attr( $list ) );
459
 
460
  // Map the rest of our properties to.
461
- $contact = $this->set_contact_properties( $contact, $user_data, $form_id );
 
 
 
 
462
 
463
  /*
464
  * See: http://developer.constantcontact.com/docs/contacts-api/contacts-index.html#opt_in
@@ -502,7 +506,11 @@ class ConstantContact_API {
502
  $contact->addList( esc_attr( $list ) );
503
 
504
  // Set the rest of our properties.
505
- $contact = $this->set_contact_properties( $contact, $user_data, $form_id );
 
 
 
 
506
 
507
  /*
508
  * See: http://developer.constantcontact.com/docs/contacts-api/contacts-index.html#opt_in array( 'action_by' => 'ACTION_BY_VISITOR' )
@@ -529,13 +537,15 @@ class ConstantContact_API {
529
  * @param object $contact Contact object.
530
  * @param array $user_data Bunch of user data.
531
  * @param string $form_id Form ID being processed.
 
532
  * @return object Contact object, with new properties.
533
  */
534
  public function set_contact_properties( $contact, $user_data, $form_id ) {
535
-
536
  // First, verify we have what we need.
537
  if ( ! is_object( $contact ) || ! is_array( $user_data ) ) {
538
- return;
 
 
539
  }
540
 
541
  // Remove some values we don't need.
@@ -562,10 +572,6 @@ class ConstantContact_API {
562
  switch ( $key ) {
563
  case 'email':
564
  case 'website':
565
- case 'g-recaptcha-response':
566
- case 'ctct_usage_field':
567
- case 'ctct_time':
568
- case 'ctct_must_opt_in':
569
  // Do nothing, as we already captured.
570
  break;
571
  case 'phone_number':
@@ -621,7 +627,7 @@ class ConstantContact_API {
621
  // Retrieve our original label to send with API request.
622
  $original_field_data = $this->plugin->process_form->get_original_fields( $form_id );
623
  $custom_field_name = '';
624
- $should_include = apply_filters( 'constant_contact_include_custom_field_label', false );
625
  if ( false !== strpos( $original, 'custom___' ) && $should_include ) {
626
  $custom_field = ( $original_field_data[ $original ] );
627
  $custom_field_name .= $custom_field['name'] . ': ';
@@ -660,7 +666,7 @@ class ConstantContact_API {
660
  try {
661
  $contact->$key = $value;
662
  } catch ( Exception $e ) {
663
- // @todo Log the exception.
664
  break;
665
  }
666
 
@@ -708,11 +714,11 @@ class ConstantContact_API {
708
  return false;
709
  }
710
 
711
- // If we have our debugging turned on, push that error to the error log.
712
- if ( defined( 'CONSTANT_CONTACT_DEBUG' ) && CONSTANT_CONTACT_DEBUG ) {
713
- error_log( $error->error_key . ': ' . $error->error_message );
714
- error_log( serialize( debug_backtrace() ) );
715
- }
716
 
717
  // Otherwise work through our list of error keys we know.
718
  switch ( $error->error_key ) {
@@ -855,6 +861,10 @@ class ConstantContact_API {
855
  unset( $disclosure['address'] );
856
  }
857
 
 
 
 
 
858
  return $as_parts ? $disclosure : implode( ', ', array_values( $disclosure ) );
859
  }
860
  }
10
 
11
  use Ctct\ConstantContact;
12
  use Ctct\Components\Contacts\Contact;
 
13
  use Ctct\Components\Contacts\ContactList;
14
  use Ctct\Exceptions\CtctException;
15
 
130
  // Make sure we got a response before trying to save our transient.
131
  if ( $acct_data ) {
132
  // Save our data to a transient for a day.
133
+ set_transient( 'constant_contact_acct_info', $acct_data, 1 * HOUR_IN_SECONDS );
134
  }
135
  } catch ( CtctException $ex ) {
136
  $this->log_errors( $ex->getErrors() );
416
  $response = $this->cc()->contactService->getContacts( $api_token, array( 'email' => $email ) );
417
 
418
  if ( isset( $response->results ) && ! empty( $response->results ) ) {
419
+ constant_contact_maybe_log_it( 'API', 'Contact set to be updated', array( 'form' => get_the_title( $form_id ) ) );
420
  // Update the existing contact if address already existed.
421
  $return_contact = $this->_update_contact( $response, $api_token, $list, $new_contact, $form_id );
422
 
423
  } else {
424
+ constant_contact_maybe_log_it( 'API', 'Contact set to be created', array( 'form' => get_the_title( $form_id ) ) );
425
  // Create a new contact if one does not exist.
426
  $return_contact = $this->_create_contact( $api_token, $list, $email, $new_contact, $form_id );
427
  }
434
 
435
 
436
  /**
437
+ * Helper method to create contact.
438
  *
439
  * @since 1.0.0
440
  * @since 1.3.0 Added $form_id parameter.
458
  $contact->addList( esc_attr( $list ) );
459
 
460
  // Map the rest of our properties to.
461
+ try {
462
+ $contact = $this->set_contact_properties( $contact, $user_data, $form_id );
463
+ } catch ( CtctException $ex ) {
464
+ $this->log_errors( $ex->getErrors() );
465
+ }
466
 
467
  /*
468
  * See: http://developer.constantcontact.com/docs/contacts-api/contacts-index.html#opt_in
506
  $contact->addList( esc_attr( $list ) );
507
 
508
  // Set the rest of our properties.
509
+ try {
510
+ $contact = $this->set_contact_properties( $contact, $user_data, $form_id );
511
+ } catch ( CtctException $ex ) {
512
+ $this->log_errors( $ex->getErrors() );
513
+ }
514
 
515
  /*
516
  * See: http://developer.constantcontact.com/docs/contacts-api/contacts-index.html#opt_in array( 'action_by' => 'ACTION_BY_VISITOR' )
537
  * @param object $contact Contact object.
538
  * @param array $user_data Bunch of user data.
539
  * @param string $form_id Form ID being processed.
540
+ * @throws CtctException $error An exception error.
541
  * @return object Contact object, with new properties.
542
  */
543
  public function set_contact_properties( $contact, $user_data, $form_id ) {
 
544
  // First, verify we have what we need.
545
  if ( ! is_object( $contact ) || ! is_array( $user_data ) ) {
546
+ $error = new CtctException();
547
+ $error->setErrors( array( 'type', esc_html__( 'Not a valid contact to set properties to.', 'constant-contact-forms' ) ) );
548
+ throw $error;
549
  }
550
 
551
  // Remove some values we don't need.
572
  switch ( $key ) {
573
  case 'email':
574
  case 'website':
 
 
 
 
575
  // Do nothing, as we already captured.
576
  break;
577
  case 'phone_number':
627
  // Retrieve our original label to send with API request.
628
  $original_field_data = $this->plugin->process_form->get_original_fields( $form_id );
629
  $custom_field_name = '';
630
+ $should_include = apply_filters( 'constant_contact_include_custom_field_label', false, $form_id );
631
  if ( false !== strpos( $original, 'custom___' ) && $should_include ) {
632
  $custom_field = ( $original_field_data[ $original ] );
633
  $custom_field_name .= $custom_field['name'] . ': ';
666
  try {
667
  $contact->$key = $value;
668
  } catch ( Exception $e ) {
669
+ $this->log_errors( $e->getErrors() );
670
  break;
671
  }
672
 
714
  return false;
715
  }
716
 
717
+ constant_contact_maybe_log_it(
718
+ 'API',
719
+ $error->error_key . ': ' . $error->error_message,
720
+ $error
721
+ );
722
 
723
  // Otherwise work through our list of error keys we know.
724
  switch ( $error->error_key ) {
861
  unset( $disclosure['address'] );
862
  }
863
 
864
+ if ( ! empty( $account_info->website ) ) {
865
+ $disclosure['website'] = $account_info->website;
866
+ }
867
+
868
  return $as_parts ? $disclosure : implode( ', ', array_values( $disclosure ) );
869
  }
870
  }
includes/class-connect.php CHANGED
@@ -178,7 +178,7 @@ class ConstantContact_Connect {
178
  wp_enqueue_script( 'ctct_form' );
179
  ?>
180
  <div class="wrap cmb2-options-page <?php echo esc_attr( $this->key ); ?>">
181
- <img class="ctct-logo" src="<?php echo esc_url( constant_contact()->url . 'assets/images/constant-contact-logo.png' ); ?>">
182
  <div class="ctct-body">
183
  <?php if ( constantcontact_api()->get_api_token() ) : ?>
184
 
@@ -263,14 +263,15 @@ class ConstantContact_Connect {
263
  <a class="button button-orange" href="<?php echo esc_url_raw( add_query_arg( array( 'rmc' => 'wp_connect_try' ), constant_contact()->api->get_signup_link() ) ); ?>"><?php esc_attr_e( 'Try us Free', 'constant-contact-forms' ); ?></a>
264
  </div>
265
 
266
- <form id="subscribe" accept-charset="utf-8" action="https://a.constantcontact.com/subscriptions/coi_verify/.ashx" method="get" target="_blank">
267
  <div class="ctct-call-to-action">
268
  <div class="ctct-call-to-action-text">
269
  <h3><?php esc_html_e( 'Email marketing tips delivered to your inbox.', 'constant-contact-forms' ); ?></h3>
270
  <p><?php esc_html_e( 'Ready to grow with email marketing? Subscribe now for the latest tips and industry best practices to create great-looking emails that work.', 'constant-contact-forms' ); ?></p>
271
  <input id="subbox" maxlength="255" name="email" type="text" placeholder="<?php esc_attr_e( 'Enter your email address', 'constant-contact-forms' ); ?>">
272
- <input name="sub" type="hidden" value="3">
273
- <input name="method" type="hidden" value="JMML_SUB3_wp_plugin">
 
274
 
275
  <p><small><?php
276
  // translators: placeholder will hold ConstantContact.com link.
178
  wp_enqueue_script( 'ctct_form' );
179
  ?>
180
  <div class="wrap cmb2-options-page <?php echo esc_attr( $this->key ); ?>">
181
+ <img class="ctct-logo" src="<?php echo esc_url( constant_contact()->url . 'assets/images/constant-contact-logo.png' ); ?>" alt="<?php esc_attr_e( 'Constant Contact logo', 'constant-contact-forms' ); ?>">
182
  <div class="ctct-body">
183
  <?php if ( constantcontact_api()->get_api_token() ) : ?>
184
 
263
  <a class="button button-orange" href="<?php echo esc_url_raw( add_query_arg( array( 'rmc' => 'wp_connect_try' ), constant_contact()->api->get_signup_link() ) ); ?>"><?php esc_attr_e( 'Try us Free', 'constant-contact-forms' ); ?></a>
264
  </div>
265
 
266
+ <form id="subscribe" accept-charset="utf-8" action="https://cloud.c.constantcontact.com/jmmlsubscriptions/coi_verify" method="get" target="_blank">
267
  <div class="ctct-call-to-action">
268
  <div class="ctct-call-to-action-text">
269
  <h3><?php esc_html_e( 'Email marketing tips delivered to your inbox.', 'constant-contact-forms' ); ?></h3>
270
  <p><?php esc_html_e( 'Ready to grow with email marketing? Subscribe now for the latest tips and industry best practices to create great-looking emails that work.', 'constant-contact-forms' ); ?></p>
271
  <input id="subbox" maxlength="255" name="email" type="text" placeholder="<?php esc_attr_e( 'Enter your email address', 'constant-contact-forms' ); ?>">
272
+ <input name="sub" type="hidden" value="3" />
273
+ <input name="method" type="hidden" value="JMML" />
274
+ <input name="page" type="hidden" value="Sub3_Prospect" />
275
 
276
  <p><small><?php
277
  // translators: placeholder will hold ConstantContact.com link.
includes/class-display.php CHANGED
@@ -287,6 +287,7 @@ class ConstantContact_Display {
287
 
288
  // Start our wrapper return var.
289
  $return = '';
 
290
 
291
  // Check to see if we have a form ID for the form, and display our description.
292
  if ( isset( $form_data['options'] ) && isset( $form_data['options']['form_id'] ) ) {
@@ -303,7 +304,7 @@ class ConstantContact_Display {
303
 
304
  // Loop through each of our form fields and output it.
305
  foreach ( $form_data['fields'] as $key => $value ) {
306
- $return .= $this->field( $value, $old_values, $req_errors );
307
  }
308
 
309
  // Check to see if we have an opt-in for the form, and display it.
@@ -386,9 +387,10 @@ class ConstantContact_Display {
386
  * @param array $field Field data.
387
  * @param array $old_values Original values.
388
  * @param array $req_errors Errors.
 
389
  * @return string HTML markup
390
  */
391
- public function field( $field, $old_values = array(), $req_errors = array() ) {
392
 
393
  // If we don't have a name or a mapping, it will be hard to do things.
394
  if ( ! isset( $field['name'] ) || ! isset( $field['map_to'] ) ) {
@@ -462,7 +464,7 @@ class ConstantContact_Display {
462
  case 'company':
463
  case 'website':
464
  case 'text_field':
465
- return $this->input( 'text', $name, $map, $value, $desc, $req, false, $field_error );
466
  break;
467
  case 'custom_text_area':
468
  return $this->textarea( $name, $map, $value, $desc, $req, $field_error, 'maxlength="500"' );
@@ -727,9 +729,10 @@ class ConstantContact_Display {
727
  * @param boolean $req If field required.
728
  * @param boolean $f_only If we only return the field itself, with no label.
729
  * @param boolean $field_error Field error.
 
730
  * @return string HTML markup for field.
731
  */
732
- public function input( $type = 'text', $name = '', $id = '', $value = '', $label = '', $req = false, $f_only = false, $field_error = false ) {
733
 
734
  // Sanitize our stuff / set values.
735
  $name = sanitize_text_field( $name );
@@ -762,7 +765,7 @@ class ConstantContact_Display {
762
  *
763
  * @param bool $value Whether or not to truncate. Default false.
764
  */
765
- $truncate_max_length = apply_filters( 'constant_contact_include_custom_field_label', false );
766
  $max_length = '';
767
  if ( false !== strpos( $id, 'custom___' ) ) {
768
  $max_length = ( $truncate_max_length ) ? $this->get_max_length_attr( $name ) : $this->get_max_length_attr();
@@ -1354,11 +1357,21 @@ class ConstantContact_Display {
1354
  */
1355
  public function get_inner_disclose_text() {
1356
  // translators: placeholder will hold company info for site owner.
1357
- return sprintf( __( 'By submitting this form, you are granting: %s, permission to email you. You may unsubscribe via the link found at the bottom of every email. (See our Email Privacy Policy (http://constantcontact.com/legal/privacy-statement) for details.) Emails are serviced by Constant Contact.', 'constant-contact-forms' ), $this->plugin->api->get_disclosure_info() );
 
 
 
 
 
 
 
 
 
 
1358
  }
1359
 
1360
  public function get_max_length_attr( $optional_label = '' ) {
1361
- $length = 50;
1362
  $label_length = 0;
1363
  if ( ! empty( $optional_label ) ) {
1364
  $label_length = mb_strlen( $optional_label );
287
 
288
  // Start our wrapper return var.
289
  $return = '';
290
+ $form_id = 0;
291
 
292
  // Check to see if we have a form ID for the form, and display our description.
293
  if ( isset( $form_data['options'] ) && isset( $form_data['options']['form_id'] ) ) {
304
 
305
  // Loop through each of our form fields and output it.
306
  foreach ( $form_data['fields'] as $key => $value ) {
307
+ $return .= $this->field( $value, $old_values, $req_errors, $form_id );
308
  }
309
 
310
  // Check to see if we have an opt-in for the form, and display it.
387
  * @param array $field Field data.
388
  * @param array $old_values Original values.
389
  * @param array $req_errors Errors.
390
+ * @param int $form_id Current form ID.
391
  * @return string HTML markup
392
  */
393
+ public function field( $field, $old_values = array(), $req_errors = array(), $form_id = 0 ) {
394
 
395
  // If we don't have a name or a mapping, it will be hard to do things.
396
  if ( ! isset( $field['name'] ) || ! isset( $field['map_to'] ) ) {
464
  case 'company':
465
  case 'website':
466
  case 'text_field':
467
+ return $this->input( 'text', $name, $map, $value, $desc, $req, false, $field_error, $form_id );
468
  break;
469
  case 'custom_text_area':
470
  return $this->textarea( $name, $map, $value, $desc, $req, $field_error, 'maxlength="500"' );
729
  * @param boolean $req If field required.
730
  * @param boolean $f_only If we only return the field itself, with no label.
731
  * @param boolean $field_error Field error.
732
+ * @param int $form_id Current form ID.
733
  * @return string HTML markup for field.
734
  */
735
+ public function input( $type = 'text', $name = '', $id = '', $value = '', $label = '', $req = false, $f_only = false, $field_error = false, $form_id = 0 ) {
736
 
737
  // Sanitize our stuff / set values.
738
  $name = sanitize_text_field( $name );
765
  *
766
  * @param bool $value Whether or not to truncate. Default false.
767
  */
768
+ $truncate_max_length = apply_filters( 'constant_contact_include_custom_field_label', false, $form_id );
769
  $max_length = '';
770
  if ( false !== strpos( $id, 'custom___' ) ) {
771
  $max_length = ( $truncate_max_length ) ? $this->get_max_length_attr( $name ) : $this->get_max_length_attr();
1357
  */
1358
  public function get_inner_disclose_text() {
1359
  // translators: placeholder will hold company info for site owner.
1360
+ return sprintf(
1361
+ __(
1362
+ 'By submitting this form, you are consenting to receive marketing emails from: %s. You can revoke your consent to receive emails at any time by using the SafeUnsubscribe&reg; link, found at the bottom of every email. %s', 'constant-contact-forms'
1363
+ ),
1364
+ $this->plugin->api->get_disclosure_info(),
1365
+ sprintf(
1366
+ '<a href="%s" target="_blank">%s</a>',
1367
+ esc_url( 'https://www.constantcontact.com/legal/service-provider' ),
1368
+ esc_html__( 'Emails are serviced by Constant Contact', 'constant-contact-forms' )
1369
+ )
1370
+ );
1371
  }
1372
 
1373
  public function get_max_length_attr( $optional_label = '' ) {
1374
+ $length = 48; // Two less than 50char custom field limit for ": "
1375
  $label_length = 0;
1376
  if ( ! empty( $optional_label ) ) {
1377
  $label_length = mb_strlen( $optional_label );
includes/class-logging.php ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Logging
4
+ *
5
+ * @package ConstantContact
6
+ * @subpackage Logging
7
+ * @author Constant Contact
8
+ * @since 1.3.7
9
+ */
10
+
11
+
12
+ class ConstantContact_Logging {
13
+
14
+ /**
15
+ * Option key, and option page slug.
16
+ *
17
+ * @since 1.3.7
18
+ * @var string
19
+ */
20
+ private $key = 'ctct_options_logging';
21
+
22
+ /**
23
+ * Parent plugin class.
24
+ *
25
+ * @since 1.3.7
26
+ * @var object
27
+ */
28
+ protected $plugin = null;
29
+
30
+ /**
31
+ * Logging admin page URL.
32
+ *
33
+ * @since 1.3.7
34
+ * @var string
35
+ */
36
+ public $options_url = '';
37
+
38
+ /**
39
+ * Options page.
40
+ *
41
+ * @since 1.3.7
42
+ * @var string
43
+ */
44
+ public $options_page = '';
45
+
46
+ /**
47
+ * Constructor.
48
+ *
49
+ * @since 1.3.7
50
+ *
51
+ * @param object $plugin Parent class.
52
+ */
53
+ public function __construct( $plugin ) {
54
+ $this->plugin = $plugin;
55
+ $this->options_url = admin_url( 'edit.php?post_type=ctct_forms&page=ctct_options_logging' );
56
+ $this->hooks();
57
+ }
58
+
59
+ /**
60
+ * Initiate our hooks.
61
+ *
62
+ * @since 1.3.7
63
+ */
64
+ public function hooks() {
65
+ add_action( 'admin_menu', array( $this, 'add_options_page' ) );
66
+ add_action( 'admin_init', array( $this, 'delete_log_file' ) );
67
+ add_action( 'admin_enqueue_scripts', array( $this, 'scripts' ) );
68
+ add_action( 'admin_footer', array( $this, 'dialog' ) );
69
+ }
70
+
71
+ /**
72
+ * Add our jQuery UI elements for dialog confirmation.
73
+ *
74
+ * @since 1.3.7
75
+ */
76
+ public function scripts() {
77
+ wp_enqueue_script( 'jquery-ui-core' );
78
+ wp_enqueue_script( 'jquery-ui-dialog' );
79
+ wp_enqueue_style( 'wp-jquery-ui-dialog' );
80
+ }
81
+
82
+ public function dialog() {
83
+ ?>
84
+ <div id="confirmdelete" style="display:none;">
85
+ <?php esc_html_e( 'Are you sure you want to delete current logs?', 'constant-contact-forms' ); ?>
86
+ </div>
87
+ <?php
88
+ }
89
+
90
+ /**
91
+ * Add menu options page.
92
+ *
93
+ * @since 1.3.7
94
+ */
95
+ public function add_options_page() {
96
+
97
+ $debugging_enabled = ctct_get_settings_option( '_ctct_logging' );
98
+
99
+ if ( 'on' !== $debugging_enabled ) {
100
+ return;
101
+ }
102
+
103
+ $connect_title = esc_html__( 'Debug logs', 'constant-contact-forms' );
104
+ $connect_link = 'edit.php?post_type=ctct_forms';
105
+
106
+ // Set up our page.
107
+ $this->options_page = add_submenu_page(
108
+ $connect_link,
109
+ $connect_title,
110
+ $connect_title,
111
+ 'manage_options',
112
+ $this->key,
113
+ array( $this, 'admin_page_display' )
114
+ );
115
+ }
116
+
117
+ /**
118
+ * Admin page markup.
119
+ *
120
+ * @since 1.3.7
121
+ *
122
+ * @return mixed page markup or false if not admin.
123
+ */
124
+ public function admin_page_display() {
125
+
126
+ wp_enqueue_style( 'constant-contact-oath', constant_contact()->url() . 'assets/css/oath.css' );
127
+
128
+ ?>
129
+ <div class="wrap <?php echo esc_attr( $this->key ); ?>">
130
+ <img class="ctct-logo" src="<?php echo esc_url( constant_contact()->url . 'assets/images/constant-contact-logo.png' ); ?>" alt="<?php esc_attr_e( 'Constant Contact logo', 'constant-contact-forms' ); ?>">
131
+ <div class="ctct-body">
132
+ <?php
133
+ $contents = '';
134
+ $log_location = '#';
135
+
136
+ if ( ! file_exists( constant_contact()->logger_location ) ) {
137
+ $contents .= esc_html__( 'No error log exists', 'constant-contact-forms' );
138
+ } else {
139
+ // logger location from primary class is server path and not URL path. Thus we go this route for moment.
140
+ $log_location = content_url() . '/ctct-logs/constant-contact-errors.log';
141
+ $log_content = wp_remote_get( $log_location );
142
+ if ( is_wp_error( $log_content ) ) {
143
+ $contents .= sprintf(
144
+ // translators: placeholder wil have error message.
145
+ esc_html__(
146
+ 'Log display error: %s',
147
+ 'constant-contact-forms'
148
+ ),
149
+ $log_content->get_error_message()
150
+ );
151
+ } else {
152
+ $contents .= wp_remote_retrieve_body( $log_content );
153
+ }
154
+ }
155
+ ?>
156
+ <p><?php esc_html_e( 'Error log below can be used with support requests to help identify issues with Constant Contact Forms.', 'constant-contact-forms' ); ?></p>
157
+ <p><?php esc_html_e( 'When available, you can share information by copying and pasting the content in the textarea, or by using the "Download logs" link at the end. Logs can be cleared by using the "Delete logs" link.', 'constant-contact-forms' ); ?></p>
158
+ <label><textarea name="ctct_error_logs" id="ctct_error_logs" cols="80" rows="40" onclick="this.focus();this.select();" onfocus="this.focus();this.select();" readonly="readonly" aria-readonly="true"><?php echo esc_html( $contents ); ?></textarea></label>
159
+ <?php
160
+
161
+ if ( file_exists( constant_contact()->logger_location ) ) {
162
+ if ( ! empty( $log_content ) && is_wp_error( $log_content ) ) {
163
+ ?>
164
+ <p><?php esc_html_e( 'Error log may still have content, even if an error is shown above. Please use the download link below.', 'constant-contact-forms' ); ?></p>
165
+ <?php
166
+ }
167
+ ?>
168
+ <p>
169
+ <?php
170
+ printf(
171
+ '<p><a href="%s" download>%s</a></p><p><a href="%s" id="deletelog">%s</a></p>',
172
+ esc_attr( $log_location ),
173
+ esc_html__( 'Download logs', 'constant-contact-forms' ),
174
+ esc_attr(
175
+ wp_nonce_url(
176
+ $this->options_url,
177
+ 'ctct_delete_log',
178
+ 'ctct_delete_log'
179
+ )
180
+ ),
181
+ esc_html__( 'Delete logs', 'constant-contact-forms' )
182
+ );
183
+ ?>
184
+ </p>
185
+ <?php
186
+ }
187
+ // @TODO Remind to turn off debugging setting when not needed.
188
+ ?>
189
+ </div>
190
+ </div>
191
+ <?php
192
+ return true;
193
+ }
194
+
195
+ /**
196
+ * Delete existing log files.
197
+ *
198
+ * @since 1.3.7
199
+ */
200
+ public function delete_log_file() {
201
+ if ( ! constant_contact()->is_constant_contact() ) {
202
+ return;
203
+ }
204
+
205
+ if ( empty( $_GET['page'] ) || 'ctct_options_logging' !== $_GET['page'] ) {
206
+ return;
207
+ }
208
+
209
+ if ( ! isset( $_GET['ctct_delete_log'] ) ) {
210
+ return;
211
+ }
212
+
213
+ check_admin_referer( 'ctct_delete_log', 'ctct_delete_log' );
214
+
215
+ $log_file = constant_contact()->logger_location;
216
+ if ( file_exists( $log_file ) ) {
217
+ unlink( $log_file );
218
+ }
219
+
220
+ wp_redirect( $this->options_url );
221
+ exit();
222
+ }
223
+ }
includes/class-mail.php CHANGED
@@ -8,6 +8,11 @@
8
  * @since 1.0.2
9
  */
10
 
 
 
 
 
 
11
  /**
12
  * Wrapper functions for mailing successful contact forms to the user.
13
  */
@@ -97,8 +102,14 @@ class ConstantContact_Mail {
97
  constant_contact()->process_form->increment_processed_form_count();
98
 
99
  // Skip sending e-mail if we're connected, the site owner has opted out of notification emails, and the user has opted in
100
- if ( constant_contact()->api->is_connected() && ( 'on' === ctct_get_settings_option( '_ctct_disable_email_notifications' ) ) && $add_to_opt_in ) { // If we have $add_to_opt_in, we should already have a list.
101
- return true;
 
 
 
 
 
 
102
  }
103
 
104
  // This would allow for setting each sections error and also allow for returning early again for cases
@@ -134,7 +145,7 @@ class ConstantContact_Mail {
134
  * @since 1.0.0
135
  *
136
  * @param array $values Submitted values.
137
- * @return object Response from API.
138
  */
139
  public function opt_in_user( $values ) {
140
 
@@ -248,6 +259,7 @@ class ConstantContact_Mail {
248
  }
249
 
250
  $mail_key = md5( "{$destination_email}:{$content}:" . ( isset( $screen->id ) ? $screen->id : '' ) );
 
251
 
252
  // If we already have sent this e-mail, don't send it again.
253
  if ( $last_sent === $mail_key ) {
@@ -256,11 +268,11 @@ class ConstantContact_Mail {
256
  /* translators: this is only used when some debugging is enabled */
257
  __( 'Duplicate send mail for: %1$s and: %2$s', 'constant-contact-forms' ),
258
  array(
259
- $destination_email,
260
  $mail_key,
261
  )
262
  ),
263
- $destination_email,
264
  $mail_key
265
  );
266
  return true;
@@ -342,8 +354,6 @@ class ConstantContact_Mail {
342
  */
343
  do_action( 'constant_contact_after_email_send', $submission_details['form_id'], $submission_details['submitted_email'], $destination_email, $content );
344
 
345
- $this->maybe_log_mail_status( $mail_status, $destination_email, $content );
346
-
347
  // Clean up, remove the filter we had set.
348
  remove_filter( 'wp_mail_content_type', array( $this, 'set_email_type' ) );
349
 
@@ -372,17 +382,15 @@ class ConstantContact_Mail {
372
  * @param string $status Status from wp_mail.
373
  * @param string $dest_email Destination email.
374
  * @param string $content Content of email.
 
375
  */
376
  public function maybe_log_mail_status( $status, $dest_email, $content ) {
377
 
378
- if ( defined( 'CONSTANT_CONTACT_DEBUG_MAIL' ) && CONSTANT_CONTACT_DEBUG_MAIL ) {
379
-
380
- // Log status of mail.
381
- error_log( 'mail attempted for ' . $dest_email . ': ' . $status );
382
-
383
- // Log content too just in case.
384
- error_log( print_r( $content, true ) );
385
- }
386
 
387
  }
388
 
@@ -461,4 +469,28 @@ class ConstantContact_Mail {
461
 
462
  return $content_notice;
463
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
464
  }
8
  * @since 1.0.2
9
  */
10
 
11
+ #require_once constant_contact()->path . '/vendor/autoload.php';
12
+
13
+ use Monolog\Logger;
14
+ use Monolog\Handler\StreamHandler;
15
+
16
  /**
17
  * Wrapper functions for mailing successful contact forms to the user.
18
  */
102
  constant_contact()->process_form->increment_processed_form_count();
103
 
104
  // Skip sending e-mail if we're connected, the site owner has opted out of notification emails, and the user has opted in
105
+ if ( constant_contact()->api->is_connected() && 'on' === ctct_get_settings_option( '_ctct_disable_email_notifications' ) ) {
106
+ if ( $add_to_opt_in ) {
107
+ return true;
108
+ }
109
+
110
+ if ( empty( $_POST['ctct_must_opt_in'] ) || ! empty( $_POST['ctct-opt-in'] ) ) {
111
+ return true;
112
+ }
113
  }
114
 
115
  // This would allow for setting each sections error and also allow for returning early again for cases
145
  * @since 1.0.0
146
  *
147
  * @param array $values Submitted values.
148
+ * @return object|null Response from API.
149
  */
150
  public function opt_in_user( $values ) {
151
 
259
  }
260
 
261
  $mail_key = md5( "{$destination_email}:{$content}:" . ( isset( $screen->id ) ? $screen->id : '' ) );
262
+ $partial_email = $this->get_email_part( $destination_email );
263
 
264
  // If we already have sent this e-mail, don't send it again.
265
  if ( $last_sent === $mail_key ) {
268
  /* translators: this is only used when some debugging is enabled */
269
  __( 'Duplicate send mail for: %1$s and: %2$s', 'constant-contact-forms' ),
270
  array(
271
+ $partial_email,
272
  $mail_key,
273
  )
274
  ),
275
+ $partial_email,
276
  $mail_key
277
  );
278
  return true;
354
  */
355
  do_action( 'constant_contact_after_email_send', $submission_details['form_id'], $submission_details['submitted_email'], $destination_email, $content );
356
 
 
 
357
  // Clean up, remove the filter we had set.
358
  remove_filter( 'wp_mail_content_type', array( $this, 'set_email_type' ) );
359
 
382
  * @param string $status Status from wp_mail.
383
  * @param string $dest_email Destination email.
384
  * @param string $content Content of email.
385
+ * @return void
386
  */
387
  public function maybe_log_mail_status( $status, $dest_email, $content ) {
388
 
389
+ constant_contact_maybe_log_it(
390
+ 'Mail',
391
+ 'mail attempted for ' . $dest_email . ': ' . $status,
392
+ $content
393
+ );
 
 
 
394
 
395
  }
396
 
469
 
470
  return $content_notice;
471
  }
472
+
473
+ /**
474
+ * Parse out just the first part of an email address.
475
+ *
476
+ * This method is meant to protect privacy with potential logging of email addresses.
477
+ * Instead of logging ALL of a given email address, we will just log everything before the `@`
478
+ *
479
+ * @since 1.3.7
480
+ *
481
+ * @param string $email Email address to parse.
482
+ * @return mixed Part of a provided email.
483
+ */
484
+ public function get_email_part( $email ) {
485
+ if ( ! is_email( $email ) ) {
486
+ return $email;
487
+ }
488
+
489
+ $new_email = explode( '@', sanitize_email( $email ) );
490
+ if ( ! empty( $new_email ) ) {
491
+ return $new_email[0];
492
+ }
493
+
494
+ return $email;
495
+ }
496
  }
includes/class-middleware.php CHANGED
@@ -145,14 +145,18 @@ class ConstantContact_Middleware {
145
 
146
  // If we're missing any piece of data, we failed.
147
  if ( ! $proof || ! $token || ! $key ) {
 
148
  return false;
149
  }
150
 
151
  // We'll want to verify our proof before we continue.
152
  if ( ! $this->verify_proof( $proof ) ) {
 
153
  return false;
154
  }
155
 
 
 
156
  // Save our token / key into the DB.
157
  constant_contact()->connect->update_token( sanitize_text_field( $token ) );
158
  constant_contact()->connect->e_set( '_ctct_api_key', sanitize_text_field( $key ) );
145
 
146
  // If we're missing any piece of data, we failed.
147
  if ( ! $proof || ! $token || ! $key ) {
148
+ constant_contact_maybe_log_it( 'Authentication', 'Proof, token, or key missing for access verification.' );
149
  return false;
150
  }
151
 
152
  // We'll want to verify our proof before we continue.
153
  if ( ! $this->verify_proof( $proof ) ) {
154
+ constant_contact_maybe_log_it( 'Authentication', 'Authorization verification failed.' );
155
  return false;
156
  }
157
 
158
+ constant_contact_maybe_log_it( 'Authentication', 'Authorization verification succeeded.' );
159
+
160
  // Save our token / key into the DB.
161
  constant_contact()->connect->update_token( sanitize_text_field( $token ) );
162
  constant_contact()->connect->e_set( '_ctct_api_key', sanitize_text_field( $key ) );
includes/class-optin.php CHANGED
@@ -117,7 +117,7 @@ class ConstantContact_Optin {
117
  return;
118
  }
119
 
120
- if ( $this->privacy_policy_status() ) {
121
  return;
122
  }
123
  ?>
117
  return;
118
  }
119
 
120
+ if ( $this->privacy_policy_status() || ! constant_contact()->is_constant_contact() ) {
121
  return;
122
  }
123
  ?>
includes/class-process-form.php CHANGED
@@ -221,6 +221,7 @@ class ConstantContact_Process_Form {
221
  $resp = $recaptcha->verify( $data['g-recaptcha-response'], $_SERVER['REMOTE_ADDR'] );
222
 
223
  if ( ! $resp->isSuccess() ) {
 
224
  // @todo Utilize the error message(s) that come back from Google, if any.
225
  return array(
226
  'status' => 'named_error',
@@ -289,6 +290,10 @@ class ConstantContact_Process_Form {
289
  'ctct_form',
290
  '_wp_http_referer',
291
  'ctct-verify',
 
 
 
 
292
  ) );
293
 
294
  // If the submit button is clicked, send the email.
@@ -334,6 +339,7 @@ class ConstantContact_Process_Form {
334
 
335
  // No need to check for opt in status because we would have returned early by now if false.
336
  $maybe_bypass = ctct_get_settings_option( '_ctct_bypass_cron', '' );
 
337
  if ( constant_contact()->api->is_connected() && 'on' === $maybe_bypass ) {
338
  constant_contact()->mail->submit_form_values( $return['values'] ); // Emails but doesn't schedule cron.
339
  constant_contact()->mail->opt_in_user( $this->clean_values( $return['values'] ) );
221
  $resp = $recaptcha->verify( $data['g-recaptcha-response'], $_SERVER['REMOTE_ADDR'] );
222
 
223
  if ( ! $resp->isSuccess() ) {
224
+ constant_contact_maybe_log_it( 'reCAPTCHA', 'Failed to verify with Google reCAPTCHA', array( $resp->getErrorCodes() ) );
225
  // @todo Utilize the error message(s) that come back from Google, if any.
226
  return array(
227
  'status' => 'named_error',
290
  'ctct_form',
291
  '_wp_http_referer',
292
  'ctct-verify',
293
+ 'ctct_time',
294
+ 'ctct_usage_field',
295
+ 'g-recaptcha-response',
296
+ 'ctct_must_opt_in',
297
  ) );
298
 
299
  // If the submit button is clicked, send the email.
339
 
340
  // No need to check for opt in status because we would have returned early by now if false.
341
  $maybe_bypass = ctct_get_settings_option( '_ctct_bypass_cron', '' );
342
+
343
  if ( constant_contact()->api->is_connected() && 'on' === $maybe_bypass ) {
344
  constant_contact()->mail->submit_form_values( $return['values'] ); // Emails but doesn't schedule cron.
345
  constant_contact()->mail->opt_in_user( $this->clean_values( $return['values'] ) );
includes/class-settings.php CHANGED
@@ -363,6 +363,18 @@ class ConstantContact_Settings {
363
  'id' => '_ctct_recaptcha_secret_key',
364
  'type' => 'text',
365
  ) );
 
 
 
 
 
 
 
 
 
 
 
 
366
  }
367
 
368
  /**
@@ -757,7 +769,7 @@ class ConstantContact_Settings {
757
  * @since 1.2.0
758
  */
759
  public function privacy_notice_markup() {
760
- if ( $this->privacy_policy_status() ) {
761
  return;
762
  }
763
  ?>
363
  'id' => '_ctct_recaptcha_secret_key',
364
  'type' => 'text',
365
  ) );
366
+
367
+ $before_debugging = sprintf(
368
+ '<hr/><h2>%s</h2>',
369
+ esc_html__( 'Support', 'constant-contact-forms' )
370
+ );
371
+ $cmb->add_field( array(
372
+ 'name' => esc_html__( 'Enable logging for debugging purposes.', 'constant-contact-forms' ),
373
+ 'desc' => esc_html__( 'This option will turn on some logging functionality that can be used to deduce sources of issues with the use of Constant Contact Forms plugin.', 'constant-contact-forms' ),
374
+ 'id' => '_ctct_logging',
375
+ 'type' => 'checkbox',
376
+ 'before_row' => $before_debugging,
377
+ ) );
378
  }
379
 
380
  /**
769
  * @since 1.2.0
770
  */
771
  public function privacy_notice_markup() {
772
+ if ( $this->privacy_policy_status() || ! constant_contact()->is_constant_contact() ) {
773
  return;
774
  }
775
  ?>
includes/helper-functions.php CHANGED
@@ -7,6 +7,9 @@
7
  * @since 1.0.0
8
  */
9
 
 
 
 
10
  /**
11
  * Checks to see if a user is connected to Constant Contact or not.
12
  *
@@ -339,3 +342,44 @@ function constant_contact_clean_url( $url = '' ) {
339
  }
340
  return $clean_url;
341
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  * @since 1.0.0
8
  */
9
 
10
+ use Monolog\Logger;
11
+ use Monolog\Handler\StreamHandler;
12
+
13
  /**
14
  * Checks to see if a user is connected to Constant Contact or not.
15
  *
342
  }
343
  return $clean_url;
344
  }
345
+
346
+ /**
347
+ * Checks if we have our new debugging option enabled.
348
+ *
349
+ * @since 1.3.7
350
+ *
351
+ * @return bool
352
+ */
353
+ function constant_contact_debugging_enabled() {
354
+ $debugging_enabled = ctct_get_settings_option( '_ctct_logging' );
355
+
356
+ return (
357
+ ( defined( 'CONSTANT_CONTACT_DEBUG_MAIL' ) && CONSTANT_CONTACT_DEBUG_MAIL ) ||
358
+ 'on' === $debugging_enabled
359
+ );
360
+ }
361
+
362
+ /**
363
+ * Potentially add an item to our custom error log.
364
+ *
365
+ * @since 1.3.7
366
+ *
367
+ * @param strint $log_name Component that the log item is for.
368
+ * @param string $error The error to log.
369
+ * @param mixed|string $extra_data Any extra data to add to the log.
370
+ */
371
+ function constant_contact_maybe_log_it( $log_name, $error, $extra_data = '' ) {
372
+ if ( ! constant_contact_debugging_enabled() ) {
373
+ return;
374
+ }
375
+
376
+ $logger = new Logger( $log_name );
377
+ $logger->pushHandler( new StreamHandler( constant_contact()->logger_location ) );
378
+ $extra = [];
379
+
380
+ if ( $extra_data ) {
381
+ $extra = [ 'Extra information', [ $extra_data ] ];
382
+ }
383
+ // Log status of error.
384
+ $logger->addInfo( $error, $extra );
385
+ }
languages/constant-contact-forms.pot CHANGED
@@ -3,14 +3,14 @@ msgid ""
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: Constant Contact Forms for WordPress\n"
6
- "POT-Creation-Date: 2018-02-27 17:35-0600\n"
7
  "PO-Revision-Date: 2017-01-12 14:46-0600\n"
8
  "Last-Translator: Michael Beckwith <michael.d.beckwith@gmail.com>\n"
9
  "Language-Team: Constant Contact\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
- "X-Generator: Poedit 2.0.4\n"
14
  "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-WPHeader: constant-contact-forms.php\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
@@ -24,18 +24,18 @@ msgstr ""
24
  "X-Poedit-SearchPathExcluded-3: node_modules\n"
25
 
26
  #. Author of the plugin/theme
27
- #: constant-contact-forms.php:353 includes/class-builder.php:347
28
  #: includes/class-cpts.php:87 includes/class-cpts.php:145
29
  msgid "Constant Contact"
30
  msgstr ""
31
 
32
- #: constant-contact-forms.php:379
33
  msgid ""
34
  "Constant Contact Forms requires PHP 5.4 or higher. Your hosting provider or "
35
  "website administrator should be able to assist in updating your PHP version."
36
  msgstr ""
37
 
38
- #: constant-contact-forms.php:704
39
  msgid "Error loading license."
40
  msgstr ""
41
 
@@ -166,7 +166,7 @@ msgid ""
166
  "emailed to your site admin."
167
  msgstr ""
168
 
169
- #: includes/class-admin-pages.php:286 includes/class-connect.php:280
170
  msgid "Sign Up"
171
  msgstr ""
172
 
@@ -184,7 +184,7 @@ msgstr ""
184
  msgid "Enter your email address"
185
  msgstr ""
186
 
187
- #: includes/class-admin-pages.php:295 includes/class-connect.php:277
188
  #, php-format
189
  msgid ""
190
  "By submitting this form, you agree to receive periodic product announcements "
@@ -193,15 +193,15 @@ msgid ""
193
  "email. Constant Contact, Inc, 1601 Trapelo Road, Waltham, MA 02451, %s"
194
  msgstr ""
195
 
196
- #: includes/class-admin-pages.php:305
197
  msgid "Powerful Email Marketing, Made Simple."
198
  msgstr ""
199
 
200
- #: includes/class-admin-pages.php:308
201
  msgid "Create professional emails that bring customers to your door"
202
  msgstr ""
203
 
204
- #: includes/class-admin-pages.php:312
205
  msgid ""
206
  "Email marketing is good for your business. $44-back-for-every-$1-spent kind "
207
  "of good.* And with the Constant Contact for WordPress plugin, you can "
@@ -209,50 +209,50 @@ msgid ""
209
  "visitors long after they've left."
210
  msgstr ""
211
 
212
- #: includes/class-admin-pages.php:316
213
  msgid "GPLv3 license"
214
  msgstr ""
215
 
216
- #: includes/class-admin-pages.php:320
217
  #, php-format
218
  msgid "This software is released under a modified %s."
219
  msgstr ""
220
 
221
- #: includes/class-admin-pages.php:326
222
  msgid "*Direct Marketing Association 2013 Statistical Fact Book"
223
  msgstr ""
224
 
225
- #: includes/class-admin-pages.php:334
226
  msgid "Easily Add Forms"
227
  msgstr ""
228
 
229
- #: includes/class-admin-pages.php:337
230
  msgctxt "add forms alt text"
231
  msgid "add forms screenshot"
232
  msgstr ""
233
 
234
- #: includes/class-admin-pages.php:340
235
  msgid ""
236
  "Create forms that automatically select the theme and styling of your "
237
  "WordPress site for a perfect match. "
238
  msgstr ""
239
 
240
- #: includes/class-admin-pages.php:346
241
  msgid "Stay Connected With Your WordPress Visitors"
242
  msgstr ""
243
 
244
- #: includes/class-admin-pages.php:349
245
  msgctxt "stay connected alt text"
246
  msgid "stay connected screenshot"
247
  msgstr ""
248
 
249
- #: includes/class-admin-pages.php:352
250
  msgid ""
251
  "Form completions from site visitors are conveniently added to your Constant "
252
  "Contact email list."
253
  msgstr ""
254
 
255
- #: includes/class-admin-pages.php:372
256
  msgid "Constant Contact Forms - License"
257
  msgstr ""
258
 
@@ -266,7 +266,7 @@ msgstr ""
266
  msgid "License"
267
  msgstr ""
268
 
269
- #: includes/class-admin.php:210 includes/class-settings.php:685
270
  msgid "Settings updated."
271
  msgstr ""
272
 
@@ -282,6 +282,10 @@ msgstr ""
282
  msgid "Associated List"
283
  msgstr ""
284
 
 
 
 
 
285
  #: includes/class-admin.php:309
286
  msgid "Contact Count"
287
  msgstr ""
@@ -310,11 +314,15 @@ msgstr ""
310
  msgid "move down"
311
  msgstr ""
312
 
313
- #: includes/class-api.php:517
314
  msgid "Contact type not returned"
315
  msgstr ""
316
 
317
- #: includes/class-api.php:721
 
 
 
 
318
  msgid ""
319
  "Your API access token is invalid. Reconnect to Constant Contact to receive a "
320
  "new token."
@@ -731,6 +739,13 @@ msgstr ""
731
  msgid "Are you sure you want to disconnect?"
732
  msgstr ""
733
 
 
 
 
 
 
 
 
734
  #: includes/class-connect.php:188
735
  msgid "Account connected."
736
  msgstr ""
@@ -796,11 +811,11 @@ msgid ""
796
  "contacts even after they leave your website. Sign up for a free 60-day trial."
797
  msgstr ""
798
 
799
- #: includes/class-connect.php:285
800
  msgid "NOTE: "
801
  msgstr ""
802
 
803
- #: includes/class-connect.php:285
804
  msgid ""
805
  "It's possible to use the plugin without connecting to a Constant Contact "
806
  "account. In this case, all information collected by the forms will be "
@@ -841,7 +856,7 @@ msgstr ""
841
  msgid "New Form"
842
  msgstr ""
843
 
844
- #: includes/class-cpts.php:70 includes/class-display.php:613
845
  msgid "Edit Form"
846
  msgstr ""
847
 
@@ -1072,109 +1087,112 @@ msgstr ""
1072
  msgid "%1$s (last modified %2$s ago)"
1073
  msgstr ""
1074
 
1075
- #: includes/class-display.php:329
1076
  msgid "Constant Contact Use."
1077
  msgstr ""
1078
 
1079
- #: includes/class-display.php:440 includes/class-display.php:1292
1080
  msgid "Error: Please correct your entry."
1081
  msgstr ""
1082
 
1083
- #: includes/class-display.php:442
1084
  msgid " Error: Please fill out this field."
1085
  msgstr ""
1086
 
1087
- #: includes/class-display.php:867
1088
  msgid "Send"
1089
  msgstr ""
1090
 
1091
- #: includes/class-display.php:982
1092
  msgid "Street Address"
1093
  msgstr ""
1094
 
1095
- #: includes/class-display.php:983
1096
  msgid "Address Line 2"
1097
  msgstr ""
1098
 
1099
- #: includes/class-display.php:984
1100
  msgid "City"
1101
  msgstr ""
1102
 
1103
- #: includes/class-display.php:985
1104
  msgid "State"
1105
  msgstr ""
1106
 
1107
- #: includes/class-display.php:986
1108
  msgid "ZIP Code"
1109
  msgstr ""
1110
 
1111
- #: includes/class-display.php:1051
1112
  msgid "Month"
1113
  msgstr ""
1114
 
1115
- #: includes/class-display.php:1052
1116
  msgid "Day"
1117
  msgstr ""
1118
 
1119
- #: includes/class-display.php:1053
1120
  msgid "Year"
1121
  msgstr ""
1122
 
1123
- #: includes/class-display.php:1177
1124
  msgid "January"
1125
  msgstr ""
1126
 
1127
- #: includes/class-display.php:1178
1128
  msgid "February"
1129
  msgstr ""
1130
 
1131
- #: includes/class-display.php:1179
1132
  msgid "March"
1133
  msgstr ""
1134
 
1135
- #: includes/class-display.php:1180
1136
  msgid "April"
1137
  msgstr ""
1138
 
1139
- #: includes/class-display.php:1181
1140
  msgid "May"
1141
  msgstr ""
1142
 
1143
- #: includes/class-display.php:1182
1144
  msgid "June"
1145
  msgstr ""
1146
 
1147
- #: includes/class-display.php:1183
1148
  msgid "July "
1149
  msgstr ""
1150
 
1151
- #: includes/class-display.php:1184
1152
  msgid "August"
1153
  msgstr ""
1154
 
1155
- #: includes/class-display.php:1185
1156
  msgid "September"
1157
  msgstr ""
1158
 
1159
- #: includes/class-display.php:1186
1160
  msgid "October"
1161
  msgstr ""
1162
 
1163
- #: includes/class-display.php:1187
1164
  msgid "November"
1165
  msgstr ""
1166
 
1167
- #: includes/class-display.php:1188
1168
  msgid "December"
1169
  msgstr ""
1170
 
1171
- #: includes/class-display.php:1357
1172
  #, php-format
1173
  msgid ""
1174
- "By submitting this form, you are granting: %s, permission to email you. You "
1175
- "may unsubscribe via the link found at the bottom of every email. (See our "
1176
- "Email Privacy Policy (http://constantcontact.com/legal/privacy-statement) "
1177
- "for details.) Emails are serviced by Constant Contact."
 
 
 
1178
  msgstr ""
1179
 
1180
  #: includes/class-lists.php:81
@@ -1193,24 +1211,68 @@ msgstr ""
1193
  msgid "Sync Lists with Constant Contact"
1194
  msgstr ""
1195
 
1196
- #: includes/class-mail.php:257
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1197
  #, php-format
1198
  msgid "Duplicate send mail for: %1$s and: %2$s"
1199
  msgstr ""
1200
 
1201
- #: includes/class-mail.php:281
1202
  msgid "Your Constant Contact Forms plugin has captured new information."
1203
  msgstr ""
1204
 
1205
- #: includes/class-mail.php:285
1206
  msgid "Form title: "
1207
  msgstr ""
1208
 
1209
- #: includes/class-mail.php:286
1210
  msgid "Form information: "
1211
  msgstr ""
1212
 
1213
- #: includes/class-mail.php:292
1214
  #, php-format
1215
  msgid ""
1216
  "Email marketing is a great way to stay connected and engage with visitors "
@@ -1218,30 +1280,30 @@ msgid ""
1218
  "pn=miwordpress%s to sign up for a Free Trial."
1219
  msgstr ""
1220
 
1221
- #: includes/class-mail.php:329
1222
  msgid "Constant Contact Forms Notification"
1223
  msgstr ""
1224
 
1225
- #: includes/class-mail.php:421
1226
  #, php-format
1227
  msgid ""
1228
  "%sNote:%s You have disabled admin email notifications under the plugin "
1229
  "settings, but are receiving this email because of the following reason."
1230
  msgstr ""
1231
 
1232
- #: includes/class-mail.php:444
1233
  msgid "Submitted to Constant Contact:"
1234
  msgstr ""
1235
 
1236
- #: includes/class-mail.php:450
1237
  msgid "NO (Constant Contact list not selected for this form)"
1238
  msgstr ""
1239
 
1240
- #: includes/class-mail.php:456
1241
  msgid "NO (User did not select the Email Opt-in checkbox)"
1242
  msgstr ""
1243
 
1244
- #: includes/class-mail.php:456
1245
  msgid ""
1246
  "You can disable this under Form options. Email Opt-in isn't required to add "
1247
  "subscribers into your account"
@@ -1269,12 +1331,6 @@ msgid ""
1269
  "You may experience some issues with syncing them."
1270
  msgstr ""
1271
 
1272
- #: includes/class-notification-content.php:109
1273
- #: includes/class-notification-content.php:139 includes/class-optin.php:129
1274
- #: includes/class-settings.php:769
1275
- msgid "Constant Contact logo"
1276
- msgstr ""
1277
-
1278
  #: includes/class-notification-content.php:111
1279
  msgid "Constant Contact Forms for WordPress data tracking opt-in"
1280
  msgstr ""
@@ -1310,24 +1366,24 @@ msgstr ""
1310
  msgid "Dismiss this notice."
1311
  msgstr ""
1312
 
1313
- #: includes/class-optin.php:137 includes/class-settings.php:777
1314
  msgid "Agree"
1315
  msgstr ""
1316
 
1317
- #: includes/class-optin.php:138 includes/class-settings.php:778
1318
  msgid "Disagree"
1319
  msgstr ""
1320
 
1321
- #: includes/class-process-form.php:107 includes/class-process-form.php:654
1322
  msgid "There was an error sending your form."
1323
  msgstr ""
1324
 
1325
- #: includes/class-process-form.php:118 includes/class-process-form.php:674
1326
  msgid "Your information has been submitted."
1327
  msgstr ""
1328
 
1329
- #: includes/class-process-form.php:135 includes/class-process-form.php:255
1330
- #: includes/class-process-form.php:691
1331
  msgid ""
1332
  "We had trouble processing your submission. Please review your entries and "
1333
  "try again."
@@ -1341,7 +1397,7 @@ msgstr ""
1341
  msgid "No form verify value provided"
1342
  msgstr ""
1343
 
1344
- #: includes/class-process-form.php:202 includes/class-process-form.php:243
1345
  msgid "We do no think you are human"
1346
  msgstr ""
1347
 
@@ -1349,12 +1405,12 @@ msgstr ""
1349
  msgid "Please properly fill out all required fields"
1350
  msgstr ""
1351
 
1352
- #: includes/class-process-form.php:227
1353
  msgid "Failed reCAPTCHA check"
1354
  msgstr ""
1355
 
1356
- #: includes/class-process-form.php:264 includes/class-process-form.php:273
1357
- #: includes/class-process-form.php:282
1358
  msgid ""
1359
  "We had trouble processing your submission. Make sure you haven't changed the "
1360
  "required Form ID and try again."
@@ -1450,19 +1506,33 @@ msgstr ""
1450
  msgid "Secret Key"
1451
  msgstr ""
1452
 
1453
- #: includes/class-settings.php:379
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1454
  msgid "Add a checkbox to the comment field in your posts"
1455
  msgstr ""
1456
 
1457
- #: includes/class-settings.php:380
1458
  msgid "Add a checkbox to the main WordPress login page"
1459
  msgstr ""
1460
 
1461
- #: includes/class-settings.php:385
1462
  msgid "Add a checkbox to the WordPress user registration page"
1463
  msgstr ""
1464
 
1465
- #: includes/class-settings.php:474
1466
  msgid "Sign up to our newsletter."
1467
  msgstr ""
1468
 
3
  msgstr ""
4
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: Constant Contact Forms for WordPress\n"
6
+ "POT-Creation-Date: 2018-05-01 16:12-0500\n"
7
  "PO-Revision-Date: 2017-01-12 14:46-0600\n"
8
  "Last-Translator: Michael Beckwith <michael.d.beckwith@gmail.com>\n"
9
  "Language-Team: Constant Contact\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Generator: Poedit 2.0.7\n"
14
  "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-WPHeader: constant-contact-forms.php\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
24
  "X-Poedit-SearchPathExcluded-3: node_modules\n"
25
 
26
  #. Author of the plugin/theme
27
+ #: constant-contact-forms.php:363 includes/class-builder.php:347
28
  #: includes/class-cpts.php:87 includes/class-cpts.php:145
29
  msgid "Constant Contact"
30
  msgstr ""
31
 
32
+ #: constant-contact-forms.php:390
33
  msgid ""
34
  "Constant Contact Forms requires PHP 5.4 or higher. Your hosting provider or "
35
  "website administrator should be able to assist in updating your PHP version."
36
  msgstr ""
37
 
38
+ #: constant-contact-forms.php:718
39
  msgid "Error loading license."
40
  msgstr ""
41
 
166
  "emailed to your site admin."
167
  msgstr ""
168
 
169
+ #: includes/class-admin-pages.php:286 includes/class-connect.php:281
170
  msgid "Sign Up"
171
  msgstr ""
172
 
184
  msgid "Enter your email address"
185
  msgstr ""
186
 
187
+ #: includes/class-admin-pages.php:296 includes/class-connect.php:278
188
  #, php-format
189
  msgid ""
190
  "By submitting this form, you agree to receive periodic product announcements "
193
  "email. Constant Contact, Inc, 1601 Trapelo Road, Waltham, MA 02451, %s"
194
  msgstr ""
195
 
196
+ #: includes/class-admin-pages.php:306
197
  msgid "Powerful Email Marketing, Made Simple."
198
  msgstr ""
199
 
200
+ #: includes/class-admin-pages.php:309
201
  msgid "Create professional emails that bring customers to your door"
202
  msgstr ""
203
 
204
+ #: includes/class-admin-pages.php:313
205
  msgid ""
206
  "Email marketing is good for your business. $44-back-for-every-$1-spent kind "
207
  "of good.* And with the Constant Contact for WordPress plugin, you can "
209
  "visitors long after they've left."
210
  msgstr ""
211
 
212
+ #: includes/class-admin-pages.php:317
213
  msgid "GPLv3 license"
214
  msgstr ""
215
 
216
+ #: includes/class-admin-pages.php:321
217
  #, php-format
218
  msgid "This software is released under a modified %s."
219
  msgstr ""
220
 
221
+ #: includes/class-admin-pages.php:327
222
  msgid "*Direct Marketing Association 2013 Statistical Fact Book"
223
  msgstr ""
224
 
225
+ #: includes/class-admin-pages.php:335
226
  msgid "Easily Add Forms"
227
  msgstr ""
228
 
229
+ #: includes/class-admin-pages.php:338
230
  msgctxt "add forms alt text"
231
  msgid "add forms screenshot"
232
  msgstr ""
233
 
234
+ #: includes/class-admin-pages.php:341
235
  msgid ""
236
  "Create forms that automatically select the theme and styling of your "
237
  "WordPress site for a perfect match. "
238
  msgstr ""
239
 
240
+ #: includes/class-admin-pages.php:347
241
  msgid "Stay Connected With Your WordPress Visitors"
242
  msgstr ""
243
 
244
+ #: includes/class-admin-pages.php:350
245
  msgctxt "stay connected alt text"
246
  msgid "stay connected screenshot"
247
  msgstr ""
248
 
249
+ #: includes/class-admin-pages.php:353
250
  msgid ""
251
  "Form completions from site visitors are conveniently added to your Constant "
252
  "Contact email list."
253
  msgstr ""
254
 
255
+ #: includes/class-admin-pages.php:373
256
  msgid "Constant Contact Forms - License"
257
  msgstr ""
258
 
266
  msgid "License"
267
  msgstr ""
268
 
269
+ #: includes/class-admin.php:210 includes/class-settings.php:697
270
  msgid "Settings updated."
271
  msgstr ""
272
 
282
  msgid "Associated List"
283
  msgstr ""
284
 
285
+ #: includes/class-admin.php:293
286
+ msgid "No associated form"
287
+ msgstr ""
288
+
289
  #: includes/class-admin.php:309
290
  msgid "Contact Count"
291
  msgstr ""
314
  msgid "move down"
315
  msgstr ""
316
 
317
+ #: includes/class-api.php:525
318
  msgid "Contact type not returned"
319
  msgstr ""
320
 
321
+ #: includes/class-api.php:547
322
+ msgid "Not a valid contact to set properties to."
323
+ msgstr ""
324
+
325
+ #: includes/class-api.php:727
326
  msgid ""
327
  "Your API access token is invalid. Reconnect to Constant Contact to receive a "
328
  "new token."
739
  msgid "Are you sure you want to disconnect?"
740
  msgstr ""
741
 
742
+ #: includes/class-connect.php:181 includes/class-logging.php:130
743
+ #: includes/class-notification-content.php:109
744
+ #: includes/class-notification-content.php:139 includes/class-optin.php:129
745
+ #: includes/class-settings.php:781
746
+ msgid "Constant Contact logo"
747
+ msgstr ""
748
+
749
  #: includes/class-connect.php:188
750
  msgid "Account connected."
751
  msgstr ""
811
  "contacts even after they leave your website. Sign up for a free 60-day trial."
812
  msgstr ""
813
 
814
+ #: includes/class-connect.php:286
815
  msgid "NOTE: "
816
  msgstr ""
817
 
818
+ #: includes/class-connect.php:286
819
  msgid ""
820
  "It's possible to use the plugin without connecting to a Constant Contact "
821
  "account. In this case, all information collected by the forms will be "
856
  msgid "New Form"
857
  msgstr ""
858
 
859
+ #: includes/class-cpts.php:70 includes/class-display.php:615
860
  msgid "Edit Form"
861
  msgstr ""
862
 
1087
  msgid "%1$s (last modified %2$s ago)"
1088
  msgstr ""
1089
 
1090
+ #: includes/class-display.php:330
1091
  msgid "Constant Contact Use."
1092
  msgstr ""
1093
 
1094
+ #: includes/class-display.php:442 includes/class-display.php:1295
1095
  msgid "Error: Please correct your entry."
1096
  msgstr ""
1097
 
1098
+ #: includes/class-display.php:444
1099
  msgid " Error: Please fill out this field."
1100
  msgstr ""
1101
 
1102
+ #: includes/class-display.php:870
1103
  msgid "Send"
1104
  msgstr ""
1105
 
1106
+ #: includes/class-display.php:985
1107
  msgid "Street Address"
1108
  msgstr ""
1109
 
1110
+ #: includes/class-display.php:986
1111
  msgid "Address Line 2"
1112
  msgstr ""
1113
 
1114
+ #: includes/class-display.php:987
1115
  msgid "City"
1116
  msgstr ""
1117
 
1118
+ #: includes/class-display.php:988
1119
  msgid "State"
1120
  msgstr ""
1121
 
1122
+ #: includes/class-display.php:989
1123
  msgid "ZIP Code"
1124
  msgstr ""
1125
 
1126
+ #: includes/class-display.php:1054
1127
  msgid "Month"
1128
  msgstr ""
1129
 
1130
+ #: includes/class-display.php:1055
1131
  msgid "Day"
1132
  msgstr ""
1133
 
1134
+ #: includes/class-display.php:1056
1135
  msgid "Year"
1136
  msgstr ""
1137
 
1138
+ #: includes/class-display.php:1180
1139
  msgid "January"
1140
  msgstr ""
1141
 
1142
+ #: includes/class-display.php:1181
1143
  msgid "February"
1144
  msgstr ""
1145
 
1146
+ #: includes/class-display.php:1182
1147
  msgid "March"
1148
  msgstr ""
1149
 
1150
+ #: includes/class-display.php:1183
1151
  msgid "April"
1152
  msgstr ""
1153
 
1154
+ #: includes/class-display.php:1184
1155
  msgid "May"
1156
  msgstr ""
1157
 
1158
+ #: includes/class-display.php:1185
1159
  msgid "June"
1160
  msgstr ""
1161
 
1162
+ #: includes/class-display.php:1186
1163
  msgid "July "
1164
  msgstr ""
1165
 
1166
+ #: includes/class-display.php:1187
1167
  msgid "August"
1168
  msgstr ""
1169
 
1170
+ #: includes/class-display.php:1188
1171
  msgid "September"
1172
  msgstr ""
1173
 
1174
+ #: includes/class-display.php:1189
1175
  msgid "October"
1176
  msgstr ""
1177
 
1178
+ #: includes/class-display.php:1190
1179
  msgid "November"
1180
  msgstr ""
1181
 
1182
+ #: includes/class-display.php:1191
1183
  msgid "December"
1184
  msgstr ""
1185
 
1186
+ #: includes/class-display.php:1362
1187
  #, php-format
1188
  msgid ""
1189
+ "By submitting this form, you are consenting to receive marketing emails "
1190
+ "from: %s. You can revoke your consent to receive emails at any time by using "
1191
+ "the SafeUnsubscribe&reg; link, found at the bottom of every email. %s"
1192
+ msgstr ""
1193
+
1194
+ #: includes/class-display.php:1368
1195
+ msgid "Emails are serviced by Constant Contact"
1196
  msgstr ""
1197
 
1198
  #: includes/class-lists.php:81
1211
  msgid "Sync Lists with Constant Contact"
1212
  msgstr ""
1213
 
1214
+ #: includes/class-logging.php:85
1215
+ msgid "Are you sure you want to delete current logs?"
1216
+ msgstr ""
1217
+
1218
+ #: includes/class-logging.php:103
1219
+ msgid "Debug logs"
1220
+ msgstr ""
1221
+
1222
+ #: includes/class-logging.php:137
1223
+ msgid "No error log exists"
1224
+ msgstr ""
1225
+
1226
+ #: includes/class-logging.php:146
1227
+ #, php-format
1228
+ msgid "Log display error: %s"
1229
+ msgstr ""
1230
+
1231
+ #: includes/class-logging.php:156
1232
+ msgid ""
1233
+ "Error log below can be used with support requests to help identify issues "
1234
+ "with Constant Contact Forms."
1235
+ msgstr ""
1236
+
1237
+ #: includes/class-logging.php:157
1238
+ msgid ""
1239
+ "When available, you can share information by copying and pasting the content "
1240
+ "in the textarea, or by using the \"Download logs\" link at the end. Logs can "
1241
+ "be cleared by using the \"Delete logs\" link."
1242
+ msgstr ""
1243
+
1244
+ #: includes/class-logging.php:164
1245
+ msgid ""
1246
+ "Error log may still have content, even if an error is shown above. Please "
1247
+ "use the download link below."
1248
+ msgstr ""
1249
+
1250
+ #: includes/class-logging.php:173
1251
+ msgid "Download logs"
1252
+ msgstr ""
1253
+
1254
+ #: includes/class-logging.php:181
1255
+ msgid "Delete logs"
1256
+ msgstr ""
1257
+
1258
+ #: includes/class-mail.php:269
1259
  #, php-format
1260
  msgid "Duplicate send mail for: %1$s and: %2$s"
1261
  msgstr ""
1262
 
1263
+ #: includes/class-mail.php:293
1264
  msgid "Your Constant Contact Forms plugin has captured new information."
1265
  msgstr ""
1266
 
1267
+ #: includes/class-mail.php:297
1268
  msgid "Form title: "
1269
  msgstr ""
1270
 
1271
+ #: includes/class-mail.php:298
1272
  msgid "Form information: "
1273
  msgstr ""
1274
 
1275
+ #: includes/class-mail.php:304
1276
  #, php-format
1277
  msgid ""
1278
  "Email marketing is a great way to stay connected and engage with visitors "
1280
  "pn=miwordpress%s to sign up for a Free Trial."
1281
  msgstr ""
1282
 
1283
+ #: includes/class-mail.php:341
1284
  msgid "Constant Contact Forms Notification"
1285
  msgstr ""
1286
 
1287
+ #: includes/class-mail.php:429
1288
  #, php-format
1289
  msgid ""
1290
  "%sNote:%s You have disabled admin email notifications under the plugin "
1291
  "settings, but are receiving this email because of the following reason."
1292
  msgstr ""
1293
 
1294
+ #: includes/class-mail.php:452
1295
  msgid "Submitted to Constant Contact:"
1296
  msgstr ""
1297
 
1298
+ #: includes/class-mail.php:458
1299
  msgid "NO (Constant Contact list not selected for this form)"
1300
  msgstr ""
1301
 
1302
+ #: includes/class-mail.php:464
1303
  msgid "NO (User did not select the Email Opt-in checkbox)"
1304
  msgstr ""
1305
 
1306
+ #: includes/class-mail.php:464
1307
  msgid ""
1308
  "You can disable this under Form options. Email Opt-in isn't required to add "
1309
  "subscribers into your account"
1331
  "You may experience some issues with syncing them."
1332
  msgstr ""
1333
 
 
 
 
 
 
 
1334
  #: includes/class-notification-content.php:111
1335
  msgid "Constant Contact Forms for WordPress data tracking opt-in"
1336
  msgstr ""
1366
  msgid "Dismiss this notice."
1367
  msgstr ""
1368
 
1369
+ #: includes/class-optin.php:137 includes/class-settings.php:789
1370
  msgid "Agree"
1371
  msgstr ""
1372
 
1373
+ #: includes/class-optin.php:138 includes/class-settings.php:790
1374
  msgid "Disagree"
1375
  msgstr ""
1376
 
1377
+ #: includes/class-process-form.php:107 includes/class-process-form.php:660
1378
  msgid "There was an error sending your form."
1379
  msgstr ""
1380
 
1381
+ #: includes/class-process-form.php:118 includes/class-process-form.php:680
1382
  msgid "Your information has been submitted."
1383
  msgstr ""
1384
 
1385
+ #: includes/class-process-form.php:135 includes/class-process-form.php:256
1386
+ #: includes/class-process-form.php:697
1387
  msgid ""
1388
  "We had trouble processing your submission. Please review your entries and "
1389
  "try again."
1397
  msgid "No form verify value provided"
1398
  msgstr ""
1399
 
1400
+ #: includes/class-process-form.php:202 includes/class-process-form.php:244
1401
  msgid "We do no think you are human"
1402
  msgstr ""
1403
 
1405
  msgid "Please properly fill out all required fields"
1406
  msgstr ""
1407
 
1408
+ #: includes/class-process-form.php:228
1409
  msgid "Failed reCAPTCHA check"
1410
  msgstr ""
1411
 
1412
+ #: includes/class-process-form.php:265 includes/class-process-form.php:274
1413
+ #: includes/class-process-form.php:283
1414
  msgid ""
1415
  "We had trouble processing your submission. Make sure you haven't changed the "
1416
  "required Form ID and try again."
1506
  msgid "Secret Key"
1507
  msgstr ""
1508
 
1509
+ #: includes/class-settings.php:369
1510
+ msgid "Support"
1511
+ msgstr ""
1512
+
1513
+ #: includes/class-settings.php:372
1514
+ msgid "Enable logging for debugging purposes."
1515
+ msgstr ""
1516
+
1517
+ #: includes/class-settings.php:373
1518
+ msgid ""
1519
+ "This option will turn on some logging functionality that can be used to "
1520
+ "deduce sources of issues with the use of Constant Contact Forms plugin."
1521
+ msgstr ""
1522
+
1523
+ #: includes/class-settings.php:391
1524
  msgid "Add a checkbox to the comment field in your posts"
1525
  msgstr ""
1526
 
1527
+ #: includes/class-settings.php:392
1528
  msgid "Add a checkbox to the main WordPress login page"
1529
  msgstr ""
1530
 
1531
+ #: includes/class-settings.php:397
1532
  msgid "Add a checkbox to the WordPress user registration page"
1533
  msgstr ""
1534
 
1535
+ #: includes/class-settings.php:486
1536
  msgid "Sign up to our newsletter."
1537
  msgstr ""
1538
 
package.json CHANGED
@@ -14,7 +14,7 @@
14
  "gulp-plumber": "^1.1.0",
15
  "gulp-postcss": "^6.4.0",
16
  "gulp-rename": "^1.2.2",
17
- "gulp-sass": "^2.2.0",
18
  "gulp-sort": "^1.1.1",
19
  "gulp-sourcemaps": "^1.12.0",
20
  "gulp-uglify": "^1.5.2",
14
  "gulp-plumber": "^1.1.0",
15
  "gulp-postcss": "^6.4.0",
16
  "gulp-rename": "^1.2.2",
17
+ "gulp-sass": "~3",
18
  "gulp-sort": "^1.1.1",
19
  "gulp-sourcemaps": "^1.12.0",
20
  "gulp-uglify": "^1.5.2",
readme.txt CHANGED
@@ -3,9 +3,10 @@ Contributors: constantcontact
3
  Tags: capture, contacts, constant contact, constant contact form, constant contact newsletter, constant contact official, contact forms, email, form, forms, marketing, mobile, newsletter, opt-in, plugin, signup, subscribe, subscription, widget
4
  Requires at least: 4.0.0
5
  Tested up to: 4.9.4
6
- Stable tag: 1.3.6
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
 
9
 
10
  The official Constant Contact plugin adds a contact form to your WordPress site to quickly capture information from visitors.
11
 
@@ -33,6 +34,18 @@ BONUS: If you have a Constant Contact account, all new email addresses that you
33
  5. Basic Form
34
 
35
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  = 1.3.6 =
38
  * Fixed: Validate and potentially create full urls for values passed into custom "redirect to url" values. Prevents unintended destinations from partial urls.
3
  Tags: capture, contacts, constant contact, constant contact form, constant contact newsletter, constant contact official, contact forms, email, form, forms, marketing, mobile, newsletter, opt-in, plugin, signup, subscribe, subscription, widget
4
  Requires at least: 4.0.0
5
  Tested up to: 4.9.4
6
+ Stable tag: 1.3.7
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
+ Requires PHP: 5.4
10
 
11
  The official Constant Contact plugin adds a contact form to your WordPress site to quickly capture information from visitors.
12
 
34
  5. Basic Form
35
 
36
  == Changelog ==
37
+ = 1.3.7 =
38
+ * Added: Logging functionality to help aid with debugging and the plugin not working as needed or expected.
39
+ * Added: Passed form ID to filters related to including labels for custom fields.
40
+ * Fixed: Made sure some Constant Contact markup was only added to the page when in a Constant Contact area.
41
+ * Fixed: Issue with submitted custom field lengths when also including the original labels. Users were able to still go above 50 character limit.
42
+ * Fixed: Addressed issue with email bypassing when not needing to opt in.
43
+ * Updated: CMB2 library to version 2.3.0.
44
+ * Updated: Guzzle library to version 5.3.2.
45
+ * Updated: Code quality regarding translated text, namespaces, and returned value consistency.
46
+ * Updated: Added minimum PHP version to plugin readme for use on WordPress.org.
47
+ * Updated: Reduced cache time for account information so changes reflect in WP admin more quickly.
48
+ * Updated: Revised disclosure message on the form to be more GDPR compliant.
49
 
50
  = 1.3.6 =
51
  * Fixed: Validate and potentially create full urls for values passed into custom "redirect to url" values. Prevents unintended destinations from partial urls.
vendor/CMB2/bootstrap.php CHANGED
@@ -4,13 +4,14 @@
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
- * @author WebDevStudios
8
  * @license GPL-2.0+
9
- * @link http://webdevstudios.com
10
  */
11
 
12
  /**
13
  * Function to encapsulate the CMB2 bootstrap process.
 
14
  * @since 2.2.0
15
  * @return void
16
  */
@@ -35,6 +36,7 @@ function cmb2_bootstrap() {
35
  /**
36
  * For back-compat. Does the dirty-work of instantiating all the
37
  * CMB2 instances for the cmb2_meta_boxes filter
 
38
  * @since 2.0.2
39
  */
40
  $cmb_config_arrays = apply_filters( 'cmb2_meta_boxes', array() );
@@ -50,20 +52,27 @@ function cmb2_bootstrap() {
50
  /**
51
  * Get all created metaboxes, and instantiate CMB2_hookup
52
  * on metaboxes which require it.
 
53
  * @since 2.0.2
54
  */
55
  foreach ( CMB2_Boxes::get_all() as $cmb ) {
56
 
57
- if ( $cmb->prop( 'hookup' ) ) {
58
- $hookup = new CMB2_hookup( $cmb );
59
- $hookup->universal_hooks();
60
- }
61
-
62
- if ( $cmb->prop( 'show_in_rest' ) && function_exists( 'rest_get_server' ) ) {
63
- $rest = new CMB2_REST( $cmb );
64
- $rest->universal_hooks();
65
- }
66
-
 
 
 
 
 
 
67
  }
68
 
69
  /**
@@ -72,4 +81,4 @@ function cmb2_bootstrap() {
72
  do_action( 'cmb2_after_init' );
73
  }
74
 
75
- // End. That's it, folks! //
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
+ * @author CMB2
8
  * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
  */
11
 
12
  /**
13
  * Function to encapsulate the CMB2 bootstrap process.
14
+ *
15
  * @since 2.2.0
16
  * @return void
17
  */
36
  /**
37
  * For back-compat. Does the dirty-work of instantiating all the
38
  * CMB2 instances for the cmb2_meta_boxes filter
39
+ *
40
  * @since 2.0.2
41
  */
42
  $cmb_config_arrays = apply_filters( 'cmb2_meta_boxes', array() );
52
  /**
53
  * Get all created metaboxes, and instantiate CMB2_hookup
54
  * on metaboxes which require it.
55
+ *
56
  * @since 2.0.2
57
  */
58
  foreach ( CMB2_Boxes::get_all() as $cmb ) {
59
 
60
+ /**
61
+ * Initiates the box "hookup" into WordPress.
62
+ *
63
+ * Unless the 'hookup' box property is `false`, the box will be hooked in as
64
+ * a post/user/comment/option/term box.
65
+ *
66
+ * And if the 'show_in_rest' box property is set, the box will be hooked
67
+ * into the CMB2 REST API.
68
+ *
69
+ * The dynamic portion of the hook name, $cmb->cmb_id, is the box id.
70
+ *
71
+ * @since 2.2.6
72
+ *
73
+ * @param array $cmb The CMB2 object to hookup.
74
+ */
75
+ do_action( "cmb2_init_hookup_{$cmb->cmb_id}", $cmb );
76
  }
77
 
78
  /**
81
  do_action( 'cmb2_after_init' );
82
  }
83
 
84
+ /* End. That's it, folks! */
vendor/CMB2/css/cmb2-front-rtl.css CHANGED
@@ -1,3 +1,4 @@
 
1
  /**
2
  * CMB2 Styling
3
  */
@@ -50,7 +51,7 @@ Main Wrap
50
  }
51
  /* line 59, sass/partials/_main_wrap.scss */
52
  .cmb2-wrap input:not([type="hidden"]) + input,
53
- .cmb2-wrap input:not([type="hidden"]) + .button,
54
  .cmb2-wrap input:not([type="hidden"]) + select {
55
  margin-right: 20px;
56
  }
@@ -86,7 +87,7 @@ Main Wrap
86
  }
87
  /* line 102, sass/partials/_main_wrap.scss */
88
  .cmb2-wrap button,
89
- .cmb2-wrap .button {
90
  white-space: nowrap;
91
  }
92
  /* line 107, sass/partials/_main_wrap.scss */
@@ -105,91 +106,76 @@ Main Wrap
105
  .cmb2-wrap .meta_mce textarea {
106
  width: 100%;
107
  }
108
- /* line 126, sass/partials/_main_wrap.scss */
109
  .cmb2-wrap .wp-color-result,
110
  .cmb2-wrap .wp-picker-input-wrap {
111
  vertical-align: middle;
112
  }
113
- /* line 131, sass/partials/_main_wrap.scss */
114
  .cmb2-wrap .wp-color-result,
115
  .cmb2-wrap .wp-picker-container {
116
  margin: 0 0 0 10px;
117
  }
118
- /* line 136, sass/partials/_main_wrap.scss */
119
  .cmb2-wrap .cmb-row {
120
  margin: 0;
121
  }
122
- /* line 139, sass/partials/_main_wrap.scss */
123
  .cmb2-wrap .cmb-row:after {
124
  content: '';
125
  clear: both;
126
  display: block;
127
  width: 100%;
128
  }
129
- /* line 146, sass/partials/_main_wrap.scss */
130
- .cmb2-wrap .cmb-row.cmb-repeat-row {
131
- padding: 1.8em 0 0;
132
- }
133
- /* line 149, sass/partials/_main_wrap.scss */
134
- .cmb2-wrap .cmb-row.cmb-repeat-row:first-of-type {
135
- padding: 0;
136
- }
137
- /* line 154, sass/partials/_main_wrap.scss */
138
  .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
139
  padding-top: 0;
140
- padding-bottom: 1.8em;
141
  }
142
 
143
- /* line 161, sass/partials/_main_wrap.scss */
144
  .cmb2-metabox {
145
  clear: both;
146
  margin: 0;
147
  }
148
- /* line 167, sass/partials/_main_wrap.scss */
149
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
150
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
151
  .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-td,
152
  .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-th {
153
  border: 0;
154
  }
155
- /* line 174, sass/partials/_main_wrap.scss */
156
- .cmb2-metabox > .cmb-row .cmb-repeat-table .cmb-row > .cmb-td {
157
- padding-left: 20px;
158
- box-sizing: border-box;
159
- float: right;
160
- }
161
 
162
- /* line 182, sass/partials/_main_wrap.scss */
163
  .cmb-add-row {
164
  margin: 1.8em 0 0;
165
  }
166
 
167
- /* line 186, sass/partials/_main_wrap.scss */
168
  .cmb-nested .cmb-td,
169
  .cmb-repeatable-group .cmb-th,
170
  .cmb-repeatable-group:first-of-type {
171
  border: 0;
172
  }
173
 
174
- /* line 192, sass/partials/_main_wrap.scss */
175
  .cmb-row:last-of-type,
176
  .cmb2-wrap .cmb-row:last-of-type,
177
  .cmb-repeatable-group:last-of-type {
178
  border-bottom: 0;
179
  }
180
 
181
- /* line 198, sass/partials/_main_wrap.scss */
182
  .cmb-repeatable-grouping {
183
  border: 1px solid #e9e9e9;
184
  padding: 0 1em;
185
- max-width: 1000px;
186
  }
187
- /* line 202, sass/partials/_main_wrap.scss */
188
  .cmb-repeatable-grouping.cmb-row {
189
  margin: 0 0 0.8em;
190
  }
191
 
192
- /* line 209, sass/partials/_main_wrap.scss */
193
  .cmb-th {
194
  color: #222222;
195
  float: right;
@@ -200,7 +186,7 @@ Main Wrap
200
  width: 200px;
201
  }
202
  @media (max-width: 450px) {
203
- /* line 209, sass/partials/_main_wrap.scss */
204
  .cmb-th {
205
  font-size: 1.2em;
206
  display: block;
@@ -212,20 +198,12 @@ Main Wrap
212
  /* line 27, sass/partials/_mixins.scss */
213
  .cmb-th label {
214
  display: block;
215
- margin-top: 0em;
216
- padding-bottom: 5px;
217
- }
218
- /* line 32, sass/partials/_mixins.scss */
219
- .cmb-th label:after {
220
- border-bottom: 1px solid #e9e9e9;
221
- content: '';
222
- clear: both;
223
- display: block;
224
- padding-top: .4em;
225
  }
226
  }
227
 
228
- /* line 223, sass/partials/_main_wrap.scss */
229
  .cmb-td {
230
  line-height: 1.3;
231
  max-width: 100%;
@@ -233,42 +211,135 @@ Main Wrap
233
  vertical-align: middle;
234
  }
235
 
236
- /* line 232, sass/partials/_main_wrap.scss */
237
  .cmb-type-title .cmb-td {
238
  padding: 0;
239
  }
240
 
241
- /* line 237, sass/partials/_main_wrap.scss */
242
  .cmb-th label {
243
  display: block;
244
  padding: 5px 0;
245
  }
246
 
247
- /* line 242, sass/partials/_main_wrap.scss */
248
  .cmb-th + .cmb-td {
249
  float: right;
250
  }
251
 
252
- /* line 246, sass/partials/_main_wrap.scss */
253
  .cmb-td .cmb-td {
254
  padding-bottom: 1em;
255
  }
256
 
257
- /* line 250, sass/partials/_main_wrap.scss */
258
  .cmb-remove-row {
259
  text-align: left;
260
  }
261
 
262
- /* line 254, sass/partials/_main_wrap.scss */
263
  .empty-row.hidden {
264
  display: none;
265
  }
266
 
267
- /* line 260, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  .cmb-repeatable-group .cmb-th {
269
  padding: 5px;
270
  }
271
- /* line 264, sass/partials/_main_wrap.scss */
272
  .cmb-repeatable-group .cmb-group-title {
273
  background-color: #e9e9e9;
274
  padding: 8px 2.2em 8px 12px;
@@ -277,7 +348,7 @@ Main Wrap
277
  font-size: 14px;
278
  line-height: 1.4;
279
  }
280
- /* line 272, sass/partials/_main_wrap.scss */
281
  .cmb-repeatable-group .cmb-group-title h4 {
282
  border: 0;
283
  margin: 0;
@@ -285,12 +356,12 @@ Main Wrap
285
  font-weight: 500;
286
  padding: 0.5em 0.75em;
287
  }
288
- /* line 280, sass/partials/_main_wrap.scss */
289
  .cmb-repeatable-group .cmb-group-title .cmb-th {
290
  display: block;
291
  width: 100%;
292
  }
293
- /* line 286, sass/partials/_main_wrap.scss */
294
  .cmb-repeatable-group .cmb-group-description .cmb-th {
295
  font-size: 1.2em;
296
  display: block;
@@ -302,40 +373,32 @@ Main Wrap
302
  /* line 27, sass/partials/_mixins.scss */
303
  .cmb-repeatable-group .cmb-group-description .cmb-th label {
304
  display: block;
305
- margin-top: 0em;
306
- padding-bottom: 5px;
307
- }
308
- /* line 32, sass/partials/_mixins.scss */
309
- .cmb-repeatable-group .cmb-group-description .cmb-th label:after {
310
- border-bottom: 1px solid #e9e9e9;
311
- content: '';
312
- clear: both;
313
- display: block;
314
- padding-top: .4em;
315
  }
316
- /* line 290, sass/partials/_main_wrap.scss */
317
  .cmb-repeatable-group .cmb-shift-rows {
318
  font-size: 1em;
319
  margin-left: 1em;
320
  text-decoration: none;
321
  }
322
- /* line 295, sass/partials/_main_wrap.scss */
323
  .cmb-repeatable-group .cmb-shift-rows .dashicons {
324
  font-size: 1.5em;
325
  height: 1.5em;
326
  line-height: 1.2em;
327
  width: 1em;
328
  }
329
- /* line 301, sass/partials/_main_wrap.scss */
330
  .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
331
  line-height: 1.3em;
332
  }
333
- /* line 308, sass/partials/_main_wrap.scss */
334
  .cmb-repeatable-group .cmb2-upload-button {
335
  float: left;
336
  }
337
 
338
- /* line 314, sass/partials/_main_wrap.scss */
339
  p.cmb2-metabox-description {
340
  color: #aaaaaa;
341
  font-style: italic;
@@ -343,36 +406,36 @@ p.cmb2-metabox-description {
343
  padding-top: .5em;
344
  }
345
 
346
- /* line 321, sass/partials/_main_wrap.scss */
347
  span.cmb2-metabox-description {
348
  color: #aaaaaa;
349
  font-style: italic;
350
  }
351
 
352
- /* line 326, sass/partials/_main_wrap.scss */
353
  .cmb2-metabox-title {
354
  margin: 0 0 5px 0;
355
  padding: 5px 0 0 0;
356
  font-size: 14px;
357
  }
358
 
359
- /* line 332, sass/partials/_main_wrap.scss */
360
  .cmb-inline ul {
361
  padding: 4px 0 0 0;
362
  }
363
 
364
- /* line 336, sass/partials/_main_wrap.scss */
365
  .cmb-inline li {
366
  display: inline-block;
367
  padding-left: 18px;
368
  }
369
 
370
- /* line 341, sass/partials/_main_wrap.scss */
371
  .cmb-type-textarea-code pre {
372
  margin: 0;
373
  }
374
 
375
- /* line 347, sass/partials/_main_wrap.scss */
376
  .cmb2-media-status .img-status {
377
  clear: none;
378
  display: inline-block;
@@ -380,12 +443,12 @@ span.cmb2-metabox-description {
380
  margin-left: 10px;
381
  width: auto;
382
  }
383
- /* line 354, sass/partials/_main_wrap.scss */
384
  .cmb2-media-status .img-status img {
385
  max-width: 350px;
386
  height: auto;
387
  }
388
- /* line 360, sass/partials/_main_wrap.scss */
389
  .cmb2-media-status .img-status img,
390
  .cmb2-media-status .embed-status {
391
  background: #ffffff;
@@ -395,16 +458,16 @@ span.cmb2-metabox-description {
395
  margin: 15px 0 0 0;
396
  padding: 5px;
397
  }
398
- /* line 370, sass/partials/_main_wrap.scss */
399
  .cmb2-media-status .embed-status {
400
  float: right;
401
  max-width: 800px;
402
  }
403
- /* line 375, sass/partials/_main_wrap.scss */
404
  .cmb2-media-status .img-status, .cmb2-media-status .embed-status {
405
  position: relative;
406
  }
407
- /* line 378, sass/partials/_main_wrap.scss */
408
  .cmb2-media-status .img-status .cmb2-remove-file-button, .cmb2-media-status .embed-status .cmb2-remove-file-button {
409
  background: url(../images/ico-delete.png);
410
  height: 16px;
@@ -414,16 +477,16 @@ span.cmb2-metabox-description {
414
  top: -5px;
415
  width: 16px;
416
  }
417
- /* line 392, sass/partials/_main_wrap.scss */
418
  .cmb2-media-status .img-status .cmb2-remove-file-button {
419
  top: 10px;
420
  }
421
- /* line 397, sass/partials/_main_wrap.scss */
422
  .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span {
423
  cursor: pointer;
424
  }
425
 
426
- /* line 403, sass/partials/_main_wrap.scss */
427
  .cmb-type-file-list .cmb2-media-status .img-status {
428
  clear: none;
429
  vertical-align: middle;
@@ -433,7 +496,7 @@ span.cmb2-metabox-description {
433
  margin-top: 0;
434
  }
435
 
436
- /* line 412, sass/partials/_main_wrap.scss */
437
  .cmb-attach-list li {
438
  clear: both;
439
  display: inline-block;
@@ -441,25 +504,30 @@ span.cmb2-metabox-description {
441
  margin-top: 5px;
442
  margin-bottom: 10px;
443
  }
444
- /* line 419, sass/partials/_main_wrap.scss */
445
  .cmb-attach-list li img {
446
  cursor: move;
447
  float: right;
448
  margin-left: 10px;
449
  }
450
 
451
- /* line 426, sass/partials/_main_wrap.scss */
452
  .cmb2-remove-wrapper {
453
  margin: 0;
454
  }
455
 
456
- /* line 430, sass/partials/_main_wrap.scss */
457
  .child-cmb2 .cmb-th {
458
  text-align: right;
459
  }
460
 
 
 
 
 
 
461
  @media (max-width: 450px) {
462
- /* line 435, sass/partials/_main_wrap.scss */
463
  .cmb-th,
464
  .cmb-td,
465
  .cmb-th + .cmb-td {
@@ -527,61 +595,30 @@ Post Metaboxes
527
  line-height: 1.3;
528
  }
529
  /* line 63, sass/partials/_post_metaboxes.scss */
530
- .cmb2-postbox .cmb-repeat-row .cmb-td, .cmb-type-group .cmb-repeat-row .cmb-td {
531
- padding-bottom: 1.8em;
532
- }
533
- /* line 67, sass/partials/_post_metaboxes.scss */
534
  .cmb2-postbox .cmb-th + .cmb-td, .cmb-type-group .cmb-th + .cmb-td {
535
  width: 80%;
536
  float: left;
537
  }
538
- /* line 72, sass/partials/_post_metaboxes.scss */
539
  .cmb2-postbox .cmb-row:not(:last-of-type),
540
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
541
  .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
542
  border-bottom: 1px solid #e9e9e9;
543
  }
544
  @media (max-width: 450px) {
545
- /* line 72, sass/partials/_post_metaboxes.scss */
546
  .cmb2-postbox .cmb-row:not(:last-of-type),
547
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
548
  .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
549
  border-bottom: 0;
550
  }
551
  }
552
- /* line 81, sass/partials/_post_metaboxes.scss */
553
  .cmb2-postbox .cmb-repeat-group-field,
554
  .cmb2-postbox .cmb-remove-field-row, .cmb-type-group .cmb-repeat-group-field,
555
  .cmb-type-group .cmb-remove-field-row {
556
  padding-top: 1.8em;
557
  }
558
- /* line 88, sass/partials/_post_metaboxes.scss */
559
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody {
560
- display: table;
561
- width: 100%;
562
- }
563
- /* line 92, sass/partials/_post_metaboxes.scss */
564
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text {
565
- width: 100%;
566
- }
567
- /* line 96, sass/partials/_post_metaboxes.scss */
568
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row), .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row), .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row), .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row) {
569
- display: table-row;
570
- }
571
- /* line 100, sass/partials/_post_metaboxes.scss */
572
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td {
573
- display: table-cell;
574
- float: none;
575
- width: 100%;
576
- }
577
- /* line 106, sass/partials/_post_metaboxes.scss */
578
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td {
579
- padding-top: 1.8em;
580
- }
581
- /* line 110, sass/partials/_post_metaboxes.scss */
582
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row {
583
- padding-left: 0;
584
- }
585
 
586
  /*--------------------------------------------------------------
587
  Context Metaboxes
@@ -674,6 +711,76 @@ Context Metaboxes
674
  margin-left: 0;
675
  }
676
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
677
  /*--------------------------------------------------------------
678
  Misc.
679
  --------------------------------------------------------------*/
@@ -690,27 +797,16 @@ Misc.
690
  }
691
 
692
  /* line 18, sass/partials/_misc.scss */
693
- .cmb2-options-page .cmb2-metabox-title {
694
- font-size: 1.3em;
695
- margin: 1em 0;
696
- }
697
- /* line 21, sass/partials/_misc.scss */
698
- .cmb2-options-page .cmb2-metabox-title + p.cmb2-metabox-description {
699
- margin-top: -1.6em;
700
- margin-bottom: .8em;
701
- }
702
-
703
- /* line 28, sass/partials/_misc.scss */
704
  .cmb2-postbox .cmb-spinner, .cmb2-no-box-wrap .cmb-spinner {
705
  float: right;
706
  display: none;
707
  }
708
 
709
- /* line 33, sass/partials/_misc.scss */
710
  .cmb-spinner {
711
  display: none;
712
  }
713
- /* line 35, sass/partials/_misc.scss */
714
  .cmb-spinner.is-active {
715
  display: block;
716
  }
@@ -771,10 +867,10 @@ Sidebar Placement Adjustments
771
  }
772
  /* line 55, sass/partials/_sidebar_placements.scss */
773
  .inner-sidebar .cmb-th,
774
- .inner-sidebar .cmb-td,
775
  .inner-sidebar .cmb-th + .cmb-td,
776
  #side-sortables .cmb-th,
777
- #side-sortables .cmb-td,
778
  #side-sortables .cmb-th + .cmb-td {
779
  width: 100%;
780
  display: block;
@@ -786,11 +882,6 @@ Sidebar Placement Adjustments
786
  display: none;
787
  }
788
  /* line 67, sass/partials/_sidebar_placements.scss */
789
- .inner-sidebar .cmb-td .cmb-td,
790
- #side-sortables .cmb-td .cmb-td {
791
- padding-bottom: 1em;
792
- }
793
- /* line 71, sass/partials/_sidebar_placements.scss */
794
  .inner-sidebar .cmb-th,
795
  #side-sortables .cmb-th {
796
  display: block;
@@ -805,17 +896,8 @@ Sidebar Placement Adjustments
805
  .inner-sidebar .cmb-th label,
806
  #side-sortables .cmb-th label {
807
  display: block;
808
- margin-top: 0em;
809
- padding-bottom: 5px;
810
- }
811
- /* line 32, sass/partials/_mixins.scss */
812
- .inner-sidebar .cmb-th label:after,
813
- #side-sortables .cmb-th label:after {
814
- border-bottom: 1px solid #e9e9e9;
815
- content: '';
816
- clear: both;
817
- display: block;
818
- padding-top: .4em;
819
  }
820
  /* line 14, sass/partials/_mixins.scss */
821
  .inner-sidebar .cmb-th label,
@@ -823,27 +905,27 @@ Sidebar Placement Adjustments
823
  font-size: 14px;
824
  line-height: 1.4em;
825
  }
826
- /* line 78, sass/partials/_sidebar_placements.scss */
827
  .inner-sidebar .cmb-group-description .cmb-th,
828
  #side-sortables .cmb-group-description .cmb-th {
829
  padding-top: 0;
830
  }
831
- /* line 81, sass/partials/_sidebar_placements.scss */
832
  .inner-sidebar .cmb-group-description .cmb2-metabox-description,
833
  #side-sortables .cmb-group-description .cmb2-metabox-description {
834
  padding: 0;
835
  }
836
- /* line 88, sass/partials/_sidebar_placements.scss */
837
  .inner-sidebar .cmb-group-title .cmb-th,
838
  #side-sortables .cmb-group-title .cmb-th {
839
  padding: 0;
840
  }
841
- /* line 94, sass/partials/_sidebar_placements.scss */
842
  .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
843
  #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
844
  margin-top: 1em;
845
  }
846
- /* line 103, sass/partials/_sidebar_placements.scss */
847
  .inner-sidebar .cmb2-media-status .img-status img,
848
  .inner-sidebar .cmb2-media-status .embed-status img,
849
  #side-sortables .cmb2-media-status .img-status img,
@@ -851,19 +933,19 @@ Sidebar Placement Adjustments
851
  max-width: 90%;
852
  height: auto;
853
  }
854
- /* line 111, sass/partials/_sidebar_placements.scss */
855
  .inner-sidebar .cmb2-list label,
856
  #side-sortables .cmb2-list label {
857
  display: inline;
858
  font-weight: normal;
859
  }
860
- /* line 116, sass/partials/_sidebar_placements.scss */
861
  .inner-sidebar .cmb2-metabox-description,
862
  #side-sortables .cmb2-metabox-description {
863
  display: block;
864
  padding: 7px 0 0;
865
  }
866
- /* line 123, sass/partials/_sidebar_placements.scss */
867
  .inner-sidebar .cmb-type-checkbox .cmb-td label,
868
  .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
869
  #side-sortables .cmb-type-checkbox .cmb-td label,
@@ -871,39 +953,25 @@ Sidebar Placement Adjustments
871
  font-weight: normal;
872
  display: inline;
873
  }
874
- /* line 130, sass/partials/_sidebar_placements.scss */
875
  .inner-sidebar .cmb-row .cmb2-metabox-description,
876
  #side-sortables .cmb-row .cmb2-metabox-description {
877
  padding-bottom: 1.8em;
878
  }
879
- /* line 134, sass/partials/_sidebar_placements.scss */
880
  .inner-sidebar .cmb2-metabox-title,
881
  #side-sortables .cmb2-metabox-title {
882
  font-size: 1.2em;
883
  font-style: italic;
884
  }
885
- /* line 139, sass/partials/_sidebar_placements.scss */
886
  .inner-sidebar .cmb-remove-row,
887
  #side-sortables .cmb-remove-row {
888
  clear: both;
889
  padding-top: 12px;
890
  padding-bottom: 0;
891
  }
892
- /* line 146, sass/partials/_sidebar_placements.scss */
893
- .inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td,
894
- #side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td {
895
- width: auto;
896
- clear: none;
897
- float: right;
898
- padding-top: 0;
899
- }
900
- /* line 151, sass/partials/_sidebar_placements.scss */
901
- .inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row,
902
- #side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row {
903
- float: left;
904
- margin: 0;
905
- }
906
- /* line 158, sass/partials/_sidebar_placements.scss */
907
  .inner-sidebar .cmb2-upload-button,
908
  #side-sortables .cmb2-upload-button {
909
  clear: both;
@@ -911,10 +979,6 @@ Sidebar Placement Adjustments
911
  }
912
 
913
  /* line 2, sass/partials/_collapsible_ui.scss */
914
- .cmb2-metabox .cmb-type-group {
915
- max-width: 1000px;
916
- }
917
- /* line 5, sass/partials/_collapsible_ui.scss */
918
  .cmb2-metabox .cmbhandle {
919
  color: #aaa;
920
  float: left;
@@ -924,7 +988,7 @@ Sidebar Placement Adjustments
924
  left: -1em;
925
  position: relative;
926
  }
927
- /* line 13, sass/partials/_collapsible_ui.scss */
928
  .cmb2-metabox .cmbhandle:before {
929
  content: '\f142';
930
  left: 12px;
@@ -938,11 +1002,11 @@ Sidebar Placement Adjustments
938
  -moz-osx-font-smoothing: grayscale;
939
  text-decoration: none !important;
940
  }
941
- /* line 30, sass/partials/_collapsible_ui.scss */
942
  .cmb2-metabox .postbox.closed .cmbhandle:before {
943
  content: '\f140';
944
  }
945
- /* line 36, sass/partials/_collapsible_ui.scss */
946
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
947
  -webkit-appearance: none !important;
948
  background: none !important;
@@ -954,13 +1018,13 @@ Sidebar Placement Adjustments
954
  padding: 2px 6px 3px;
955
  opacity: .5;
956
  }
957
- /* line 46, sass/partials/_collapsible_ui.scss */
958
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
959
  cursor: pointer;
960
  color: #a00;
961
  opacity: 1;
962
  }
963
- /* line 50, sass/partials/_collapsible_ui.scss */
964
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
965
  color: #f00;
966
  }
1
+ @charset "UTF-8";
2
  /**
3
  * CMB2 Styling
4
  */
51
  }
52
  /* line 59, sass/partials/_main_wrap.scss */
53
  .cmb2-wrap input:not([type="hidden"]) + input,
54
+ .cmb2-wrap input:not([type="hidden"]) + .button-secondary,
55
  .cmb2-wrap input:not([type="hidden"]) + select {
56
  margin-right: 20px;
57
  }
87
  }
88
  /* line 102, sass/partials/_main_wrap.scss */
89
  .cmb2-wrap button,
90
+ .cmb2-wrap .button-secondary {
91
  white-space: nowrap;
92
  }
93
  /* line 107, sass/partials/_main_wrap.scss */
106
  .cmb2-wrap .meta_mce textarea {
107
  width: 100%;
108
  }
109
+ /* line 124, sass/partials/_main_wrap.scss */
110
  .cmb2-wrap .wp-color-result,
111
  .cmb2-wrap .wp-picker-input-wrap {
112
  vertical-align: middle;
113
  }
114
+ /* line 129, sass/partials/_main_wrap.scss */
115
  .cmb2-wrap .wp-color-result,
116
  .cmb2-wrap .wp-picker-container {
117
  margin: 0 0 0 10px;
118
  }
119
+ /* line 134, sass/partials/_main_wrap.scss */
120
  .cmb2-wrap .cmb-row {
121
  margin: 0;
122
  }
123
+ /* line 137, sass/partials/_main_wrap.scss */
124
  .cmb2-wrap .cmb-row:after {
125
  content: '';
126
  clear: both;
127
  display: block;
128
  width: 100%;
129
  }
130
+ /* line 144, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
131
  .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
132
  padding-top: 0;
133
+ padding-bottom: 1em;
134
  }
135
 
136
+ /* line 152, sass/partials/_main_wrap.scss */
137
  .cmb2-metabox {
138
  clear: both;
139
  margin: 0;
140
  }
141
+ /* line 158, sass/partials/_main_wrap.scss */
142
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
143
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
144
  .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-td,
145
  .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-th {
146
  border: 0;
147
  }
 
 
 
 
 
 
148
 
149
+ /* line 165, sass/partials/_main_wrap.scss */
150
  .cmb-add-row {
151
  margin: 1.8em 0 0;
152
  }
153
 
154
+ /* line 169, sass/partials/_main_wrap.scss */
155
  .cmb-nested .cmb-td,
156
  .cmb-repeatable-group .cmb-th,
157
  .cmb-repeatable-group:first-of-type {
158
  border: 0;
159
  }
160
 
161
+ /* line 175, sass/partials/_main_wrap.scss */
162
  .cmb-row:last-of-type,
163
  .cmb2-wrap .cmb-row:last-of-type,
164
  .cmb-repeatable-group:last-of-type {
165
  border-bottom: 0;
166
  }
167
 
168
+ /* line 181, sass/partials/_main_wrap.scss */
169
  .cmb-repeatable-grouping {
170
  border: 1px solid #e9e9e9;
171
  padding: 0 1em;
 
172
  }
173
+ /* line 185, sass/partials/_main_wrap.scss */
174
  .cmb-repeatable-grouping.cmb-row {
175
  margin: 0 0 0.8em;
176
  }
177
 
178
+ /* line 193, sass/partials/_main_wrap.scss */
179
  .cmb-th {
180
  color: #222222;
181
  float: right;
186
  width: 200px;
187
  }
188
  @media (max-width: 450px) {
189
+ /* line 193, sass/partials/_main_wrap.scss */
190
  .cmb-th {
191
  font-size: 1.2em;
192
  display: block;
198
  /* line 27, sass/partials/_mixins.scss */
199
  .cmb-th label {
200
  display: block;
201
+ margin-top: 0;
202
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
203
  }
204
  }
205
 
206
+ /* line 207, sass/partials/_main_wrap.scss */
207
  .cmb-td {
208
  line-height: 1.3;
209
  max-width: 100%;
211
  vertical-align: middle;
212
  }
213
 
214
+ /* line 216, sass/partials/_main_wrap.scss */
215
  .cmb-type-title .cmb-td {
216
  padding: 0;
217
  }
218
 
219
+ /* line 221, sass/partials/_main_wrap.scss */
220
  .cmb-th label {
221
  display: block;
222
  padding: 5px 0;
223
  }
224
 
225
+ /* line 226, sass/partials/_main_wrap.scss */
226
  .cmb-th + .cmb-td {
227
  float: right;
228
  }
229
 
230
+ /* line 230, sass/partials/_main_wrap.scss */
231
  .cmb-td .cmb-td {
232
  padding-bottom: 1em;
233
  }
234
 
235
+ /* line 234, sass/partials/_main_wrap.scss */
236
  .cmb-remove-row {
237
  text-align: left;
238
  }
239
 
240
+ /* line 238, sass/partials/_main_wrap.scss */
241
  .empty-row.hidden {
242
  display: none;
243
  }
244
 
245
+ /* line 243, sass/partials/_main_wrap.scss */
246
+ .cmb-repeat-table {
247
+ background-color: #fafafa;
248
+ border: 1px solid #e1e1e1;
249
+ }
250
+ /* line 247, sass/partials/_main_wrap.scss */
251
+ .cmb-repeat-table .cmb-row.cmb-repeat-row {
252
+ position: relative;
253
+ counter-increment: el;
254
+ margin: 0;
255
+ padding: 10px 50px 10px 10px;
256
+ border-bottom: none !important;
257
+ }
258
+ /* line 255, sass/partials/_main_wrap.scss */
259
+ .cmb-repeat-table .cmb-row.cmb-repeat-row + .cmb-repeat-row {
260
+ border-top: solid 1px #e9e9e9;
261
+ }
262
+ /* line 259, sass/partials/_main_wrap.scss */
263
+ .cmb-repeat-table .cmb-row.cmb-repeat-row:before {
264
+ content: counter(el);
265
+ display: block;
266
+ top: 0;
267
+ right: 0;
268
+ position: absolute;
269
+ width: 35px;
270
+ height: 100%;
271
+ line-height: 35px;
272
+ color: #aaaaaa;
273
+ text-align: center;
274
+ border-left: solid 1px #e9e9e9;
275
+ }
276
+ /* line 276, sass/partials/_main_wrap.scss */
277
+ .cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td {
278
+ margin: 0;
279
+ padding: 0;
280
+ }
281
+ /* line 283, sass/partials/_main_wrap.scss */
282
+ .cmb-repeat-table + .cmb-add-row {
283
+ margin: 0;
284
+ }
285
+ /* line 286, sass/partials/_main_wrap.scss */
286
+ .cmb-repeat-table + .cmb-add-row:before {
287
+ content: '';
288
+ width: 1px;
289
+ height: 1.6em;
290
+ display: block;
291
+ margin-right: 17px;
292
+ background-color: gainsboro;
293
+ }
294
+ /* line 296, sass/partials/_main_wrap.scss */
295
+ .cmb-repeat-table .cmb-remove-row {
296
+ top: 7px;
297
+ left: 7px;
298
+ position: absolute;
299
+ width: auto;
300
+ margin-right: 0;
301
+ padding: 0 !important;
302
+ display: none;
303
+ }
304
+ /* line 307, sass/partials/_main_wrap.scss */
305
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button {
306
+ font-size: 20px;
307
+ text-indent: -1000px;
308
+ overflow: hidden;
309
+ position: relative;
310
+ height: auto;
311
+ line-height: 1;
312
+ padding: 0 10px 0;
313
+ }
314
+ /* line 318, sass/partials/_main_wrap.scss */
315
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button:before {
316
+ content: "";
317
+ font-family: 'Dashicons';
318
+ speak: none;
319
+ font-weight: normal;
320
+ font-variant: normal;
321
+ text-transform: none;
322
+ line-height: 1;
323
+ -webkit-font-smoothing: antialiased;
324
+ margin: 0;
325
+ text-indent: 0;
326
+ position: absolute;
327
+ top: 0;
328
+ right: 0;
329
+ width: 100%;
330
+ height: 100%;
331
+ text-align: center;
332
+ }
333
+ /* line 324, sass/partials/_main_wrap.scss */
334
+ .cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row {
335
+ display: block;
336
+ }
337
+
338
+ /* line 332, sass/partials/_main_wrap.scss */
339
  .cmb-repeatable-group .cmb-th {
340
  padding: 5px;
341
  }
342
+ /* line 336, sass/partials/_main_wrap.scss */
343
  .cmb-repeatable-group .cmb-group-title {
344
  background-color: #e9e9e9;
345
  padding: 8px 2.2em 8px 12px;
348
  font-size: 14px;
349
  line-height: 1.4;
350
  }
351
+ /* line 344, sass/partials/_main_wrap.scss */
352
  .cmb-repeatable-group .cmb-group-title h4 {
353
  border: 0;
354
  margin: 0;
356
  font-weight: 500;
357
  padding: 0.5em 0.75em;
358
  }
359
+ /* line 352, sass/partials/_main_wrap.scss */
360
  .cmb-repeatable-group .cmb-group-title .cmb-th {
361
  display: block;
362
  width: 100%;
363
  }
364
+ /* line 358, sass/partials/_main_wrap.scss */
365
  .cmb-repeatable-group .cmb-group-description .cmb-th {
366
  font-size: 1.2em;
367
  display: block;
373
  /* line 27, sass/partials/_mixins.scss */
374
  .cmb-repeatable-group .cmb-group-description .cmb-th label {
375
  display: block;
376
+ margin-top: 0;
377
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
378
  }
379
+ /* line 362, sass/partials/_main_wrap.scss */
380
  .cmb-repeatable-group .cmb-shift-rows {
381
  font-size: 1em;
382
  margin-left: 1em;
383
  text-decoration: none;
384
  }
385
+ /* line 367, sass/partials/_main_wrap.scss */
386
  .cmb-repeatable-group .cmb-shift-rows .dashicons {
387
  font-size: 1.5em;
388
  height: 1.5em;
389
  line-height: 1.2em;
390
  width: 1em;
391
  }
392
+ /* line 373, sass/partials/_main_wrap.scss */
393
  .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
394
  line-height: 1.3em;
395
  }
396
+ /* line 380, sass/partials/_main_wrap.scss */
397
  .cmb-repeatable-group .cmb2-upload-button {
398
  float: left;
399
  }
400
 
401
+ /* line 386, sass/partials/_main_wrap.scss */
402
  p.cmb2-metabox-description {
403
  color: #aaaaaa;
404
  font-style: italic;
406
  padding-top: .5em;
407
  }
408
 
409
+ /* line 393, sass/partials/_main_wrap.scss */
410
  span.cmb2-metabox-description {
411
  color: #aaaaaa;
412
  font-style: italic;
413
  }
414
 
415
+ /* line 398, sass/partials/_main_wrap.scss */
416
  .cmb2-metabox-title {
417
  margin: 0 0 5px 0;
418
  padding: 5px 0 0 0;
419
  font-size: 14px;
420
  }
421
 
422
+ /* line 404, sass/partials/_main_wrap.scss */
423
  .cmb-inline ul {
424
  padding: 4px 0 0 0;
425
  }
426
 
427
+ /* line 408, sass/partials/_main_wrap.scss */
428
  .cmb-inline li {
429
  display: inline-block;
430
  padding-left: 18px;
431
  }
432
 
433
+ /* line 413, sass/partials/_main_wrap.scss */
434
  .cmb-type-textarea-code pre {
435
  margin: 0;
436
  }
437
 
438
+ /* line 419, sass/partials/_main_wrap.scss */
439
  .cmb2-media-status .img-status {
440
  clear: none;
441
  display: inline-block;
443
  margin-left: 10px;
444
  width: auto;
445
  }
446
+ /* line 426, sass/partials/_main_wrap.scss */
447
  .cmb2-media-status .img-status img {
448
  max-width: 350px;
449
  height: auto;
450
  }
451
+ /* line 432, sass/partials/_main_wrap.scss */
452
  .cmb2-media-status .img-status img,
453
  .cmb2-media-status .embed-status {
454
  background: #ffffff;
458
  margin: 15px 0 0 0;
459
  padding: 5px;
460
  }
461
+ /* line 442, sass/partials/_main_wrap.scss */
462
  .cmb2-media-status .embed-status {
463
  float: right;
464
  max-width: 800px;
465
  }
466
+ /* line 447, sass/partials/_main_wrap.scss */
467
  .cmb2-media-status .img-status, .cmb2-media-status .embed-status {
468
  position: relative;
469
  }
470
+ /* line 450, sass/partials/_main_wrap.scss */
471
  .cmb2-media-status .img-status .cmb2-remove-file-button, .cmb2-media-status .embed-status .cmb2-remove-file-button {
472
  background: url(../images/ico-delete.png);
473
  height: 16px;
477
  top: -5px;
478
  width: 16px;
479
  }
480
+ /* line 464, sass/partials/_main_wrap.scss */
481
  .cmb2-media-status .img-status .cmb2-remove-file-button {
482
  top: 10px;
483
  }
484
+ /* line 469, sass/partials/_main_wrap.scss */
485
  .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span {
486
  cursor: pointer;
487
  }
488
 
489
+ /* line 475, sass/partials/_main_wrap.scss */
490
  .cmb-type-file-list .cmb2-media-status .img-status {
491
  clear: none;
492
  vertical-align: middle;
496
  margin-top: 0;
497
  }
498
 
499
+ /* line 484, sass/partials/_main_wrap.scss */
500
  .cmb-attach-list li {
501
  clear: both;
502
  display: inline-block;
504
  margin-top: 5px;
505
  margin-bottom: 10px;
506
  }
507
+ /* line 491, sass/partials/_main_wrap.scss */
508
  .cmb-attach-list li img {
509
  cursor: move;
510
  float: right;
511
  margin-left: 10px;
512
  }
513
 
514
+ /* line 498, sass/partials/_main_wrap.scss */
515
  .cmb2-remove-wrapper {
516
  margin: 0;
517
  }
518
 
519
+ /* line 502, sass/partials/_main_wrap.scss */
520
  .child-cmb2 .cmb-th {
521
  text-align: right;
522
  }
523
 
524
+ /* line 506, sass/partials/_main_wrap.scss */
525
+ .cmb2-indented-hierarchy {
526
+ padding-right: 1.5em;
527
+ }
528
+
529
  @media (max-width: 450px) {
530
+ /* line 511, sass/partials/_main_wrap.scss */
531
  .cmb-th,
532
  .cmb-td,
533
  .cmb-th + .cmb-td {
595
  line-height: 1.3;
596
  }
597
  /* line 63, sass/partials/_post_metaboxes.scss */
 
 
 
 
598
  .cmb2-postbox .cmb-th + .cmb-td, .cmb-type-group .cmb-th + .cmb-td {
599
  width: 80%;
600
  float: left;
601
  }
602
+ /* line 68, sass/partials/_post_metaboxes.scss */
603
  .cmb2-postbox .cmb-row:not(:last-of-type),
604
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
605
  .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
606
  border-bottom: 1px solid #e9e9e9;
607
  }
608
  @media (max-width: 450px) {
609
+ /* line 68, sass/partials/_post_metaboxes.scss */
610
  .cmb2-postbox .cmb-row:not(:last-of-type),
611
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
612
  .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
613
  border-bottom: 0;
614
  }
615
  }
616
+ /* line 77, sass/partials/_post_metaboxes.scss */
617
  .cmb2-postbox .cmb-repeat-group-field,
618
  .cmb2-postbox .cmb-remove-field-row, .cmb-type-group .cmb-repeat-group-field,
619
  .cmb-type-group .cmb-remove-field-row {
620
  padding-top: 1.8em;
621
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
622
 
623
  /*--------------------------------------------------------------
624
  Context Metaboxes
711
  margin-left: 0;
712
  }
713
  }
714
+ /*--------------------------------------------------------------
715
+ Options page
716
+ --------------------------------------------------------------*/
717
+ /* line 4, sass/partials/_options-page.scss */
718
+ .cmb2-options-page {
719
+ max-width: 1200px;
720
+ }
721
+ /* line 7, sass/partials/_options-page.scss */
722
+ .cmb2-options-page.wrap > h2 {
723
+ margin-bottom: 1em;
724
+ }
725
+ /* line 11, sass/partials/_options-page.scss */
726
+ .cmb2-options-page .cmb2-metabox > .cmb-row {
727
+ padding: 1em;
728
+ margin-top: -1px;
729
+ background: #ffffff;
730
+ border: 1px solid #e9e9e9;
731
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
732
+ }
733
+ /* line 18, sass/partials/_options-page.scss */
734
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th {
735
+ padding: 0;
736
+ font-weight: initial;
737
+ }
738
+ /* line 23, sass/partials/_options-page.scss */
739
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
740
+ float: none;
741
+ padding: 0 1em 0 0;
742
+ margin-right: 200px;
743
+ }
744
+ @media (max-width: 450px) {
745
+ /* line 23, sass/partials/_options-page.scss */
746
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
747
+ padding: 0;
748
+ margin-right: 0;
749
+ }
750
+ }
751
+ /* line 36, sass/partials/_options-page.scss */
752
+ .cmb2-options-page .cmb2-wrap .cmb-type-title {
753
+ margin-top: 1em;
754
+ padding: 0.6em 1em;
755
+ background-color: #fafafa;
756
+ }
757
+ /* line 41, sass/partials/_options-page.scss */
758
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title {
759
+ font-size: 12px;
760
+ margin-top: 0;
761
+ margin-bottom: 0;
762
+ text-transform: uppercase;
763
+ }
764
+ /* line 48, sass/partials/_options-page.scss */
765
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description {
766
+ padding-top: 0.25em;
767
+ }
768
+ /* line 54, sass/partials/_options-page.scss */
769
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th {
770
+ padding: 0 0 0.8em 0;
771
+ }
772
+ /* line 58, sass/partials/_options-page.scss */
773
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-name {
774
+ font-size: 16px;
775
+ margin-top: 0;
776
+ margin-bottom: 0;
777
+ }
778
+ /* line 64, sass/partials/_options-page.scss */
779
+ .cmb2-options-page .cmb-repeatable-group .cmb-th > .cmb2-metabox-description {
780
+ font-weight: 400;
781
+ padding-bottom: 0 !important;
782
+ }
783
+
784
  /*--------------------------------------------------------------
785
  Misc.
786
  --------------------------------------------------------------*/
797
  }
798
 
799
  /* line 18, sass/partials/_misc.scss */
 
 
 
 
 
 
 
 
 
 
 
800
  .cmb2-postbox .cmb-spinner, .cmb2-no-box-wrap .cmb-spinner {
801
  float: right;
802
  display: none;
803
  }
804
 
805
+ /* line 24, sass/partials/_misc.scss */
806
  .cmb-spinner {
807
  display: none;
808
  }
809
+ /* line 26, sass/partials/_misc.scss */
810
  .cmb-spinner.is-active {
811
  display: block;
812
  }
867
  }
868
  /* line 55, sass/partials/_sidebar_placements.scss */
869
  .inner-sidebar .cmb-th,
870
+ .inner-sidebar .cmb-td:not(.cmb-remove-row),
871
  .inner-sidebar .cmb-th + .cmb-td,
872
  #side-sortables .cmb-th,
873
+ #side-sortables .cmb-td:not(.cmb-remove-row),
874
  #side-sortables .cmb-th + .cmb-td {
875
  width: 100%;
876
  display: block;
882
  display: none;
883
  }
884
  /* line 67, sass/partials/_sidebar_placements.scss */
 
 
 
 
 
885
  .inner-sidebar .cmb-th,
886
  #side-sortables .cmb-th {
887
  display: block;
896
  .inner-sidebar .cmb-th label,
897
  #side-sortables .cmb-th label {
898
  display: block;
899
+ margin-top: 0;
900
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
 
901
  }
902
  /* line 14, sass/partials/_mixins.scss */
903
  .inner-sidebar .cmb-th label,
905
  font-size: 14px;
906
  line-height: 1.4em;
907
  }
908
+ /* line 74, sass/partials/_sidebar_placements.scss */
909
  .inner-sidebar .cmb-group-description .cmb-th,
910
  #side-sortables .cmb-group-description .cmb-th {
911
  padding-top: 0;
912
  }
913
+ /* line 77, sass/partials/_sidebar_placements.scss */
914
  .inner-sidebar .cmb-group-description .cmb2-metabox-description,
915
  #side-sortables .cmb-group-description .cmb2-metabox-description {
916
  padding: 0;
917
  }
918
+ /* line 84, sass/partials/_sidebar_placements.scss */
919
  .inner-sidebar .cmb-group-title .cmb-th,
920
  #side-sortables .cmb-group-title .cmb-th {
921
  padding: 0;
922
  }
923
+ /* line 90, sass/partials/_sidebar_placements.scss */
924
  .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
925
  #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
926
  margin-top: 1em;
927
  }
928
+ /* line 99, sass/partials/_sidebar_placements.scss */
929
  .inner-sidebar .cmb2-media-status .img-status img,
930
  .inner-sidebar .cmb2-media-status .embed-status img,
931
  #side-sortables .cmb2-media-status .img-status img,
933
  max-width: 90%;
934
  height: auto;
935
  }
936
+ /* line 107, sass/partials/_sidebar_placements.scss */
937
  .inner-sidebar .cmb2-list label,
938
  #side-sortables .cmb2-list label {
939
  display: inline;
940
  font-weight: normal;
941
  }
942
+ /* line 112, sass/partials/_sidebar_placements.scss */
943
  .inner-sidebar .cmb2-metabox-description,
944
  #side-sortables .cmb2-metabox-description {
945
  display: block;
946
  padding: 7px 0 0;
947
  }
948
+ /* line 119, sass/partials/_sidebar_placements.scss */
949
  .inner-sidebar .cmb-type-checkbox .cmb-td label,
950
  .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
951
  #side-sortables .cmb-type-checkbox .cmb-td label,
953
  font-weight: normal;
954
  display: inline;
955
  }
956
+ /* line 126, sass/partials/_sidebar_placements.scss */
957
  .inner-sidebar .cmb-row .cmb2-metabox-description,
958
  #side-sortables .cmb-row .cmb2-metabox-description {
959
  padding-bottom: 1.8em;
960
  }
961
+ /* line 130, sass/partials/_sidebar_placements.scss */
962
  .inner-sidebar .cmb2-metabox-title,
963
  #side-sortables .cmb2-metabox-title {
964
  font-size: 1.2em;
965
  font-style: italic;
966
  }
967
+ /* line 135, sass/partials/_sidebar_placements.scss */
968
  .inner-sidebar .cmb-remove-row,
969
  #side-sortables .cmb-remove-row {
970
  clear: both;
971
  padding-top: 12px;
972
  padding-bottom: 0;
973
  }
974
+ /* line 141, sass/partials/_sidebar_placements.scss */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
975
  .inner-sidebar .cmb2-upload-button,
976
  #side-sortables .cmb2-upload-button {
977
  clear: both;
979
  }
980
 
981
  /* line 2, sass/partials/_collapsible_ui.scss */
 
 
 
 
982
  .cmb2-metabox .cmbhandle {
983
  color: #aaa;
984
  float: left;
988
  left: -1em;
989
  position: relative;
990
  }
991
+ /* line 10, sass/partials/_collapsible_ui.scss */
992
  .cmb2-metabox .cmbhandle:before {
993
  content: '\f142';
994
  left: 12px;
1002
  -moz-osx-font-smoothing: grayscale;
1003
  text-decoration: none !important;
1004
  }
1005
+ /* line 27, sass/partials/_collapsible_ui.scss */
1006
  .cmb2-metabox .postbox.closed .cmbhandle:before {
1007
  content: '\f140';
1008
  }
1009
+ /* line 33, sass/partials/_collapsible_ui.scss */
1010
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
1011
  -webkit-appearance: none !important;
1012
  background: none !important;
1018
  padding: 2px 6px 3px;
1019
  opacity: .5;
1020
  }
1021
+ /* line 43, sass/partials/_collapsible_ui.scss */
1022
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
1023
  cursor: pointer;
1024
  color: #a00;
1025
  opacity: 1;
1026
  }
1027
+ /* line 47, sass/partials/_collapsible_ui.scss */
1028
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
1029
  color: #f00;
1030
  }
vendor/CMB2/css/cmb2-front-rtl.min.css CHANGED
@@ -1 +1 @@
1
- .cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-right:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 0 0 5px;padding:0}.cmb2-wrap .button,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 0 0 10px}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat-row{padding:1.8em 0 0}.cmb2-wrap .cmb-row.cmb-repeat-row:first-of-type{padding:0}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1.8em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb2-metabox>.cmb-row .cmb-repeat-table .cmb-row>.cmb-td{padding-left:20px;box-sizing:border-box;float:right}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em;max-width:1000px}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:right;font-weight:600;line-height:1.3;padding:20px 0 20px 10px;vertical-align:top;width:200px}@media (max-width:450px){.cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:right;width:100%}.cmb-th label{display:block;margin-top:0;padding-bottom:5px}.cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:right}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:left}.empty-row.hidden{display:none}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 2.2em 8px 12px;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:right;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;padding-bottom:5px}.cmb-repeatable-group .cmb-group-description .cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-left:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:left}p.cmb2-metabox-description{color:#aaa;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#aaa;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-left:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-left:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#fff;border:1px solid #e9e9e9;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0;padding:5px}.cmb2-media-status .embed-status{float:right;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;right:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-left:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{cursor:move;float:right;margin-left:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:right}@media (max-width:450px){.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}}#poststuff .cmb-group-title{margin-right:-1em;margin-left:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-right:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{left:-1em;position:relative}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 0 0 2%}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-repeat-row .cmb-td,.cmb2-postbox .cmb-repeat-row .cmb-td{padding-bottom:1.8em}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:left}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}@media (max-width:450px){.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody{display:table;width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text{width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row){display:table-row}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td{display:table-cell;float:none;width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td{padding-top:1.8em}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row{padding-left:0}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 0 0 2%;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:0}}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-options-page .cmb2-metabox-title{font-size:1.3em;margin:1em 0}.cmb2-options-page .cmb2-metabox-title+p.cmb2-metabox-description{margin-top:-1.6em;margin-bottom:.8em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:right;display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-right:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td,#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td,.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-td .cmb-td,.inner-sidebar .cmb-td .cmb-td{padding-bottom:1em}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:right;width:100%;padding-right:0;padding-left:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;padding-bottom:5px}#side-sortables .cmb-th label:after,.inner-sidebar .cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td,.inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td{width:auto;clear:none;float:right;padding-top:0}#side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row,.inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row{float:left;margin:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmb-type-group{max-width:1000px}.cmb2-metabox .cmbhandle{color:#aaa;float:left;width:27px;height:30px;cursor:pointer;left:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';left:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;right:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-right:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:right;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:right;clear:right;padding:0 5px 0 0}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 40% 10px 10px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:right}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .4em .4em .6em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}.closed .inside{display:none}.cmb-repeatable-grouping{position:relative}.cmb-repeatable-grouping .cmb-group-title{margin-right:-1em;margin-left:-1em;min-height:1.5em}.cmb-repeatable-grouping h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb-repeatable-group.repeatable .cmb-group-title{padding-right:2.2em}.cmb-repeatable-group.non-repeatable .cmb-group-title{padding-right:12px}.cmb-type-group .cmb-row .cmbhandle{left:0;position:absolute}.cmb-spinner{background:url(/wp-admin/images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:left;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}
1
+ @charset "UTF-8";.cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button-secondary,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-right:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 0 0 5px;padding:0}.cmb2-wrap .button-secondary,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 0 0 10px}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:right;font-weight:600;line-height:1.3;padding:20px 0 20px 10px;vertical-align:top;width:200px}@media (max-width:450px){.cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:right;width:100%}.cmb-th label{display:block;margin-top:0;margin-bottom:.5em}}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:right}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:left}.empty-row.hidden{display:none}.cmb-repeat-table{background-color:#fafafa;border:1px solid #e1e1e1}.cmb-repeat-table .cmb-row.cmb-repeat-row{position:relative;counter-increment:el;margin:0;padding:10px 50px 10px 10px;border-bottom:none!important}.cmb-repeat-table .cmb-row.cmb-repeat-row+.cmb-repeat-row{border-top:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row:before{content:counter(el);display:block;top:0;right:0;position:absolute;width:35px;height:100%;line-height:35px;color:#aaa;text-align:center;border-left:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td{margin:0;padding:0}.cmb-repeat-table+.cmb-add-row{margin:0}.cmb-repeat-table+.cmb-add-row:before{content:'';width:1px;height:1.6em;display:block;margin-right:17px;background-color:#dcdcdc}.cmb-repeat-table .cmb-remove-row{top:7px;left:7px;position:absolute;width:auto;margin-right:0;padding:0!important;display:none}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button{font-size:20px;text-indent:-1000px;overflow:hidden;position:relative;height:auto;line-height:1;padding:0 10px}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button:before{content:"";font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;right:0;width:100%;height:100%;text-align:center}.cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row{display:block}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 2.2em 8px 12px;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:right;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-left:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:left}p.cmb2-metabox-description{color:#aaa;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#aaa;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-left:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-left:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#fff;border:1px solid #e9e9e9;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0;padding:5px}.cmb2-media-status .embed-status{float:right;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;right:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-left:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{cursor:move;float:right;margin-left:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:right}.cmb2-indented-hierarchy{padding-right:1.5em}@media (max-width:450px){.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}}#poststuff .cmb-group-title{margin-right:-1em;margin-left:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-right:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{left:-1em;position:relative}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 0 0 2%}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:left}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}@media (max-width:450px){.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 0 0 2%;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:0}}.cmb2-options-page{max-width:1200px}.cmb2-options-page.wrap>h2{margin-bottom:1em}.cmb2-options-page .cmb2-metabox>.cmb-row{padding:1em;margin-top:-1px;background:#fff;border:1px solid #e9e9e9;box-shadow:0 1px 1px rgba(0,0,0,.05)}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th{padding:0;font-weight:initial}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{float:none;padding:0 1em 0 0;margin-right:200px}@media (max-width:450px){.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{padding:0;margin-right:0}}.cmb2-options-page .cmb2-wrap .cmb-type-title{margin-top:1em;padding:.6em 1em;background-color:#fafafa}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title{font-size:12px;margin-top:0;margin-bottom:0;text-transform:uppercase}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description{padding-top:.25em}.cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th{padding:0 0 .8em}.cmb2-options-page .cmb-repeatable-group .cmb-group-name{font-size:16px;margin-top:0;margin-bottom:0}.cmb2-options-page .cmb-repeatable-group .cmb-th>.cmb2-metabox-description{font-weight:400;padding-bottom:0!important}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:right;display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-right:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td:not(.cmb-remove-row),#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td:not(.cmb-remove-row),.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:right;width:100%;padding-right:0;padding-left:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;margin-bottom:.5em;font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmbhandle{color:#aaa;float:left;width:27px;height:30px;cursor:pointer;left:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';left:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;right:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-right:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:right;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:right;clear:right;padding:0 5px 0 0}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 40% 10px 10px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:right}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .4em .4em .6em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}.closed .inside{display:none}.cmb-repeatable-grouping{position:relative}.cmb-repeatable-grouping .cmb-group-title{margin-right:-1em;margin-left:-1em;min-height:1.5em}.cmb-repeatable-grouping h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb-repeatable-group.repeatable .cmb-group-title{padding-right:2.2em}.cmb-repeatable-group.non-repeatable .cmb-group-title{padding-right:12px}.cmb-type-group .cmb-row .cmbhandle{left:0;position:absolute}.cmb-spinner{background:url(/wp-admin/images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:left;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}
vendor/CMB2/css/cmb2-front.css CHANGED
@@ -1,3 +1,4 @@
 
1
  /**
2
  * CMB2 Styling
3
  */
@@ -50,7 +51,7 @@ Main Wrap
50
  }
51
  /* line 59, sass/partials/_main_wrap.scss */
52
  .cmb2-wrap input:not([type="hidden"]) + input,
53
- .cmb2-wrap input:not([type="hidden"]) + .button,
54
  .cmb2-wrap input:not([type="hidden"]) + select {
55
  margin-left: 20px;
56
  }
@@ -86,7 +87,7 @@ Main Wrap
86
  }
87
  /* line 102, sass/partials/_main_wrap.scss */
88
  .cmb2-wrap button,
89
- .cmb2-wrap .button {
90
  white-space: nowrap;
91
  }
92
  /* line 107, sass/partials/_main_wrap.scss */
@@ -105,91 +106,76 @@ Main Wrap
105
  .cmb2-wrap .meta_mce textarea {
106
  width: 100%;
107
  }
108
- /* line 126, sass/partials/_main_wrap.scss */
109
  .cmb2-wrap .wp-color-result,
110
  .cmb2-wrap .wp-picker-input-wrap {
111
  vertical-align: middle;
112
  }
113
- /* line 131, sass/partials/_main_wrap.scss */
114
  .cmb2-wrap .wp-color-result,
115
  .cmb2-wrap .wp-picker-container {
116
  margin: 0 10px 0 0;
117
  }
118
- /* line 136, sass/partials/_main_wrap.scss */
119
  .cmb2-wrap .cmb-row {
120
  margin: 0;
121
  }
122
- /* line 139, sass/partials/_main_wrap.scss */
123
  .cmb2-wrap .cmb-row:after {
124
  content: '';
125
  clear: both;
126
  display: block;
127
  width: 100%;
128
  }
129
- /* line 146, sass/partials/_main_wrap.scss */
130
- .cmb2-wrap .cmb-row.cmb-repeat-row {
131
- padding: 1.8em 0 0;
132
- }
133
- /* line 149, sass/partials/_main_wrap.scss */
134
- .cmb2-wrap .cmb-row.cmb-repeat-row:first-of-type {
135
- padding: 0;
136
- }
137
- /* line 154, sass/partials/_main_wrap.scss */
138
  .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
139
  padding-top: 0;
140
- padding-bottom: 1.8em;
141
  }
142
 
143
- /* line 161, sass/partials/_main_wrap.scss */
144
  .cmb2-metabox {
145
  clear: both;
146
  margin: 0;
147
  }
148
- /* line 167, sass/partials/_main_wrap.scss */
149
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
150
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
151
  .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-td,
152
  .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-th {
153
  border: 0;
154
  }
155
- /* line 174, sass/partials/_main_wrap.scss */
156
- .cmb2-metabox > .cmb-row .cmb-repeat-table .cmb-row > .cmb-td {
157
- padding-right: 20px;
158
- box-sizing: border-box;
159
- float: left;
160
- }
161
 
162
- /* line 182, sass/partials/_main_wrap.scss */
163
  .cmb-add-row {
164
  margin: 1.8em 0 0;
165
  }
166
 
167
- /* line 186, sass/partials/_main_wrap.scss */
168
  .cmb-nested .cmb-td,
169
  .cmb-repeatable-group .cmb-th,
170
  .cmb-repeatable-group:first-of-type {
171
  border: 0;
172
  }
173
 
174
- /* line 192, sass/partials/_main_wrap.scss */
175
  .cmb-row:last-of-type,
176
  .cmb2-wrap .cmb-row:last-of-type,
177
  .cmb-repeatable-group:last-of-type {
178
  border-bottom: 0;
179
  }
180
 
181
- /* line 198, sass/partials/_main_wrap.scss */
182
  .cmb-repeatable-grouping {
183
  border: 1px solid #e9e9e9;
184
  padding: 0 1em;
185
- max-width: 1000px;
186
  }
187
- /* line 202, sass/partials/_main_wrap.scss */
188
  .cmb-repeatable-grouping.cmb-row {
189
  margin: 0 0 0.8em;
190
  }
191
 
192
- /* line 209, sass/partials/_main_wrap.scss */
193
  .cmb-th {
194
  color: #222222;
195
  float: left;
@@ -200,7 +186,7 @@ Main Wrap
200
  width: 200px;
201
  }
202
  @media (max-width: 450px) {
203
- /* line 209, sass/partials/_main_wrap.scss */
204
  .cmb-th {
205
  font-size: 1.2em;
206
  display: block;
@@ -212,20 +198,12 @@ Main Wrap
212
  /* line 27, sass/partials/_mixins.scss */
213
  .cmb-th label {
214
  display: block;
215
- margin-top: 0em;
216
- padding-bottom: 5px;
217
- }
218
- /* line 32, sass/partials/_mixins.scss */
219
- .cmb-th label:after {
220
- border-bottom: 1px solid #e9e9e9;
221
- content: '';
222
- clear: both;
223
- display: block;
224
- padding-top: .4em;
225
  }
226
  }
227
 
228
- /* line 223, sass/partials/_main_wrap.scss */
229
  .cmb-td {
230
  line-height: 1.3;
231
  max-width: 100%;
@@ -233,42 +211,135 @@ Main Wrap
233
  vertical-align: middle;
234
  }
235
 
236
- /* line 232, sass/partials/_main_wrap.scss */
237
  .cmb-type-title .cmb-td {
238
  padding: 0;
239
  }
240
 
241
- /* line 237, sass/partials/_main_wrap.scss */
242
  .cmb-th label {
243
  display: block;
244
  padding: 5px 0;
245
  }
246
 
247
- /* line 242, sass/partials/_main_wrap.scss */
248
  .cmb-th + .cmb-td {
249
  float: left;
250
  }
251
 
252
- /* line 246, sass/partials/_main_wrap.scss */
253
  .cmb-td .cmb-td {
254
  padding-bottom: 1em;
255
  }
256
 
257
- /* line 250, sass/partials/_main_wrap.scss */
258
  .cmb-remove-row {
259
  text-align: right;
260
  }
261
 
262
- /* line 254, sass/partials/_main_wrap.scss */
263
  .empty-row.hidden {
264
  display: none;
265
  }
266
 
267
- /* line 260, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  .cmb-repeatable-group .cmb-th {
269
  padding: 5px;
270
  }
271
- /* line 264, sass/partials/_main_wrap.scss */
272
  .cmb-repeatable-group .cmb-group-title {
273
  background-color: #e9e9e9;
274
  padding: 8px 12px 8px 2.2em;
@@ -277,7 +348,7 @@ Main Wrap
277
  font-size: 14px;
278
  line-height: 1.4;
279
  }
280
- /* line 272, sass/partials/_main_wrap.scss */
281
  .cmb-repeatable-group .cmb-group-title h4 {
282
  border: 0;
283
  margin: 0;
@@ -285,12 +356,12 @@ Main Wrap
285
  font-weight: 500;
286
  padding: 0.5em 0.75em;
287
  }
288
- /* line 280, sass/partials/_main_wrap.scss */
289
  .cmb-repeatable-group .cmb-group-title .cmb-th {
290
  display: block;
291
  width: 100%;
292
  }
293
- /* line 286, sass/partials/_main_wrap.scss */
294
  .cmb-repeatable-group .cmb-group-description .cmb-th {
295
  font-size: 1.2em;
296
  display: block;
@@ -302,40 +373,32 @@ Main Wrap
302
  /* line 27, sass/partials/_mixins.scss */
303
  .cmb-repeatable-group .cmb-group-description .cmb-th label {
304
  display: block;
305
- margin-top: 0em;
306
- padding-bottom: 5px;
307
- }
308
- /* line 32, sass/partials/_mixins.scss */
309
- .cmb-repeatable-group .cmb-group-description .cmb-th label:after {
310
- border-bottom: 1px solid #e9e9e9;
311
- content: '';
312
- clear: both;
313
- display: block;
314
- padding-top: .4em;
315
  }
316
- /* line 290, sass/partials/_main_wrap.scss */
317
  .cmb-repeatable-group .cmb-shift-rows {
318
  font-size: 1em;
319
  margin-right: 1em;
320
  text-decoration: none;
321
  }
322
- /* line 295, sass/partials/_main_wrap.scss */
323
  .cmb-repeatable-group .cmb-shift-rows .dashicons {
324
  font-size: 1.5em;
325
  height: 1.5em;
326
  line-height: 1.2em;
327
  width: 1em;
328
  }
329
- /* line 301, sass/partials/_main_wrap.scss */
330
  .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
331
  line-height: 1.3em;
332
  }
333
- /* line 308, sass/partials/_main_wrap.scss */
334
  .cmb-repeatable-group .cmb2-upload-button {
335
  float: right;
336
  }
337
 
338
- /* line 314, sass/partials/_main_wrap.scss */
339
  p.cmb2-metabox-description {
340
  color: #aaaaaa;
341
  font-style: italic;
@@ -343,36 +406,36 @@ p.cmb2-metabox-description {
343
  padding-top: .5em;
344
  }
345
 
346
- /* line 321, sass/partials/_main_wrap.scss */
347
  span.cmb2-metabox-description {
348
  color: #aaaaaa;
349
  font-style: italic;
350
  }
351
 
352
- /* line 326, sass/partials/_main_wrap.scss */
353
  .cmb2-metabox-title {
354
  margin: 0 0 5px 0;
355
  padding: 5px 0 0 0;
356
  font-size: 14px;
357
  }
358
 
359
- /* line 332, sass/partials/_main_wrap.scss */
360
  .cmb-inline ul {
361
  padding: 4px 0 0 0;
362
  }
363
 
364
- /* line 336, sass/partials/_main_wrap.scss */
365
  .cmb-inline li {
366
  display: inline-block;
367
  padding-right: 18px;
368
  }
369
 
370
- /* line 341, sass/partials/_main_wrap.scss */
371
  .cmb-type-textarea-code pre {
372
  margin: 0;
373
  }
374
 
375
- /* line 347, sass/partials/_main_wrap.scss */
376
  .cmb2-media-status .img-status {
377
  clear: none;
378
  display: inline-block;
@@ -380,12 +443,12 @@ span.cmb2-metabox-description {
380
  margin-right: 10px;
381
  width: auto;
382
  }
383
- /* line 354, sass/partials/_main_wrap.scss */
384
  .cmb2-media-status .img-status img {
385
  max-width: 350px;
386
  height: auto;
387
  }
388
- /* line 360, sass/partials/_main_wrap.scss */
389
  .cmb2-media-status .img-status img,
390
  .cmb2-media-status .embed-status {
391
  background: #ffffff;
@@ -395,16 +458,16 @@ span.cmb2-metabox-description {
395
  margin: 15px 0 0 0;
396
  padding: 5px;
397
  }
398
- /* line 370, sass/partials/_main_wrap.scss */
399
  .cmb2-media-status .embed-status {
400
  float: left;
401
  max-width: 800px;
402
  }
403
- /* line 375, sass/partials/_main_wrap.scss */
404
  .cmb2-media-status .img-status, .cmb2-media-status .embed-status {
405
  position: relative;
406
  }
407
- /* line 378, sass/partials/_main_wrap.scss */
408
  .cmb2-media-status .img-status .cmb2-remove-file-button, .cmb2-media-status .embed-status .cmb2-remove-file-button {
409
  background: url(../images/ico-delete.png);
410
  height: 16px;
@@ -414,16 +477,16 @@ span.cmb2-metabox-description {
414
  top: -5px;
415
  width: 16px;
416
  }
417
- /* line 392, sass/partials/_main_wrap.scss */
418
  .cmb2-media-status .img-status .cmb2-remove-file-button {
419
  top: 10px;
420
  }
421
- /* line 397, sass/partials/_main_wrap.scss */
422
  .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span {
423
  cursor: pointer;
424
  }
425
 
426
- /* line 403, sass/partials/_main_wrap.scss */
427
  .cmb-type-file-list .cmb2-media-status .img-status {
428
  clear: none;
429
  vertical-align: middle;
@@ -433,7 +496,7 @@ span.cmb2-metabox-description {
433
  margin-top: 0;
434
  }
435
 
436
- /* line 412, sass/partials/_main_wrap.scss */
437
  .cmb-attach-list li {
438
  clear: both;
439
  display: inline-block;
@@ -441,25 +504,30 @@ span.cmb2-metabox-description {
441
  margin-top: 5px;
442
  margin-bottom: 10px;
443
  }
444
- /* line 419, sass/partials/_main_wrap.scss */
445
  .cmb-attach-list li img {
446
  cursor: move;
447
  float: left;
448
  margin-right: 10px;
449
  }
450
 
451
- /* line 426, sass/partials/_main_wrap.scss */
452
  .cmb2-remove-wrapper {
453
  margin: 0;
454
  }
455
 
456
- /* line 430, sass/partials/_main_wrap.scss */
457
  .child-cmb2 .cmb-th {
458
  text-align: left;
459
  }
460
 
 
 
 
 
 
461
  @media (max-width: 450px) {
462
- /* line 435, sass/partials/_main_wrap.scss */
463
  .cmb-th,
464
  .cmb-td,
465
  .cmb-th + .cmb-td {
@@ -527,61 +595,30 @@ Post Metaboxes
527
  line-height: 1.3;
528
  }
529
  /* line 63, sass/partials/_post_metaboxes.scss */
530
- .cmb2-postbox .cmb-repeat-row .cmb-td, .cmb-type-group .cmb-repeat-row .cmb-td {
531
- padding-bottom: 1.8em;
532
- }
533
- /* line 67, sass/partials/_post_metaboxes.scss */
534
  .cmb2-postbox .cmb-th + .cmb-td, .cmb-type-group .cmb-th + .cmb-td {
535
  width: 80%;
536
  float: right;
537
  }
538
- /* line 72, sass/partials/_post_metaboxes.scss */
539
  .cmb2-postbox .cmb-row:not(:last-of-type),
540
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
541
  .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
542
  border-bottom: 1px solid #e9e9e9;
543
  }
544
  @media (max-width: 450px) {
545
- /* line 72, sass/partials/_post_metaboxes.scss */
546
  .cmb2-postbox .cmb-row:not(:last-of-type),
547
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
548
  .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
549
  border-bottom: 0;
550
  }
551
  }
552
- /* line 81, sass/partials/_post_metaboxes.scss */
553
  .cmb2-postbox .cmb-repeat-group-field,
554
  .cmb2-postbox .cmb-remove-field-row, .cmb-type-group .cmb-repeat-group-field,
555
  .cmb-type-group .cmb-remove-field-row {
556
  padding-top: 1.8em;
557
  }
558
- /* line 88, sass/partials/_post_metaboxes.scss */
559
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody {
560
- display: table;
561
- width: 100%;
562
- }
563
- /* line 92, sass/partials/_post_metaboxes.scss */
564
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text {
565
- width: 100%;
566
- }
567
- /* line 96, sass/partials/_post_metaboxes.scss */
568
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row), .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row), .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row), .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row) {
569
- display: table-row;
570
- }
571
- /* line 100, sass/partials/_post_metaboxes.scss */
572
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td {
573
- display: table-cell;
574
- float: none;
575
- width: 100%;
576
- }
577
- /* line 106, sass/partials/_post_metaboxes.scss */
578
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td {
579
- padding-top: 1.8em;
580
- }
581
- /* line 110, sass/partials/_post_metaboxes.scss */
582
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row, .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row, .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row, .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row {
583
- padding-right: 0;
584
- }
585
 
586
  /*--------------------------------------------------------------
587
  Context Metaboxes
@@ -674,6 +711,76 @@ Context Metaboxes
674
  margin-right: 0;
675
  }
676
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
677
  /*--------------------------------------------------------------
678
  Misc.
679
  --------------------------------------------------------------*/
@@ -690,27 +797,16 @@ Misc.
690
  }
691
 
692
  /* line 18, sass/partials/_misc.scss */
693
- .cmb2-options-page .cmb2-metabox-title {
694
- font-size: 1.3em;
695
- margin: 1em 0;
696
- }
697
- /* line 21, sass/partials/_misc.scss */
698
- .cmb2-options-page .cmb2-metabox-title + p.cmb2-metabox-description {
699
- margin-top: -1.6em;
700
- margin-bottom: .8em;
701
- }
702
-
703
- /* line 28, sass/partials/_misc.scss */
704
  .cmb2-postbox .cmb-spinner, .cmb2-no-box-wrap .cmb-spinner {
705
  float: left;
706
  display: none;
707
  }
708
 
709
- /* line 33, sass/partials/_misc.scss */
710
  .cmb-spinner {
711
  display: none;
712
  }
713
- /* line 35, sass/partials/_misc.scss */
714
  .cmb-spinner.is-active {
715
  display: block;
716
  }
@@ -771,10 +867,10 @@ Sidebar Placement Adjustments
771
  }
772
  /* line 55, sass/partials/_sidebar_placements.scss */
773
  .inner-sidebar .cmb-th,
774
- .inner-sidebar .cmb-td,
775
  .inner-sidebar .cmb-th + .cmb-td,
776
  #side-sortables .cmb-th,
777
- #side-sortables .cmb-td,
778
  #side-sortables .cmb-th + .cmb-td {
779
  width: 100%;
780
  display: block;
@@ -786,11 +882,6 @@ Sidebar Placement Adjustments
786
  display: none;
787
  }
788
  /* line 67, sass/partials/_sidebar_placements.scss */
789
- .inner-sidebar .cmb-td .cmb-td,
790
- #side-sortables .cmb-td .cmb-td {
791
- padding-bottom: 1em;
792
- }
793
- /* line 71, sass/partials/_sidebar_placements.scss */
794
  .inner-sidebar .cmb-th,
795
  #side-sortables .cmb-th {
796
  display: block;
@@ -805,17 +896,8 @@ Sidebar Placement Adjustments
805
  .inner-sidebar .cmb-th label,
806
  #side-sortables .cmb-th label {
807
  display: block;
808
- margin-top: 0em;
809
- padding-bottom: 5px;
810
- }
811
- /* line 32, sass/partials/_mixins.scss */
812
- .inner-sidebar .cmb-th label:after,
813
- #side-sortables .cmb-th label:after {
814
- border-bottom: 1px solid #e9e9e9;
815
- content: '';
816
- clear: both;
817
- display: block;
818
- padding-top: .4em;
819
  }
820
  /* line 14, sass/partials/_mixins.scss */
821
  .inner-sidebar .cmb-th label,
@@ -823,27 +905,27 @@ Sidebar Placement Adjustments
823
  font-size: 14px;
824
  line-height: 1.4em;
825
  }
826
- /* line 78, sass/partials/_sidebar_placements.scss */
827
  .inner-sidebar .cmb-group-description .cmb-th,
828
  #side-sortables .cmb-group-description .cmb-th {
829
  padding-top: 0;
830
  }
831
- /* line 81, sass/partials/_sidebar_placements.scss */
832
  .inner-sidebar .cmb-group-description .cmb2-metabox-description,
833
  #side-sortables .cmb-group-description .cmb2-metabox-description {
834
  padding: 0;
835
  }
836
- /* line 88, sass/partials/_sidebar_placements.scss */
837
  .inner-sidebar .cmb-group-title .cmb-th,
838
  #side-sortables .cmb-group-title .cmb-th {
839
  padding: 0;
840
  }
841
- /* line 94, sass/partials/_sidebar_placements.scss */
842
  .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
843
  #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
844
  margin-top: 1em;
845
  }
846
- /* line 103, sass/partials/_sidebar_placements.scss */
847
  .inner-sidebar .cmb2-media-status .img-status img,
848
  .inner-sidebar .cmb2-media-status .embed-status img,
849
  #side-sortables .cmb2-media-status .img-status img,
@@ -851,19 +933,19 @@ Sidebar Placement Adjustments
851
  max-width: 90%;
852
  height: auto;
853
  }
854
- /* line 111, sass/partials/_sidebar_placements.scss */
855
  .inner-sidebar .cmb2-list label,
856
  #side-sortables .cmb2-list label {
857
  display: inline;
858
  font-weight: normal;
859
  }
860
- /* line 116, sass/partials/_sidebar_placements.scss */
861
  .inner-sidebar .cmb2-metabox-description,
862
  #side-sortables .cmb2-metabox-description {
863
  display: block;
864
  padding: 7px 0 0;
865
  }
866
- /* line 123, sass/partials/_sidebar_placements.scss */
867
  .inner-sidebar .cmb-type-checkbox .cmb-td label,
868
  .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
869
  #side-sortables .cmb-type-checkbox .cmb-td label,
@@ -871,39 +953,25 @@ Sidebar Placement Adjustments
871
  font-weight: normal;
872
  display: inline;
873
  }
874
- /* line 130, sass/partials/_sidebar_placements.scss */
875
  .inner-sidebar .cmb-row .cmb2-metabox-description,
876
  #side-sortables .cmb-row .cmb2-metabox-description {
877
  padding-bottom: 1.8em;
878
  }
879
- /* line 134, sass/partials/_sidebar_placements.scss */
880
  .inner-sidebar .cmb2-metabox-title,
881
  #side-sortables .cmb2-metabox-title {
882
  font-size: 1.2em;
883
  font-style: italic;
884
  }
885
- /* line 139, sass/partials/_sidebar_placements.scss */
886
  .inner-sidebar .cmb-remove-row,
887
  #side-sortables .cmb-remove-row {
888
  clear: both;
889
  padding-top: 12px;
890
  padding-bottom: 0;
891
  }
892
- /* line 146, sass/partials/_sidebar_placements.scss */
893
- .inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td,
894
- #side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td {
895
- width: auto;
896
- clear: none;
897
- float: left;
898
- padding-top: 0;
899
- }
900
- /* line 151, sass/partials/_sidebar_placements.scss */
901
- .inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row,
902
- #side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row {
903
- float: right;
904
- margin: 0;
905
- }
906
- /* line 158, sass/partials/_sidebar_placements.scss */
907
  .inner-sidebar .cmb2-upload-button,
908
  #side-sortables .cmb2-upload-button {
909
  clear: both;
@@ -911,10 +979,6 @@ Sidebar Placement Adjustments
911
  }
912
 
913
  /* line 2, sass/partials/_collapsible_ui.scss */
914
- .cmb2-metabox .cmb-type-group {
915
- max-width: 1000px;
916
- }
917
- /* line 5, sass/partials/_collapsible_ui.scss */
918
  .cmb2-metabox .cmbhandle {
919
  color: #aaa;
920
  float: right;
@@ -924,7 +988,7 @@ Sidebar Placement Adjustments
924
  right: -1em;
925
  position: relative;
926
  }
927
- /* line 13, sass/partials/_collapsible_ui.scss */
928
  .cmb2-metabox .cmbhandle:before {
929
  content: '\f142';
930
  right: 12px;
@@ -938,11 +1002,11 @@ Sidebar Placement Adjustments
938
  -moz-osx-font-smoothing: grayscale;
939
  text-decoration: none !important;
940
  }
941
- /* line 30, sass/partials/_collapsible_ui.scss */
942
  .cmb2-metabox .postbox.closed .cmbhandle:before {
943
  content: '\f140';
944
  }
945
- /* line 36, sass/partials/_collapsible_ui.scss */
946
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
947
  -webkit-appearance: none !important;
948
  background: none !important;
@@ -954,13 +1018,13 @@ Sidebar Placement Adjustments
954
  padding: 2px 6px 3px;
955
  opacity: .5;
956
  }
957
- /* line 46, sass/partials/_collapsible_ui.scss */
958
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
959
  cursor: pointer;
960
  color: #a00;
961
  opacity: 1;
962
  }
963
- /* line 50, sass/partials/_collapsible_ui.scss */
964
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
965
  color: #f00;
966
  }
1
+ @charset "UTF-8";
2
  /**
3
  * CMB2 Styling
4
  */
51
  }
52
  /* line 59, sass/partials/_main_wrap.scss */
53
  .cmb2-wrap input:not([type="hidden"]) + input,
54
+ .cmb2-wrap input:not([type="hidden"]) + .button-secondary,
55
  .cmb2-wrap input:not([type="hidden"]) + select {
56
  margin-left: 20px;
57
  }
87
  }
88
  /* line 102, sass/partials/_main_wrap.scss */
89
  .cmb2-wrap button,
90
+ .cmb2-wrap .button-secondary {
91
  white-space: nowrap;
92
  }
93
  /* line 107, sass/partials/_main_wrap.scss */
106
  .cmb2-wrap .meta_mce textarea {
107
  width: 100%;
108
  }
109
+ /* line 124, sass/partials/_main_wrap.scss */
110
  .cmb2-wrap .wp-color-result,
111
  .cmb2-wrap .wp-picker-input-wrap {
112
  vertical-align: middle;
113
  }
114
+ /* line 129, sass/partials/_main_wrap.scss */
115
  .cmb2-wrap .wp-color-result,
116
  .cmb2-wrap .wp-picker-container {
117
  margin: 0 10px 0 0;
118
  }
119
+ /* line 134, sass/partials/_main_wrap.scss */
120
  .cmb2-wrap .cmb-row {
121
  margin: 0;
122
  }
123
+ /* line 137, sass/partials/_main_wrap.scss */
124
  .cmb2-wrap .cmb-row:after {
125
  content: '';
126
  clear: both;
127
  display: block;
128
  width: 100%;
129
  }
130
+ /* line 144, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
131
  .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
132
  padding-top: 0;
133
+ padding-bottom: 1em;
134
  }
135
 
136
+ /* line 152, sass/partials/_main_wrap.scss */
137
  .cmb2-metabox {
138
  clear: both;
139
  margin: 0;
140
  }
141
+ /* line 158, sass/partials/_main_wrap.scss */
142
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
143
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
144
  .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-td,
145
  .cmb2-metabox .cmb-field-list > .cmb-row:first-of-type > .cmb-th {
146
  border: 0;
147
  }
 
 
 
 
 
 
148
 
149
+ /* line 165, sass/partials/_main_wrap.scss */
150
  .cmb-add-row {
151
  margin: 1.8em 0 0;
152
  }
153
 
154
+ /* line 169, sass/partials/_main_wrap.scss */
155
  .cmb-nested .cmb-td,
156
  .cmb-repeatable-group .cmb-th,
157
  .cmb-repeatable-group:first-of-type {
158
  border: 0;
159
  }
160
 
161
+ /* line 175, sass/partials/_main_wrap.scss */
162
  .cmb-row:last-of-type,
163
  .cmb2-wrap .cmb-row:last-of-type,
164
  .cmb-repeatable-group:last-of-type {
165
  border-bottom: 0;
166
  }
167
 
168
+ /* line 181, sass/partials/_main_wrap.scss */
169
  .cmb-repeatable-grouping {
170
  border: 1px solid #e9e9e9;
171
  padding: 0 1em;
 
172
  }
173
+ /* line 185, sass/partials/_main_wrap.scss */
174
  .cmb-repeatable-grouping.cmb-row {
175
  margin: 0 0 0.8em;
176
  }
177
 
178
+ /* line 193, sass/partials/_main_wrap.scss */
179
  .cmb-th {
180
  color: #222222;
181
  float: left;
186
  width: 200px;
187
  }
188
  @media (max-width: 450px) {
189
+ /* line 193, sass/partials/_main_wrap.scss */
190
  .cmb-th {
191
  font-size: 1.2em;
192
  display: block;
198
  /* line 27, sass/partials/_mixins.scss */
199
  .cmb-th label {
200
  display: block;
201
+ margin-top: 0;
202
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
203
  }
204
  }
205
 
206
+ /* line 207, sass/partials/_main_wrap.scss */
207
  .cmb-td {
208
  line-height: 1.3;
209
  max-width: 100%;
211
  vertical-align: middle;
212
  }
213
 
214
+ /* line 216, sass/partials/_main_wrap.scss */
215
  .cmb-type-title .cmb-td {
216
  padding: 0;
217
  }
218
 
219
+ /* line 221, sass/partials/_main_wrap.scss */
220
  .cmb-th label {
221
  display: block;
222
  padding: 5px 0;
223
  }
224
 
225
+ /* line 226, sass/partials/_main_wrap.scss */
226
  .cmb-th + .cmb-td {
227
  float: left;
228
  }
229
 
230
+ /* line 230, sass/partials/_main_wrap.scss */
231
  .cmb-td .cmb-td {
232
  padding-bottom: 1em;
233
  }
234
 
235
+ /* line 234, sass/partials/_main_wrap.scss */
236
  .cmb-remove-row {
237
  text-align: right;
238
  }
239
 
240
+ /* line 238, sass/partials/_main_wrap.scss */
241
  .empty-row.hidden {
242
  display: none;
243
  }
244
 
245
+ /* line 243, sass/partials/_main_wrap.scss */
246
+ .cmb-repeat-table {
247
+ background-color: #fafafa;
248
+ border: 1px solid #e1e1e1;
249
+ }
250
+ /* line 247, sass/partials/_main_wrap.scss */
251
+ .cmb-repeat-table .cmb-row.cmb-repeat-row {
252
+ position: relative;
253
+ counter-increment: el;
254
+ margin: 0;
255
+ padding: 10px 10px 10px 50px;
256
+ border-bottom: none !important;
257
+ }
258
+ /* line 255, sass/partials/_main_wrap.scss */
259
+ .cmb-repeat-table .cmb-row.cmb-repeat-row + .cmb-repeat-row {
260
+ border-top: solid 1px #e9e9e9;
261
+ }
262
+ /* line 259, sass/partials/_main_wrap.scss */
263
+ .cmb-repeat-table .cmb-row.cmb-repeat-row:before {
264
+ content: counter(el);
265
+ display: block;
266
+ top: 0;
267
+ left: 0;
268
+ position: absolute;
269
+ width: 35px;
270
+ height: 100%;
271
+ line-height: 35px;
272
+ color: #aaaaaa;
273
+ text-align: center;
274
+ border-right: solid 1px #e9e9e9;
275
+ }
276
+ /* line 276, sass/partials/_main_wrap.scss */
277
+ .cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td {
278
+ margin: 0;
279
+ padding: 0;
280
+ }
281
+ /* line 283, sass/partials/_main_wrap.scss */
282
+ .cmb-repeat-table + .cmb-add-row {
283
+ margin: 0;
284
+ }
285
+ /* line 286, sass/partials/_main_wrap.scss */
286
+ .cmb-repeat-table + .cmb-add-row:before {
287
+ content: '';
288
+ width: 1px;
289
+ height: 1.6em;
290
+ display: block;
291
+ margin-left: 17px;
292
+ background-color: gainsboro;
293
+ }
294
+ /* line 296, sass/partials/_main_wrap.scss */
295
+ .cmb-repeat-table .cmb-remove-row {
296
+ top: 7px;
297
+ right: 7px;
298
+ position: absolute;
299
+ width: auto;
300
+ margin-left: 0;
301
+ padding: 0 !important;
302
+ display: none;
303
+ }
304
+ /* line 307, sass/partials/_main_wrap.scss */
305
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button {
306
+ font-size: 20px;
307
+ text-indent: -1000px;
308
+ overflow: hidden;
309
+ position: relative;
310
+ height: auto;
311
+ line-height: 1;
312
+ padding: 0 10px 0;
313
+ }
314
+ /* line 318, sass/partials/_main_wrap.scss */
315
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button:before {
316
+ content: "";
317
+ font-family: 'Dashicons';
318
+ speak: none;
319
+ font-weight: normal;
320
+ font-variant: normal;
321
+ text-transform: none;
322
+ line-height: 1;
323
+ -webkit-font-smoothing: antialiased;
324
+ margin: 0;
325
+ text-indent: 0;
326
+ position: absolute;
327
+ top: 0;
328
+ left: 0;
329
+ width: 100%;
330
+ height: 100%;
331
+ text-align: center;
332
+ }
333
+ /* line 324, sass/partials/_main_wrap.scss */
334
+ .cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row {
335
+ display: block;
336
+ }
337
+
338
+ /* line 332, sass/partials/_main_wrap.scss */
339
  .cmb-repeatable-group .cmb-th {
340
  padding: 5px;
341
  }
342
+ /* line 336, sass/partials/_main_wrap.scss */
343
  .cmb-repeatable-group .cmb-group-title {
344
  background-color: #e9e9e9;
345
  padding: 8px 12px 8px 2.2em;
348
  font-size: 14px;
349
  line-height: 1.4;
350
  }
351
+ /* line 344, sass/partials/_main_wrap.scss */
352
  .cmb-repeatable-group .cmb-group-title h4 {
353
  border: 0;
354
  margin: 0;
356
  font-weight: 500;
357
  padding: 0.5em 0.75em;
358
  }
359
+ /* line 352, sass/partials/_main_wrap.scss */
360
  .cmb-repeatable-group .cmb-group-title .cmb-th {
361
  display: block;
362
  width: 100%;
363
  }
364
+ /* line 358, sass/partials/_main_wrap.scss */
365
  .cmb-repeatable-group .cmb-group-description .cmb-th {
366
  font-size: 1.2em;
367
  display: block;
373
  /* line 27, sass/partials/_mixins.scss */
374
  .cmb-repeatable-group .cmb-group-description .cmb-th label {
375
  display: block;
376
+ margin-top: 0;
377
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
378
  }
379
+ /* line 362, sass/partials/_main_wrap.scss */
380
  .cmb-repeatable-group .cmb-shift-rows {
381
  font-size: 1em;
382
  margin-right: 1em;
383
  text-decoration: none;
384
  }
385
+ /* line 367, sass/partials/_main_wrap.scss */
386
  .cmb-repeatable-group .cmb-shift-rows .dashicons {
387
  font-size: 1.5em;
388
  height: 1.5em;
389
  line-height: 1.2em;
390
  width: 1em;
391
  }
392
+ /* line 373, sass/partials/_main_wrap.scss */
393
  .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
394
  line-height: 1.3em;
395
  }
396
+ /* line 380, sass/partials/_main_wrap.scss */
397
  .cmb-repeatable-group .cmb2-upload-button {
398
  float: right;
399
  }
400
 
401
+ /* line 386, sass/partials/_main_wrap.scss */
402
  p.cmb2-metabox-description {
403
  color: #aaaaaa;
404
  font-style: italic;
406
  padding-top: .5em;
407
  }
408
 
409
+ /* line 393, sass/partials/_main_wrap.scss */
410
  span.cmb2-metabox-description {
411
  color: #aaaaaa;
412
  font-style: italic;
413
  }
414
 
415
+ /* line 398, sass/partials/_main_wrap.scss */
416
  .cmb2-metabox-title {
417
  margin: 0 0 5px 0;
418
  padding: 5px 0 0 0;
419
  font-size: 14px;
420
  }
421
 
422
+ /* line 404, sass/partials/_main_wrap.scss */
423
  .cmb-inline ul {
424
  padding: 4px 0 0 0;
425
  }
426
 
427
+ /* line 408, sass/partials/_main_wrap.scss */
428
  .cmb-inline li {
429
  display: inline-block;
430
  padding-right: 18px;
431
  }
432
 
433
+ /* line 413, sass/partials/_main_wrap.scss */
434
  .cmb-type-textarea-code pre {
435
  margin: 0;
436
  }
437
 
438
+ /* line 419, sass/partials/_main_wrap.scss */
439
  .cmb2-media-status .img-status {
440
  clear: none;
441
  display: inline-block;
443
  margin-right: 10px;
444
  width: auto;
445
  }
446
+ /* line 426, sass/partials/_main_wrap.scss */
447
  .cmb2-media-status .img-status img {
448
  max-width: 350px;
449
  height: auto;
450
  }
451
+ /* line 432, sass/partials/_main_wrap.scss */
452
  .cmb2-media-status .img-status img,
453
  .cmb2-media-status .embed-status {
454
  background: #ffffff;
458
  margin: 15px 0 0 0;
459
  padding: 5px;
460
  }
461
+ /* line 442, sass/partials/_main_wrap.scss */
462
  .cmb2-media-status .embed-status {
463
  float: left;
464
  max-width: 800px;
465
  }
466
+ /* line 447, sass/partials/_main_wrap.scss */
467
  .cmb2-media-status .img-status, .cmb2-media-status .embed-status {
468
  position: relative;
469
  }
470
+ /* line 450, sass/partials/_main_wrap.scss */
471
  .cmb2-media-status .img-status .cmb2-remove-file-button, .cmb2-media-status .embed-status .cmb2-remove-file-button {
472
  background: url(../images/ico-delete.png);
473
  height: 16px;
477
  top: -5px;
478
  width: 16px;
479
  }
480
+ /* line 464, sass/partials/_main_wrap.scss */
481
  .cmb2-media-status .img-status .cmb2-remove-file-button {
482
  top: 10px;
483
  }
484
+ /* line 469, sass/partials/_main_wrap.scss */
485
  .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span {
486
  cursor: pointer;
487
  }
488
 
489
+ /* line 475, sass/partials/_main_wrap.scss */
490
  .cmb-type-file-list .cmb2-media-status .img-status {
491
  clear: none;
492
  vertical-align: middle;
496
  margin-top: 0;
497
  }
498
 
499
+ /* line 484, sass/partials/_main_wrap.scss */
500
  .cmb-attach-list li {
501
  clear: both;
502
  display: inline-block;
504
  margin-top: 5px;
505
  margin-bottom: 10px;
506
  }
507
+ /* line 491, sass/partials/_main_wrap.scss */
508
  .cmb-attach-list li img {
509
  cursor: move;
510
  float: left;
511
  margin-right: 10px;
512
  }
513
 
514
+ /* line 498, sass/partials/_main_wrap.scss */
515
  .cmb2-remove-wrapper {
516
  margin: 0;
517
  }
518
 
519
+ /* line 502, sass/partials/_main_wrap.scss */
520
  .child-cmb2 .cmb-th {
521
  text-align: left;
522
  }
523
 
524
+ /* line 506, sass/partials/_main_wrap.scss */
525
+ .cmb2-indented-hierarchy {
526
+ padding-left: 1.5em;
527
+ }
528
+
529
  @media (max-width: 450px) {
530
+ /* line 511, sass/partials/_main_wrap.scss */
531
  .cmb-th,
532
  .cmb-td,
533
  .cmb-th + .cmb-td {
595
  line-height: 1.3;
596
  }
597
  /* line 63, sass/partials/_post_metaboxes.scss */
 
 
 
 
598
  .cmb2-postbox .cmb-th + .cmb-td, .cmb-type-group .cmb-th + .cmb-td {
599
  width: 80%;
600
  float: right;
601
  }
602
+ /* line 68, sass/partials/_post_metaboxes.scss */
603
  .cmb2-postbox .cmb-row:not(:last-of-type),
604
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
605
  .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
606
  border-bottom: 1px solid #e9e9e9;
607
  }
608
  @media (max-width: 450px) {
609
+ /* line 68, sass/partials/_post_metaboxes.scss */
610
  .cmb2-postbox .cmb-row:not(:last-of-type),
611
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type), .cmb-type-group .cmb-row:not(:last-of-type),
612
  .cmb-type-group .cmb-repeatable-group:not(:last-of-type) {
613
  border-bottom: 0;
614
  }
615
  }
616
+ /* line 77, sass/partials/_post_metaboxes.scss */
617
  .cmb2-postbox .cmb-repeat-group-field,
618
  .cmb2-postbox .cmb-remove-field-row, .cmb-type-group .cmb-repeat-group-field,
619
  .cmb-type-group .cmb-remove-field-row {
620
  padding-top: 1.8em;
621
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
622
 
623
  /*--------------------------------------------------------------
624
  Context Metaboxes
711
  margin-right: 0;
712
  }
713
  }
714
+ /*--------------------------------------------------------------
715
+ Options page
716
+ --------------------------------------------------------------*/
717
+ /* line 4, sass/partials/_options-page.scss */
718
+ .cmb2-options-page {
719
+ max-width: 1200px;
720
+ }
721
+ /* line 7, sass/partials/_options-page.scss */
722
+ .cmb2-options-page.wrap > h2 {
723
+ margin-bottom: 1em;
724
+ }
725
+ /* line 11, sass/partials/_options-page.scss */
726
+ .cmb2-options-page .cmb2-metabox > .cmb-row {
727
+ padding: 1em;
728
+ margin-top: -1px;
729
+ background: #ffffff;
730
+ border: 1px solid #e9e9e9;
731
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
732
+ }
733
+ /* line 18, sass/partials/_options-page.scss */
734
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th {
735
+ padding: 0;
736
+ font-weight: initial;
737
+ }
738
+ /* line 23, sass/partials/_options-page.scss */
739
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
740
+ float: none;
741
+ padding: 0 0 0 1em;
742
+ margin-left: 200px;
743
+ }
744
+ @media (max-width: 450px) {
745
+ /* line 23, sass/partials/_options-page.scss */
746
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
747
+ padding: 0;
748
+ margin-left: 0;
749
+ }
750
+ }
751
+ /* line 36, sass/partials/_options-page.scss */
752
+ .cmb2-options-page .cmb2-wrap .cmb-type-title {
753
+ margin-top: 1em;
754
+ padding: 0.6em 1em;
755
+ background-color: #fafafa;
756
+ }
757
+ /* line 41, sass/partials/_options-page.scss */
758
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title {
759
+ font-size: 12px;
760
+ margin-top: 0;
761
+ margin-bottom: 0;
762
+ text-transform: uppercase;
763
+ }
764
+ /* line 48, sass/partials/_options-page.scss */
765
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description {
766
+ padding-top: 0.25em;
767
+ }
768
+ /* line 54, sass/partials/_options-page.scss */
769
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th {
770
+ padding: 0 0 0.8em 0;
771
+ }
772
+ /* line 58, sass/partials/_options-page.scss */
773
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-name {
774
+ font-size: 16px;
775
+ margin-top: 0;
776
+ margin-bottom: 0;
777
+ }
778
+ /* line 64, sass/partials/_options-page.scss */
779
+ .cmb2-options-page .cmb-repeatable-group .cmb-th > .cmb2-metabox-description {
780
+ font-weight: 400;
781
+ padding-bottom: 0 !important;
782
+ }
783
+
784
  /*--------------------------------------------------------------
785
  Misc.
786
  --------------------------------------------------------------*/
797
  }
798
 
799
  /* line 18, sass/partials/_misc.scss */
 
 
 
 
 
 
 
 
 
 
 
800
  .cmb2-postbox .cmb-spinner, .cmb2-no-box-wrap .cmb-spinner {
801
  float: left;
802
  display: none;
803
  }
804
 
805
+ /* line 24, sass/partials/_misc.scss */
806
  .cmb-spinner {
807
  display: none;
808
  }
809
+ /* line 26, sass/partials/_misc.scss */
810
  .cmb-spinner.is-active {
811
  display: block;
812
  }
867
  }
868
  /* line 55, sass/partials/_sidebar_placements.scss */
869
  .inner-sidebar .cmb-th,
870
+ .inner-sidebar .cmb-td:not(.cmb-remove-row),
871
  .inner-sidebar .cmb-th + .cmb-td,
872
  #side-sortables .cmb-th,
873
+ #side-sortables .cmb-td:not(.cmb-remove-row),
874
  #side-sortables .cmb-th + .cmb-td {
875
  width: 100%;
876
  display: block;
882
  display: none;
883
  }
884
  /* line 67, sass/partials/_sidebar_placements.scss */
 
 
 
 
 
885
  .inner-sidebar .cmb-th,
886
  #side-sortables .cmb-th {
887
  display: block;
896
  .inner-sidebar .cmb-th label,
897
  #side-sortables .cmb-th label {
898
  display: block;
899
+ margin-top: 0;
900
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
 
901
  }
902
  /* line 14, sass/partials/_mixins.scss */
903
  .inner-sidebar .cmb-th label,
905
  font-size: 14px;
906
  line-height: 1.4em;
907
  }
908
+ /* line 74, sass/partials/_sidebar_placements.scss */
909
  .inner-sidebar .cmb-group-description .cmb-th,
910
  #side-sortables .cmb-group-description .cmb-th {
911
  padding-top: 0;
912
  }
913
+ /* line 77, sass/partials/_sidebar_placements.scss */
914
  .inner-sidebar .cmb-group-description .cmb2-metabox-description,
915
  #side-sortables .cmb-group-description .cmb2-metabox-description {
916
  padding: 0;
917
  }
918
+ /* line 84, sass/partials/_sidebar_placements.scss */
919
  .inner-sidebar .cmb-group-title .cmb-th,
920
  #side-sortables .cmb-group-title .cmb-th {
921
  padding: 0;
922
  }
923
+ /* line 90, sass/partials/_sidebar_placements.scss */
924
  .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
925
  #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
926
  margin-top: 1em;
927
  }
928
+ /* line 99, sass/partials/_sidebar_placements.scss */
929
  .inner-sidebar .cmb2-media-status .img-status img,
930
  .inner-sidebar .cmb2-media-status .embed-status img,
931
  #side-sortables .cmb2-media-status .img-status img,
933
  max-width: 90%;
934
  height: auto;
935
  }
936
+ /* line 107, sass/partials/_sidebar_placements.scss */
937
  .inner-sidebar .cmb2-list label,
938
  #side-sortables .cmb2-list label {
939
  display: inline;
940
  font-weight: normal;
941
  }
942
+ /* line 112, sass/partials/_sidebar_placements.scss */
943
  .inner-sidebar .cmb2-metabox-description,
944
  #side-sortables .cmb2-metabox-description {
945
  display: block;
946
  padding: 7px 0 0;
947
  }
948
+ /* line 119, sass/partials/_sidebar_placements.scss */
949
  .inner-sidebar .cmb-type-checkbox .cmb-td label,
950
  .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
951
  #side-sortables .cmb-type-checkbox .cmb-td label,
953
  font-weight: normal;
954
  display: inline;
955
  }
956
+ /* line 126, sass/partials/_sidebar_placements.scss */
957
  .inner-sidebar .cmb-row .cmb2-metabox-description,
958
  #side-sortables .cmb-row .cmb2-metabox-description {
959
  padding-bottom: 1.8em;
960
  }
961
+ /* line 130, sass/partials/_sidebar_placements.scss */
962
  .inner-sidebar .cmb2-metabox-title,
963
  #side-sortables .cmb2-metabox-title {
964
  font-size: 1.2em;
965
  font-style: italic;
966
  }
967
+ /* line 135, sass/partials/_sidebar_placements.scss */
968
  .inner-sidebar .cmb-remove-row,
969
  #side-sortables .cmb-remove-row {
970
  clear: both;
971
  padding-top: 12px;
972
  padding-bottom: 0;
973
  }
974
+ /* line 141, sass/partials/_sidebar_placements.scss */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
975
  .inner-sidebar .cmb2-upload-button,
976
  #side-sortables .cmb2-upload-button {
977
  clear: both;
979
  }
980
 
981
  /* line 2, sass/partials/_collapsible_ui.scss */
 
 
 
 
982
  .cmb2-metabox .cmbhandle {
983
  color: #aaa;
984
  float: right;
988
  right: -1em;
989
  position: relative;
990
  }
991
+ /* line 10, sass/partials/_collapsible_ui.scss */
992
  .cmb2-metabox .cmbhandle:before {
993
  content: '\f142';
994
  right: 12px;
1002
  -moz-osx-font-smoothing: grayscale;
1003
  text-decoration: none !important;
1004
  }
1005
+ /* line 27, sass/partials/_collapsible_ui.scss */
1006
  .cmb2-metabox .postbox.closed .cmbhandle:before {
1007
  content: '\f140';
1008
  }
1009
+ /* line 33, sass/partials/_collapsible_ui.scss */
1010
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
1011
  -webkit-appearance: none !important;
1012
  background: none !important;
1018
  padding: 2px 6px 3px;
1019
  opacity: .5;
1020
  }
1021
+ /* line 43, sass/partials/_collapsible_ui.scss */
1022
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
1023
  cursor: pointer;
1024
  color: #a00;
1025
  opacity: 1;
1026
  }
1027
+ /* line 47, sass/partials/_collapsible_ui.scss */
1028
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
1029
  color: #f00;
1030
  }
vendor/CMB2/css/cmb2-front.min.css CHANGED
@@ -1 +1 @@
1
- .cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-left:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 5px 0 0;padding:0}.cmb2-wrap .button,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 10px 0 0}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat-row{padding:1.8em 0 0}.cmb2-wrap .cmb-row.cmb-repeat-row:first-of-type{padding:0}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1.8em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb2-metabox>.cmb-row .cmb-repeat-table .cmb-row>.cmb-td{padding-right:20px;box-sizing:border-box;float:left}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em;max-width:1000px}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:left;font-weight:600;line-height:1.3;padding:20px 10px 20px 0;vertical-align:top;width:200px}@media (max-width:450px){.cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:left;width:100%}.cmb-th label{display:block;margin-top:0;padding-bottom:5px}.cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:left}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:right}.empty-row.hidden{display:none}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 12px 8px 2.2em;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:left;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;padding-bottom:5px}.cmb-repeatable-group .cmb-group-description .cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-right:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:right}p.cmb2-metabox-description{color:#aaa;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#aaa;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-right:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-right:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#fff;border:1px solid #e9e9e9;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0;padding:5px}.cmb2-media-status .embed-status{float:left;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;left:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-right:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{cursor:move;float:left;margin-right:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:left}@media (max-width:450px){.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}}#poststuff .cmb-group-title{margin-left:-1em;margin-right:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-left:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{right:-1em;position:relative}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 2% 0 0}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-repeat-row .cmb-td,.cmb2-postbox .cmb-repeat-row .cmb-td{padding-bottom:1.8em}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:right}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}@media (max-width:450px){.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody{display:table;width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text{width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row){display:table-row}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td{display:table-cell;float:none;width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td{padding-top:1.8em}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row{padding-right:0}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 2% 0 0;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:0}}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-options-page .cmb2-metabox-title{font-size:1.3em;margin:1em 0}.cmb2-options-page .cmb2-metabox-title+p.cmb2-metabox-description{margin-top:-1.6em;margin-bottom:.8em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:left;display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-left:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td,#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td,.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-td .cmb-td,.inner-sidebar .cmb-td .cmb-td{padding-bottom:1em}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:left;width:100%;padding-left:0;padding-right:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;padding-bottom:5px}#side-sortables .cmb-th label:after,.inner-sidebar .cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td,.inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td{width:auto;clear:none;float:left;padding-top:0}#side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row,.inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row{float:right;margin:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmb-type-group{max-width:1000px}.cmb2-metabox .cmbhandle{color:#aaa;float:right;width:27px;height:30px;cursor:pointer;right:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';right:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;left:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-left:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:left;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 10px 10px 40%}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:left}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .6em .4em .4em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}.closed .inside{display:none}.cmb-repeatable-grouping{position:relative}.cmb-repeatable-grouping .cmb-group-title{margin-left:-1em;margin-right:-1em;min-height:1.5em}.cmb-repeatable-grouping h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb-repeatable-group.repeatable .cmb-group-title{padding-left:2.2em}.cmb-repeatable-group.non-repeatable .cmb-group-title{padding-left:12px}.cmb-type-group .cmb-row .cmbhandle{right:0;position:absolute}.cmb-spinner{background:url(/wp-admin/images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:right;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}
1
+ @charset "UTF-8";.cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button-secondary,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-left:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 5px 0 0;padding:0}.cmb2-wrap .button-secondary,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 10px 0 0}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:left;font-weight:600;line-height:1.3;padding:20px 10px 20px 0;vertical-align:top;width:200px}@media (max-width:450px){.cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:left;width:100%}.cmb-th label{display:block;margin-top:0;margin-bottom:.5em}}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:left}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:right}.empty-row.hidden{display:none}.cmb-repeat-table{background-color:#fafafa;border:1px solid #e1e1e1}.cmb-repeat-table .cmb-row.cmb-repeat-row{position:relative;counter-increment:el;margin:0;padding:10px 10px 10px 50px;border-bottom:none!important}.cmb-repeat-table .cmb-row.cmb-repeat-row+.cmb-repeat-row{border-top:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row:before{content:counter(el);display:block;top:0;left:0;position:absolute;width:35px;height:100%;line-height:35px;color:#aaa;text-align:center;border-right:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td{margin:0;padding:0}.cmb-repeat-table+.cmb-add-row{margin:0}.cmb-repeat-table+.cmb-add-row:before{content:'';width:1px;height:1.6em;display:block;margin-left:17px;background-color:#dcdcdc}.cmb-repeat-table .cmb-remove-row{top:7px;right:7px;position:absolute;width:auto;margin-left:0;padding:0!important;display:none}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button{font-size:20px;text-indent:-1000px;overflow:hidden;position:relative;height:auto;line-height:1;padding:0 10px}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button:before{content:"";font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row{display:block}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 12px 8px 2.2em;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:left;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-right:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:right}p.cmb2-metabox-description{color:#aaa;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#aaa;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-right:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-right:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#fff;border:1px solid #e9e9e9;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0;padding:5px}.cmb2-media-status .embed-status{float:left;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;left:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-right:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{cursor:move;float:left;margin-right:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:left}.cmb2-indented-hierarchy{padding-left:1.5em}@media (max-width:450px){.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}}#poststuff .cmb-group-title{margin-left:-1em;margin-right:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-left:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{right:-1em;position:relative}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 2% 0 0}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:right}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}@media (max-width:450px){.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 2% 0 0;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:0}}.cmb2-options-page{max-width:1200px}.cmb2-options-page.wrap>h2{margin-bottom:1em}.cmb2-options-page .cmb2-metabox>.cmb-row{padding:1em;margin-top:-1px;background:#fff;border:1px solid #e9e9e9;box-shadow:0 1px 1px rgba(0,0,0,.05)}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th{padding:0;font-weight:initial}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{float:none;padding:0 0 0 1em;margin-left:200px}@media (max-width:450px){.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{padding:0;margin-left:0}}.cmb2-options-page .cmb2-wrap .cmb-type-title{margin-top:1em;padding:.6em 1em;background-color:#fafafa}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title{font-size:12px;margin-top:0;margin-bottom:0;text-transform:uppercase}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description{padding-top:.25em}.cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th{padding:0 0 .8em}.cmb2-options-page .cmb-repeatable-group .cmb-group-name{font-size:16px;margin-top:0;margin-bottom:0}.cmb2-options-page .cmb-repeatable-group .cmb-th>.cmb2-metabox-description{font-weight:400;padding-bottom:0!important}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:left;display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-left:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td:not(.cmb-remove-row),#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td:not(.cmb-remove-row),.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:left;width:100%;padding-left:0;padding-right:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;margin-bottom:.5em;font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmbhandle{color:#aaa;float:right;width:27px;height:30px;cursor:pointer;right:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';right:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;left:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-left:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:left;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 10px 10px 40%}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:left}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .6em .4em .4em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}.closed .inside{display:none}.cmb-repeatable-grouping{position:relative}.cmb-repeatable-grouping .cmb-group-title{margin-left:-1em;margin-right:-1em;min-height:1.5em}.cmb-repeatable-grouping h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb-repeatable-group.repeatable .cmb-group-title{padding-left:2.2em}.cmb-repeatable-group.non-repeatable .cmb-group-title{padding-left:12px}.cmb-type-group .cmb-row .cmbhandle{right:0;position:absolute}.cmb-spinner{background:url(/wp-admin/images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:none;float:right;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}
vendor/CMB2/css/cmb2-rtl.css CHANGED
@@ -74,7 +74,7 @@ Main Wrap
74
  /* line 59, sass/partials/_main_wrap.scss */
75
 
76
  .cmb2-wrap input:not([type="hidden"]) + input,
77
- .cmb2-wrap input:not([type="hidden"]) + .button,
78
  .cmb2-wrap input:not([type="hidden"]) + select {
79
  margin-right: 20px;
80
  }
@@ -124,7 +124,7 @@ Main Wrap
124
  /* line 102, sass/partials/_main_wrap.scss */
125
 
126
  .cmb2-wrap button,
127
- .cmb2-wrap .button {
128
  white-space: nowrap;
129
  }
130
 
@@ -152,27 +152,27 @@ Main Wrap
152
  width: 100%;
153
  }
154
 
155
- /* line 126, sass/partials/_main_wrap.scss */
156
 
157
  .cmb2-wrap .wp-color-result,
158
  .cmb2-wrap .wp-picker-input-wrap {
159
  vertical-align: middle;
160
  }
161
 
162
- /* line 131, sass/partials/_main_wrap.scss */
163
 
164
  .cmb2-wrap .wp-color-result,
165
  .cmb2-wrap .wp-picker-container {
166
  margin: 0 0 0 10px;
167
  }
168
 
169
- /* line 136, sass/partials/_main_wrap.scss */
170
 
171
  .cmb2-wrap .cmb-row {
172
  margin: 0;
173
  }
174
 
175
- /* line 139, sass/partials/_main_wrap.scss */
176
 
177
  .cmb2-wrap .cmb-row:after {
178
  content: '';
@@ -181,33 +181,21 @@ Main Wrap
181
  width: 100%;
182
  }
183
 
184
- /* line 146, sass/partials/_main_wrap.scss */
185
-
186
- .cmb2-wrap .cmb-row.cmb-repeat-row {
187
- padding: 1.8em 0 0;
188
- }
189
-
190
- /* line 149, sass/partials/_main_wrap.scss */
191
-
192
- .cmb2-wrap .cmb-row.cmb-repeat-row:first-of-type {
193
- padding: 0;
194
- }
195
-
196
- /* line 154, sass/partials/_main_wrap.scss */
197
 
198
  .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
199
  padding-top: 0;
200
- padding-bottom: 1.8em;
201
  }
202
 
203
- /* line 161, sass/partials/_main_wrap.scss */
204
 
205
  .cmb2-metabox {
206
  clear: both;
207
  margin: 0;
208
  }
209
 
210
- /* line 167, sass/partials/_main_wrap.scss */
211
 
212
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
213
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
@@ -216,21 +204,13 @@ Main Wrap
216
  border: 0;
217
  }
218
 
219
- /* line 174, sass/partials/_main_wrap.scss */
220
-
221
- .cmb2-metabox > .cmb-row .cmb-repeat-table .cmb-row > .cmb-td {
222
- padding-left: 20px;
223
- box-sizing: border-box;
224
- float: right;
225
- }
226
-
227
- /* line 182, sass/partials/_main_wrap.scss */
228
 
229
  .cmb-add-row {
230
  margin: 1.8em 0 0;
231
  }
232
 
233
- /* line 186, sass/partials/_main_wrap.scss */
234
 
235
  .cmb-nested .cmb-td,
236
  .cmb-repeatable-group .cmb-th,
@@ -238,7 +218,7 @@ Main Wrap
238
  border: 0;
239
  }
240
 
241
- /* line 192, sass/partials/_main_wrap.scss */
242
 
243
  .cmb-row:last-of-type,
244
  .cmb2-wrap .cmb-row:last-of-type,
@@ -246,21 +226,20 @@ Main Wrap
246
  border-bottom: 0;
247
  }
248
 
249
- /* line 198, sass/partials/_main_wrap.scss */
250
 
251
  .cmb-repeatable-grouping {
252
  border: 1px solid #e9e9e9;
253
  padding: 0 1em;
254
- max-width: 1000px;
255
  }
256
 
257
- /* line 202, sass/partials/_main_wrap.scss */
258
 
259
  .cmb-repeatable-grouping.cmb-row {
260
  margin: 0 0 0.8em;
261
  }
262
 
263
- /* line 209, sass/partials/_main_wrap.scss */
264
 
265
  .cmb-th {
266
  color: #222222;
@@ -272,7 +251,7 @@ Main Wrap
272
  width: 200px;
273
  }
274
 
275
- /* line 223, sass/partials/_main_wrap.scss */
276
 
277
  .cmb-td {
278
  line-height: 1.3;
@@ -281,50 +260,164 @@ Main Wrap
281
  vertical-align: middle;
282
  }
283
 
284
- /* line 232, sass/partials/_main_wrap.scss */
285
 
286
  .cmb-type-title .cmb-td {
287
  padding: 0;
288
  }
289
 
290
- /* line 237, sass/partials/_main_wrap.scss */
291
 
292
  .cmb-th label {
293
  display: block;
294
  padding: 5px 0;
295
  }
296
 
297
- /* line 242, sass/partials/_main_wrap.scss */
298
 
299
  .cmb-th + .cmb-td {
300
  float: right;
301
  }
302
 
303
- /* line 246, sass/partials/_main_wrap.scss */
304
 
305
  .cmb-td .cmb-td {
306
  padding-bottom: 1em;
307
  }
308
 
309
- /* line 250, sass/partials/_main_wrap.scss */
310
 
311
  .cmb-remove-row {
312
  text-align: left;
313
  }
314
 
315
- /* line 254, sass/partials/_main_wrap.scss */
316
 
317
  .empty-row.hidden {
318
  display: none;
319
  }
320
 
321
- /* line 260, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
322
 
323
  .cmb-repeatable-group .cmb-th {
324
  padding: 5px;
325
  }
326
 
327
- /* line 264, sass/partials/_main_wrap.scss */
328
 
329
  .cmb-repeatable-group .cmb-group-title {
330
  background-color: #e9e9e9;
@@ -335,7 +428,7 @@ Main Wrap
335
  line-height: 1.4;
336
  }
337
 
338
- /* line 272, sass/partials/_main_wrap.scss */
339
 
340
  .cmb-repeatable-group .cmb-group-title h4 {
341
  border: 0;
@@ -345,14 +438,14 @@ Main Wrap
345
  padding: 0.5em 0.75em;
346
  }
347
 
348
- /* line 280, sass/partials/_main_wrap.scss */
349
 
350
  .cmb-repeatable-group .cmb-group-title .cmb-th {
351
  display: block;
352
  width: 100%;
353
  }
354
 
355
- /* line 286, sass/partials/_main_wrap.scss */
356
 
357
  .cmb-repeatable-group .cmb-group-description .cmb-th {
358
  font-size: 1.2em;
@@ -367,21 +460,11 @@ Main Wrap
367
 
368
  .cmb-repeatable-group .cmb-group-description .cmb-th label {
369
  display: block;
370
- margin-top: 0em;
371
- padding-bottom: 5px;
372
- }
373
-
374
- /* line 32, sass/partials/_mixins.scss */
375
-
376
- .cmb-repeatable-group .cmb-group-description .cmb-th label:after {
377
- border-bottom: 1px solid #e9e9e9;
378
- content: '';
379
- clear: both;
380
- display: block;
381
- padding-top: .4em;
382
  }
383
 
384
- /* line 290, sass/partials/_main_wrap.scss */
385
 
386
  .cmb-repeatable-group .cmb-shift-rows {
387
  font-size: 1em;
@@ -389,7 +472,7 @@ Main Wrap
389
  text-decoration: none;
390
  }
391
 
392
- /* line 295, sass/partials/_main_wrap.scss */
393
 
394
  .cmb-repeatable-group .cmb-shift-rows .dashicons {
395
  font-size: 1.5em;
@@ -398,19 +481,19 @@ Main Wrap
398
  width: 1em;
399
  }
400
 
401
- /* line 301, sass/partials/_main_wrap.scss */
402
 
403
  .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
404
  line-height: 1.3em;
405
  }
406
 
407
- /* line 308, sass/partials/_main_wrap.scss */
408
 
409
  .cmb-repeatable-group .cmb2-upload-button {
410
  float: left;
411
  }
412
 
413
- /* line 314, sass/partials/_main_wrap.scss */
414
 
415
  p.cmb2-metabox-description {
416
  color: #aaaaaa;
@@ -419,14 +502,14 @@ p.cmb2-metabox-description {
419
  padding-top: .5em;
420
  }
421
 
422
- /* line 321, sass/partials/_main_wrap.scss */
423
 
424
  span.cmb2-metabox-description {
425
  color: #aaaaaa;
426
  font-style: italic;
427
  }
428
 
429
- /* line 326, sass/partials/_main_wrap.scss */
430
 
431
  .cmb2-metabox-title {
432
  margin: 0 0 5px 0;
@@ -434,26 +517,26 @@ span.cmb2-metabox-description {
434
  font-size: 14px;
435
  }
436
 
437
- /* line 332, sass/partials/_main_wrap.scss */
438
 
439
  .cmb-inline ul {
440
  padding: 4px 0 0 0;
441
  }
442
 
443
- /* line 336, sass/partials/_main_wrap.scss */
444
 
445
  .cmb-inline li {
446
  display: inline-block;
447
  padding-left: 18px;
448
  }
449
 
450
- /* line 341, sass/partials/_main_wrap.scss */
451
 
452
  .cmb-type-textarea-code pre {
453
  margin: 0;
454
  }
455
 
456
- /* line 347, sass/partials/_main_wrap.scss */
457
 
458
  .cmb2-media-status .img-status {
459
  clear: none;
@@ -463,14 +546,14 @@ span.cmb2-metabox-description {
463
  width: auto;
464
  }
465
 
466
- /* line 354, sass/partials/_main_wrap.scss */
467
 
468
  .cmb2-media-status .img-status img {
469
  max-width: 350px;
470
  height: auto;
471
  }
472
 
473
- /* line 360, sass/partials/_main_wrap.scss */
474
 
475
  .cmb2-media-status .img-status img,
476
  .cmb2-media-status .embed-status {
@@ -482,21 +565,21 @@ span.cmb2-metabox-description {
482
  padding: 5px;
483
  }
484
 
485
- /* line 370, sass/partials/_main_wrap.scss */
486
 
487
  .cmb2-media-status .embed-status {
488
  float: right;
489
  max-width: 800px;
490
  }
491
 
492
- /* line 375, sass/partials/_main_wrap.scss */
493
 
494
  .cmb2-media-status .img-status,
495
  .cmb2-media-status .embed-status {
496
  position: relative;
497
  }
498
 
499
- /* line 378, sass/partials/_main_wrap.scss */
500
 
501
  .cmb2-media-status .img-status .cmb2-remove-file-button,
502
  .cmb2-media-status .embed-status .cmb2-remove-file-button {
@@ -509,20 +592,20 @@ span.cmb2-metabox-description {
509
  width: 16px;
510
  }
511
 
512
- /* line 392, sass/partials/_main_wrap.scss */
513
 
514
  .cmb2-media-status .img-status .cmb2-remove-file-button {
515
  top: 10px;
516
  }
517
 
518
- /* line 397, sass/partials/_main_wrap.scss */
519
 
520
  .cmb2-media-status .img-status img,
521
  .cmb2-media-status .file-status > span {
522
  cursor: pointer;
523
  }
524
 
525
- /* line 403, sass/partials/_main_wrap.scss */
526
 
527
  .cmb-type-file-list .cmb2-media-status .img-status {
528
  clear: none;
@@ -533,7 +616,7 @@ span.cmb2-metabox-description {
533
  margin-top: 0;
534
  }
535
 
536
- /* line 412, sass/partials/_main_wrap.scss */
537
 
538
  .cmb-attach-list li {
539
  clear: both;
@@ -543,7 +626,7 @@ span.cmb2-metabox-description {
543
  margin-bottom: 10px;
544
  }
545
 
546
- /* line 419, sass/partials/_main_wrap.scss */
547
 
548
  .cmb-attach-list li img {
549
  cursor: move;
@@ -551,18 +634,24 @@ span.cmb2-metabox-description {
551
  margin-left: 10px;
552
  }
553
 
554
- /* line 426, sass/partials/_main_wrap.scss */
555
 
556
  .cmb2-remove-wrapper {
557
  margin: 0;
558
  }
559
 
560
- /* line 430, sass/partials/_main_wrap.scss */
561
 
562
  .child-cmb2 .cmb-th {
563
  text-align: right;
564
  }
565
 
 
 
 
 
 
 
566
  /*--------------------------------------------------------------
567
  Post Metaboxes
568
  --------------------------------------------------------------*/
@@ -653,20 +742,13 @@ Post Metaboxes
653
 
654
  /* line 63, sass/partials/_post_metaboxes.scss */
655
 
656
- .cmb2-postbox .cmb-repeat-row .cmb-td,
657
- .cmb-type-group .cmb-repeat-row .cmb-td {
658
- padding-bottom: 1.8em;
659
- }
660
-
661
- /* line 67, sass/partials/_post_metaboxes.scss */
662
-
663
  .cmb2-postbox .cmb-th + .cmb-td,
664
  .cmb-type-group .cmb-th + .cmb-td {
665
  width: 80%;
666
  float: left;
667
  }
668
 
669
- /* line 72, sass/partials/_post_metaboxes.scss */
670
 
671
  .cmb2-postbox .cmb-row:not(:last-of-type),
672
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
@@ -675,7 +757,7 @@ Post Metaboxes
675
  border-bottom: 1px solid #e9e9e9;
676
  }
677
 
678
- /* line 81, sass/partials/_post_metaboxes.scss */
679
 
680
  .cmb2-postbox .cmb-repeat-group-field,
681
  .cmb2-postbox .cmb-remove-field-row,
@@ -684,63 +766,6 @@ Post Metaboxes
684
  padding-top: 1.8em;
685
  }
686
 
687
- /* line 88, sass/partials/_post_metaboxes.scss */
688
-
689
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,
690
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,
691
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,
692
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody {
693
- display: table;
694
- width: 100%;
695
- }
696
-
697
- /* line 92, sass/partials/_post_metaboxes.scss */
698
-
699
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,
700
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,
701
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,
702
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text {
703
- width: 100%;
704
- }
705
-
706
- /* line 96, sass/partials/_post_metaboxes.scss */
707
-
708
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),
709
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),
710
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),
711
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row) {
712
- display: table-row;
713
- }
714
-
715
- /* line 100, sass/partials/_post_metaboxes.scss */
716
-
717
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,
718
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,
719
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,
720
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td {
721
- display: table-cell;
722
- float: none;
723
- width: 100%;
724
- }
725
-
726
- /* line 106, sass/partials/_post_metaboxes.scss */
727
-
728
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,
729
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,
730
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,
731
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td {
732
- padding-top: 1.8em;
733
- }
734
-
735
- /* line 110, sass/partials/_post_metaboxes.scss */
736
-
737
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,
738
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,
739
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,
740
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row {
741
- padding-left: 0;
742
- }
743
-
744
  /*--------------------------------------------------------------
745
  Context Metaboxes
746
  --------------------------------------------------------------*/
@@ -858,6 +883,91 @@ Context Metaboxes
858
 
859
  /* one column on the post write/edit screen */
860
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
861
  /*--------------------------------------------------------------
862
  Misc.
863
  --------------------------------------------------------------*/
@@ -878,33 +988,19 @@ Misc.
878
 
879
  /* line 18, sass/partials/_misc.scss */
880
 
881
- .cmb2-options-page .cmb2-metabox-title {
882
- font-size: 1.3em;
883
- margin: 1em 0;
884
- }
885
-
886
- /* line 21, sass/partials/_misc.scss */
887
-
888
- .cmb2-options-page .cmb2-metabox-title + p.cmb2-metabox-description {
889
- margin-top: -1.6em;
890
- margin-bottom: .8em;
891
- }
892
-
893
- /* line 28, sass/partials/_misc.scss */
894
-
895
  .cmb2-postbox .cmb-spinner,
896
  .cmb2-no-box-wrap .cmb-spinner {
897
  float: right;
898
  display: none;
899
  }
900
 
901
- /* line 33, sass/partials/_misc.scss */
902
 
903
  .cmb-spinner {
904
  display: none;
905
  }
906
 
907
- /* line 35, sass/partials/_misc.scss */
908
 
909
  .cmb-spinner.is-active {
910
  display: block;
@@ -987,10 +1083,10 @@ Sidebar Placement Adjustments
987
  /* line 55, sass/partials/_sidebar_placements.scss */
988
 
989
  .inner-sidebar .cmb-th,
990
- .inner-sidebar .cmb-td,
991
  .inner-sidebar .cmb-th + .cmb-td,
992
  #side-sortables .cmb-th,
993
- #side-sortables .cmb-td,
994
  #side-sortables .cmb-th + .cmb-td {
995
  width: 100%;
996
  display: block;
@@ -1006,13 +1102,6 @@ Sidebar Placement Adjustments
1006
 
1007
  /* line 67, sass/partials/_sidebar_placements.scss */
1008
 
1009
- .inner-sidebar .cmb-td .cmb-td,
1010
- #side-sortables .cmb-td .cmb-td {
1011
- padding-bottom: 1em;
1012
- }
1013
-
1014
- /* line 71, sass/partials/_sidebar_placements.scss */
1015
-
1016
  .inner-sidebar .cmb-th,
1017
  #side-sortables .cmb-th {
1018
  display: block;
@@ -1029,19 +1118,8 @@ Sidebar Placement Adjustments
1029
  .inner-sidebar .cmb-th label,
1030
  #side-sortables .cmb-th label {
1031
  display: block;
1032
- margin-top: 0em;
1033
- padding-bottom: 5px;
1034
- }
1035
-
1036
- /* line 32, sass/partials/_mixins.scss */
1037
-
1038
- .inner-sidebar .cmb-th label:after,
1039
- #side-sortables .cmb-th label:after {
1040
- border-bottom: 1px solid #e9e9e9;
1041
- content: '';
1042
- clear: both;
1043
- display: block;
1044
- padding-top: .4em;
1045
  }
1046
 
1047
  /* line 14, sass/partials/_mixins.scss */
@@ -1052,35 +1130,35 @@ Sidebar Placement Adjustments
1052
  line-height: 1.4em;
1053
  }
1054
 
1055
- /* line 78, sass/partials/_sidebar_placements.scss */
1056
 
1057
  .inner-sidebar .cmb-group-description .cmb-th,
1058
  #side-sortables .cmb-group-description .cmb-th {
1059
  padding-top: 0;
1060
  }
1061
 
1062
- /* line 81, sass/partials/_sidebar_placements.scss */
1063
 
1064
  .inner-sidebar .cmb-group-description .cmb2-metabox-description,
1065
  #side-sortables .cmb-group-description .cmb2-metabox-description {
1066
  padding: 0;
1067
  }
1068
 
1069
- /* line 88, sass/partials/_sidebar_placements.scss */
1070
 
1071
  .inner-sidebar .cmb-group-title .cmb-th,
1072
  #side-sortables .cmb-group-title .cmb-th {
1073
  padding: 0;
1074
  }
1075
 
1076
- /* line 94, sass/partials/_sidebar_placements.scss */
1077
 
1078
  .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
1079
  #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
1080
  margin-top: 1em;
1081
  }
1082
 
1083
- /* line 103, sass/partials/_sidebar_placements.scss */
1084
 
1085
  .inner-sidebar .cmb2-media-status .img-status img,
1086
  .inner-sidebar .cmb2-media-status .embed-status img,
@@ -1090,7 +1168,7 @@ Sidebar Placement Adjustments
1090
  height: auto;
1091
  }
1092
 
1093
- /* line 111, sass/partials/_sidebar_placements.scss */
1094
 
1095
  .inner-sidebar .cmb2-list label,
1096
  #side-sortables .cmb2-list label {
@@ -1098,7 +1176,7 @@ Sidebar Placement Adjustments
1098
  font-weight: normal;
1099
  }
1100
 
1101
- /* line 116, sass/partials/_sidebar_placements.scss */
1102
 
1103
  .inner-sidebar .cmb2-metabox-description,
1104
  #side-sortables .cmb2-metabox-description {
@@ -1106,7 +1184,7 @@ Sidebar Placement Adjustments
1106
  padding: 7px 0 0;
1107
  }
1108
 
1109
- /* line 123, sass/partials/_sidebar_placements.scss */
1110
 
1111
  .inner-sidebar .cmb-type-checkbox .cmb-td label,
1112
  .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
@@ -1116,14 +1194,14 @@ Sidebar Placement Adjustments
1116
  display: inline;
1117
  }
1118
 
1119
- /* line 130, sass/partials/_sidebar_placements.scss */
1120
 
1121
  .inner-sidebar .cmb-row .cmb2-metabox-description,
1122
  #side-sortables .cmb-row .cmb2-metabox-description {
1123
  padding-bottom: 1.8em;
1124
  }
1125
 
1126
- /* line 134, sass/partials/_sidebar_placements.scss */
1127
 
1128
  .inner-sidebar .cmb2-metabox-title,
1129
  #side-sortables .cmb2-metabox-title {
@@ -1131,7 +1209,7 @@ Sidebar Placement Adjustments
1131
  font-style: italic;
1132
  }
1133
 
1134
- /* line 139, sass/partials/_sidebar_placements.scss */
1135
 
1136
  .inner-sidebar .cmb-remove-row,
1137
  #side-sortables .cmb-remove-row {
@@ -1140,25 +1218,7 @@ Sidebar Placement Adjustments
1140
  padding-bottom: 0;
1141
  }
1142
 
1143
- /* line 146, sass/partials/_sidebar_placements.scss */
1144
-
1145
- .inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td,
1146
- #side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td {
1147
- width: auto;
1148
- clear: none;
1149
- float: right;
1150
- padding-top: 0;
1151
- }
1152
-
1153
- /* line 151, sass/partials/_sidebar_placements.scss */
1154
-
1155
- .inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row,
1156
- #side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row {
1157
- float: left;
1158
- margin: 0;
1159
- }
1160
-
1161
- /* line 158, sass/partials/_sidebar_placements.scss */
1162
 
1163
  .inner-sidebar .cmb2-upload-button,
1164
  #side-sortables .cmb2-upload-button {
@@ -1168,12 +1228,6 @@ Sidebar Placement Adjustments
1168
 
1169
  /* line 2, sass/partials/_collapsible_ui.scss */
1170
 
1171
- .cmb2-metabox .cmb-type-group {
1172
- max-width: 1000px;
1173
- }
1174
-
1175
- /* line 5, sass/partials/_collapsible_ui.scss */
1176
-
1177
  .cmb2-metabox .cmbhandle {
1178
  color: #aaa;
1179
  float: left;
@@ -1184,7 +1238,7 @@ Sidebar Placement Adjustments
1184
  position: relative;
1185
  }
1186
 
1187
- /* line 13, sass/partials/_collapsible_ui.scss */
1188
 
1189
  .cmb2-metabox .cmbhandle:before {
1190
  content: '\f142';
@@ -1200,13 +1254,13 @@ Sidebar Placement Adjustments
1200
  text-decoration: none !important;
1201
  }
1202
 
1203
- /* line 30, sass/partials/_collapsible_ui.scss */
1204
 
1205
  .cmb2-metabox .postbox.closed .cmbhandle:before {
1206
  content: '\f140';
1207
  }
1208
 
1209
- /* line 36, sass/partials/_collapsible_ui.scss */
1210
 
1211
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
1212
  -webkit-appearance: none !important;
@@ -1220,7 +1274,7 @@ Sidebar Placement Adjustments
1220
  opacity: .5;
1221
  }
1222
 
1223
- /* line 46, sass/partials/_collapsible_ui.scss */
1224
 
1225
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
1226
  cursor: pointer;
@@ -1228,7 +1282,7 @@ Sidebar Placement Adjustments
1228
  opacity: 1;
1229
  }
1230
 
1231
- /* line 50, sass/partials/_collapsible_ui.scss */
1232
 
1233
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
1234
  color: #f00;
@@ -1928,7 +1982,7 @@ Sidebar Placement Adjustments
1928
 
1929
  @media (max-width: 450px) {
1930
 
1931
- /* line 209, sass/partials/_main_wrap.scss */
1932
 
1933
  .cmb-th {
1934
  font-size: 1.2em;
@@ -1943,21 +1997,11 @@ Sidebar Placement Adjustments
1943
 
1944
  .cmb-th label {
1945
  display: block;
1946
- margin-top: 0em;
1947
- padding-bottom: 5px;
1948
- }
1949
-
1950
- /* line 32, sass/partials/_mixins.scss */
1951
-
1952
- .cmb-th label:after {
1953
- border-bottom: 1px solid #e9e9e9;
1954
- content: '';
1955
- clear: both;
1956
- display: block;
1957
- padding-top: .4em;
1958
  }
1959
 
1960
- /* line 435, sass/partials/_main_wrap.scss */
1961
 
1962
  .cmb-th,
1963
  .cmb-td,
@@ -1967,7 +2011,7 @@ Sidebar Placement Adjustments
1967
  width: 100%;
1968
  }
1969
 
1970
- /* line 72, sass/partials/_post_metaboxes.scss */
1971
 
1972
  .cmb2-postbox .cmb-row:not(:last-of-type),
1973
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
@@ -1976,5 +2020,12 @@ Sidebar Placement Adjustments
1976
  border-bottom: 0;
1977
  }
1978
 
 
 
 
 
 
 
 
1979
  }
1980
 
74
  /* line 59, sass/partials/_main_wrap.scss */
75
 
76
  .cmb2-wrap input:not([type="hidden"]) + input,
77
+ .cmb2-wrap input:not([type="hidden"]) + .button-secondary,
78
  .cmb2-wrap input:not([type="hidden"]) + select {
79
  margin-right: 20px;
80
  }
124
  /* line 102, sass/partials/_main_wrap.scss */
125
 
126
  .cmb2-wrap button,
127
+ .cmb2-wrap .button-secondary {
128
  white-space: nowrap;
129
  }
130
 
152
  width: 100%;
153
  }
154
 
155
+ /* line 124, sass/partials/_main_wrap.scss */
156
 
157
  .cmb2-wrap .wp-color-result,
158
  .cmb2-wrap .wp-picker-input-wrap {
159
  vertical-align: middle;
160
  }
161
 
162
+ /* line 129, sass/partials/_main_wrap.scss */
163
 
164
  .cmb2-wrap .wp-color-result,
165
  .cmb2-wrap .wp-picker-container {
166
  margin: 0 0 0 10px;
167
  }
168
 
169
+ /* line 134, sass/partials/_main_wrap.scss */
170
 
171
  .cmb2-wrap .cmb-row {
172
  margin: 0;
173
  }
174
 
175
+ /* line 137, sass/partials/_main_wrap.scss */
176
 
177
  .cmb2-wrap .cmb-row:after {
178
  content: '';
181
  width: 100%;
182
  }
183
 
184
+ /* line 144, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
 
 
 
 
185
 
186
  .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
187
  padding-top: 0;
188
+ padding-bottom: 1em;
189
  }
190
 
191
+ /* line 152, sass/partials/_main_wrap.scss */
192
 
193
  .cmb2-metabox {
194
  clear: both;
195
  margin: 0;
196
  }
197
 
198
+ /* line 158, sass/partials/_main_wrap.scss */
199
 
200
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
201
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
204
  border: 0;
205
  }
206
 
207
+ /* line 165, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
208
 
209
  .cmb-add-row {
210
  margin: 1.8em 0 0;
211
  }
212
 
213
+ /* line 169, sass/partials/_main_wrap.scss */
214
 
215
  .cmb-nested .cmb-td,
216
  .cmb-repeatable-group .cmb-th,
218
  border: 0;
219
  }
220
 
221
+ /* line 175, sass/partials/_main_wrap.scss */
222
 
223
  .cmb-row:last-of-type,
224
  .cmb2-wrap .cmb-row:last-of-type,
226
  border-bottom: 0;
227
  }
228
 
229
+ /* line 181, sass/partials/_main_wrap.scss */
230
 
231
  .cmb-repeatable-grouping {
232
  border: 1px solid #e9e9e9;
233
  padding: 0 1em;
 
234
  }
235
 
236
+ /* line 185, sass/partials/_main_wrap.scss */
237
 
238
  .cmb-repeatable-grouping.cmb-row {
239
  margin: 0 0 0.8em;
240
  }
241
 
242
+ /* line 193, sass/partials/_main_wrap.scss */
243
 
244
  .cmb-th {
245
  color: #222222;
251
  width: 200px;
252
  }
253
 
254
+ /* line 207, sass/partials/_main_wrap.scss */
255
 
256
  .cmb-td {
257
  line-height: 1.3;
260
  vertical-align: middle;
261
  }
262
 
263
+ /* line 216, sass/partials/_main_wrap.scss */
264
 
265
  .cmb-type-title .cmb-td {
266
  padding: 0;
267
  }
268
 
269
+ /* line 221, sass/partials/_main_wrap.scss */
270
 
271
  .cmb-th label {
272
  display: block;
273
  padding: 5px 0;
274
  }
275
 
276
+ /* line 226, sass/partials/_main_wrap.scss */
277
 
278
  .cmb-th + .cmb-td {
279
  float: right;
280
  }
281
 
282
+ /* line 230, sass/partials/_main_wrap.scss */
283
 
284
  .cmb-td .cmb-td {
285
  padding-bottom: 1em;
286
  }
287
 
288
+ /* line 234, sass/partials/_main_wrap.scss */
289
 
290
  .cmb-remove-row {
291
  text-align: left;
292
  }
293
 
294
+ /* line 238, sass/partials/_main_wrap.scss */
295
 
296
  .empty-row.hidden {
297
  display: none;
298
  }
299
 
300
+ /* line 243, sass/partials/_main_wrap.scss */
301
+
302
+ .cmb-repeat-table {
303
+ background-color: #fafafa;
304
+ border: 1px solid #e1e1e1;
305
+ }
306
+
307
+ /* line 247, sass/partials/_main_wrap.scss */
308
+
309
+ .cmb-repeat-table .cmb-row.cmb-repeat-row {
310
+ position: relative;
311
+ counter-increment: el;
312
+ margin: 0;
313
+ padding: 10px 50px 10px 10px;
314
+ border-bottom: none !important;
315
+ }
316
+
317
+ /* line 255, sass/partials/_main_wrap.scss */
318
+
319
+ .cmb-repeat-table .cmb-row.cmb-repeat-row + .cmb-repeat-row {
320
+ border-top: solid 1px #e9e9e9;
321
+ }
322
+
323
+ /* line 259, sass/partials/_main_wrap.scss */
324
+
325
+ .cmb-repeat-table .cmb-row.cmb-repeat-row:before {
326
+ content: counter(el);
327
+ display: block;
328
+ top: 0;
329
+ right: 0;
330
+ position: absolute;
331
+ width: 35px;
332
+ height: 100%;
333
+ line-height: 35px;
334
+ color: #aaaaaa;
335
+ text-align: center;
336
+ border-left: solid 1px #e9e9e9;
337
+ }
338
+
339
+ /* line 276, sass/partials/_main_wrap.scss */
340
+
341
+ .cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td {
342
+ margin: 0;
343
+ padding: 0;
344
+ }
345
+
346
+ /* line 283, sass/partials/_main_wrap.scss */
347
+
348
+ .cmb-repeat-table + .cmb-add-row {
349
+ margin: 0;
350
+ }
351
+
352
+ /* line 286, sass/partials/_main_wrap.scss */
353
+
354
+ .cmb-repeat-table + .cmb-add-row:before {
355
+ content: '';
356
+ width: 1px;
357
+ height: 1.6em;
358
+ display: block;
359
+ margin-right: 17px;
360
+ background-color: gainsboro;
361
+ }
362
+
363
+ /* line 296, sass/partials/_main_wrap.scss */
364
+
365
+ .cmb-repeat-table .cmb-remove-row {
366
+ top: 7px;
367
+ left: 7px;
368
+ position: absolute;
369
+ width: auto;
370
+ margin-right: 0;
371
+ padding: 0 !important;
372
+ display: none;
373
+ }
374
+
375
+ /* line 307, sass/partials/_main_wrap.scss */
376
+
377
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button {
378
+ font-size: 20px;
379
+ text-indent: -1000px;
380
+ overflow: hidden;
381
+ position: relative;
382
+ height: auto;
383
+ line-height: 1;
384
+ padding: 0 10px 0;
385
+ }
386
+
387
+ /* line 318, sass/partials/_main_wrap.scss */
388
+
389
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button:before {
390
+ content: "";
391
+ font-family: 'Dashicons';
392
+ speak: none;
393
+ font-weight: normal;
394
+ font-variant: normal;
395
+ text-transform: none;
396
+ line-height: 1;
397
+ -webkit-font-smoothing: antialiased;
398
+ margin: 0;
399
+ text-indent: 0;
400
+ position: absolute;
401
+ top: 0;
402
+ right: 0;
403
+ width: 100%;
404
+ height: 100%;
405
+ text-align: center;
406
+ }
407
+
408
+ /* line 324, sass/partials/_main_wrap.scss */
409
+
410
+ .cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row {
411
+ display: block;
412
+ }
413
+
414
+ /* line 332, sass/partials/_main_wrap.scss */
415
 
416
  .cmb-repeatable-group .cmb-th {
417
  padding: 5px;
418
  }
419
 
420
+ /* line 336, sass/partials/_main_wrap.scss */
421
 
422
  .cmb-repeatable-group .cmb-group-title {
423
  background-color: #e9e9e9;
428
  line-height: 1.4;
429
  }
430
 
431
+ /* line 344, sass/partials/_main_wrap.scss */
432
 
433
  .cmb-repeatable-group .cmb-group-title h4 {
434
  border: 0;
438
  padding: 0.5em 0.75em;
439
  }
440
 
441
+ /* line 352, sass/partials/_main_wrap.scss */
442
 
443
  .cmb-repeatable-group .cmb-group-title .cmb-th {
444
  display: block;
445
  width: 100%;
446
  }
447
 
448
+ /* line 358, sass/partials/_main_wrap.scss */
449
 
450
  .cmb-repeatable-group .cmb-group-description .cmb-th {
451
  font-size: 1.2em;
460
 
461
  .cmb-repeatable-group .cmb-group-description .cmb-th label {
462
  display: block;
463
+ margin-top: 0;
464
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
 
 
465
  }
466
 
467
+ /* line 362, sass/partials/_main_wrap.scss */
468
 
469
  .cmb-repeatable-group .cmb-shift-rows {
470
  font-size: 1em;
472
  text-decoration: none;
473
  }
474
 
475
+ /* line 367, sass/partials/_main_wrap.scss */
476
 
477
  .cmb-repeatable-group .cmb-shift-rows .dashicons {
478
  font-size: 1.5em;
481
  width: 1em;
482
  }
483
 
484
+ /* line 373, sass/partials/_main_wrap.scss */
485
 
486
  .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
487
  line-height: 1.3em;
488
  }
489
 
490
+ /* line 380, sass/partials/_main_wrap.scss */
491
 
492
  .cmb-repeatable-group .cmb2-upload-button {
493
  float: left;
494
  }
495
 
496
+ /* line 386, sass/partials/_main_wrap.scss */
497
 
498
  p.cmb2-metabox-description {
499
  color: #aaaaaa;
502
  padding-top: .5em;
503
  }
504
 
505
+ /* line 393, sass/partials/_main_wrap.scss */
506
 
507
  span.cmb2-metabox-description {
508
  color: #aaaaaa;
509
  font-style: italic;
510
  }
511
 
512
+ /* line 398, sass/partials/_main_wrap.scss */
513
 
514
  .cmb2-metabox-title {
515
  margin: 0 0 5px 0;
517
  font-size: 14px;
518
  }
519
 
520
+ /* line 404, sass/partials/_main_wrap.scss */
521
 
522
  .cmb-inline ul {
523
  padding: 4px 0 0 0;
524
  }
525
 
526
+ /* line 408, sass/partials/_main_wrap.scss */
527
 
528
  .cmb-inline li {
529
  display: inline-block;
530
  padding-left: 18px;
531
  }
532
 
533
+ /* line 413, sass/partials/_main_wrap.scss */
534
 
535
  .cmb-type-textarea-code pre {
536
  margin: 0;
537
  }
538
 
539
+ /* line 419, sass/partials/_main_wrap.scss */
540
 
541
  .cmb2-media-status .img-status {
542
  clear: none;
546
  width: auto;
547
  }
548
 
549
+ /* line 426, sass/partials/_main_wrap.scss */
550
 
551
  .cmb2-media-status .img-status img {
552
  max-width: 350px;
553
  height: auto;
554
  }
555
 
556
+ /* line 432, sass/partials/_main_wrap.scss */
557
 
558
  .cmb2-media-status .img-status img,
559
  .cmb2-media-status .embed-status {
565
  padding: 5px;
566
  }
567
 
568
+ /* line 442, sass/partials/_main_wrap.scss */
569
 
570
  .cmb2-media-status .embed-status {
571
  float: right;
572
  max-width: 800px;
573
  }
574
 
575
+ /* line 447, sass/partials/_main_wrap.scss */
576
 
577
  .cmb2-media-status .img-status,
578
  .cmb2-media-status .embed-status {
579
  position: relative;
580
  }
581
 
582
+ /* line 450, sass/partials/_main_wrap.scss */
583
 
584
  .cmb2-media-status .img-status .cmb2-remove-file-button,
585
  .cmb2-media-status .embed-status .cmb2-remove-file-button {
592
  width: 16px;
593
  }
594
 
595
+ /* line 464, sass/partials/_main_wrap.scss */
596
 
597
  .cmb2-media-status .img-status .cmb2-remove-file-button {
598
  top: 10px;
599
  }
600
 
601
+ /* line 469, sass/partials/_main_wrap.scss */
602
 
603
  .cmb2-media-status .img-status img,
604
  .cmb2-media-status .file-status > span {
605
  cursor: pointer;
606
  }
607
 
608
+ /* line 475, sass/partials/_main_wrap.scss */
609
 
610
  .cmb-type-file-list .cmb2-media-status .img-status {
611
  clear: none;
616
  margin-top: 0;
617
  }
618
 
619
+ /* line 484, sass/partials/_main_wrap.scss */
620
 
621
  .cmb-attach-list li {
622
  clear: both;
626
  margin-bottom: 10px;
627
  }
628
 
629
+ /* line 491, sass/partials/_main_wrap.scss */
630
 
631
  .cmb-attach-list li img {
632
  cursor: move;
634
  margin-left: 10px;
635
  }
636
 
637
+ /* line 498, sass/partials/_main_wrap.scss */
638
 
639
  .cmb2-remove-wrapper {
640
  margin: 0;
641
  }
642
 
643
+ /* line 502, sass/partials/_main_wrap.scss */
644
 
645
  .child-cmb2 .cmb-th {
646
  text-align: right;
647
  }
648
 
649
+ /* line 506, sass/partials/_main_wrap.scss */
650
+
651
+ .cmb2-indented-hierarchy {
652
+ padding-right: 1.5em;
653
+ }
654
+
655
  /*--------------------------------------------------------------
656
  Post Metaboxes
657
  --------------------------------------------------------------*/
742
 
743
  /* line 63, sass/partials/_post_metaboxes.scss */
744
 
 
 
 
 
 
 
 
745
  .cmb2-postbox .cmb-th + .cmb-td,
746
  .cmb-type-group .cmb-th + .cmb-td {
747
  width: 80%;
748
  float: left;
749
  }
750
 
751
+ /* line 68, sass/partials/_post_metaboxes.scss */
752
 
753
  .cmb2-postbox .cmb-row:not(:last-of-type),
754
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
757
  border-bottom: 1px solid #e9e9e9;
758
  }
759
 
760
+ /* line 77, sass/partials/_post_metaboxes.scss */
761
 
762
  .cmb2-postbox .cmb-repeat-group-field,
763
  .cmb2-postbox .cmb-remove-field-row,
766
  padding-top: 1.8em;
767
  }
768
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
769
  /*--------------------------------------------------------------
770
  Context Metaboxes
771
  --------------------------------------------------------------*/
883
 
884
  /* one column on the post write/edit screen */
885
 
886
+ /*--------------------------------------------------------------
887
+ Options page
888
+ --------------------------------------------------------------*/
889
+
890
+ /* line 4, sass/partials/_options-page.scss */
891
+
892
+ .cmb2-options-page {
893
+ max-width: 1200px;
894
+ }
895
+
896
+ /* line 7, sass/partials/_options-page.scss */
897
+
898
+ .cmb2-options-page.wrap > h2 {
899
+ margin-bottom: 1em;
900
+ }
901
+
902
+ /* line 11, sass/partials/_options-page.scss */
903
+
904
+ .cmb2-options-page .cmb2-metabox > .cmb-row {
905
+ padding: 1em;
906
+ margin-top: -1px;
907
+ background: #ffffff;
908
+ border: 1px solid #e9e9e9;
909
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
910
+ }
911
+
912
+ /* line 18, sass/partials/_options-page.scss */
913
+
914
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th {
915
+ padding: 0;
916
+ font-weight: initial;
917
+ }
918
+
919
+ /* line 23, sass/partials/_options-page.scss */
920
+
921
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
922
+ float: none;
923
+ padding: 0 1em 0 0;
924
+ margin-right: 200px;
925
+ }
926
+
927
+ /* line 36, sass/partials/_options-page.scss */
928
+
929
+ .cmb2-options-page .cmb2-wrap .cmb-type-title {
930
+ margin-top: 1em;
931
+ padding: 0.6em 1em;
932
+ background-color: #fafafa;
933
+ }
934
+
935
+ /* line 41, sass/partials/_options-page.scss */
936
+
937
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title {
938
+ font-size: 12px;
939
+ margin-top: 0;
940
+ margin-bottom: 0;
941
+ text-transform: uppercase;
942
+ }
943
+
944
+ /* line 48, sass/partials/_options-page.scss */
945
+
946
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description {
947
+ padding-top: 0.25em;
948
+ }
949
+
950
+ /* line 54, sass/partials/_options-page.scss */
951
+
952
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th {
953
+ padding: 0 0 0.8em 0;
954
+ }
955
+
956
+ /* line 58, sass/partials/_options-page.scss */
957
+
958
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-name {
959
+ font-size: 16px;
960
+ margin-top: 0;
961
+ margin-bottom: 0;
962
+ }
963
+
964
+ /* line 64, sass/partials/_options-page.scss */
965
+
966
+ .cmb2-options-page .cmb-repeatable-group .cmb-th > .cmb2-metabox-description {
967
+ font-weight: 400;
968
+ padding-bottom: 0 !important;
969
+ }
970
+
971
  /*--------------------------------------------------------------
972
  Misc.
973
  --------------------------------------------------------------*/
988
 
989
  /* line 18, sass/partials/_misc.scss */
990
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
991
  .cmb2-postbox .cmb-spinner,
992
  .cmb2-no-box-wrap .cmb-spinner {
993
  float: right;
994
  display: none;
995
  }
996
 
997
+ /* line 24, sass/partials/_misc.scss */
998
 
999
  .cmb-spinner {
1000
  display: none;
1001
  }
1002
 
1003
+ /* line 26, sass/partials/_misc.scss */
1004
 
1005
  .cmb-spinner.is-active {
1006
  display: block;
1083
  /* line 55, sass/partials/_sidebar_placements.scss */
1084
 
1085
  .inner-sidebar .cmb-th,
1086
+ .inner-sidebar .cmb-td:not(.cmb-remove-row),
1087
  .inner-sidebar .cmb-th + .cmb-td,
1088
  #side-sortables .cmb-th,
1089
+ #side-sortables .cmb-td:not(.cmb-remove-row),
1090
  #side-sortables .cmb-th + .cmb-td {
1091
  width: 100%;
1092
  display: block;
1102
 
1103
  /* line 67, sass/partials/_sidebar_placements.scss */
1104
 
 
 
 
 
 
 
 
1105
  .inner-sidebar .cmb-th,
1106
  #side-sortables .cmb-th {
1107
  display: block;
1118
  .inner-sidebar .cmb-th label,
1119
  #side-sortables .cmb-th label {
1120
  display: block;
1121
+ margin-top: 0;
1122
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
 
 
 
1123
  }
1124
 
1125
  /* line 14, sass/partials/_mixins.scss */
1130
  line-height: 1.4em;
1131
  }
1132
 
1133
+ /* line 74, sass/partials/_sidebar_placements.scss */
1134
 
1135
  .inner-sidebar .cmb-group-description .cmb-th,
1136
  #side-sortables .cmb-group-description .cmb-th {
1137
  padding-top: 0;
1138
  }
1139
 
1140
+ /* line 77, sass/partials/_sidebar_placements.scss */
1141
 
1142
  .inner-sidebar .cmb-group-description .cmb2-metabox-description,
1143
  #side-sortables .cmb-group-description .cmb2-metabox-description {
1144
  padding: 0;
1145
  }
1146
 
1147
+ /* line 84, sass/partials/_sidebar_placements.scss */
1148
 
1149
  .inner-sidebar .cmb-group-title .cmb-th,
1150
  #side-sortables .cmb-group-title .cmb-th {
1151
  padding: 0;
1152
  }
1153
 
1154
+ /* line 90, sass/partials/_sidebar_placements.scss */
1155
 
1156
  .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
1157
  #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
1158
  margin-top: 1em;
1159
  }
1160
 
1161
+ /* line 99, sass/partials/_sidebar_placements.scss */
1162
 
1163
  .inner-sidebar .cmb2-media-status .img-status img,
1164
  .inner-sidebar .cmb2-media-status .embed-status img,
1168
  height: auto;
1169
  }
1170
 
1171
+ /* line 107, sass/partials/_sidebar_placements.scss */
1172
 
1173
  .inner-sidebar .cmb2-list label,
1174
  #side-sortables .cmb2-list label {
1176
  font-weight: normal;
1177
  }
1178
 
1179
+ /* line 112, sass/partials/_sidebar_placements.scss */
1180
 
1181
  .inner-sidebar .cmb2-metabox-description,
1182
  #side-sortables .cmb2-metabox-description {
1184
  padding: 7px 0 0;
1185
  }
1186
 
1187
+ /* line 119, sass/partials/_sidebar_placements.scss */
1188
 
1189
  .inner-sidebar .cmb-type-checkbox .cmb-td label,
1190
  .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
1194
  display: inline;
1195
  }
1196
 
1197
+ /* line 126, sass/partials/_sidebar_placements.scss */
1198
 
1199
  .inner-sidebar .cmb-row .cmb2-metabox-description,
1200
  #side-sortables .cmb-row .cmb2-metabox-description {
1201
  padding-bottom: 1.8em;
1202
  }
1203
 
1204
+ /* line 130, sass/partials/_sidebar_placements.scss */
1205
 
1206
  .inner-sidebar .cmb2-metabox-title,
1207
  #side-sortables .cmb2-metabox-title {
1209
  font-style: italic;
1210
  }
1211
 
1212
+ /* line 135, sass/partials/_sidebar_placements.scss */
1213
 
1214
  .inner-sidebar .cmb-remove-row,
1215
  #side-sortables .cmb-remove-row {
1218
  padding-bottom: 0;
1219
  }
1220
 
1221
+ /* line 141, sass/partials/_sidebar_placements.scss */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1222
 
1223
  .inner-sidebar .cmb2-upload-button,
1224
  #side-sortables .cmb2-upload-button {
1228
 
1229
  /* line 2, sass/partials/_collapsible_ui.scss */
1230
 
 
 
 
 
 
 
1231
  .cmb2-metabox .cmbhandle {
1232
  color: #aaa;
1233
  float: left;
1238
  position: relative;
1239
  }
1240
 
1241
+ /* line 10, sass/partials/_collapsible_ui.scss */
1242
 
1243
  .cmb2-metabox .cmbhandle:before {
1244
  content: '\f142';
1254
  text-decoration: none !important;
1255
  }
1256
 
1257
+ /* line 27, sass/partials/_collapsible_ui.scss */
1258
 
1259
  .cmb2-metabox .postbox.closed .cmbhandle:before {
1260
  content: '\f140';
1261
  }
1262
 
1263
+ /* line 33, sass/partials/_collapsible_ui.scss */
1264
 
1265
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
1266
  -webkit-appearance: none !important;
1274
  opacity: .5;
1275
  }
1276
 
1277
+ /* line 43, sass/partials/_collapsible_ui.scss */
1278
 
1279
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
1280
  cursor: pointer;
1282
  opacity: 1;
1283
  }
1284
 
1285
+ /* line 47, sass/partials/_collapsible_ui.scss */
1286
 
1287
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
1288
  color: #f00;
1982
 
1983
  @media (max-width: 450px) {
1984
 
1985
+ /* line 193, sass/partials/_main_wrap.scss */
1986
 
1987
  .cmb-th {
1988
  font-size: 1.2em;
1997
 
1998
  .cmb-th label {
1999
  display: block;
2000
+ margin-top: 0;
2001
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
 
 
2002
  }
2003
 
2004
+ /* line 511, sass/partials/_main_wrap.scss */
2005
 
2006
  .cmb-th,
2007
  .cmb-td,
2011
  width: 100%;
2012
  }
2013
 
2014
+ /* line 68, sass/partials/_post_metaboxes.scss */
2015
 
2016
  .cmb2-postbox .cmb-row:not(:last-of-type),
2017
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
2020
  border-bottom: 0;
2021
  }
2022
 
2023
+ /* line 23, sass/partials/_options-page.scss */
2024
+
2025
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
2026
+ padding: 0;
2027
+ margin-right: 0;
2028
+ }
2029
+
2030
  }
2031
 
vendor/CMB2/css/cmb2-rtl.min.css CHANGED
@@ -1 +1 @@
1
- .cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-right:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 0 0 5px;padding:0}.cmb2-wrap .button,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 0 0 10px}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat-row{padding:1.8em 0 0}.cmb2-wrap .cmb-row.cmb-repeat-row:first-of-type{padding:0}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1.8em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb2-metabox>.cmb-row .cmb-repeat-table .cmb-row>.cmb-td{padding-left:20px;box-sizing:border-box;float:right}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em;max-width:1000px}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:right;font-weight:600;line-height:1.3;padding:20px 0 20px 10px;vertical-align:top;width:200px}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:right}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:left}.empty-row.hidden{display:none}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 2.2em 8px 12px;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:right;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;padding-bottom:5px}.cmb-repeatable-group .cmb-group-description .cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-left:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:left}p.cmb2-metabox-description{color:#aaa;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#aaa;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-left:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-left:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#fff;border:1px solid #e9e9e9;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0;padding:5px}.cmb2-media-status .embed-status{float:right;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;right:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-left:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{cursor:move;float:right;margin-left:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:right}#poststuff .cmb-group-title{margin-right:-1em;margin-left:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-right:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{left:-1em;position:relative}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 0 0 2%}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-repeat-row .cmb-td,.cmb2-postbox .cmb-repeat-row .cmb-td{padding-bottom:1.8em}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:left}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody{display:table;width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text{width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row){display:table-row}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td{display:table-cell;float:none;width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td{padding-top:1.8em}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row{padding-left:0}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 0 0 2%;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-options-page .cmb2-metabox-title{font-size:1.3em;margin:1em 0}.cmb2-options-page .cmb2-metabox-title+p.cmb2-metabox-description{margin-top:-1.6em;margin-bottom:.8em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:right;display:none}.cmb-spinner{display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-right:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td,#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td,.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-td .cmb-td,.inner-sidebar .cmb-td .cmb-td{padding-bottom:1em}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:right;width:100%;padding-right:0;padding-left:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;padding-bottom:5px}#side-sortables .cmb-th label:after,.inner-sidebar .cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td,.inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td{width:auto;clear:none;float:right;padding-top:0}#side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row,.inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row{float:left;margin:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmb-type-group{max-width:1000px}.cmb2-metabox .cmbhandle{color:#aaa;float:left;width:27px;height:30px;cursor:pointer;left:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';left:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;right:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-right:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:right;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:right;clear:right;padding:0 5px 0 0}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 40% 10px 10px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:right}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .4em .4em .6em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:0}}@media (max-width:450px){.cmb-th{font-size:1.2em;padding-bottom:1em;text-align:right}.cmb-th label{display:block;margin-top:0;padding-bottom:5px}.cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}}
1
+ .cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button-secondary,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-right:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 0 0 5px;padding:0}.cmb2-wrap .button-secondary,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 0 0 10px}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:right;font-weight:600;line-height:1.3;padding:20px 0 20px 10px;vertical-align:top;width:200px}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:right}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:left}.empty-row.hidden{display:none}.cmb-repeat-table{background-color:#fafafa;border:1px solid #e1e1e1}.cmb-repeat-table .cmb-row.cmb-repeat-row{position:relative;counter-increment:el;margin:0;padding:10px 50px 10px 10px;border-bottom:none!important}.cmb-repeat-table .cmb-row.cmb-repeat-row+.cmb-repeat-row{border-top:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row:before{content:counter(el);display:block;top:0;right:0;position:absolute;width:35px;height:100%;line-height:35px;color:#aaa;text-align:center;border-left:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td{margin:0;padding:0}.cmb-repeat-table+.cmb-add-row{margin:0}.cmb-repeat-table+.cmb-add-row:before{content:'';width:1px;height:1.6em;display:block;margin-right:17px;background-color:#dcdcdc}.cmb-repeat-table .cmb-remove-row{top:7px;left:7px;position:absolute;width:auto;margin-right:0;padding:0!important;display:none}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button{font-size:20px;text-indent:-1000px;overflow:hidden;position:relative;height:auto;line-height:1;padding:0 10px}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button:before{content:"";font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;right:0;width:100%;height:100%;text-align:center}.cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row{display:block}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 2.2em 8px 12px;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:right;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-left:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:left}p.cmb2-metabox-description{color:#aaa;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#aaa;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-left:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-left:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#fff;border:1px solid #e9e9e9;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0;padding:5px}.cmb2-media-status .embed-status{float:right;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;right:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-left:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{cursor:move;float:right;margin-left:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:right}.cmb2-indented-hierarchy{padding-right:1.5em}#poststuff .cmb-group-title{margin-right:-1em;margin-left:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-right:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{left:-1em;position:relative}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 0 0 2%}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:left}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 0 0 2%;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}.cmb2-options-page{max-width:1200px}.cmb2-options-page.wrap>h2{margin-bottom:1em}.cmb2-options-page .cmb2-metabox>.cmb-row{padding:1em;margin-top:-1px;background:#fff;border:1px solid #e9e9e9;box-shadow:0 1px 1px rgba(0,0,0,.05)}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th{padding:0;font-weight:initial}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{float:none;padding:0 1em 0 0;margin-right:200px}.cmb2-options-page .cmb2-wrap .cmb-type-title{margin-top:1em;padding:.6em 1em;background-color:#fafafa}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title{font-size:12px;margin-top:0;margin-bottom:0;text-transform:uppercase}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description{padding-top:.25em}.cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th{padding:0 0 .8em}.cmb2-options-page .cmb-repeatable-group .cmb-group-name{font-size:16px;margin-top:0;margin-bottom:0}.cmb2-options-page .cmb-repeatable-group .cmb-th>.cmb2-metabox-description{font-weight:400;padding-bottom:0!important}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:right;display:none}.cmb-spinner{display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-right:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td:not(.cmb-remove-row),#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td:not(.cmb-remove-row),.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:right;width:100%;padding-right:0;padding-left:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;margin-bottom:.5em;font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmbhandle{color:#aaa;float:left;width:27px;height:30px;cursor:pointer;left:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';left:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;right:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-right:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:right;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:right;clear:right;padding:0 5px 0 0}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 40% 10px 10px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:right}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .4em .4em .6em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-left:0}}@media (max-width:450px){.cmb-th{font-size:1.2em;padding-bottom:1em;text-align:right}.cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{padding:0;margin-right:0}}
vendor/CMB2/css/cmb2.css CHANGED
@@ -74,7 +74,7 @@ Main Wrap
74
  /* line 59, sass/partials/_main_wrap.scss */
75
 
76
  .cmb2-wrap input:not([type="hidden"]) + input,
77
- .cmb2-wrap input:not([type="hidden"]) + .button,
78
  .cmb2-wrap input:not([type="hidden"]) + select {
79
  margin-left: 20px;
80
  }
@@ -124,7 +124,7 @@ Main Wrap
124
  /* line 102, sass/partials/_main_wrap.scss */
125
 
126
  .cmb2-wrap button,
127
- .cmb2-wrap .button {
128
  white-space: nowrap;
129
  }
130
 
@@ -152,27 +152,27 @@ Main Wrap
152
  width: 100%;
153
  }
154
 
155
- /* line 126, sass/partials/_main_wrap.scss */
156
 
157
  .cmb2-wrap .wp-color-result,
158
  .cmb2-wrap .wp-picker-input-wrap {
159
  vertical-align: middle;
160
  }
161
 
162
- /* line 131, sass/partials/_main_wrap.scss */
163
 
164
  .cmb2-wrap .wp-color-result,
165
  .cmb2-wrap .wp-picker-container {
166
  margin: 0 10px 0 0;
167
  }
168
 
169
- /* line 136, sass/partials/_main_wrap.scss */
170
 
171
  .cmb2-wrap .cmb-row {
172
  margin: 0;
173
  }
174
 
175
- /* line 139, sass/partials/_main_wrap.scss */
176
 
177
  .cmb2-wrap .cmb-row:after {
178
  content: '';
@@ -181,33 +181,21 @@ Main Wrap
181
  width: 100%;
182
  }
183
 
184
- /* line 146, sass/partials/_main_wrap.scss */
185
-
186
- .cmb2-wrap .cmb-row.cmb-repeat-row {
187
- padding: 1.8em 0 0;
188
- }
189
-
190
- /* line 149, sass/partials/_main_wrap.scss */
191
-
192
- .cmb2-wrap .cmb-row.cmb-repeat-row:first-of-type {
193
- padding: 0;
194
- }
195
-
196
- /* line 154, sass/partials/_main_wrap.scss */
197
 
198
  .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
199
  padding-top: 0;
200
- padding-bottom: 1.8em;
201
  }
202
 
203
- /* line 161, sass/partials/_main_wrap.scss */
204
 
205
  .cmb2-metabox {
206
  clear: both;
207
  margin: 0;
208
  }
209
 
210
- /* line 167, sass/partials/_main_wrap.scss */
211
 
212
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
213
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
@@ -216,21 +204,13 @@ Main Wrap
216
  border: 0;
217
  }
218
 
219
- /* line 174, sass/partials/_main_wrap.scss */
220
-
221
- .cmb2-metabox > .cmb-row .cmb-repeat-table .cmb-row > .cmb-td {
222
- padding-right: 20px;
223
- box-sizing: border-box;
224
- float: left;
225
- }
226
-
227
- /* line 182, sass/partials/_main_wrap.scss */
228
 
229
  .cmb-add-row {
230
  margin: 1.8em 0 0;
231
  }
232
 
233
- /* line 186, sass/partials/_main_wrap.scss */
234
 
235
  .cmb-nested .cmb-td,
236
  .cmb-repeatable-group .cmb-th,
@@ -238,7 +218,7 @@ Main Wrap
238
  border: 0;
239
  }
240
 
241
- /* line 192, sass/partials/_main_wrap.scss */
242
 
243
  .cmb-row:last-of-type,
244
  .cmb2-wrap .cmb-row:last-of-type,
@@ -246,21 +226,20 @@ Main Wrap
246
  border-bottom: 0;
247
  }
248
 
249
- /* line 198, sass/partials/_main_wrap.scss */
250
 
251
  .cmb-repeatable-grouping {
252
  border: 1px solid #e9e9e9;
253
  padding: 0 1em;
254
- max-width: 1000px;
255
  }
256
 
257
- /* line 202, sass/partials/_main_wrap.scss */
258
 
259
  .cmb-repeatable-grouping.cmb-row {
260
  margin: 0 0 0.8em;
261
  }
262
 
263
- /* line 209, sass/partials/_main_wrap.scss */
264
 
265
  .cmb-th {
266
  color: #222222;
@@ -272,7 +251,7 @@ Main Wrap
272
  width: 200px;
273
  }
274
 
275
- /* line 223, sass/partials/_main_wrap.scss */
276
 
277
  .cmb-td {
278
  line-height: 1.3;
@@ -281,50 +260,164 @@ Main Wrap
281
  vertical-align: middle;
282
  }
283
 
284
- /* line 232, sass/partials/_main_wrap.scss */
285
 
286
  .cmb-type-title .cmb-td {
287
  padding: 0;
288
  }
289
 
290
- /* line 237, sass/partials/_main_wrap.scss */
291
 
292
  .cmb-th label {
293
  display: block;
294
  padding: 5px 0;
295
  }
296
 
297
- /* line 242, sass/partials/_main_wrap.scss */
298
 
299
  .cmb-th + .cmb-td {
300
  float: left;
301
  }
302
 
303
- /* line 246, sass/partials/_main_wrap.scss */
304
 
305
  .cmb-td .cmb-td {
306
  padding-bottom: 1em;
307
  }
308
 
309
- /* line 250, sass/partials/_main_wrap.scss */
310
 
311
  .cmb-remove-row {
312
  text-align: right;
313
  }
314
 
315
- /* line 254, sass/partials/_main_wrap.scss */
316
 
317
  .empty-row.hidden {
318
  display: none;
319
  }
320
 
321
- /* line 260, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
322
 
323
  .cmb-repeatable-group .cmb-th {
324
  padding: 5px;
325
  }
326
 
327
- /* line 264, sass/partials/_main_wrap.scss */
328
 
329
  .cmb-repeatable-group .cmb-group-title {
330
  background-color: #e9e9e9;
@@ -335,7 +428,7 @@ Main Wrap
335
  line-height: 1.4;
336
  }
337
 
338
- /* line 272, sass/partials/_main_wrap.scss */
339
 
340
  .cmb-repeatable-group .cmb-group-title h4 {
341
  border: 0;
@@ -345,14 +438,14 @@ Main Wrap
345
  padding: 0.5em 0.75em;
346
  }
347
 
348
- /* line 280, sass/partials/_main_wrap.scss */
349
 
350
  .cmb-repeatable-group .cmb-group-title .cmb-th {
351
  display: block;
352
  width: 100%;
353
  }
354
 
355
- /* line 286, sass/partials/_main_wrap.scss */
356
 
357
  .cmb-repeatable-group .cmb-group-description .cmb-th {
358
  font-size: 1.2em;
@@ -367,21 +460,11 @@ Main Wrap
367
 
368
  .cmb-repeatable-group .cmb-group-description .cmb-th label {
369
  display: block;
370
- margin-top: 0em;
371
- padding-bottom: 5px;
372
- }
373
-
374
- /* line 32, sass/partials/_mixins.scss */
375
-
376
- .cmb-repeatable-group .cmb-group-description .cmb-th label:after {
377
- border-bottom: 1px solid #e9e9e9;
378
- content: '';
379
- clear: both;
380
- display: block;
381
- padding-top: .4em;
382
  }
383
 
384
- /* line 290, sass/partials/_main_wrap.scss */
385
 
386
  .cmb-repeatable-group .cmb-shift-rows {
387
  font-size: 1em;
@@ -389,7 +472,7 @@ Main Wrap
389
  text-decoration: none;
390
  }
391
 
392
- /* line 295, sass/partials/_main_wrap.scss */
393
 
394
  .cmb-repeatable-group .cmb-shift-rows .dashicons {
395
  font-size: 1.5em;
@@ -398,19 +481,19 @@ Main Wrap
398
  width: 1em;
399
  }
400
 
401
- /* line 301, sass/partials/_main_wrap.scss */
402
 
403
  .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
404
  line-height: 1.3em;
405
  }
406
 
407
- /* line 308, sass/partials/_main_wrap.scss */
408
 
409
  .cmb-repeatable-group .cmb2-upload-button {
410
  float: right;
411
  }
412
 
413
- /* line 314, sass/partials/_main_wrap.scss */
414
 
415
  p.cmb2-metabox-description {
416
  color: #aaaaaa;
@@ -419,14 +502,14 @@ p.cmb2-metabox-description {
419
  padding-top: .5em;
420
  }
421
 
422
- /* line 321, sass/partials/_main_wrap.scss */
423
 
424
  span.cmb2-metabox-description {
425
  color: #aaaaaa;
426
  font-style: italic;
427
  }
428
 
429
- /* line 326, sass/partials/_main_wrap.scss */
430
 
431
  .cmb2-metabox-title {
432
  margin: 0 0 5px 0;
@@ -434,26 +517,26 @@ span.cmb2-metabox-description {
434
  font-size: 14px;
435
  }
436
 
437
- /* line 332, sass/partials/_main_wrap.scss */
438
 
439
  .cmb-inline ul {
440
  padding: 4px 0 0 0;
441
  }
442
 
443
- /* line 336, sass/partials/_main_wrap.scss */
444
 
445
  .cmb-inline li {
446
  display: inline-block;
447
  padding-right: 18px;
448
  }
449
 
450
- /* line 341, sass/partials/_main_wrap.scss */
451
 
452
  .cmb-type-textarea-code pre {
453
  margin: 0;
454
  }
455
 
456
- /* line 347, sass/partials/_main_wrap.scss */
457
 
458
  .cmb2-media-status .img-status {
459
  clear: none;
@@ -463,14 +546,14 @@ span.cmb2-metabox-description {
463
  width: auto;
464
  }
465
 
466
- /* line 354, sass/partials/_main_wrap.scss */
467
 
468
  .cmb2-media-status .img-status img {
469
  max-width: 350px;
470
  height: auto;
471
  }
472
 
473
- /* line 360, sass/partials/_main_wrap.scss */
474
 
475
  .cmb2-media-status .img-status img,
476
  .cmb2-media-status .embed-status {
@@ -482,21 +565,21 @@ span.cmb2-metabox-description {
482
  padding: 5px;
483
  }
484
 
485
- /* line 370, sass/partials/_main_wrap.scss */
486
 
487
  .cmb2-media-status .embed-status {
488
  float: left;
489
  max-width: 800px;
490
  }
491
 
492
- /* line 375, sass/partials/_main_wrap.scss */
493
 
494
  .cmb2-media-status .img-status,
495
  .cmb2-media-status .embed-status {
496
  position: relative;
497
  }
498
 
499
- /* line 378, sass/partials/_main_wrap.scss */
500
 
501
  .cmb2-media-status .img-status .cmb2-remove-file-button,
502
  .cmb2-media-status .embed-status .cmb2-remove-file-button {
@@ -509,20 +592,20 @@ span.cmb2-metabox-description {
509
  width: 16px;
510
  }
511
 
512
- /* line 392, sass/partials/_main_wrap.scss */
513
 
514
  .cmb2-media-status .img-status .cmb2-remove-file-button {
515
  top: 10px;
516
  }
517
 
518
- /* line 397, sass/partials/_main_wrap.scss */
519
 
520
  .cmb2-media-status .img-status img,
521
  .cmb2-media-status .file-status > span {
522
  cursor: pointer;
523
  }
524
 
525
- /* line 403, sass/partials/_main_wrap.scss */
526
 
527
  .cmb-type-file-list .cmb2-media-status .img-status {
528
  clear: none;
@@ -533,7 +616,7 @@ span.cmb2-metabox-description {
533
  margin-top: 0;
534
  }
535
 
536
- /* line 412, sass/partials/_main_wrap.scss */
537
 
538
  .cmb-attach-list li {
539
  clear: both;
@@ -543,7 +626,7 @@ span.cmb2-metabox-description {
543
  margin-bottom: 10px;
544
  }
545
 
546
- /* line 419, sass/partials/_main_wrap.scss */
547
 
548
  .cmb-attach-list li img {
549
  cursor: move;
@@ -551,18 +634,24 @@ span.cmb2-metabox-description {
551
  margin-right: 10px;
552
  }
553
 
554
- /* line 426, sass/partials/_main_wrap.scss */
555
 
556
  .cmb2-remove-wrapper {
557
  margin: 0;
558
  }
559
 
560
- /* line 430, sass/partials/_main_wrap.scss */
561
 
562
  .child-cmb2 .cmb-th {
563
  text-align: left;
564
  }
565
 
 
 
 
 
 
 
566
  /*--------------------------------------------------------------
567
  Post Metaboxes
568
  --------------------------------------------------------------*/
@@ -653,20 +742,13 @@ Post Metaboxes
653
 
654
  /* line 63, sass/partials/_post_metaboxes.scss */
655
 
656
- .cmb2-postbox .cmb-repeat-row .cmb-td,
657
- .cmb-type-group .cmb-repeat-row .cmb-td {
658
- padding-bottom: 1.8em;
659
- }
660
-
661
- /* line 67, sass/partials/_post_metaboxes.scss */
662
-
663
  .cmb2-postbox .cmb-th + .cmb-td,
664
  .cmb-type-group .cmb-th + .cmb-td {
665
  width: 80%;
666
  float: right;
667
  }
668
 
669
- /* line 72, sass/partials/_post_metaboxes.scss */
670
 
671
  .cmb2-postbox .cmb-row:not(:last-of-type),
672
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
@@ -675,7 +757,7 @@ Post Metaboxes
675
  border-bottom: 1px solid #e9e9e9;
676
  }
677
 
678
- /* line 81, sass/partials/_post_metaboxes.scss */
679
 
680
  .cmb2-postbox .cmb-repeat-group-field,
681
  .cmb2-postbox .cmb-remove-field-row,
@@ -684,63 +766,6 @@ Post Metaboxes
684
  padding-top: 1.8em;
685
  }
686
 
687
- /* line 88, sass/partials/_post_metaboxes.scss */
688
-
689
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,
690
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,
691
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,
692
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody {
693
- display: table;
694
- width: 100%;
695
- }
696
-
697
- /* line 92, sass/partials/_post_metaboxes.scss */
698
-
699
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,
700
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,
701
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,
702
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text {
703
- width: 100%;
704
- }
705
-
706
- /* line 96, sass/partials/_post_metaboxes.scss */
707
-
708
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),
709
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),
710
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),
711
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row) {
712
- display: table-row;
713
- }
714
-
715
- /* line 100, sass/partials/_post_metaboxes.scss */
716
-
717
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,
718
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,
719
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,
720
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td {
721
- display: table-cell;
722
- float: none;
723
- width: 100%;
724
- }
725
-
726
- /* line 106, sass/partials/_post_metaboxes.scss */
727
-
728
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,
729
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,
730
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,
731
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td {
732
- padding-top: 1.8em;
733
- }
734
-
735
- /* line 110, sass/partials/_post_metaboxes.scss */
736
-
737
- .cmb2-postbox .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,
738
- .cmb2-postbox .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,
739
- .cmb-type-group .cmb2-metabox > .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,
740
- .cmb-type-group .cmb2-metabox > .cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row {
741
- padding-right: 0;
742
- }
743
-
744
  /*--------------------------------------------------------------
745
  Context Metaboxes
746
  --------------------------------------------------------------*/
@@ -858,6 +883,91 @@ Context Metaboxes
858
 
859
  /* one column on the post write/edit screen */
860
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
861
  /*--------------------------------------------------------------
862
  Misc.
863
  --------------------------------------------------------------*/
@@ -878,33 +988,19 @@ Misc.
878
 
879
  /* line 18, sass/partials/_misc.scss */
880
 
881
- .cmb2-options-page .cmb2-metabox-title {
882
- font-size: 1.3em;
883
- margin: 1em 0;
884
- }
885
-
886
- /* line 21, sass/partials/_misc.scss */
887
-
888
- .cmb2-options-page .cmb2-metabox-title + p.cmb2-metabox-description {
889
- margin-top: -1.6em;
890
- margin-bottom: .8em;
891
- }
892
-
893
- /* line 28, sass/partials/_misc.scss */
894
-
895
  .cmb2-postbox .cmb-spinner,
896
  .cmb2-no-box-wrap .cmb-spinner {
897
  float: left;
898
  display: none;
899
  }
900
 
901
- /* line 33, sass/partials/_misc.scss */
902
 
903
  .cmb-spinner {
904
  display: none;
905
  }
906
 
907
- /* line 35, sass/partials/_misc.scss */
908
 
909
  .cmb-spinner.is-active {
910
  display: block;
@@ -987,10 +1083,10 @@ Sidebar Placement Adjustments
987
  /* line 55, sass/partials/_sidebar_placements.scss */
988
 
989
  .inner-sidebar .cmb-th,
990
- .inner-sidebar .cmb-td,
991
  .inner-sidebar .cmb-th + .cmb-td,
992
  #side-sortables .cmb-th,
993
- #side-sortables .cmb-td,
994
  #side-sortables .cmb-th + .cmb-td {
995
  width: 100%;
996
  display: block;
@@ -1006,13 +1102,6 @@ Sidebar Placement Adjustments
1006
 
1007
  /* line 67, sass/partials/_sidebar_placements.scss */
1008
 
1009
- .inner-sidebar .cmb-td .cmb-td,
1010
- #side-sortables .cmb-td .cmb-td {
1011
- padding-bottom: 1em;
1012
- }
1013
-
1014
- /* line 71, sass/partials/_sidebar_placements.scss */
1015
-
1016
  .inner-sidebar .cmb-th,
1017
  #side-sortables .cmb-th {
1018
  display: block;
@@ -1029,19 +1118,8 @@ Sidebar Placement Adjustments
1029
  .inner-sidebar .cmb-th label,
1030
  #side-sortables .cmb-th label {
1031
  display: block;
1032
- margin-top: 0em;
1033
- padding-bottom: 5px;
1034
- }
1035
-
1036
- /* line 32, sass/partials/_mixins.scss */
1037
-
1038
- .inner-sidebar .cmb-th label:after,
1039
- #side-sortables .cmb-th label:after {
1040
- border-bottom: 1px solid #e9e9e9;
1041
- content: '';
1042
- clear: both;
1043
- display: block;
1044
- padding-top: .4em;
1045
  }
1046
 
1047
  /* line 14, sass/partials/_mixins.scss */
@@ -1052,35 +1130,35 @@ Sidebar Placement Adjustments
1052
  line-height: 1.4em;
1053
  }
1054
 
1055
- /* line 78, sass/partials/_sidebar_placements.scss */
1056
 
1057
  .inner-sidebar .cmb-group-description .cmb-th,
1058
  #side-sortables .cmb-group-description .cmb-th {
1059
  padding-top: 0;
1060
  }
1061
 
1062
- /* line 81, sass/partials/_sidebar_placements.scss */
1063
 
1064
  .inner-sidebar .cmb-group-description .cmb2-metabox-description,
1065
  #side-sortables .cmb-group-description .cmb2-metabox-description {
1066
  padding: 0;
1067
  }
1068
 
1069
- /* line 88, sass/partials/_sidebar_placements.scss */
1070
 
1071
  .inner-sidebar .cmb-group-title .cmb-th,
1072
  #side-sortables .cmb-group-title .cmb-th {
1073
  padding: 0;
1074
  }
1075
 
1076
- /* line 94, sass/partials/_sidebar_placements.scss */
1077
 
1078
  .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
1079
  #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
1080
  margin-top: 1em;
1081
  }
1082
 
1083
- /* line 103, sass/partials/_sidebar_placements.scss */
1084
 
1085
  .inner-sidebar .cmb2-media-status .img-status img,
1086
  .inner-sidebar .cmb2-media-status .embed-status img,
@@ -1090,7 +1168,7 @@ Sidebar Placement Adjustments
1090
  height: auto;
1091
  }
1092
 
1093
- /* line 111, sass/partials/_sidebar_placements.scss */
1094
 
1095
  .inner-sidebar .cmb2-list label,
1096
  #side-sortables .cmb2-list label {
@@ -1098,7 +1176,7 @@ Sidebar Placement Adjustments
1098
  font-weight: normal;
1099
  }
1100
 
1101
- /* line 116, sass/partials/_sidebar_placements.scss */
1102
 
1103
  .inner-sidebar .cmb2-metabox-description,
1104
  #side-sortables .cmb2-metabox-description {
@@ -1106,7 +1184,7 @@ Sidebar Placement Adjustments
1106
  padding: 7px 0 0;
1107
  }
1108
 
1109
- /* line 123, sass/partials/_sidebar_placements.scss */
1110
 
1111
  .inner-sidebar .cmb-type-checkbox .cmb-td label,
1112
  .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
@@ -1116,14 +1194,14 @@ Sidebar Placement Adjustments
1116
  display: inline;
1117
  }
1118
 
1119
- /* line 130, sass/partials/_sidebar_placements.scss */
1120
 
1121
  .inner-sidebar .cmb-row .cmb2-metabox-description,
1122
  #side-sortables .cmb-row .cmb2-metabox-description {
1123
  padding-bottom: 1.8em;
1124
  }
1125
 
1126
- /* line 134, sass/partials/_sidebar_placements.scss */
1127
 
1128
  .inner-sidebar .cmb2-metabox-title,
1129
  #side-sortables .cmb2-metabox-title {
@@ -1131,7 +1209,7 @@ Sidebar Placement Adjustments
1131
  font-style: italic;
1132
  }
1133
 
1134
- /* line 139, sass/partials/_sidebar_placements.scss */
1135
 
1136
  .inner-sidebar .cmb-remove-row,
1137
  #side-sortables .cmb-remove-row {
@@ -1140,25 +1218,7 @@ Sidebar Placement Adjustments
1140
  padding-bottom: 0;
1141
  }
1142
 
1143
- /* line 146, sass/partials/_sidebar_placements.scss */
1144
-
1145
- .inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td,
1146
- #side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td {
1147
- width: auto;
1148
- clear: none;
1149
- float: left;
1150
- padding-top: 0;
1151
- }
1152
-
1153
- /* line 151, sass/partials/_sidebar_placements.scss */
1154
-
1155
- .inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row,
1156
- #side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row {
1157
- float: right;
1158
- margin: 0;
1159
- }
1160
-
1161
- /* line 158, sass/partials/_sidebar_placements.scss */
1162
 
1163
  .inner-sidebar .cmb2-upload-button,
1164
  #side-sortables .cmb2-upload-button {
@@ -1168,12 +1228,6 @@ Sidebar Placement Adjustments
1168
 
1169
  /* line 2, sass/partials/_collapsible_ui.scss */
1170
 
1171
- .cmb2-metabox .cmb-type-group {
1172
- max-width: 1000px;
1173
- }
1174
-
1175
- /* line 5, sass/partials/_collapsible_ui.scss */
1176
-
1177
  .cmb2-metabox .cmbhandle {
1178
  color: #aaa;
1179
  float: right;
@@ -1184,7 +1238,7 @@ Sidebar Placement Adjustments
1184
  position: relative;
1185
  }
1186
 
1187
- /* line 13, sass/partials/_collapsible_ui.scss */
1188
 
1189
  .cmb2-metabox .cmbhandle:before {
1190
  content: '\f142';
@@ -1200,13 +1254,13 @@ Sidebar Placement Adjustments
1200
  text-decoration: none !important;
1201
  }
1202
 
1203
- /* line 30, sass/partials/_collapsible_ui.scss */
1204
 
1205
  .cmb2-metabox .postbox.closed .cmbhandle:before {
1206
  content: '\f140';
1207
  }
1208
 
1209
- /* line 36, sass/partials/_collapsible_ui.scss */
1210
 
1211
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
1212
  -webkit-appearance: none !important;
@@ -1220,7 +1274,7 @@ Sidebar Placement Adjustments
1220
  opacity: .5;
1221
  }
1222
 
1223
- /* line 46, sass/partials/_collapsible_ui.scss */
1224
 
1225
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
1226
  cursor: pointer;
@@ -1228,7 +1282,7 @@ Sidebar Placement Adjustments
1228
  opacity: 1;
1229
  }
1230
 
1231
- /* line 50, sass/partials/_collapsible_ui.scss */
1232
 
1233
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
1234
  color: #f00;
@@ -1928,7 +1982,7 @@ Sidebar Placement Adjustments
1928
 
1929
  @media (max-width: 450px) {
1930
 
1931
- /* line 209, sass/partials/_main_wrap.scss */
1932
 
1933
  .cmb-th {
1934
  font-size: 1.2em;
@@ -1943,21 +1997,11 @@ Sidebar Placement Adjustments
1943
 
1944
  .cmb-th label {
1945
  display: block;
1946
- margin-top: 0em;
1947
- padding-bottom: 5px;
1948
- }
1949
-
1950
- /* line 32, sass/partials/_mixins.scss */
1951
-
1952
- .cmb-th label:after {
1953
- border-bottom: 1px solid #e9e9e9;
1954
- content: '';
1955
- clear: both;
1956
- display: block;
1957
- padding-top: .4em;
1958
  }
1959
 
1960
- /* line 435, sass/partials/_main_wrap.scss */
1961
 
1962
  .cmb-th,
1963
  .cmb-td,
@@ -1967,7 +2011,7 @@ Sidebar Placement Adjustments
1967
  width: 100%;
1968
  }
1969
 
1970
- /* line 72, sass/partials/_post_metaboxes.scss */
1971
 
1972
  .cmb2-postbox .cmb-row:not(:last-of-type),
1973
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
@@ -1976,5 +2020,12 @@ Sidebar Placement Adjustments
1976
  border-bottom: 0;
1977
  }
1978
 
 
 
 
 
 
 
 
1979
  }
1980
 
74
  /* line 59, sass/partials/_main_wrap.scss */
75
 
76
  .cmb2-wrap input:not([type="hidden"]) + input,
77
+ .cmb2-wrap input:not([type="hidden"]) + .button-secondary,
78
  .cmb2-wrap input:not([type="hidden"]) + select {
79
  margin-left: 20px;
80
  }
124
  /* line 102, sass/partials/_main_wrap.scss */
125
 
126
  .cmb2-wrap button,
127
+ .cmb2-wrap .button-secondary {
128
  white-space: nowrap;
129
  }
130
 
152
  width: 100%;
153
  }
154
 
155
+ /* line 124, sass/partials/_main_wrap.scss */
156
 
157
  .cmb2-wrap .wp-color-result,
158
  .cmb2-wrap .wp-picker-input-wrap {
159
  vertical-align: middle;
160
  }
161
 
162
+ /* line 129, sass/partials/_main_wrap.scss */
163
 
164
  .cmb2-wrap .wp-color-result,
165
  .cmb2-wrap .wp-picker-container {
166
  margin: 0 10px 0 0;
167
  }
168
 
169
+ /* line 134, sass/partials/_main_wrap.scss */
170
 
171
  .cmb2-wrap .cmb-row {
172
  margin: 0;
173
  }
174
 
175
+ /* line 137, sass/partials/_main_wrap.scss */
176
 
177
  .cmb2-wrap .cmb-row:after {
178
  content: '';
181
  width: 100%;
182
  }
183
 
184
+ /* line 144, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
 
 
 
 
185
 
186
  .cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description {
187
  padding-top: 0;
188
+ padding-bottom: 1em;
189
  }
190
 
191
+ /* line 152, sass/partials/_main_wrap.scss */
192
 
193
  .cmb2-metabox {
194
  clear: both;
195
  margin: 0;
196
  }
197
 
198
+ /* line 158, sass/partials/_main_wrap.scss */
199
 
200
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-td,
201
  .cmb2-metabox > .cmb-row:first-of-type > .cmb-th,
204
  border: 0;
205
  }
206
 
207
+ /* line 165, sass/partials/_main_wrap.scss */
 
 
 
 
 
 
 
 
208
 
209
  .cmb-add-row {
210
  margin: 1.8em 0 0;
211
  }
212
 
213
+ /* line 169, sass/partials/_main_wrap.scss */
214
 
215
  .cmb-nested .cmb-td,
216
  .cmb-repeatable-group .cmb-th,
218
  border: 0;
219
  }
220
 
221
+ /* line 175, sass/partials/_main_wrap.scss */
222
 
223
  .cmb-row:last-of-type,
224
  .cmb2-wrap .cmb-row:last-of-type,
226
  border-bottom: 0;
227
  }
228
 
229
+ /* line 181, sass/partials/_main_wrap.scss */
230
 
231
  .cmb-repeatable-grouping {
232
  border: 1px solid #e9e9e9;
233
  padding: 0 1em;
 
234
  }
235
 
236
+ /* line 185, sass/partials/_main_wrap.scss */
237
 
238
  .cmb-repeatable-grouping.cmb-row {
239
  margin: 0 0 0.8em;
240
  }
241
 
242
+ /* line 193, sass/partials/_main_wrap.scss */
243
 
244
  .cmb-th {
245
  color: #222222;
251
  width: 200px;
252
  }
253
 
254
+ /* line 207, sass/partials/_main_wrap.scss */
255
 
256
  .cmb-td {
257
  line-height: 1.3;
260
  vertical-align: middle;
261
  }
262
 
263
+ /* line 216, sass/partials/_main_wrap.scss */
264
 
265
  .cmb-type-title .cmb-td {
266
  padding: 0;
267
  }
268
 
269
+ /* line 221, sass/partials/_main_wrap.scss */
270
 
271
  .cmb-th label {
272
  display: block;
273
  padding: 5px 0;
274
  }
275
 
276
+ /* line 226, sass/partials/_main_wrap.scss */
277
 
278
  .cmb-th + .cmb-td {
279
  float: left;
280
  }
281
 
282
+ /* line 230, sass/partials/_main_wrap.scss */
283
 
284
  .cmb-td .cmb-td {
285
  padding-bottom: 1em;
286
  }
287
 
288
+ /* line 234, sass/partials/_main_wrap.scss */
289
 
290
  .cmb-remove-row {
291
  text-align: right;
292
  }
293
 
294
+ /* line 238, sass/partials/_main_wrap.scss */
295
 
296
  .empty-row.hidden {
297
  display: none;
298
  }
299
 
300
+ /* line 243, sass/partials/_main_wrap.scss */
301
+
302
+ .cmb-repeat-table {
303
+ background-color: #fafafa;
304
+ border: 1px solid #e1e1e1;
305
+ }
306
+
307
+ /* line 247, sass/partials/_main_wrap.scss */
308
+
309
+ .cmb-repeat-table .cmb-row.cmb-repeat-row {
310
+ position: relative;
311
+ counter-increment: el;
312
+ margin: 0;
313
+ padding: 10px 10px 10px 50px;
314
+ border-bottom: none !important;
315
+ }
316
+
317
+ /* line 255, sass/partials/_main_wrap.scss */
318
+
319
+ .cmb-repeat-table .cmb-row.cmb-repeat-row + .cmb-repeat-row {
320
+ border-top: solid 1px #e9e9e9;
321
+ }
322
+
323
+ /* line 259, sass/partials/_main_wrap.scss */
324
+
325
+ .cmb-repeat-table .cmb-row.cmb-repeat-row:before {
326
+ content: counter(el);
327
+ display: block;
328
+ top: 0;
329
+ left: 0;
330
+ position: absolute;
331
+ width: 35px;
332
+ height: 100%;
333
+ line-height: 35px;
334
+ color: #aaaaaa;
335
+ text-align: center;
336
+ border-right: solid 1px #e9e9e9;
337
+ }
338
+
339
+ /* line 276, sass/partials/_main_wrap.scss */
340
+
341
+ .cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td {
342
+ margin: 0;
343
+ padding: 0;
344
+ }
345
+
346
+ /* line 283, sass/partials/_main_wrap.scss */
347
+
348
+ .cmb-repeat-table + .cmb-add-row {
349
+ margin: 0;
350
+ }
351
+
352
+ /* line 286, sass/partials/_main_wrap.scss */
353
+
354
+ .cmb-repeat-table + .cmb-add-row:before {
355
+ content: '';
356
+ width: 1px;
357
+ height: 1.6em;
358
+ display: block;
359
+ margin-left: 17px;
360
+ background-color: gainsboro;
361
+ }
362
+
363
+ /* line 296, sass/partials/_main_wrap.scss */
364
+
365
+ .cmb-repeat-table .cmb-remove-row {
366
+ top: 7px;
367
+ right: 7px;
368
+ position: absolute;
369
+ width: auto;
370
+ margin-left: 0;
371
+ padding: 0 !important;
372
+ display: none;
373
+ }
374
+
375
+ /* line 307, sass/partials/_main_wrap.scss */
376
+
377
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button {
378
+ font-size: 20px;
379
+ text-indent: -1000px;
380
+ overflow: hidden;
381
+ position: relative;
382
+ height: auto;
383
+ line-height: 1;
384
+ padding: 0 10px 0;
385
+ }
386
+
387
+ /* line 318, sass/partials/_main_wrap.scss */
388
+
389
+ .cmb-repeat-table .cmb-remove-row > .cmb-remove-row-button:before {
390
+ content: "";
391
+ font-family: 'Dashicons';
392
+ speak: none;
393
+ font-weight: normal;
394
+ font-variant: normal;
395
+ text-transform: none;
396
+ line-height: 1;
397
+ -webkit-font-smoothing: antialiased;
398
+ margin: 0;
399
+ text-indent: 0;
400
+ position: absolute;
401
+ top: 0;
402
+ left: 0;
403
+ width: 100%;
404
+ height: 100%;
405
+ text-align: center;
406
+ }
407
+
408
+ /* line 324, sass/partials/_main_wrap.scss */
409
+
410
+ .cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row {
411
+ display: block;
412
+ }
413
+
414
+ /* line 332, sass/partials/_main_wrap.scss */
415
 
416
  .cmb-repeatable-group .cmb-th {
417
  padding: 5px;
418
  }
419
 
420
+ /* line 336, sass/partials/_main_wrap.scss */
421
 
422
  .cmb-repeatable-group .cmb-group-title {
423
  background-color: #e9e9e9;
428
  line-height: 1.4;
429
  }
430
 
431
+ /* line 344, sass/partials/_main_wrap.scss */
432
 
433
  .cmb-repeatable-group .cmb-group-title h4 {
434
  border: 0;
438
  padding: 0.5em 0.75em;
439
  }
440
 
441
+ /* line 352, sass/partials/_main_wrap.scss */
442
 
443
  .cmb-repeatable-group .cmb-group-title .cmb-th {
444
  display: block;
445
  width: 100%;
446
  }
447
 
448
+ /* line 358, sass/partials/_main_wrap.scss */
449
 
450
  .cmb-repeatable-group .cmb-group-description .cmb-th {
451
  font-size: 1.2em;
460
 
461
  .cmb-repeatable-group .cmb-group-description .cmb-th label {
462
  display: block;
463
+ margin-top: 0;
464
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
 
 
465
  }
466
 
467
+ /* line 362, sass/partials/_main_wrap.scss */
468
 
469
  .cmb-repeatable-group .cmb-shift-rows {
470
  font-size: 1em;
472
  text-decoration: none;
473
  }
474
 
475
+ /* line 367, sass/partials/_main_wrap.scss */
476
 
477
  .cmb-repeatable-group .cmb-shift-rows .dashicons {
478
  font-size: 1.5em;
481
  width: 1em;
482
  }
483
 
484
+ /* line 373, sass/partials/_main_wrap.scss */
485
 
486
  .cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2 {
487
  line-height: 1.3em;
488
  }
489
 
490
+ /* line 380, sass/partials/_main_wrap.scss */
491
 
492
  .cmb-repeatable-group .cmb2-upload-button {
493
  float: right;
494
  }
495
 
496
+ /* line 386, sass/partials/_main_wrap.scss */
497
 
498
  p.cmb2-metabox-description {
499
  color: #aaaaaa;
502
  padding-top: .5em;
503
  }
504
 
505
+ /* line 393, sass/partials/_main_wrap.scss */
506
 
507
  span.cmb2-metabox-description {
508
  color: #aaaaaa;
509
  font-style: italic;
510
  }
511
 
512
+ /* line 398, sass/partials/_main_wrap.scss */
513
 
514
  .cmb2-metabox-title {
515
  margin: 0 0 5px 0;
517
  font-size: 14px;
518
  }
519
 
520
+ /* line 404, sass/partials/_main_wrap.scss */
521
 
522
  .cmb-inline ul {
523
  padding: 4px 0 0 0;
524
  }
525
 
526
+ /* line 408, sass/partials/_main_wrap.scss */
527
 
528
  .cmb-inline li {
529
  display: inline-block;
530
  padding-right: 18px;
531
  }
532
 
533
+ /* line 413, sass/partials/_main_wrap.scss */
534
 
535
  .cmb-type-textarea-code pre {
536
  margin: 0;
537
  }
538
 
539
+ /* line 419, sass/partials/_main_wrap.scss */
540
 
541
  .cmb2-media-status .img-status {
542
  clear: none;
546
  width: auto;
547
  }
548
 
549
+ /* line 426, sass/partials/_main_wrap.scss */
550
 
551
  .cmb2-media-status .img-status img {
552
  max-width: 350px;
553
  height: auto;
554
  }
555
 
556
+ /* line 432, sass/partials/_main_wrap.scss */
557
 
558
  .cmb2-media-status .img-status img,
559
  .cmb2-media-status .embed-status {
565
  padding: 5px;
566
  }
567
 
568
+ /* line 442, sass/partials/_main_wrap.scss */
569
 
570
  .cmb2-media-status .embed-status {
571
  float: left;
572
  max-width: 800px;
573
  }
574
 
575
+ /* line 447, sass/partials/_main_wrap.scss */
576
 
577
  .cmb2-media-status .img-status,
578
  .cmb2-media-status .embed-status {
579
  position: relative;
580
  }
581
 
582
+ /* line 450, sass/partials/_main_wrap.scss */
583
 
584
  .cmb2-media-status .img-status .cmb2-remove-file-button,
585
  .cmb2-media-status .embed-status .cmb2-remove-file-button {
592
  width: 16px;
593
  }
594
 
595
+ /* line 464, sass/partials/_main_wrap.scss */
596
 
597
  .cmb2-media-status .img-status .cmb2-remove-file-button {
598
  top: 10px;
599
  }
600
 
601
+ /* line 469, sass/partials/_main_wrap.scss */
602
 
603
  .cmb2-media-status .img-status img,
604
  .cmb2-media-status .file-status > span {
605
  cursor: pointer;
606
  }
607
 
608
+ /* line 475, sass/partials/_main_wrap.scss */
609
 
610
  .cmb-type-file-list .cmb2-media-status .img-status {
611
  clear: none;
616
  margin-top: 0;
617
  }
618
 
619
+ /* line 484, sass/partials/_main_wrap.scss */
620
 
621
  .cmb-attach-list li {
622
  clear: both;
626
  margin-bottom: 10px;
627
  }
628
 
629
+ /* line 491, sass/partials/_main_wrap.scss */
630
 
631
  .cmb-attach-list li img {
632
  cursor: move;
634
  margin-right: 10px;
635
  }
636
 
637
+ /* line 498, sass/partials/_main_wrap.scss */
638
 
639
  .cmb2-remove-wrapper {
640
  margin: 0;
641
  }
642
 
643
+ /* line 502, sass/partials/_main_wrap.scss */
644
 
645
  .child-cmb2 .cmb-th {
646
  text-align: left;
647
  }
648
 
649
+ /* line 506, sass/partials/_main_wrap.scss */
650
+
651
+ .cmb2-indented-hierarchy {
652
+ padding-left: 1.5em;
653
+ }
654
+
655
  /*--------------------------------------------------------------
656
  Post Metaboxes
657
  --------------------------------------------------------------*/
742
 
743
  /* line 63, sass/partials/_post_metaboxes.scss */
744
 
 
 
 
 
 
 
 
745
  .cmb2-postbox .cmb-th + .cmb-td,
746
  .cmb-type-group .cmb-th + .cmb-td {
747
  width: 80%;
748
  float: right;
749
  }
750
 
751
+ /* line 68, sass/partials/_post_metaboxes.scss */
752
 
753
  .cmb2-postbox .cmb-row:not(:last-of-type),
754
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
757
  border-bottom: 1px solid #e9e9e9;
758
  }
759
 
760
+ /* line 77, sass/partials/_post_metaboxes.scss */
761
 
762
  .cmb2-postbox .cmb-repeat-group-field,
763
  .cmb2-postbox .cmb-remove-field-row,
766
  padding-top: 1.8em;
767
  }
768
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
769
  /*--------------------------------------------------------------
770
  Context Metaboxes
771
  --------------------------------------------------------------*/
883
 
884
  /* one column on the post write/edit screen */
885
 
886
+ /*--------------------------------------------------------------
887
+ Options page
888
+ --------------------------------------------------------------*/
889
+
890
+ /* line 4, sass/partials/_options-page.scss */
891
+
892
+ .cmb2-options-page {
893
+ max-width: 1200px;
894
+ }
895
+
896
+ /* line 7, sass/partials/_options-page.scss */
897
+
898
+ .cmb2-options-page.wrap > h2 {
899
+ margin-bottom: 1em;
900
+ }
901
+
902
+ /* line 11, sass/partials/_options-page.scss */
903
+
904
+ .cmb2-options-page .cmb2-metabox > .cmb-row {
905
+ padding: 1em;
906
+ margin-top: -1px;
907
+ background: #ffffff;
908
+ border: 1px solid #e9e9e9;
909
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
910
+ }
911
+
912
+ /* line 18, sass/partials/_options-page.scss */
913
+
914
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th {
915
+ padding: 0;
916
+ font-weight: initial;
917
+ }
918
+
919
+ /* line 23, sass/partials/_options-page.scss */
920
+
921
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
922
+ float: none;
923
+ padding: 0 0 0 1em;
924
+ margin-left: 200px;
925
+ }
926
+
927
+ /* line 36, sass/partials/_options-page.scss */
928
+
929
+ .cmb2-options-page .cmb2-wrap .cmb-type-title {
930
+ margin-top: 1em;
931
+ padding: 0.6em 1em;
932
+ background-color: #fafafa;
933
+ }
934
+
935
+ /* line 41, sass/partials/_options-page.scss */
936
+
937
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title {
938
+ font-size: 12px;
939
+ margin-top: 0;
940
+ margin-bottom: 0;
941
+ text-transform: uppercase;
942
+ }
943
+
944
+ /* line 48, sass/partials/_options-page.scss */
945
+
946
+ .cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description {
947
+ padding-top: 0.25em;
948
+ }
949
+
950
+ /* line 54, sass/partials/_options-page.scss */
951
+
952
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th {
953
+ padding: 0 0 0.8em 0;
954
+ }
955
+
956
+ /* line 58, sass/partials/_options-page.scss */
957
+
958
+ .cmb2-options-page .cmb-repeatable-group .cmb-group-name {
959
+ font-size: 16px;
960
+ margin-top: 0;
961
+ margin-bottom: 0;
962
+ }
963
+
964
+ /* line 64, sass/partials/_options-page.scss */
965
+
966
+ .cmb2-options-page .cmb-repeatable-group .cmb-th > .cmb2-metabox-description {
967
+ font-weight: 400;
968
+ padding-bottom: 0 !important;
969
+ }
970
+
971
  /*--------------------------------------------------------------
972
  Misc.
973
  --------------------------------------------------------------*/
988
 
989
  /* line 18, sass/partials/_misc.scss */
990
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
991
  .cmb2-postbox .cmb-spinner,
992
  .cmb2-no-box-wrap .cmb-spinner {
993
  float: left;
994
  display: none;
995
  }
996
 
997
+ /* line 24, sass/partials/_misc.scss */
998
 
999
  .cmb-spinner {
1000
  display: none;
1001
  }
1002
 
1003
+ /* line 26, sass/partials/_misc.scss */
1004
 
1005
  .cmb-spinner.is-active {
1006
  display: block;
1083
  /* line 55, sass/partials/_sidebar_placements.scss */
1084
 
1085
  .inner-sidebar .cmb-th,
1086
+ .inner-sidebar .cmb-td:not(.cmb-remove-row),
1087
  .inner-sidebar .cmb-th + .cmb-td,
1088
  #side-sortables .cmb-th,
1089
+ #side-sortables .cmb-td:not(.cmb-remove-row),
1090
  #side-sortables .cmb-th + .cmb-td {
1091
  width: 100%;
1092
  display: block;
1102
 
1103
  /* line 67, sass/partials/_sidebar_placements.scss */
1104
 
 
 
 
 
 
 
 
1105
  .inner-sidebar .cmb-th,
1106
  #side-sortables .cmb-th {
1107
  display: block;
1118
  .inner-sidebar .cmb-th label,
1119
  #side-sortables .cmb-th label {
1120
  display: block;
1121
+ margin-top: 0;
1122
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
 
 
 
1123
  }
1124
 
1125
  /* line 14, sass/partials/_mixins.scss */
1130
  line-height: 1.4em;
1131
  }
1132
 
1133
+ /* line 74, sass/partials/_sidebar_placements.scss */
1134
 
1135
  .inner-sidebar .cmb-group-description .cmb-th,
1136
  #side-sortables .cmb-group-description .cmb-th {
1137
  padding-top: 0;
1138
  }
1139
 
1140
+ /* line 77, sass/partials/_sidebar_placements.scss */
1141
 
1142
  .inner-sidebar .cmb-group-description .cmb2-metabox-description,
1143
  #side-sortables .cmb-group-description .cmb2-metabox-description {
1144
  padding: 0;
1145
  }
1146
 
1147
+ /* line 84, sass/partials/_sidebar_placements.scss */
1148
 
1149
  .inner-sidebar .cmb-group-title .cmb-th,
1150
  #side-sortables .cmb-group-title .cmb-th {
1151
  padding: 0;
1152
  }
1153
 
1154
+ /* line 90, sass/partials/_sidebar_placements.scss */
1155
 
1156
  .inner-sidebar .cmb-repeatable-grouping + .cmb-repeatable-grouping,
1157
  #side-sortables .cmb-repeatable-grouping + .cmb-repeatable-grouping {
1158
  margin-top: 1em;
1159
  }
1160
 
1161
+ /* line 99, sass/partials/_sidebar_placements.scss */
1162
 
1163
  .inner-sidebar .cmb2-media-status .img-status img,
1164
  .inner-sidebar .cmb2-media-status .embed-status img,
1168
  height: auto;
1169
  }
1170
 
1171
+ /* line 107, sass/partials/_sidebar_placements.scss */
1172
 
1173
  .inner-sidebar .cmb2-list label,
1174
  #side-sortables .cmb2-list label {
1176
  font-weight: normal;
1177
  }
1178
 
1179
+ /* line 112, sass/partials/_sidebar_placements.scss */
1180
 
1181
  .inner-sidebar .cmb2-metabox-description,
1182
  #side-sortables .cmb2-metabox-description {
1184
  padding: 7px 0 0;
1185
  }
1186
 
1187
+ /* line 119, sass/partials/_sidebar_placements.scss */
1188
 
1189
  .inner-sidebar .cmb-type-checkbox .cmb-td label,
1190
  .inner-sidebar .cmb-type-checkbox .cmb2-metabox-description,
1194
  display: inline;
1195
  }
1196
 
1197
+ /* line 126, sass/partials/_sidebar_placements.scss */
1198
 
1199
  .inner-sidebar .cmb-row .cmb2-metabox-description,
1200
  #side-sortables .cmb-row .cmb2-metabox-description {
1201
  padding-bottom: 1.8em;
1202
  }
1203
 
1204
+ /* line 130, sass/partials/_sidebar_placements.scss */
1205
 
1206
  .inner-sidebar .cmb2-metabox-title,
1207
  #side-sortables .cmb2-metabox-title {
1209
  font-style: italic;
1210
  }
1211
 
1212
+ /* line 135, sass/partials/_sidebar_placements.scss */
1213
 
1214
  .inner-sidebar .cmb-remove-row,
1215
  #side-sortables .cmb-remove-row {
1218
  padding-bottom: 0;
1219
  }
1220
 
1221
+ /* line 141, sass/partials/_sidebar_placements.scss */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1222
 
1223
  .inner-sidebar .cmb2-upload-button,
1224
  #side-sortables .cmb2-upload-button {
1228
 
1229
  /* line 2, sass/partials/_collapsible_ui.scss */
1230
 
 
 
 
 
 
 
1231
  .cmb2-metabox .cmbhandle {
1232
  color: #aaa;
1233
  float: right;
1238
  position: relative;
1239
  }
1240
 
1241
+ /* line 10, sass/partials/_collapsible_ui.scss */
1242
 
1243
  .cmb2-metabox .cmbhandle:before {
1244
  content: '\f142';
1254
  text-decoration: none !important;
1255
  }
1256
 
1257
+ /* line 27, sass/partials/_collapsible_ui.scss */
1258
 
1259
  .cmb2-metabox .postbox.closed .cmbhandle:before {
1260
  content: '\f140';
1261
  }
1262
 
1263
+ /* line 33, sass/partials/_collapsible_ui.scss */
1264
 
1265
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row {
1266
  -webkit-appearance: none !important;
1274
  opacity: .5;
1275
  }
1276
 
1277
+ /* line 43, sass/partials/_collapsible_ui.scss */
1278
 
1279
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]) {
1280
  cursor: pointer;
1282
  opacity: 1;
1283
  }
1284
 
1285
+ /* line 47, sass/partials/_collapsible_ui.scss */
1286
 
1287
  .cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover {
1288
  color: #f00;
1982
 
1983
  @media (max-width: 450px) {
1984
 
1985
+ /* line 193, sass/partials/_main_wrap.scss */
1986
 
1987
  .cmb-th {
1988
  font-size: 1.2em;
1997
 
1998
  .cmb-th label {
1999
  display: block;
2000
+ margin-top: 0;
2001
+ margin-bottom: 0.5em;
 
 
 
 
 
 
 
 
 
 
2002
  }
2003
 
2004
+ /* line 511, sass/partials/_main_wrap.scss */
2005
 
2006
  .cmb-th,
2007
  .cmb-td,
2011
  width: 100%;
2012
  }
2013
 
2014
+ /* line 68, sass/partials/_post_metaboxes.scss */
2015
 
2016
  .cmb2-postbox .cmb-row:not(:last-of-type),
2017
  .cmb2-postbox .cmb-repeatable-group:not(:last-of-type),
2020
  border-bottom: 0;
2021
  }
2022
 
2023
+ /* line 23, sass/partials/_options-page.scss */
2024
+
2025
+ .cmb2-options-page .cmb2-metabox > .cmb-row > .cmb-th + .cmb-td {
2026
+ padding: 0;
2027
+ margin-left: 0;
2028
+ }
2029
+
2030
  }
2031
 
vendor/CMB2/css/cmb2.min.css CHANGED
@@ -1 +1 @@
1
- .cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-left:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 5px 0 0;padding:0}.cmb2-wrap .button,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 10px 0 0}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat-row{padding:1.8em 0 0}.cmb2-wrap .cmb-row.cmb-repeat-row:first-of-type{padding:0}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1.8em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb2-metabox>.cmb-row .cmb-repeat-table .cmb-row>.cmb-td{padding-right:20px;box-sizing:border-box;float:left}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em;max-width:1000px}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:left;font-weight:600;line-height:1.3;padding:20px 10px 20px 0;vertical-align:top;width:200px}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:left}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:right}.empty-row.hidden{display:none}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 12px 8px 2.2em;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:left;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;padding-bottom:5px}.cmb-repeatable-group .cmb-group-description .cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-right:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:right}p.cmb2-metabox-description{color:#aaa;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#aaa;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-right:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-right:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#fff;border:1px solid #e9e9e9;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0;padding:5px}.cmb2-media-status .embed-status{float:left;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;left:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-right:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{cursor:move;float:left;margin-right:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:left}#poststuff .cmb-group-title{margin-left:-1em;margin-right:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-left:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{right:-1em;position:relative}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 2% 0 0}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-repeat-row .cmb-td,.cmb2-postbox .cmb-repeat-row .cmb-td{padding-bottom:1.8em}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:right}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody{display:table;width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody input.regular-text{width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row),.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(.hidden):not(.empty-row){display:table-row}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td{display:table-cell;float:none;width:100%}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-row:not(:first-of-type) .cmb-td{padding-top:1.8em}.cmb-type-group .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb-type-group .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb2-postbox .cmb2-metabox>.cmb-row .cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row,.cmb2-postbox .cmb2-metabox>.cmb-row.table-layout .cmb-repeat-table .cmb-tbody .cmb-td.cmb-remove-row{padding-right:0}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 2% 0 0;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-options-page .cmb2-metabox-title{font-size:1.3em;margin:1em 0}.cmb2-options-page .cmb2-metabox-title+p.cmb2-metabox-description{margin-top:-1.6em;margin-bottom:.8em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:left;display:none}.cmb-spinner{display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-left:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td,#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td,.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-td .cmb-td,.inner-sidebar .cmb-td .cmb-td{padding-bottom:1em}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:left;width:100%;padding-left:0;padding-right:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;padding-bottom:5px}#side-sortables .cmb-th label:after,.inner-sidebar .cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td,.inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td{width:auto;clear:none;float:left;padding-top:0}#side-sortables .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row,.inner-sidebar .cmb-type-colorpicker .cmb-repeat-row .cmb-td.cmb-remove-row{float:right;margin:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmb-type-group{max-width:1000px}.cmb2-metabox .cmbhandle{color:#aaa;float:right;width:27px;height:30px;cursor:pointer;right:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';right:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;left:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-left:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:left;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 10px 10px 40%}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:left}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .6em .4em .4em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:0}}@media (max-width:450px){.cmb-th{font-size:1.2em;padding-bottom:1em;text-align:left}.cmb-th label{display:block;margin-top:0;padding-bottom:5px}.cmb-th label:after{border-bottom:1px solid #e9e9e9;content:'';clear:both;display:block;padding-top:.4em}.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}}
1
+ .cmb2-wrap{margin:0}.cmb2-wrap input,.cmb2-wrap textarea{font-size:14px;max-width:100%;padding:5px}.cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb2-wrap textarea{width:500px}.cmb2-wrap textarea.cmb2-textarea-code{font-family:"Courier 10 Pitch",Courier,monospace;line-height:16px}.cmb2-wrap input.cmb2-text-small,.cmb2-wrap input.cmb2-timepicker{width:100px}.cmb2-wrap input.cmb2-text-money{width:90px}.cmb2-wrap input.cmb2-text-medium{width:230px}.cmb2-wrap input.cmb2-upload-file{width:65%}.cmb2-wrap input.ed_button{padding:2px 4px}.cmb2-wrap input:not([type=hidden])+.button-secondary,.cmb2-wrap input:not([type=hidden])+input,.cmb2-wrap input:not([type=hidden])+select{margin-left:20px}.cmb2-wrap ul{margin:0}.cmb2-wrap li{font-size:14px;line-height:16px;margin:1px 0 5px}.cmb2-wrap select{font-size:14px;margin-top:3px}.cmb2-wrap input:focus,.cmb2-wrap textarea:focus{background:#fffff8}.cmb2-wrap input[type=checkbox],.cmb2-wrap input[type=radio]{margin:0 5px 0 0;padding:0}.cmb2-wrap .button-secondary,.cmb2-wrap button{white-space:nowrap}.cmb2-wrap .mceLayout{border:1px solid #e9e9e9!important}.cmb2-wrap .mceIframeContainer{background:#fff}.cmb2-wrap .meta_mce{width:97%}.cmb2-wrap .meta_mce textarea{width:100%}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-input-wrap{vertical-align:middle}.cmb2-wrap .wp-color-result,.cmb2-wrap .wp-picker-container{margin:0 10px 0 0}.cmb2-wrap .cmb-row{margin:0}.cmb2-wrap .cmb-row:after{content:'';clear:both;display:block;width:100%}.cmb2-wrap .cmb-row.cmb-repeat .cmb2-metabox-description{padding-top:0;padding-bottom:1em}.cmb2-metabox{clear:both;margin:0}.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox .cmb-field-list>.cmb-row:first-of-type>.cmb-th,.cmb2-metabox>.cmb-row:first-of-type>.cmb-td,.cmb2-metabox>.cmb-row:first-of-type>.cmb-th{border:0}.cmb-add-row{margin:1.8em 0 0}.cmb-nested .cmb-td,.cmb-repeatable-group .cmb-th,.cmb-repeatable-group:first-of-type{border:0}.cmb-repeatable-group:last-of-type,.cmb-row:last-of-type,.cmb2-wrap .cmb-row:last-of-type{border-bottom:0}.cmb-repeatable-grouping{border:1px solid #e9e9e9;padding:0 1em}.cmb-repeatable-grouping.cmb-row{margin:0 0 .8em}.cmb-th{color:#222;float:left;font-weight:600;line-height:1.3;padding:20px 10px 20px 0;vertical-align:top;width:200px}.cmb-td{line-height:1.3;max-width:100%;padding:15px 10px;vertical-align:middle}.cmb-type-title .cmb-td{padding:0}.cmb-th label{display:block;padding:5px 0}.cmb-th+.cmb-td{float:left}.cmb-td .cmb-td{padding-bottom:1em}.cmb-remove-row{text-align:right}.empty-row.hidden{display:none}.cmb-repeat-table{background-color:#fafafa;border:1px solid #e1e1e1}.cmb-repeat-table .cmb-row.cmb-repeat-row{position:relative;counter-increment:el;margin:0;padding:10px 10px 10px 50px;border-bottom:none!important}.cmb-repeat-table .cmb-row.cmb-repeat-row+.cmb-repeat-row{border-top:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row:before{content:counter(el);display:block;top:0;left:0;position:absolute;width:35px;height:100%;line-height:35px;color:#aaa;text-align:center;border-right:solid 1px #e9e9e9}.cmb-repeat-table .cmb-row.cmb-repeat-row .cmb-td{margin:0;padding:0}.cmb-repeat-table+.cmb-add-row{margin:0}.cmb-repeat-table+.cmb-add-row:before{content:'';width:1px;height:1.6em;display:block;margin-left:17px;background-color:#dcdcdc}.cmb-repeat-table .cmb-remove-row{top:7px;right:7px;position:absolute;width:auto;margin-left:0;padding:0!important;display:none}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button{font-size:20px;text-indent:-1000px;overflow:hidden;position:relative;height:auto;line-height:1;padding:0 10px}.cmb-repeat-table .cmb-remove-row>.cmb-remove-row-button:before{content:"";font-family:Dashicons;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.cmb-repeat-table .cmb-repeat-row:hover .cmb-remove-row{display:block}.cmb-repeatable-group .cmb-th{padding:5px}.cmb-repeatable-group .cmb-group-title{background-color:#e9e9e9;padding:8px 12px 8px 2.2em;margin:0 -1em;min-height:1.5em;font-size:14px;line-height:1.4}.cmb-repeatable-group .cmb-group-title h4{border:0;margin:0;font-size:1.2em;font-weight:500;padding:.5em .75em}.cmb-repeatable-group .cmb-group-title .cmb-th{display:block;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th{font-size:1.2em;display:block;float:none;padding-bottom:1em;text-align:left;width:100%}.cmb-repeatable-group .cmb-group-description .cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-repeatable-group .cmb-shift-rows{font-size:1em;margin-right:1em;text-decoration:none}.cmb-repeatable-group .cmb-shift-rows .dashicons{font-size:1.5em;height:1.5em;line-height:1.2em;width:1em}.cmb-repeatable-group .cmb-shift-rows .dashicons.dashicons-arrow-down-alt2{line-height:1.3em}.cmb-repeatable-group .cmb2-upload-button{float:right}p.cmb2-metabox-description{color:#aaa;font-style:italic;margin:0;padding-top:.5em}span.cmb2-metabox-description{color:#aaa;font-style:italic}.cmb2-metabox-title{margin:0 0 5px;padding:5px 0 0;font-size:14px}.cmb-inline ul{padding:4px 0 0}.cmb-inline li{display:inline-block;padding-right:18px}.cmb-type-textarea-code pre{margin:0}.cmb2-media-status .img-status{clear:none;display:inline-block;vertical-align:middle;margin-right:10px;width:auto}.cmb2-media-status .img-status img{max-width:350px;height:auto}.cmb2-media-status .embed-status,.cmb2-media-status .img-status img{background:#fff;border:1px solid #e9e9e9;border-radius:2px;-moz-border-radius:2px;margin:15px 0 0;padding:5px}.cmb2-media-status .embed-status{float:left;max-width:800px}.cmb2-media-status .embed-status,.cmb2-media-status .img-status{position:relative}.cmb2-media-status .embed-status .cmb2-remove-file-button,.cmb2-media-status .img-status .cmb2-remove-file-button{background:url(../images/ico-delete.png);height:16px;left:-5px;position:absolute;text-indent:-9999px;top:-5px;width:16px}.cmb2-media-status .img-status .cmb2-remove-file-button{top:10px}.cmb2-media-status .file-status>span,.cmb2-media-status .img-status img{cursor:pointer}.cmb-type-file-list .cmb2-media-status .img-status{clear:none;vertical-align:middle;width:auto;margin-right:10px;margin-bottom:10px;margin-top:0}.cmb-attach-list li{clear:both;display:inline-block;width:100%;margin-top:5px;margin-bottom:10px}.cmb-attach-list li img{cursor:move;float:left;margin-right:10px}.cmb2-remove-wrapper{margin:0}.child-cmb2 .cmb-th{text-align:left}.cmb2-indented-hierarchy{padding-left:1.5em}#poststuff .cmb-group-title{margin-left:-1em;margin-right:-1em;min-height:1.5em}#poststuff .repeatable .cmb-group-title{padding-left:2.2em}.cmb-type-group .cmb2-wrap,.cmb2-postbox .cmb2-wrap{margin:0}.cmb-type-group .cmb2-wrap>.cmb-field-list>.cmb-row,.cmb2-postbox .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.8em 0}.cmb-type-group .cmb2-wrap input[type=text].cmb2-oembed,.cmb2-postbox .cmb2-wrap input[type=text].cmb2-oembed{width:100%}.cmb-type-group .cmb-row,.cmb2-postbox .cmb-row{padding:0 0 1.8em;margin:0 0 .8em}.cmb-type-group .cmb-row .cmbhandle,.cmb2-postbox .cmb-row .cmbhandle{right:-1em;position:relative}.cmb-type-group .cmb-repeatable-grouping,.cmb2-postbox .cmb-repeatable-grouping{padding:0 1em;max-width:100%;min-width:1px!important}.cmb-type-group .cmb-repeatable-group>.cmb-row,.cmb2-postbox .cmb-repeatable-group>.cmb-row{padding-bottom:0}.cmb-type-group .cmb-th,.cmb2-postbox .cmb-th{width:18%;padding:0 2% 0 0}.cmb-type-group .cmb-td,.cmb2-postbox .cmb-td{margin-bottom:0;padding:0;line-height:1.3}.cmb-type-group .cmb-th+.cmb-td,.cmb2-postbox .cmb-th+.cmb-td{width:80%;float:right}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:1px solid #e9e9e9}.cmb-type-group .cmb-remove-field-row,.cmb-type-group .cmb-repeat-group-field,.cmb2-postbox .cmb-remove-field-row,.cmb2-postbox .cmb-repeat-group-field{padding-top:1.8em}.js .cmb2-postbox.context-box .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.js .cmb2-postbox.context-box.closed .toggle-indicator:before{content:"\f140"}.cmb2-postbox.context-box{margin-bottom:10px}.cmb2-postbox.context-box.context-after_title-box,.cmb2-postbox.context-box.context-before_permalink-box{margin-top:10px}.cmb2-postbox.context-box.context-after_editor-box{margin-top:20px;margin-bottom:0}.cmb2-postbox.context-box.context-form_top-box{margin-top:10px}.cmb2-postbox.context-box.context-form_top-box .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.cmb2-postbox.context-box .hndle{cursor:auto}.cmb2-context-wrap{margin-top:10px}.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:300px;width:auto}.cmb2-context-wrap.cmb2-context-wrap-no-title .cmb2-metabox{padding:10px}.cmb2-context-wrap .cmb-th{padding:0 2% 0 0;width:18%}.cmb2-context-wrap .cmb-td{width:80%;padding:0}.cmb2-context-wrap .cmb-row{margin-bottom:10px}.cmb2-context-wrap .cmb-row:last-of-type{margin-bottom:0}.cmb2-options-page{max-width:1200px}.cmb2-options-page.wrap>h2{margin-bottom:1em}.cmb2-options-page .cmb2-metabox>.cmb-row{padding:1em;margin-top:-1px;background:#fff;border:1px solid #e9e9e9;box-shadow:0 1px 1px rgba(0,0,0,.05)}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th{padding:0;font-weight:initial}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{float:none;padding:0 0 0 1em;margin-left:200px}.cmb2-options-page .cmb2-wrap .cmb-type-title{margin-top:1em;padding:.6em 1em;background-color:#fafafa}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-title{font-size:12px;margin-top:0;margin-bottom:0;text-transform:uppercase}.cmb2-options-page .cmb2-wrap .cmb-type-title .cmb2-metabox-description{padding-top:.25em}.cmb2-options-page .cmb-repeatable-group .cmb-group-description .cmb-th{padding:0 0 .8em}.cmb2-options-page .cmb-repeatable-group .cmb-group-name{font-size:16px;margin-top:0;margin-bottom:0}.cmb2-options-page .cmb-repeatable-group .cmb-th>.cmb2-metabox-description{font-weight:400;padding-bottom:0!important}#poststuff .cmb-repeatable-group h2{margin:0}.edit-tags-php .cmb2-metabox-title,.profile-php .cmb2-metabox-title,.user-edit-php .cmb2-metabox-title{font-size:1.4em}.cmb2-no-box-wrap .cmb-spinner,.cmb2-postbox .cmb-spinner{float:left;display:none}.cmb-spinner{display:none}.cmb-spinner.is-active{display:block}#side-sortables .cmb2-wrap>.cmb-field-list>.cmb-row,.inner-sidebar .cmb2-wrap>.cmb-field-list>.cmb-row{padding:1.4em 0}#side-sortables .cmb2-wrap input[type=text]:not(.wp-color-picker),.inner-sidebar .cmb2-wrap input[type=text]:not(.wp-color-picker){width:100%}#side-sortables .cmb2-wrap input+input:not(.wp-picker-clear),#side-sortables .cmb2-wrap input+select,.inner-sidebar .cmb2-wrap input+input:not(.wp-picker-clear),.inner-sidebar .cmb2-wrap input+select{margin-left:0;margin-top:1em;display:block}#side-sortables .cmb2-wrap input.cmb2-text-money,.inner-sidebar .cmb2-wrap input.cmb2-text-money{max-width:70%}#side-sortables .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description,.inner-sidebar .cmb2-wrap input.cmb2-text-money+.cmb2-metabox-description{display:block}#side-sortables .cmb2-wrap label,.inner-sidebar .cmb2-wrap label{display:block;font-weight:700;padding:0 0 5px}#side-sortables textarea,.inner-sidebar textarea{max-width:99%}#side-sortables .cmb-repeatable-group,.inner-sidebar .cmb-repeatable-group{border-bottom:1px solid #e9e9e9}#side-sortables .cmb-type-group>.cmb-td>.cmb-repeatable-group,.inner-sidebar .cmb-type-group>.cmb-td>.cmb-repeatable-group{border-bottom:0;margin-bottom:-1.4em}#side-sortables .cmb-td:not(.cmb-remove-row),#side-sortables .cmb-th,#side-sortables .cmb-th+.cmb-td,.inner-sidebar .cmb-td:not(.cmb-remove-row),.inner-sidebar .cmb-th,.inner-sidebar .cmb-th+.cmb-td{width:100%;display:block;float:none}#side-sortables .closed .inside,.inner-sidebar .closed .inside{display:none}#side-sortables .cmb-th,.inner-sidebar .cmb-th{display:block;float:none;padding-bottom:1em;text-align:left;width:100%;padding-left:0;padding-right:0}#side-sortables .cmb-th label,.inner-sidebar .cmb-th label{display:block;margin-top:0;margin-bottom:.5em;font-size:14px;line-height:1.4em}#side-sortables .cmb-group-description .cmb-th,.inner-sidebar .cmb-group-description .cmb-th{padding-top:0}#side-sortables .cmb-group-description .cmb2-metabox-description,#side-sortables .cmb-group-title .cmb-th,.inner-sidebar .cmb-group-description .cmb2-metabox-description,.inner-sidebar .cmb-group-title .cmb-th{padding:0}#side-sortables .cmb-repeatable-grouping+.cmb-repeatable-grouping,.inner-sidebar .cmb-repeatable-grouping+.cmb-repeatable-grouping{margin-top:1em}#side-sortables .cmb2-media-status .embed-status img,#side-sortables .cmb2-media-status .img-status img,.inner-sidebar .cmb2-media-status .embed-status img,.inner-sidebar .cmb2-media-status .img-status img{max-width:90%;height:auto}#side-sortables .cmb2-list label,.inner-sidebar .cmb2-list label{display:inline;font-weight:400}#side-sortables .cmb2-metabox-description,.inner-sidebar .cmb2-metabox-description{display:block;padding:7px 0 0}#side-sortables .cmb-type-checkbox .cmb-td label,#side-sortables .cmb-type-checkbox .cmb2-metabox-description,.inner-sidebar .cmb-type-checkbox .cmb-td label,.inner-sidebar .cmb-type-checkbox .cmb2-metabox-description{font-weight:400;display:inline}#side-sortables .cmb-row .cmb2-metabox-description,.inner-sidebar .cmb-row .cmb2-metabox-description{padding-bottom:1.8em}#side-sortables .cmb2-metabox-title,.inner-sidebar .cmb2-metabox-title{font-size:1.2em;font-style:italic}#side-sortables .cmb-remove-row,.inner-sidebar .cmb-remove-row{clear:both;padding-top:12px;padding-bottom:0}#side-sortables .cmb2-upload-button,.inner-sidebar .cmb2-upload-button{clear:both;margin-top:12px}.cmb2-metabox .cmbhandle{color:#aaa;float:right;width:27px;height:30px;cursor:pointer;right:-1em;position:relative}.cmb2-metabox .cmbhandle:before{content:'\f142';right:12px;font:400 20px/1 dashicons;speak:none;display:inline-block;padding:8px 10px;top:0;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.cmb2-metabox .postbox.closed .cmbhandle:before{content:'\f140'}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row{-webkit-appearance:none!important;background:none!important;border:none!important;position:absolute;left:0;top:.5em;line-height:1em;padding:2px 6px 3px;opacity:.5}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]){cursor:pointer;color:#a00;opacity:1}.cmb2-metabox button.dashicons-before.dashicons-no-alt.cmb-remove-group-row:not([disabled]):hover{color:red}* html .cmb2-element.ui-helper-clearfix{height:1%}.cmb2-element .ui-datepicker,.cmb2-element.ui-datepicker{padding:0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;background-color:#fff;border:1px solid #dfdfdf;border-top:none;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.075);box-shadow:0 3px 6px rgba(0,0,0,.075);min-width:17em;width:auto}.cmb2-element .ui-datepicker *,.cmb2-element.ui-datepicker *{padding:0;font-family:"Open Sans",sans-serif;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.cmb2-element .ui-datepicker table,.cmb2-element.ui-datepicker table{font-size:13px;margin:0;border:none;border-collapse:collapse}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{border:none;color:#fff;font-weight:400}.cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover{background:0 0;border-color:transparent;cursor:pointer}.cmb2-element .ui-datepicker .ui-datepicker-title,.cmb2-element.ui-datepicker .ui-datepicker-title{margin:0;padding:10px 0;color:#fff;font-size:14px;line-height:14px;text-align:center}.cmb2-element .ui-datepicker .ui-datepicker-title select,.cmb2-element.ui-datepicker .ui-datepicker-title select{margin-top:-8px;margin-bottom:-8px}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-prev{position:relative;top:0;height:34px;width:34px}.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element .ui-datepicker .ui-state-hover.ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-next,.cmb2-element.ui-datepicker .ui-state-hover.ui-datepicker-prev{border:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover,.cmb2-element.ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover{left:0}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element .ui-datepicker .ui-datepicker-next-hover,.cmb2-element.ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next-hover{right:0}.cmb2-element .ui-datepicker .ui-datepicker-next span,.cmb2-element .ui-datepicker .ui-datepicker-prev span,.cmb2-element.ui-datepicker .ui-datepicker-next span,.cmb2-element.ui-datepicker .ui-datepicker-prev span{display:none}.cmb2-element .ui-datepicker .ui-datepicker-prev,.cmb2-element.ui-datepicker .ui-datepicker-prev{float:left}.cmb2-element .ui-datepicker .ui-datepicker-next,.cmb2-element.ui-datepicker .ui-datepicker-next{float:right}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{font:400 20px/34px dashicons;padding-left:7px;color:#fff;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:34px;height:34px}.cmb2-element .ui-datepicker .ui-datepicker-prev:before,.cmb2-element.ui-datepicker .ui-datepicker-prev:before{content:'\f341'}.cmb2-element .ui-datepicker .ui-datepicker-next:before,.cmb2-element.ui-datepicker .ui-datepicker-next:before{content:'\f345'}.cmb2-element .ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element .ui-datepicker .ui-datepicker-prev-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-next-hover:before,.cmb2-element.ui-datepicker .ui-datepicker-prev-hover:before{opacity:.7}.cmb2-element .ui-datepicker select.ui-datepicker-month,.cmb2-element .ui-datepicker select.ui-datepicker-year,.cmb2-element.ui-datepicker select.ui-datepicker-month,.cmb2-element.ui-datepicker select.ui-datepicker-year{width:33%;background:0 0;border-color:transparent;box-shadow:none;color:#fff}.cmb2-element .ui-datepicker select.ui-datepicker-month option,.cmb2-element .ui-datepicker select.ui-datepicker-year option,.cmb2-element.ui-datepicker select.ui-datepicker-month option,.cmb2-element.ui-datepicker select.ui-datepicker-year option{color:#333}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{color:#fff;font-weight:600}.cmb2-element .ui-datepicker thead th,.cmb2-element.ui-datepicker thead th{font-weight:400}.cmb2-element .ui-datepicker th,.cmb2-element.ui-datepicker th{padding:10px}.cmb2-element .ui-datepicker td,.cmb2-element.ui-datepicker td{padding:0;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-other-month,.cmb2-element.ui-datepicker td.ui-datepicker-other-month{border:transparent}.cmb2-element .ui-datepicker td.ui-datepicker-week-end,.cmb2-element.ui-datepicker td.ui-datepicker-week-end{background-color:#f4f4f4;border:1px solid #f4f4f4}.cmb2-element .ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-week-end.ui-datepicker-today{-webkit-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);-moz-box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 1px 0 rgba(0,0,0,.1)}.cmb2-element .ui-datepicker td.ui-datepicker-today,.cmb2-element.ui-datepicker td.ui-datepicker-today{background-color:#f0f0c0}.cmb2-element .ui-datepicker td.ui-datepicker-current-day,.cmb2-element.ui-datepicker td.ui-datepicker-current-day{background:#bd8}.cmb2-element .ui-datepicker td .ui-state-default,.cmb2-element.ui-datepicker td .ui-state-default{background:0 0;border:none;text-align:center;text-decoration:none;width:auto;display:block;padding:5px 10px;font-weight:400;color:#444}.cmb2-element .ui-datepicker td.ui-state-disabled .ui-state-default,.cmb2-element.ui-datepicker td.ui-state-disabled .ui-state-default{opacity:.5}.cmb2-element .ui-datepicker .ui-datepicker-header,.cmb2-element .ui-datepicker .ui-widget-header,.cmb2-element.ui-datepicker .ui-datepicker-header,.cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.cmb2-element .ui-datepicker thead,.cmb2-element.ui-datepicker thead{background:#32373c}.cmb2-element .ui-datepicker td .ui-state-active,.cmb2-element .ui-datepicker td .ui-state-hover,.cmb2-element.ui-datepicker td .ui-state-active,.cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.cmb2-element .ui-datepicker .ui-timepicker-div,.cmb2-element.ui-datepicker .ui-timepicker-div{font-size:14px}.cmb2-element .ui-datepicker .ui-timepicker-div dl,.cmb2-element.ui-datepicker .ui-timepicker-div dl{text-align:left;padding:0 .6em}.cmb2-element .ui-datepicker .ui-timepicker-div dl dt,.cmb2-element.ui-datepicker .ui-timepicker-div dl dt{float:left;clear:left;padding:0 0 0 5px}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd{margin:0 10px 10px 40%}.cmb2-element .ui-datepicker .ui-timepicker-div dl dd select,.cmb2-element.ui-datepicker .ui-timepicker-div dl dd select{width:100%}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane{padding:.6em;text-align:left}.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element .ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-primary,.cmb2-element.ui-datepicker .ui-timepicker-div+.ui-datepicker-buttonpane .button-secondary{padding:0 10px 1px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:0 .6em .4em .4em}.admin-color-fresh .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-fresh .cmb2-element.ui-datepicker .ui-widget-header{background:#00a0d2}.admin-color-fresh .cmb2-element .ui-datepicker thead,.admin-color-fresh .cmb2-element.ui-datepicker thead{background:#32373c}.admin-color-fresh .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-fresh .cmb2-element.ui-datepicker td .ui-state-hover{background:#0073aa;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-blue .cmb2-element.ui-datepicker .ui-widget-header{background:#52accc}.admin-color-blue .cmb2-element .ui-datepicker thead,.admin-color-blue .cmb2-element.ui-datepicker thead{background:#4796b3}.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-blue .cmb2-element.ui-datepicker td .ui-state-hover{background:#096484;color:#fff}.admin-color-blue .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-blue .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-coffee .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-coffee .cmb2-element.ui-datepicker .ui-widget-header{background:#59524c}.admin-color-coffee .cmb2-element .ui-datepicker thead,.admin-color-coffee .cmb2-element.ui-datepicker thead{background:#46403c}.admin-color-coffee .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-coffee .cmb2-element.ui-datepicker td .ui-state-hover{background:#c7a589;color:#fff}.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ectoplasm .cmb2-element.ui-datepicker .ui-widget-header{background:#523f6d}.admin-color-ectoplasm .cmb2-element .ui-datepicker thead,.admin-color-ectoplasm .cmb2-element.ui-datepicker thead{background:#413256}.admin-color-ectoplasm .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ectoplasm .cmb2-element.ui-datepicker td .ui-state-hover{background:#a3b745;color:#fff}.admin-color-midnight .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-midnight .cmb2-element.ui-datepicker .ui-widget-header{background:#363b3f}.admin-color-midnight .cmb2-element .ui-datepicker thead,.admin-color-midnight .cmb2-element.ui-datepicker thead{background:#26292c}.admin-color-midnight .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-midnight .cmb2-element.ui-datepicker td .ui-state-hover{background:#e14d43;color:#fff}.admin-color-ocean .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-ocean .cmb2-element.ui-datepicker .ui-widget-header{background:#738e96}.admin-color-ocean .cmb2-element .ui-datepicker thead,.admin-color-ocean .cmb2-element.ui-datepicker thead{background:#627c83}.admin-color-ocean .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-ocean .cmb2-element.ui-datepicker td .ui-state-hover{background:#9ebaa0;color:#fff}.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-datepicker-header .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker .ui-widget-header{background:#cf4944}.admin-color-sunrise .cmb2-element .ui-datepicker th,.admin-color-sunrise .cmb2-element.ui-datepicker th{border-color:#be3631;background:#be3631}.admin-color-sunrise .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-sunrise .cmb2-element.ui-datepicker td .ui-state-hover{background:#dd823b;color:#fff}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-light .cmb2-element.ui-datepicker .ui-widget-header{background:#e5e5e5}.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element .ui-datepicker select.ui-datepicker-year,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-month,.admin-color-light .cmb2-element.ui-datepicker select.ui-datepicker-year{color:#555}.admin-color-light .cmb2-element .ui-datepicker thead,.admin-color-light .cmb2-element.ui-datepicker thead{background:#888}.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element .ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-default,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-next:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-prev:before,.admin-color-light .cmb2-element.ui-datepicker .ui-datepicker-title,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-default{color:#555}.admin-color-light .cmb2-element .ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-active,.admin-color-light .cmb2-element.ui-datepicker td .ui-state-hover{background:#ccc}.admin-color-light .cmb2-element .ui-datepicker td.ui-datepicker-today,.admin-color-light .cmb2-element.ui-datepicker td.ui-datepicker-today{background:#eee}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker .ui-widget-header{background:#56b274}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker thead,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker thead{background:#36533f}.admin-color-bbp-evergreen .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-evergreen .cmb2-element.ui-datepicker td .ui-state-hover{background:#446950;color:#fff}.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element .ui-datepicker .ui-widget-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-datepicker-header,.admin-color-bbp-mint .cmb2-element.ui-datepicker .ui-widget-header{background:#4ca26a}.admin-color-bbp-mint .cmb2-element .ui-datepicker thead,.admin-color-bbp-mint .cmb2-element.ui-datepicker thead{background:#4f6d59}.admin-color-bbp-mint .cmb2-element .ui-datepicker td .ui-state-hover,.admin-color-bbp-mint .cmb2-element.ui-datepicker td .ui-state-hover{background:#5fb37c;color:#fff}@media only screen and (max-width:850px){.cmb2-context-wrap.cmb2-context-wrap-form_top{margin-right:0}}@media (max-width:450px){.cmb-th{font-size:1.2em;padding-bottom:1em;text-align:left}.cmb-th label{display:block;margin-top:0;margin-bottom:.5em}.cmb-td,.cmb-th,.cmb-th+.cmb-td{display:block;float:none;width:100%}.cmb-type-group .cmb-repeatable-group:not(:last-of-type),.cmb-type-group .cmb-row:not(:last-of-type),.cmb2-postbox .cmb-repeatable-group:not(:last-of-type),.cmb2-postbox .cmb-row:not(:last-of-type){border-bottom:0}.cmb2-options-page .cmb2-metabox>.cmb-row>.cmb-th+.cmb-td{padding:0;margin-left:0}}
vendor/CMB2/css/index.php CHANGED
@@ -1,2 +1,2 @@
1
  <?php
2
- // Silence is golden
1
  <?php
2
+ // Silence is golden
vendor/CMB2/images/index.php CHANGED
@@ -1,2 +1,2 @@
1
  <?php
2
- // Silence is golden
1
  <?php
2
+ // Silence is golden
vendor/CMB2/includes/CMB2.php CHANGED
@@ -4,9 +4,9 @@
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
- * @author WebDevStudios
8
  * @license GPL-2.0+
9
- * @link http://webdevstudios.com
10
  *
11
  * @property-read string $cmb_id
12
  * @property-read array $meta_box
@@ -14,10 +14,15 @@
14
  * @property-read bool $has_columns
15
  * @property-read array $tax_metaboxes_to_remove
16
  */
 
 
 
 
17
  class CMB2 extends CMB2_Base {
18
 
19
  /**
20
  * The object properties name.
 
21
  * @var string
22
  * @since 2.2.3
23
  */
@@ -25,6 +30,7 @@ class CMB2 extends CMB2_Base {
25
 
26
  /**
27
  * Metabox Config array
 
28
  * @var array
29
  * @since 0.9.0
30
  */
@@ -32,6 +38,7 @@ class CMB2 extends CMB2_Base {
32
 
33
  /**
34
  * Type of object registered for metabox. (e.g., post, user, or comment)
 
35
  * @var string
36
  * @since 1.0.0
37
  */
@@ -39,6 +46,7 @@ class CMB2 extends CMB2_Base {
39
 
40
  /**
41
  * List of fields that are changed/updated on save
 
42
  * @var array
43
  * @since 1.1.0
44
  */
@@ -46,42 +54,78 @@ class CMB2 extends CMB2_Base {
46
 
47
  /**
48
  * Metabox Defaults
 
49
  * @var array
50
  * @since 1.0.1
51
  */
52
  protected $mb_defaults = array(
53
  'id' => '',
54
  'title' => '',
55
- // Post type slug, or 'user', 'term', 'comment', or 'options-page'
56
  'object_types' => array(),
 
57
  /*
58
- * The context within the screen where the boxes should display. Available contexts vary
59
- * from screen to screen. Post edit screen contexts include 'normal', 'side', and 'advanced'.
60
- *
61
- * For placement in locations outside of a metabox, other options include:
62
- * 'form_top', 'before_permalink', 'after_title', 'after_editor'
63
- *
64
- * Comments screen contexts include 'normal' and 'side'. Default is 'normal'.
65
  */
66
  'context' => 'normal',
67
  'priority' => 'high',
68
- 'show_names' => true, // Show field names on the left
69
  'show_on_cb' => null, // Callback to determine if metabox should display.
70
- 'show_on' => array(), // Post IDs or page templates to display this metabox. overrides 'show_on_cb'
71
- 'cmb_styles' => true, // Include CMB2 stylesheet
72
- 'enqueue_js' => true, // Include CMB2 JS
73
  'fields' => array(),
 
 
 
 
 
74
  'hookup' => true,
75
- 'save_fields' => true, // Will not save during hookup if false
76
- 'closed' => false, // Default to metabox being closed?
77
  'taxonomies' => array(),
78
- 'new_user_section' => 'add-new-user', // or 'add-existing-user'
79
  'new_term_section' => true,
80
  'show_in_rest' => false,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  );
82
 
83
  /**
84
  * Metabox field objects
 
85
  * @var array
86
  * @since 2.0.3
87
  */
@@ -89,6 +133,7 @@ class CMB2 extends CMB2_Base {
89
 
90
  /**
91
  * An array of hidden fields to output at the end of the form
 
92
  * @var array
93
  * @since 2.0.0
94
  */
@@ -96,6 +141,7 @@ class CMB2 extends CMB2_Base {
96
 
97
  /**
98
  * Array of key => value data for saving. Likely $_POST data.
 
99
  * @var string
100
  * @since 2.0.0
101
  */
@@ -103,6 +149,7 @@ class CMB2 extends CMB2_Base {
103
 
104
  /**
105
  * Whether there are fields to be shown in columns. Set in CMB2::add_field().
 
106
  * @var bool
107
  * @since 2.2.2
108
  */
@@ -110,6 +157,7 @@ class CMB2 extends CMB2_Base {
110
 
111
  /**
112
  * If taxonomy field is requesting to remove_default, we store the taxonomy here.
 
113
  * @var array
114
  * @since 2.2.3
115
  */
@@ -117,9 +165,10 @@ class CMB2 extends CMB2_Base {
117
 
118
  /**
119
  * Get started
 
120
  * @since 0.4.0
121
- * @param array $config Metabox config array
122
- * @param integer $object_id Optional object id
123
  */
124
  public function __construct( $config, $object_id = 0 ) {
125
 
@@ -127,12 +176,19 @@ class CMB2 extends CMB2_Base {
127
  wp_die( esc_html__( 'Metabox configuration is required to have an ID parameter.', 'cmb2' ) );
128
  }
129
 
 
130
  $this->meta_box = wp_parse_args( $config, $this->mb_defaults );
131
  $this->meta_box['fields'] = array();
132
 
 
 
133
  $this->object_id( $object_id );
 
 
 
 
 
134
  $this->mb_object_type();
135
- $this->cmb_id = $config['id'];
136
 
137
  if ( ! empty( $config['fields'] ) && is_array( $config['fields'] ) ) {
138
  $this->add_fields( $config['fields'] );
@@ -148,13 +204,22 @@ class CMB2 extends CMB2_Base {
148
  * @param array $cmb This CMB2 object
149
  */
150
  do_action( "cmb2_init_{$this->cmb_id}", $this );
 
 
 
 
 
 
151
  }
152
 
153
  /**
154
  * Loops through and displays fields
 
155
  * @since 1.0.0
156
- * @param int $object_id Object ID
157
- * @param string $object_type Type of object being saved. (e.g., post, user, or comment)
 
 
158
  */
159
  public function show_form( $object_id = 0, $object_type = '' ) {
160
  $this->render_form_open( $object_id, $object_type );
@@ -163,16 +228,18 @@ class CMB2 extends CMB2_Base {
163
  $this->render_field( $field_args );
164
  }
165
 
166
- $this->render_form_close( $object_id, $object_type );
167
  }
168
 
169
  /**
170
  * Outputs the opening form markup and runs corresponding hooks:
171
  * 'cmb2_before_form' and "cmb2_before_{$object_type}_form_{$this->cmb_id}"
 
172
  * @since 2.2.0
173
- * @param integer $object_id Object ID
174
- * @param string $object_type Object type
175
- * @return void
 
176
  */
177
  public function render_form_open( $object_id = 0, $object_type = '' ) {
178
  $object_type = $this->object_type( $object_type );
@@ -185,12 +252,12 @@ class CMB2 extends CMB2_Base {
185
  /**
186
  * Hook before form table begins
187
  *
188
- * @param array $cmb_id The current box ID
189
- * @param int $object_id The ID of the current object
190
  * @param string $object_type The type of object you are working with.
191
  * Usually `post` (this applies to all post-types).
192
  * Could also be `comment`, `user` or `options-page`.
193
- * @param array $cmb This CMB2 object
194
  */
195
  do_action( 'cmb2_before_form', $this->cmb_id, $object_id, $object_type, $this );
196
 
@@ -209,8 +276,9 @@ class CMB2 extends CMB2_Base {
209
  */
210
  do_action( "cmb2_before_{$object_type}_form_{$this->cmb_id}", $object_id, $this );
211
 
212
- echo '<div class="', $this->box_classes(), '"><div id="cmb2-metabox-', sanitize_html_class( $this->cmb_id ), '" class="cmb2-metabox cmb-field-list">';
213
 
 
214
  }
215
 
216
  /**
@@ -282,10 +350,12 @@ class CMB2 extends CMB2_Base {
282
  /**
283
  * Outputs the closing form markup and runs corresponding hooks:
284
  * 'cmb2_after_form' and "cmb2_after_{$object_type}_form_{$this->cmb_id}"
 
285
  * @since 2.2.0
286
- * @param integer $object_id Object ID
287
- * @param string $object_type Object type
288
- * @return void
 
289
  */
290
  public function render_form_close( $object_id = 0, $object_type = '' ) {
291
  $object_type = $this->object_type( $object_type );
@@ -295,18 +365,6 @@ class CMB2 extends CMB2_Base {
295
 
296
  $this->render_hidden_fields();
297
 
298
- /**
299
- * Hook after form form has been rendered
300
- *
301
- * @param array $cmb_id The current box ID
302
- * @param int $object_id The ID of the current object
303
- * @param string $object_type The type of object you are working with.
304
- * Usually `post` (this applies to all post-types).
305
- * Could also be `comment`, `user` or `options-page`.
306
- * @param array $cmb This CMB2 object
307
- */
308
- do_action( 'cmb2_after_form', $this->cmb_id, $object_id, $object_type, $this );
309
-
310
  /**
311
  * Hook after form form has been rendered
312
  *
@@ -321,12 +379,26 @@ class CMB2 extends CMB2_Base {
321
  */
322
  do_action( "cmb2_after_{$object_type}_form_{$this->cmb_id}", $object_id, $this );
323
 
 
 
 
 
 
 
 
 
 
 
 
 
324
  echo "\n<!-- End CMB2 Fields -->\n";
325
 
 
326
  }
327
 
328
  /**
329
  * Renders a field based on the field type
 
330
  * @since 2.2.0
331
  * @param array $field_args A field configuration array.
332
  * @return mixed CMB2_Field object if successful.
@@ -334,22 +406,22 @@ class CMB2 extends CMB2_Base {
334
  public function render_field( $field_args ) {
335
  $field_args['context'] = $this->prop( 'context' );
336
 
337
- if ( 'group' == $field_args['type'] ) {
338
 
339
  if ( ! isset( $field_args['show_names'] ) ) {
340
  $field_args['show_names'] = $this->prop( 'show_names' );
341
  }
342
  $field = $this->render_group( $field_args );
343
 
344
- } elseif ( 'hidden' == $field_args['type'] && $this->get_field( $field_args )->should_show() ) {
345
- // Save rendering for after the metabox
346
  $field = $this->add_hidden_field( $field_args );
347
 
348
  } else {
349
 
350
  $field_args['show_names'] = $this->prop( 'show_names' );
351
 
352
- // Render default fields
353
  $field = $this->get_field( $field_args )->render_field();
354
  }
355
 
@@ -357,56 +429,80 @@ class CMB2 extends CMB2_Base {
357
  }
358
 
359
  /**
360
- * Render a repeatable group.
361
- * @param array $args Array of field arguments for a group field parent.
 
362
  * @return CMB2_Field|null Group field object.
363
  */
364
  public function render_group( $args ) {
 
365
 
366
- if ( ! isset( $args['id'], $args['fields'] ) || ! is_array( $args['fields'] ) ) {
 
 
 
 
 
 
367
  return;
368
  }
369
 
370
- $field_group = $this->get_field( $args );
 
371
 
372
- // If field is requesting to be conditionally shown
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
373
  if ( ! $field_group || ! $field_group->should_show() ) {
374
  return;
375
  }
376
 
377
- $desc = $field_group->args( 'description' );
378
- $label = $field_group->args( 'name' );
379
- $group_val = (array) $field_group->value();
380
- $remove_disabled = count( $group_val ) <= 1 ? 'disabled="disabled" ' : '';
381
  $field_group->index = 0;
382
 
383
  $field_group->peform_param_callback( 'before_group' );
384
 
385
- echo '<div class="cmb-row cmb-repeat-group-wrap ', $field_group->row_classes(), '" data-fieldtype="group"><div class="cmb-td"><div data-groupid="', $field_group->id(), '" id="', $field_group->id(), '_repeat" ', $this->group_wrap_attributes( $field_group ), '>';
 
 
 
 
386
 
387
  if ( $desc || $label ) {
388
  $class = $desc ? ' cmb-group-description' : '';
389
  echo '<div class="cmb-row', $class, '"><div class="cmb-th">';
390
- if ( $label ) {
391
- echo '<h2 class="cmb-group-name">', $label, '</h2>';
392
- }
393
- if ( $desc ) {
394
- echo '<p class="cmb2-metabox-description">', $desc, '</p>';
395
- }
396
  echo '</div></div>';
397
  }
398
 
399
  if ( ! empty( $group_val ) ) {
400
  foreach ( $group_val as $group_key => $field_id ) {
401
- $this->render_group_row( $field_group, $remove_disabled );
402
  $field_group->index++;
403
  }
404
  } else {
405
- $this->render_group_row( $field_group, $remove_disabled );
406
  }
407
 
408
  if ( $field_group->args( 'repeatable' ) ) {
409
- echo '<div class="cmb-row"><div class="cmb-td"><p class="cmb-add-row"><button type="button" data-selector="', $field_group->id(), '_repeat" data-grouptitle="', $field_group->options( 'group_title' ), '" class="cmb-add-group-row button">', $field_group->options( 'add_button' ), '</button></p></div></div>';
410
  }
411
 
412
  echo '</div></div></div>';
@@ -418,6 +514,7 @@ class CMB2 extends CMB2_Base {
418
 
419
  /**
420
  * Get the group wrap attributes, which are passed through a filter.
 
421
  * @since 2.2.3
422
  * @param CMB2_Field $field_group The group CMB2_Field object.
423
  * @return string The attributes string.
@@ -445,16 +542,27 @@ class CMB2 extends CMB2_Base {
445
  */
446
  $group_wrap_attributes = apply_filters( 'cmb2_group_wrap_attributes', $group_wrap_attributes, $field_group );
447
 
448
- return CMB2_Utils::concat_attrs( $group_wrap_attributes );
 
 
 
 
 
 
 
 
 
449
  }
450
 
451
  /**
452
  * Render a repeatable group row
 
453
  * @since 1.0.2
454
- * @param CMB2_Field $field_group CMB2_Field group field object
455
- * @param string $remove_disabled Attribute string to disable the remove button
 
456
  */
457
- public function render_group_row( $field_group, $remove_disabled ) {
458
 
459
  $field_group->peform_param_callback( 'before_group_row' );
460
  $closed_class = $field_group->options( 'closed' ) ? ' closed' : '';
@@ -462,52 +570,55 @@ class CMB2 extends CMB2_Base {
462
  echo '
463
  <div class="postbox cmb-row cmb-repeatable-grouping', $closed_class, '" data-iterator="', $field_group->index, '">';
464
 
465
- if ( $field_group->args( 'repeatable' ) ) {
466
- echo '<button type="button" ', $remove_disabled, 'data-selector="', $field_group->id(), '_repeat" class="dashicons-before dashicons-no-alt cmb-remove-group-row" title="', esc_attr( $field_group->options( 'remove_button' ) ), '"></button>';
467
- }
468
 
469
  echo '
470
  <div class="cmbhandle" title="' , esc_attr__( 'Click to toggle', 'cmb2' ), '"><br></div>
471
  <h3 class="cmb-group-title cmbhandle-title"><span>', $field_group->replace_hash( $field_group->options( 'group_title' ) ), '</span></h3>
472
 
473
  <div class="inside cmb-td cmb-nested cmb-field-list">';
474
- // Loop and render repeatable group fields
475
- foreach ( array_values( $field_group->args( 'fields' ) ) as $field_args ) {
476
- if ( 'hidden' == $field_args['type'] ) {
477
 
478
- // Save rendering for after the metabox
479
- $this->add_hidden_field( $field_args, $field_group );
480
 
481
- } else {
482
 
483
- $field_args['show_names'] = $field_group->args( 'show_names' );
484
- $field_args['context'] = $field_group->args( 'context' );
485
 
486
- $field = $this->get_field( $field_args, $field_group )->render_field();
487
- }
488
- }
489
- if ( $field_group->args( 'repeatable' ) ) {
490
- echo '
491
  <div class="cmb-row cmb-remove-field-row">
492
  <div class="cmb-remove-row">
493
- <button type="button" ', $remove_disabled, 'data-selector="', $field_group->id(), '_repeat" class="button cmb-remove-group-row alignright">', $field_group->options( 'remove_button' ), '</button>
494
  </div>
495
  </div>
496
  ';
497
- }
498
  echo '
499
  </div>
500
  </div>
501
  ';
502
 
503
  $field_group->peform_param_callback( 'after_group_row' );
 
 
504
  }
505
 
506
  /**
507
  * Add a hidden field to the list of hidden fields to be rendered later
 
508
  * @since 2.0.0
509
- * @param array $field_args Array of field arguments to be passed to CMB2_Field
510
- * @param CMB2_Field|null $field_group CMB2_Field group field object
511
  */
512
  public function add_hidden_field( $field_args, $field_group = null ) {
513
  if ( isset( $field_args['field_args'] ) ) {
@@ -530,7 +641,10 @@ class CMB2 extends CMB2_Base {
530
 
531
  /**
532
  * Loop through and output hidden fields
 
533
  * @since 2.0.0
 
 
534
  */
535
  public function render_hidden_fields() {
536
  if ( ! empty( $this->hidden_fields ) ) {
@@ -538,39 +652,42 @@ class CMB2 extends CMB2_Base {
538
  $hidden->render();
539
  }
540
  }
 
 
541
  }
542
 
543
  /**
544
  * Returns array of sanitized field values (without saving them)
 
545
  * @since 2.0.3
546
- * @param array $data_to_sanitize Array of field_id => value data for sanitizing (likely $_POST data).
547
  */
548
  public function get_sanitized_values( array $data_to_sanitize ) {
549
  $this->data_to_save = $data_to_sanitize;
550
  $stored_id = $this->object_id();
551
 
552
- // We do this So CMB will sanitize our data for us, but not save it
553
  $this->object_id( '_' );
554
 
555
- // Ensure temp. data store is empty
556
  cmb2_options( 0 )->set();
557
 
558
  // We want to get any taxonomy values back.
559
  add_filter( "cmb2_return_taxonomy_values_{$this->cmb_id}", '__return_true' );
560
 
561
- // Process/save fields
562
  $this->process_fields();
563
 
564
  // Put things back the way they were.
565
  remove_filter( "cmb2_return_taxonomy_values_{$this->cmb_id}", '__return_true' );
566
 
567
- // Get data from temp. data store
568
  $sanitized_values = cmb2_options( 0 )->get_options();
569
 
570
- // Empty out temp. data store again
571
  cmb2_options( 0 )->set();
572
 
573
- // Reset the object id
574
  $this->object_id( $stored_id );
575
 
576
  return $sanitized_values;
@@ -578,51 +695,62 @@ class CMB2 extends CMB2_Base {
578
 
579
  /**
580
  * Loops through and saves field data
 
581
  * @since 1.0.0
582
- * @param int $object_id Object ID
583
- * @param string $object_type Type of object being saved. (e.g., post, user, or comment)
584
  * @param array $data_to_save Array of key => value data for saving. Likely $_POST data.
 
 
585
  */
586
  public function save_fields( $object_id = 0, $object_type = '', $data_to_save = array() ) {
587
 
588
- // Fall-back to $_POST data
589
  $this->data_to_save = ! empty( $data_to_save ) ? $data_to_save : $_POST;
590
  $object_id = $this->object_id( $object_id );
591
  $object_type = $this->object_type( $object_type );
592
 
593
  $this->process_fields();
594
 
595
- // If options page, save the updated options
596
- if ( 'options-page' == $object_type ) {
597
  cmb2_options( $object_id )->set();
598
  }
599
 
600
- $this->after_save();
601
  }
602
 
603
  /**
604
  * Process and save form fields
 
605
  * @since 2.0.0
 
 
606
  */
607
  public function process_fields() {
608
 
609
  $this->pre_process();
610
 
611
- // Remove the show_on properties so saving works
612
  $this->prop( 'show_on', array() );
613
 
614
- // save field ids of those that are updated
615
  $this->updated = array();
616
 
617
  foreach ( $this->prop( 'fields' ) as $field_args ) {
618
  $this->process_field( $field_args );
619
  }
 
 
620
  }
621
 
622
  /**
623
  * Process and save a field
 
624
  * @since 2.0.0
625
- * @param array $field_args Array of field arguments
 
 
626
  */
627
  public function process_field( $field_args ) {
628
 
@@ -636,7 +764,7 @@ class CMB2 extends CMB2_Base {
636
  break;
637
 
638
  case 'title':
639
- // Don't process title fields
640
  break;
641
 
642
  default:
@@ -650,8 +778,16 @@ class CMB2 extends CMB2_Base {
650
  break;
651
  }
652
 
 
653
  }
654
 
 
 
 
 
 
 
 
655
  public function pre_process() {
656
  /**
657
  * Fires before fields have been processed/saved.
@@ -666,8 +802,18 @@ class CMB2 extends CMB2_Base {
666
  * @param int $object_id The ID of the current object
667
  */
668
  do_action( "cmb2_{$this->object_type()}_process_fields_{$this->cmb_id}", $this, $this->object_id() );
 
 
669
  }
670
 
 
 
 
 
 
 
 
 
671
  public function after_save() {
672
  $object_type = $this->object_type();
673
  $object_id = $this->object_id();
@@ -702,13 +848,16 @@ class CMB2 extends CMB2_Base {
702
  * @param array $cmb This CMB2 object
703
  */
704
  do_action( "cmb2_save_{$object_type}_fields_{$this->cmb_id}", $object_id, $this->updated, $this );
 
 
705
  }
706
 
707
  /**
708
  * Save a repeatable group
 
709
  * @since 1.x.x
710
- * @param array $args Field arguments array
711
- * @return mixed Return of CMB2_Field::update_data()
712
  */
713
  public function save_group( $args ) {
714
  if ( ! isset( $args['id'], $args['fields'] ) || ! is_array( $args['fields'] ) ) {
@@ -720,9 +869,10 @@ class CMB2 extends CMB2_Base {
720
 
721
  /**
722
  * Save a repeatable group
 
723
  * @since 1.x.x
724
- * @param CMB2_Field $field_group CMB2_Field group field object
725
- * @return mixed Return of CMB2_Field::update_data()
726
  */
727
  public function save_group_field( $field_group ) {
728
  $base_id = $field_group->id();
@@ -732,7 +882,7 @@ class CMB2 extends CMB2_Base {
732
  }
733
 
734
  $old = $field_group->get_data();
735
- // Check if group field has sanitization_cb
736
  $group_vals = $field_group->sanitization_cb( $this->data_to_save[ $base_id ] );
737
  $saved = array();
738
 
@@ -741,7 +891,7 @@ class CMB2 extends CMB2_Base {
741
 
742
  foreach ( array_values( $field_group->fields() ) as $field_args ) {
743
  if ( 'title' === $field_args['type'] ) {
744
- // Don't process title fields
745
  continue;
746
  }
747
 
@@ -750,33 +900,33 @@ class CMB2 extends CMB2_Base {
750
 
751
  foreach ( (array) $group_vals as $field_group->index => $post_vals ) {
752
 
753
- // Get value
754
  $new_val = isset( $group_vals[ $field_group->index ][ $sub_id ] )
755
  ? $group_vals[ $field_group->index ][ $sub_id ]
756
  : false;
757
 
758
- // Sanitize
759
  $new_val = $field->sanitization_cb( $new_val );
760
 
761
  if ( is_array( $new_val ) && $field->args( 'has_supporting_data' ) ) {
762
  if ( $field->args( 'repeatable' ) ) {
763
  $_new_val = array();
764
  foreach ( $new_val as $group_index => $grouped_data ) {
765
- // Add the supporting data to the $saved array stack
766
  $saved[ $field_group->index ][ $grouped_data['supporting_field_id'] ][] = $grouped_data['supporting_field_value'];
767
- // Reset var to the actual value
768
  $_new_val[ $group_index ] = $grouped_data['value'];
769
  }
770
  $new_val = $_new_val;
771
  } else {
772
- // Add the supporting data to the $saved array stack
773
  $saved[ $field_group->index ][ $new_val['supporting_field_id'] ] = $new_val['supporting_field_value'];
774
- // Reset var to the actual value
775
  $new_val = $new_val['value'];
776
  }
777
  }
778
 
779
- // Get old value
780
  $old_val = is_array( $old ) && isset( $old[ $field_group->index ][ $sub_id ] )
781
  ? $old[ $field_group->index ][ $sub_id ]
782
  : false;
@@ -784,18 +934,18 @@ class CMB2 extends CMB2_Base {
784
  $is_updated = ( ! CMB2_Utils::isempty( $new_val ) && $new_val !== $old_val );
785
  $is_removed = ( CMB2_Utils::isempty( $new_val ) && ! CMB2_Utils::isempty( $old_val ) );
786
 
787
- // Compare values and add to `$updated` array
788
  if ( $is_updated || $is_removed ) {
789
  $this->updated[] = $base_id . '::' . $field_group->index . '::' . $sub_id;
790
  }
791
 
792
- // Add to `$saved` array
793
  $saved[ $field_group->index ][ $sub_id ] = $new_val;
794
 
795
- }
796
 
797
  $saved[ $field_group->index ] = CMB2_Utils::filter_empty( $saved[ $field_group->index ] );
798
- }
799
 
800
  $saved = CMB2_Utils::filter_empty( $saved );
801
 
@@ -804,9 +954,10 @@ class CMB2 extends CMB2_Base {
804
 
805
  /**
806
  * Get object id from global space if no id is provided
 
807
  * @since 1.0.0
808
- * @param integer $object_id Object ID
809
- * @return integer $object_id Object ID
810
  */
811
  public function object_id( $object_id = 0 ) {
812
  global $pagenow;
@@ -820,29 +971,36 @@ class CMB2 extends CMB2_Base {
820
  return $this->object_id;
821
  }
822
 
823
- // Try to get our object ID from the global space
824
  switch ( $this->object_type() ) {
825
  case 'user':
826
- $object_id = isset( $_REQUEST['user_id'] ) ? $_REQUEST['user_id'] : $object_id;
827
- $object_id = ! $object_id && 'user-new.php' != $pagenow && isset( $GLOBALS['user_ID'] ) ? $GLOBALS['user_ID'] : $object_id;
828
  break;
829
 
830
  case 'comment':
831
- $object_id = isset( $_REQUEST['c'] ) ? $_REQUEST['c'] : $object_id;
832
  $object_id = ! $object_id && isset( $GLOBALS['comments']->comment_ID ) ? $GLOBALS['comments']->comment_ID : $object_id;
833
  break;
834
 
835
  case 'term':
836
- $object_id = isset( $_REQUEST['tag_ID'] ) ? $_REQUEST['tag_ID'] : $object_id;
 
 
 
 
 
 
 
837
  break;
838
 
839
  default:
840
  $object_id = isset( $GLOBALS['post']->ID ) ? $GLOBALS['post']->ID : $object_id;
841
- $object_id = isset( $_REQUEST['post'] ) ? $_REQUEST['post'] : $object_id;
842
  break;
843
  }
844
 
845
- // reset to id or 0
846
  $this->object_id = $object_id ? $object_id : 0;
847
 
848
  return $this->object_id;
@@ -850,8 +1008,9 @@ class CMB2 extends CMB2_Base {
850
 
851
  /**
852
  * Sets the $object_type based on metabox settings
 
853
  * @since 1.0.0
854
- * @return string Object type
855
  */
856
  public function mb_object_type() {
857
  if ( null !== $this->mb_object_type ) {
@@ -867,7 +1026,7 @@ class CMB2 extends CMB2_Base {
867
 
868
  $type = '';
869
 
870
- // if it's an array of one, extract it
871
  if ( 1 === count( $registered_types ) ) {
872
  $last = end( $registered_types );
873
  if ( is_string( $last ) ) {
@@ -877,7 +1036,7 @@ class CMB2 extends CMB2_Base {
877
  $type = $curr_type;
878
  }
879
 
880
- // Get our object type
881
  switch ( $type ) {
882
 
883
  case 'user':
@@ -896,26 +1055,160 @@ class CMB2 extends CMB2_Base {
896
 
897
  /**
898
  * Gets the box 'object_types' array based on box settings.
 
899
  * @since 2.2.3
900
- * @return array Object types
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
901
  */
902
- public function box_types() {
903
- return CMB2_Utils::ensure_array( $this->prop( 'object_types' ), array( 'post' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
904
  }
905
 
906
  /**
907
  * Determines if metabox is for an options page
 
908
  * @since 1.0.1
909
- * @return boolean True/False
910
  */
911
  public function is_options_page_mb() {
912
- return ( isset( $this->meta_box['show_on']['key'] ) && 'options-page' === $this->meta_box['show_on']['key'] || array_key_exists( 'options-page', $this->meta_box['show_on'] ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
913
  }
914
 
915
  /**
916
  * Returns the object type
 
917
  * @since 1.0.0
918
- * @return string Object type
 
919
  */
920
  public function object_type( $object_type = '' ) {
921
  if ( $object_type ) {
@@ -934,6 +1227,7 @@ class CMB2 extends CMB2_Base {
934
 
935
  /**
936
  * Get the object type for the current page, based on the $pagenow global.
 
937
  * @since 2.2.2
938
  * @return string Page object type name.
939
  */
@@ -957,15 +1251,23 @@ class CMB2 extends CMB2_Base {
957
  $type = 'term';
958
  }
959
 
 
 
 
 
 
 
 
960
  return $type;
961
  }
962
 
963
  /**
964
  * Set metabox property.
 
965
  * @since 2.2.2
966
- * @param string $property Metabox config property to retrieve
967
- * @param mixed $value Value to set if no value found
968
- * @return mixed Metabox config property value or false
969
  */
970
  public function set_prop( $property, $value ) {
971
  $this->meta_box[ $property ] = $value;
@@ -975,10 +1277,11 @@ class CMB2 extends CMB2_Base {
975
 
976
  /**
977
  * Get metabox property and optionally set a fallback
 
978
  * @since 2.0.0
979
- * @param string $property Metabox config property to retrieve
980
- * @param mixed $fallback Fallback value to set if no value found
981
- * @return mixed Metabox config property value or false
982
  */
983
  public function prop( $property, $fallback = null ) {
984
  if ( array_key_exists( $property, $this->meta_box ) ) {
@@ -990,12 +1293,16 @@ class CMB2 extends CMB2_Base {
990
 
991
  /**
992
  * Get a field object
 
993
  * @since 2.0.3
994
- * @param string|array|CMB2_Field $field Metabox field id or field config array or CMB2_Field object
995
- * @param CMB2_Field|null $field_group (optional) CMB2_Field object (group parent)
996
- * @return CMB2_Field|false CMB2_Field object (or false)
 
 
 
997
  */
998
- public function get_field( $field, $field_group = null ) {
999
  if ( $field instanceof CMB2_Field ) {
1000
  return $field;
1001
  }
@@ -1012,7 +1319,8 @@ class CMB2 extends CMB2_Base {
1012
  list( $field_id, $sub_field_id ) = $ids;
1013
 
1014
  $index = implode( '', $ids ) . ( $field_group ? $field_group->index : '' );
1015
- if ( array_key_exists( $index, $this->fields ) ) {
 
1016
  return $this->fields[ $index ];
1017
  }
1018
 
@@ -1023,19 +1331,20 @@ class CMB2 extends CMB2_Base {
1023
 
1024
  /**
1025
  * Handles determining which type of arguments to pass to CMB2_Field
 
1026
  * @since 2.0.7
1027
- * @param mixed $field_id Field (or group field) ID
1028
- * @param mixed $field_args Array of field arguments
1029
- * @param mixed $sub_field_id Sub field ID (if field_group exists)
1030
- * @param CMB2_Field|null $field_group If a sub-field, will be the parent group CMB2_Field object
1031
- * @return array Array of CMB2_Field arguments
1032
  */
1033
  public function get_field_args( $field_id, $field_args, $sub_field_id, $field_group ) {
1034
 
1035
- // Check if group is passed and if fields were added in the old-school fields array
1036
  if ( $field_group && ( $sub_field_id || 0 === $sub_field_id ) ) {
1037
 
1038
- // Update the fields array w/ any modified properties inherited from the group field
1039
  $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ] = $field_args;
1040
 
1041
  return $this->get_default_args( $field_args, $field_group );
@@ -1050,9 +1359,10 @@ class CMB2 extends CMB2_Base {
1050
 
1051
  /**
1052
  * Get default field arguments specific to this CMB2 object.
 
1053
  * @since 2.2.0
1054
  * @param array $field_args Metabox field config array.
1055
- * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent)
1056
  * @return array Array of field arguments.
1057
  */
1058
  protected function get_default_args( $field_args, $field_group = null ) {
@@ -1073,22 +1383,14 @@ class CMB2 extends CMB2_Base {
1073
  return $args;
1074
  }
1075
 
1076
- /**
1077
- * Get a new field object specific to this CMB2 object.
1078
- * @since 2.2.0
1079
- * @param array $field_args Metabox field config array.
1080
- * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent)
1081
- * @return CMB2_Field CMB2_Field object
1082
- */
1083
- protected function get_new_field( $field_args, $field_group = null ) {
1084
- return new CMB2_Field( $this->get_default_args( $field_args, $field_group ) );
1085
- }
1086
-
1087
  /**
1088
  * When fields are added in the old-school way, intitate them as they should be
 
1089
  * @since 2.1.0
1090
- * @param array $fields Array of fields to add
1091
- * @param mixed $parent_field_id Parent field id or null
 
 
1092
  */
1093
  protected function add_fields( $fields, $parent_field_id = null ) {
1094
  foreach ( $fields as $field ) {
@@ -1107,14 +1409,17 @@ class CMB2 extends CMB2_Base {
1107
  $this->add_fields( $sub_fields, $field_id );
1108
  }
1109
  }
 
 
1110
  }
1111
 
1112
  /**
1113
  * Add a field to the metabox
 
1114
  * @since 2.0.0
1115
- * @param array $field Metabox field config array
1116
- * @param int $position (optional) Position of metabox. 1 for first, etc
1117
- * @return string|false Field id or false
1118
  */
1119
  public function add_field( array $field, $position = 0 ) {
1120
  if ( ! is_array( $field ) || ! array_key_exists( 'id', $field ) ) {
@@ -1126,15 +1431,27 @@ class CMB2 extends CMB2_Base {
1126
  case 'file':
1127
  case 'file_list':
1128
 
1129
- // Initiate attachment JS hooks
1130
  add_filter( 'wp_prepare_attachment_for_js', array( 'CMB2_Type_File_Base', 'prepare_image_sizes_for_js' ), 10, 3 );
1131
  break;
1132
 
1133
  case 'oembed':
1134
 
1135
- // Initiate oembed Ajax hooks
1136
  cmb2_ajax();
1137
  break;
 
 
 
 
 
 
 
 
 
 
 
 
1138
  }
1139
 
1140
  if ( isset( $field['column'] ) && false !== $field['column'] ) {
@@ -1156,8 +1473,9 @@ class CMB2 extends CMB2_Base {
1156
 
1157
  /**
1158
  * Defines a field's column if requesting to be show in admin columns.
 
1159
  * @since 2.2.3
1160
- * @param array $field Metabox field config array.
1161
  * @return array Modified metabox field config array.
1162
  */
1163
  protected function define_field_column( array $field ) {
@@ -1175,11 +1493,12 @@ class CMB2 extends CMB2_Base {
1175
 
1176
  /**
1177
  * Add a field to a group
 
1178
  * @since 2.0.0
1179
- * @param string $parent_field_id The field id of the group field to add the field
1180
- * @param array $field Metabox field config array
1181
- * @param int $position (optional) Position of metabox. 1 for first, etc
1182
- * @return mixed Array of parent/field ids or false
1183
  */
1184
  public function add_group_field( $parent_field_id, array $field, $position = 0 ) {
1185
  if ( ! array_key_exists( $parent_field_id, $this->meta_box['fields'] ) ) {
@@ -1207,10 +1526,11 @@ class CMB2 extends CMB2_Base {
1207
 
1208
  /**
1209
  * Add a field array to a fields array in desired position
 
1210
  * @since 2.0.2
1211
- * @param array $field Metabox field config array
1212
- * @param array &$fields Array (passed by reference) to append the field (array) to
1213
- * @param integer $position Optionally specify a position in the array to be inserted
1214
  */
1215
  protected function _add_field_to_array( $field, &$fields, $position = 0 ) {
1216
  if ( $position ) {
@@ -1222,10 +1542,11 @@ class CMB2 extends CMB2_Base {
1222
 
1223
  /**
1224
  * Remove a field from the metabox
 
1225
  * @since 2.0.0
1226
- * @param string $field_id The field id of the field to remove
1227
- * @param string $parent_field_id (optional) The field id of the group field to remove field from
1228
- * @return bool True if field was removed
1229
  */
1230
  public function remove_field( $field_id, $parent_field_id = '' ) {
1231
  $ids = $this->get_field_ids( $field_id, $parent_field_id );
@@ -1249,17 +1570,19 @@ class CMB2 extends CMB2_Base {
1249
  if ( isset( $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ] ) ) {
1250
  unset( $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ] );
1251
  }
 
1252
  return true;
1253
  }
1254
 
1255
  /**
1256
  * Update or add a property to a field
 
1257
  * @since 2.0.0
1258
- * @param string $field_id Field id
1259
- * @param string $property Field property to set/update
1260
- * @param mixed $value Value to set the field property
1261
- * @param string $parent_field_id (optional) The field id of the group field to remove field from
1262
- * @return mixed Field id. Strict compare to false, as success can return a falsey value (like 0)
1263
  */
1264
  public function update_field_property( $field_id, $property, $value, $parent_field_id = '' ) {
1265
  $ids = $this->get_field_ids( $field_id, $parent_field_id );
@@ -1281,10 +1604,11 @@ class CMB2 extends CMB2_Base {
1281
 
1282
  /**
1283
  * Check if field ids match a field and return the index/field id
 
1284
  * @since 2.0.2
1285
- * @param string $field_id Field id
1286
- * @param string $parent_field_id (optional) Parent field id
1287
- * @return mixed Array of field/parent ids, or false
1288
  */
1289
  public function get_field_ids( $field_id, $parent_field_id = '' ) {
1290
  $sub_field_id = $parent_field_id ? $field_id : '';
@@ -1315,11 +1639,12 @@ class CMB2 extends CMB2_Base {
1315
  }
1316
 
1317
  /**
1318
- * When using the old array filter, it is unlikely field array indexes will be the field id
 
1319
  * @since 2.0.2
1320
- * @param string $field_id The field id
1321
- * @param array $fields Array of fields to search
1322
- * @return mixed Field index or false
1323
  */
1324
  public function search_old_school_array( $field_id, $fields ) {
1325
  $ids = wp_list_pluck( $fields, 'id' );
@@ -1329,18 +1654,21 @@ class CMB2 extends CMB2_Base {
1329
 
1330
  /**
1331
  * Handles metabox property callbacks, and passes this $cmb object as property.
 
1332
  * @since 2.2.3
1333
- * @param callable $cb The callback method/function/closure
1334
- * @return mixed Return of the callback function.
 
1335
  */
1336
- protected function do_callback( $cb ) {
1337
- return call_user_func( $cb, $this );
1338
  }
1339
 
1340
  /**
1341
  * Generate a unique nonce field for each registered meta_box
 
1342
  * @since 2.0.0
1343
- * @return string unique nonce hidden input
1344
  */
1345
  public function nonce_field() {
1346
  wp_nonce_field( $this->nonce(), $this->nonce(), false, true );
@@ -1348,17 +1676,29 @@ class CMB2 extends CMB2_Base {
1348
 
1349
  /**
1350
  * Generate a unique nonce for each registered meta_box
 
1351
  * @since 2.0.0
1352
- * @return string unique nonce string
1353
  */
1354
  public function nonce() {
1355
- if ( $this->generated_nonce ) {
1356
- return $this->generated_nonce;
1357
  }
1358
- $this->generated_nonce = sanitize_html_class( 'nonce_' . basename( __FILE__ ) . $this->cmb_id );
1359
  return $this->generated_nonce;
1360
  }
1361
 
 
 
 
 
 
 
 
 
 
 
 
1362
  /**
1363
  * Whether this box is an "alternate context" box. This means the box has a 'context' property defined as:
1364
  * 'form_top', 'before_permalink', 'after_title', or 'after_editor'.
@@ -1367,23 +1707,24 @@ class CMB2 extends CMB2_Base {
1367
  * @return bool
1368
  */
1369
  public function is_alternate_context_box() {
1370
- return $this->prop( 'context' ) && in_array( $this->prop( 'context' ), array( 'form_top', 'before_permalink', 'after_title', 'after_editor' ) );
1371
  }
1372
 
1373
  /**
1374
  * Magic getter for our object.
1375
- * @param string $field
 
1376
  * @throws Exception Throws an exception if the field is invalid.
1377
  * @return mixed
1378
  */
1379
- public function __get( $field ) {
1380
- switch ( $field ) {
1381
  case 'updated':
1382
  case 'has_columns':
1383
  case 'tax_metaboxes_to_remove':
1384
- return $this->{$field};
1385
  default:
1386
- return parent::__get( $field );
1387
  }
1388
  }
1389
 
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
+ * @author CMB2 team
8
  * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
  *
11
  * @property-read string $cmb_id
12
  * @property-read array $meta_box
14
  * @property-read bool $has_columns
15
  * @property-read array $tax_metaboxes_to_remove
16
  */
17
+
18
+ /**
19
+ * The main CMB2 object for storing box data/properties.
20
+ */
21
  class CMB2 extends CMB2_Base {
22
 
23
  /**
24
  * The object properties name.
25
+ *
26
  * @var string
27
  * @since 2.2.3
28
  */
30
 
31
  /**
32
  * Metabox Config array
33
+ *
34
  * @var array
35
  * @since 0.9.0
36
  */
38
 
39
  /**
40
  * Type of object registered for metabox. (e.g., post, user, or comment)
41
+ *
42
  * @var string
43
  * @since 1.0.0
44
  */
46
 
47
  /**
48
  * List of fields that are changed/updated on save
49
+ *
50
  * @var array
51
  * @since 1.1.0
52
  */
54
 
55
  /**
56
  * Metabox Defaults
57
+ *
58
  * @var array
59
  * @since 1.0.1
60
  */
61
  protected $mb_defaults = array(
62
  'id' => '',
63
  'title' => '',
64
+ // Post type slug, or 'user', 'term', 'comment', or 'options-page'.
65
  'object_types' => array(),
66
+
67
  /*
68
+ * The context within the screen where the boxes should display. Available contexts vary
69
+ * from screen to screen. Post edit screen contexts include 'normal', 'side', and 'advanced'.
70
+ *
71
+ * For placement in locations outside of a metabox, other options include:
72
+ * 'form_top', 'before_permalink', 'after_title', 'after_editor'
73
+ *
74
+ * Comments screen contexts include 'normal' and 'side'. Default is 'normal'.
75
  */
76
  'context' => 'normal',
77
  'priority' => 'high',
78
+ 'show_names' => true, // Show field names on the left.
79
  'show_on_cb' => null, // Callback to determine if metabox should display.
80
+ 'show_on' => array(), // Post IDs or page templates to display this metabox. overrides 'show_on_cb'.
81
+ 'cmb_styles' => true, // Include CMB2 stylesheet.
82
+ 'enqueue_js' => true, // Include CMB2 JS.
83
  'fields' => array(),
84
+
85
+ /*
86
+ * Handles hooking CMB2 forms/metaboxes into the post/attachement/user/options-page screens
87
+ * and handles hooking in and saving those fields.
88
+ */
89
  'hookup' => true,
90
+ 'save_fields' => true, // Will not save during hookup if false.
91
+ 'closed' => false, // Default metabox to being closed.
92
  'taxonomies' => array(),
93
+ 'new_user_section' => 'add-new-user', // or 'add-existing-user'.
94
  'new_term_section' => true,
95
  'show_in_rest' => false,
96
+ 'classes' => null, // Optionally add classes to the CMB2 wrapper
97
+ 'classes_cb' => '', // Optionally add classes to the CMB2 wrapper (via a callback)
98
+
99
+ /*
100
+ * The following parameter is for post alternate-context metaboxes only.
101
+ *
102
+ * To output the fields 'naked' (without a postbox wrapper/style), then
103
+ * add a `'remove_box_wrap' => true` to your metabox registration array.
104
+ */
105
+ 'remove_box_wrap' => false,
106
+
107
+ /*
108
+ * The following parameters are for options-page metaboxes,
109
+ * and several are passed along to add_menu_page()/add_submenu_page()
110
+ */
111
+
112
+ // 'menu_title' => null, // Falls back to 'title' (above). Do not define here so we can set a fallback.
113
+ 'message_cb' => '', // Optionally define the options-save message (via a callback).
114
+ 'option_key' => '', // The actual option key and admin menu page slug.
115
+ 'parent_slug' => '', // Used as first param in add_submenu_page().
116
+ 'capability' => 'manage_options', // Cap required to view options-page.
117
+ 'icon_url' => '', // Menu icon. Only applicable if 'parent_slug' is left empty.
118
+ 'position' => null, // Menu position. Only applicable if 'parent_slug' is left empty.
119
+
120
+ 'admin_menu_hook' => 'admin_menu', // Alternately 'network_admin_menu' to add network-level options page.
121
+ 'display_cb' => false, // Override the options-page form output (CMB2_Hookup::options_page_output()).
122
+ 'save_button' => '', // The text for the options-page save button. Defaults to 'Save'.
123
+ 'disable_settings_errors' => false, // On settings pages (not options-general.php sub-pages), allows disabling.
124
  );
125
 
126
  /**
127
  * Metabox field objects
128
+ *
129
  * @var array
130
  * @since 2.0.3
131
  */
133
 
134
  /**
135
  * An array of hidden fields to output at the end of the form
136
+ *
137
  * @var array
138
  * @since 2.0.0
139
  */
141
 
142
  /**
143
  * Array of key => value data for saving. Likely $_POST data.
144
+ *
145
  * @var string
146
  * @since 2.0.0
147
  */
149
 
150
  /**
151
  * Whether there are fields to be shown in columns. Set in CMB2::add_field().
152
+ *
153
  * @var bool
154
  * @since 2.2.2
155
  */
157
 
158
  /**
159
  * If taxonomy field is requesting to remove_default, we store the taxonomy here.
160
+ *
161
  * @var array
162
  * @since 2.2.3
163
  */
165
 
166
  /**
167
  * Get started
168
+ *
169
  * @since 0.4.0
170
+ * @param array $config Metabox config array.
171
+ * @param integer $object_id Optional object id.
172
  */
173
  public function __construct( $config, $object_id = 0 ) {
174
 
176
  wp_die( esc_html__( 'Metabox configuration is required to have an ID parameter.', 'cmb2' ) );
177
  }
178
 
179
+ $this->cmb_id = $config['id'];
180
  $this->meta_box = wp_parse_args( $config, $this->mb_defaults );
181
  $this->meta_box['fields'] = array();
182
 
183
+ // Ensures object_types is an array.
184
+ $this->set_prop( 'object_types', $this->box_types() ) ;
185
  $this->object_id( $object_id );
186
+
187
+ if ( $this->is_options_page_mb() ) {
188
+ $this->init_options_mb();
189
+ }
190
+
191
  $this->mb_object_type();
 
192
 
193
  if ( ! empty( $config['fields'] ) && is_array( $config['fields'] ) ) {
194
  $this->add_fields( $config['fields'] );
204
  * @param array $cmb This CMB2 object
205
  */
206
  do_action( "cmb2_init_{$this->cmb_id}", $this );
207
+
208
+ // Hook in the hookup... how meta.
209
+ add_action( "cmb2_init_hookup_{$this->cmb_id}", array( 'CMB2_hookup', 'maybe_init_and_hookup' ) );
210
+
211
+ // Hook in the rest api functionality.
212
+ add_action( "cmb2_init_hookup_{$this->cmb_id}", array( 'CMB2_REST', 'maybe_init_and_hookup' ) );
213
  }
214
 
215
  /**
216
  * Loops through and displays fields
217
+ *
218
  * @since 1.0.0
219
+ * @param int $object_id Object ID.
220
+ * @param string $object_type Type of object being saved. (e.g., post, user, or comment).
221
+ *
222
+ * @return CMB2
223
  */
224
  public function show_form( $object_id = 0, $object_type = '' ) {
225
  $this->render_form_open( $object_id, $object_type );
228
  $this->render_field( $field_args );
229
  }
230
 
231
+ return $this->render_form_close( $object_id, $object_type );
232
  }
233
 
234
  /**
235
  * Outputs the opening form markup and runs corresponding hooks:
236
  * 'cmb2_before_form' and "cmb2_before_{$object_type}_form_{$this->cmb_id}"
237
+ *
238
  * @since 2.2.0
239
+ * @param integer $object_id Object ID.
240
+ * @param string $object_type Object type.
241
+ *
242
+ * @return CMB2
243
  */
244
  public function render_form_open( $object_id = 0, $object_type = '' ) {
245
  $object_type = $this->object_type( $object_type );
252
  /**
253
  * Hook before form table begins
254
  *
255
+ * @param array $cmb_id The current box ID.
256
+ * @param int $object_id The ID of the current object.
257
  * @param string $object_type The type of object you are working with.
258
  * Usually `post` (this applies to all post-types).
259
  * Could also be `comment`, `user` or `options-page`.
260
+ * @param array $cmb This CMB2 object.
261
  */
262
  do_action( 'cmb2_before_form', $this->cmb_id, $object_id, $object_type, $this );
263
 
276
  */
277
  do_action( "cmb2_before_{$object_type}_form_{$this->cmb_id}", $object_id, $this );
278
 
279
+ echo '<div class="', esc_attr( $this->box_classes() ), '"><div id="cmb2-metabox-', sanitize_html_class( $this->cmb_id ), '" class="cmb2-metabox cmb-field-list">';
280
 
281
+ return $this;
282
  }
283
 
284
  /**
350
  /**
351
  * Outputs the closing form markup and runs corresponding hooks:
352
  * 'cmb2_after_form' and "cmb2_after_{$object_type}_form_{$this->cmb_id}"
353
+ *
354
  * @since 2.2.0
355
+ * @param integer $object_id Object ID.
356
+ * @param string $object_type Object type.
357
+ *
358
+ * @return CMB2
359
  */
360
  public function render_form_close( $object_id = 0, $object_type = '' ) {
361
  $object_type = $this->object_type( $object_type );
365
 
366
  $this->render_hidden_fields();
367
 
 
 
 
 
 
 
 
 
 
 
 
 
368
  /**
369
  * Hook after form form has been rendered
370
  *
379
  */
380
  do_action( "cmb2_after_{$object_type}_form_{$this->cmb_id}", $object_id, $this );
381
 
382
+ /**
383
+ * Hook after form form has been rendered
384
+ *
385
+ * @param array $cmb_id The current box ID.
386
+ * @param int $object_id The ID of the current object.
387
+ * @param string $object_type The type of object you are working with.
388
+ * Usually `post` (this applies to all post-types).
389
+ * Could also be `comment`, `user` or `options-page`.
390
+ * @param array $cmb This CMB2 object.
391
+ */
392
+ do_action( 'cmb2_after_form', $this->cmb_id, $object_id, $object_type, $this );
393
+
394
  echo "\n<!-- End CMB2 Fields -->\n";
395
 
396
+ return $this;
397
  }
398
 
399
  /**
400
  * Renders a field based on the field type
401
+ *
402
  * @since 2.2.0
403
  * @param array $field_args A field configuration array.
404
  * @return mixed CMB2_Field object if successful.
406
  public function render_field( $field_args ) {
407
  $field_args['context'] = $this->prop( 'context' );
408
 
409
+ if ( 'group' === $field_args['type'] ) {
410
 
411
  if ( ! isset( $field_args['show_names'] ) ) {
412
  $field_args['show_names'] = $this->prop( 'show_names' );
413
  }
414
  $field = $this->render_group( $field_args );
415
 
416
+ } elseif ( 'hidden' === $field_args['type'] && $this->get_field( $field_args )->should_show() ) {
417
+ // Save rendering for after the metabox.
418
  $field = $this->add_hidden_field( $field_args );
419
 
420
  } else {
421
 
422
  $field_args['show_names'] = $this->prop( 'show_names' );
423
 
424
+ // Render default fields.
425
  $field = $this->get_field( $field_args )->render_field();
426
  }
427
 
429
  }
430
 
431
  /**
432
+ * Render a group of fields.
433
+ *
434
+ * @param array|CMB2_Field $args Array of field arguments for a group field parent or the group parent field.
435
  * @return CMB2_Field|null Group field object.
436
  */
437
  public function render_group( $args ) {
438
+ $field_group = false;
439
 
440
+ if ( $args instanceof CMB2_Field ) {
441
+ $field_group = 'group' === $args->type() ? $args : false;
442
+ } elseif ( isset( $args['id'], $args['fields'] ) && is_array( $args['fields'] ) ) {
443
+ $field_group = $this->get_field( $args );
444
+ }
445
+
446
+ if ( ! $field_group ) {
447
  return;
448
  }
449
 
450
+ $field_group->render_context = 'edit';
451
+ $field_group->peform_param_callback( 'render_row_cb' );
452
 
453
+ return $field_group;
454
+ }
455
+
456
+ /**
457
+ * The default callback to render a group of fields.
458
+ *
459
+ * @since 2.2.6
460
+ *
461
+ * @param array $field_args Array of field arguments for the group field parent.
462
+ * @param CMB2_Field $field_group The CMB2_Field group object.
463
+ *
464
+ * @return CMB2_Field|null Group field object.
465
+ */
466
+ public function render_group_callback( $field_args, $field_group ) {
467
+
468
+ // If field is requesting to be conditionally shown.
469
  if ( ! $field_group || ! $field_group->should_show() ) {
470
  return;
471
  }
472
 
 
 
 
 
473
  $field_group->index = 0;
474
 
475
  $field_group->peform_param_callback( 'before_group' );
476
 
477
+ $desc = $field_group->args( 'description' );
478
+ $label = $field_group->args( 'name' );
479
+ $group_val = (array) $field_group->value();
480
+
481
+ echo '<div class="cmb-row cmb-repeat-group-wrap ', esc_attr( $field_group->row_classes() ), '" data-fieldtype="group"><div class="cmb-td"><div data-groupid="', esc_attr( $field_group->id() ), '" id="', esc_attr( $field_group->id() ), '_repeat" ', $this->group_wrap_attributes( $field_group ), '>';
482
 
483
  if ( $desc || $label ) {
484
  $class = $desc ? ' cmb-group-description' : '';
485
  echo '<div class="cmb-row', $class, '"><div class="cmb-th">';
486
+ if ( $label ) {
487
+ echo '<h2 class="cmb-group-name">', $label, '</h2>';
488
+ }
489
+ if ( $desc ) {
490
+ echo '<p class="cmb2-metabox-description">', $desc, '</p>';
491
+ }
492
  echo '</div></div>';
493
  }
494
 
495
  if ( ! empty( $group_val ) ) {
496
  foreach ( $group_val as $group_key => $field_id ) {
497
+ $this->render_group_row( $field_group );
498
  $field_group->index++;
499
  }
500
  } else {
501
+ $this->render_group_row( $field_group );
502
  }
503
 
504
  if ( $field_group->args( 'repeatable' ) ) {
505
+ echo '<div class="cmb-row"><div class="cmb-td"><p class="cmb-add-row"><button type="button" data-selector="', esc_attr( $field_group->id() ), '_repeat" data-grouptitle="', esc_attr( $field_group->options( 'group_title' ) ), '" class="cmb-add-group-row button-secondary">', $field_group->options( 'add_button' ), '</button></p></div></div>';
506
  }
507
 
508
  echo '</div></div></div>';
514
 
515
  /**
516
  * Get the group wrap attributes, which are passed through a filter.
517
+ *
518
  * @since 2.2.3
519
  * @param CMB2_Field $field_group The group CMB2_Field object.
520
  * @return string The attributes string.
542
  */
543
  $group_wrap_attributes = apply_filters( 'cmb2_group_wrap_attributes', $group_wrap_attributes, $field_group );
544
 
545
+ $atts = array();
546
+ foreach ( $group_wrap_attributes as $att => $att_value ) {
547
+ if ( ! CMB2_Utils::is_data_attribute( $att ) ) {
548
+ $att_value = htmlspecialchars( $att_value );
549
+ }
550
+
551
+ $atts[ sanitize_html_class( $att ) ] = sanitize_text_field( strip_tags( $att_value ) );
552
+ }
553
+
554
+ return CMB2_Utils::concat_attrs( $atts );
555
  }
556
 
557
  /**
558
  * Render a repeatable group row
559
+ *
560
  * @since 1.0.2
561
+ * @param CMB2_Field $field_group CMB2_Field group field object.
562
+ *
563
+ * @return CMB2
564
  */
565
+ public function render_group_row( $field_group ) {
566
 
567
  $field_group->peform_param_callback( 'before_group_row' );
568
  $closed_class = $field_group->options( 'closed' ) ? ' closed' : '';
570
  echo '
571
  <div class="postbox cmb-row cmb-repeatable-grouping', $closed_class, '" data-iterator="', $field_group->index, '">';
572
 
573
+ if ( $field_group->args( 'repeatable' ) ) {
574
+ echo '<button type="button" data-selector="', $field_group->id(), '_repeat" class="dashicons-before dashicons-no-alt cmb-remove-group-row" title="', esc_attr( $field_group->options( 'remove_button' ) ), '"></button>';
575
+ }
576
 
577
  echo '
578
  <div class="cmbhandle" title="' , esc_attr__( 'Click to toggle', 'cmb2' ), '"><br></div>
579
  <h3 class="cmb-group-title cmbhandle-title"><span>', $field_group->replace_hash( $field_group->options( 'group_title' ) ), '</span></h3>
580
 
581
  <div class="inside cmb-td cmb-nested cmb-field-list">';
582
+ // Loop and render repeatable group fields.
583
+ foreach ( array_values( $field_group->args( 'fields' ) ) as $field_args ) {
584
+ if ( 'hidden' === $field_args['type'] ) {
585
 
586
+ // Save rendering for after the metabox.
587
+ $this->add_hidden_field( $field_args, $field_group );
588
 
589
+ } else {
590
 
591
+ $field_args['show_names'] = $field_group->args( 'show_names' );
592
+ $field_args['context'] = $field_group->args( 'context' );
593
 
594
+ $field = $this->get_field( $field_args, $field_group )->render_field();
595
+ }
596
+ }
597
+ if ( $field_group->args( 'repeatable' ) ) {
598
+ echo '
599
  <div class="cmb-row cmb-remove-field-row">
600
  <div class="cmb-remove-row">
601
+ <button type="button" data-selector="', $field_group->id(), '_repeat" class="cmb-remove-group-row cmb-remove-group-row-button alignright button-secondary">', $field_group->options( 'remove_button' ), '</button>
602
  </div>
603
  </div>
604
  ';
605
+ }
606
  echo '
607
  </div>
608
  </div>
609
  ';
610
 
611
  $field_group->peform_param_callback( 'after_group_row' );
612
+
613
+ return $this;
614
  }
615
 
616
  /**
617
  * Add a hidden field to the list of hidden fields to be rendered later
618
+ *
619
  * @since 2.0.0
620
+ * @param array $field_args Array of field arguments to be passed to CMB2_Field.
621
+ * @param CMB2_Field|null $field_group CMB2_Field group field object.
622
  */
623
  public function add_hidden_field( $field_args, $field_group = null ) {
624
  if ( isset( $field_args['field_args'] ) ) {
641
 
642
  /**
643
  * Loop through and output hidden fields
644
+ *
645
  * @since 2.0.0
646
+ *
647
+ * @return CMB2
648
  */
649
  public function render_hidden_fields() {
650
  if ( ! empty( $this->hidden_fields ) ) {
652
  $hidden->render();
653
  }
654
  }
655
+
656
+ return $this;
657
  }
658
 
659
  /**
660
  * Returns array of sanitized field values (without saving them)
661
+ *
662
  * @since 2.0.3
663
+ * @param array $data_to_sanitize Array of field_id => value data for sanitizing (likely $_POST data).
664
  */
665
  public function get_sanitized_values( array $data_to_sanitize ) {
666
  $this->data_to_save = $data_to_sanitize;
667
  $stored_id = $this->object_id();
668
 
669
+ // We do this So CMB will sanitize our data for us, but not save it.
670
  $this->object_id( '_' );
671
 
672
+ // Ensure temp. data store is empty.
673
  cmb2_options( 0 )->set();
674
 
675
  // We want to get any taxonomy values back.
676
  add_filter( "cmb2_return_taxonomy_values_{$this->cmb_id}", '__return_true' );
677
 
678
+ // Process/save fields.
679
  $this->process_fields();
680
 
681
  // Put things back the way they were.
682
  remove_filter( "cmb2_return_taxonomy_values_{$this->cmb_id}", '__return_true' );
683
 
684
+ // Get data from temp. data store.
685
  $sanitized_values = cmb2_options( 0 )->get_options();
686
 
687
+ // Empty out temp. data store again.
688
  cmb2_options( 0 )->set();
689
 
690
+ // Reset the object id.
691
  $this->object_id( $stored_id );
692
 
693
  return $sanitized_values;
695
 
696
  /**
697
  * Loops through and saves field data
698
+ *
699
  * @since 1.0.0
700
+ * @param int $object_id Object ID.
701
+ * @param string $object_type Type of object being saved. (e.g., post, user, or comment).
702
  * @param array $data_to_save Array of key => value data for saving. Likely $_POST data.
703
+ *
704
+ * @return CMB2
705
  */
706
  public function save_fields( $object_id = 0, $object_type = '', $data_to_save = array() ) {
707
 
708
+ // Fall-back to $_POST data.
709
  $this->data_to_save = ! empty( $data_to_save ) ? $data_to_save : $_POST;
710
  $object_id = $this->object_id( $object_id );
711
  $object_type = $this->object_type( $object_type );
712
 
713
  $this->process_fields();
714
 
715
+ // If options page, save the updated options.
716
+ if ( 'options-page' === $object_type ) {
717
  cmb2_options( $object_id )->set();
718
  }
719
 
720
+ return $this->after_save();
721
  }
722
 
723
  /**
724
  * Process and save form fields
725
+ *
726
  * @since 2.0.0
727
+ *
728
+ * @return CMB2
729
  */
730
  public function process_fields() {
731
 
732
  $this->pre_process();
733
 
734
+ // Remove the show_on properties so saving works.
735
  $this->prop( 'show_on', array() );
736
 
737
+ // save field ids of those that are updated.
738
  $this->updated = array();
739
 
740
  foreach ( $this->prop( 'fields' ) as $field_args ) {
741
  $this->process_field( $field_args );
742
  }
743
+
744
+ return $this;
745
  }
746
 
747
  /**
748
  * Process and save a field
749
+ *
750
  * @since 2.0.0
751
+ * @param array $field_args Array of field arguments.
752
+ *
753
+ * @return CMB2
754
  */
755
  public function process_field( $field_args ) {
756
 
764
  break;
765
 
766
  case 'title':
767
+ // Don't process title fields.
768
  break;
769
 
770
  default:
778
  break;
779
  }
780
 
781
+ return $this;
782
  }
783
 
784
+ /**
785
+ * Fires the "cmb2_{$object_type}_process_fields_{$cmb_id}" action hook.
786
+ *
787
+ * @since 2.x.x
788
+ *
789
+ * @return CMB2
790
+ */
791
  public function pre_process() {
792
  /**
793
  * Fires before fields have been processed/saved.
802
  * @param int $object_id The ID of the current object
803
  */
804
  do_action( "cmb2_{$this->object_type()}_process_fields_{$this->cmb_id}", $this, $this->object_id() );
805
+
806
+ return $this;
807
  }
808
 
809
+ /**
810
+ * Fires the "cmb2_save_{$object_type}_fields" and
811
+ * "cmb2_save_{$object_type}_fields_{$cmb_id}" action hooks.
812
+ *
813
+ * @since 2.x.x
814
+ *
815
+ * @return CMB2
816
+ */
817
  public function after_save() {
818
  $object_type = $this->object_type();
819
  $object_id = $this->object_id();
848
  * @param array $cmb This CMB2 object
849
  */
850
  do_action( "cmb2_save_{$object_type}_fields_{$this->cmb_id}", $object_id, $this->updated, $this );
851
+
852
+ return $this;
853
  }
854
 
855
  /**
856
  * Save a repeatable group
857
+ *
858
  * @since 1.x.x
859
+ * @param array $args Field arguments array.
860
+ * @return mixed Return of CMB2_Field::update_data().
861
  */
862
  public function save_group( $args ) {
863
  if ( ! isset( $args['id'], $args['fields'] ) || ! is_array( $args['fields'] ) ) {
869
 
870
  /**
871
  * Save a repeatable group
872
+ *
873
  * @since 1.x.x
874
+ * @param CMB2_Field $field_group CMB2_Field group field object.
875
+ * @return mixed Return of CMB2_Field::update_data().
876
  */
877
  public function save_group_field( $field_group ) {
878
  $base_id = $field_group->id();
882
  }
883
 
884
  $old = $field_group->get_data();
885
+ // Check if group field has sanitization_cb.
886
  $group_vals = $field_group->sanitization_cb( $this->data_to_save[ $base_id ] );
887
  $saved = array();
888
 
891
 
892
  foreach ( array_values( $field_group->fields() ) as $field_args ) {
893
  if ( 'title' === $field_args['type'] ) {
894
+ // Don't process title fields.
895
  continue;
896
  }
897
 
900
 
901
  foreach ( (array) $group_vals as $field_group->index => $post_vals ) {
902
 
903
+ // Get value.
904
  $new_val = isset( $group_vals[ $field_group->index ][ $sub_id ] )
905
  ? $group_vals[ $field_group->index ][ $sub_id ]
906
  : false;
907
 
908
+ // Sanitize.
909
  $new_val = $field->sanitization_cb( $new_val );
910
 
911
  if ( is_array( $new_val ) && $field->args( 'has_supporting_data' ) ) {
912
  if ( $field->args( 'repeatable' ) ) {
913
  $_new_val = array();
914
  foreach ( $new_val as $group_index => $grouped_data ) {
915
+ // Add the supporting data to the $saved array stack.
916
  $saved[ $field_group->index ][ $grouped_data['supporting_field_id'] ][] = $grouped_data['supporting_field_value'];
917
+ // Reset var to the actual value.
918
  $_new_val[ $group_index ] = $grouped_data['value'];
919
  }
920
  $new_val = $_new_val;
921
  } else {
922
+ // Add the supporting data to the $saved array stack.
923
  $saved[ $field_group->index ][ $new_val['supporting_field_id'] ] = $new_val['supporting_field_value'];
924
+ // Reset var to the actual value.
925
  $new_val = $new_val['value'];
926
  }
927
  }
928
 
929
+ // Get old value.
930
  $old_val = is_array( $old ) && isset( $old[ $field_group->index ][ $sub_id ] )
931
  ? $old[ $field_group->index ][ $sub_id ]
932
  : false;
934
  $is_updated = ( ! CMB2_Utils::isempty( $new_val ) && $new_val !== $old_val );
935
  $is_removed = ( CMB2_Utils::isempty( $new_val ) && ! CMB2_Utils::isempty( $old_val ) );
936
 
937
+ // Compare values and add to `$updated` array.
938
  if ( $is_updated || $is_removed ) {
939
  $this->updated[] = $base_id . '::' . $field_group->index . '::' . $sub_id;
940
  }
941
 
942
+ // Add to `$saved` array.
943
  $saved[ $field_group->index ][ $sub_id ] = $new_val;
944
 
945
+ }// End foreach().
946
 
947
  $saved[ $field_group->index ] = CMB2_Utils::filter_empty( $saved[ $field_group->index ] );
948
+ }// End foreach().
949
 
950
  $saved = CMB2_Utils::filter_empty( $saved );
951
 
954
 
955
  /**
956
  * Get object id from global space if no id is provided
957
+ *
958
  * @since 1.0.0
959
+ * @param integer $object_id Object ID.
960
+ * @return integer $object_id Object ID.
961
  */
962
  public function object_id( $object_id = 0 ) {
963
  global $pagenow;
971
  return $this->object_id;
972
  }
973
 
974
+ // Try to get our object ID from the global space.
975
  switch ( $this->object_type() ) {
976
  case 'user':
977
+ $object_id = isset( $_REQUEST['user_id'] ) ? wp_unslash( $_REQUEST['user_id'] ) : $object_id;
978
+ $object_id = ! $object_id && 'user-new.php' !== $pagenow && isset( $GLOBALS['user_ID'] ) ? $GLOBALS['user_ID'] : $object_id;
979
  break;
980
 
981
  case 'comment':
982
+ $object_id = isset( $_REQUEST['c'] ) ? wp_unslash( $_REQUEST['c'] ) : $object_id;
983
  $object_id = ! $object_id && isset( $GLOBALS['comments']->comment_ID ) ? $GLOBALS['comments']->comment_ID : $object_id;
984
  break;
985
 
986
  case 'term':
987
+ $object_id = isset( $_REQUEST['tag_ID'] ) ? wp_unslash( $_REQUEST['tag_ID'] ) : $object_id;
988
+ break;
989
+
990
+ case 'options-page':
991
+ $key = $this->doing_options_page();
992
+ if ( ! empty( $key ) ) {
993
+ $object_id = $key;
994
+ }
995
  break;
996
 
997
  default:
998
  $object_id = isset( $GLOBALS['post']->ID ) ? $GLOBALS['post']->ID : $object_id;
999
+ $object_id = isset( $_REQUEST['post'] ) ? wp_unslash( $_REQUEST['post'] ) : $object_id;
1000
  break;
1001
  }
1002
 
1003
+ // reset to id or 0.
1004
  $this->object_id = $object_id ? $object_id : 0;
1005
 
1006
  return $this->object_id;
1008
 
1009
  /**
1010
  * Sets the $object_type based on metabox settings
1011
+ *
1012
  * @since 1.0.0
1013
+ * @return string Object type.
1014
  */
1015
  public function mb_object_type() {
1016
  if ( null !== $this->mb_object_type ) {
1026
 
1027
  $type = '';
1028
 
1029
+ // if it's an array of one, extract it.
1030
  if ( 1 === count( $registered_types ) ) {
1031
  $last = end( $registered_types );
1032
  if ( is_string( $last ) ) {
1036
  $type = $curr_type;
1037
  }
1038
 
1039
+ // Get our object type.
1040
  switch ( $type ) {
1041
 
1042
  case 'user':
1055
 
1056
  /**
1057
  * Gets the box 'object_types' array based on box settings.
1058
+ *
1059
  * @since 2.2.3
1060
+ * @param array $fallback Fallback value.
1061
+ *
1062
+ * @return array Object types.
1063
+ */
1064
+ public function box_types( $fallback = array() ) {
1065
+ return CMB2_Utils::ensure_array( $this->prop( 'object_types' ), $fallback );
1066
+ }
1067
+
1068
+ /**
1069
+ * Initates the object types and option key for an options page metabox.
1070
+ *
1071
+ * @since 2.2.5
1072
+ *
1073
+ * @return void
1074
+ */
1075
+ public function init_options_mb() {
1076
+ $keys = $this->options_page_keys();
1077
+ $types = $this->box_types();
1078
+
1079
+ if ( empty( $keys ) ) {
1080
+ $keys = '';
1081
+ $types = $this->deinit_options_mb( $types );
1082
+ } else {
1083
+
1084
+ // Make sure 'options-page' is one of the object types.
1085
+ $types[] = 'options-page';
1086
+ }
1087
+
1088
+ // Set/Reset the option_key property.
1089
+ $this->set_prop( 'option_key', $keys );
1090
+
1091
+ // Reset the object types.
1092
+ $this->set_prop( 'object_types', array_unique( $types ) ) ;
1093
+ }
1094
+
1095
+ /**
1096
+ * If object-page initiation failed, remove traces options page setup.
1097
+ *
1098
+ * @since 2.2.5
1099
+ *
1100
+ * @return void
1101
  */
1102
+ protected function deinit_options_mb( $types ) {
1103
+ if ( isset( $this->meta_box['show_on']['key'] ) && 'options-page' === $this->meta_box['show_on']['key'] ) {
1104
+ unset( $this->meta_box['show_on']['key'] );
1105
+ }
1106
+
1107
+ if ( array_key_exists( 'options-page', $this->meta_box['show_on'] ) ) {
1108
+ unset( $this->meta_box['show_on']['options-page'] );
1109
+ }
1110
+
1111
+ $index = array_search( 'options-page', $types );
1112
+
1113
+ if ( false !== $index ) {
1114
+ unset( $types[ $index ] );
1115
+ }
1116
+
1117
+ return $types;
1118
  }
1119
 
1120
  /**
1121
  * Determines if metabox is for an options page
1122
+ *
1123
  * @since 1.0.1
1124
+ * @return boolean True/False.
1125
  */
1126
  public function is_options_page_mb() {
1127
+ return (
1128
+ // 'show_on' values checked for back-compatibility.
1129
+ $this->is_old_school_options_page_mb()
1130
+ || in_array( 'options-page', $this->box_types() )
1131
+ );
1132
+ }
1133
+
1134
+ /**
1135
+ * Determines if metabox uses old-schoold options page config.
1136
+ *
1137
+ * @since 2.2.5
1138
+ * @return boolean True/False.
1139
+ */
1140
+ public function is_old_school_options_page_mb() {
1141
+ return (
1142
+ // 'show_on' values checked for back-compatibility.
1143
+ isset( $this->meta_box['show_on']['key'] ) && 'options-page' === $this->meta_box['show_on']['key']
1144
+ || array_key_exists( 'options-page', $this->meta_box['show_on'] )
1145
+ );
1146
+ }
1147
+
1148
+ /**
1149
+ * Determine if we are on an options page (or saving the options page).
1150
+ *
1151
+ * @since 2.2.5
1152
+ *
1153
+ * @return bool
1154
+ */
1155
+ public function doing_options_page() {
1156
+ $found_key = false;
1157
+ $keys = $this->options_page_keys();
1158
+
1159
+ if ( empty( $keys ) ) {
1160
+ return $found_key;
1161
+ }
1162
+
1163
+ if ( ! empty( $_GET['page'] ) && in_array( $_GET['page'], $keys ) ) {
1164
+ $found_key = $_GET['page'];
1165
+ }
1166
+
1167
+ if ( ! empty( $_POST['action'] ) && in_array( $_POST['action'], $keys ) ) {
1168
+ $found_key = $_POST['action'];
1169
+ }
1170
+
1171
+ return $found_key ? $found_key : false;
1172
+ }
1173
+
1174
+ /**
1175
+ * Get the options page key.
1176
+ *
1177
+ * @since 2.2.5
1178
+ * @return string|array
1179
+ */
1180
+ public function options_page_keys() {
1181
+ $key = '';
1182
+ if ( ! $this->is_options_page_mb() ) {
1183
+ return $key;
1184
+ }
1185
+
1186
+ $values = null;
1187
+ if ( ! empty( $this->meta_box['show_on']['value'] ) ) {
1188
+ $values = $this->meta_box['show_on']['value'];
1189
+ } elseif ( ! empty( $this->meta_box['show_on']['options-page'] ) ) {
1190
+ $values = $this->meta_box['show_on']['options-page'];
1191
+ } elseif ( $this->prop( 'option_key') ) {
1192
+ $values = $this->prop( 'option_key');
1193
+ }
1194
+
1195
+ if ( $values ) {
1196
+ $key = $values;
1197
+ }
1198
+
1199
+ if ( ! is_array( $key ) ) {
1200
+ $key = array( $key );
1201
+ }
1202
+
1203
+ return $key;
1204
  }
1205
 
1206
  /**
1207
  * Returns the object type
1208
+ *
1209
  * @since 1.0.0
1210
+ * @param string $object_type Type of object being saved. (e.g., post, user, or comment). Optional.
1211
+ * @return string Object type.
1212
  */
1213
  public function object_type( $object_type = '' ) {
1214
  if ( $object_type ) {
1227
 
1228
  /**
1229
  * Get the object type for the current page, based on the $pagenow global.
1230
+ *
1231
  * @since 2.2.2
1232
  * @return string Page object type name.
1233
  */
1251
  $type = 'term';
1252
  }
1253
 
1254
+ if (
1255
+ in_array( $pagenow, array( 'admin.php', 'admin-post.php' ), true )
1256
+ && $this->doing_options_page()
1257
+ ) {
1258
+ $type = 'options-page';
1259
+ }
1260
+
1261
  return $type;
1262
  }
1263
 
1264
  /**
1265
  * Set metabox property.
1266
+ *
1267
  * @since 2.2.2
1268
+ * @param string $property Metabox config property to retrieve.
1269
+ * @param mixed $value Value to set if no value found.
1270
+ * @return mixed Metabox config property value or false.
1271
  */
1272
  public function set_prop( $property, $value ) {
1273
  $this->meta_box[ $property ] = $value;
1277
 
1278
  /**
1279
  * Get metabox property and optionally set a fallback
1280
+ *
1281
  * @since 2.0.0
1282
+ * @param string $property Metabox config property to retrieve.
1283
+ * @param mixed $fallback Fallback value to set if no value found.
1284
+ * @return mixed Metabox config property value or false.
1285
  */
1286
  public function prop( $property, $fallback = null ) {
1287
  if ( array_key_exists( $property, $this->meta_box ) ) {
1293
 
1294
  /**
1295
  * Get a field object
1296
+ *
1297
  * @since 2.0.3
1298
+ * @param string|array|CMB2_Field $field Metabox field id or field config array or CMB2_Field object.
1299
+ * @param CMB2_Field|null $field_group (optional) CMB2_Field object (group parent).
1300
+ * @param bool $reset_cached (optional) Reset the internal cache for this field object.
1301
+ * Use sparingly.
1302
+ *
1303
+ * @return CMB2_Field|false CMB2_Field object (or false).
1304
  */
1305
+ public function get_field( $field, $field_group = null, $reset_cached = false ) {
1306
  if ( $field instanceof CMB2_Field ) {
1307
  return $field;
1308
  }
1319
  list( $field_id, $sub_field_id ) = $ids;
1320
 
1321
  $index = implode( '', $ids ) . ( $field_group ? $field_group->index : '' );
1322
+
1323
+ if ( array_key_exists( $index, $this->fields ) && ! $reset_cached ) {
1324
  return $this->fields[ $index ];
1325
  }
1326
 
1331
 
1332
  /**
1333
  * Handles determining which type of arguments to pass to CMB2_Field
1334
+ *
1335
  * @since 2.0.7
1336
+ * @param mixed $field_id Field (or group field) ID.
1337
+ * @param mixed $field_args Array of field arguments.
1338
+ * @param mixed $sub_field_id Sub field ID (if field_group exists).
1339
+ * @param CMB2_Field|null $field_group If a sub-field, will be the parent group CMB2_Field object.
1340
+ * @return array Array of CMB2_Field arguments.
1341
  */
1342
  public function get_field_args( $field_id, $field_args, $sub_field_id, $field_group ) {
1343
 
1344
+ // Check if group is passed and if fields were added in the old-school fields array.
1345
  if ( $field_group && ( $sub_field_id || 0 === $sub_field_id ) ) {
1346
 
1347
+ // Update the fields array w/ any modified properties inherited from the group field.
1348
  $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ] = $field_args;
1349
 
1350
  return $this->get_default_args( $field_args, $field_group );
1359
 
1360
  /**
1361
  * Get default field arguments specific to this CMB2 object.
1362
+ *
1363
  * @since 2.2.0
1364
  * @param array $field_args Metabox field config array.
1365
+ * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent).
1366
  * @return array Array of field arguments.
1367
  */
1368
  protected function get_default_args( $field_args, $field_group = null ) {
1383
  return $args;
1384
  }
1385
 
 
 
 
 
 
 
 
 
 
 
 
1386
  /**
1387
  * When fields are added in the old-school way, intitate them as they should be
1388
+ *
1389
  * @since 2.1.0
1390
+ * @param array $fields Array of fields to add.
1391
+ * @param mixed $parent_field_id Parent field id or null.
1392
+ *
1393
+ * @return CMB2
1394
  */
1395
  protected function add_fields( $fields, $parent_field_id = null ) {
1396
  foreach ( $fields as $field ) {
1409
  $this->add_fields( $sub_fields, $field_id );
1410
  }
1411
  }
1412
+
1413
+ return $this;
1414
  }
1415
 
1416
  /**
1417
  * Add a field to the metabox
1418
+ *
1419
  * @since 2.0.0
1420
+ * @param array $field Metabox field config array.
1421
+ * @param int $position (optional) Position of metabox. 1 for first, etc.
1422
+ * @return string|false Field id or false.
1423
  */
1424
  public function add_field( array $field, $position = 0 ) {
1425
  if ( ! is_array( $field ) || ! array_key_exists( 'id', $field ) ) {
1431
  case 'file':
1432
  case 'file_list':
1433
 
1434
+ // Initiate attachment JS hooks.
1435
  add_filter( 'wp_prepare_attachment_for_js', array( 'CMB2_Type_File_Base', 'prepare_image_sizes_for_js' ), 10, 3 );
1436
  break;
1437
 
1438
  case 'oembed':
1439
 
1440
+ // Initiate oembed Ajax hooks.
1441
  cmb2_ajax();
1442
  break;
1443
+
1444
+ case 'group':
1445
+ if ( empty( $field['render_row_cb'] ) ) {
1446
+ $field['render_row_cb'] = array( $this, 'render_group_callback' );
1447
+ }
1448
+ break;
1449
+ case 'colorpicker':
1450
+ // https://github.com/JayWood/CMB2_RGBa_Picker
1451
+ // Dequeue the rgba_colorpicker custom field script if it is used,
1452
+ // since we now enqueue our own more current version.
1453
+ add_action( 'admin_enqueue_scripts', array( 'CMB2_Type_Colorpicker', 'dequeue_rgba_colorpicker_script' ), 99 );
1454
+ break;
1455
  }
1456
 
1457
  if ( isset( $field['column'] ) && false !== $field['column'] ) {
1473
 
1474
  /**
1475
  * Defines a field's column if requesting to be show in admin columns.
1476
+ *
1477
  * @since 2.2.3
1478
+ * @param array $field Metabox field config array.
1479
  * @return array Modified metabox field config array.
1480
  */
1481
  protected function define_field_column( array $field ) {
1493
 
1494
  /**
1495
  * Add a field to a group
1496
+ *
1497
  * @since 2.0.0
1498
+ * @param string $parent_field_id The field id of the group field to add the field.
1499
+ * @param array $field Metabox field config array.
1500
+ * @param int $position (optional) Position of metabox. 1 for first, etc.
1501
+ * @return mixed Array of parent/field ids or false.
1502
  */
1503
  public function add_group_field( $parent_field_id, array $field, $position = 0 ) {
1504
  if ( ! array_key_exists( $parent_field_id, $this->meta_box['fields'] ) ) {
1526
 
1527
  /**
1528
  * Add a field array to a fields array in desired position
1529
+ *
1530
  * @since 2.0.2
1531
+ * @param array $field Metabox field config array.
1532
+ * @param array $fields Array (passed by reference) to append the field (array) to.
1533
+ * @param integer $position Optionally specify a position in the array to be inserted.
1534
  */
1535
  protected function _add_field_to_array( $field, &$fields, $position = 0 ) {
1536
  if ( $position ) {
1542
 
1543
  /**
1544
  * Remove a field from the metabox
1545
+ *
1546
  * @since 2.0.0
1547
+ * @param string $field_id The field id of the field to remove.
1548
+ * @param string $parent_field_id (optional) The field id of the group field to remove field from.
1549
+ * @return bool True if field was removed.
1550
  */
1551
  public function remove_field( $field_id, $parent_field_id = '' ) {
1552
  $ids = $this->get_field_ids( $field_id, $parent_field_id );
1570
  if ( isset( $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ] ) ) {
1571
  unset( $this->meta_box['fields'][ $field_id ]['fields'][ $sub_field_id ] );
1572
  }
1573
+
1574
  return true;
1575
  }
1576
 
1577
  /**
1578
  * Update or add a property to a field
1579
+ *
1580
  * @since 2.0.0
1581
+ * @param string $field_id Field id.
1582
+ * @param string $property Field property to set/update.
1583
+ * @param mixed $value Value to set the field property.
1584
+ * @param string $parent_field_id (optional) The field id of the group field to remove field from.
1585
+ * @return mixed Field id. Strict compare to false, as success can return a falsey value (like 0).
1586
  */
1587
  public function update_field_property( $field_id, $property, $value, $parent_field_id = '' ) {
1588
  $ids = $this->get_field_ids( $field_id, $parent_field_id );
1604
 
1605
  /**
1606
  * Check if field ids match a field and return the index/field id
1607
+ *
1608
  * @since 2.0.2
1609
+ * @param string $field_id Field id.
1610
+ * @param string $parent_field_id (optional) Parent field id.
1611
+ * @return mixed Array of field/parent ids, or false.
1612
  */
1613
  public function get_field_ids( $field_id, $parent_field_id = '' ) {
1614
  $sub_field_id = $parent_field_id ? $field_id : '';
1639
  }
1640
 
1641
  /**
1642
+ * When using the old array filter, it is unlikely field array indexes will be the field id.
1643
+ *
1644
  * @since 2.0.2
1645
+ * @param string $field_id The field id.
1646
+ * @param array $fields Array of fields to search.
1647
+ * @return mixed Field index or false.
1648
  */
1649
  public function search_old_school_array( $field_id, $fields ) {
1650
  $ids = wp_list_pluck( $fields, 'id' );
1654
 
1655
  /**
1656
  * Handles metabox property callbacks, and passes this $cmb object as property.
1657
+ *
1658
  * @since 2.2.3
1659
+ * @param callable $cb The callback method/function/closure
1660
+ * @param mixed $additional_params Any additoinal parameters which should be passed to the callback.
1661
+ * @return mixed Return of the callback function.
1662
  */
1663
+ public function do_callback( $cb, $additional_params = null ) {
1664
+ return call_user_func( $cb, $this, $additional_params );
1665
  }
1666
 
1667
  /**
1668
  * Generate a unique nonce field for each registered meta_box
1669
+ *
1670
  * @since 2.0.0
1671
+ * @return void
1672
  */
1673
  public function nonce_field() {
1674
  wp_nonce_field( $this->nonce(), $this->nonce(), false, true );
1676
 
1677
  /**
1678
  * Generate a unique nonce for each registered meta_box
1679
+ *
1680
  * @since 2.0.0
1681
+ * @return string unique nonce string.
1682
  */
1683
  public function nonce() {
1684
+ if ( ! $this->generated_nonce ) {
1685
+ $this->generated_nonce = sanitize_html_class( 'nonce_' . basename( __FILE__ ) . $this->cmb_id );
1686
  }
1687
+
1688
  return $this->generated_nonce;
1689
  }
1690
 
1691
+ /**
1692
+ * Checks if field-saving updated any fields.
1693
+ *
1694
+ * @since 2.2.5
1695
+ *
1696
+ * @return bool
1697
+ */
1698
+ public function was_updated() {
1699
+ return ! empty( $this->updated );
1700
+ }
1701
+
1702
  /**
1703
  * Whether this box is an "alternate context" box. This means the box has a 'context' property defined as:
1704
  * 'form_top', 'before_permalink', 'after_title', or 'after_editor'.
1707
  * @return bool
1708
  */
1709
  public function is_alternate_context_box() {
1710
+ return $this->prop( 'context' ) && in_array( $this->prop( 'context' ), array( 'form_top', 'before_permalink', 'after_title', 'after_editor' ), true );
1711
  }
1712
 
1713
  /**
1714
  * Magic getter for our object.
1715
+ *
1716
+ * @param string $property Object property.
1717
  * @throws Exception Throws an exception if the field is invalid.
1718
  * @return mixed
1719
  */
1720
+ public function __get( $property ) {
1721
+ switch ( $property ) {
1722
  case 'updated':
1723
  case 'has_columns':
1724
  case 'tax_metaboxes_to_remove':
1725
+ return $this->{$property};
1726
  default:
1727
+ return parent::__get( $property );
1728
  }
1729
  }
1730
 
vendor/CMB2/includes/CMB2_Ajax.php CHANGED
@@ -8,7 +8,7 @@
8
  *
9
  * @category WordPress_Plugin
10
  * @package CMB2
11
- * @author WebDevStudios
12
  * @license GPL-2.0+
13
  */
14
  class CMB2_Ajax {
@@ -22,6 +22,7 @@ class CMB2_Ajax {
22
 
23
  /**
24
  * Instance of this class
 
25
  * @since 2.2.2
26
  * @var object
27
  */
@@ -29,6 +30,7 @@ class CMB2_Ajax {
29
 
30
  /**
31
  * Get the singleton instance of this class
 
32
  * @since 2.2.2
33
  * @return CMB2_Ajax
34
  */
@@ -42,6 +44,7 @@ class CMB2_Ajax {
42
 
43
  /**
44
  * Constructor
 
45
  * @since 2.2.0
46
  */
47
  protected function __construct() {
@@ -53,6 +56,7 @@ class CMB2_Ajax {
53
 
54
  /**
55
  * Handles our oEmbed ajax request
 
56
  * @since 0.9.5
57
  * @return object oEmbed embed code | fallback | error message
58
  */
@@ -78,7 +82,9 @@ class CMB2_Ajax {
78
  $oembed_url = esc_url( $oembed_string );
79
 
80
  // Set args
81
- $embed_args = array( 'width' => $embed_width );
 
 
82
 
83
  $this->ajax_update = true;
84
 
@@ -96,8 +102,9 @@ class CMB2_Ajax {
96
 
97
  /**
98
  * Retrieves oEmbed from url/object ID
 
99
  * @since 0.9.5
100
- * @param array $args Arguments for method
101
  * @return string html markup with embed or fallback
102
  */
103
  public function get_oembed_no_edit( $args ) {
@@ -110,14 +117,14 @@ class CMB2_Ajax {
110
 
111
  $args = wp_parse_args( $args, array(
112
  'object_type' => 'post',
113
- 'oembed_args' => $this->embed_args,
114
  'field_id' => false,
115
  'wp_error' => false,
116
  ) );
117
 
118
  $this->embed_args =& $args;
119
 
120
- /**
121
  * Set the post_ID so oEmbed won't fail
122
  * wp-includes/class-wp-embed.php, WP_Embed::shortcode()
123
  */
@@ -161,8 +168,9 @@ class CMB2_Ajax {
161
 
162
  /**
163
  * Retrieves oEmbed from url/object ID
 
164
  * @since 0.9.5
165
- * @param array $args Arguments for method
166
  * @return string html markup with embed or fallback
167
  */
168
  public function get_oembed( $args ) {
@@ -259,7 +267,7 @@ class CMB2_Ajax {
259
  } else {
260
 
261
  $args = array( $this->object_type, $this->object_id, $meta_key );
262
- $args[] = 'update' === $action ? $func_args : true;
263
 
264
  // Cache the result to our metadata
265
  $status = call_user_func_array( $action . '_metadata', $args );
@@ -271,8 +279,9 @@ class CMB2_Ajax {
271
  /**
272
  * Hooks in when options-page data is saved to clean stale
273
  * oembed cache data from the option value.
 
274
  * @since 2.2.0
275
- * @param string $option_key The options-page option key
276
  * @return void
277
  */
278
  public static function clean_stale_options_page_oembeds( $option_key ) {
@@ -294,8 +303,8 @@ class CMB2_Ajax {
294
  unset( $options[ $key ] );
295
  unset( $options[ str_replace( '_oembed_time_', '_oembed_', $key ) ] );
296
  }
297
- }
298
- // Remove the cached unknown values
299
  elseif ( '{{unknown}}' === $value ) {
300
  $modified = true;
301
  unset( $options[ $key ] );
8
  *
9
  * @category WordPress_Plugin
10
  * @package CMB2
11
+ * @author CMB2 team
12
  * @license GPL-2.0+
13
  */
14
  class CMB2_Ajax {
22
 
23
  /**
24
  * Instance of this class
25
+ *
26
  * @since 2.2.2
27
  * @var object
28
  */
30
 
31
  /**
32
  * Get the singleton instance of this class
33
+ *
34
  * @since 2.2.2
35
  * @return CMB2_Ajax
36
  */
44
 
45
  /**
46
  * Constructor
47
+ *
48
  * @since 2.2.0
49
  */
50
  protected function __construct() {
56
 
57
  /**
58
  * Handles our oEmbed ajax request
59
+ *
60
  * @since 0.9.5
61
  * @return object oEmbed embed code | fallback | error message
62
  */
82
  $oembed_url = esc_url( $oembed_string );
83
 
84
  // Set args
85
+ $embed_args = array(
86
+ 'width' => $embed_width,
87
+ );
88
 
89
  $this->ajax_update = true;
90
 
102
 
103
  /**
104
  * Retrieves oEmbed from url/object ID
105
+ *
106
  * @since 0.9.5
107
+ * @param array $args Arguments for method
108
  * @return string html markup with embed or fallback
109
  */
110
  public function get_oembed_no_edit( $args ) {
117
 
118
  $args = wp_parse_args( $args, array(
119
  'object_type' => 'post',
120
+ 'oembed_args' => array(),
121
  'field_id' => false,
122
  'wp_error' => false,
123
  ) );
124
 
125
  $this->embed_args =& $args;
126
 
127
+ /*
128
  * Set the post_ID so oEmbed won't fail
129
  * wp-includes/class-wp-embed.php, WP_Embed::shortcode()
130
  */
168
 
169
  /**
170
  * Retrieves oEmbed from url/object ID
171
+ *
172
  * @since 0.9.5
173
+ * @param array $args Arguments for method
174
  * @return string html markup with embed or fallback
175
  */
176
  public function get_oembed( $args ) {
267
  } else {
268
 
269
  $args = array( $this->object_type, $this->object_id, $meta_key );
270
+ $args[] = 'update' === $action ? $func_args[1] : true;
271
 
272
  // Cache the result to our metadata
273
  $status = call_user_func_array( $action . '_metadata', $args );
279
  /**
280
  * Hooks in when options-page data is saved to clean stale
281
  * oembed cache data from the option value.
282
+ *
283
  * @since 2.2.0
284
+ * @param string $option_key The options-page option key
285
  * @return void
286
  */
287
  public static function clean_stale_options_page_oembeds( $option_key ) {
303
  unset( $options[ $key ] );
304
  unset( $options[ str_replace( '_oembed_time_', '_oembed_', $key ) ] );
305
  }
306
+ } // End if().
307
+ // Remove the cached unknown values.
308
  elseif ( '{{unknown}}' === $value ) {
309
  $modified = true;
310
  unset( $options[ $key ] );
vendor/CMB2/includes/CMB2_Base.php CHANGED
@@ -4,9 +4,9 @@
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
- * @author WebDevStudios
8
  * @license GPL-2.0+
9
- * @link http://webdevstudios.com
10
  *
11
  * @property-read $args The objects array of properties/arguments.
12
  * @property-read $meta_box The objects array of properties/arguments.
@@ -19,6 +19,7 @@ abstract class CMB2_Base {
19
 
20
  /**
21
  * Current CMB2 instance ID
 
22
  * @var string
23
  * @since 2.2.3
24
  */
@@ -26,6 +27,7 @@ abstract class CMB2_Base {
26
 
27
  /**
28
  * The object properties name.
 
29
  * @var string
30
  * @since 2.2.3
31
  */
@@ -33,6 +35,7 @@ abstract class CMB2_Base {
33
 
34
  /**
35
  * Object ID
 
36
  * @var mixed
37
  * @since 2.2.3
38
  */
@@ -40,6 +43,7 @@ abstract class CMB2_Base {
40
 
41
  /**
42
  * Type of object being handled. (e.g., post, user, comment, or term)
 
43
  * @var string
44
  * @since 2.2.3
45
  */
@@ -47,6 +51,7 @@ abstract class CMB2_Base {
47
 
48
  /**
49
  * Array of key => value data for saving. Likely $_POST data.
 
50
  * @var array
51
  * @since 2.2.3
52
  */
@@ -54,6 +59,7 @@ abstract class CMB2_Base {
54
 
55
  /**
56
  * Array of field param callback results
 
57
  * @var array
58
  * @since 2.0.0
59
  */
@@ -71,6 +77,7 @@ abstract class CMB2_Base {
71
 
72
  /**
73
  * Get started
 
74
  * @since 2.2.3
75
  * @param array $args Object properties array
76
  */
@@ -92,6 +99,7 @@ abstract class CMB2_Base {
92
 
93
  /**
94
  * Returns the object ID
 
95
  * @since 2.2.3
96
  * @param integer $object_id Object ID
97
  * @return integer Object ID
@@ -106,6 +114,7 @@ abstract class CMB2_Base {
106
 
107
  /**
108
  * Returns the object type
 
109
  * @since 2.2.3
110
  * @param string $object_type Object Type
111
  * @return string Object type
@@ -120,6 +129,7 @@ abstract class CMB2_Base {
120
 
121
  /**
122
  * Get the object type for the current page, based on the $pagenow global.
 
123
  * @since 2.2.2
124
  * @return string Page object type name.
125
  */
@@ -144,6 +154,7 @@ abstract class CMB2_Base {
144
 
145
  /**
146
  * Set object property.
 
147
  * @since 2.2.2
148
  * @param string $property Metabox config property to retrieve
149
  * @param mixed $value Value to set if no value found
@@ -157,6 +168,7 @@ abstract class CMB2_Base {
157
 
158
  /**
159
  * Get object property and optionally set a fallback
 
160
  * @since 2.0.0
161
  * @param string $property Metabox config property to retrieve
162
  * @param mixed $fallback Fallback value to set if no value found
@@ -172,6 +184,7 @@ abstract class CMB2_Base {
172
 
173
  /**
174
  * Get default field arguments specific to this CMB2 object.
 
175
  * @since 2.2.0
176
  * @param array $field_args Metabox field config array.
177
  * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent)
@@ -197,6 +210,7 @@ abstract class CMB2_Base {
197
 
198
  /**
199
  * Get a new field object specific to this CMB2 object.
 
200
  * @since 2.2.0
201
  * @param array $field_args Metabox field config array.
202
  * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent)
@@ -237,6 +251,7 @@ abstract class CMB2_Base {
237
 
238
  /**
239
  * Store results of the param callbacks for continual access
 
240
  * @since 2.0.0
241
  * @param string $param Field parameter
242
  * @return mixed Results of param/param callback
@@ -273,18 +288,36 @@ abstract class CMB2_Base {
273
  return $this->callback_results[ $param ];
274
  }
275
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
276
  /**
277
  * Handles the parameter callbacks, and passes this object as parameter.
 
278
  * @since 2.2.3
279
- * @param callable $cb The callback method/function/closure
280
- * @return mixed Return of the callback function.
 
281
  */
282
- protected function do_callback( $cb ) {
283
- return call_user_func( $cb, $this->{$this->properties_name}, $this );
284
  }
285
 
286
  /**
287
  * Checks if field has a callback value
 
288
  * @since 1.0.1
289
  * @param string $cb Callback string
290
  * @return mixed NULL, false for NO validation, or $cb string if it exists.
@@ -315,10 +348,10 @@ abstract class CMB2_Base {
315
  * which is callable. If so, it registers the callback, and if not,
316
  * converts the maybe-modified $val to a boolean for return.
317
  *
318
- * The registered handlers will have a parameter name which matches the filter, except:
319
- * - The 'cmb2_api' prefix will be removed
320
- * - A '_cb' suffix will be added (to stay inline with other '*_cb' parameters).
321
- *
322
  * @since 2.2.3
323
  *
324
  * @param string $hook_name The hook name.
@@ -358,7 +391,7 @@ abstract class CMB2_Base {
358
  }
359
 
360
  // Cast to bool.
361
- return !! $val;
362
  }
363
 
364
  /**
@@ -386,11 +419,11 @@ abstract class CMB2_Base {
386
  switch ( $message ) {
387
 
388
  case self::DEPRECATED_PARAM:
389
- $message = sprintf( __( 'The "%s" field parameter has been deprecated in favor of the "%s" parameter.', 'cmb2' ), $args[3], $args[4] );
390
  break;
391
 
392
  case self::DEPRECATED_CB_PARAM:
393
- $message = sprintf( __( 'Using the "%s" field parameter as a callback has been deprecated in favor of the "%s" parameter.', 'cmb2' ), $args[3], $args[4] );
394
  break;
395
 
396
  default:
@@ -421,15 +454,13 @@ abstract class CMB2_Base {
421
  if ( function_exists( '__' ) ) {
422
  if ( ! is_null( $message ) ) {
423
  trigger_error( sprintf( __( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s! %3$s', 'cmb2' ), $function, $version, $message ) );
424
- }
425
- else {
426
  trigger_error( sprintf( __( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s with no alternative available.', 'cmb2' ), $function, $version ) );
427
  }
428
  } else {
429
  if ( ! is_null( $message ) ) {
430
  trigger_error( sprintf( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s! %3$s', $function, $version, $message ) );
431
- }
432
- else {
433
  trigger_error( sprintf( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s with no alternative available.', $function, $version ) );
434
  }
435
  }
@@ -438,6 +469,7 @@ abstract class CMB2_Base {
438
 
439
  /**
440
  * Magic getter for our object.
 
441
  * @param string $field
442
  * @throws Exception Throws an exception if the field is invalid.
443
  * @return mixed
@@ -462,6 +494,7 @@ abstract class CMB2_Base {
462
 
463
  /**
464
  * Allows overloading the object with methods... Whooaaa oooh it's magic, y'knoooow.
 
465
  * @since 1.0.0
466
  * @param string $method Non-existent method.
467
  * @param array $args All arguments passed to the method
@@ -469,7 +502,7 @@ abstract class CMB2_Base {
469
  public function __call( $method, $args ) {
470
  $object_class = strtolower( get_class( $this ) );
471
 
472
- if ( ! has_filter( "{$object_class}_inherit_{$method}" ) ) {
473
  throw new Exception( sprintf( esc_html__( 'Invalid %1$s method: %2$s', 'cmb2' ), get_class( $this ), $method ) );
474
  }
475
 
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
+ * @author CMB2 team
8
  * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
  *
11
  * @property-read $args The objects array of properties/arguments.
12
  * @property-read $meta_box The objects array of properties/arguments.
19
 
20
  /**
21
  * Current CMB2 instance ID
22
+ *
23
  * @var string
24
  * @since 2.2.3
25
  */
27
 
28
  /**
29
  * The object properties name.
30
+ *
31
  * @var string
32
  * @since 2.2.3
33
  */
35
 
36
  /**
37
  * Object ID
38
+ *
39
  * @var mixed
40
  * @since 2.2.3
41
  */
43
 
44
  /**
45
  * Type of object being handled. (e.g., post, user, comment, or term)
46
+ *
47
  * @var string
48
  * @since 2.2.3
49
  */
51
 
52
  /**
53
  * Array of key => value data for saving. Likely $_POST data.
54
+ *
55
  * @var array
56
  * @since 2.2.3
57
  */
59
 
60
  /**
61
  * Array of field param callback results
62
+ *
63
  * @var array
64
  * @since 2.0.0
65
  */
77
 
78
  /**
79
  * Get started
80
+ *
81
  * @since 2.2.3
82
  * @param array $args Object properties array
83
  */
99
 
100
  /**
101
  * Returns the object ID
102
+ *
103
  * @since 2.2.3
104
  * @param integer $object_id Object ID
105
  * @return integer Object ID
114
 
115
  /**
116
  * Returns the object type
117
+ *
118
  * @since 2.2.3
119
  * @param string $object_type Object Type
120
  * @return string Object type
129
 
130
  /**
131
  * Get the object type for the current page, based on the $pagenow global.
132
+ *
133
  * @since 2.2.2
134
  * @return string Page object type name.
135
  */
154
 
155
  /**
156
  * Set object property.
157
+ *
158
  * @since 2.2.2
159
  * @param string $property Metabox config property to retrieve
160
  * @param mixed $value Value to set if no value found
168
 
169
  /**
170
  * Get object property and optionally set a fallback
171
+ *
172
  * @since 2.0.0
173
  * @param string $property Metabox config property to retrieve
174
  * @param mixed $fallback Fallback value to set if no value found
184
 
185
  /**
186
  * Get default field arguments specific to this CMB2 object.
187
+ *
188
  * @since 2.2.0
189
  * @param array $field_args Metabox field config array.
190
  * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent)
210
 
211
  /**
212
  * Get a new field object specific to this CMB2 object.
213
+ *
214
  * @since 2.2.0
215
  * @param array $field_args Metabox field config array.
216
  * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent)
251
 
252
  /**
253
  * Store results of the param callbacks for continual access
254
+ *
255
  * @since 2.0.0
256
  * @param string $param Field parameter
257
  * @return mixed Results of param/param callback
288
  return $this->callback_results[ $param ];
289
  }
290
 
291
+ /**
292
+ * Unset the cached results of the param callback.
293
+ *
294
+ * @since 2.2.6
295
+ * @param string $param Field parameter
296
+ * @return CMB2_Base
297
+ */
298
+ public function unset_param_callback_cache( $param ) {
299
+ if ( isset( $this->callback_results[ $param ] ) ) {
300
+ unset( $this->callback_results[ $param ] );
301
+ }
302
+
303
+ return $this;
304
+ }
305
+
306
  /**
307
  * Handles the parameter callbacks, and passes this object as parameter.
308
+ *
309
  * @since 2.2.3
310
+ * @param callable $cb The callback method/function/closure
311
+ * @param mixed $additional_params Any additoinal parameters which should be passed to the callback.
312
+ * @return mixed Return of the callback function.
313
  */
314
+ protected function do_callback( $cb, $additional_params = null ) {
315
+ return call_user_func( $cb, $this->{$this->properties_name}, $this, $additional_params );
316
  }
317
 
318
  /**
319
  * Checks if field has a callback value
320
+ *
321
  * @since 1.0.1
322
  * @param string $cb Callback string
323
  * @return mixed NULL, false for NO validation, or $cb string if it exists.
348
  * which is callable. If so, it registers the callback, and if not,
349
  * converts the maybe-modified $val to a boolean for return.
350
  *
351
+ * The registered handlers will have a parameter name which matches the filter, except:
352
+ * - The 'cmb2_api' prefix will be removed
353
+ * - A '_cb' suffix will be added (to stay inline with other '*_cb' parameters).
354
+ *
355
  * @since 2.2.3
356
  *
357
  * @param string $hook_name The hook name.
391
  }
392
 
393
  // Cast to bool.
394
+ return ! ! $val;
395
  }
396
 
397
  /**
419
  switch ( $message ) {
420
 
421
  case self::DEPRECATED_PARAM:
422
+ $message = sprintf( __( 'The "%1$s" field parameter has been deprecated in favor of the "%1$s" parameter.', 'cmb2' ), $args[3], $args[4] );
423
  break;
424
 
425
  case self::DEPRECATED_CB_PARAM:
426
+ $message = sprintf( __( 'Using the "%1$s" field parameter as a callback has been deprecated in favor of the "%1$s" parameter.', 'cmb2' ), $args[3], $args[4] );
427
  break;
428
 
429
  default:
454
  if ( function_exists( '__' ) ) {
455
  if ( ! is_null( $message ) ) {
456
  trigger_error( sprintf( __( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s! %3$s', 'cmb2' ), $function, $version, $message ) );
457
+ } else {
 
458
  trigger_error( sprintf( __( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s with no alternative available.', 'cmb2' ), $function, $version ) );
459
  }
460
  } else {
461
  if ( ! is_null( $message ) ) {
462
  trigger_error( sprintf( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s! %3$s', $function, $version, $message ) );
463
+ } else {
 
464
  trigger_error( sprintf( '%1$s was called with a parameter that is <strong>deprecated</strong> since version %2$s with no alternative available.', $function, $version ) );
465
  }
466
  }
469
 
470
  /**
471
  * Magic getter for our object.
472
+ *
473
  * @param string $field
474
  * @throws Exception Throws an exception if the field is invalid.
475
  * @return mixed
494
 
495
  /**
496
  * Allows overloading the object with methods... Whooaaa oooh it's magic, y'knoooow.
497
+ *
498
  * @since 1.0.0
499
  * @param string $method Non-existent method.
500
  * @param array $args All arguments passed to the method
502
  public function __call( $method, $args ) {
503
  $object_class = strtolower( get_class( $this ) );
504
 
505
+ if ( ! has_filter( "{$object_class}_inherit_{$method}" ) ) {
506
  throw new Exception( sprintf( esc_html__( 'Invalid %1$s method: %2$s', 'cmb2' ), get_class( $this ), $method ) );
507
  }
508
 
vendor/CMB2/includes/CMB2_Boxes.php CHANGED
@@ -5,9 +5,9 @@
5
  *
6
  * @category WordPress_Plugin
7
  * @package CMB2
8
- * @author WebDevStudios
9
  * @license GPL-2.0+
10
- * @link http://webdevstudios.com
11
  */
12
  class CMB2_Boxes {
13
 
@@ -72,13 +72,14 @@ class CMB2_Boxes {
72
 
73
  /**
74
  * Retrieve all CMB2 instances that have the specified property set.
 
75
  * @since 2.2.3
76
  * @param string $property Property name.
77
  * @param mixed $ignore The value to ignore.
78
  * @return CMB2[] Array of matching cmb2 instances.
79
  */
80
  public static function get_by_property( $property, $ignore = null ) {
81
- $by_property[ $property ] = array();
82
 
83
  foreach ( self::$cmb2_instances as $cmb_id => $cmb ) {
84
 
@@ -86,10 +87,10 @@ class CMB2_Boxes {
86
  continue;
87
  }
88
 
89
- $by_property[ $property ][ $cmb_id ] = $cmb;
90
  }
91
 
92
- return $by_property[ $property ];
93
  }
94
 
95
  }
5
  *
6
  * @category WordPress_Plugin
7
  * @package CMB2
8
+ * @author CMB2 team
9
  * @license GPL-2.0+
10
+ * @link https://cmb2.io
11
  */
12
  class CMB2_Boxes {
13
 
72
 
73
  /**
74
  * Retrieve all CMB2 instances that have the specified property set.
75
+ *
76
  * @since 2.2.3
77
  * @param string $property Property name.
78
  * @param mixed $ignore The value to ignore.
79
  * @return CMB2[] Array of matching cmb2 instances.
80
  */
81
  public static function get_by_property( $property, $ignore = null ) {
82
+ $boxes = array();
83
 
84
  foreach ( self::$cmb2_instances as $cmb_id => $cmb ) {
85
 
87
  continue;
88
  }
89
 
90
+ $boxes[ $cmb_id ] = $cmb;
91
  }
92
 
93
+ return $boxes;
94
  }
95
 
96
  }
vendor/CMB2/includes/CMB2_Field.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  *
13
  * @method string _id()
14
  * @method string type()
@@ -18,6 +18,7 @@ class CMB2_Field extends CMB2_Base {
18
 
19
  /**
20
  * The object properties name.
 
21
  * @var string
22
  * @since 2.2.3
23
  */
@@ -25,6 +26,7 @@ class CMB2_Field extends CMB2_Base {
25
 
26
  /**
27
  * Field arguments
 
28
  * @var mixed
29
  * @since 1.1.0
30
  */
@@ -32,6 +34,7 @@ class CMB2_Field extends CMB2_Base {
32
 
33
  /**
34
  * Field group object or false (if no group)
 
35
  * @var mixed
36
  * @since 1.1.0
37
  */
@@ -39,6 +42,7 @@ class CMB2_Field extends CMB2_Base {
39
 
40
  /**
41
  * Field meta value
 
42
  * @var mixed
43
  * @since 1.1.0
44
  */
@@ -46,6 +50,7 @@ class CMB2_Field extends CMB2_Base {
46
 
47
  /**
48
  * Field meta value
 
49
  * @var mixed
50
  * @since 1.1.0
51
  */
@@ -53,6 +58,7 @@ class CMB2_Field extends CMB2_Base {
53
 
54
  /**
55
  * Grouped Field's current numeric index during the save process
 
56
  * @var mixed
57
  * @since 2.0.0
58
  */
@@ -60,6 +66,7 @@ class CMB2_Field extends CMB2_Base {
60
 
61
  /**
62
  * Array of field options
 
63
  * @var array
64
  * @since 2.0.0
65
  */
@@ -67,6 +74,7 @@ class CMB2_Field extends CMB2_Base {
67
 
68
  /**
69
  * Array of provided field text strings
 
70
  * @var array
71
  * @since 2.0.0
72
  */
@@ -74,6 +82,7 @@ class CMB2_Field extends CMB2_Base {
74
 
75
  /**
76
  * The field's render context. In most cases, 'edit', but can be 'display'.
 
77
  * @var string
78
  * @since 2.2.2
79
  */
@@ -107,6 +116,7 @@ class CMB2_Field extends CMB2_Base {
107
 
108
  /**
109
  * Constructs our field object
 
110
  * @since 1.1.0
111
  * @param array $args Field arguments
112
  */
@@ -135,6 +145,7 @@ class CMB2_Field extends CMB2_Base {
135
 
136
  /**
137
  * Non-existent methods fallback to checking for field arguments of the same name
 
138
  * @since 1.1.0
139
  * @param string $name Method name
140
  * @param array $arguments Array of passed-in arguments
@@ -151,6 +162,7 @@ class CMB2_Field extends CMB2_Base {
151
 
152
  /**
153
  * Retrieves the field id
 
154
  * @since 1.1.0
155
  * @param boolean $raw Whether to retrieve pre-modidifed id
156
  * @return string Field id
@@ -162,6 +174,7 @@ class CMB2_Field extends CMB2_Base {
162
 
163
  /**
164
  * Get a field argument
 
165
  * @since 1.1.0
166
  * @param string $key Argument to check
167
  * @param string $_key Sub argument to check
@@ -184,9 +197,10 @@ class CMB2_Field extends CMB2_Base {
184
 
185
  /**
186
  * Retrieve a portion of a field property
 
187
  * @since 1.1.0
188
- * @param string $var Field property to check
189
- * @param string $key Field property array key to check
190
  * @return mixed Queried property value or false
191
  */
192
  public function _data( $var, $key = '' ) {
@@ -199,6 +213,7 @@ class CMB2_Field extends CMB2_Base {
199
 
200
  /**
201
  * Get Field's value
 
202
  * @since 1.1.0
203
  * @param string $key If value is an array, is used to get array key->value
204
  * @return mixed Field value or false if non-existent
@@ -209,6 +224,7 @@ class CMB2_Field extends CMB2_Base {
209
 
210
  /**
211
  * Retrieves metadata/option data
 
212
  * @since 1.0.1
213
  * @param string $field_id Meta key/Option array key
214
  * @param array $args Override arguments
@@ -217,7 +233,7 @@ class CMB2_Field extends CMB2_Base {
217
  public function get_data( $field_id = '', $args = array() ) {
218
  if ( $field_id ) {
219
  $args['field_id'] = $field_id;
220
- } else if ( $this->group ) {
221
  $args['field_id'] = $this->group->id();
222
  }
223
 
@@ -280,12 +296,15 @@ class CMB2_Field extends CMB2_Base {
280
 
281
  /**
282
  * Updates metadata/option data
 
283
  * @since 1.0.1
284
  * @param mixed $new_value Value to update data with
285
  * @param bool $single Whether data is an array (add_metadata)
286
  */
287
  public function update_data( $new_value, $single = true ) {
288
- $a = $this->data_args( array( 'single' => $single ) );
 
 
289
 
290
  $a['value'] = $a['repeat'] ? array_values( $new_value ) : $new_value;
291
 
@@ -351,11 +370,14 @@ class CMB2_Field extends CMB2_Base {
351
 
352
  /**
353
  * Removes/updates metadata/option data
 
354
  * @since 1.0.1
355
  * @param string $old Old value
356
  */
357
  public function remove_data( $old = '' ) {
358
- $a = $this->data_args( array( 'old' => $old ) );
 
 
359
 
360
  /**
361
  * Filter whether to override removing of meta value.
@@ -401,8 +423,8 @@ class CMB2_Field extends CMB2_Base {
401
  // If no override, remove as usual
402
  if ( null !== $override ) {
403
  return $override;
404
- }
405
- // Option page handling
406
  elseif ( 'options-page' === $a['type'] || empty( $a['id'] ) ) {
407
  return cmb2_options( $a['id'] )->remove( $a['field_id'] );
408
  }
@@ -413,6 +435,7 @@ class CMB2_Field extends CMB2_Base {
413
 
414
  /**
415
  * Data variables for get/set data methods
 
416
  * @since 1.1.0
417
  * @param array $args Override arguments
418
  * @return array Updated arguments
@@ -430,6 +453,7 @@ class CMB2_Field extends CMB2_Base {
430
 
431
  /**
432
  * Checks if field has a registered sanitization callback
 
433
  * @since 1.0.1
434
  * @param mixed $meta_value Meta value
435
  * @return mixed Possibly sanitized meta value
@@ -480,6 +504,7 @@ class CMB2_Field extends CMB2_Base {
480
 
481
  /**
482
  * Process $_POST data to save this field's value
 
483
  * @since 2.0.3
484
  * @param array $data_to_save $_POST data to check
485
  * @return array|int|bool Result of save, false on failure
@@ -496,6 +521,7 @@ class CMB2_Field extends CMB2_Base {
496
 
497
  /**
498
  * Sanitize/store a value to this field
 
499
  * @since 2.0.0
500
  * @param array $meta_value Desired value to sanitize/store
501
  * @return array|int|bool Result of save. false on failure
@@ -573,6 +599,7 @@ class CMB2_Field extends CMB2_Base {
573
 
574
  /**
575
  * Determine if current type is exempt from escaping
 
576
  * @since 1.1.0
577
  * @return bool True if exempt
578
  */
@@ -587,6 +614,7 @@ class CMB2_Field extends CMB2_Base {
587
 
588
  /**
589
  * Determine if current type cannot be repeatable
 
590
  * @since 1.1.0
591
  * @param string $type Field type to check
592
  * @return bool True if type cannot be repeatable
@@ -595,15 +623,20 @@ class CMB2_Field extends CMB2_Base {
595
  // These types cannot be repeatable.
596
  $internal_fields = array(
597
  // Use file_list instead
598
- 'file' => 1,
599
- 'radio' => 1,
600
- 'title' => 1,
601
- 'wysiwyg' => 1,
602
- 'checkbox' => 1,
603
- 'radio_inline' => 1,
604
- 'taxonomy_radio' => 1,
605
- 'taxonomy_select' => 1,
606
- 'taxonomy_multicheck' => 1,
 
 
 
 
 
607
  );
608
 
609
  /**
@@ -621,8 +654,45 @@ class CMB2_Field extends CMB2_Base {
621
  return isset( $all_fields[ $type ] );
622
  }
623
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
624
  /**
625
  * Escape the value before output. Defaults to 'esc_attr()'
 
626
  * @since 1.0.1
627
  * @param callable $func Escaping function (if not esc_attr())
628
  * @param mixed $meta_value Meta value
@@ -671,6 +741,7 @@ class CMB2_Field extends CMB2_Base {
671
 
672
  /**
673
  * Return non-empty value or field default if value IS empty
 
674
  * @since 2.0.0
675
  * @param mixed $meta_value Field value
676
  * @return mixed Field value, or default value
@@ -681,6 +752,7 @@ class CMB2_Field extends CMB2_Base {
681
 
682
  /**
683
  * Offset a time value based on timezone
 
684
  * @since 1.0.0
685
  * @return string Offset time string
686
  */
@@ -690,6 +762,7 @@ class CMB2_Field extends CMB2_Base {
690
 
691
  /**
692
  * Return timezone string
 
693
  * @since 1.0.0
694
  * @return string Timezone string
695
  */
@@ -699,9 +772,9 @@ class CMB2_Field extends CMB2_Base {
699
  // Is timezone arg set?
700
  if ( $this->args( 'timezone' ) ) {
701
  $value = $this->args( 'timezone' );
702
- }
703
  // Is there another meta key with a timezone stored as its value we should use?
704
- else if ( $this->args( 'timezone_meta_key' ) ) {
705
  $value = $this->get_data( $this->args( 'timezone_meta_key' ) );
706
  }
707
 
@@ -710,6 +783,7 @@ class CMB2_Field extends CMB2_Base {
710
 
711
  /**
712
  * Format the timestamp field value based on the field date/time format arg
 
713
  * @since 2.0.0
714
  * @param int $meta_value Timestamp
715
  * @param string $format Either date_format or time_format
@@ -721,6 +795,7 @@ class CMB2_Field extends CMB2_Base {
721
 
722
  /**
723
  * Return a formatted timestamp for a field
 
724
  * @since 2.0.0
725
  * @param string $format Either date_format or time_format
726
  * @param string $meta_value Optional meta value to check
@@ -741,6 +816,7 @@ class CMB2_Field extends CMB2_Base {
741
 
742
  /**
743
  * Get timestamp from text date
 
744
  * @since 2.2.0
745
  * @param string $value Date value
746
  * @return mixed Unix timestamp representing the date.
@@ -751,6 +827,7 @@ class CMB2_Field extends CMB2_Base {
751
 
752
  /**
753
  * Get field render callback and Render the field row
 
754
  * @since 1.0.0
755
  */
756
  public function render_field() {
@@ -764,6 +841,7 @@ class CMB2_Field extends CMB2_Base {
764
 
765
  /**
766
  * Default field render callback
 
767
  * @since 2.1.1
768
  */
769
  public function render_field_callback() {
@@ -845,7 +923,8 @@ class CMB2_Field extends CMB2_Base {
845
  * @param array $field_types The types of fields which should get the 'table-layout' class
846
  */
847
  $repeat_table_rows_types = apply_filters( 'cmb2_repeat_table_row_types', array(
848
- 'text_url', 'text',
 
849
  ) );
850
 
851
  $conditional_classes = array(
@@ -888,6 +967,7 @@ class CMB2_Field extends CMB2_Base {
888
 
889
  /**
890
  * Get field display callback and render the display value in the column.
 
891
  * @since 2.2.2
892
  */
893
  public function render_column() {
@@ -901,6 +981,7 @@ class CMB2_Field extends CMB2_Base {
901
 
902
  /**
903
  * Default callback to outputs field value in a display format.
 
904
  * @since 2.2.2
905
  */
906
  public function display_value_callback() {
@@ -949,6 +1030,7 @@ class CMB2_Field extends CMB2_Base {
949
 
950
  /**
951
  * Replaces a hash key - {#} - with the repeatable index
 
952
  * @since 1.2.0
953
  * @param string $value Value to update
954
  * @return string Updated value
@@ -963,8 +1045,8 @@ class CMB2_Field extends CMB2_Base {
963
  * For back-compatibility, falls back to checking the options array.
964
  *
965
  * @since 2.2.2
966
- * @param string $text_key Key in field's text array
967
- * @param string $fallback Fallback text
968
  * @return string Text
969
  */
970
  public function get_string( $text_key, $fallback ) {
@@ -993,20 +1075,32 @@ class CMB2_Field extends CMB2_Base {
993
  }
994
 
995
  /**
996
- * Retrieve options args. Calls options_cb if it exists.
 
997
  * @since 2.0.0
998
- * @param string $key Specific option to retrieve
999
  * @return array Array of options
1000
  */
1001
  public function options( $key = '' ) {
1002
- if ( ! empty( $this->field_options ) ) {
1003
- if ( $key ) {
1004
- return array_key_exists( $key, $this->field_options ) ? $this->field_options[ $key ] : false;
1005
- }
1006
 
1007
- return $this->field_options;
 
1008
  }
1009
 
 
 
 
 
 
 
 
 
 
 
 
1010
  $this->field_options = (array) $this->args['options'];
1011
 
1012
  if ( is_callable( $this->args['options_cb'] ) ) {
@@ -1017,15 +1111,12 @@ class CMB2_Field extends CMB2_Base {
1017
  }
1018
  }
1019
 
1020
- if ( $key ) {
1021
- return array_key_exists( $key, $this->field_options ) ? $this->field_options[ $key ] : false;
1022
- }
1023
-
1024
  return $this->field_options;
1025
  }
1026
 
1027
  /**
1028
  * Store JS dependencies as part of the field args.
 
1029
  * @since 2.2.0
1030
  * @param array $dependencies Dependies to register for this field.
1031
  */
@@ -1045,62 +1136,31 @@ class CMB2_Field extends CMB2_Base {
1045
  * @return mixed Default field value
1046
  */
1047
  public function get_default() {
1048
- if ( null !== $this->args['default'] ) {
1049
- return $this->args['default'];
 
 
1050
  }
1051
 
1052
  $param = is_callable( $this->args['default_cb'] ) ? 'default_cb' : 'default';
1053
- $default = $this->get_param_callback_result( $param );
1054
 
1055
- // Allow a filter override of the default value
1056
- $this->args['default'] = apply_filters( 'cmb2_default_filter', $default, $this );
1057
-
1058
- return $this->args['default'];
1059
  }
1060
 
1061
  /**
1062
  * Fills in empty field parameters with defaults
 
1063
  * @since 1.1.0
1064
- * @param array $args Metabox field config array
1065
- * @param array Modified field config array.
 
1066
  */
1067
  public function _set_field_defaults( $args ) {
1068
 
1069
  // Set up blank or default values for empty ones
1070
- $args = wp_parse_args( $args, array(
1071
- 'type' => '',
1072
- 'name' => '',
1073
- 'desc' => '',
1074
- 'before' => '',
1075
- 'after' => '',
1076
- 'options' => array(),
1077
- 'options_cb' => '',
1078
- 'text' => array(),
1079
- 'text_cb' => '',
1080
- 'attributes' => array(),
1081
- 'protocols' => null,
1082
- 'default' => null,
1083
- 'default_cb' => '',
1084
- 'classes' => null,
1085
- 'classes_cb' => '',
1086
- 'select_all_button' => true,
1087
- 'multiple' => false,
1088
- 'repeatable' => isset( $args['type'] ) && 'group' == $args['type'],
1089
- 'inline' => false,
1090
- 'on_front' => true,
1091
- 'show_names' => true,
1092
- 'save_field' => true, // Will not save if false
1093
- 'date_format' => 'm\/d\/Y',
1094
- 'time_format' => 'h:i A',
1095
- 'description' => isset( $args['desc'] ) ? $args['desc'] : '',
1096
- 'preview_size' => 'file' == $args['type'] ? array( 350, 350 ) : array( 50, 50 ),
1097
- 'render_row_cb' => array( $this, 'render_field_callback' ),
1098
- 'display_cb' => array( $this, 'display_value_callback' ),
1099
- 'label_cb' => 'title' != $args['type'] ? array( $this, 'label' ) : '',
1100
- 'column' => false,
1101
- 'js_dependencies' => array(),
1102
- 'show_in_rest' => null,
1103
- ) );
1104
 
1105
  /*
1106
  * Deprecated usage:
@@ -1113,38 +1173,15 @@ class CMB2_Field extends CMB2_Base {
1113
 
1114
  $args['repeatable'] = $args['repeatable'] && ! $this->repeatable_exception( $args['type'] );
1115
  $args['inline'] = $args['inline'] || false !== stripos( $args['type'], '_inline' );
1116
-
1117
- $args['options'] = 'group' == $args['type'] ? wp_parse_args( $args['options'], array(
1118
- 'add_button' => esc_html__( 'Add Group', 'cmb2' ),
1119
- 'remove_button' => esc_html__( 'Remove Group', 'cmb2' ),
1120
- ) ) : $args['options'];
1121
-
1122
  $args['_id'] = $args['id'];
1123
  $args['_name'] = $args['id'];
1124
 
1125
- if ( $this->group ) {
1126
-
1127
- $args['id'] = $this->group->args( 'id' ) . '_' . $this->group->index . '_' . $args['id'];
1128
- $args['_name'] = $this->group->args( 'id' ) . '[' . $this->group->index . '][' . $args['_name'] . ']';
1129
  }
1130
 
1131
- if ( 'wysiwyg' == $args['type'] ) {
1132
- $args['id'] = strtolower( str_ireplace( '-', '_', $args['id'] ) );
1133
- $args['options']['textarea_name'] = $args['_name'];
1134
- }
1135
-
1136
- $option_types = apply_filters( 'cmb2_all_or_nothing_types', array( 'select', 'radio', 'radio_inline', 'taxonomy_select', 'taxonomy_radio', 'taxonomy_radio_inline' ), $this );
1137
-
1138
- if ( in_array( $args['type'], $option_types, true ) ) {
1139
-
1140
- $args['show_option_none'] = isset( $args['show_option_none'] ) ? $args['show_option_none'] : null;
1141
- $args['show_option_none'] = true === $args['show_option_none'] ? esc_html__( 'None', 'cmb2' ) : $args['show_option_none'];
1142
-
1143
- if ( null === $args['show_option_none'] ) {
1144
- $off_by_default = in_array( $args['type'], array( 'select', 'radio', 'radio_inline' ), true );
1145
- $args['show_option_none'] = $off_by_default ? false : esc_html__( 'None', 'cmb2' );
1146
- }
1147
-
1148
  }
1149
 
1150
  $args['has_supporting_data'] = in_array(
@@ -1161,8 +1198,123 @@ class CMB2_Field extends CMB2_Base {
1161
  return $args;
1162
  }
1163
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1164
  /**
1165
  * Get default field arguments specific to this CMB2 object.
 
1166
  * @since 2.2.0
1167
  * @param array $field_args Metabox field config array.
1168
  * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent)
@@ -1181,12 +1333,12 @@ class CMB2_Field extends CMB2_Base {
1181
  }
1182
 
1183
  /**
1184
- * Returns a cloned version of this field object with, but with
1185
  * modified/overridden field arguments.
1186
  *
1187
  * @since 2.2.2
1188
- * @param array $field_args Array of field arguments, or entire array of
1189
- * arguments for CMB2_Field
1190
  *
1191
  * @return CMB2_Field The new CMB2_Field instance.
1192
  */
@@ -1211,8 +1363,9 @@ class CMB2_Field extends CMB2_Base {
1211
 
1212
  /**
1213
  * Converts deprecated field parameters to the current/proper parameter, and throws a deprecation notice.
 
1214
  * @since 2.2.3
1215
- * @param array $args Metabox field config array.
1216
  * @param array Modified field config array.
1217
  */
1218
  protected function convert_deprecated_params( $args ) {
@@ -1221,7 +1374,6 @@ class CMB2_Field extends CMB2_Base {
1221
 
1222
  // We'll let this one be.
1223
  // $this->deprecated_param( __CLASS__ . '::__construct()', '2.2.3', self::DEPRECATED_PARAM, 'row_classes', 'classes' );
1224
-
1225
  // row_classes param could be a callback. This is definitely deprecated.
1226
  if ( is_callable( $args['row_classes'] ) ) {
1227
 
@@ -1237,7 +1389,6 @@ class CMB2_Field extends CMB2_Base {
1237
  unset( $args['row_classes'] );
1238
  }
1239
 
1240
-
1241
  // default param can be passed a callback as well
1242
  if ( is_callable( $args['default'] ) ) {
1243
 
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  *
13
  * @method string _id()
14
  * @method string type()
18
 
19
  /**
20
  * The object properties name.
21
+ *
22
  * @var string
23
  * @since 2.2.3
24
  */
26
 
27
  /**
28
  * Field arguments
29
+ *
30
  * @var mixed
31
  * @since 1.1.0
32
  */
34
 
35
  /**
36
  * Field group object or false (if no group)
37
+ *
38
  * @var mixed
39
  * @since 1.1.0
40
  */
42
 
43
  /**
44
  * Field meta value
45
+ *
46
  * @var mixed
47
  * @since 1.1.0
48
  */
50
 
51
  /**
52
  * Field meta value
53
+ *
54
  * @var mixed
55
  * @since 1.1.0
56
  */
58
 
59
  /**
60
  * Grouped Field's current numeric index during the save process
61
+ *
62
  * @var mixed
63
  * @since 2.0.0
64
  */
66
 
67
  /**
68
  * Array of field options
69
+ *
70
  * @var array
71
  * @since 2.0.0
72
  */
74
 
75
  /**
76
  * Array of provided field text strings
77
+ *
78
  * @var array
79
  * @since 2.0.0
80
  */
82
 
83
  /**
84
  * The field's render context. In most cases, 'edit', but can be 'display'.
85
+ *
86
  * @var string
87
  * @since 2.2.2
88
  */
116
 
117
  /**
118
  * Constructs our field object
119
+ *
120
  * @since 1.1.0
121
  * @param array $args Field arguments
122
  */
145
 
146
  /**
147
  * Non-existent methods fallback to checking for field arguments of the same name
148
+ *
149
  * @since 1.1.0
150
  * @param string $name Method name
151
  * @param array $arguments Array of passed-in arguments
162
 
163
  /**
164
  * Retrieves the field id
165
+ *
166
  * @since 1.1.0
167
  * @param boolean $raw Whether to retrieve pre-modidifed id
168
  * @return string Field id
174
 
175
  /**
176
  * Get a field argument
177
+ *
178
  * @since 1.1.0
179
  * @param string $key Argument to check
180
  * @param string $_key Sub argument to check
197
 
198
  /**
199
  * Retrieve a portion of a field property
200
+ *
201
  * @since 1.1.0
202
+ * @param string $var Field property to check
203
+ * @param string $key Field property array key to check
204
  * @return mixed Queried property value or false
205
  */
206
  public function _data( $var, $key = '' ) {
213
 
214
  /**
215
  * Get Field's value
216
+ *
217
  * @since 1.1.0
218
  * @param string $key If value is an array, is used to get array key->value
219
  * @return mixed Field value or false if non-existent
224
 
225
  /**
226
  * Retrieves metadata/option data
227
+ *
228
  * @since 1.0.1
229
  * @param string $field_id Meta key/Option array key
230
  * @param array $args Override arguments
233
  public function get_data( $field_id = '', $args = array() ) {
234
  if ( $field_id ) {
235
  $args['field_id'] = $field_id;
236
+ } elseif ( $this->group ) {
237
  $args['field_id'] = $this->group->id();
238
  }
239
 
296
 
297
  /**
298
  * Updates metadata/option data
299
+ *
300
  * @since 1.0.1
301
  * @param mixed $new_value Value to update data with
302
  * @param bool $single Whether data is an array (add_metadata)
303
  */
304
  public function update_data( $new_value, $single = true ) {
305
+ $a = $this->data_args( array(
306
+ 'single' => $single,
307
+ ) );
308
 
309
  $a['value'] = $a['repeat'] ? array_values( $new_value ) : $new_value;
310
 
370
 
371
  /**
372
  * Removes/updates metadata/option data
373
+ *
374
  * @since 1.0.1
375
  * @param string $old Old value
376
  */
377
  public function remove_data( $old = '' ) {
378
+ $a = $this->data_args( array(
379
+ 'old' => $old,
380
+ ) );
381
 
382
  /**
383
  * Filter whether to override removing of meta value.
423
  // If no override, remove as usual
424
  if ( null !== $override ) {
425
  return $override;
426
+ } // End if().
427
+ // Option page handling.
428
  elseif ( 'options-page' === $a['type'] || empty( $a['id'] ) ) {
429
  return cmb2_options( $a['id'] )->remove( $a['field_id'] );
430
  }
435
 
436
  /**
437
  * Data variables for get/set data methods
438
+ *
439
  * @since 1.1.0
440
  * @param array $args Override arguments
441
  * @return array Updated arguments
453
 
454
  /**
455
  * Checks if field has a registered sanitization callback
456
+ *
457
  * @since 1.0.1
458
  * @param mixed $meta_value Meta value
459
  * @return mixed Possibly sanitized meta value
504
 
505
  /**
506
  * Process $_POST data to save this field's value
507
+ *
508
  * @since 2.0.3
509
  * @param array $data_to_save $_POST data to check
510
  * @return array|int|bool Result of save, false on failure
521
 
522
  /**
523
  * Sanitize/store a value to this field
524
+ *
525
  * @since 2.0.0
526
  * @param array $meta_value Desired value to sanitize/store
527
  * @return array|int|bool Result of save. false on failure
599
 
600
  /**
601
  * Determine if current type is exempt from escaping
602
+ *
603
  * @since 1.1.0
604
  * @return bool True if exempt
605
  */
614
 
615
  /**
616
  * Determine if current type cannot be repeatable
617
+ *
618
  * @since 1.1.0
619
  * @param string $type Field type to check
620
  * @return bool True if type cannot be repeatable
623
  // These types cannot be repeatable.
624
  $internal_fields = array(
625
  // Use file_list instead
626
+ 'file' => 1,
627
+ 'radio' => 1,
628
+ 'title' => 1,
629
+ 'wysiwyg' => 1,
630
+ 'checkbox' => 1,
631
+ 'radio_inline' => 1,
632
+ 'taxonomy_radio' => 1,
633
+ 'taxonomy_radio_inline' => 1,
634
+ 'taxonomy_radio_hierarchical' => 1,
635
+ 'taxonomy_select' => 1,
636
+ 'taxonomy_multicheck' => 1,
637
+ 'taxonomy_multicheck_inline' => 1,
638
+ 'taxonomy_multicheck_hierarchical' => 1,
639
+
640
  );
641
 
642
  /**
654
  return isset( $all_fields[ $type ] );
655
  }
656
 
657
+ /**
658
+ * Determine if current type has its own defaults field-arguments method.
659
+ *
660
+ * @since 2.2.6
661
+ * @param string $type Field type to check
662
+ * @return bool True if has own method.
663
+ */
664
+ public function has_args_method( $type ) {
665
+
666
+ // These types have their own arguments parser.
667
+ $type_methods = array(
668
+ 'group' => 'set_field_defaults_group',
669
+ 'wysiwyg' => 'set_field_defaults_wysiwyg',
670
+ );
671
+
672
+ if ( isset( $type_methods[ $type ] ) ) {
673
+ return $type_methods[ $type ];
674
+ }
675
+
676
+ $all_or_nothing_types = array_flip( apply_filters( 'cmb2_all_or_nothing_types', array(
677
+ 'select',
678
+ 'radio',
679
+ 'radio_inline',
680
+ 'taxonomy_select',
681
+ 'taxonomy_radio',
682
+ 'taxonomy_radio_inline',
683
+ 'taxonomy_radio_hierarchical',
684
+ ), $this ) );
685
+
686
+ if ( isset( $all_or_nothing_types[ $type ] ) ) {
687
+ return 'set_field_defaults_all_or_nothing_types';
688
+ }
689
+
690
+ return false;
691
+ }
692
+
693
  /**
694
  * Escape the value before output. Defaults to 'esc_attr()'
695
+ *
696
  * @since 1.0.1
697
  * @param callable $func Escaping function (if not esc_attr())
698
  * @param mixed $meta_value Meta value
741
 
742
  /**
743
  * Return non-empty value or field default if value IS empty
744
+ *
745
  * @since 2.0.0
746
  * @param mixed $meta_value Field value
747
  * @return mixed Field value, or default value
752
 
753
  /**
754
  * Offset a time value based on timezone
755
+ *
756
  * @since 1.0.0
757
  * @return string Offset time string
758
  */
762
 
763
  /**
764
  * Return timezone string
765
+ *
766
  * @since 1.0.0
767
  * @return string Timezone string
768
  */
772
  // Is timezone arg set?
773
  if ( $this->args( 'timezone' ) ) {
774
  $value = $this->args( 'timezone' );
775
+ } // End if().
776
  // Is there another meta key with a timezone stored as its value we should use?
777
+ elseif ( $this->args( 'timezone_meta_key' ) ) {
778
  $value = $this->get_data( $this->args( 'timezone_meta_key' ) );
779
  }
780
 
783
 
784
  /**
785
  * Format the timestamp field value based on the field date/time format arg
786
+ *
787
  * @since 2.0.0
788
  * @param int $meta_value Timestamp
789
  * @param string $format Either date_format or time_format
795
 
796
  /**
797
  * Return a formatted timestamp for a field
798
+ *
799
  * @since 2.0.0
800
  * @param string $format Either date_format or time_format
801
  * @param string $meta_value Optional meta value to check
816
 
817
  /**
818
  * Get timestamp from text date
819
+ *
820
  * @since 2.2.0
821
  * @param string $value Date value
822
  * @return mixed Unix timestamp representing the date.
827
 
828
  /**
829
  * Get field render callback and Render the field row
830
+ *
831
  * @since 1.0.0
832
  */
833
  public function render_field() {
841
 
842
  /**
843
  * Default field render callback
844
+ *
845
  * @since 2.1.1
846
  */
847
  public function render_field_callback() {
923
  * @param array $field_types The types of fields which should get the 'table-layout' class
924
  */
925
  $repeat_table_rows_types = apply_filters( 'cmb2_repeat_table_row_types', array(
926
+ 'text_url',
927
+ 'text',
928
  ) );
929
 
930
  $conditional_classes = array(
967
 
968
  /**
969
  * Get field display callback and render the display value in the column.
970
+ *
971
  * @since 2.2.2
972
  */
973
  public function render_column() {
981
 
982
  /**
983
  * Default callback to outputs field value in a display format.
984
+ *
985
  * @since 2.2.2
986
  */
987
  public function display_value_callback() {
1030
 
1031
  /**
1032
  * Replaces a hash key - {#} - with the repeatable index
1033
+ *
1034
  * @since 1.2.0
1035
  * @param string $value Value to update
1036
  * @return string Updated value
1045
  * For back-compatibility, falls back to checking the options array.
1046
  *
1047
  * @since 2.2.2
1048
+ * @param string $text_key Key in field's text array
1049
+ * @param string $fallback Fallback text
1050
  * @return string Text
1051
  */
1052
  public function get_string( $text_key, $fallback ) {
1075
  }
1076
 
1077
  /**
1078
+ * Retrieve options args.
1079
+ *
1080
  * @since 2.0.0
1081
+ * @param string $key Specific option to retrieve
1082
  * @return array Array of options
1083
  */
1084
  public function options( $key = '' ) {
1085
+ if ( empty( $this->field_options ) ) {
1086
+ $this->set_options();
1087
+ }
 
1088
 
1089
+ if ( $key ) {
1090
+ return array_key_exists( $key, $this->field_options ) ? $this->field_options[ $key ] : false;
1091
  }
1092
 
1093
+ return $this->field_options;
1094
+ }
1095
+
1096
+ /**
1097
+ * Generates/sets options args. Calls options_cb if it exists.
1098
+ *
1099
+ * @since 2.2.5
1100
+ *
1101
+ * @return array Array of options
1102
+ */
1103
+ public function set_options() {
1104
  $this->field_options = (array) $this->args['options'];
1105
 
1106
  if ( is_callable( $this->args['options_cb'] ) ) {
1111
  }
1112
  }
1113
 
 
 
 
 
1114
  return $this->field_options;
1115
  }
1116
 
1117
  /**
1118
  * Store JS dependencies as part of the field args.
1119
+ *
1120
  * @since 2.2.0
1121
  * @param array $dependencies Dependies to register for this field.
1122
  */
1136
  * @return mixed Default field value
1137
  */
1138
  public function get_default() {
1139
+ $default = $this->args['default'];
1140
+
1141
+ if ( null !== $default ) {
1142
+ return apply_filters( 'cmb2_default_filter', $default, $this );
1143
  }
1144
 
1145
  $param = is_callable( $this->args['default_cb'] ) ? 'default_cb' : 'default';
1146
+ $default = $this->args['default'] = $this->get_param_callback_result( $param );
1147
 
1148
+ // Allow a filter override of the default value.
1149
+ return apply_filters( 'cmb2_default_filter', $this->args['default'], $this );
 
 
1150
  }
1151
 
1152
  /**
1153
  * Fills in empty field parameters with defaults
1154
+ *
1155
  * @since 1.1.0
1156
+ *
1157
+ * @param array $args Field config array.
1158
+ * @return array Modified field config array.
1159
  */
1160
  public function _set_field_defaults( $args ) {
1161
 
1162
  // Set up blank or default values for empty ones
1163
+ $args = wp_parse_args( $args, $this->get_default_field_args( $args ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1164
 
1165
  /*
1166
  * Deprecated usage:
1173
 
1174
  $args['repeatable'] = $args['repeatable'] && ! $this->repeatable_exception( $args['type'] );
1175
  $args['inline'] = $args['inline'] || false !== stripos( $args['type'], '_inline' );
 
 
 
 
 
 
1176
  $args['_id'] = $args['id'];
1177
  $args['_name'] = $args['id'];
1178
 
1179
+ if ( $method = $this->has_args_method( $args['type'] ) ) {
1180
+ $args = $this->{$method}( $args );
 
 
1181
  }
1182
 
1183
+ if ( $this->group ) {
1184
+ $args = $this->set_group_sub_field_defaults( $args );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1185
  }
1186
 
1187
  $args['has_supporting_data'] = in_array(
1198
  return $args;
1199
  }
1200
 
1201
+ /**
1202
+ * Sets default arguments for the group field types.
1203
+ *
1204
+ * @since 2.2.6
1205
+ *
1206
+ * @param array $args Field config array.
1207
+ * @return array Modified field config array.
1208
+ */
1209
+ protected function set_field_defaults_group( $args ) {
1210
+ $args['options'] = wp_parse_args( $args['options'], array(
1211
+ 'add_button' => esc_html__( 'Add Group', 'cmb2' ),
1212
+ 'remove_button' => esc_html__( 'Remove Group', 'cmb2' ),
1213
+ ) );
1214
+
1215
+ return $args;
1216
+ }
1217
+
1218
+ /**
1219
+ * Sets default arguments for the wysiwyg field types.
1220
+ *
1221
+ * @since 2.2.6
1222
+ *
1223
+ * @param array $args Field config array.
1224
+ * @return array Modified field config array.
1225
+ */
1226
+ protected function set_field_defaults_wysiwyg( $args ) {
1227
+ $args['id'] = strtolower( str_ireplace( '-', '_', $args['id'] ) );
1228
+ $args['options']['textarea_name'] = $args['_name'];
1229
+
1230
+ return $args;
1231
+ }
1232
+
1233
+ /**
1234
+ * Sets default arguments for the all-or-nothing field types.
1235
+ *
1236
+ * @since 2.2.6
1237
+ *
1238
+ * @param array $args Field config array.
1239
+ * @return array Modified field config array.
1240
+ */
1241
+ protected function set_field_defaults_all_or_nothing_types( $args ) {
1242
+ $args['show_option_none'] = isset( $args['show_option_none'] ) ? $args['show_option_none'] : null;
1243
+ $args['show_option_none'] = true === $args['show_option_none'] ? esc_html__( 'None', 'cmb2' ) : $args['show_option_none'];
1244
+
1245
+ if ( null === $args['show_option_none'] ) {
1246
+ $off_by_default = in_array( $args['type'], array( 'select', 'radio', 'radio_inline' ), true );
1247
+ $args['show_option_none'] = $off_by_default ? false : esc_html__( 'None', 'cmb2' );
1248
+ }
1249
+
1250
+ return $args;
1251
+ }
1252
+
1253
+ /**
1254
+ * Sets default arguments for group sub-fields.
1255
+ *
1256
+ * @since 2.2.6
1257
+ *
1258
+ * @param array $args Field config array.
1259
+ * @return array Modified field config array.
1260
+ */
1261
+ protected function set_group_sub_field_defaults( $args ) {
1262
+ $args['id'] = $this->group->args( 'id' ) . '_' . $this->group->index . '_' . $args['id'];
1263
+ $args['_name'] = $this->group->args( 'id' ) . '[' . $this->group->index . '][' . $args['_name'] . ']';
1264
+
1265
+ return $args;
1266
+ }
1267
+
1268
+ /**
1269
+ * Gets the default arguments for all fields.
1270
+ *
1271
+ * @since 2.2.6
1272
+ *
1273
+ * @param array $args Field config array.
1274
+ * @return array Field defaults.
1275
+ */
1276
+ protected function get_default_field_args( $args ) {
1277
+ $type = isset( $args['type'] ) ? $args['type'] : '';
1278
+
1279
+ return array(
1280
+ 'type' => $type,
1281
+ 'name' => '',
1282
+ 'desc' => '',
1283
+ 'before' => '',
1284
+ 'after' => '',
1285
+ 'options' => array(),
1286
+ 'options_cb' => '',
1287
+ 'text' => array(),
1288
+ 'text_cb' => '',
1289
+ 'attributes' => array(),
1290
+ 'protocols' => null,
1291
+ 'default' => null,
1292
+ 'default_cb' => '',
1293
+ 'classes' => null,
1294
+ 'classes_cb' => '',
1295
+ 'select_all_button' => true,
1296
+ 'multiple' => false,
1297
+ 'repeatable' => 'group' === $type,
1298
+ 'inline' => false,
1299
+ 'on_front' => true,
1300
+ 'show_names' => true,
1301
+ 'save_field' => true, // Will not save if false
1302
+ 'date_format' => 'm\/d\/Y',
1303
+ 'time_format' => 'h:i A',
1304
+ 'description' => isset( $args['desc'] ) ? $args['desc'] : '',
1305
+ 'preview_size' => 'file' === $type ? array( 350, 350 ) : array( 50, 50 ),
1306
+ 'render_row_cb' => array( $this, 'render_field_callback' ),
1307
+ 'display_cb' => array( $this, 'display_value_callback' ),
1308
+ 'label_cb' => 'title' !== $type ? array( $this, 'label' ) : '',
1309
+ 'column' => false,
1310
+ 'js_dependencies' => array(),
1311
+ 'show_in_rest' => null,
1312
+ );
1313
+ }
1314
+
1315
  /**
1316
  * Get default field arguments specific to this CMB2 object.
1317
+ *
1318
  * @since 2.2.0
1319
  * @param array $field_args Metabox field config array.
1320
  * @param CMB2_Field $field_group (optional) CMB2_Field object (group parent)
1333
  }
1334
 
1335
  /**
1336
+ * Returns a cloned version of this field object, but with
1337
  * modified/overridden field arguments.
1338
  *
1339
  * @since 2.2.2
1340
+ * @param array $field_args Array of field arguments, or entire array of
1341
+ * arguments for CMB2_Field
1342
  *
1343
  * @return CMB2_Field The new CMB2_Field instance.
1344
  */
1363
 
1364
  /**
1365
  * Converts deprecated field parameters to the current/proper parameter, and throws a deprecation notice.
1366
+ *
1367
  * @since 2.2.3
1368
+ * @param array $args Metabox field config array.
1369
  * @param array Modified field config array.
1370
  */
1371
  protected function convert_deprecated_params( $args ) {
1374
 
1375
  // We'll let this one be.
1376
  // $this->deprecated_param( __CLASS__ . '::__construct()', '2.2.3', self::DEPRECATED_PARAM, 'row_classes', 'classes' );
 
1377
  // row_classes param could be a callback. This is definitely deprecated.
1378
  if ( is_callable( $args['row_classes'] ) ) {
1379
 
1389
  unset( $args['row_classes'] );
1390
  }
1391
 
 
1392
  // default param can be passed a callback as well
1393
  if ( is_callable( $args['default'] ) ) {
1394
 
vendor/CMB2/includes/CMB2_Field_Display.php CHANGED
@@ -6,14 +6,15 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Field_Display {
14
 
15
  /**
16
  * A CMB field object
 
17
  * @var CMB2_Field object
18
  * @since 2.2.2
19
  */
@@ -21,6 +22,7 @@ class CMB2_Field_Display {
21
 
22
  /**
23
  * The CMB field object's value.
 
24
  * @var mixed
25
  * @since 2.2.2
26
  */
@@ -28,6 +30,7 @@ class CMB2_Field_Display {
28
 
29
  /**
30
  * Get the corresponding display class for the field type.
 
31
  * @since 2.2.2
32
  * @param CMB2_Field $field
33
  * @return CMB2_Field_Display
@@ -76,10 +79,12 @@ class CMB2_Field_Display {
76
  case 'taxonomy_radio':
77
  case 'taxonomy_radio_inline':
78
  case 'taxonomy_select':
 
79
  $type = new CMB2_Display_Taxonomy_Radio( $field );
80
  break;
81
  case 'taxonomy_multicheck':
82
  case 'taxonomy_multicheck_inline':
 
83
  $type = new CMB2_Display_Taxonomy_Multicheck( $field );
84
  break;
85
  case 'file':
@@ -94,13 +99,14 @@ class CMB2_Field_Display {
94
  default:
95
  $type = new self( $field );
96
  break;
97
- }
98
 
99
  return $type;
100
  }
101
 
102
  /**
103
  * Setup our class vars
 
104
  * @since 2.2.2
105
  * @param CMB2_Field $field A CMB2 field object
106
  */
@@ -112,6 +118,7 @@ class CMB2_Field_Display {
112
  /**
113
  * Catchall method if field's 'display_cb' is NOT defined, or field type does
114
  * not have a corresponding display method
 
115
  * @since 2.2.2
116
  */
117
  public function display() {
@@ -122,7 +129,7 @@ class CMB2_Field_Display {
122
  if ( is_array( $this->field->value ) ) {
123
 
124
  // Then loop and output.
125
- echo '<ul class="cmb2-'. str_replace( '_', '-', $this->field->type() ) .'">';
126
  foreach ( $this->field->value as $val ) {
127
  $this->value = $val;
128
  echo '<li>', $this->_display(), '</li>';
@@ -130,7 +137,6 @@ class CMB2_Field_Display {
130
  }
131
  echo '</ul>';
132
  }
133
-
134
  } else {
135
  $this->_display();
136
  }
@@ -138,6 +144,7 @@ class CMB2_Field_Display {
138
 
139
  /**
140
  * Default fallback display method.
 
141
  * @since 2.2.2
142
  */
143
  protected function _display() {
@@ -148,6 +155,7 @@ class CMB2_Field_Display {
148
  class CMB2_Display_Text_Url extends CMB2_Field_Display {
149
  /**
150
  * Display url value.
 
151
  * @since 2.2.2
152
  */
153
  protected function _display() {
@@ -158,6 +166,7 @@ class CMB2_Display_Text_Url extends CMB2_Field_Display {
158
  class CMB2_Display_Text_Money extends CMB2_Field_Display {
159
  /**
160
  * Display text_money value.
 
161
  * @since 2.2.2
162
  */
163
  protected function _display() {
@@ -169,6 +178,7 @@ class CMB2_Display_Text_Money extends CMB2_Field_Display {
169
  class CMB2_Display_Colorpicker extends CMB2_Field_Display {
170
  /**
171
  * Display color picker value.
 
172
  * @since 2.2.2
173
  */
174
  protected function _display() {
@@ -179,6 +189,7 @@ class CMB2_Display_Colorpicker extends CMB2_Field_Display {
179
  class CMB2_Display_Checkbox extends CMB2_Field_Display {
180
  /**
181
  * Display multicheck value.
 
182
  * @since 2.2.2
183
  */
184
  protected function _display() {
@@ -189,6 +200,7 @@ class CMB2_Display_Checkbox extends CMB2_Field_Display {
189
  class CMB2_Display_Select extends CMB2_Field_Display {
190
  /**
191
  * Display select value.
 
192
  * @since 2.2.2
193
  */
194
  protected function _display() {
@@ -211,6 +223,7 @@ class CMB2_Display_Select extends CMB2_Field_Display {
211
  class CMB2_Display_Multicheck extends CMB2_Field_Display {
212
  /**
213
  * Display multicheck value.
 
214
  * @since 2.2.2
215
  */
216
  protected function _display() {
@@ -236,6 +249,7 @@ class CMB2_Display_Multicheck extends CMB2_Field_Display {
236
  class CMB2_Display_Textarea extends CMB2_Field_Display {
237
  /**
238
  * Display textarea value.
 
239
  * @since 2.2.2
240
  */
241
  protected function _display() {
@@ -246,16 +260,18 @@ class CMB2_Display_Textarea extends CMB2_Field_Display {
246
  class CMB2_Display_Textarea_Code extends CMB2_Field_Display {
247
  /**
248
  * Display textarea_code value.
 
249
  * @since 2.2.2
250
  */
251
  protected function _display() {
252
- echo '<xmp class="cmb2-code">'. print_r( $this->value, true ) .'</xmp>';
253
  }
254
  }
255
 
256
  class CMB2_Display_Text_Time extends CMB2_Field_Display {
257
  /**
258
  * Display text_time value.
 
259
  * @since 2.2.2
260
  */
261
  protected function _display() {
@@ -266,6 +282,7 @@ class CMB2_Display_Text_Time extends CMB2_Field_Display {
266
  class CMB2_Display_Text_Date extends CMB2_Field_Display {
267
  /**
268
  * Display text_date value.
 
269
  * @since 2.2.2
270
  */
271
  protected function _display() {
@@ -276,6 +293,7 @@ class CMB2_Display_Text_Date extends CMB2_Field_Display {
276
  class CMB2_Display_Text_Date_Timezone extends CMB2_Field_Display {
277
  /**
278
  * Display text_datetime_timestamp_timezone value.
 
279
  * @since 2.2.2
280
  */
281
  protected function _display() {
@@ -304,6 +322,7 @@ class CMB2_Display_Text_Date_Timezone extends CMB2_Field_Display {
304
  class CMB2_Display_Taxonomy_Radio extends CMB2_Field_Display {
305
  /**
306
  * Display single taxonomy value.
 
307
  * @since 2.2.2
308
  */
309
  protected function _display() {
@@ -316,7 +335,7 @@ class CMB2_Display_Taxonomy_Radio extends CMB2_Field_Display {
316
  if ( is_wp_error( $terms ) || empty( $terms ) && ( $default = $this->field->get_default() ) ) {
317
  $term = get_term_by( 'slug', $default, $taxonomy );
318
  } elseif ( ! empty( $terms ) ) {
319
- $term = $terms[key( $terms )];
320
  }
321
 
322
  if ( $term ) {
@@ -329,6 +348,7 @@ class CMB2_Display_Taxonomy_Radio extends CMB2_Field_Display {
329
  class CMB2_Display_Taxonomy_Multicheck extends CMB2_Field_Display {
330
  /**
331
  * Display taxonomy values.
 
332
  * @since 2.2.2
333
  */
334
  protected function _display() {
@@ -353,7 +373,7 @@ class CMB2_Display_Taxonomy_Multicheck extends CMB2_Field_Display {
353
  $links = array();
354
  foreach ( $terms as $term ) {
355
  $link = get_edit_term_link( $term->term_id, $taxonomy );
356
- $links[] = '<a href="'. esc_url( $link ) .'">'. esc_html( $term->name ) .'</a>';
357
  }
358
  // Then loop and output.
359
  echo '<div class="cmb2-taxonomy-terms-', esc_attr( $taxonomy ), '">';
@@ -366,6 +386,7 @@ class CMB2_Display_Taxonomy_Multicheck extends CMB2_Field_Display {
366
  class CMB2_Display_File extends CMB2_Field_Display {
367
  /**
368
  * Display file value.
 
369
  * @since 2.2.2
370
  */
371
  protected function _display() {
@@ -395,7 +416,9 @@ class CMB2_Display_File extends CMB2_Field_Display {
395
  $img_size = $this->field->args( 'preview_size' );
396
 
397
  if ( $id ) {
398
- $image = wp_get_attachment_image( $id, $img_size, null, array( 'class' => 'cmb-image-display' ) );
 
 
399
  } else {
400
  $size = is_array( $img_size ) ? $img_size[0] : 200;
401
  $image = '<img class="cmb-image-display" style="max-width: ' . absint( $size ) . 'px; width: 100%; height: auto;" src="' . $url_value . '" alt="" />';
@@ -418,6 +441,7 @@ class CMB2_Display_File extends CMB2_Field_Display {
418
  class CMB2_Display_File_List extends CMB2_Display_File {
419
  /**
420
  * Display file_list value.
 
421
  * @since 2.2.2
422
  */
423
  protected function _display() {
@@ -439,6 +463,7 @@ class CMB2_Display_File_List extends CMB2_Display_File {
439
  class CMB2_Display_oEmbed extends CMB2_Field_Display {
440
  /**
441
  * Display oembed value.
 
442
  * @since 2.2.2
443
  */
444
  protected function _display() {
@@ -450,7 +475,9 @@ class CMB2_Display_oEmbed extends CMB2_Field_Display {
450
  'url' => $this->value,
451
  'object_id' => $this->field->object_id,
452
  'object_type' => $this->field->object_type,
453
- 'oembed_args' => array( 'width' => '300' ),
 
 
454
  'field_id' => $this->field->id(),
455
  ) );
456
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Field_Display {
14
 
15
  /**
16
  * A CMB field object
17
+ *
18
  * @var CMB2_Field object
19
  * @since 2.2.2
20
  */
22
 
23
  /**
24
  * The CMB field object's value.
25
+ *
26
  * @var mixed
27
  * @since 2.2.2
28
  */
30
 
31
  /**
32
  * Get the corresponding display class for the field type.
33
+ *
34
  * @since 2.2.2
35
  * @param CMB2_Field $field
36
  * @return CMB2_Field_Display
79
  case 'taxonomy_radio':
80
  case 'taxonomy_radio_inline':
81
  case 'taxonomy_select':
82
+ case 'taxonomy_radio_hierarchical':
83
  $type = new CMB2_Display_Taxonomy_Radio( $field );
84
  break;
85
  case 'taxonomy_multicheck':
86
  case 'taxonomy_multicheck_inline':
87
+ case 'taxonomy_multicheck_hierarchical':
88
  $type = new CMB2_Display_Taxonomy_Multicheck( $field );
89
  break;
90
  case 'file':
99
  default:
100
  $type = new self( $field );
101
  break;
102
+ }// End switch().
103
 
104
  return $type;
105
  }
106
 
107
  /**
108
  * Setup our class vars
109
+ *
110
  * @since 2.2.2
111
  * @param CMB2_Field $field A CMB2 field object
112
  */
118
  /**
119
  * Catchall method if field's 'display_cb' is NOT defined, or field type does
120
  * not have a corresponding display method
121
+ *
122
  * @since 2.2.2
123
  */
124
  public function display() {
129
  if ( is_array( $this->field->value ) ) {
130
 
131
  // Then loop and output.
132
+ echo '<ul class="cmb2-' . str_replace( '_', '-', $this->field->type() ) . '">';
133
  foreach ( $this->field->value as $val ) {
134
  $this->value = $val;
135
  echo '<li>', $this->_display(), '</li>';
137
  }
138
  echo '</ul>';
139
  }
 
140
  } else {
141
  $this->_display();
142
  }
144
 
145
  /**
146
  * Default fallback display method.
147
+ *
148
  * @since 2.2.2
149
  */
150
  protected function _display() {
155
  class CMB2_Display_Text_Url extends CMB2_Field_Display {
156
  /**
157
  * Display url value.
158
+ *
159
  * @since 2.2.2
160
  */
161
  protected function _display() {
166
  class CMB2_Display_Text_Money extends CMB2_Field_Display {
167
  /**
168
  * Display text_money value.
169
+ *
170
  * @since 2.2.2
171
  */
172
  protected function _display() {
178
  class CMB2_Display_Colorpicker extends CMB2_Field_Display {
179
  /**
180
  * Display color picker value.
181
+ *
182
  * @since 2.2.2
183
  */
184
  protected function _display() {
189
  class CMB2_Display_Checkbox extends CMB2_Field_Display {
190
  /**
191
  * Display multicheck value.
192
+ *
193
  * @since 2.2.2
194
  */
195
  protected function _display() {
200
  class CMB2_Display_Select extends CMB2_Field_Display {
201
  /**
202
  * Display select value.
203
+ *
204
  * @since 2.2.2
205
  */
206
  protected function _display() {
223
  class CMB2_Display_Multicheck extends CMB2_Field_Display {
224
  /**
225
  * Display multicheck value.
226
+ *
227
  * @since 2.2.2
228
  */
229
  protected function _display() {
249
  class CMB2_Display_Textarea extends CMB2_Field_Display {
250
  /**
251
  * Display textarea value.
252
+ *
253
  * @since 2.2.2
254
  */
255
  protected function _display() {
260
  class CMB2_Display_Textarea_Code extends CMB2_Field_Display {
261
  /**
262
  * Display textarea_code value.
263
+ *
264
  * @since 2.2.2
265
  */
266
  protected function _display() {
267
+ echo '<xmp class="cmb2-code">' . print_r( $this->value, true ) . '</xmp>';
268
  }
269
  }
270
 
271
  class CMB2_Display_Text_Time extends CMB2_Field_Display {
272
  /**
273
  * Display text_time value.
274
+ *
275
  * @since 2.2.2
276
  */
277
  protected function _display() {
282
  class CMB2_Display_Text_Date extends CMB2_Field_Display {
283
  /**
284
  * Display text_date value.
285
+ *
286
  * @since 2.2.2
287
  */
288
  protected function _display() {
293
  class CMB2_Display_Text_Date_Timezone extends CMB2_Field_Display {
294
  /**
295
  * Display text_datetime_timestamp_timezone value.
296
+ *
297
  * @since 2.2.2
298
  */
299
  protected function _display() {
322
  class CMB2_Display_Taxonomy_Radio extends CMB2_Field_Display {
323
  /**
324
  * Display single taxonomy value.
325
+ *
326
  * @since 2.2.2
327
  */
328
  protected function _display() {
335
  if ( is_wp_error( $terms ) || empty( $terms ) && ( $default = $this->field->get_default() ) ) {
336
  $term = get_term_by( 'slug', $default, $taxonomy );
337
  } elseif ( ! empty( $terms ) ) {
338
+ $term = $terms[ key( $terms ) ];
339
  }
340
 
341
  if ( $term ) {
348
  class CMB2_Display_Taxonomy_Multicheck extends CMB2_Field_Display {
349
  /**
350
  * Display taxonomy values.
351
+ *
352
  * @since 2.2.2
353
  */
354
  protected function _display() {
373
  $links = array();
374
  foreach ( $terms as $term ) {
375
  $link = get_edit_term_link( $term->term_id, $taxonomy );
376
+ $links[] = '<a href="' . esc_url( $link ) . '">' . esc_html( $term->name ) . '</a>';
377
  }
378
  // Then loop and output.
379
  echo '<div class="cmb2-taxonomy-terms-', esc_attr( $taxonomy ), '">';
386
  class CMB2_Display_File extends CMB2_Field_Display {
387
  /**
388
  * Display file value.
389
+ *
390
  * @since 2.2.2
391
  */
392
  protected function _display() {
416
  $img_size = $this->field->args( 'preview_size' );
417
 
418
  if ( $id ) {
419
+ $image = wp_get_attachment_image( $id, $img_size, null, array(
420
+ 'class' => 'cmb-image-display',
421
+ ) );
422
  } else {
423
  $size = is_array( $img_size ) ? $img_size[0] : 200;
424
  $image = '<img class="cmb-image-display" style="max-width: ' . absint( $size ) . 'px; width: 100%; height: auto;" src="' . $url_value . '" alt="" />';
441
  class CMB2_Display_File_List extends CMB2_Display_File {
442
  /**
443
  * Display file_list value.
444
+ *
445
  * @since 2.2.2
446
  */
447
  protected function _display() {
463
  class CMB2_Display_oEmbed extends CMB2_Field_Display {
464
  /**
465
  * Display oembed value.
466
+ *
467
  * @since 2.2.2
468
  */
469
  protected function _display() {
475
  'url' => $this->value,
476
  'object_id' => $this->field->object_id,
477
  'object_type' => $this->field->object_type,
478
+ 'oembed_args' => array(
479
+ 'width' => '300',
480
+ ),
481
  'field_id' => $this->field->id(),
482
  ) );
483
  }
vendor/CMB2/includes/CMB2_Hookup_Base.php CHANGED
@@ -6,9 +6,12 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
 
 
 
12
  */
13
  abstract class CMB2_Hookup_Base {
14
 
@@ -20,13 +23,28 @@ abstract class CMB2_Hookup_Base {
20
 
21
  /**
22
  * The object type we are performing the hookup for
 
23
  * @var string
24
  * @since 2.0.9
25
  */
26
  protected $object_type = 'post';
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  /**
29
  * Constructor
 
30
  * @since 2.0.0
31
  * @param CMB2 $cmb The CMB2 object to hookup
32
  */
@@ -39,6 +57,7 @@ abstract class CMB2_Hookup_Base {
39
 
40
  /**
41
  * Ensures WordPress hook only gets fired once per object.
 
42
  * @since 2.0.0
43
  * @param string $action The name of the filter to hook the $hook callback to.
44
  * @param callback $hook The callback to be run when the filter is applied.
@@ -65,4 +84,20 @@ abstract class CMB2_Hookup_Base {
65
  }
66
  }
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ *
13
+ * @property-read string $object_type
14
+ * @property-read CMB2 $cmb
15
  */
16
  abstract class CMB2_Hookup_Base {
17
 
23
 
24
  /**
25
  * The object type we are performing the hookup for
26
+ *
27
  * @var string
28
  * @since 2.0.9
29
  */
30
  protected $object_type = 'post';
31
 
32
+ /**
33
+ * A functionalized constructor, used for the hookup action callbacks.
34
+ *
35
+ * @since 2.2.6
36
+ *
37
+ * @param CMB2 $cmb The CMB2 object to hookup
38
+ *
39
+ * @return CMB2_Hookup_Base $hookup The hookup object.
40
+ */
41
+ public static function maybe_init_and_hookup( CMB2 $cmb ) {
42
+ throw new Exception( sprintf( esc_html__( '%1$s should be implemented by the extended class.', 'cmb2' ), __FUNCTION__ ) );
43
+ }
44
+
45
  /**
46
  * Constructor
47
+ *
48
  * @since 2.0.0
49
  * @param CMB2 $cmb The CMB2 object to hookup
50
  */
57
 
58
  /**
59
  * Ensures WordPress hook only gets fired once per object.
60
+ *
61
  * @since 2.0.0
62
  * @param string $action The name of the filter to hook the $hook callback to.
63
  * @param callback $hook The callback to be run when the filter is applied.
84
  }
85
  }
86
 
87
+ /**
88
+ * Magic getter for our object.
89
+ *
90
+ * @param string $field
91
+ * @throws Exception Throws an exception if the field is invalid.
92
+ * @return mixed
93
+ */
94
+ public function __get( $field ) {
95
+ switch ( $field ) {
96
+ case 'object_type':
97
+ case 'cmb':
98
+ return $this->{$field};
99
+ default:
100
+ throw new Exception( sprintf( esc_html__( 'Invalid %1$s property: %2$s', 'cmb2' ), __CLASS__, $field ) );
101
+ }
102
+ }
103
  }
vendor/CMB2/includes/CMB2_JS.php CHANGED
@@ -4,14 +4,15 @@
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
- * @author WebDevStudios
8
  * @license GPL-2.0+
9
- * @link http://webdevstudios.com
10
  */
11
  class CMB2_JS {
12
 
13
  /**
14
  * The CMB2 JS handle
 
15
  * @var string
16
  * @since 2.0.7
17
  */
@@ -19,6 +20,7 @@ class CMB2_JS {
19
 
20
  /**
21
  * The CMB2 JS variable name
 
22
  * @var string
23
  * @since 2.0.7
24
  */
@@ -26,15 +28,19 @@ class CMB2_JS {
26
 
27
  /**
28
  * Array of CMB2 JS dependencies
 
29
  * @var array
30
  * @since 2.0.7
31
  */
32
- protected static $dependencies = array( 'jquery' => 'jquery' );
 
 
33
 
34
  /**
35
  * Add a dependency to the array of CMB2 JS dependencies
 
36
  * @since 2.0.7
37
- * @param array|string $dependencies Array (or string) of dependencies to add
38
  */
39
  public static function add_dependencies( $dependencies ) {
40
  foreach ( (array) $dependencies as $dependency ) {
@@ -44,6 +50,7 @@ class CMB2_JS {
44
 
45
  /**
46
  * Enqueue the CMB2 JS
 
47
  * @since 2.0.7
48
  */
49
  public static function enqueue() {
@@ -56,8 +63,14 @@ class CMB2_JS {
56
  $min = $debug ? '' : '.min';
57
 
58
  // if colorpicker
59
- if ( ! is_admin() && isset( $dependencies['wp-color-picker'] ) ) {
60
- self::colorpicker_frontend();
 
 
 
 
 
 
61
  }
62
 
63
  // if file/file_list
@@ -68,7 +81,7 @@ class CMB2_JS {
68
 
69
  // if timepicker
70
  if ( isset( $dependencies['jquery-ui-datetimepicker'] ) ) {
71
- wp_register_script( 'jquery-ui-datetimepicker', CMB2_Utils::url( 'js/jquery-ui-timepicker-addon.min.js' ), array( 'jquery-ui-slider' ), CMB2_VERSION );
72
  }
73
 
74
  // if cmb2-wysiwyg
@@ -88,8 +101,39 @@ class CMB2_JS {
88
  do_action( 'cmb2_footer_enqueue' );
89
  }
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  /**
92
  * We need to register colorpicker on the front-end
 
93
  * @since 2.0.7
94
  */
95
  protected static function colorpicker_frontend() {
@@ -105,6 +149,7 @@ class CMB2_JS {
105
 
106
  /**
107
  * Localize the php variables for CMB2 JS
 
108
  * @since 2.0.7
109
  */
110
  protected static function localize( $debug ) {
@@ -115,12 +160,13 @@ class CMB2_JS {
115
 
116
  $localized = true;
117
  $l10n = array(
118
- 'ajax_nonce' => wp_create_nonce( 'ajax_nonce' ),
119
- 'ajaxurl' => admin_url( '/admin-ajax.php' ),
120
- 'script_debug' => $debug,
121
- 'up_arrow_class' => 'dashicons dashicons-arrow-up-alt2',
122
- 'down_arrow_class' => 'dashicons dashicons-arrow-down-alt2',
123
- 'defaults' => array(
 
124
  'color_picker' => false,
125
  'date_picker' => array(
126
  'changeMonth' => true,
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
+ * @author CMB2 team
8
  * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
  */
11
  class CMB2_JS {
12
 
13
  /**
14
  * The CMB2 JS handle
15
+ *
16
  * @var string
17
  * @since 2.0.7
18
  */
20
 
21
  /**
22
  * The CMB2 JS variable name
23
+ *
24
  * @var string
25
  * @since 2.0.7
26
  */
28
 
29
  /**
30
  * Array of CMB2 JS dependencies
31
+ *
32
  * @var array
33
  * @since 2.0.7
34
  */
35
+ protected static $dependencies = array(
36
+ 'jquery' => 'jquery',
37
+ );
38
 
39
  /**
40
  * Add a dependency to the array of CMB2 JS dependencies
41
+ *
42
  * @since 2.0.7
43
+ * @param array|string $dependencies Array (or string) of dependencies to add
44
  */
45
  public static function add_dependencies( $dependencies ) {
46
  foreach ( (array) $dependencies as $dependency ) {
50
 
51
  /**
52
  * Enqueue the CMB2 JS
53
+ *
54
  * @since 2.0.7
55
  */
56
  public static function enqueue() {
63
  $min = $debug ? '' : '.min';
64
 
65
  // if colorpicker
66
+ if ( isset( $dependencies['wp-color-picker'] ) ) {
67
+ if ( ! is_admin() ) {
68
+ self::colorpicker_frontend();
69
+ }
70
+
71
+ if ( isset( $dependencies['wp-color-picker-alpha'] ) ) {
72
+ self::register_colorpicker_alpha();
73
+ }
74
  }
75
 
76
  // if file/file_list
81
 
82
  // if timepicker
83
  if ( isset( $dependencies['jquery-ui-datetimepicker'] ) ) {
84
+ self::register_datetimepicker();
85
  }
86
 
87
  // if cmb2-wysiwyg
101
  do_action( 'cmb2_footer_enqueue' );
102
  }
103
 
104
+ /**
105
+ * Register or enqueue the wp-color-picker-alpha script.
106
+ *
107
+ * @since 2.2.7
108
+ *
109
+ * @param boolean $enqueue
110
+ *
111
+ * @return void
112
+ */
113
+ public static function register_colorpicker_alpha( $enqueue = false ) {
114
+ // Only use minified files if SCRIPT_DEBUG is off
115
+ $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
116
+ $func = $enqueue ? 'wp_enqueue_script' : 'wp_register_script';
117
+ $func( 'wp-color-picker-alpha', CMB2_Utils::url( "js/wp-color-picker-alpha{$min}.js" ), array( 'wp-color-picker' ), '2.1.3' );
118
+ }
119
+
120
+ /**
121
+ * Register or enqueue the jquery-ui-datetimepicker script.
122
+ *
123
+ * @since 2.2.7
124
+ *
125
+ * @param boolean $enqueue
126
+ *
127
+ * @return void
128
+ */
129
+ public static function register_datetimepicker( $enqueue = false ) {
130
+ $func = $enqueue ? 'wp_enqueue_script' : 'wp_register_script';
131
+ $func( 'jquery-ui-datetimepicker', CMB2_Utils::url( 'js/jquery-ui-timepicker-addon.min.js' ), array( 'jquery-ui-slider' ), '1.5.0' );
132
+ }
133
+
134
  /**
135
  * We need to register colorpicker on the front-end
136
+ *
137
  * @since 2.0.7
138
  */
139
  protected static function colorpicker_frontend() {
149
 
150
  /**
151
  * Localize the php variables for CMB2 JS
152
+ *
153
  * @since 2.0.7
154
  */
155
  protected static function localize( $debug ) {
160
 
161
  $localized = true;
162
  $l10n = array(
163
+ 'ajax_nonce' => wp_create_nonce( 'ajax_nonce' ),
164
+ 'ajaxurl' => admin_url( '/admin-ajax.php' ),
165
+ 'script_debug' => $debug,
166
+ 'up_arrow_class' => 'dashicons dashicons-arrow-up-alt2',
167
+ 'down_arrow_class' => 'dashicons dashicons-arrow-down-alt2',
168
+ 'user_can_richedit' => user_can_richedit(),
169
+ 'defaults' => array(
170
  'color_picker' => false,
171
  'date_picker' => array(
172
  'changeMonth' => true,
vendor/CMB2/includes/CMB2_Options.php CHANGED
@@ -4,20 +4,21 @@
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
- * @author WebDevStudios
8
  * @license GPL-2.0+
9
- * @link http://webdevstudios.com
10
  */
11
 
12
  /**
13
  * Retrieves an instance of CMB2_Option based on the option key
14
  *
15
  * @package CMB2
16
- * @author WebDevStudios
17
  */
18
  class CMB2_Options {
19
  /**
20
  * Array of all CMB2_Option instances
 
21
  * @var array
22
  * @since 1.0.0
23
  */
@@ -38,24 +39,27 @@ class CMB2_Options {
38
  * for a specific option key
39
  *
40
  * @package CMB2
41
- * @author WebDevStudios
42
  */
43
  class CMB2_Option {
44
 
45
  /**
46
  * Options array
 
47
  * @var array
48
  */
49
  protected $options = array();
50
 
51
  /**
52
  * Current option key
 
53
  * @var string
54
  */
55
  protected $key = '';
56
 
57
  /**
58
  * Initiate option object
 
59
  * @param string $option_key Option key where data will be saved.
60
  * Leave empty for temporary data store.
61
  * @since 2.0.0
@@ -66,6 +70,7 @@ class CMB2_Option {
66
 
67
  /**
68
  * Delete the option from the db
 
69
  * @since 2.0.0
70
  * @return bool Delete success or failure
71
  */
@@ -77,8 +82,9 @@ class CMB2_Option {
77
 
78
  /**
79
  * Removes an option from an option array
 
80
  * @since 1.0.1
81
- * @param string $field_id Option array field key
82
  * @return array Modified options
83
  */
84
  public function remove( $field_id, $resave = false ) {
@@ -98,9 +104,10 @@ class CMB2_Option {
98
 
99
  /**
100
  * Retrieves an option from an option array
 
101
  * @since 1.0.1
102
- * @param string $field_id Option array field key
103
- * @param mixed $default Fallback value for the option
104
  * @return array Requested field or default
105
  */
106
  public function get( $field_id, $default = false ) {
@@ -117,11 +124,12 @@ class CMB2_Option {
117
 
118
  /**
119
  * Updates Option data
 
120
  * @since 1.0.1
121
- * @param string $field_id Option array field key
122
- * @param mixed $value Value to update data with
123
- * @param bool $resave Whether to re-save the data
124
- * @param bool $single Whether data should not be an array
125
  * @return boolean Return status of update
126
  */
127
  public function update( $field_id, $value = '', $resave = false, $single = true ) {
@@ -135,7 +143,6 @@ class CMB2_Option {
135
  } else {
136
  $this->options[ $field_id ] = $value;
137
  }
138
-
139
  }
140
 
141
  if ( $resave || true === $field_id ) {
@@ -148,6 +155,7 @@ class CMB2_Option {
148
  /**
149
  * Saves the option array
150
  * Needs to be run after finished using remove/update_option
 
151
  * @uses apply_filters() Calls 'cmb2_override_option_save_{$this->key}' hook
152
  * to allow overwriting the option value to be stored.
153
  *
@@ -156,9 +164,11 @@ class CMB2_Option {
156
  * @return bool Success/Failure
157
  */
158
  public function set( $options = array() ) {
159
- $this->options = ! empty( $options ) || empty( $options ) && empty( $this->key )
160
- ? $options
161
- : $this->options;
 
 
162
 
163
  if ( empty( $this->key ) ) {
164
  return false;
@@ -176,6 +186,7 @@ class CMB2_Option {
176
 
177
  /**
178
  * Retrieve option value based on name of option.
 
179
  * @uses apply_filters() Calls 'cmb2_override_option_get_{$this->key}' hook to allow
180
  * overwriting the option value to be retrieved.
181
  *
@@ -196,7 +207,9 @@ class CMB2_Option {
196
  }
197
  }
198
 
199
- return (array) $this->options;
 
 
200
  }
201
 
202
  }
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
+ * @author CMB2 team
8
  * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
  */
11
 
12
  /**
13
  * Retrieves an instance of CMB2_Option based on the option key
14
  *
15
  * @package CMB2
16
+ * @author CMB2 team
17
  */
18
  class CMB2_Options {
19
  /**
20
  * Array of all CMB2_Option instances
21
+ *
22
  * @var array
23
  * @since 1.0.0
24
  */
39
  * for a specific option key
40
  *
41
  * @package CMB2
42
+ * @author CMB2 team
43
  */
44
  class CMB2_Option {
45
 
46
  /**
47
  * Options array
48
+ *
49
  * @var array
50
  */
51
  protected $options = array();
52
 
53
  /**
54
  * Current option key
55
+ *
56
  * @var string
57
  */
58
  protected $key = '';
59
 
60
  /**
61
  * Initiate option object
62
+ *
63
  * @param string $option_key Option key where data will be saved.
64
  * Leave empty for temporary data store.
65
  * @since 2.0.0
70
 
71
  /**
72
  * Delete the option from the db
73
+ *
74
  * @since 2.0.0
75
  * @return bool Delete success or failure
76
  */
82
 
83
  /**
84
  * Removes an option from an option array
85
+ *
86
  * @since 1.0.1
87
+ * @param string $field_id Option array field key
88
  * @return array Modified options
89
  */
90
  public function remove( $field_id, $resave = false ) {
104
 
105
  /**
106
  * Retrieves an option from an option array
107
+ *
108
  * @since 1.0.1
109
+ * @param string $field_id Option array field key
110
+ * @param mixed $default Fallback value for the option
111
  * @return array Requested field or default
112
  */
113
  public function get( $field_id, $default = false ) {
124
 
125
  /**
126
  * Updates Option data
127
+ *
128
  * @since 1.0.1
129
+ * @param string $field_id Option array field key
130
+ * @param mixed $value Value to update data with
131
+ * @param bool $resave Whether to re-save the data
132
+ * @param bool $single Whether data should not be an array
133
  * @return boolean Return status of update
134
  */
135
  public function update( $field_id, $value = '', $resave = false, $single = true ) {
143
  } else {
144
  $this->options[ $field_id ] = $value;
145
  }
 
146
  }
147
 
148
  if ( $resave || true === $field_id ) {
155
  /**
156
  * Saves the option array
157
  * Needs to be run after finished using remove/update_option
158
+ *
159
  * @uses apply_filters() Calls 'cmb2_override_option_save_{$this->key}' hook
160
  * to allow overwriting the option value to be stored.
161
  *
164
  * @return bool Success/Failure
165
  */
166
  public function set( $options = array() ) {
167
+ if ( ! empty( $options ) || empty( $options ) && empty( $this->key ) ) {
168
+ $this->options = $options;
169
+ }
170
+
171
+ $this->options = wp_unslash( $this->options ); // get rid of those evil magic quotes
172
 
173
  if ( empty( $this->key ) ) {
174
  return false;
186
 
187
  /**
188
  * Retrieve option value based on name of option.
189
+ *
190
  * @uses apply_filters() Calls 'cmb2_override_option_get_{$this->key}' hook to allow
191
  * overwriting the option value to be retrieved.
192
  *
207
  }
208
  }
209
 
210
+ $this->options = (array) $this->options;
211
+
212
+ return $this->options;
213
  }
214
 
215
  }
vendor/CMB2/includes/CMB2_Options_Hookup.php ADDED
@@ -0,0 +1,289 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handles hooking CMB2 forms/metaboxes into the post/attachement/user screens
4
+ * and handles hooking in and saving those fields.
5
+ *
6
+ * @since 2.0.0
7
+ *
8
+ * @category WordPress_Plugin
9
+ * @package CMB2
10
+ * @author CMB2 team
11
+ * @license GPL-2.0+
12
+ * @link https://cmb2.io
13
+ */
14
+ class CMB2_Options_Hookup extends CMB2_hookup {
15
+
16
+ /**
17
+ * The object type we are performing the hookup for
18
+ *
19
+ * @var string
20
+ * @since 2.0.9
21
+ */
22
+ protected $object_type = 'options-page';
23
+
24
+ /**
25
+ * Options page key.
26
+ *
27
+ * @var string
28
+ * @since 2.2.5
29
+ */
30
+ protected $option_key = '';
31
+
32
+ /**
33
+ * Constructor
34
+ *
35
+ * @since 2.0.0
36
+ * @param CMB2 $cmb The CMB2 object to hookup
37
+ */
38
+ public function __construct( CMB2 $cmb, $option_key ) {
39
+ $this->cmb = $cmb;
40
+ $this->option_key = $option_key;
41
+ }
42
+
43
+ public function hooks() {
44
+ if ( empty( $this->option_key ) ) {
45
+ return;
46
+ }
47
+
48
+ // Register setting to cmb2 group.
49
+ register_setting( 'cmb2', $this->option_key );
50
+
51
+ // Handle saving the data.
52
+ add_action( 'admin_post_' . $this->option_key, array( $this, 'save_options' ) );
53
+
54
+ // Optionally network_admin_menu.
55
+ $hook = $this->cmb->prop( 'admin_menu_hook' );
56
+
57
+ // Hook in to add our menu.
58
+ add_action( $hook, array( $this, 'options_page_menu_hooks' ) );
59
+
60
+ // If in the network admin, need to use get/update_site_option.
61
+ if ( 'network_admin_menu' === $hook ) {
62
+ // Override CMB's getter.
63
+ add_filter( "cmb2_override_option_get_{$this->option_key}", array( $this, 'network_get_override' ), 10, 2 );
64
+ // Override CMB's setter.
65
+ add_filter( "cmb2_override_option_save_{$this->option_key}", array( $this, 'network_update_override' ), 10, 2 );
66
+ }
67
+ }
68
+
69
+ /**
70
+ * Hook up our admin menu item and admin page.
71
+ *
72
+ * @since 2.2.5
73
+ *
74
+ * @return void
75
+ */
76
+ public function options_page_menu_hooks() {
77
+ $parent_slug = $this->cmb->prop( 'parent_slug' );
78
+ $title = $this->cmb->prop( 'title' );
79
+ $menu_title = $this->cmb->prop( 'menu_title', $title );
80
+ $capability = $this->cmb->prop( 'capability' );
81
+ $callback = array( $this, 'options_page_output' );
82
+
83
+ if ( $parent_slug ) {
84
+ $page_hook = add_submenu_page(
85
+ $parent_slug,
86
+ $title,
87
+ $menu_title,
88
+ $capability,
89
+ $this->option_key,
90
+ $callback
91
+ );
92
+ } else {
93
+ $page_hook = add_menu_page(
94
+ $title,
95
+ $menu_title,
96
+ $capability,
97
+ $this->option_key,
98
+ $callback,
99
+ $this->cmb->prop( 'icon_url' ),
100
+ $this->cmb->prop( 'position' )
101
+ );
102
+ }
103
+
104
+ if ( $this->cmb->prop( 'cmb_styles' ) ) {
105
+ // Include CMB CSS in the head to avoid FOUC
106
+ add_action( "admin_print_styles-{$page_hook}", array( 'CMB2_hookup', 'enqueue_cmb_css' ) );
107
+ }
108
+
109
+ $this->maybe_register_message();
110
+ }
111
+
112
+ /**
113
+ * If there is a message callback, let it determine how to register the message,
114
+ * else add a settings message if on this settings page.
115
+ *
116
+ * @since 2.2.6
117
+ *
118
+ * @return void
119
+ */
120
+ public function maybe_register_message() {
121
+ $is_options_page = isset( $_GET['page'] ) && $this->option_key === $_GET['page'];
122
+ $should_notify = ! $this->cmb->prop( 'disable_settings_errors' ) && isset( $_GET['settings-updated'] ) && $is_options_page;
123
+ $is_updated = $should_notify && 'true' === $_GET['settings-updated'];
124
+ $setting = "{$this->option_key}-notices";
125
+ $code = '';
126
+ $message = __( 'Nothing to update.', 'cmb2' );
127
+ $type = 'notice-warning';
128
+
129
+ if ( $is_updated ) {
130
+ $message = __( 'Settings updated.', 'cmb2' );
131
+ $type = 'updated';
132
+ }
133
+
134
+ // Check if parameter has registered a callback.
135
+ if ( $cb = $this->cmb->maybe_callback( 'message_cb' ) ) {
136
+
137
+ /**
138
+ * The 'message_cb' callback will receive the following parameters.
139
+ * Unless there are other reasons for notifications, the callback should only
140
+ * `add_settings_error()` if `$args['should_notify']` is truthy.
141
+ *
142
+ * @param CMB2 $cmb The CMB2 object.
143
+ * @param array $args {
144
+ * An array of message arguments
145
+ *
146
+ * @type bool $is_options_page Whether current page is this options page.
147
+ * @type bool $should_notify Whether options were saved and we should be notified.
148
+ * @type bool $is_updated Whether options were updated with save (or stayed the same).
149
+ * @type string $setting For add_settings_error(), Slug title of the setting to which
150
+ * this error applies.
151
+ * @type string $code For add_settings_error(), Slug-name to identify the error.
152
+ * Used as part of 'id' attribute in HTML output.
153
+ * @type string $message For add_settings_error(), The formatted message text to display
154
+ * to the user (will be shown inside styled `<div>` and `<p>` tags).
155
+ * Will be 'Settings updated.' if $is_updated is true, else 'Nothing to update.'
156
+ * @type string $type For add_settings_error(), Message type, controls HTML class.
157
+ * Accepts 'error', 'updated', '', 'notice-warning', etc.
158
+ * Will be 'updated' if $is_updated is true, else 'notice-warning'.
159
+ * }
160
+ */
161
+ $args = compact( 'is_options_page', 'should_notify', 'is_updated', 'setting', 'code', 'message', 'type' );
162
+
163
+ $this->cmb->do_callback( $cb, $args );
164
+
165
+ } elseif ( $should_notify ) {
166
+
167
+ add_settings_error( $setting, $code, $message, $type );
168
+ }
169
+ }
170
+
171
+ /**
172
+ * Display options-page output. To override, set 'display_cb' box property.
173
+ *
174
+ * @since 2.2.5
175
+ */
176
+ public function options_page_output() {
177
+ $this->maybe_output_settings_notices();
178
+
179
+ $callback = $this->cmb->prop( 'display_cb' );
180
+ if ( is_callable( $callback ) ) {
181
+ return $callback( $this );
182
+ }
183
+
184
+ ?>
185
+ <div class="wrap cmb2-options-page option-<?php echo $this->option_key; ?>">
186
+ <?php if ( $this->cmb->prop( 'title' ) ) : ?>
187
+ <h2><?php echo wp_kses_post( $this->cmb->prop( 'title' ) ); ?></h2>
188
+ <?php endif; ?>
189
+ <form class="cmb-form" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" method="POST" id="<?php echo $this->cmb->cmb_id; ?>" enctype="multipart/form-data" encoding="multipart/form-data">
190
+ <input type="hidden" name="action" value="<?php echo esc_attr( $this->option_key ); ?>">
191
+ <?php $this->options_page_metabox(); ?>
192
+ <?php submit_button( esc_attr( $this->cmb->prop( 'save_button' ) ), 'primary', 'submit-cmb' ); ?>
193
+ </form>
194
+ </div>
195
+ <?php
196
+ }
197
+
198
+ /**
199
+ * Outputs the settings notices if a) not a sub-page of 'options-general.php'
200
+ * (because settings_errors() already called in wp-admin/options-head.php),
201
+ * and b) the 'disable_settings_errors' prop is not set or truthy.
202
+ *
203
+ * @since 2.2.5
204
+ * @return void
205
+ */
206
+ public function maybe_output_settings_notices() {
207
+ global $parent_file;
208
+
209
+ // The settings sub-pages will already have settings_errors() called in wp-admin/options-head.php
210
+ if ( 'options-general.php' !== $parent_file ) {
211
+ settings_errors( "{$this->option_key}-notices" );
212
+ }
213
+ }
214
+
215
+ /**
216
+ * Display metaboxes for an options-page object.
217
+ *
218
+ * @since 2.2.5
219
+ */
220
+ public function options_page_metabox() {
221
+ $this->show_form_for_type( 'options-page' );
222
+ }
223
+
224
+ /**
225
+ * Save data from options page, then redirects back.
226
+ *
227
+ * @since 2.2.5
228
+ * @return void
229
+ */
230
+ public function save_options() {
231
+ $url = wp_get_referer();
232
+ if ( ! $url ) {
233
+ $url = admin_url();
234
+ }
235
+
236
+ if (
237
+ $this->can_save( 'options-page' )
238
+ // check params
239
+ && isset( $_POST['submit-cmb'], $_POST['action'] )
240
+ && $this->option_key === $_POST['action']
241
+ ) {
242
+
243
+ $updated = $this->cmb
244
+ ->save_fields( $this->option_key, $this->cmb->object_type(), $_POST )
245
+ ->was_updated(); // Will be false if no values were changed/updated.
246
+
247
+ $url = add_query_arg( 'settings-updated', $updated ? 'true' : 'false', $url );
248
+ }
249
+
250
+ wp_safe_redirect( esc_url_raw( $url ), WP_Http::SEE_OTHER );
251
+ exit;
252
+ }
253
+
254
+ /**
255
+ * Replaces get_option with get_site_option
256
+ * @since 2.2.5
257
+ * @return mixed Value set for the network option.
258
+ */
259
+ public function network_get_override( $test, $default = false ) {
260
+ return get_site_option( $this->option_key, $default );
261
+ }
262
+
263
+ /**
264
+ * Replaces update_option with update_site_option
265
+ * @since 2.2.5
266
+ * @return bool Success/Failure
267
+ */
268
+ public function network_update_override( $test, $option_value ) {
269
+ return update_site_option( $this->option_key, $option_value );
270
+ }
271
+
272
+ /**
273
+ * Magic getter for our object.
274
+ *
275
+ * @param string $field
276
+ * @throws Exception Throws an exception if the field is invalid.
277
+ * @return mixed
278
+ */
279
+ public function __get( $field ) {
280
+ switch ( $field ) {
281
+ case 'object_type':
282
+ case 'option_key':
283
+ case 'cmb':
284
+ return $this->{$field};
285
+ default:
286
+ throw new Exception( sprintf( esc_html__( 'Invalid %1$s property: %2$s', 'cmb2' ), __CLASS__, $field ) );
287
+ }
288
+ }
289
+ }
vendor/CMB2/includes/CMB2_Sanitize.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  *
13
  * @method string _id()
14
  */
@@ -16,29 +16,33 @@ class CMB2_Sanitize {
16
 
17
  /**
18
  * A CMB field object
 
19
  * @var CMB2_Field object
20
  */
21
  public $field;
22
 
23
  /**
24
  * Field's value
 
25
  * @var mixed
26
  */
27
  public $value;
28
 
29
  /**
30
  * Setup our class vars
 
31
  * @since 1.1.0
32
  * @param CMB2_Field $field A CMB2 field object
33
  * @param mixed $value Field value
34
  */
35
  public function __construct( CMB2_Field $field, $value ) {
36
  $this->field = $field;
37
- $this->value = stripslashes_deep( $value ); // get rid of those evil magic quotes
38
  }
39
 
40
  /**
41
  * Catchall method if field's 'sanitization_cb' is NOT defined, or field type does not have a corresponding validation method
 
42
  * @since 1.0.0
43
  * @param string $name Non-existent method name
44
  * @param array $arguments All arguments passed to the method
@@ -49,6 +53,7 @@ class CMB2_Sanitize {
49
 
50
  /**
51
  * Default fallback sanitization method. Applies filters.
 
52
  * @since 1.0.2
53
  */
54
  public function default_sanitization() {
@@ -56,6 +61,7 @@ class CMB2_Sanitize {
56
  /**
57
  * This exists for back-compatibility, but validation
58
  * is not what happens here.
 
59
  * @deprecated See documentation for "cmb2_sanitize_{$this->type()}".
60
  */
61
  if ( function_exists( 'apply_filters_deprecated' ) ) {
@@ -78,9 +84,11 @@ class CMB2_Sanitize {
78
  case 'taxonomy_select':
79
  case 'taxonomy_radio':
80
  case 'taxonomy_radio_inline':
 
81
  case 'taxonomy_multicheck':
 
82
  case 'taxonomy_multicheck_inline':
83
- $sanitized_value = $this->_taxonomy();
84
  break;
85
  case 'multicheck':
86
  case 'multicheck_inline':
@@ -101,6 +109,7 @@ class CMB2_Sanitize {
101
 
102
  /**
103
  * Default sanitization method, sanitize_text_field. Checks if value is array.
 
104
  * @since 2.2.4
105
  * @return mixed Sanitized value.
106
  */
@@ -111,10 +120,11 @@ class CMB2_Sanitize {
111
 
112
  /**
113
  * Sets the object terms to the object (if not options-page) and optionally returns the sanitized term values.
 
114
  * @since 2.2.4
115
  * @return mixed Blank value, or sanitized term values if "cmb2_return_taxonomy_values_{$cmb_id}" is true.
116
  */
117
- protected function _taxonomy() {
118
  $sanitized_value = '';
119
 
120
  if ( ! $this->field->args( 'taxonomy' ) ) {
@@ -154,6 +164,7 @@ class CMB2_Sanitize {
154
 
155
  /**
156
  * Simple checkbox validation
 
157
  * @since 1.0.1
158
  * @return string|false 'on' or false
159
  */
@@ -163,6 +174,7 @@ class CMB2_Sanitize {
163
 
164
  /**
165
  * Validate url in a meta value
 
166
  * @since 1.0.1
167
  * @return string Empty string or escaped url
168
  */
@@ -198,6 +210,7 @@ class CMB2_Sanitize {
198
 
199
  /**
200
  * Validate email in a meta value
 
201
  * @since 1.0.1
202
  * @return string Empty string or sanitized email
203
  */
@@ -218,6 +231,7 @@ class CMB2_Sanitize {
218
 
219
  /**
220
  * Validate money in a meta value
 
221
  * @since 1.0.1
222
  * @return string Empty string or sanitized money value
223
  */
@@ -231,6 +245,10 @@ class CMB2_Sanitize {
231
  $search = array( $wp_locale->number_format['thousands_sep'], $wp_locale->number_format['decimal_point'] );
232
  $replace = array( '', '.' );
233
 
 
 
 
 
234
  // for repeatable
235
  if ( is_array( $this->value ) ) {
236
  foreach ( $this->value as $key => $val ) {
@@ -247,10 +265,14 @@ class CMB2_Sanitize {
247
 
248
  /**
249
  * Converts text date to timestamp
 
250
  * @since 1.0.2
251
  * @return string Timestring
252
  */
253
  public function text_date_timestamp() {
 
 
 
254
  return is_array( $this->value )
255
  ? array_map( array( $this->field, 'get_timestamp_from_value' ), $this->value )
256
  : $this->field->get_timestamp_from_value( $this->value );
@@ -258,10 +280,13 @@ class CMB2_Sanitize {
258
 
259
  /**
260
  * Datetime to timestamp
 
261
  * @since 1.0.1
262
  * @return string|array Timestring
263
  */
264
  public function text_datetime_timestamp( $repeat = false ) {
 
 
265
 
266
  $test = is_array( $this->value ) ? array_filter( $this->value ) : '';
267
  if ( empty( $test ) ) {
@@ -286,6 +311,7 @@ class CMB2_Sanitize {
286
 
287
  /**
288
  * Datetime to timestamp with timezone
 
289
  * @since 1.0.1
290
  * @return string Timestring
291
  */
@@ -297,6 +323,9 @@ class CMB2_Sanitize {
297
  return '';
298
  }
299
 
 
 
 
300
  $utc_key = $this->field->_id() . '_utc';
301
 
302
  $repeat_value = $this->_check_repeat( __FUNCTION__, $repeat );
@@ -342,8 +371,8 @@ class CMB2_Sanitize {
342
  if ( ! is_object( $datetime ) ) {
343
  $this->value = $utc_stamp = '';
344
  } else {
345
- $timestamp = $datetime->setTimezone( new DateTimeZone( $tzstring ) )->getTimestamp();
346
- $utc_stamp = $timestamp - $offset;
347
  $this->value = serialize( $datetime );
348
  }
349
 
@@ -361,7 +390,6 @@ class CMB2_Sanitize {
361
  $this->_save_utc_value( $utc_key, $utc_stamp );
362
  }
363
  }
364
-
365
  } catch ( Exception $e ) {
366
  $this->value = '';
367
  CMB2_Utils::log_if_debug( __METHOD__, __LINE__, $e->getMessage() );
@@ -372,6 +400,7 @@ class CMB2_Sanitize {
372
 
373
  /**
374
  * Sanitize textareas and wysiwyg fields
 
375
  * @since 1.0.1
376
  * @return string Sanitized data
377
  */
@@ -381,6 +410,7 @@ class CMB2_Sanitize {
381
 
382
  /**
383
  * Sanitize code textareas
 
384
  * @since 1.0.2
385
  * @return string Sanitized data
386
  */
@@ -395,6 +425,7 @@ class CMB2_Sanitize {
395
 
396
  /**
397
  * Handles saving of attachment post ID and sanitizing file url
 
398
  * @since 1.1.0
399
  * @return string Sanitized url
400
  */
@@ -414,6 +445,7 @@ class CMB2_Sanitize {
414
 
415
  /**
416
  * Gets the values for the `file` field type from the data being saved.
 
417
  * @since 2.2.0
418
  */
419
  public function _get_group_file_value_array( $id_key ) {
@@ -440,6 +472,7 @@ class CMB2_Sanitize {
440
 
441
  /**
442
  * Peforms saving of `file` attachement's ID
 
443
  * @since 1.1.0
444
  */
445
  public function _save_file_id_value( $file_id_key ) {
@@ -453,6 +486,10 @@ class CMB2_Sanitize {
453
  // If there is no ID saved yet, try to get it from the url
454
  if ( $this->value && ! $id_val ) {
455
  $id_val = CMB2_Utils::image_id_from_url( $this->value );
 
 
 
 
456
  }
457
 
458
  return $id_field->save_field( $id_val );
@@ -460,6 +497,7 @@ class CMB2_Sanitize {
460
 
461
  /**
462
  * Peforms saving of `text_datetime_timestamp_timezone` utc timestamp
 
463
  * @since 2.2.0
464
  */
465
  public function _save_utc_value( $utc_key, $utc_stamp ) {
@@ -468,6 +506,7 @@ class CMB2_Sanitize {
468
 
469
  /**
470
  * Returns a new, supporting, CMB2_Field object based on a new field id.
 
471
  * @since 2.2.0
472
  */
473
  public function _new_supporting_field( $new_field_id ) {
@@ -479,6 +518,7 @@ class CMB2_Sanitize {
479
 
480
  /**
481
  * If repeating, loop through and re-apply sanitization method
 
482
  * @since 1.1.0
483
  * @param string $method Class method
484
  * @param bool $repeat Whether repeating or not
@@ -508,8 +548,9 @@ class CMB2_Sanitize {
508
 
509
  /**
510
  * Determine if passed value is an empty array
 
511
  * @since 2.0.6
512
- * @param mixed $to_check Value to check
513
  * @return boolean Whether value is an array that's empty
514
  */
515
  public function _is_empty_array( $to_check ) {
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  *
13
  * @method string _id()
14
  */
16
 
17
  /**
18
  * A CMB field object
19
+ *
20
  * @var CMB2_Field object
21
  */
22
  public $field;
23
 
24
  /**
25
  * Field's value
26
+ *
27
  * @var mixed
28
  */
29
  public $value;
30
 
31
  /**
32
  * Setup our class vars
33
+ *
34
  * @since 1.1.0
35
  * @param CMB2_Field $field A CMB2 field object
36
  * @param mixed $value Field value
37
  */
38
  public function __construct( CMB2_Field $field, $value ) {
39
  $this->field = $field;
40
+ $this->value = $value;
41
  }
42
 
43
  /**
44
  * Catchall method if field's 'sanitization_cb' is NOT defined, or field type does not have a corresponding validation method
45
+ *
46
  * @since 1.0.0
47
  * @param string $name Non-existent method name
48
  * @param array $arguments All arguments passed to the method
53
 
54
  /**
55
  * Default fallback sanitization method. Applies filters.
56
+ *
57
  * @since 1.0.2
58
  */
59
  public function default_sanitization() {
61
  /**
62
  * This exists for back-compatibility, but validation
63
  * is not what happens here.
64
+ *
65
  * @deprecated See documentation for "cmb2_sanitize_{$this->type()}".
66
  */
67
  if ( function_exists( 'apply_filters_deprecated' ) ) {
84
  case 'taxonomy_select':
85
  case 'taxonomy_radio':
86
  case 'taxonomy_radio_inline':
87
+ case 'taxonomy_radio_hierarchical':
88
  case 'taxonomy_multicheck':
89
+ case 'taxonomy_multicheck_hierarchical':
90
  case 'taxonomy_multicheck_inline':
91
+ $sanitized_value = $this->taxonomy();
92
  break;
93
  case 'multicheck':
94
  case 'multicheck_inline':
109
 
110
  /**
111
  * Default sanitization method, sanitize_text_field. Checks if value is array.
112
+ *
113
  * @since 2.2.4
114
  * @return mixed Sanitized value.
115
  */
120
 
121
  /**
122
  * Sets the object terms to the object (if not options-page) and optionally returns the sanitized term values.
123
+ *
124
  * @since 2.2.4
125
  * @return mixed Blank value, or sanitized term values if "cmb2_return_taxonomy_values_{$cmb_id}" is true.
126
  */
127
+ public function taxonomy() {
128
  $sanitized_value = '';
129
 
130
  if ( ! $this->field->args( 'taxonomy' ) ) {
164
 
165
  /**
166
  * Simple checkbox validation
167
+ *
168
  * @since 1.0.1
169
  * @return string|false 'on' or false
170
  */
174
 
175
  /**
176
  * Validate url in a meta value
177
+ *
178
  * @since 1.0.1
179
  * @return string Empty string or escaped url
180
  */
210
 
211
  /**
212
  * Validate email in a meta value
213
+ *
214
  * @since 1.0.1
215
  * @return string Empty string or sanitized email
216
  */
231
 
232
  /**
233
  * Validate money in a meta value
234
+ *
235
  * @since 1.0.1
236
  * @return string Empty string or sanitized money value
237
  */
245
  $search = array( $wp_locale->number_format['thousands_sep'], $wp_locale->number_format['decimal_point'] );
246
  $replace = array( '', '.' );
247
 
248
+ // Strip slashes. Example: 2\'180.00.
249
+ // See https://github.com/CMB2/CMB2/issues/1014
250
+ $this->value = wp_unslash( $this->value );
251
+
252
  // for repeatable
253
  if ( is_array( $this->value ) ) {
254
  foreach ( $this->value as $key => $val ) {
265
 
266
  /**
267
  * Converts text date to timestamp
268
+ *
269
  * @since 1.0.2
270
  * @return string Timestring
271
  */
272
  public function text_date_timestamp() {
273
+ // date_create_from_format if there is a slash in the value.
274
+ $this->value = wp_unslash( $this->value );
275
+
276
  return is_array( $this->value )
277
  ? array_map( array( $this->field, 'get_timestamp_from_value' ), $this->value )
278
  : $this->field->get_timestamp_from_value( $this->value );
280
 
281
  /**
282
  * Datetime to timestamp
283
+ *
284
  * @since 1.0.1
285
  * @return string|array Timestring
286
  */
287
  public function text_datetime_timestamp( $repeat = false ) {
288
+ // date_create_from_format if there is a slash in the value.
289
+ $this->value = wp_unslash( $this->value );
290
 
291
  $test = is_array( $this->value ) ? array_filter( $this->value ) : '';
292
  if ( empty( $test ) ) {
311
 
312
  /**
313
  * Datetime to timestamp with timezone
314
+ *
315
  * @since 1.0.1
316
  * @return string Timestring
317
  */
323
  return '';
324
  }
325
 
326
+ // date_create_from_format if there is a slash in the value.
327
+ $this->value = wp_unslash( $this->value );
328
+
329
  $utc_key = $this->field->_id() . '_utc';
330
 
331
  $repeat_value = $this->_check_repeat( __FUNCTION__, $repeat );
371
  if ( ! is_object( $datetime ) ) {
372
  $this->value = $utc_stamp = '';
373
  } else {
374
+ $datetime->setTimezone( new DateTimeZone( $tzstring ) );
375
+ $utc_stamp = date_timestamp_get( $datetime ) - $offset;
376
  $this->value = serialize( $datetime );
377
  }
378
 
390
  $this->_save_utc_value( $utc_key, $utc_stamp );
391
  }
392
  }
 
393
  } catch ( Exception $e ) {
394
  $this->value = '';
395
  CMB2_Utils::log_if_debug( __METHOD__, __LINE__, $e->getMessage() );
400
 
401
  /**
402
  * Sanitize textareas and wysiwyg fields
403
+ *
404
  * @since 1.0.1
405
  * @return string Sanitized data
406
  */
410
 
411
  /**
412
  * Sanitize code textareas
413
+ *
414
  * @since 1.0.2
415
  * @return string Sanitized data
416
  */
425
 
426
  /**
427
  * Handles saving of attachment post ID and sanitizing file url
428
+ *
429
  * @since 1.1.0
430
  * @return string Sanitized url
431
  */
445
 
446
  /**
447
  * Gets the values for the `file` field type from the data being saved.
448
+ *
449
  * @since 2.2.0
450
  */
451
  public function _get_group_file_value_array( $id_key ) {
472
 
473
  /**
474
  * Peforms saving of `file` attachement's ID
475
+ *
476
  * @since 1.1.0
477
  */
478
  public function _save_file_id_value( $file_id_key ) {
486
  // If there is no ID saved yet, try to get it from the url
487
  if ( $this->value && ! $id_val ) {
488
  $id_val = CMB2_Utils::image_id_from_url( $this->value );
489
+
490
+ // If there is an ID but user emptied the input value, remove the ID.
491
+ } elseif ( ! $this->value && $id_val ) {
492
+ $id_val = null;
493
  }
494
 
495
  return $id_field->save_field( $id_val );
497
 
498
  /**
499
  * Peforms saving of `text_datetime_timestamp_timezone` utc timestamp
500
+ *
501
  * @since 2.2.0
502
  */
503
  public function _save_utc_value( $utc_key, $utc_stamp ) {
506
 
507
  /**
508
  * Returns a new, supporting, CMB2_Field object based on a new field id.
509
+ *
510
  * @since 2.2.0
511
  */
512
  public function _new_supporting_field( $new_field_id ) {
518
 
519
  /**
520
  * If repeating, loop through and re-apply sanitization method
521
+ *
522
  * @since 1.1.0
523
  * @param string $method Class method
524
  * @param bool $repeat Whether repeating or not
548
 
549
  /**
550
  * Determine if passed value is an empty array
551
+ *
552
  * @since 2.0.6
553
+ * @param mixed $to_check Value to check
554
  * @return boolean Whether value is an array that's empty
555
  */
556
  public function _is_empty_array( $to_check ) {
vendor/CMB2/includes/CMB2_Show_Filters.php CHANGED
@@ -11,9 +11,9 @@
11
  *
12
  * @category WordPress_Plugin
13
  * @package CMB2
14
- * @author WebDevStudios
15
  * @license GPL-2.0+
16
- * @link http://webdevstudios.com
17
  */
18
  class CMB2_Show_Filters {
19
 
@@ -69,6 +69,7 @@ class CMB2_Show_Filters {
69
 
70
  /**
71
  * Add metaboxes for an specific ID
 
72
  * @since 1.0.0
73
  * @param bool $display To display or not
74
  * @param array $meta_box_args Metabox config array
@@ -94,6 +95,7 @@ class CMB2_Show_Filters {
94
 
95
  /**
96
  * Add metaboxes for an specific Page Template
 
97
  * @since 1.0.0
98
  * @param bool $display To display or not
99
  * @param array $meta_box_args Metabox config array
@@ -125,6 +127,7 @@ class CMB2_Show_Filters {
125
 
126
  /**
127
  * Only show options-page metaboxes on their options page (but only enforce on the admin side)
 
128
  * @since 1.0.0
129
  * @param bool $display To display or not
130
  * @param array $meta_box_args Metabox config array
11
  *
12
  * @category WordPress_Plugin
13
  * @package CMB2
14
+ * @author CMB2 team
15
  * @license GPL-2.0+
16
+ * @link https://cmb2.io
17
  */
18
  class CMB2_Show_Filters {
19
 
69
 
70
  /**
71
  * Add metaboxes for an specific ID
72
+ *
73
  * @since 1.0.0
74
  * @param bool $display To display or not
75
  * @param array $meta_box_args Metabox config array
95
 
96
  /**
97
  * Add metaboxes for an specific Page Template
98
+ *
99
  * @since 1.0.0
100
  * @param bool $display To display or not
101
  * @param array $meta_box_args Metabox config array
127
 
128
  /**
129
  * Only show options-page metaboxes on their options page (but only enforce on the admin side)
130
+ *
131
  * @since 1.0.0
132
  * @param bool $display To display or not
133
  * @param array $meta_box_args Metabox config array
vendor/CMB2/includes/CMB2_Types.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  *
13
  * @method string _id()
14
  * @method string _name()
@@ -20,6 +20,7 @@ class CMB2_Types {
20
 
21
  /**
22
  * An iterator value for repeatable fields
 
23
  * @var integer
24
  * @since 1.0.0
25
  */
@@ -27,6 +28,7 @@ class CMB2_Types {
27
 
28
  /**
29
  * Current CMB2_Field field object
 
30
  * @var CMB2_Field object
31
  * @since 1.0.0
32
  */
@@ -34,6 +36,7 @@ class CMB2_Types {
34
 
35
  /**
36
  * Current CMB2_Type_Base object
 
37
  * @var CMB2_Type_Base object
38
  * @since 2.2.2
39
  */
@@ -45,6 +48,7 @@ class CMB2_Types {
45
 
46
  /**
47
  * Default fallback. Allows rendering fields via "cmb2_render_$fieldtype" hook
 
48
  * @since 1.0.0
49
  * @param string $fieldtype Non-existent field type name
50
  * @param array $arguments All arguments passed to the method
@@ -82,6 +86,7 @@ class CMB2_Types {
82
 
83
  /**
84
  * Render a field (and handle repeatable)
 
85
  * @since 1.1.0
86
  */
87
  public function render() {
@@ -94,6 +99,7 @@ class CMB2_Types {
94
 
95
  /**
96
  * Render a field type
 
97
  * @since 1.1.0
98
  */
99
  protected function _render() {
@@ -174,6 +180,7 @@ class CMB2_Types {
174
 
175
  /**
176
  * Check for methods to be proxied to the CMB2_Type_Base object.
 
177
  * @since 2.2.4
178
  * @param string $method The possible method to proxy.
179
  * @param array $arguments All arguments passed to the method.
@@ -206,31 +213,38 @@ class CMB2_Types {
206
 
207
  /**
208
  * Checks for a custom field CMB2_Type_Base class to use for rendering.
 
209
  * @since 2.2.4
210
- * @param string $fieldtype Non-existent field type name
 
211
  * @param array $args Optional field arguments.
212
- * @return CMB2_Type_Base Type object.
 
 
 
213
  */
214
  public function maybe_custom_field_object( $fieldtype, $args = array() ) {
215
  if ( $render_class_name = $this->get_render_type_class( $fieldtype ) ) {
216
-
217
  $this->type = new $render_class_name( $this, $args );
218
 
219
  if ( ! ( $this->type instanceof CMB2_Type_Base ) ) {
220
  throw new Exception( __( 'Custom CMB2 field type classes must extend CMB2_Type_Base.', 'cmb2' ) );
221
  }
 
 
222
  }
223
 
224
- return $this->type;
225
  }
226
 
227
  /**
228
  * Gets the render type CMB2_Type_Base object to use for rendering the field.
 
229
  * @since 2.2.4
230
- * @param string $fieldtype The type of field being rendered.
231
- * @param string $render_class_name The default field type class to use. Defaults to null.
232
- * @param array $args Optional arguments to pass to type class.
233
- * @param mixed $additional Optional additional argument to pass to type class.
234
  * @return CMB2_Type_Base Type object.
235
  */
236
  public function get_new_render_type( $fieldtype, $render_class_name = null, $args = array(), $additional = '' ) {
@@ -242,6 +256,7 @@ class CMB2_Types {
242
 
243
  /**
244
  * Checks for the render type class to use for rendering the field.
 
245
  * @since 2.2.4
246
  * @param string $fieldtype The type of field being rendered.
247
  * @param string $render_class_name The default field type class to use. Defaults to null.
@@ -270,9 +285,10 @@ class CMB2_Types {
270
 
271
  /**
272
  * Retrieve text parameter from field's options array (if it has one), or use fallback text
 
273
  * @since 2.0.0
274
- * @param string $text_key Key in field's options array
275
- * @param string $fallback Fallback text
276
  * @return string Text
277
  */
278
  public function _text( $text_key, $fallback = '' ) {
@@ -281,8 +297,9 @@ class CMB2_Types {
281
 
282
  /**
283
  * Determine a file's extension
 
284
  * @since 1.0.0
285
- * @param string $file File url
286
  * @return string|false File extension or false
287
  */
288
  public function get_file_ext( $file ) {
@@ -291,6 +308,7 @@ class CMB2_Types {
291
 
292
  /**
293
  * Get the file name from a url
 
294
  * @since 2.0.0
295
  * @param string $value File url or path
296
  * @return string File name
@@ -301,9 +319,10 @@ class CMB2_Types {
301
 
302
  /**
303
  * Combines attributes into a string for a form element
 
304
  * @since 1.1.0
305
- * @param array $attrs Attributes to concatenate
306
- * @param array $attr_exclude Attributes that should NOT be concatenated
307
  * @return string String of attributes for form element
308
  */
309
  public function concat_attrs( $attrs, $attr_exclude = array() ) {
@@ -312,6 +331,7 @@ class CMB2_Types {
312
 
313
  /**
314
  * Generates repeatable field table markup
 
315
  * @since 1.0.0
316
  */
317
  public function render_repeatable_field() {
@@ -326,7 +346,7 @@ class CMB2_Types {
326
  </div>
327
  </div>
328
  <p class="cmb-add-row">
329
- <button type="button" data-selector="<?php echo $table_id; ?>" class="cmb-add-row-button button"><?php echo esc_html( $this->_text( 'add_row_text', esc_html__( 'Add Row', 'cmb2' ) ) ); ?></button>
330
  </p>
331
 
332
  <?php
@@ -336,6 +356,7 @@ class CMB2_Types {
336
 
337
  /**
338
  * Generates repeatable field rows
 
339
  * @since 1.1.0
340
  */
341
  public function repeatable_rows() {
@@ -356,7 +377,7 @@ class CMB2_Types {
356
  $count = count( $meta_value );
357
  foreach ( (array) $meta_value as $val ) {
358
  $this->field->escaped_value = $val;
359
- $this->repeat_row( $count < 2 );
360
  $this->iterator++;
361
  }
362
  } else {
@@ -365,23 +386,22 @@ class CMB2_Types {
365
  $this->field->escaped_value = $this->field->value = null;
366
 
367
  // Otherwise add one row
368
- $this->repeat_row( true );
369
  }
370
 
371
  // Then add an empty row
372
  $this->field->escaped_value = '';
373
  $this->iterator = $this->iterator ? $this->iterator : 1;
374
- $this->repeat_row( false, 'empty-row hidden' );
375
  }
376
 
377
  /**
378
  * Generates a repeatable row's markup
 
379
  * @since 1.1.0
380
- * @param bool $disable_remover Whether remove button should be disabled
381
  * @param string $class Repeatable table row's class
382
  */
383
- protected function repeat_row( $disable_remover = false, $class = 'cmb-repeat-row' ) {
384
- $disabled = $disable_remover ? ' button-disabled' : '';
385
  ?>
386
 
387
  <div class="cmb-row <?php echo $class; ?>">
@@ -389,7 +409,7 @@ class CMB2_Types {
389
  <?php $this->_render(); ?>
390
  </div>
391
  <div class="cmb-td cmb-remove-row">
392
- <button type="button" class="button cmb-remove-row-button<?php echo $disabled; ?>"><?php echo esc_html( $this->_text( 'remove_row_text', esc_html__( 'Remove', 'cmb2' ) ) ); ?></button>
393
  </div>
394
  </div>
395
 
@@ -398,6 +418,7 @@ class CMB2_Types {
398
 
399
  /**
400
  * Generates description markup
 
401
  * @since 1.0.0
402
  * @param boolean $paragraph Paragraph tag or span
403
  * @param boolean $echo Whether to echo description or only return it
@@ -427,8 +448,9 @@ class CMB2_Types {
427
 
428
  /**
429
  * Generate field name attribute
 
430
  * @since 1.1.0
431
- * @param string $suffix For multi-part fields
432
  * @return string Name attribute
433
  */
434
  public function _name( $suffix = '' ) {
@@ -437,8 +459,9 @@ class CMB2_Types {
437
 
438
  /**
439
  * Generate field id attribute
 
440
  * @since 1.1.0
441
- * @param string $suffix For multi-part fields
442
  * @return string Id attribute
443
  */
444
  public function _id( $suffix = '' ) {
@@ -447,6 +470,7 @@ class CMB2_Types {
447
 
448
  /**
449
  * Handles outputting an 'input' element
 
450
  * @since 1.1.0
451
  * @param array $args Override arguments
452
  * @param string $type Field type
@@ -458,8 +482,9 @@ class CMB2_Types {
458
 
459
  /**
460
  * Handles outputting an 'textarea' element
 
461
  * @since 1.1.0
462
- * @param array $args Override arguments
463
  * @return string Form textarea element
464
  */
465
  public function textarea( $args = array() ) {
@@ -607,6 +632,10 @@ class CMB2_Types {
607
  return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Radio', $args )->render();
608
  }
609
 
 
 
 
 
610
  public function taxonomy_radio_inline( $args = array() ) {
611
  return $this->taxonomy_radio( $args );
612
  }
@@ -615,6 +644,10 @@ class CMB2_Types {
615
  return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Multicheck', $args )->render();
616
  }
617
 
 
 
 
 
618
  public function taxonomy_multicheck_inline( $args = array() ) {
619
  return $this->taxonomy_multicheck( $args );
620
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  *
13
  * @method string _id()
14
  * @method string _name()
20
 
21
  /**
22
  * An iterator value for repeatable fields
23
+ *
24
  * @var integer
25
  * @since 1.0.0
26
  */
28
 
29
  /**
30
  * Current CMB2_Field field object
31
+ *
32
  * @var CMB2_Field object
33
  * @since 1.0.0
34
  */
36
 
37
  /**
38
  * Current CMB2_Type_Base object
39
+ *
40
  * @var CMB2_Type_Base object
41
  * @since 2.2.2
42
  */
48
 
49
  /**
50
  * Default fallback. Allows rendering fields via "cmb2_render_$fieldtype" hook
51
+ *
52
  * @since 1.0.0
53
  * @param string $fieldtype Non-existent field type name
54
  * @param array $arguments All arguments passed to the method
86
 
87
  /**
88
  * Render a field (and handle repeatable)
89
+ *
90
  * @since 1.1.0
91
  */
92
  public function render() {
99
 
100
  /**
101
  * Render a field type
102
+ *
103
  * @since 1.1.0
104
  */
105
  protected function _render() {
180
 
181
  /**
182
  * Check for methods to be proxied to the CMB2_Type_Base object.
183
+ *
184
  * @since 2.2.4
185
  * @param string $method The possible method to proxy.
186
  * @param array $arguments All arguments passed to the method.
213
 
214
  /**
215
  * Checks for a custom field CMB2_Type_Base class to use for rendering.
216
+ *
217
  * @since 2.2.4
218
+ *
219
+ * @param string $fieldtype Non-existent field type name.
220
  * @param array $args Optional field arguments.
221
+ *
222
+ * @return bool|CMB2_Type_Base Type object if custom field is an object, false if field was added with
223
+ * `cmb2_render_{$field_type}` action.
224
+ * @throws Exception if custom field type class does not extend CMB2_Type_Base.
225
  */
226
  public function maybe_custom_field_object( $fieldtype, $args = array() ) {
227
  if ( $render_class_name = $this->get_render_type_class( $fieldtype ) ) {
 
228
  $this->type = new $render_class_name( $this, $args );
229
 
230
  if ( ! ( $this->type instanceof CMB2_Type_Base ) ) {
231
  throw new Exception( __( 'Custom CMB2 field type classes must extend CMB2_Type_Base.', 'cmb2' ) );
232
  }
233
+
234
+ return $this->type;
235
  }
236
 
237
+ return false;
238
  }
239
 
240
  /**
241
  * Gets the render type CMB2_Type_Base object to use for rendering the field.
242
+ *
243
  * @since 2.2.4
244
+ * @param string $fieldtype The type of field being rendered.
245
+ * @param string $render_class_name The default field type class to use. Defaults to null.
246
+ * @param array $args Optional arguments to pass to type class.
247
+ * @param mixed $additional Optional additional argument to pass to type class.
248
  * @return CMB2_Type_Base Type object.
249
  */
250
  public function get_new_render_type( $fieldtype, $render_class_name = null, $args = array(), $additional = '' ) {
256
 
257
  /**
258
  * Checks for the render type class to use for rendering the field.
259
+ *
260
  * @since 2.2.4
261
  * @param string $fieldtype The type of field being rendered.
262
  * @param string $render_class_name The default field type class to use. Defaults to null.
285
 
286
  /**
287
  * Retrieve text parameter from field's options array (if it has one), or use fallback text
288
+ *
289
  * @since 2.0.0
290
+ * @param string $text_key Key in field's options array
291
+ * @param string $fallback Fallback text
292
  * @return string Text
293
  */
294
  public function _text( $text_key, $fallback = '' ) {
297
 
298
  /**
299
  * Determine a file's extension
300
+ *
301
  * @since 1.0.0
302
+ * @param string $file File url
303
  * @return string|false File extension or false
304
  */
305
  public function get_file_ext( $file ) {
308
 
309
  /**
310
  * Get the file name from a url
311
+ *
312
  * @since 2.0.0
313
  * @param string $value File url or path
314
  * @return string File name
319
 
320
  /**
321
  * Combines attributes into a string for a form element
322
+ *
323
  * @since 1.1.0
324
+ * @param array $attrs Attributes to concatenate
325
+ * @param array $attr_exclude Attributes that should NOT be concatenated
326
  * @return string String of attributes for form element
327
  */
328
  public function concat_attrs( $attrs, $attr_exclude = array() ) {
331
 
332
  /**
333
  * Generates repeatable field table markup
334
+ *
335
  * @since 1.0.0
336
  */
337
  public function render_repeatable_field() {
346
  </div>
347
  </div>
348
  <p class="cmb-add-row">
349
+ <button type="button" data-selector="<?php echo $table_id; ?>" class="cmb-add-row-button button-secondary"><?php echo esc_html( $this->_text( 'add_row_text', esc_html__( 'Add Row', 'cmb2' ) ) ); ?></button>
350
  </p>
351
 
352
  <?php
356
 
357
  /**
358
  * Generates repeatable field rows
359
+ *
360
  * @since 1.1.0
361
  */
362
  public function repeatable_rows() {
377
  $count = count( $meta_value );
378
  foreach ( (array) $meta_value as $val ) {
379
  $this->field->escaped_value = $val;
380
+ $this->repeat_row();
381
  $this->iterator++;
382
  }
383
  } else {
386
  $this->field->escaped_value = $this->field->value = null;
387
 
388
  // Otherwise add one row
389
+ $this->repeat_row();
390
  }
391
 
392
  // Then add an empty row
393
  $this->field->escaped_value = '';
394
  $this->iterator = $this->iterator ? $this->iterator : 1;
395
+ $this->repeat_row( 'empty-row hidden' );
396
  }
397
 
398
  /**
399
  * Generates a repeatable row's markup
400
+ *
401
  * @since 1.1.0
 
402
  * @param string $class Repeatable table row's class
403
  */
404
+ protected function repeat_row( $class = 'cmb-repeat-row' ) {
 
405
  ?>
406
 
407
  <div class="cmb-row <?php echo $class; ?>">
409
  <?php $this->_render(); ?>
410
  </div>
411
  <div class="cmb-td cmb-remove-row">
412
+ <button type="button" class="button-secondary cmb-remove-row-button" title="<?php echo esc_attr( $this->_text( 'remove_row_button_title', esc_html__( 'Remove Row', 'cmb2' ) ) ); ?>"><?php echo esc_html( $this->_text( 'remove_row_text', esc_html__( 'Remove', 'cmb2' ) ) ); ?></button>
413
  </div>
414
  </div>
415
 
418
 
419
  /**
420
  * Generates description markup
421
+ *
422
  * @since 1.0.0
423
  * @param boolean $paragraph Paragraph tag or span
424
  * @param boolean $echo Whether to echo description or only return it
448
 
449
  /**
450
  * Generate field name attribute
451
+ *
452
  * @since 1.1.0
453
+ * @param string $suffix For multi-part fields
454
  * @return string Name attribute
455
  */
456
  public function _name( $suffix = '' ) {
459
 
460
  /**
461
  * Generate field id attribute
462
+ *
463
  * @since 1.1.0
464
+ * @param string $suffix For multi-part fields
465
  * @return string Id attribute
466
  */
467
  public function _id( $suffix = '' ) {
470
 
471
  /**
472
  * Handles outputting an 'input' element
473
+ *
474
  * @since 1.1.0
475
  * @param array $args Override arguments
476
  * @param string $type Field type
482
 
483
  /**
484
  * Handles outputting an 'textarea' element
485
+ *
486
  * @since 1.1.0
487
+ * @param array $args Override arguments
488
  * @return string Form textarea element
489
  */
490
  public function textarea( $args = array() ) {
632
  return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Radio', $args )->render();
633
  }
634
 
635
+ public function taxonomy_radio_hierarchical( $args = array() ) {
636
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Radio_Hierarchical', $args )->render();
637
+ }
638
+
639
  public function taxonomy_radio_inline( $args = array() ) {
640
  return $this->taxonomy_radio( $args );
641
  }
644
  return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Multicheck', $args )->render();
645
  }
646
 
647
+ public function taxonomy_multicheck_hierarchical( $args = array() ) {
648
+ return $this->get_new_render_type( __FUNCTION__, 'CMB2_Type_Taxonomy_Multicheck_Hierarchical', $args )->render();
649
+ }
650
+
651
  public function taxonomy_multicheck_inline( $args = array() ) {
652
  return $this->taxonomy_multicheck( $args );
653
  }
vendor/CMB2/includes/CMB2_Utils.php CHANGED
@@ -6,14 +6,15 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Utils {
14
 
15
  /**
16
  * The WordPress ABSPATH constant.
 
17
  * @var string
18
  * @since 2.2.3
19
  */
@@ -21,6 +22,7 @@ class CMB2_Utils {
21
 
22
  /**
23
  * The url which is used to load local resources.
 
24
  * @var string
25
  * @since 2.0.0
26
  */
@@ -28,8 +30,9 @@ class CMB2_Utils {
28
 
29
  /**
30
  * Utility method that attempts to get an attachment's ID by it's url
 
31
  * @since 1.0.0
32
- * @param string $img_url Attachment url
33
  * @return int|false Attachment ID or false
34
  */
35
  public static function image_id_from_url( $img_url ) {
@@ -53,7 +56,7 @@ class CMB2_Utils {
53
  'compare' => 'LIKE',
54
  'key' => '_wp_attachment_metadata',
55
  ),
56
- )
57
  );
58
 
59
  $query = new WP_Query( $query_args );
@@ -69,7 +72,6 @@ class CMB2_Utils {
69
  break;
70
  }
71
  }
72
-
73
  }
74
 
75
  return 0 === $attachment_id ? false : $attachment_id;
@@ -77,6 +79,7 @@ class CMB2_Utils {
77
 
78
  /**
79
  * Utility method to get a combined list of default and custom registered image sizes
 
80
  * @since 2.2.4
81
  * @link http://core.trac.wordpress.org/ticket/18947
82
  * @global array $_wp_additional_image_sizes
@@ -162,20 +165,18 @@ class CMB2_Utils {
162
 
163
  $data = array_shift( $candidates );
164
  $data = $data[0];
165
- }
166
- /*
167
- * When the size requested is smaller than the thumbnail dimensions, we
168
- * fall back to the thumbnail size.
169
- */
170
- elseif ( ! empty( $image_sizes['thumbnail'] ) && $image_sizes['thumbnail']['width'] >= $size[0] && $image_sizes['thumbnail']['width'] >= $size[1] ) {
171
  $data = 'thumbnail';
172
  } else {
173
  return false;
174
  }
175
-
176
  } elseif ( ! empty( $image_sizes[ $size ] ) ) {
177
  $data = $size;
178
- }
179
 
180
  // If we still don't have a match at this point, return false.
181
  if ( empty( $data ) ) {
@@ -187,6 +188,7 @@ class CMB2_Utils {
187
 
188
  /**
189
  * Utility method that returns time string offset by timezone
 
190
  * @since 1.0.0
191
  * @param string $tzstring Time string
192
  * @return string Offset time string
@@ -206,7 +208,6 @@ class CMB2_Utils {
206
  } catch ( Exception $e ) {
207
  self::log_if_debug( __METHOD__, __LINE__, $e->getMessage() );
208
  }
209
-
210
  }
211
 
212
  return $tz_offset;
@@ -247,6 +248,7 @@ class CMB2_Utils {
247
 
248
  /**
249
  * Returns a timestamp, first checking if value already is a timestamp.
 
250
  * @since 2.0.0
251
  * @param string|int $string Possible timestamp string
252
  * @return int Time stamp
@@ -263,8 +265,9 @@ class CMB2_Utils {
263
 
264
  /**
265
  * Determine if a value is a valid timestamp
 
266
  * @since 2.0.0
267
- * @param mixed $timestamp Value to check
268
  * @return boolean Whether value is a valid timestamp
269
  */
270
  public static function is_valid_time_stamp( $timestamp ) {
@@ -275,6 +278,7 @@ class CMB2_Utils {
275
 
276
  /**
277
  * Checks if a value is 'empty'. Still accepts 0.
 
278
  * @since 2.0.0
279
  * @param mixed $value Value to check
280
  * @return bool True or false
@@ -285,16 +289,18 @@ class CMB2_Utils {
285
 
286
  /**
287
  * Checks if a value is not 'empty'. 0 doesn't count as empty.
 
288
  * @since 2.2.2
289
  * @param mixed $value Value to check
290
  * @return bool True or false
291
  */
292
- public static function notempty( $value ){
293
  return null !== $value && '' !== $value && false !== $value && array() !== $value;
294
  }
295
 
296
  /**
297
  * Filters out empty values (not including 0).
 
298
  * @since 2.2.2
299
  * @param mixed $value Value to check
300
  * @return bool True or false
@@ -305,6 +311,7 @@ class CMB2_Utils {
305
 
306
  /**
307
  * Insert a single array item inside another array at a set position
 
308
  * @since 2.0.2
309
  * @param array &$array Array to modify. Is passed by reference, and no return is needed.
310
  * @param array $new New array to insert
@@ -320,6 +327,7 @@ class CMB2_Utils {
320
  * Defines the url which is used to load local resources.
321
  * This may need to be filtered for local Window installations.
322
  * If resources do not load, please check the wiki for details.
 
323
  * @since 1.0.1
324
  * @return string URL to CMB2 resources
325
  */
@@ -342,6 +350,7 @@ class CMB2_Utils {
342
 
343
  /**
344
  * Converts a system path to a URL
 
345
  * @since 2.2.2
346
  * @param string $dir Directory path to convert.
347
  * @return string Converted URL.
@@ -375,8 +384,7 @@ class CMB2_Utils {
375
  }
376
 
377
  // Check to see if it's anywhere in the root directory
378
-
379
- $site_dir = self::normalize_path( self::$ABSPATH );
380
  $site_url = trailingslashit( is_multisite() ? network_site_url() : site_url() );
381
 
382
  $url = str_replace(
@@ -388,6 +396,17 @@ class CMB2_Utils {
388
  return set_url_scheme( $url );
389
  }
390
 
 
 
 
 
 
 
 
 
 
 
 
391
  /**
392
  * `wp_normalize_path` wrapper for back-compat. Normalize a filesystem path.
393
  *
@@ -418,6 +437,7 @@ class CMB2_Utils {
418
 
419
  /**
420
  * Get timestamp from text date
 
421
  * @since 2.2.0
422
  * @param string $value Date value
423
  * @param string $date_format Expected date format
@@ -432,7 +452,7 @@ class CMB2_Utils {
432
  * Takes a php date() format string and returns a string formatted to suit for the date/time pickers
433
  * It will work with only with the following subset ot date() options:
434
  *
435
- * d, j, z, m, n, y, and Y.
436
  *
437
  * A slight effort is made to deal with escaped characters.
438
  *
@@ -447,25 +467,27 @@ class CMB2_Utils {
447
 
448
  // order is relevant here, since the replacement will be done sequentially.
449
  $supported_options = array(
450
- 'd' => 'dd', // Day, leading 0
451
- 'j' => 'd', // Day, no 0
452
- 'z' => 'o', // Day of the year, no leading zeroes,
453
  // 'D' => 'D', // Day name short, not sure how it'll work with translations
454
- // 'l' => 'DD', // Day name full, idem before
455
- 'm' => 'mm', // Month of the year, leading 0
456
- 'n' => 'm', // Month of the year, no leading 0
 
457
  // 'M' => 'M', // Month, Short name
458
- // 'F' => 'MM', // Month, full name,
459
- 'y' => 'y', // Year, two digit
460
- 'Y' => 'yy', // Year, full
461
- 'H' => 'HH', // Hour with leading 0 (24 hour)
462
- 'G' => 'H', // Hour with no leading 0 (24 hour)
463
- 'h' => 'hh', // Hour with leading 0 (12 hour)
464
- 'g' => 'h', // Hour with no leading 0 (12 hour),
465
- 'i' => 'mm', // Minute with leading 0,
466
- 's' => 'ss', // Second with leading 0,
467
- 'a' => 'tt', // am/pm
468
- 'A' => 'TT' // AM/PM
 
469
  );
470
 
471
  foreach ( $supported_options as $php => $js ) {
@@ -473,19 +495,29 @@ class CMB2_Utils {
473
  $format = preg_replace( "~(?<!\\\\)$php~", $js, $format );
474
  }
475
 
 
 
 
 
 
 
 
 
 
476
  $format = preg_replace_callback( '~(?:\\\.)+~', array( __CLASS__, 'wrap_escaped_chars' ), $format );
477
 
478
  return $format;
479
  }
480
 
481
  /**
482
- * Helper function for CMB_Utils->php_to_js_dateformat, because php 5.2 was retarded.
 
483
  * @since 2.2.0
484
  * @param $value Value to wrap/escape
485
  * @return string Modified value
486
  */
487
  public static function wrap_escaped_chars( $value ) {
488
- return "&#39;" . str_replace( '\\', '', $value[0] ) . "&#39;";
489
  }
490
 
491
  /**
@@ -493,10 +525,10 @@ class CMB2_Utils {
493
  *
494
  * @since 2.2.0
495
  *
496
- * @param string $function Function name
497
- * @param int $line Line number
498
- * @param mixed $msg Message to output
499
- * @param mixed $debug Variable to print_r
500
  */
501
  public static function log_if_debug( $function, $line, $msg, $debug = null ) {
502
  if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
@@ -506,8 +538,9 @@ class CMB2_Utils {
506
 
507
  /**
508
  * Determine a file's extension
 
509
  * @since 1.0.0
510
- * @param string $file File url
511
  * @return string|false File extension or false
512
  */
513
  public static function get_file_ext( $file ) {
@@ -517,6 +550,7 @@ class CMB2_Utils {
517
 
518
  /**
519
  * Get the file name from a url
 
520
  * @since 2.0.0
521
  * @param string $value File url or path
522
  * @return string File name
@@ -528,8 +562,9 @@ class CMB2_Utils {
528
 
529
  /**
530
  * Check if WP version is at least $version.
 
531
  * @since 2.2.2
532
- * @param string $version WP version string to compare.
533
  * @return bool Result of comparison check.
534
  */
535
  public static function wp_at_least( $version ) {
@@ -538,9 +573,10 @@ class CMB2_Utils {
538
 
539
  /**
540
  * Combines attributes into a string for a form element.
 
541
  * @since 1.1.0
542
- * @param array $attrs Attributes to concatenate.
543
- * @param array $attr_exclude Attributes that should NOT be concatenated.
544
  * @return string String of attributes for form element.
545
  */
546
  public static function concat_attrs( $attrs, $attr_exclude = array() ) {
@@ -551,13 +587,26 @@ class CMB2_Utils {
551
  $empty = false === $val && 'value' !== $attr;
552
  if ( ! $excluded && ! $empty ) {
553
  // if data attribute, use single quote wraps, else double
554
- $quotes = false !== stripos( $attr, 'data-' ) ? "'" : '"';
555
  $attributes .= sprintf( ' %1$s=%3$s%2$s%3$s', $attr, $val, $quotes );
556
  }
557
  }
558
  return $attributes;
559
  }
560
 
 
 
 
 
 
 
 
 
 
 
 
 
 
561
  /**
562
  * Ensures value is an array.
563
  *
@@ -585,4 +634,20 @@ class CMB2_Utils {
585
  return (array) $value;
586
  }
587
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
588
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Utils {
14
 
15
  /**
16
  * The WordPress ABSPATH constant.
17
+ *
18
  * @var string
19
  * @since 2.2.3
20
  */
22
 
23
  /**
24
  * The url which is used to load local resources.
25
+ *
26
  * @var string
27
  * @since 2.0.0
28
  */
30
 
31
  /**
32
  * Utility method that attempts to get an attachment's ID by it's url
33
+ *
34
  * @since 1.0.0
35
+ * @param string $img_url Attachment url
36
  * @return int|false Attachment ID or false
37
  */
38
  public static function image_id_from_url( $img_url ) {
56
  'compare' => 'LIKE',
57
  'key' => '_wp_attachment_metadata',
58
  ),
59
+ ),
60
  );
61
 
62
  $query = new WP_Query( $query_args );
72
  break;
73
  }
74
  }
 
75
  }
76
 
77
  return 0 === $attachment_id ? false : $attachment_id;
79
 
80
  /**
81
  * Utility method to get a combined list of default and custom registered image sizes
82
+ *
83
  * @since 2.2.4
84
  * @link http://core.trac.wordpress.org/ticket/18947
85
  * @global array $_wp_additional_image_sizes
165
 
166
  $data = array_shift( $candidates );
167
  $data = $data[0];
168
+ } elseif ( ! empty( $image_sizes['thumbnail'] ) && $image_sizes['thumbnail']['width'] >= $size[0] && $image_sizes['thumbnail']['width'] >= $size[1] ) {
169
+ /*
170
+ * When the size requested is smaller than the thumbnail dimensions, we
171
+ * fall back to the thumbnail size.
172
+ */
 
173
  $data = 'thumbnail';
174
  } else {
175
  return false;
176
  }
 
177
  } elseif ( ! empty( $image_sizes[ $size ] ) ) {
178
  $data = $size;
179
+ }// End if().
180
 
181
  // If we still don't have a match at this point, return false.
182
  if ( empty( $data ) ) {
188
 
189
  /**
190
  * Utility method that returns time string offset by timezone
191
+ *
192
  * @since 1.0.0
193
  * @param string $tzstring Time string
194
  * @return string Offset time string
208
  } catch ( Exception $e ) {
209
  self::log_if_debug( __METHOD__, __LINE__, $e->getMessage() );
210
  }
 
211
  }
212
 
213
  return $tz_offset;
248
 
249
  /**
250
  * Returns a timestamp, first checking if value already is a timestamp.
251
+ *
252
  * @since 2.0.0
253
  * @param string|int $string Possible timestamp string
254
  * @return int Time stamp
265
 
266
  /**
267
  * Determine if a value is a valid timestamp
268
+ *
269
  * @since 2.0.0
270
+ * @param mixed $timestamp Value to check
271
  * @return boolean Whether value is a valid timestamp
272
  */
273
  public static function is_valid_time_stamp( $timestamp ) {
278
 
279
  /**
280
  * Checks if a value is 'empty'. Still accepts 0.
281
+ *
282
  * @since 2.0.0
283
  * @param mixed $value Value to check
284
  * @return bool True or false
289
 
290
  /**
291
  * Checks if a value is not 'empty'. 0 doesn't count as empty.
292
+ *
293
  * @since 2.2.2
294
  * @param mixed $value Value to check
295
  * @return bool True or false
296
  */
297
+ public static function notempty( $value ) {
298
  return null !== $value && '' !== $value && false !== $value && array() !== $value;
299
  }
300
 
301
  /**
302
  * Filters out empty values (not including 0).
303
+ *
304
  * @since 2.2.2
305
  * @param mixed $value Value to check
306
  * @return bool True or false
311
 
312
  /**
313
  * Insert a single array item inside another array at a set position
314
+ *
315
  * @since 2.0.2
316
  * @param array &$array Array to modify. Is passed by reference, and no return is needed.
317
  * @param array $new New array to insert
327
  * Defines the url which is used to load local resources.
328
  * This may need to be filtered for local Window installations.
329
  * If resources do not load, please check the wiki for details.
330
+ *
331
  * @since 1.0.1
332
  * @return string URL to CMB2 resources
333
  */
350
 
351
  /**
352
  * Converts a system path to a URL
353
+ *
354
  * @since 2.2.2
355
  * @param string $dir Directory path to convert.
356
  * @return string Converted URL.
384
  }
385
 
386
  // Check to see if it's anywhere in the root directory
387
+ $site_dir = self::get_normalized_abspath();
 
388
  $site_url = trailingslashit( is_multisite() ? network_site_url() : site_url() );
389
 
390
  $url = str_replace(
396
  return set_url_scheme( $url );
397
  }
398
 
399
+ /**
400
+ * Get the normalized absolute path defined by WordPress.
401
+ *
402
+ * @since 2.2.6
403
+ *
404
+ * @return string Normalized absolute path.
405
+ */
406
+ protected static function get_normalized_abspath() {
407
+ return self::normalize_path( self::$ABSPATH );
408
+ }
409
+
410
  /**
411
  * `wp_normalize_path` wrapper for back-compat. Normalize a filesystem path.
412
  *
437
 
438
  /**
439
  * Get timestamp from text date
440
+ *
441
  * @since 2.2.0
442
  * @param string $value Date value
443
  * @param string $date_format Expected date format
452
  * Takes a php date() format string and returns a string formatted to suit for the date/time pickers
453
  * It will work with only with the following subset ot date() options:
454
  *
455
+ * d, l, j, z, m, F, n, y, and Y.
456
  *
457
  * A slight effort is made to deal with escaped characters.
458
  *
467
 
468
  // order is relevant here, since the replacement will be done sequentially.
469
  $supported_options = array(
470
+ 'd' => 'dd', // Day, leading 0
471
+ 'j' => 'd', // Day, no 0
472
+ 'z' => 'o', // Day of the year, no leading zeroes,
473
  // 'D' => 'D', // Day name short, not sure how it'll work with translations
474
+ 'l ' => 'DD ', // Day name full, idem before
475
+ 'l, ' => 'DD, ', // Day name full, idem before
476
+ 'm' => 'mm', // Month of the year, leading 0
477
+ 'n' => 'm', // Month of the year, no leading 0
478
  // 'M' => 'M', // Month, Short name
479
+ 'F ' => 'MM ', // Month, full name,
480
+ 'F, ' => 'MM, ', // Month, full name,
481
+ 'y' => 'y', // Year, two digit
482
+ 'Y' => 'yy', // Year, full
483
+ 'H' => 'HH', // Hour with leading 0 (24 hour)
484
+ 'G' => 'H', // Hour with no leading 0 (24 hour)
485
+ 'h' => 'hh', // Hour with leading 0 (12 hour)
486
+ 'g' => 'h', // Hour with no leading 0 (12 hour),
487
+ 'i' => 'mm', // Minute with leading 0,
488
+ 's' => 'ss', // Second with leading 0,
489
+ 'a' => 'tt', // am/pm
490
+ 'A' => 'TT',// AM/PM
491
  );
492
 
493
  foreach ( $supported_options as $php => $js ) {
495
  $format = preg_replace( "~(?<!\\\\)$php~", $js, $format );
496
  }
497
 
498
+ $supported_options = array(
499
+ 'l' => 'DD', // Day name full, idem before
500
+ 'F' => 'MM', // Month, full name,
501
+ );
502
+
503
+ if ( isset( $supported_options[ $format ] ) ) {
504
+ $format = $supported_options[ $format ];
505
+ }
506
+
507
  $format = preg_replace_callback( '~(?:\\\.)+~', array( __CLASS__, 'wrap_escaped_chars' ), $format );
508
 
509
  return $format;
510
  }
511
 
512
  /**
513
+ * Helper function for CMB_Utils::php_to_js_dateformat().
514
+ *
515
  * @since 2.2.0
516
  * @param $value Value to wrap/escape
517
  * @return string Modified value
518
  */
519
  public static function wrap_escaped_chars( $value ) {
520
+ return '&#39;' . str_replace( '\\', '', $value[0] ) . '&#39;';
521
  }
522
 
523
  /**
525
  *
526
  * @since 2.2.0
527
  *
528
+ * @param string $function Function name
529
+ * @param int $line Line number
530
+ * @param mixed $msg Message to output
531
+ * @param mixed $debug Variable to print_r
532
  */
533
  public static function log_if_debug( $function, $line, $msg, $debug = null ) {
534
  if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
538
 
539
  /**
540
  * Determine a file's extension
541
+ *
542
  * @since 1.0.0
543
+ * @param string $file File url
544
  * @return string|false File extension or false
545
  */
546
  public static function get_file_ext( $file ) {
550
 
551
  /**
552
  * Get the file name from a url
553
+ *
554
  * @since 2.0.0
555
  * @param string $value File url or path
556
  * @return string File name
562
 
563
  /**
564
  * Check if WP version is at least $version.
565
+ *
566
  * @since 2.2.2
567
+ * @param string $version WP version string to compare.
568
  * @return bool Result of comparison check.
569
  */
570
  public static function wp_at_least( $version ) {
573
 
574
  /**
575
  * Combines attributes into a string for a form element.
576
+ *
577
  * @since 1.1.0
578
+ * @param array $attrs Attributes to concatenate.
579
+ * @param array $attr_exclude Attributes that should NOT be concatenated.
580
  * @return string String of attributes for form element.
581
  */
582
  public static function concat_attrs( $attrs, $attr_exclude = array() ) {
587
  $empty = false === $val && 'value' !== $attr;
588
  if ( ! $excluded && ! $empty ) {
589
  // if data attribute, use single quote wraps, else double
590
+ $quotes = self::is_data_attribute( $attr, 'data-' ) ? "'" : '"';
591
  $attributes .= sprintf( ' %1$s=%3$s%2$s%3$s', $attr, $val, $quotes );
592
  }
593
  }
594
  return $attributes;
595
  }
596
 
597
+ /**
598
+ * Check if given attribute is a data attribute.
599
+ *
600
+ * @since 2.2.5
601
+ *
602
+ * @param string $att HTML attribute
603
+ *
604
+ * @return boolean
605
+ */
606
+ public static function is_data_attribute( $att ) {
607
+ return 0 === stripos( $att, 'data-' );
608
+ }
609
+
610
  /**
611
  * Ensures value is an array.
612
  *
634
  return (array) $value;
635
  }
636
 
637
+ /**
638
+ * If number is numeric, normalize it with floatval or intval, depending on if decimal is found.
639
+ *
640
+ * @since 2.2.6
641
+ *
642
+ * @param mixed $value Value to normalize (if numeric).
643
+ *
644
+ * @return mixed Possibly normalized value.
645
+ */
646
+ public static function normalize_if_numeric( $value ) {
647
+ if ( is_numeric( $value ) ) {
648
+ $value = false !== strpos( $value, '.' ) ? floatval( $value ) : intval( $value );
649
+ }
650
+
651
+ return $value;
652
+ }
653
  }
vendor/CMB2/includes/CMB2_hookup.php CHANGED
@@ -7,14 +7,15 @@
7
  *
8
  * @category WordPress_Plugin
9
  * @package CMB2
10
- * @author WebDevStudios
11
  * @license GPL-2.0+
12
- * @link http://webdevstudios.com
13
  */
14
  class CMB2_hookup extends CMB2_Hookup_Base {
15
 
16
  /**
17
  * Only allow JS registration once
 
18
  * @var bool
19
  * @since 2.0.7
20
  */
@@ -22,6 +23,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
22
 
23
  /**
24
  * Only allow CSS registration once
 
25
  * @var bool
26
  * @since 2.0.7
27
  */
@@ -29,6 +31,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
29
 
30
  /**
31
  * CMB taxonomies array for term meta
 
32
  * @var array
33
  * @since 2.2.0
34
  */
@@ -36,19 +39,39 @@ class CMB2_hookup extends CMB2_Hookup_Base {
36
 
37
  /**
38
  * Custom field columns.
 
39
  * @var array
40
  * @since 2.2.2
41
  */
42
  protected $columns = array();
43
 
44
  /**
45
- * Constructor
46
- * @since 2.0.0
47
- * @param CMB2 $cmb The CMB2 object to hookup
 
48
  */
49
- public function __construct( CMB2 $cmb ) {
50
- $this->cmb = $cmb;
51
- $this->object_type = $this->cmb->mb_object_type();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  }
53
 
54
  public function universal_hooks() {
@@ -72,8 +95,12 @@ class CMB2_hookup extends CMB2_Hookup_Base {
72
  return $this->user_hooks();
73
  case 'term':
74
  return $this->term_hooks();
 
 
75
  }
76
  }
 
 
77
  }
78
 
79
  public function post_hooks() {
@@ -109,11 +136,13 @@ class CMB2_hookup extends CMB2_Hookup_Base {
109
  add_action( 'save_post', array( $this, 'save_post' ), 10, 2 );
110
 
111
  if ( $this->cmb->has_columns ) {
112
- foreach ( $this->cmb->prop( 'object_types' ) as $post_type ) {
113
  add_filter( "manage_{$post_type}_posts_columns", array( $this, 'register_column_headers' ) );
114
  add_action( "manage_{$post_type}_posts_custom_column", array( $this, 'column_display' ), 10, 2 );
115
  }
116
  }
 
 
117
  }
118
 
119
  public function comment_hooks() {
@@ -122,8 +151,10 @@ class CMB2_hookup extends CMB2_Hookup_Base {
122
 
123
  if ( $this->cmb->has_columns ) {
124
  add_filter( 'manage_edit-comments_columns', array( $this, 'register_column_headers' ) );
125
- add_action( 'manage_comments_custom_column', array( $this, 'column_display' ), 10, 3 );
126
  }
 
 
127
  }
128
 
129
  public function user_hooks() {
@@ -139,8 +170,10 @@ class CMB2_hookup extends CMB2_Hookup_Base {
139
 
140
  if ( $this->cmb->has_columns ) {
141
  add_filter( 'manage_users_columns', array( $this, 'register_column_headers' ) );
142
- add_filter( 'manage_users_custom_column', array( $this, 'return_column_display' ), 10, 3 );
143
  }
 
 
144
  }
145
 
146
  public function term_hooks() {
@@ -164,6 +197,14 @@ class CMB2_hookup extends CMB2_Hookup_Base {
164
  ? in_array( $taxonomy, $show_on_term_add )
165
  : (bool) $show_on_term_add;
166
 
 
 
 
 
 
 
 
 
167
  $show_on_add = apply_filters( "cmb2_show_on_term_add_form_{$this->cmb->cmb_id}", $show_on_add, $this->cmb );
168
 
169
  // Display form in add-new section (unless specified not to)
@@ -173,7 +214,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
173
 
174
  if ( $this->cmb->has_columns ) {
175
  add_filter( "manage_edit-{$taxonomy}_columns", array( $this, 'register_column_headers' ) );
176
- add_filter( "manage_{$taxonomy}_custom_column", array( $this, 'return_column_display' ), 10, 3 );
177
  }
178
  }
179
 
@@ -181,10 +222,25 @@ class CMB2_hookup extends CMB2_Hookup_Base {
181
  add_action( 'edited_terms', array( $this, 'save_term' ), 10, 2 );
182
  add_action( 'delete_term', array( $this, 'delete_term' ), 10, 3 );
183
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  }
185
 
186
  /**
187
  * Registers styles for CMB2
 
188
  * @since 2.0.7
189
  */
190
  protected static function register_styles() {
@@ -197,7 +253,11 @@ class CMB2_hookup extends CMB2_Hookup_Base {
197
  $front = is_admin() ? '' : '-front';
198
  $rtl = is_rtl() ? '-rtl' : '';
199
 
200
- // Filter required styles and register stylesheet
 
 
 
 
201
  $dependencies = apply_filters( 'cmb2_style_dependencies', array() );
202
  wp_register_style( 'cmb2-styles', CMB2_Utils::url( "css/cmb2{$front}{$rtl}{$min}.css" ), $dependencies );
203
  wp_register_style( 'cmb2-display-styles', CMB2_Utils::url( "css/cmb2-display{$rtl}{$min}.css" ), $dependencies );
@@ -207,6 +267,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
207
 
208
  /**
209
  * Registers scripts for CMB2
 
210
  * @since 2.0.7
211
  */
212
  protected static function register_js() {
@@ -222,6 +283,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
222
 
223
  /**
224
  * Registers scripts and styles for CMB2
 
225
  * @since 1.0.0
226
  */
227
  public static function register_scripts() {
@@ -231,6 +293,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
231
 
232
  /**
233
  * Enqueues scripts and styles for CMB2 in admin_head.
 
234
  * @since 1.0.0
235
  */
236
  public function do_scripts( $hook ) {
@@ -260,6 +323,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
260
 
261
  /**
262
  * Register the CMB2 field column headers.
 
263
  * @since 2.2.2
264
  */
265
  public function register_column_headers( $columns ) {
@@ -292,23 +356,25 @@ class CMB2_hookup extends CMB2_Hookup_Base {
292
 
293
  /**
294
  * The CMB2 field column display output.
 
295
  * @since 2.2.2
296
  */
297
  public function column_display( $column_name, $object_id ) {
298
  if ( isset( $this->columns[ $column_name ] ) ) {
299
- $field = new CMB2_Field( array(
300
- 'field_args' => $this->columns[ $column_name ]['field'],
301
- 'object_type' => $this->object_type,
302
- 'object_id' => $this->cmb->object_id( $object_id ),
303
- 'cmb_id' => $this->cmb->cmb_id,
304
- ) );
305
 
306
- $this->cmb->get_field( $field )->render_column();
307
  }
308
  }
309
 
310
  /**
311
  * Returns the column display.
 
312
  * @since 2.2.2
313
  */
314
  public function return_column_display( $empty, $custom_column, $object_id ) {
@@ -321,6 +387,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
321
 
322
  /**
323
  * Output the CMB2 box/fields in an alternate context (not in a standard metabox area).
 
324
  * @since 2.2.4
325
  */
326
  public function add_context_metaboxes() {
@@ -331,7 +398,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
331
 
332
  $page = get_current_screen()->id;
333
 
334
- foreach ( $this->cmb->prop( 'object_types' ) as $object_type ) {
335
  $screen = convert_to_screen( $object_type );
336
 
337
  // If we're on the right post-type/object...
@@ -345,6 +412,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
345
 
346
  /**
347
  * Output the CMB2 box/fields in an alternate context (not in a standard metabox area).
 
348
  * @since 2.2.4
349
  */
350
  public function output_context_metabox() {
@@ -361,7 +429,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
361
  $add_handle = $add_wrap && ! empty( $title );
362
 
363
  // Open the context-box wrap.
364
- $add_handle = $this->context_box_title_markup_open( $add_handle );
365
 
366
  // Show the form fields.
367
  $this->cmb->show_form();
@@ -372,6 +440,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
372
 
373
  /**
374
  * Output the opening markup for a context box.
 
375
  * @since 2.2.4
376
  * @param $add_handle Whether to add the metabox handle and opening div for .inside
377
  */
@@ -397,6 +466,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
397
 
398
  /**
399
  * Output the closing markup for a context box.
 
400
  * @since 2.2.4
401
  * @param $add_inside_close Whether to add closing div for .inside.
402
  */
@@ -412,6 +482,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
412
 
413
  /**
414
  * Add metaboxes (to 'post' or 'comment' object types)
 
415
  * @since 1.0.0
416
  */
417
  public function add_metaboxes() {
@@ -436,7 +507,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
436
  $page = get_current_screen()->id;
437
  add_filter( "postbox_classes_{$page}_{$this->cmb->cmb_id}", array( $this, 'postbox_classes' ) );
438
 
439
- foreach ( $this->cmb->prop( 'object_types' ) as $object_type ) {
440
  if ( count( $this->cmb->tax_metaboxes_to_remove ) ) {
441
  $this->remove_default_tax_metaboxes( $object_type );
442
  }
@@ -447,6 +518,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
447
 
448
  /**
449
  * Remove the specified default taxonomy metaboxes for a post-type.
 
450
  * @since 2.2.3
451
  * @param string $post_type Post type to remove the metabox for.
452
  */
@@ -463,8 +535,9 @@ class CMB2_hookup extends CMB2_Hookup_Base {
463
 
464
  /**
465
  * Modify metabox postbox classes.
 
466
  * @since 2.2.4
467
- * @param array $classes Array of classes
468
  * @return array Modified array of classes
469
  */
470
  public function postbox_classes( $classes ) {
@@ -483,8 +556,9 @@ class CMB2_hookup extends CMB2_Hookup_Base {
483
 
484
  /**
485
  * Modify metabox altnernate context postbox classes.
 
486
  * @since 2.2.4
487
- * @param array $classes Array of classes
488
  * @return array Modified array of classes
489
  */
490
  protected function alternate_context_postbox_classes( $classes ) {
@@ -508,6 +582,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
508
 
509
  /**
510
  * Display metaboxes for a post or comment object
 
511
  * @since 1.0.0
512
  */
513
  public function metabox_callback() {
@@ -517,6 +592,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
517
 
518
  /**
519
  * Display metaboxes for new user page
 
520
  * @since 1.0.0
521
  */
522
  public function user_new_metabox( $section ) {
@@ -528,7 +604,8 @@ class CMB2_hookup extends CMB2_Hookup_Base {
528
  }
529
 
530
  /**
531
- * Display metaboxes for a user object
 
532
  * @since 1.0.0
533
  */
534
  public function user_metabox() {
@@ -536,7 +613,8 @@ class CMB2_hookup extends CMB2_Hookup_Base {
536
  }
537
 
538
  /**
539
- * Display metaboxes for a taxonomy term object
 
540
  * @since 2.2.0
541
  */
542
  public function term_metabox() {
@@ -544,13 +622,14 @@ class CMB2_hookup extends CMB2_Hookup_Base {
544
  }
545
 
546
  /**
547
- * Display metaboxes for an object type
 
548
  * @since 2.2.0
549
  * @param string $type Object type
550
  * @return void
551
  */
552
  public function show_form_for_type( $type ) {
553
- if ( $type != $this->cmb->mb_object_type() ) {
554
  return;
555
  }
556
 
@@ -570,6 +649,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
570
 
571
  /**
572
  * Determines if metabox should be shown in current context
 
573
  * @since 2.0.0
574
  * @return bool Whether metabox should be added/shown
575
  */
@@ -591,6 +671,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
591
 
592
  /**
593
  * Get the CMB priority property set to numeric hook priority.
 
594
  * @since 2.2.0
595
  * @param integer $default Default display hook priority.
596
  * @return integer Hook priority.
@@ -620,10 +701,11 @@ class CMB2_hookup extends CMB2_Hookup_Base {
620
 
621
  /**
622
  * Save data from post metabox
 
623
  * @since 1.0.0
624
- * @param int $post_id Post ID
625
- * @param mixed $post Post object
626
- * @return null
627
  */
628
  public function save_post( $post_id, $post = false ) {
629
 
@@ -647,9 +729,10 @@ class CMB2_hookup extends CMB2_Hookup_Base {
647
 
648
  /**
649
  * Save data from comment metabox
 
650
  * @since 2.0.9
651
- * @param int $comment_id Comment ID
652
- * @return null
653
  */
654
  public function save_comment( $comment_id ) {
655
 
@@ -662,9 +745,10 @@ class CMB2_hookup extends CMB2_Hookup_Base {
662
 
663
  /**
664
  * Save data from user fields
 
665
  * @since 1.0.x
666
- * @param int $user_id User ID
667
- * @return null
668
  */
669
  public function save_user( $user_id ) {
670
  // check permissions
@@ -675,11 +759,12 @@ class CMB2_hookup extends CMB2_Hookup_Base {
675
 
676
  /**
677
  * Save data from term fields
 
678
  * @since 2.2.0
679
  * @param int $term_id Term ID
680
  * @param int $tt_id Term Taxonomy ID
681
  * @param string $taxonomy Taxonomy
682
- * @return null
683
  */
684
  public function save_term( $term_id, $tt_id, $taxonomy = '' ) {
685
  $taxonomy = $taxonomy ? $taxonomy : $tt_id;
@@ -692,11 +777,12 @@ class CMB2_hookup extends CMB2_Hookup_Base {
692
 
693
  /**
694
  * Delete term meta when a term is deleted.
 
695
  * @since 2.2.0
696
  * @param int $term_id Term ID
697
  * @param int $tt_id Term Taxonomy ID
698
  * @param string $taxonomy Taxonomy
699
- * @return null
700
  */
701
  public function delete_term( $term_id, $tt_id, $taxonomy = '' ) {
702
  if ( $this->taxonomy_can_save( $taxonomy ) ) {
@@ -712,12 +798,14 @@ class CMB2_hookup extends CMB2_Hookup_Base {
712
 
713
  /**
714
  * Determines if the current object is able to be saved
 
715
  * @since 2.0.9
716
- * @param string $type Current post_type or comment_type
717
- * @return bool Whether object can be saved
718
  */
719
  public function can_save( $type = '' ) {
720
- return apply_filters( 'cmb2_can_save', (
 
721
  $this->cmb->prop( 'save_fields' )
722
  // check nonce
723
  && isset( $_POST[ $this->cmb->nonce() ] )
@@ -725,14 +813,23 @@ class CMB2_hookup extends CMB2_Hookup_Base {
725
  // check if autosave
726
  && ! ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
727
  // get the metabox types & compare it to this type
728
- && ( $type && in_array( $type, $this->cmb->prop( 'object_types' ) ) )
729
  // Don't do updates during a switch-to-blog instance.
730
  && ! ( is_multisite() && ms_is_switched() )
731
- ) );
 
 
 
 
 
 
 
 
732
  }
733
 
734
  /**
735
  * Determine if taxonomy of term being modified is cmb2-editable.
 
736
  * @since 2.2.0
737
  * @param string $taxonomy Taxonomy of term being modified.
738
  * @return bool Whether taxonomy is editable.
@@ -753,6 +850,7 @@ class CMB2_hookup extends CMB2_Hookup_Base {
753
 
754
  /**
755
  * Enqueues the 'cmb2-display-styles' if the conditions match (has columns, on the right page, etc).
 
756
  * @since 2.2.2.1
757
  */
758
  protected function maybe_enqueue_column_display_styles() {
@@ -769,9 +867,16 @@ class CMB2_hookup extends CMB2_Hookup_Base {
769
 
770
  /**
771
  * Includes CMB2 styles
 
772
  * @since 2.0.0
773
  */
774
  public static function enqueue_cmb_css( $handle = 'cmb2-styles' ) {
 
 
 
 
 
 
775
  if ( ! apply_filters( 'cmb2_enqueue_css', true ) ) {
776
  return false;
777
  }
@@ -787,9 +892,16 @@ class CMB2_hookup extends CMB2_Hookup_Base {
787
 
788
  /**
789
  * Includes CMB2 JS
 
790
  * @since 2.0.0
791
  */
792
  public static function enqueue_cmb_js() {
 
 
 
 
 
 
793
  if ( ! apply_filters( 'cmb2_enqueue_js', true ) ) {
794
  return false;
795
  }
7
  *
8
  * @category WordPress_Plugin
9
  * @package CMB2
10
+ * @author CMB2 team
11
  * @license GPL-2.0+
12
+ * @link https://cmb2.io
13
  */
14
  class CMB2_hookup extends CMB2_Hookup_Base {
15
 
16
  /**
17
  * Only allow JS registration once
18
+ *
19
  * @var bool
20
  * @since 2.0.7
21
  */
23
 
24
  /**
25
  * Only allow CSS registration once
26
+ *
27
  * @var bool
28
  * @since 2.0.7
29
  */
31
 
32
  /**
33
  * CMB taxonomies array for term meta
34
+ *
35
  * @var array
36
  * @since 2.2.0
37
  */
39
 
40
  /**
41
  * Custom field columns.
42
+ *
43
  * @var array
44
  * @since 2.2.2
45
  */
46
  protected $columns = array();
47
 
48
  /**
49
+ * Array of CMB2_Options_Hookup instances if options page metabox.
50
+ *
51
+ * @var CMB2_Options_Hookup[]|null
52
+ * @since 2.2.5
53
  */
54
+ protected $options_hookup = null;
55
+
56
+ /**
57
+ * A functionalized constructor, used for the hookup action callbacks.
58
+ *
59
+ * @since 2.2.6
60
+ *
61
+ * @param CMB2 $cmb The CMB2 object to hookup
62
+ *
63
+ * @return CMB2_Hookup_Base $hookup The hookup object.
64
+ */
65
+ public static function maybe_init_and_hookup( CMB2 $cmb ) {
66
+ if ( $cmb->prop( 'hookup' ) ) {
67
+
68
+ $hookup = new self( $cmb );
69
+
70
+ // Hook in the hookup... how meta.
71
+ return $hookup->universal_hooks();
72
+ }
73
+
74
+ return false;
75
  }
76
 
77
  public function universal_hooks() {
95
  return $this->user_hooks();
96
  case 'term':
97
  return $this->term_hooks();
98
+ case 'options-page':
99
+ return $this->options_page_hooks();
100
  }
101
  }
102
+
103
+ return $this;
104
  }
105
 
106
  public function post_hooks() {
136
  add_action( 'save_post', array( $this, 'save_post' ), 10, 2 );
137
 
138
  if ( $this->cmb->has_columns ) {
139
+ foreach ( $this->cmb->box_types() as $post_type ) {
140
  add_filter( "manage_{$post_type}_posts_columns", array( $this, 'register_column_headers' ) );
141
  add_action( "manage_{$post_type}_posts_custom_column", array( $this, 'column_display' ), 10, 2 );
142
  }
143
  }
144
+
145
+ return $this;
146
  }
147
 
148
  public function comment_hooks() {
151
 
152
  if ( $this->cmb->has_columns ) {
153
  add_filter( 'manage_edit-comments_columns', array( $this, 'register_column_headers' ) );
154
+ add_action( 'manage_comments_custom_column', array( $this, 'column_display' ), 10, 3 );
155
  }
156
+
157
+ return $this;
158
  }
159
 
160
  public function user_hooks() {
170
 
171
  if ( $this->cmb->has_columns ) {
172
  add_filter( 'manage_users_columns', array( $this, 'register_column_headers' ) );
173
+ add_filter( 'manage_users_custom_column', array( $this, 'return_column_display' ), 10, 3 );
174
  }
175
+
176
+ return $this;
177
  }
178
 
179
  public function term_hooks() {
197
  ? in_array( $taxonomy, $show_on_term_add )
198
  : (bool) $show_on_term_add;
199
 
200
+ /**
201
+ * Filter to determine if the term's fields should show in the "Add term" section.
202
+ *
203
+ * The dynamic portion of the hook name, $cmb_id, is the metabox id.
204
+ *
205
+ * @param bool $show_on_add Default is the value of the new_term_section cmb parameter.
206
+ * @param object $cmb The CMB2 instance
207
+ */
208
  $show_on_add = apply_filters( "cmb2_show_on_term_add_form_{$this->cmb->cmb_id}", $show_on_add, $this->cmb );
209
 
210
  // Display form in add-new section (unless specified not to)
214
 
215
  if ( $this->cmb->has_columns ) {
216
  add_filter( "manage_edit-{$taxonomy}_columns", array( $this, 'register_column_headers' ) );
217
+ add_filter( "manage_{$taxonomy}_custom_column", array( $this, 'return_column_display' ), 10, 3 );
218
  }
219
  }
220
 
222
  add_action( 'edited_terms', array( $this, 'save_term' ), 10, 2 );
223
  add_action( 'delete_term', array( $this, 'delete_term' ), 10, 3 );
224
 
225
+ return $this;
226
+ }
227
+
228
+ public function options_page_hooks() {
229
+ $option_keys = $this->cmb->options_page_keys();
230
+
231
+ if ( ! empty( $option_keys ) ) {
232
+ foreach ( $option_keys as $option_key ) {
233
+ $this->options_hookup[ $option_key ] = new CMB2_Options_Hookup( $this->cmb, $option_key );
234
+ $this->options_hookup[ $option_key ]->hooks();
235
+ }
236
+ }
237
+
238
+ return $this;
239
  }
240
 
241
  /**
242
  * Registers styles for CMB2
243
+ *
244
  * @since 2.0.7
245
  */
246
  protected static function register_styles() {
253
  $front = is_admin() ? '' : '-front';
254
  $rtl = is_rtl() ? '-rtl' : '';
255
 
256
+ /**
257
+ * Filters the registered style dependencies for the cmb2 stylesheet.
258
+ *
259
+ * @param array $dependencies The registered style dependencies for the cmb2 stylesheet.
260
+ */
261
  $dependencies = apply_filters( 'cmb2_style_dependencies', array() );
262
  wp_register_style( 'cmb2-styles', CMB2_Utils::url( "css/cmb2{$front}{$rtl}{$min}.css" ), $dependencies );
263
  wp_register_style( 'cmb2-display-styles', CMB2_Utils::url( "css/cmb2-display{$rtl}{$min}.css" ), $dependencies );
267
 
268
  /**
269
  * Registers scripts for CMB2
270
+ *
271
  * @since 2.0.7
272
  */
273
  protected static function register_js() {
283
 
284
  /**
285
  * Registers scripts and styles for CMB2
286
+ *
287
  * @since 1.0.0
288
  */
289
  public static function register_scripts() {
293
 
294
  /**
295
  * Enqueues scripts and styles for CMB2 in admin_head.
296
+ *
297
  * @since 1.0.0
298
  */
299
  public function do_scripts( $hook ) {
323
 
324
  /**
325
  * Register the CMB2 field column headers.
326
+ *
327
  * @since 2.2.2
328
  */
329
  public function register_column_headers( $columns ) {
356
 
357
  /**
358
  * The CMB2 field column display output.
359
+ *
360
  * @since 2.2.2
361
  */
362
  public function column_display( $column_name, $object_id ) {
363
  if ( isset( $this->columns[ $column_name ] ) ) {
364
+ $field = new CMB2_Field( array(
365
+ 'field_args' => $this->columns[ $column_name ]['field'],
366
+ 'object_type' => $this->object_type,
367
+ 'object_id' => $this->cmb->object_id( $object_id ),
368
+ 'cmb_id' => $this->cmb->cmb_id,
369
+ ) );
370
 
371
+ $this->cmb->get_field( $field )->render_column();
372
  }
373
  }
374
 
375
  /**
376
  * Returns the column display.
377
+ *
378
  * @since 2.2.2
379
  */
380
  public function return_column_display( $empty, $custom_column, $object_id ) {
387
 
388
  /**
389
  * Output the CMB2 box/fields in an alternate context (not in a standard metabox area).
390
+ *
391
  * @since 2.2.4
392
  */
393
  public function add_context_metaboxes() {
398
 
399
  $page = get_current_screen()->id;
400
 
401
+ foreach ( $this->cmb->box_types() as $object_type ) {
402
  $screen = convert_to_screen( $object_type );
403
 
404
  // If we're on the right post-type/object...
412
 
413
  /**
414
  * Output the CMB2 box/fields in an alternate context (not in a standard metabox area).
415
+ *
416
  * @since 2.2.4
417
  */
418
  public function output_context_metabox() {
429
  $add_handle = $add_wrap && ! empty( $title );
430
 
431
  // Open the context-box wrap.
432
+ $this->context_box_title_markup_open( $add_handle );
433
 
434
  // Show the form fields.
435
  $this->cmb->show_form();
440
 
441
  /**
442
  * Output the opening markup for a context box.
443
+ *
444
  * @since 2.2.4
445
  * @param $add_handle Whether to add the metabox handle and opening div for .inside
446
  */
466
 
467
  /**
468
  * Output the closing markup for a context box.
469
+ *
470
  * @since 2.2.4
471
  * @param $add_inside_close Whether to add closing div for .inside.
472
  */
482
 
483
  /**
484
  * Add metaboxes (to 'post' or 'comment' object types)
485
+ *
486
  * @since 1.0.0
487
  */
488
  public function add_metaboxes() {
507
  $page = get_current_screen()->id;
508
  add_filter( "postbox_classes_{$page}_{$this->cmb->cmb_id}", array( $this, 'postbox_classes' ) );
509
 
510
+ foreach ( $this->cmb->box_types() as $object_type ) {
511
  if ( count( $this->cmb->tax_metaboxes_to_remove ) ) {
512
  $this->remove_default_tax_metaboxes( $object_type );
513
  }
518
 
519
  /**
520
  * Remove the specified default taxonomy metaboxes for a post-type.
521
+ *
522
  * @since 2.2.3
523
  * @param string $post_type Post type to remove the metabox for.
524
  */
535
 
536
  /**
537
  * Modify metabox postbox classes.
538
+ *
539
  * @since 2.2.4
540
+ * @param array $classes Array of classes
541
  * @return array Modified array of classes
542
  */
543
  public function postbox_classes( $classes ) {
556
 
557
  /**
558
  * Modify metabox altnernate context postbox classes.
559
+ *
560
  * @since 2.2.4
561
+ * @param array $classes Array of classes
562
  * @return array Modified array of classes
563
  */
564
  protected function alternate_context_postbox_classes( $classes ) {
582
 
583
  /**
584
  * Display metaboxes for a post or comment object
585
+ *
586
  * @since 1.0.0
587
  */
588
  public function metabox_callback() {
592
 
593
  /**
594
  * Display metaboxes for new user page
595
+ *
596
  * @since 1.0.0
597
  */
598
  public function user_new_metabox( $section ) {
604
  }
605
 
606
  /**
607
+ * Display metaboxes for a user object.
608
+ *
609
  * @since 1.0.0
610
  */
611
  public function user_metabox() {
613
  }
614
 
615
  /**
616
+ * Display metaboxes for a taxonomy term object.
617
+ *
618
  * @since 2.2.0
619
  */
620
  public function term_metabox() {
622
  }
623
 
624
  /**
625
+ * Display metaboxes for an object type.
626
+ *
627
  * @since 2.2.0
628
  * @param string $type Object type
629
  * @return void
630
  */
631
  public function show_form_for_type( $type ) {
632
+ if ( $type != $this->object_type ) {
633
  return;
634
  }
635
 
649
 
650
  /**
651
  * Determines if metabox should be shown in current context
652
+ *
653
  * @since 2.0.0
654
  * @return bool Whether metabox should be added/shown
655
  */
671
 
672
  /**
673
  * Get the CMB priority property set to numeric hook priority.
674
+ *
675
  * @since 2.2.0
676
  * @param integer $default Default display hook priority.
677
  * @return integer Hook priority.
701
 
702
  /**
703
  * Save data from post metabox
704
+ *
705
  * @since 1.0.0
706
+ * @param int $post_id Post ID
707
+ * @param mixed $post Post object
708
+ * @return void
709
  */
710
  public function save_post( $post_id, $post = false ) {
711
 
729
 
730
  /**
731
  * Save data from comment metabox
732
+ *
733
  * @since 2.0.9
734
+ * @param int $comment_id Comment ID
735
+ * @return void
736
  */
737
  public function save_comment( $comment_id ) {
738
 
745
 
746
  /**
747
  * Save data from user fields
748
+ *
749
  * @since 1.0.x
750
+ * @param int $user_id User ID
751
+ * @return void
752
  */
753
  public function save_user( $user_id ) {
754
  // check permissions
759
 
760
  /**
761
  * Save data from term fields
762
+ *
763
  * @since 2.2.0
764
  * @param int $term_id Term ID
765
  * @param int $tt_id Term Taxonomy ID
766
  * @param string $taxonomy Taxonomy
767
+ * @return void
768
  */
769
  public function save_term( $term_id, $tt_id, $taxonomy = '' ) {
770
  $taxonomy = $taxonomy ? $taxonomy : $tt_id;
777
 
778
  /**
779
  * Delete term meta when a term is deleted.
780
+ *
781
  * @since 2.2.0
782
  * @param int $term_id Term ID
783
  * @param int $tt_id Term Taxonomy ID
784
  * @param string $taxonomy Taxonomy
785
+ * @return void
786
  */
787
  public function delete_term( $term_id, $tt_id, $taxonomy = '' ) {
788
  if ( $this->taxonomy_can_save( $taxonomy ) ) {
798
 
799
  /**
800
  * Determines if the current object is able to be saved
801
+ *
802
  * @since 2.0.9
803
+ * @param string $type Current object type.
804
+ * @return bool Whether object can be saved
805
  */
806
  public function can_save( $type = '' ) {
807
+
808
+ $can_save = (
809
  $this->cmb->prop( 'save_fields' )
810
  // check nonce
811
  && isset( $_POST[ $this->cmb->nonce() ] )
813
  // check if autosave
814
  && ! ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
815
  // get the metabox types & compare it to this type
816
+ && ( $type && in_array( $type, $this->cmb->box_types() ) )
817
  // Don't do updates during a switch-to-blog instance.
818
  && ! ( is_multisite() && ms_is_switched() )
819
+ );
820
+
821
+ /**
822
+ * Filter to determine if metabox is allowed to save.
823
+ *
824
+ * @param bool $can_save Whether the current metabox can save.
825
+ * @param object $cmb The CMB2 instance
826
+ */
827
+ return apply_filters( 'cmb2_can_save', $can_save, $this->cmb );
828
  }
829
 
830
  /**
831
  * Determine if taxonomy of term being modified is cmb2-editable.
832
+ *
833
  * @since 2.2.0
834
  * @param string $taxonomy Taxonomy of term being modified.
835
  * @return bool Whether taxonomy is editable.
850
 
851
  /**
852
  * Enqueues the 'cmb2-display-styles' if the conditions match (has columns, on the right page, etc).
853
+ *
854
  * @since 2.2.2.1
855
  */
856
  protected function maybe_enqueue_column_display_styles() {
867
 
868
  /**
869
  * Includes CMB2 styles
870
+ *
871
  * @since 2.0.0
872
  */
873
  public static function enqueue_cmb_css( $handle = 'cmb2-styles' ) {
874
+
875
+ /**
876
+ * Filter to determine if CMB2'S css should be enqueued.
877
+ *
878
+ * @param bool $enqueue_css Default is true.
879
+ */
880
  if ( ! apply_filters( 'cmb2_enqueue_css', true ) ) {
881
  return false;
882
  }
892
 
893
  /**
894
  * Includes CMB2 JS
895
+ *
896
  * @since 2.0.0
897
  */
898
  public static function enqueue_cmb_js() {
899
+
900
+ /**
901
+ * Filter to determine if CMB2'S JS should be enqueued.
902
+ *
903
+ * @param bool $enqueue_js Default is true.
904
+ */
905
  if ( ! apply_filters( 'cmb2_enqueue_js', true ) ) {
906
  return false;
907
  }
vendor/CMB2/includes/helper-functions.php CHANGED
@@ -4,15 +4,16 @@
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
- * @author WebDevStudios
8
  * @license GPL-2.0+
9
- * @link http://webdevstudios.com
10
  */
11
 
12
  /**
13
  * Helper function to provide directory path to CMB2
 
14
  * @since 2.0.0
15
- * @param string $path Path to append
16
  * @return string Directory with optional path appended
17
  */
18
  function cmb2_dir( $path = '' ) {
@@ -21,6 +22,7 @@ function cmb2_dir( $path = '' ) {
21
 
22
  /**
23
  * Autoloads files with CMB2 classes when needed
 
24
  * @since 1.0.0
25
  * @param string $class_name Name of the class being requested
26
  */
@@ -44,6 +46,7 @@ function cmb2_autoload_classes( $class_name ) {
44
 
45
  /**
46
  * Get instance of the CMB2_Utils class
 
47
  * @since 2.0.0
48
  * @return CMB2_Utils object CMB2 utilities class
49
  */
@@ -55,6 +58,7 @@ function cmb2_utils() {
55
 
56
  /**
57
  * Get instance of the CMB2_Ajax class
 
58
  * @since 2.0.0
59
  * @return CMB2_Ajax object CMB2 ajax class
60
  */
@@ -64,6 +68,7 @@ function cmb2_ajax() {
64
 
65
  /**
66
  * Get instance of the CMB2_Option class for the passed metabox ID
 
67
  * @since 2.0.0
68
  * @return CMB2_Option object Options class for setting/getting options for metabox
69
  */
@@ -73,16 +78,17 @@ function cmb2_options( $key ) {
73
 
74
  /**
75
  * Get a cmb oEmbed. Handles oEmbed getting for non-post objects
 
76
  * @since 2.0.0
77
- * @param array $args Arguments. Accepts:
78
  *
79
- * 'url' - URL to retrieve the oEmbed from,
80
- * 'object_id' - $post_id,
81
- * 'object_type' - 'post',
82
- * 'oembed_args' - $embed_args, // array containing 'width', etc
83
- * 'field_id' - false,
84
- * 'cache_key' - false,
85
- * 'wp_error' - true/false, // To return a wp_error object if no embed found.
86
  *
87
  * @return string oEmbed string
88
  */
@@ -111,6 +117,7 @@ function cmb2_get_oembed( $args = array() ) {
111
 
112
  /**
113
  * Outputs the return of cmb2_get_oembed.
 
114
  * @since 2.2.2
115
  * @see cmb2_get_oembed
116
  */
@@ -121,10 +128,11 @@ add_action( 'cmb2_do_oembed', 'cmb2_do_oembed' );
121
 
122
  /**
123
  * A helper function to get an option from a CMB2 options array
 
124
  * @since 1.0.1
125
- * @param string $option_key Option key
126
- * @param string $field_id Option array field key
127
- * @param mixed $default Optional default fallback value
128
  * @return array Options array or specific field
129
  */
130
  function cmb2_get_option( $option_key, $field_id = '', $default = false ) {
@@ -133,6 +141,7 @@ function cmb2_get_option( $option_key, $field_id = '', $default = false ) {
133
 
134
  /**
135
  * A helper function to update an option in a CMB2 options array
 
136
  * @since 2.0.0
137
  * @param string $option_key Option key
138
  * @param string $field_id Option array field key
@@ -150,6 +159,7 @@ function cmb2_update_option( $option_key, $field_id, $value, $single = true ) {
150
 
151
  /**
152
  * Get a CMB2 field object.
 
153
  * @since 1.1.0
154
  * @param array $meta_box Metabox ID or Metabox config array
155
  * @param array $field_id Field ID or all field arguments
@@ -174,6 +184,7 @@ function cmb2_get_field( $meta_box, $field_id, $object_id = 0, $object_type = ''
174
 
175
  /**
176
  * Get a field's value.
 
177
  * @since 1.1.0
178
  * @param array $meta_box Metabox ID or Metabox config array
179
  * @param array $field_id Field ID or all field arguments
@@ -189,6 +200,7 @@ function cmb2_get_field_value( $meta_box, $field_id, $object_id = 0, $object_typ
189
 
190
  /**
191
  * Because OOP can be scary
 
192
  * @since 2.0.2
193
  * @param array $meta_box_config Metabox Config array
194
  * @return CMB2 object Instantiated CMB2 object
@@ -199,6 +211,7 @@ function new_cmb2_box( array $meta_box_config ) {
199
 
200
  /**
201
  * Retrieve a CMB2 instance by the metabox ID
 
202
  * @since 2.0.0
203
  * @param mixed $meta_box Metabox ID or Metabox config array
204
  * @param int $object_id Object ID
@@ -234,6 +247,7 @@ function cmb2_get_metabox( $meta_box, $object_id = 0, $object_type = '' ) {
234
 
235
  /**
236
  * Returns array of sanitized field values from a metabox (without saving them)
 
237
  * @since 2.0.3
238
  * @param mixed $meta_box Metabox ID or Metabox config array
239
  * @param array $data_to_sanitize Array of field_id => value data for sanitizing (likely $_POST data).
@@ -246,10 +260,11 @@ function cmb2_get_metabox_sanitized_values( $meta_box, array $data_to_sanitize )
246
 
247
  /**
248
  * Retrieve a metabox form
 
249
  * @since 2.0.0
250
- * @param mixed $meta_box Metabox config array or Metabox ID
251
- * @param int $object_id Object ID
252
- * @param array $args Optional arguments array
253
  * @return string CMB2 html form markup
254
  */
255
  function cmb2_get_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
@@ -267,10 +282,11 @@ function cmb2_get_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
267
 
268
  /**
269
  * Display a metabox form & save it on submission
 
270
  * @since 1.0.0
271
- * @param mixed $meta_box Metabox config array or Metabox ID
272
- * @param int $object_id Object ID
273
- * @param array $args Optional arguments array
274
  */
275
  function cmb2_print_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
276
 
@@ -331,10 +347,11 @@ function cmb2_print_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
331
 
332
  /**
333
  * Display a metabox form (or optionally return it) & save it on submission
 
334
  * @since 1.0.0
335
- * @param mixed $meta_box Metabox config array or Metabox ID
336
- * @param int $object_id Object ID
337
- * @param array $args Optional arguments array
338
  */
339
  function cmb2_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
340
  if ( ! isset( $args['echo'] ) || $args['echo'] ) {
@@ -359,7 +376,7 @@ if ( ! function_exists( 'date_create_from_format' ) ) {
359
 
360
  $schedule_format = str_replace(
361
  array( 'M', 'Y', 'm', 'd', 'H', 'i', 'a' ),
362
- array('%b', '%Y', '%m', '%d', '%H', '%M', '%p' ),
363
  $date_format
364
  );
365
 
@@ -384,6 +401,21 @@ if ( ! function_exists( 'date_create_from_format' ) ) {
384
  $parsed_time['tm_sec']
385
  );
386
 
387
- return new DateTime($ymd);
388
  }
389
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
+ * @author CMB2 team
8
  * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
  */
11
 
12
  /**
13
  * Helper function to provide directory path to CMB2
14
+ *
15
  * @since 2.0.0
16
+ * @param string $path Path to append
17
  * @return string Directory with optional path appended
18
  */
19
  function cmb2_dir( $path = '' ) {
22
 
23
  /**
24
  * Autoloads files with CMB2 classes when needed
25
+ *
26
  * @since 1.0.0
27
  * @param string $class_name Name of the class being requested
28
  */
46
 
47
  /**
48
  * Get instance of the CMB2_Utils class
49
+ *
50
  * @since 2.0.0
51
  * @return CMB2_Utils object CMB2 utilities class
52
  */
58
 
59
  /**
60
  * Get instance of the CMB2_Ajax class
61
+ *
62
  * @since 2.0.0
63
  * @return CMB2_Ajax object CMB2 ajax class
64
  */
68
 
69
  /**
70
  * Get instance of the CMB2_Option class for the passed metabox ID
71
+ *
72
  * @since 2.0.0
73
  * @return CMB2_Option object Options class for setting/getting options for metabox
74
  */
78
 
79
  /**
80
  * Get a cmb oEmbed. Handles oEmbed getting for non-post objects
81
+ *
82
  * @since 2.0.0
83
+ * @param array $args Arguments. Accepts:
84
  *
85
+ * 'url' - URL to retrieve the oEmbed from,
86
+ * 'object_id' - $post_id,
87
+ * 'object_type' - 'post',
88
+ * 'oembed_args' - $embed_args, // array containing 'width', etc
89
+ * 'field_id' - false,
90
+ * 'cache_key' - false,
91
+ * 'wp_error' - true/false, // To return a wp_error object if no embed found.
92
  *
93
  * @return string oEmbed string
94
  */
117
 
118
  /**
119
  * Outputs the return of cmb2_get_oembed.
120
+ *
121
  * @since 2.2.2
122
  * @see cmb2_get_oembed
123
  */
128
 
129
  /**
130
  * A helper function to get an option from a CMB2 options array
131
+ *
132
  * @since 1.0.1
133
+ * @param string $option_key Option key
134
+ * @param string $field_id Option array field key
135
+ * @param mixed $default Optional default fallback value
136
  * @return array Options array or specific field
137
  */
138
  function cmb2_get_option( $option_key, $field_id = '', $default = false ) {
141
 
142
  /**
143
  * A helper function to update an option in a CMB2 options array
144
+ *
145
  * @since 2.0.0
146
  * @param string $option_key Option key
147
  * @param string $field_id Option array field key
159
 
160
  /**
161
  * Get a CMB2 field object.
162
+ *
163
  * @since 1.1.0
164
  * @param array $meta_box Metabox ID or Metabox config array
165
  * @param array $field_id Field ID or all field arguments
184
 
185
  /**
186
  * Get a field's value.
187
+ *
188
  * @since 1.1.0
189
  * @param array $meta_box Metabox ID or Metabox config array
190
  * @param array $field_id Field ID or all field arguments
200
 
201
  /**
202
  * Because OOP can be scary
203
+ *
204
  * @since 2.0.2
205
  * @param array $meta_box_config Metabox Config array
206
  * @return CMB2 object Instantiated CMB2 object
211
 
212
  /**
213
  * Retrieve a CMB2 instance by the metabox ID
214
+ *
215
  * @since 2.0.0
216
  * @param mixed $meta_box Metabox ID or Metabox config array
217
  * @param int $object_id Object ID
247
 
248
  /**
249
  * Returns array of sanitized field values from a metabox (without saving them)
250
+ *
251
  * @since 2.0.3
252
  * @param mixed $meta_box Metabox ID or Metabox config array
253
  * @param array $data_to_sanitize Array of field_id => value data for sanitizing (likely $_POST data).
260
 
261
  /**
262
  * Retrieve a metabox form
263
+ *
264
  * @since 2.0.0
265
+ * @param mixed $meta_box Metabox config array or Metabox ID
266
+ * @param int $object_id Object ID
267
+ * @param array $args Optional arguments array
268
  * @return string CMB2 html form markup
269
  */
270
  function cmb2_get_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
282
 
283
  /**
284
  * Display a metabox form & save it on submission
285
+ *
286
  * @since 1.0.0
287
+ * @param mixed $meta_box Metabox config array or Metabox ID
288
+ * @param int $object_id Object ID
289
+ * @param array $args Optional arguments array
290
  */
291
  function cmb2_print_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
292
 
347
 
348
  /**
349
  * Display a metabox form (or optionally return it) & save it on submission
350
+ *
351
  * @since 1.0.0
352
+ * @param mixed $meta_box Metabox config array or Metabox ID
353
+ * @param int $object_id Object ID
354
+ * @param array $args Optional arguments array
355
  */
356
  function cmb2_metabox_form( $meta_box, $object_id = 0, $args = array() ) {
357
  if ( ! isset( $args['echo'] ) || $args['echo'] ) {
376
 
377
  $schedule_format = str_replace(
378
  array( 'M', 'Y', 'm', 'd', 'H', 'i', 'a' ),
379
+ array( '%b', '%Y', '%m', '%d', '%H', '%M', '%p' ),
380
  $date_format
381
  );
382
 
401
  $parsed_time['tm_sec']
402
  );
403
 
404
+ return new DateTime( $ymd );
405
  }
406
+ }// End if().
407
+
408
+ if ( ! function_exists( 'date_timestamp_get' ) ) {
409
+
410
+ /**
411
+ * Returns the Unix timestamp representing the date.
412
+ * Reimplementation of DateTime::getTimestamp for PHP < 5.3. :(
413
+ *
414
+ * @param DateTime
415
+ *
416
+ * @return int
417
+ */
418
+ function date_timestamp_get( DateTime $date ) {
419
+ return $date->format( 'U' );
420
+ }
421
+ }// End if().
vendor/CMB2/includes/index.php CHANGED
@@ -1,2 +1,2 @@
1
  <?php
2
- // Silence is golden
1
  <?php
2
+ // Silence is golden
vendor/CMB2/includes/rest-api/CMB2_REST.php CHANGED
@@ -7,9 +7,9 @@
7
  *
8
  * @category WordPress_Plugin
9
  * @package CMB2
10
- * @author WebDevStudios
11
  * @license GPL-2.0+
12
- * @link http://webdevstudios.com
13
  *
14
  * @property-read read_fields Array of readable field objects.
15
  * @property-read edit_fields Array of editable field objects.
@@ -20,6 +20,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
20
 
21
  /**
22
  * The current CMB2 REST endpoint version
 
23
  * @var string
24
  * @since 2.2.3
25
  */
@@ -27,6 +28,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
27
 
28
  /**
29
  * The CMB2 REST base namespace (v should always be followed by $version)
 
30
  * @var string
31
  * @since 2.2.3
32
  */
@@ -57,6 +59,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
57
 
58
  /**
59
  * Array of readable field objects.
 
60
  * @var CMB2_Field[]
61
  * @since 2.2.3
62
  */
@@ -64,6 +67,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
64
 
65
  /**
66
  * Array of editable field objects.
 
67
  * @var CMB2_Field[]
68
  * @since 2.2.3
69
  */
@@ -71,16 +75,38 @@ class CMB2_REST extends CMB2_Hookup_Base {
71
 
72
  /**
73
  * Whether CMB2 object is readable via the rest api.
 
74
  * @var boolean
75
  */
76
  protected $rest_read = false;
77
 
78
  /**
79
  * Whether CMB2 object is editable via the rest api.
 
80
  * @var boolean
81
  */
82
  protected $rest_edit = false;
83
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
  /**
85
  * Constructor
86
  *
@@ -116,6 +142,8 @@ class CMB2_REST extends CMB2_Hookup_Base {
116
  $this->declare_read_edit_fields();
117
 
118
  add_filter( 'is_protected_meta', array( $this, 'is_protected_meta' ), 10, 3 );
 
 
119
  }
120
 
121
  /**
@@ -146,7 +174,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
146
  $alltypes = $taxonomies = array();
147
 
148
  foreach ( self::$boxes as $cmb_id => $rest_box ) {
149
- $types = array_flip( $rest_box->cmb->box_types() );
150
 
151
  if ( isset( $types['user'] ) ) {
152
  unset( $types['user'] );
@@ -201,7 +229,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
201
  *
202
  * @param string|array $object_types Object(s) the field is being registered
203
  * to, "post"|"term"|"comment" etc.
204
- * @param string $object_types Canonical object type for callbacks.
205
  *
206
  * @return void
207
  */
@@ -235,7 +263,6 @@ class CMB2_REST extends CMB2_Hookup_Base {
235
  if ( $this->can_edit( $show_in_rest ) ) {
236
  $this->edit_fields[] = $field['id'];
237
  }
238
-
239
  }
240
  }
241
 
@@ -516,7 +543,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
516
  *
517
  * @since 2.2.o
518
  *
519
- * @param array $values Array of values being provided.
520
  * @return array Array of updated/sanitized values.
521
  */
522
  public function sanitize_box_values( array $values ) {
@@ -538,8 +565,8 @@ class CMB2_REST extends CMB2_Hookup_Base {
538
  *
539
  * @since 2.2.3
540
  *
541
- * @param array $values Array of values being provided.
542
- * @param string $field_id The id of the field to update.
543
  *
544
  * @return mixed The results of saving/sanitizing a field value.
545
  */
@@ -569,8 +596,8 @@ class CMB2_REST extends CMB2_Hookup_Base {
569
  *
570
  * @since 2.2.3
571
  *
572
- * @param array $values Array of values being provided.
573
- * @param CMB2_Field $field CMB2_Field object.
574
  *
575
  * @return mixed The results of saving/sanitizing the group field value.
576
  */
@@ -676,7 +703,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
676
  *
677
  * @since 2.2.3
678
  *
679
- * @param string $cmb_id CMB2 config id
680
  *
681
  * @return CMB2_REST|false The CMB2_REST object or false.
682
  */
@@ -714,7 +741,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
714
  *
715
  * @since 2.2.3
716
  *
717
- * @param mixed $value Value to check.
718
  *
719
  * @return boolean Whether value is considered readable.
720
  */
@@ -733,7 +760,7 @@ class CMB2_REST extends CMB2_Hookup_Base {
733
  *
734
  * @since 2.2.3
735
  *
736
- * @param mixed $value Value to check.
737
  *
738
  * @return boolean Whether value is considered editable.
739
  */
7
  *
8
  * @category WordPress_Plugin
9
  * @package CMB2
10
+ * @author CMB2 team
11
  * @license GPL-2.0+
12
+ * @link https://cmb2.io
13
  *
14
  * @property-read read_fields Array of readable field objects.
15
  * @property-read edit_fields Array of editable field objects.
20
 
21
  /**
22
  * The current CMB2 REST endpoint version
23
+ *
24
  * @var string
25
  * @since 2.2.3
26
  */
28
 
29
  /**
30
  * The CMB2 REST base namespace (v should always be followed by $version)
31
+ *
32
  * @var string
33
  * @since 2.2.3
34
  */
59
 
60
  /**
61
  * Array of readable field objects.
62
+ *
63
  * @var CMB2_Field[]
64
  * @since 2.2.3
65
  */
67
 
68
  /**
69
  * Array of editable field objects.
70
+ *
71
  * @var CMB2_Field[]
72
  * @since 2.2.3
73
  */
75
 
76
  /**
77
  * Whether CMB2 object is readable via the rest api.
78
+ *
79
  * @var boolean
80
  */
81
  protected $rest_read = false;
82
 
83
  /**
84
  * Whether CMB2 object is editable via the rest api.
85
+ *
86
  * @var boolean
87
  */
88
  protected $rest_edit = false;
89
 
90
+ /**
91
+ * A functionalized constructor, used for the hookup action callbacks.
92
+ *
93
+ * @since 2.2.6
94
+ *
95
+ * @param CMB2 $cmb The CMB2 object to hookup
96
+ *
97
+ * @return CMB2_Hookup_Base $hookup The hookup object.
98
+ */
99
+ public static function maybe_init_and_hookup( CMB2 $cmb ) {
100
+ if ( $cmb->prop( 'show_in_rest' ) && function_exists( 'rest_get_server' ) ) {
101
+
102
+ $hookup = new self( $cmb );
103
+
104
+ return $hookup->universal_hooks();
105
+ }
106
+
107
+ return false;
108
+ }
109
+
110
  /**
111
  * Constructor
112
  *
142
  $this->declare_read_edit_fields();
143
 
144
  add_filter( 'is_protected_meta', array( $this, 'is_protected_meta' ), 10, 3 );
145
+
146
+ return $this;
147
  }
148
 
149
  /**
174
  $alltypes = $taxonomies = array();
175
 
176
  foreach ( self::$boxes as $cmb_id => $rest_box ) {
177
+ $types = array_flip( $rest_box->cmb->box_types( array( 'post' ) ) );
178
 
179
  if ( isset( $types['user'] ) ) {
180
  unset( $types['user'] );
229
  *
230
  * @param string|array $object_types Object(s) the field is being registered
231
  * to, "post"|"term"|"comment" etc.
232
+ * @param string $object_types Canonical object type for callbacks.
233
  *
234
  * @return void
235
  */
263
  if ( $this->can_edit( $show_in_rest ) ) {
264
  $this->edit_fields[] = $field['id'];
265
  }
 
266
  }
267
  }
268
 
543
  *
544
  * @since 2.2.o
545
  *
546
+ * @param array $values Array of values being provided.
547
  * @return array Array of updated/sanitized values.
548
  */
549
  public function sanitize_box_values( array $values ) {
565
  *
566
  * @since 2.2.3
567
  *
568
+ * @param array $values Array of values being provided.
569
+ * @param string $field_id The id of the field to update.
570
  *
571
  * @return mixed The results of saving/sanitizing a field value.
572
  */
596
  *
597
  * @since 2.2.3
598
  *
599
+ * @param array $values Array of values being provided.
600
+ * @param CMB2_Field $field CMB2_Field object.
601
  *
602
  * @return mixed The results of saving/sanitizing the group field value.
603
  */
703
  *
704
  * @since 2.2.3
705
  *
706
+ * @param string $cmb_id CMB2 config id
707
  *
708
  * @return CMB2_REST|false The CMB2_REST object or false.
709
  */
741
  *
742
  * @since 2.2.3
743
  *
744
+ * @param mixed $value Value to check.
745
  *
746
  * @return boolean Whether value is considered readable.
747
  */
760
  *
761
  * @since 2.2.3
762
  *
763
+ * @param mixed $value Value to check.
764
  *
765
  * @return boolean Whether value is considered editable.
766
  */
vendor/CMB2/includes/rest-api/CMB2_REST_Controller.php CHANGED
@@ -15,9 +15,9 @@ if ( ! class_exists( 'WP_REST_Controller' ) ) {
15
  *
16
  * @category WordPress_Plugin
17
  * @package CMB2
18
- * @author WebDevStudios
19
  * @license GPL-2.0+
20
- * @link http://webdevstudios.com
21
  */
22
  abstract class CMB2_REST_Controller extends WP_REST_Controller {
23
 
@@ -37,6 +37,7 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
37
 
38
  /**
39
  * The current request object
 
40
  * @var WP_REST_Request $request
41
  * @since 2.2.3
42
  */
@@ -44,6 +45,7 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
44
 
45
  /**
46
  * The current server object
 
47
  * @var WP_REST_Server $server
48
  * @since 2.2.3
49
  */
@@ -51,6 +53,7 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
51
 
52
  /**
53
  * Box object id
 
54
  * @var mixed
55
  * @since 2.2.3
56
  */
@@ -58,6 +61,7 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
58
 
59
  /**
60
  * Box object type
 
61
  * @var string
62
  * @since 2.2.3
63
  */
@@ -79,6 +83,7 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
79
 
80
  /**
81
  * The initial route
 
82
  * @var string
83
  * @since 2.2.3
84
  */
@@ -86,6 +91,7 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
86
 
87
  /**
88
  * Defines which endpoint the initial request is.
 
89
  * @var string $request_type
90
  * @since 2.2.3
91
  */
@@ -93,6 +99,7 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
93
 
94
  /**
95
  * Constructor
 
96
  * @since 2.2.3
97
  */
98
  public function __construct( WP_REST_Server $wp_rest_server ) {
@@ -214,8 +221,8 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
214
  *
215
  * @since 2.2.3
216
  *
217
- * @param mixed $item WordPress representation of the item.
218
- * @param WP_REST_Request $request Request object.
219
  * @return WP_REST_Response $response
220
  */
221
  public function prepare_item_for_response( $data, $request = null ) {
@@ -247,7 +254,9 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
247
  $this->initiate_rest_box( $request, $request_type );
248
 
249
  if ( ! is_wp_error( $this->rest_box ) && ! $this->rest_box->rest_read ) {
250
- $this->rest_box = new WP_Error( 'cmb2_rest_no_read_error', __( 'This box does not have read permissions.', 'cmb2' ), array( 'status' => 403 ) );
 
 
251
  }
252
  }
253
 
@@ -265,7 +274,9 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
265
  $this->initiate_rest_box( $request, $request_type );
266
 
267
  if ( ! is_wp_error( $this->rest_box ) && ! $this->rest_box->rest_edit ) {
268
- $this->rest_box = new WP_Error( 'cmb2_rest_no_write_error', __( 'This box does not have write permissions.', 'cmb2' ), array( 'status' => 403 ) );
 
 
269
  }
270
  }
271
 
@@ -286,7 +297,9 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
286
 
287
  if ( ! $this->rest_box ) {
288
 
289
- $this->rest_box = new WP_Error( 'cmb2_rest_box_not_found_error', __( 'No box found by that id. A box needs to be registered with the "show_in_rest" parameter configured.', 'cmb2' ), array( 'status' => 403 ) );
 
 
290
 
291
  } else {
292
 
@@ -362,19 +375,25 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
362
  'type' => 'object',
363
  'properties' => array(
364
  'description' => array(
365
- 'description' => __( 'A human-readable description of the object.', 'cmb2' ),
366
- 'type' => 'string',
367
- 'context' => array( 'view' ),
 
368
  ),
369
- 'name' => array(
370
- 'description' => __( 'The id for the object.', 'cmb2' ),
371
- 'type' => 'integer',
372
- 'context' => array( 'view' ),
 
 
373
  ),
 
374
  'name' => array(
375
- 'description' => __( 'The title for the object.', 'cmb2' ),
376
- 'type' => 'string',
377
- 'context' => array( 'view' ),
 
 
378
  ),
379
  ),
380
  );
@@ -384,12 +403,13 @@ abstract class CMB2_REST_Controller extends WP_REST_Controller {
384
 
385
  /**
386
  * Return an array of contextual links for endpoint/object
 
387
  * @link http://v2.wp-api.org/extending/linking/
388
  * @link http://www.iana.org/assignments/link-relations/link-relations.xhtml
389
  *
390
  * @since 2.2.3
391
  *
392
- * @param mixed $object Object to build links from.
393
  *
394
  * @return array Array of links
395
  */
15
  *
16
  * @category WordPress_Plugin
17
  * @package CMB2
18
+ * @author CMB2 team
19
  * @license GPL-2.0+
20
+ * @link https://cmb2.io
21
  */
22
  abstract class CMB2_REST_Controller extends WP_REST_Controller {
23
 
37
 
38
  /**
39
  * The current request object
40
+ *
41
  * @var WP_REST_Request $request
42
  * @since 2.2.3
43
  */
45
 
46
  /**
47
  * The current server object
48
+ *
49
  * @var WP_REST_Server $server
50
  * @since 2.2.3
51
  */
53
 
54
  /**
55
  * Box object id
56
+ *
57
  * @var mixed
58
  * @since 2.2.3
59
  */
61
 
62
  /**
63
  * Box object type
64
+ *
65
  * @var string
66
  * @since 2.2.3
67
  */
83
 
84
  /**
85
  * The initial route
86
+ *
87
  * @var string
88
  * @since 2.2.3
89
  */
91
 
92
  /**
93
  * Defines which endpoint the initial request is.
94
+ *
95
  * @var string $request_type
96
  * @since 2.2.3
97
  */
99
 
100
  /**
101
  * Constructor
102
+ *
103
  * @since 2.2.3
104
  */
105
  public function __construct( WP_REST_Server $wp_rest_server ) {
221
  *
222
  * @since 2.2.3
223
  *
224
+ * @param mixed $item WordPress representation of the item.
225
+ * @param WP_REST_Request $request Request object.
226
  * @return WP_REST_Response $response
227
  */
228
  public function prepare_item_for_response( $data, $request = null ) {
254
  $this->initiate_rest_box( $request, $request_type );
255
 
256
  if ( ! is_wp_error( $this->rest_box ) && ! $this->rest_box->rest_read ) {
257
+ $this->rest_box = new WP_Error( 'cmb2_rest_no_read_error', __( 'This box does not have read permissions.', 'cmb2' ), array(
258
+ 'status' => 403,
259
+ ) );
260
  }
261
  }
262
 
274
  $this->initiate_rest_box( $request, $request_type );
275
 
276
  if ( ! is_wp_error( $this->rest_box ) && ! $this->rest_box->rest_edit ) {
277
+ $this->rest_box = new WP_Error( 'cmb2_rest_no_write_error', __( 'This box does not have write permissions.', 'cmb2' ), array(
278
+ 'status' => 403,
279
+ ) );
280
  }
281
  }
282
 
297
 
298
  if ( ! $this->rest_box ) {
299
 
300
+ $this->rest_box = new WP_Error( 'cmb2_rest_box_not_found_error', __( 'No box found by that id. A box needs to be registered with the "show_in_rest" parameter configured.', 'cmb2' ), array(
301
+ 'status' => 403,
302
+ ) );
303
 
304
  } else {
305
 
375
  'type' => 'object',
376
  'properties' => array(
377
  'description' => array(
378
+ 'description' => __( 'A human-readable description of the object.', 'cmb2' ),
379
+ 'type' => 'string',
380
+ 'context' => array(
381
+ 'view',
382
  ),
383
+ ),
384
+ 'name' => array(
385
+ 'description' => __( 'The id for the object.', 'cmb2' ),
386
+ 'type' => 'integer',
387
+ 'context' => array(
388
+ 'view',
389
  ),
390
+ ),
391
  'name' => array(
392
+ 'description' => __( 'The title for the object.', 'cmb2' ),
393
+ 'type' => 'string',
394
+ 'context' => array(
395
+ 'view',
396
+ ),
397
  ),
398
  ),
399
  );
403
 
404
  /**
405
  * Return an array of contextual links for endpoint/object
406
+ *
407
  * @link http://v2.wp-api.org/extending/linking/
408
  * @link http://www.iana.org/assignments/link-relations/link-relations.xhtml
409
  *
410
  * @since 2.2.3
411
  *
412
+ * @param mixed $object Object to build links from.
413
  *
414
  * @return array Array of links
415
  */
vendor/CMB2/includes/rest-api/CMB2_REST_Controller_Boxes.php CHANGED
@@ -10,9 +10,9 @@
10
  *
11
  * @category WordPress_Plugin
12
  * @package CMB2
13
- * @author WebDevStudios
14
  * @license GPL-2.0+
15
- * @link http://webdevstudios.com
16
  */
17
  class CMB2_REST_Controller_Boxes extends CMB2_REST_Controller {
18
 
@@ -32,6 +32,7 @@ class CMB2_REST_Controller_Boxes extends CMB2_REST_Controller {
32
 
33
  /**
34
  * Constructor
 
35
  * @since 2.2.3
36
  */
37
  public function __construct( WP_REST_Server $wp_rest_server ) {
@@ -56,7 +57,6 @@ class CMB2_REST_Controller_Boxes extends CMB2_REST_Controller {
56
  // $args['context']['required'] = false;
57
  // $args['context']['default'] = 'view';
58
  // $args['context']['enum'] = array( 'view', 'embed' );
59
-
60
  // Returns all boxes data.
61
  register_rest_route( $this->namespace, '/' . $this->rest_base, array(
62
  array(
@@ -119,7 +119,9 @@ class CMB2_REST_Controller_Boxes extends CMB2_REST_Controller {
119
 
120
  $boxes = CMB2_REST::get_all();
121
  if ( empty( $boxes ) ) {
122
- return new WP_Error( 'cmb2_rest_no_boxes', __( 'No boxes found.', 'cmb2' ), array( 'status' => 403 ) );
 
 
123
  }
124
 
125
  $boxes_data = array();
10
  *
11
  * @category WordPress_Plugin
12
  * @package CMB2
13
+ * @author CMB2 team
14
  * @license GPL-2.0+
15
+ * @link https://cmb2.io
16
  */
17
  class CMB2_REST_Controller_Boxes extends CMB2_REST_Controller {
18
 
32
 
33
  /**
34
  * Constructor
35
+ *
36
  * @since 2.2.3
37
  */
38
  public function __construct( WP_REST_Server $wp_rest_server ) {
57
  // $args['context']['required'] = false;
58
  // $args['context']['default'] = 'view';
59
  // $args['context']['enum'] = array( 'view', 'embed' );
 
60
  // Returns all boxes data.
61
  register_rest_route( $this->namespace, '/' . $this->rest_base, array(
62
  array(
119
 
120
  $boxes = CMB2_REST::get_all();
121
  if ( empty( $boxes ) ) {
122
+ return new WP_Error( 'cmb2_rest_no_boxes', __( 'No boxes found.', 'cmb2' ), array(
123
+ 'status' => 403,
124
+ ) );
125
  }
126
 
127
  $boxes_data = array();
vendor/CMB2/includes/rest-api/CMB2_REST_Controller_Fields.php CHANGED
@@ -10,9 +10,9 @@
10
  *
11
  * @category WordPress_Plugin
12
  * @package CMB2
13
- * @author WebDevStudios
14
  * @license GPL-2.0+
15
- * @link http://webdevstudios.com
16
  */
17
  class CMB2_REST_Controller_Fields extends CMB2_REST_Controller_Boxes {
18
 
@@ -233,7 +233,9 @@ class CMB2_REST_Controller_Fields extends CMB2_REST_Controller_Boxes {
233
  $this->initiate_rest_read_box( $request, 'field_value_update' );
234
 
235
  if ( ! $this->request['value'] ) {
236
- return new WP_Error( 'cmb2_rest_update_field_error', __( 'CMB2 Field value cannot be updated without the value parameter specified.', 'cmb2' ), array( 'status' => 400 ) );
 
 
237
  }
238
 
239
  return $this->modify_field_value( 'updated' );
@@ -289,10 +291,12 @@ class CMB2_REST_Controller_Fields extends CMB2_REST_Controller_Boxes {
289
  * @param string $activity The modification activity (updated or deleted).
290
  * @return WP_Error|WP_REST_Response
291
  */
292
- public function modify_field_value( $activity) {
293
 
294
  if ( ! $this->request['object_id'] || ! $this->request['object_type'] ) {
295
- return new WP_Error( 'cmb2_rest_modify_field_value_error', __( 'CMB2 Field value cannot be modified without the object_id and object_type parameters specified.', 'cmb2' ), array( 'status' => 400 ) );
 
 
296
  }
297
 
298
  if ( is_wp_error( $this->rest_box ) ) {
@@ -305,16 +309,18 @@ class CMB2_REST_Controller_Fields extends CMB2_REST_Controller_Boxes {
305
  );
306
 
307
  if ( ! $this->field ) {
308
- return new WP_Error( 'cmb2_rest_no_field_by_id_error', __( 'No field found by that id.', 'cmb2' ), array( 'status' => 403 ) );
 
 
309
  }
310
 
311
- $this->field->args["value_{$activity}"] = (bool) 'deleted' === $activity
312
  ? $this->field->remove_data()
313
  : $this->field->save_field( $this->request['value'] );
314
 
315
  // If options page, save the $activity options
316
  if ( 'options-page' == $this->request['object_type'] ) {
317
- $this->field->args["value_{$activity}"] = cmb2_options( $this->request['object_id'] )->set();
318
  }
319
 
320
  return $this->prepare_read_field( $this->field );
@@ -332,7 +338,9 @@ class CMB2_REST_Controller_Fields extends CMB2_REST_Controller_Boxes {
332
  $this->field = $this->rest_box->field_can_read( $field, true );
333
 
334
  if ( ! $this->field ) {
335
- return new WP_Error( 'cmb2_rest_no_field_by_id_error', __( 'No field found by that id.', 'cmb2' ), array( 'status' => 403 ) );
 
 
336
  }
337
 
338
  return $this->prepare_item( $this->prepare_field_response() );
10
  *
11
  * @category WordPress_Plugin
12
  * @package CMB2
13
+ * @author CMB2 team
14
  * @license GPL-2.0+
15
+ * @link https://cmb2.io
16
  */
17
  class CMB2_REST_Controller_Fields extends CMB2_REST_Controller_Boxes {
18
 
233
  $this->initiate_rest_read_box( $request, 'field_value_update' );
234
 
235
  if ( ! $this->request['value'] ) {
236
+ return new WP_Error( 'cmb2_rest_update_field_error', __( 'CMB2 Field value cannot be updated without the value parameter specified.', 'cmb2' ), array(
237
+ 'status' => 400,
238
+ ) );
239
  }
240
 
241
  return $this->modify_field_value( 'updated' );
291
  * @param string $activity The modification activity (updated or deleted).
292
  * @return WP_Error|WP_REST_Response
293
  */
294
+ public function modify_field_value( $activity ) {
295
 
296
  if ( ! $this->request['object_id'] || ! $this->request['object_type'] ) {
297
+ return new WP_Error( 'cmb2_rest_modify_field_value_error', __( 'CMB2 Field value cannot be modified without the object_id and object_type parameters specified.', 'cmb2' ), array(
298
+ 'status' => 400,
299
+ ) );
300
  }
301
 
302
  if ( is_wp_error( $this->rest_box ) ) {
309
  );
310
 
311
  if ( ! $this->field ) {
312
+ return new WP_Error( 'cmb2_rest_no_field_by_id_error', __( 'No field found by that id.', 'cmb2' ), array(
313
+ 'status' => 403,
314
+ ) );
315
  }
316
 
317
+ $this->field->args[ "value_{$activity}" ] = (bool) 'deleted' === $activity
318
  ? $this->field->remove_data()
319
  : $this->field->save_field( $this->request['value'] );
320
 
321
  // If options page, save the $activity options
322
  if ( 'options-page' == $this->request['object_type'] ) {
323
+ $this->field->args[ "value_{$activity}" ] = cmb2_options( $this->request['object_id'] )->set();
324
  }
325
 
326
  return $this->prepare_read_field( $this->field );
338
  $this->field = $this->rest_box->field_can_read( $field, true );
339
 
340
  if ( ! $this->field ) {
341
+ return new WP_Error( 'cmb2_rest_no_field_by_id_error', __( 'No field found by that id.', 'cmb2' ), array(
342
+ 'status' => 403,
343
+ ) );
344
  }
345
 
346
  return $this->prepare_item( $this->prepare_field_response() );
vendor/CMB2/includes/shim/WP_REST_Controller.php CHANGED
@@ -21,7 +21,8 @@ abstract class WP_REST_Controller {
21
  * Register the routes for the objects of the controller.
22
  */
23
  public function register_routes() {
24
- _doing_it_wrong( 'WP_REST_Controller::register_routes', __( 'The register_routes() method must be overriden' ), 'WPAPI-2.0' );
 
25
  }
26
 
27
  /**
@@ -31,7 +32,9 @@ abstract class WP_REST_Controller {
31
  * @return WP_Error|boolean
32
  */
33
  public function get_items_permissions_check( $request ) {
34
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
35
  }
36
 
37
  /**
@@ -41,7 +44,9 @@ abstract class WP_REST_Controller {
41
  * @return WP_Error|WP_REST_Response
42
  */
43
  public function get_items( $request ) {
44
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
45
  }
46
 
47
  /**
@@ -51,7 +56,9 @@ abstract class WP_REST_Controller {
51
  * @return WP_Error|boolean
52
  */
53
  public function get_item_permissions_check( $request ) {
54
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
55
  }
56
 
57
  /**
@@ -61,7 +68,9 @@ abstract class WP_REST_Controller {
61
  * @return WP_Error|WP_REST_Response
62
  */
63
  public function get_item( $request ) {
64
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
65
  }
66
 
67
  /**
@@ -71,7 +80,9 @@ abstract class WP_REST_Controller {
71
  * @return WP_Error|boolean
72
  */
73
  public function create_item_permissions_check( $request ) {
74
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
75
  }
76
 
77
  /**
@@ -81,7 +92,9 @@ abstract class WP_REST_Controller {
81
  * @return WP_Error|WP_REST_Response
82
  */
83
  public function create_item( $request ) {
84
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
85
  }
86
 
87
  /**
@@ -91,7 +104,9 @@ abstract class WP_REST_Controller {
91
  * @return WP_Error|boolean
92
  */
93
  public function update_item_permissions_check( $request ) {
94
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
95
  }
96
 
97
  /**
@@ -101,7 +116,9 @@ abstract class WP_REST_Controller {
101
  * @return WP_Error|WP_REST_Response
102
  */
103
  public function update_item( $request ) {
104
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
105
  }
106
 
107
  /**
@@ -111,7 +128,9 @@ abstract class WP_REST_Controller {
111
  * @return WP_Error|boolean
112
  */
113
  public function delete_item_permissions_check( $request ) {
114
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
115
  }
116
 
117
  /**
@@ -121,7 +140,9 @@ abstract class WP_REST_Controller {
121
  * @return WP_Error|WP_REST_Response
122
  */
123
  public function delete_item( $request ) {
124
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
125
  }
126
 
127
  /**
@@ -131,18 +152,22 @@ abstract class WP_REST_Controller {
131
  * @return WP_Error|object $prepared_item
132
  */
133
  protected function prepare_item_for_database( $request ) {
134
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
135
  }
136
 
137
  /**
138
  * Prepare the item for the REST response.
139
  *
140
- * @param mixed $item WordPress representation of the item.
141
  * @param WP_REST_Request $request Request object.
142
  * @return WP_REST_Response $response
143
  */
144
  public function prepare_item_for_response( $item, $request ) {
145
- return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be over-ridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
 
 
146
  }
147
 
148
  /**
@@ -175,7 +200,7 @@ abstract class WP_REST_Controller {
175
  /**
176
  * Filter a response based on the context defined in the schema.
177
  *
178
- * @param array $data
179
  * @param string $context
180
  * @return array
181
  */
@@ -275,7 +300,7 @@ abstract class WP_REST_Controller {
275
  *
276
  * Ensures consistent description between endpoints, and populates enum from schema.
277
  *
278
- * @param array $args
279
  * @return array
280
  */
281
  public function get_context_param( $args = array() ) {
@@ -305,7 +330,7 @@ abstract class WP_REST_Controller {
305
  /**
306
  * Add the values from additional fields to a data object.
307
  *
308
- * @param array $object
309
  * @param WP_REST_Request $request
310
  * @return array modified object with additional fields.
311
  */
@@ -328,7 +353,7 @@ abstract class WP_REST_Controller {
328
  /**
329
  * Update the values of additional fields added to a data object.
330
  *
331
- * @param array $object
332
  * @param WP_REST_Request $request
333
  */
334
  protected function update_additional_fields_for_object( $object, $request ) {
@@ -471,12 +496,15 @@ abstract class WP_REST_Controller {
471
 
472
  // Only use required / default from arg_options on CREATABLE endpoints.
473
  if ( WP_REST_Server::CREATABLE !== $method ) {
474
- $params['arg_options'] = array_diff_key( $params['arg_options'], array( 'required' => '', 'default' => '' ) );
 
 
 
475
  }
476
 
477
  $endpoint_args[ $field_id ] = array_merge( $endpoint_args[ $field_id ], $params['arg_options'] );
478
  }
479
- }
480
 
481
  return $endpoint_args;
482
  }
21
  * Register the routes for the objects of the controller.
22
  */
23
  public function register_routes() {
24
+ /* translators: %s: register_routes() */
25
+ _doing_it_wrong( 'WP_REST_Controller::register_routes', sprintf( __( "Method '%s' must be overridden." ), __METHOD__ ), '4.7' );
26
  }
27
 
28
  /**
32
  * @return WP_Error|boolean
33
  */
34
  public function get_items_permissions_check( $request ) {
35
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
36
+ 'status' => 405,
37
+ ) );
38
  }
39
 
40
  /**
44
  * @return WP_Error|WP_REST_Response
45
  */
46
  public function get_items( $request ) {
47
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
48
+ 'status' => 405,
49
+ ) );
50
  }
51
 
52
  /**
56
  * @return WP_Error|boolean
57
  */
58
  public function get_item_permissions_check( $request ) {
59
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
60
+ 'status' => 405,
61
+ ) );
62
  }
63
 
64
  /**
68
  * @return WP_Error|WP_REST_Response
69
  */
70
  public function get_item( $request ) {
71
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
72
+ 'status' => 405,
73
+ ) );
74
  }
75
 
76
  /**
80
  * @return WP_Error|boolean
81
  */
82
  public function create_item_permissions_check( $request ) {
83
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
84
+ 'status' => 405,
85
+ ) );
86
  }
87
 
88
  /**
92
  * @return WP_Error|WP_REST_Response
93
  */
94
  public function create_item( $request ) {
95
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
96
+ 'status' => 405,
97
+ ) );
98
  }
99
 
100
  /**
104
  * @return WP_Error|boolean
105
  */
106
  public function update_item_permissions_check( $request ) {
107
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
108
+ 'status' => 405,
109
+ ) );
110
  }
111
 
112
  /**
116
  * @return WP_Error|WP_REST_Response
117
  */
118
  public function update_item( $request ) {
119
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
120
+ 'status' => 405,
121
+ ) );
122
  }
123
 
124
  /**
128
  * @return WP_Error|boolean
129
  */
130
  public function delete_item_permissions_check( $request ) {
131
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
132
+ 'status' => 405,
133
+ ) );
134
  }
135
 
136
  /**
140
  * @return WP_Error|WP_REST_Response
141
  */
142
  public function delete_item( $request ) {
143
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
144
+ 'status' => 405,
145
+ ) );
146
  }
147
 
148
  /**
152
  * @return WP_Error|object $prepared_item
153
  */
154
  protected function prepare_item_for_database( $request ) {
155
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
156
+ 'status' => 405,
157
+ ) );
158
  }
159
 
160
  /**
161
  * Prepare the item for the REST response.
162
  *
163
+ * @param mixed $item WordPress representation of the item.
164
  * @param WP_REST_Request $request Request object.
165
  * @return WP_REST_Response $response
166
  */
167
  public function prepare_item_for_response( $item, $request ) {
168
+ return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array(
169
+ 'status' => 405,
170
+ ) );
171
  }
172
 
173
  /**
200
  /**
201
  * Filter a response based on the context defined in the schema.
202
  *
203
+ * @param array $data
204
  * @param string $context
205
  * @return array
206
  */
300
  *
301
  * Ensures consistent description between endpoints, and populates enum from schema.
302
  *
303
+ * @param array $args
304
  * @return array
305
  */
306
  public function get_context_param( $args = array() ) {
330
  /**
331
  * Add the values from additional fields to a data object.
332
  *
333
+ * @param array $object
334
  * @param WP_REST_Request $request
335
  * @return array modified object with additional fields.
336
  */
353
  /**
354
  * Update the values of additional fields added to a data object.
355
  *
356
+ * @param array $object
357
  * @param WP_REST_Request $request
358
  */
359
  protected function update_additional_fields_for_object( $object, $request ) {
496
 
497
  // Only use required / default from arg_options on CREATABLE endpoints.
498
  if ( WP_REST_Server::CREATABLE !== $method ) {
499
+ $params['arg_options'] = array_diff_key( $params['arg_options'], array(
500
+ 'required' => '',
501
+ 'default' => '',
502
+ ) );
503
  }
504
 
505
  $endpoint_args[ $field_id ] = array_merge( $endpoint_args[ $field_id ], $params['arg_options'] );
506
  }
507
+ }// End foreach().
508
 
509
  return $endpoint_args;
510
  }
vendor/CMB2/includes/types/CMB2_Type_Base.php CHANGED
@@ -6,32 +6,36 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  abstract class CMB2_Type_Base {
14
 
15
  /**
16
  * The CMB2_Types object
 
17
  * @var CMB2_Types
18
  */
19
  public $types;
20
 
21
  /**
22
  * Arguments for use in the render method
 
23
  * @var array
24
  */
25
  public $args;
26
 
27
  /**
28
  * Rendered output (if 'rendered' argument is set to false)
 
29
  * @var string
30
  */
31
  protected $rendered = '';
32
 
33
  /**
34
  * Constructor
 
35
  * @since 2.2.2
36
  * @param CMB2_Types $types
37
  * @param array $args
@@ -44,6 +48,7 @@ abstract class CMB2_Type_Base {
44
 
45
  /**
46
  * Handles rendering this field type.
 
47
  * @since 2.2.2
48
  * @return string Rendered field type.
49
  */
@@ -51,6 +56,7 @@ abstract class CMB2_Type_Base {
51
 
52
  /**
53
  * Stores the rendered field output.
 
54
  * @since 2.2.2
55
  * @param string|CMB2_Type_Base $rendered Rendered output.
56
  * @return string|CMB2_Type_Base Rendered output or this object.
@@ -67,6 +73,7 @@ abstract class CMB2_Type_Base {
67
 
68
  /**
69
  * Returns the stored rendered field output.
 
70
  * @since 2.2.2
71
  * @return string Stored rendered output (if 'rendered' argument is set to false).
72
  */
@@ -76,6 +83,7 @@ abstract class CMB2_Type_Base {
76
 
77
  /**
78
  * Handles parsing and filtering attributes while preserving any passed in via field config.
 
79
  * @since 1.1.0
80
  * @param string $element Element for filter
81
  * @param array $type_defaults Type default arguments
@@ -94,6 +102,7 @@ abstract class CMB2_Type_Base {
94
  /**
95
  * Filter attributes for a field type.
96
  * The dynamic portion of the hook name, $element, refers to the field type.
 
97
  * @since 1.1.0
98
  * @param array $args The array of attribute arguments.
99
  * @param array $type_defaults The array of default values.
@@ -107,6 +116,7 @@ abstract class CMB2_Type_Base {
107
 
108
  /**
109
  * Fall back to CMB2_Types methods
 
110
  * @param string $field
111
  * @throws Exception Throws an exception if the field is invalid.
112
  * @return mixed
@@ -126,6 +136,7 @@ abstract class CMB2_Type_Base {
126
 
127
  /**
128
  * Magic getter for our object.
 
129
  * @param string $field
130
  * @throws Exception Throws an exception if the field is invalid.
131
  * @return mixed
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  abstract class CMB2_Type_Base {
14
 
15
  /**
16
  * The CMB2_Types object
17
+ *
18
  * @var CMB2_Types
19
  */
20
  public $types;
21
 
22
  /**
23
  * Arguments for use in the render method
24
+ *
25
  * @var array
26
  */
27
  public $args;
28
 
29
  /**
30
  * Rendered output (if 'rendered' argument is set to false)
31
+ *
32
  * @var string
33
  */
34
  protected $rendered = '';
35
 
36
  /**
37
  * Constructor
38
+ *
39
  * @since 2.2.2
40
  * @param CMB2_Types $types
41
  * @param array $args
48
 
49
  /**
50
  * Handles rendering this field type.
51
+ *
52
  * @since 2.2.2
53
  * @return string Rendered field type.
54
  */
56
 
57
  /**
58
  * Stores the rendered field output.
59
+ *
60
  * @since 2.2.2
61
  * @param string|CMB2_Type_Base $rendered Rendered output.
62
  * @return string|CMB2_Type_Base Rendered output or this object.
73
 
74
  /**
75
  * Returns the stored rendered field output.
76
+ *
77
  * @since 2.2.2
78
  * @return string Stored rendered output (if 'rendered' argument is set to false).
79
  */
83
 
84
  /**
85
  * Handles parsing and filtering attributes while preserving any passed in via field config.
86
+ *
87
  * @since 1.1.0
88
  * @param string $element Element for filter
89
  * @param array $type_defaults Type default arguments
102
  /**
103
  * Filter attributes for a field type.
104
  * The dynamic portion of the hook name, $element, refers to the field type.
105
+ *
106
  * @since 1.1.0
107
  * @param array $args The array of attribute arguments.
108
  * @param array $type_defaults The array of default values.
116
 
117
  /**
118
  * Fall back to CMB2_Types methods
119
+ *
120
  * @param string $field
121
  * @throws Exception Throws an exception if the field is invalid.
122
  * @return mixed
136
 
137
  /**
138
  * Magic getter for our object.
139
+ *
140
  * @param string $field
141
  * @throws Exception Throws an exception if the field is invalid.
142
  * @return mixed
vendor/CMB2/includes/types/CMB2_Type_Checkbox.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Checkbox extends CMB2_Type_Text {
14
 
@@ -32,7 +32,7 @@ class CMB2_Type_Checkbox extends CMB2_Type_Text {
32
  $this->is_checked = $is_checked;
33
  }
34
 
35
- public function render() {
36
  $defaults = array(
37
  'type' => 'checkbox',
38
  'class' => 'cmb2-option cmb2-list',
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Checkbox extends CMB2_Type_Text {
14
 
32
  $this->is_checked = $is_checked;
33
  }
34
 
35
+ public function render( $args = array() ) {
36
  $defaults = array(
37
  'type' => 'checkbox',
38
  'class' => 'cmb2-option cmb2-list',
vendor/CMB2/includes/types/CMB2_Type_Colorpicker.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Colorpicker extends CMB2_Type_Text {
14
 
@@ -32,27 +32,48 @@ class CMB2_Type_Colorpicker extends CMB2_Type_Text {
32
  $this->value = $value ? $value : $this->value;
33
  }
34
 
35
- public function render() {
36
  $meta_value = $this->value ? $this->value : $this->field->escaped_value();
37
 
38
  $hex_color = '(([a-fA-F0-9]){3}){1,2}$';
39
  if ( preg_match( '/^' . $hex_color . '/i', $meta_value ) ) {
40
  // Value is just 123abc, so prepend #
41
  $meta_value = '#' . $meta_value;
42
- } elseif ( ! preg_match( '/^#' . $hex_color . '/i', $meta_value ) ) {
43
- // Value doesn't match #123abc, so sanitize to just #
 
 
 
 
 
44
  $meta_value = '#';
45
  }
46
 
47
  wp_enqueue_style( 'wp-color-picker' );
48
 
49
- $args = wp_parse_args( $this->args, array(
50
- 'class' => 'cmb2-colorpicker cmb2-text-small',
51
- 'value' => $meta_value,
52
- 'js_dependencies' => 'wp-color-picker',
53
  ) );
54
 
 
 
 
 
 
 
 
 
 
 
 
55
  return parent::render( $args );
56
  }
57
 
 
 
 
 
 
 
 
58
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Colorpicker extends CMB2_Type_Text {
14
 
32
  $this->value = $value ? $value : $this->value;
33
  }
34
 
35
+ public function render( $args = array() ) {
36
  $meta_value = $this->value ? $this->value : $this->field->escaped_value();
37
 
38
  $hex_color = '(([a-fA-F0-9]){3}){1,2}$';
39
  if ( preg_match( '/^' . $hex_color . '/i', $meta_value ) ) {
40
  // Value is just 123abc, so prepend #
41
  $meta_value = '#' . $meta_value;
42
+ } elseif (
43
+ // If value doesn't match #123abc...
44
+ ! preg_match( '/^#' . $hex_color . '/i', $meta_value )
45
+ // And value doesn't match rgba()...
46
+ && 0 !== strpos( trim( $meta_value ), 'rgba' )
47
+ ) {
48
+ // Then sanitize to just #.
49
  $meta_value = '#';
50
  }
51
 
52
  wp_enqueue_style( 'wp-color-picker' );
53
 
54
+ $args = wp_parse_args( $args, array(
55
+ 'class' => 'cmb2-text-small',
 
 
56
  ) );
57
 
58
+ $args['class'] .= ' cmb2-colorpicker';
59
+ $args['value'] = $meta_value;
60
+ $args['js_dependencies'] = array( 'wp-color-picker' );
61
+
62
+ if ( $this->field->options( 'alpha' ) ) {
63
+ $args['js_dependencies'][] = 'wp-color-picker-alpha';
64
+ $args['data-alpha'] = 'true';
65
+ }
66
+
67
+ $args = wp_parse_args( $this->args, $args );
68
+
69
  return parent::render( $args );
70
  }
71
 
72
+ public static function dequeue_rgba_colorpicker_script() {
73
+ if ( wp_script_is( 'jw-cmb2-rgba-picker-js', 'enqueued' ) ) {
74
+ wp_dequeue_script( 'jw-cmb2-rgba-picker-js' );
75
+ CMB2_JS::register_colorpicker_alpha( true );
76
+ }
77
+ }
78
+
79
  }
vendor/CMB2/includes/types/CMB2_Type_File.php CHANGED
@@ -6,102 +6,163 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_File extends CMB2_Type_File_Base {
14
 
15
- public function render() {
16
- $field = $this->field;
17
- $meta_value = $field->escaped_value();
18
- $options = (array) $field->options();
19
- $img_size = $field->args( 'preview_size' );
20
- $query_args = $field->args( 'query_args' );
21
- $output = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
  // get an array of image size meta data, fallback to 'large'
24
- $img_size_data = parent::get_image_size_data( $img_size, 'large' );
 
 
 
25
 
26
- // if options array and 'url' => false, then hide the url field
27
- $input_type = array_key_exists( 'url', $options ) && false === $options['url'] ? 'hidden' : 'text';
28
 
29
  $output .= parent::render( array(
30
- 'type' => $input_type,
31
- 'class' => 'cmb2-upload-file regular-text',
32
- 'size' => 45,
 
 
 
33
  'desc' => '',
34
  'data-previewsize' => sprintf( '[%d,%d]', $img_size_data['width'], $img_size_data['height'] ),
35
  'data-sizename' => $img_size_data['name'],
36
- 'data-queryargs' => ! empty( $query_args ) ? json_encode( $query_args ) : '',
37
- 'js_dependencies' => 'media-editor',
38
  ) );
39
 
40
- $output .= sprintf( '<input class="cmb2-upload-button button" type="button" value="%s" />', esc_attr( $this->_text( 'add_upload_file_text', esc_html__( 'Add or Upload File', 'cmb2' ) ) ) );
41
-
42
- $output .= $this->_desc( true );
 
 
 
 
 
 
 
 
 
43
 
44
- $cached_id = $this->_id();
 
45
 
46
- // Reset field args for attachment ID
47
- $args = array(
48
- // If we're looking at a file in a group, we need to get the non-prefixed id
49
- 'id' => ( $field->group ? $field->args( '_id' ) : $cached_id ) . '_id',
50
- );
51
 
52
- // And get new field object
53
- // (Need to set it to the types field property)
54
- $this->types->field = $field = $field->get_field_clone( $args );
55
 
56
- // Get ID value
57
- $_id_value = $field->escaped_value( 'absint' );
58
 
59
- // We don't want to output "0" as a value.
60
- if ( ! $_id_value ) {
61
- $_id_value = '';
 
 
62
  }
63
 
64
- // If there is no ID saved yet, try to get it from the url
65
- if ( $meta_value && ! $_id_value ) {
66
- $_id_value = CMB2_Utils::image_id_from_url( esc_url_raw( $meta_value ) );
 
 
 
67
  }
68
 
69
- $output .= parent::render( array(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  'type' => 'hidden',
71
  'class' => 'cmb2-upload-file-id',
72
- 'value' => $_id_value,
73
  'desc' => '',
74
  ) );
75
- $output .= '<div id="' . $this->_id( '-status' ) . '" class="cmb2-media-status">';
76
- if ( ! empty( $meta_value ) ) {
77
 
78
- if ( $this->is_valid_img_ext( $meta_value ) ) {
 
 
79
 
80
- if ( $_id_value ) {
81
- $image = wp_get_attachment_image( $_id_value, $img_size, null, array( 'class' => 'cmb-file-field-image' ) );
82
- } else {
83
- $image = '<img style="max-width: ' . absint( $img_size_data['width'] ) . 'px; width: 100%;" src="' . $meta_value . '" class="cmb-file-field-image" alt="" />';
84
- }
85
 
86
- $output .= $this->img_status_output( array(
87
- 'image' => $image,
88
- 'tag' => 'div',
89
- 'cached_id' => $cached_id,
90
- ) );
91
 
92
- } else {
 
 
 
 
93
 
94
- $output .= $this->file_status_output( array(
95
- 'value' => $meta_value,
96
- 'tag' => 'div',
97
- 'cached_id' => $cached_id,
98
- ) );
99
 
100
- }
 
 
 
 
101
  }
102
- $output .= '</div>';
103
 
104
- return $this->rendered( $output );
 
 
 
 
 
 
 
105
  }
106
 
107
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_File extends CMB2_Type_File_Base {
14
 
15
+ /**
16
+ * Handles outputting an 'file' field
17
+ *
18
+ * @param array $args Override arguments
19
+ * @return string Form input element
20
+ */
21
+ public function render( $args = array() ) {
22
+ $args = empty( $args ) ? $this->args : $args;
23
+ $field = $this->field;
24
+ $options = (array) $field->options();
25
+
26
+ $a = $this->args = $this->parse_args( 'file', array(
27
+ 'class' => 'cmb2-upload-file regular-text',
28
+ 'id' => $this->_id(),
29
+ 'name' => $this->_name(),
30
+ 'value' => $field->escaped_value(),
31
+ 'id_value' => null,
32
+ 'desc' => $this->_desc( true ),
33
+ 'size' => 45,
34
+ 'js_dependencies' => 'media-editor',
35
+ 'preview_size' => $field->args( 'preview_size' ),
36
+ 'query_args' => $field->args( 'query_args' ),
37
+
38
+ // if options array and 'url' => false, then hide the url field
39
+ 'type' => array_key_exists( 'url', $options ) && false === $options['url']
40
+ ? 'hidden'
41
+ : 'text',
42
+ ), $args );
43
 
44
  // get an array of image size meta data, fallback to 'large'
45
+ $this->args['img_size_data'] = $img_size_data = parent::get_image_size_data(
46
+ $a['preview_size'],
47
+ 'large'
48
+ );
49
 
50
+ $output = '';
 
51
 
52
  $output .= parent::render( array(
53
+ 'type' => $a['type'],
54
+ 'class' => $a['class'],
55
+ 'value' => $a['value'],
56
+ 'id' => $a['id'],
57
+ 'name' => $a['name'],
58
+ 'size' => $a['size'],
59
  'desc' => '',
60
  'data-previewsize' => sprintf( '[%d,%d]', $img_size_data['width'], $img_size_data['height'] ),
61
  'data-sizename' => $img_size_data['name'],
62
+ 'data-queryargs' => ! empty( $a['query_args'] ) ? json_encode( $a['query_args'] ) : '',
63
+ 'js_dependencies' => $a['js_dependencies'],
64
  ) );
65
 
66
+ // Now remove the data-iterator attribute if it exists.
67
+ // (Possible if being used within a custom field)
68
+ // This is not elegant, but compensates for CMB2_Types::_id
69
+ // automagically & inelegantly adding the data-iterator attribute.
70
+ // Single responsibility principle? pffft
71
+ $parts = explode( '"', $this->args['id'] );
72
+ $this->args['id'] = $parts[0];
73
+
74
+ $output .= sprintf(
75
+ '<input class="cmb2-upload-button button-secondary" type="button" value="%1$s" />',
76
+ esc_attr( $this->_text( 'add_upload_file_text', esc_html__( 'Add or Upload File', 'cmb2' ) ) )
77
+ );
78
 
79
+ $output .= $a['desc'];
80
+ $output .= $this->get_id_field_output();
81
 
82
+ $output .= '<div id="' . $field->id() . '-status" class="cmb2-media-status">';
83
+ if ( ! empty( $a['value'] ) ) {
84
+ $output .= $this->get_file_preview_output();
85
+ }
86
+ $output .= '</div>';
87
 
88
+ return $this->rendered( $output );
89
+ }
 
90
 
91
+ public function get_file_preview_output() {
92
+ if ( ! $this->is_valid_img_ext( $this->args['value'] ) ) {
93
 
94
+ return $this->file_status_output( array(
95
+ 'value' => $this->args['value'],
96
+ 'tag' => 'div',
97
+ 'cached_id' => $this->args['id'],
98
+ ) );
99
  }
100
 
101
+ if ( $this->args['id_value'] ) {
102
+ $image = wp_get_attachment_image( $this->args['id_value'], $this->args['preview_size'], null, array(
103
+ 'class' => 'cmb-file-field-image',
104
+ ) );
105
+ } else {
106
+ $image = '<img style="max-width: ' . absint( $this->args['img_size_data']['width'] ) . 'px; width: 100%;" src="' . $this->args['value'] . '" class="cmb-file-field-image" alt="" />';
107
  }
108
 
109
+ return $this->img_status_output( array(
110
+ 'image' => $image,
111
+ 'tag' => 'div',
112
+ 'cached_id' => $this->args['id'],
113
+ ) );
114
+ }
115
+
116
+ public function get_id_field_output() {
117
+ $field = $this->field;
118
+
119
+ /*
120
+ * A little bit of magic (tsk tsk) replacing the $this->types->field object,
121
+ * So that the render function is using the proper field object.
122
+ */
123
+ $this->types->field = $this->get_id_field();
124
+
125
+ $output = parent::render( array(
126
  'type' => 'hidden',
127
  'class' => 'cmb2-upload-file-id',
128
+ 'value' => $this->types->field->value,
129
  'desc' => '',
130
  ) );
 
 
131
 
132
+ // We need to put the original field object back
133
+ // or other fields in a custom field will be broken.
134
+ $this->types->field = $field;
135
 
136
+ return $output;
137
+ }
 
 
 
138
 
139
+ public function get_id_field() {
 
 
 
 
140
 
141
+ // reset field args for attachment id
142
+ $args = array(
143
+ // if we're looking at a file in a group, we need to get the non-prefixed id
144
+ 'id' => ( $this->field->group ? $this->field->args( '_id' ) : $this->args['id'] ) . '_id',
145
+ );
146
 
147
+ // and get new field object
148
+ // (need to set it to the types field property)
149
+ $id_field = $this->field->get_field_clone( $args );
 
 
150
 
151
+ $id_value = absint( null !== $this->args['id_value'] ? $this->args['id_value'] : $id_field->escaped_value() );
152
+
153
+ // we don't want to output "0" as a value.
154
+ if ( ! $id_value ) {
155
+ $id_value = '';
156
  }
 
157
 
158
+ // if there is no id saved yet, try to get it from the url
159
+ if ( $this->args['value'] && ! $id_value ) {
160
+ $id_value = cmb2_utils::image_id_from_url( esc_url_raw( $this->args['value'] ) );
161
+ }
162
+
163
+ $id_field->value = $id_value;
164
+
165
+ return $id_field;
166
  }
167
 
168
  }
vendor/CMB2/includes/types/CMB2_Type_File_Base.php CHANGED
@@ -6,14 +6,15 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_File_Base extends CMB2_Type_Text {
14
 
15
  /**
16
  * Determines if a file has a valid image extension
 
17
  * @since 1.0.0
18
  * @param string $file File url
19
  * @return bool Whether file has a valid image extension
@@ -49,8 +50,9 @@ class CMB2_Type_File_Base extends CMB2_Type_Text {
49
 
50
  /**
51
  * file/file_list image wrap
 
52
  * @since 2.0.2
53
- * @param array $args Array of arguments for output
54
  * @return string Image wrap output
55
  */
56
  public function img_status_output( $args ) {
@@ -65,8 +67,9 @@ class CMB2_Type_File_Base extends CMB2_Type_Text {
65
 
66
  /**
67
  * file/file_list file wrap
 
68
  * @since 2.0.2
69
- * @param array $args Array of arguments for output
70
  * @return string File wrap output
71
  */
72
  public function file_status_output( $args ) {
@@ -84,6 +87,7 @@ class CMB2_Type_File_Base extends CMB2_Type_Text {
84
 
85
  /**
86
  * Outputs the file/file_list underscore Javascript templates in the footer.
 
87
  * @since 2.2.4
88
  * @return void
89
  */
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_File_Base extends CMB2_Type_Text {
14
 
15
  /**
16
  * Determines if a file has a valid image extension
17
+ *
18
  * @since 1.0.0
19
  * @param string $file File url
20
  * @return bool Whether file has a valid image extension
50
 
51
  /**
52
  * file/file_list image wrap
53
+ *
54
  * @since 2.0.2
55
+ * @param array $args Array of arguments for output
56
  * @return string Image wrap output
57
  */
58
  public function img_status_output( $args ) {
67
 
68
  /**
69
  * file/file_list file wrap
70
+ *
71
  * @since 2.0.2
72
+ * @param array $args Array of arguments for output
73
  * @return string File wrap output
74
  */
75
  public function file_status_output( $args ) {
87
 
88
  /**
89
  * Outputs the file/file_list underscore Javascript templates in the footer.
90
+ *
91
  * @since 2.2.4
92
  * @return void
93
  */
vendor/CMB2/includes/types/CMB2_Type_File_List.php CHANGED
@@ -6,13 +6,13 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_File_List extends CMB2_Type_File_Base {
14
 
15
- public function render() {
16
  $field = $this->field;
17
  $meta_value = $field->escaped_value();
18
  $name = $this->_name();
@@ -26,7 +26,9 @@ class CMB2_Type_File_List extends CMB2_Type_File_Base {
26
  $output .= parent::render( array(
27
  'type' => 'hidden',
28
  'class' => 'cmb2-upload-file cmb2-upload-list',
29
- 'size' => 45, 'desc' => '', 'value' => '',
 
 
30
  'data-previewsize' => sprintf( '[%d,%d]', $img_size_data['width'], $img_size_data['height'] ),
31
  'data-sizename' => $img_size_data['name'],
32
  'data-queryargs' => ! empty( $query_args ) ? json_encode( $query_args ) : '',
@@ -35,9 +37,10 @@ class CMB2_Type_File_List extends CMB2_Type_File_Base {
35
 
36
  $output .= parent::render( array(
37
  'type' => 'button',
38
- 'class' => 'cmb2-upload-button button cmb2-upload-list',
39
  'value' => esc_attr( $this->_text( 'add_upload_files_text', esc_html__( 'Add or Upload Files', 'cmb2' ) ) ),
40
- 'name' => '', 'id' => '',
 
41
  ) );
42
 
43
  $output .= '<ul id="' . $this->_id( '-status' ) . '" class="cmb2-media-status cmb-attach-list">';
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_File_List extends CMB2_Type_File_Base {
14
 
15
+ public function render( $args = array() ) {
16
  $field = $this->field;
17
  $meta_value = $field->escaped_value();
18
  $name = $this->_name();
26
  $output .= parent::render( array(
27
  'type' => 'hidden',
28
  'class' => 'cmb2-upload-file cmb2-upload-list',
29
+ 'size' => 45,
30
+ 'desc' => '',
31
+ 'value' => '',
32
  'data-previewsize' => sprintf( '[%d,%d]', $img_size_data['width'], $img_size_data['height'] ),
33
  'data-sizename' => $img_size_data['name'],
34
  'data-queryargs' => ! empty( $query_args ) ? json_encode( $query_args ) : '',
37
 
38
  $output .= parent::render( array(
39
  'type' => 'button',
40
+ 'class' => 'cmb2-upload-button button-secondary cmb2-upload-list',
41
  'value' => esc_attr( $this->_text( 'add_upload_files_text', esc_html__( 'Add or Upload Files', 'cmb2' ) ) ),
42
+ 'name' => '',
43
+ 'id' => '',
44
  ) );
45
 
46
  $output .= '<ul id="' . $this->_id( '-status' ) . '" class="cmb2-media-status cmb-attach-list">';
vendor/CMB2/includes/types/CMB2_Type_Multi_Base.php CHANGED
@@ -6,16 +6,17 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  abstract class CMB2_Type_Multi_Base extends CMB2_Type_Base {
14
 
15
  /**
16
  * Generates html for an option element
 
17
  * @since 1.1.0
18
- * @param array $args Arguments array containing value, label, and checked boolean
19
  * @return string Generated option element html
20
  */
21
  public function select_option( $args = array() ) {
@@ -24,9 +25,10 @@ abstract class CMB2_Type_Multi_Base extends CMB2_Type_Base {
24
 
25
  /**
26
  * Generates html for list item with input
 
27
  * @since 1.1.0
28
- * @param array $args Override arguments
29
- * @param int $i Iterator value
30
  * @return string Gnerated list item html
31
  */
32
  public function list_input( $args = array(), $i ) {
@@ -44,9 +46,10 @@ abstract class CMB2_Type_Multi_Base extends CMB2_Type_Base {
44
 
45
  /**
46
  * Generates html for list item with checkbox input
 
47
  * @since 1.1.0
48
- * @param array $args Override arguments
49
- * @param int $i Iterator value
50
  * @return string Gnerated list item html
51
  */
52
  public function list_input_checkbox( $args, $i ) {
@@ -60,8 +63,9 @@ abstract class CMB2_Type_Multi_Base extends CMB2_Type_Base {
60
 
61
  /**
62
  * Generates html for concatenated items
 
63
  * @since 1.1.0
64
- * @param array $args Optional arguments
65
  * @return string Concatenated html items
66
  */
67
  public function concat_items( $args = array() ) {
@@ -74,15 +78,14 @@ abstract class CMB2_Type_Multi_Base extends CMB2_Type_Base {
74
  ? $field->escaped_value()
75
  : $field->get_default();
76
 
77
- if ( is_numeric( $value ) ) {
78
- $value = intval( $value );
79
- }
80
 
81
- $concatenated_items = ''; $i = 1;
 
82
 
83
  $options = array();
84
  if ( $option_none = $field->args( 'show_option_none' ) ) {
85
- $options[ '' ] = $option_none;
86
  }
87
  $options = $options + (array) $field->options();
88
  foreach ( $options as $opt_value => $opt_label ) {
@@ -94,7 +97,7 @@ abstract class CMB2_Type_Multi_Base extends CMB2_Type_Base {
94
  $a['label'] = $opt_label;
95
 
96
  // Check if this option is the value of the input
97
- if ( $value === $opt_value ) {
98
  $a['checked'] = 'checked';
99
  }
100
 
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  abstract class CMB2_Type_Multi_Base extends CMB2_Type_Base {
14
 
15
  /**
16
  * Generates html for an option element
17
+ *
18
  * @since 1.1.0
19
+ * @param array $args Arguments array containing value, label, and checked boolean
20
  * @return string Generated option element html
21
  */
22
  public function select_option( $args = array() ) {
25
 
26
  /**
27
  * Generates html for list item with input
28
+ *
29
  * @since 1.1.0
30
+ * @param array $args Override arguments
31
+ * @param int $i Iterator value
32
  * @return string Gnerated list item html
33
  */
34
  public function list_input( $args = array(), $i ) {
46
 
47
  /**
48
  * Generates html for list item with checkbox input
49
+ *
50
  * @since 1.1.0
51
+ * @param array $args Override arguments
52
+ * @param int $i Iterator value
53
  * @return string Gnerated list item html
54
  */
55
  public function list_input_checkbox( $args, $i ) {
63
 
64
  /**
65
  * Generates html for concatenated items
66
+ *
67
  * @since 1.1.0
68
+ * @param array $args Optional arguments
69
  * @return string Concatenated html items
70
  */
71
  public function concat_items( $args = array() ) {
78
  ? $field->escaped_value()
79
  : $field->get_default();
80
 
81
+ $value = CMB2_Utils::normalize_if_numeric( $value );
 
 
82
 
83
+ $concatenated_items = '';
84
+ $i = 1;
85
 
86
  $options = array();
87
  if ( $option_none = $field->args( 'show_option_none' ) ) {
88
+ $options[''] = $option_none;
89
  }
90
  $options = $options + (array) $field->options();
91
  foreach ( $options as $opt_value => $opt_label ) {
97
  $a['label'] = $opt_label;
98
 
99
  // Check if this option is the value of the input
100
+ if ( $value === CMB2_Utils::normalize_if_numeric( $opt_value ) ) {
101
  $a['checked'] = 'checked';
102
  }
103
 
vendor/CMB2/includes/types/CMB2_Type_Multicheck.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Multicheck extends CMB2_Type_Radio {
14
 
@@ -19,7 +19,7 @@ class CMB2_Type_Multicheck extends CMB2_Type_Radio {
19
  */
20
  public $type = 'checkbox';
21
 
22
- public function render() {
23
  $classes = false === $this->field->args( 'select_all_button' )
24
  ? 'cmb2-checkbox-list no-select-all cmb2-list'
25
  : 'cmb2-checkbox-list cmb2-list';
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Multicheck extends CMB2_Type_Radio {
14
 
19
  */
20
  public $type = 'checkbox';
21
 
22
+ public function render( $args = array() ) {
23
  $classes = false === $this->field->args( 'select_all_button' )
24
  ? 'cmb2-checkbox-list no-select-all cmb2-list'
25
  : 'cmb2-checkbox-list cmb2-list';
vendor/CMB2/includes/types/CMB2_Type_Oembed.php CHANGED
@@ -6,13 +6,13 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Oembed extends CMB2_Type_Text {
14
 
15
- public function render() {
16
  $field = $this->field;
17
 
18
  $meta_value = trim( $field->escaped_value() );
@@ -22,7 +22,9 @@ class CMB2_Type_Oembed extends CMB2_Type_Text {
22
  'url' => $field->escaped_value(),
23
  'object_id' => $field->object_id,
24
  'object_type' => $field->object_type,
25
- 'oembed_args' => array( 'width' => '640' ),
 
 
26
  'field_id' => $this->_id(),
27
  ) )
28
  : '';
@@ -33,7 +35,7 @@ class CMB2_Type_Oembed extends CMB2_Type_Text {
33
  'data-objecttype' => $field->object_type,
34
  ) )
35
  . '<p class="cmb-spinner spinner"></p>'
36
- . '<div id="'. $this->_id( '-status' ). '" class="cmb2-media-status ui-helper-clearfix embed_wrap">' . $oembed . '</div>';
37
  }
38
 
39
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Oembed extends CMB2_Type_Text {
14
 
15
+ public function render( $args = array() ) {
16
  $field = $this->field;
17
 
18
  $meta_value = trim( $field->escaped_value() );
22
  'url' => $field->escaped_value(),
23
  'object_id' => $field->object_id,
24
  'object_type' => $field->object_type,
25
+ 'oembed_args' => array(
26
+ 'width' => '640',
27
+ ),
28
  'field_id' => $this->_id(),
29
  ) )
30
  : '';
35
  'data-objecttype' => $field->object_type,
36
  ) )
37
  . '<p class="cmb-spinner spinner"></p>'
38
+ . '<div id="' . $this->_id( '-status' ) . '" class="cmb2-media-status ui-helper-clearfix embed_wrap">' . $oembed . '</div>';
39
  }
40
 
41
  }
vendor/CMB2/includes/types/CMB2_Type_Picker_Base.php CHANGED
@@ -6,17 +6,18 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  abstract class CMB2_Type_Picker_Base extends CMB2_Type_Text {
14
 
15
  /**
16
  * Parse the picker attributes.
 
17
  * @since 2.2.0
18
- * @param string $arg 'date' or 'time'
19
- * @param array $args Optional arguments to modify (else use $this->field->args['attributes'])
20
  * @return array Array of field attributes
21
  */
22
  public function parse_picker_options( $arg = 'date', $args = array() ) {
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  abstract class CMB2_Type_Picker_Base extends CMB2_Type_Text {
14
 
15
  /**
16
  * Parse the picker attributes.
17
+ *
18
  * @since 2.2.0
19
+ * @param string $arg 'date' or 'time'
20
+ * @param array $args Optional arguments to modify (else use $this->field->args['attributes'])
21
  * @return array Array of field attributes
22
  */
23
  public function parse_picker_options( $arg = 'date', $args = array() ) {
vendor/CMB2/includes/types/CMB2_Type_Radio.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Radio extends CMB2_Type_Multi_Base {
14
 
@@ -37,7 +37,7 @@ class CMB2_Type_Radio extends CMB2_Type_Multi_Base {
37
  'class' => 'cmb2-radio-list cmb2-list',
38
  'options' => $this->concat_items( array(
39
  'label' => 'test',
40
- 'method' => 'list_input'
41
  ) ),
42
  'desc' => $this->_desc( true ),
43
  ) );
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Radio extends CMB2_Type_Multi_Base {
14
 
37
  'class' => 'cmb2-radio-list cmb2-list',
38
  'options' => $this->concat_items( array(
39
  'label' => 'test',
40
+ 'method' => 'list_input',
41
  ) ),
42
  'desc' => $this->_desc( true ),
43
  ) );
vendor/CMB2/includes/types/CMB2_Type_Select.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Select extends CMB2_Type_Multi_Base {
14
 
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Select extends CMB2_Type_Multi_Base {
14
 
vendor/CMB2/includes/types/CMB2_Type_Select_Timezone.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Select_Timezone extends CMB2_Type_Select {
14
 
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Select_Timezone extends CMB2_Type_Select {
14
 
vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Base.php CHANGED
@@ -6,14 +6,15 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  abstract class CMB2_Type_Taxonomy_Base extends CMB2_Type_Multi_Base {
14
 
15
  /**
16
  * Checks if we can get a post object, and if so, uses `get_the_terms` which utilizes caching.
 
17
  * @since 1.0.2
18
  * @return mixed Array of terms on success
19
  */
@@ -32,6 +33,7 @@ abstract class CMB2_Type_Taxonomy_Base extends CMB2_Type_Multi_Base {
32
 
33
  /**
34
  * Gets the term objects for the terms stored via options boxes.
 
35
  * @since 2.2.4
36
  * @return mixed Array of terms on success
37
  */
@@ -51,6 +53,7 @@ abstract class CMB2_Type_Taxonomy_Base extends CMB2_Type_Multi_Base {
51
 
52
  /**
53
  * For non-post objects, wraps the call to wp_get_object_terms with transient caching.
 
54
  * @since 2.2.4
55
  * @return mixed Array of terms on success
56
  */
@@ -75,13 +78,80 @@ abstract class CMB2_Type_Taxonomy_Base extends CMB2_Type_Multi_Base {
75
  /**
76
  * Wrapper for `get_terms` to account for changes in WP 4.6 where taxonomy is expected
77
  * as part of the arguments.
 
78
  * @since 2.2.2
79
  * @return mixed Array of terms on success
80
  */
81
  public function get_terms() {
82
  return CMB2_Utils::wp_at_least( '4.5.0' )
83
- ? get_terms( array( 'taxonomy' => $this->field->args( 'taxonomy' ), 'hide_empty' => false ) )
 
 
 
84
  : get_terms( $this->field->args( 'taxonomy' ), 'hide_empty=0' );
85
  }
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  abstract class CMB2_Type_Taxonomy_Base extends CMB2_Type_Multi_Base {
14
 
15
  /**
16
  * Checks if we can get a post object, and if so, uses `get_the_terms` which utilizes caching.
17
+ *
18
  * @since 1.0.2
19
  * @return mixed Array of terms on success
20
  */
33
 
34
  /**
35
  * Gets the term objects for the terms stored via options boxes.
36
+ *
37
  * @since 2.2.4
38
  * @return mixed Array of terms on success
39
  */
53
 
54
  /**
55
  * For non-post objects, wraps the call to wp_get_object_terms with transient caching.
56
+ *
57
  * @since 2.2.4
58
  * @return mixed Array of terms on success
59
  */
78
  /**
79
  * Wrapper for `get_terms` to account for changes in WP 4.6 where taxonomy is expected
80
  * as part of the arguments.
81
+ *
82
  * @since 2.2.2
83
  * @return mixed Array of terms on success
84
  */
85
  public function get_terms() {
86
  return CMB2_Utils::wp_at_least( '4.5.0' )
87
+ ? get_terms( wp_parse_args( $this->field->prop( 'query_args', array() ), array(
88
+ 'taxonomy' => $this->field->args( 'taxonomy' ),
89
+ 'hide_empty' => false,
90
+ ) ) )
91
  : get_terms( $this->field->args( 'taxonomy' ), 'hide_empty=0' );
92
  }
93
 
94
+ protected function no_terms_result( $error, $tag = 'li' ) {
95
+ if ( is_wp_error( $error ) ) {
96
+ $message = $error->get_error_message();
97
+ $data = 'data-error="' . esc_attr( $error->get_error_code() ) . '"';
98
+ } else {
99
+ $message = $this->_text( 'no_terms_text', esc_html__( 'No terms', 'cmb2' ) );
100
+ $data = '';
101
+ }
102
+
103
+ $this->field->args['select_all_button'] = false;
104
+
105
+ return sprintf( '<%3$s><label %1$s>%2$s</label></%3$s>', $data, esc_html( $message ), $tag );
106
+ }
107
+
108
+ public function get_object_term_or_default() {
109
+ $saved_terms = $this->get_object_terms();
110
+
111
+ return is_wp_error( $saved_terms ) || empty( $saved_terms )
112
+ ? $this->field->get_default()
113
+ : array_shift( $saved_terms )->slug;
114
+ }
115
+
116
+ /**
117
+ * Takes a list of all tax terms and outputs.
118
+ *
119
+ * @since 2.2.5
120
+ *
121
+ * @param array $all_terms Array of all terms.
122
+ * @param array|string $saved Array of terms set to the object, or single term slug.
123
+ *
124
+ * @return string List of terms.
125
+ */
126
+ protected function loop_terms( $all_terms, $saved_terms ) {
127
+ return '';
128
+ }
129
+
130
+ /**
131
+ * Build children hierarchy.
132
+ *
133
+ * @param object $parent_term The parent term object.
134
+ * @param array|string $saved Array of terms set to the object, or single term slug.
135
+ *
136
+ * @return string List of terms.
137
+ */
138
+ protected function build_children( $parent_term, $saved ) {
139
+ if ( empty( $parent_term->term_id ) ) {
140
+ return '';
141
+ }
142
+
143
+ $this->parent = $parent_term->term_id;
144
+
145
+ $terms = $this->get_terms();
146
+ $options = '';
147
+
148
+ if ( ! empty( $terms ) && is_array( $terms ) ) {
149
+ $options = '<li class="cmb2-indented-hierarchy"><ul>';
150
+ $options .= $this->loop_terms( $terms, $saved );
151
+ $options .= '</ul></li>';
152
+ }
153
+
154
+ return $options;
155
+ }
156
+
157
  }
vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Multicheck.php CHANGED
@@ -6,49 +6,71 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Taxonomy_Multicheck extends CMB2_Type_Taxonomy_Base {
 
14
 
15
  public function render() {
16
- $field = $this->field;
17
- $names = $this->get_object_terms();
18
-
19
- $saved_terms = is_wp_error( $names ) || empty( $names )
20
- ? $field->get_default()
21
- : wp_list_pluck( $names, 'slug' );
22
- $terms = $this->get_terms();
23
- $name = $this->_name() . '[]';
24
- $options = ''; $i = 1;
25
-
26
- if ( ! $terms ) {
27
- $options .= sprintf( '<li><label>%s</label></li>', esc_html( $this->_text( 'no_terms_text', esc_html__( 'No terms', 'cmb2' ) ) ) );
28
- } else {
29
-
30
- foreach ( $terms as $term ) {
31
- $args = array(
32
- 'value' => $term->slug,
33
- 'label' => $term->name,
34
- 'type' => 'checkbox',
35
- 'name' => $name,
36
- );
37
-
38
- if ( is_array( $saved_terms ) && in_array( $term->slug, $saved_terms ) ) {
39
- $args['checked'] = 'checked';
40
- }
41
- $options .= $this->list_input( $args, $i );
42
- $i++;
43
- }
44
  }
45
 
46
- $classes = false === $field->args( 'select_all_button' )
47
- ? 'cmb2-checkbox-list no-select-all cmb2-list'
48
- : 'cmb2-checkbox-list cmb2-list';
49
 
50
- return $this->rendered(
51
- $this->types->radio( array( 'class' => $classes, 'options' => $options ), 'taxonomy_multicheck' )
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  }
 
 
 
 
 
 
 
 
 
 
54
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Taxonomy_Multicheck extends CMB2_Type_Taxonomy_Base {
14
+ protected $counter = 0;
15
 
16
  public function render() {
17
+ return $this->rendered(
18
+ $this->types->radio( array(
19
+ 'class' => $this->get_wrapper_classes(),
20
+ 'options' => $this->get_term_options(),
21
+ ), 'taxonomy_multicheck' )
22
+ );
23
+ }
24
+
25
+ protected function get_term_options() {
26
+ $all_terms = $this->get_terms();
27
+
28
+ if ( ! $all_terms || is_wp_error( $all_terms ) ) {
29
+ return $this->no_terms_result( $all_terms );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  }
31
 
32
+ return $this->loop_terms( $all_terms, $this->get_object_term_or_default() );
33
+ }
 
34
 
35
+ protected function loop_terms( $all_terms, $saved_terms ) {
36
+ $options = '';
37
+ foreach ( $all_terms as $term ) {
38
+ $options .= $this->list_term_input( $term, $saved_terms );
39
+ }
40
+
41
+ return $options;
42
+ }
43
+
44
+ protected function list_term_input( $term, $saved_terms ) {
45
+ $args = array(
46
+ 'value' => $term->slug,
47
+ 'label' => $term->name,
48
+ 'type' => 'checkbox',
49
+ 'name' => $this->_name() . '[]',
50
  );
51
+
52
+ if ( is_array( $saved_terms ) && in_array( $term->slug, $saved_terms ) ) {
53
+ $args['checked'] = 'checked';
54
+ }
55
+
56
+ return $this->list_input( $args, ++$this->counter );
57
+ }
58
+
59
+ public function get_object_term_or_default() {
60
+ $saved_terms = $this->get_object_terms();
61
+
62
+ return is_wp_error( $saved_terms ) || empty( $saved_terms )
63
+ ? $this->field->get_default()
64
+ : wp_list_pluck( $saved_terms, 'slug' );
65
  }
66
+
67
+ protected function get_wrapper_classes() {
68
+ $classes = 'cmb2-checkbox-list cmb2-list';
69
+ if ( false === $this->field->args( 'select_all_button' ) ) {
70
+ $classes .= ' no-select-all';
71
+ }
72
+
73
+ return $classes;
74
+ }
75
+
76
  }
vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Multicheck_Hierarchical.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB taxonomy_multicheck field type
4
+ *
5
+ * @since 2.2.2
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ */
13
+ class CMB2_Type_Taxonomy_Multicheck_Hierarchical extends CMB2_Type_Taxonomy_Multicheck {
14
+ protected $parent = 0;
15
+
16
+ public function render() {
17
+ return $this->rendered(
18
+ $this->types->radio( array(
19
+ 'class' => $this->get_wrapper_classes(),
20
+ 'options' => $this->get_term_options(),
21
+ ), 'taxonomy_multicheck_hierarchical' )
22
+ );
23
+ }
24
+
25
+ protected function list_term_input( $term, $saved_terms ) {
26
+ $options = parent::list_term_input( $term, $saved_terms );
27
+ $children = $this->build_children( $term, $saved_terms );
28
+
29
+ if ( ! empty( $children ) ) {
30
+ $options .= $children;
31
+ }
32
+
33
+ return $options;
34
+ }
35
+
36
+ public function get_terms() {
37
+ return CMB2_Utils::wp_at_least( '4.5.0' )
38
+ ? get_terms( wp_parse_args( $this->field->prop( 'query_args', array() ), array(
39
+ 'taxonomy' => $this->field->args( 'taxonomy' ),
40
+ 'hide_empty' => false,
41
+ 'parent' => $this->parent,
42
+ ) ) )
43
+ : get_terms( $this->field->args( 'taxonomy' ), 'hide_empty=0&parent=0' );
44
+ }
45
+
46
+ }
vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Radio.php CHANGED
@@ -6,76 +6,87 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Taxonomy_Radio extends CMB2_Type_Taxonomy_Base {
 
14
 
15
  public function render() {
16
- $field = $this->field;
17
- $names = $this->get_object_terms();
18
-
19
- $saved_term = is_wp_error( $names ) || empty( $names ) ? $this->field->get_default() : array_shift( $names )->slug;
20
- $terms = $this->get_terms();
21
- $options = '';
22
- $i = 1;
23
-
24
- if ( ! $terms ) {
25
- $options .= sprintf( '<li><label>%s</label></li>', esc_html( $this->_text( 'no_terms_text', esc_html__( 'No terms', 'cmb2' ) ) ) );
26
- } else {
27
- $option_none = $field->args( 'show_option_none' );
28
- if ( ! empty( $option_none ) ) {
29
-
30
- $field_id = $this->_id();
31
-
32
- /**
33
- * Default (option-none) taxonomy-radio value.
34
- *
35
- * @since 1.3.0
36
- *
37
- * @param string $option_none_value Default (option-none) taxonomy-radio value.
38
- */
39
- $option_none_value = apply_filters( 'cmb2_taxonomy_radio_default_value', '' );
40
-
41
- /**
42
- * Default (option-none) taxonomy-radio value.
43
- *
44
- * The dynamic portion of the hook name, $field_id, refers to the field id attribute.
45
- *
46
- * @since 1.3.0
47
- *
48
- * @param string $option_none_value Default (option-none) taxonomy-radio value.
49
- */
50
- $option_none_value = apply_filters( "cmb2_taxonomy_radio_{$field_id}_default_value", $option_none_value );
51
-
52
- $args = array(
53
- 'value' => $option_none_value,
54
- 'label' => $option_none,
55
- );
56
- if ( $saved_term == $option_none_value ) {
57
- $args['checked'] = 'checked';
58
- }
59
- $options .= $this->list_input( $args, $i );
60
- $i++;
61
- }
62
-
63
- foreach ( $terms as $term ) {
64
- $args = array(
65
- 'value' => $term->slug,
66
- 'label' => $term->name,
67
- );
68
-
69
- if ( $saved_term == $term->slug ) {
70
- $args['checked'] = 'checked';
71
- }
72
- $options .= $this->list_input( $args, $i );
73
- $i++;
74
- }
75
  }
76
 
77
- return $this->rendered(
78
- $this->types->radio( array( 'options' => $options ), 'taxonomy_radio' )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  );
 
 
 
 
 
 
80
  }
 
81
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Taxonomy_Radio extends CMB2_Type_Taxonomy_Base {
14
+ protected $counter = 0;
15
 
16
  public function render() {
17
+ return $this->rendered(
18
+ $this->types->radio( array(
19
+ 'options' => $this->get_term_options(),
20
+ ), 'taxonomy_radio' )
21
+ );
22
+ }
23
+
24
+ protected function get_term_options() {
25
+ $all_terms = $this->get_terms();
26
+
27
+ if ( ! $all_terms || is_wp_error( $all_terms ) ) {
28
+ return $this->no_terms_result( $all_terms );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  }
30
 
31
+ $saved_term = $this->get_object_term_or_default();
32
+ $option_none = $this->field->args( 'show_option_none' );
33
+ $options = '';
34
+
35
+ if ( ! empty( $option_none ) ) {
36
+
37
+ $field_id = $this->_id();
38
+
39
+ /**
40
+ * Default (option-none) taxonomy-radio value.
41
+ *
42
+ * @since 1.3.0
43
+ *
44
+ * @param string $option_none_value Default (option-none) taxonomy-radio value.
45
+ */
46
+ $option_none_value = apply_filters( 'cmb2_taxonomy_radio_default_value', '' );
47
+
48
+ /**
49
+ * Default (option-none) taxonomy-radio value.
50
+ *
51
+ * The dynamic portion of the hook name, $field_id, refers to the field id attribute.
52
+ *
53
+ * @since 1.3.0
54
+ *
55
+ * @param string $option_none_value Default (option-none) taxonomy-radio value.
56
+ */
57
+ $option_none_value = apply_filters( "cmb2_taxonomy_radio_{$field_id}_default_value", $option_none_value );
58
+
59
+ $options .= $this->list_term_input( (object) array(
60
+ 'slug' => $option_none_value,
61
+ 'name' => $option_none,
62
+ ), $saved_term );
63
+ }
64
+
65
+ $options .= $this->loop_terms( $all_terms, $saved_term );
66
+
67
+ return $options;
68
+ }
69
+
70
+ protected function loop_terms( $all_terms, $saved_term ) {
71
+ $options = '';
72
+ foreach ( $all_terms as $term ) {
73
+ $options .= $this->list_term_input( $term, $saved_term );
74
+ }
75
+
76
+ return $options;
77
+ }
78
+
79
+ protected function list_term_input( $term, $saved_term ) {
80
+ $args = array(
81
+ 'value' => $term->slug,
82
+ 'label' => $term->name,
83
  );
84
+
85
+ if ( $saved_term == $term->slug ) {
86
+ $args['checked'] = 'checked';
87
+ }
88
+
89
+ return $this->list_input( $args, ++$this->counter );
90
  }
91
+
92
  }
vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Radio_Hierarchical.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * CMB taxonomy_multicheck field type
4
+ *
5
+ * @since 2.2.2
6
+ *
7
+ * @category WordPress_Plugin
8
+ * @package CMB2
9
+ * @author CMB2 team
10
+ * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
+ */
13
+ class CMB2_Type_Taxonomy_Radio_Hierarchical extends CMB2_Type_Taxonomy_Radio {
14
+ protected $parent = 0;
15
+
16
+ public function render() {
17
+ return $this->rendered(
18
+ $this->types->radio( array(
19
+ 'options' => $this->get_term_options(),
20
+ ), 'taxonomy_radio_hierarchical' )
21
+ );
22
+ }
23
+
24
+ protected function list_term_input( $term, $saved_term ) {
25
+ $options = parent::list_term_input( $term, $saved_term );
26
+ $children = $this->build_children( $term, $saved_term );
27
+
28
+ if ( ! empty( $children ) ) {
29
+ $options .= $children;
30
+ }
31
+
32
+ return $options;
33
+ }
34
+
35
+ public function get_terms() {
36
+ return CMB2_Utils::wp_at_least( '4.5.0' )
37
+ ? get_terms( wp_parse_args( $this->field->prop( 'query_args', array() ), array(
38
+ 'taxonomy' => $this->field->args( 'taxonomy' ),
39
+ 'hide_empty' => false,
40
+ 'parent' => $this->parent,
41
+ ) ) )
42
+ : get_terms( $this->field->args( 'taxonomy' ), 'hide_empty=0&parent=0' );
43
+ }
44
+
45
+ }
vendor/CMB2/includes/types/CMB2_Type_Taxonomy_Select.php CHANGED
@@ -6,19 +6,22 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Taxonomy_Select extends CMB2_Type_Taxonomy_Base {
14
 
15
  public function render() {
16
- $names = $this->get_object_terms();
17
 
18
- $saved_term = is_wp_error( $names ) || empty( $names ) ? $this->field->get_default() : array_shift( $names )->slug;
19
- $terms = $this->get_terms();
20
- $options = '';
 
 
21
  $option_none = $this->field->args( 'show_option_none' );
 
22
 
23
  if ( ! empty( $option_none ) ) {
24
 
@@ -51,18 +54,26 @@ class CMB2_Type_Taxonomy_Select extends CMB2_Type_Taxonomy_Base {
51
  ) );
52
  }
53
 
54
- if ( ! empty( $terms ) ) {
55
- foreach ( $terms as $term ) {
56
- $options .= $this->select_option( array(
57
- 'label' => $term->name,
58
- 'value' => $term->slug,
59
- 'checked' => $saved_term === $term->slug,
60
- ) );
61
- }
62
- }
63
 
64
  return $this->rendered(
65
- $this->types->select( array( 'options' => $options ) )
 
 
66
  );
67
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  }
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Taxonomy_Select extends CMB2_Type_Taxonomy_Base {
14
 
15
  public function render() {
16
+ $all_terms = $this->get_terms();
17
 
18
+ if ( ! $all_terms || is_wp_error( $all_terms ) ) {
19
+ return $this->no_terms_result( $all_terms, 'strong' );
20
+ }
21
+
22
+ $saved_term = $this->get_object_term_or_default();
23
  $option_none = $this->field->args( 'show_option_none' );
24
+ $options = '';
25
 
26
  if ( ! empty( $option_none ) ) {
27
 
54
  ) );
55
  }
56
 
57
+ $options .= $this->loop_terms( $all_terms, $saved_term );
 
 
 
 
 
 
 
 
58
 
59
  return $this->rendered(
60
+ $this->types->select( array(
61
+ 'options' => $options,
62
+ ) )
63
  );
64
  }
65
+
66
+ protected function loop_terms( $all_terms, $saved_term ) {
67
+ $options = '';
68
+
69
+ foreach ( $all_terms as $term ) {
70
+ $options .= $this->select_option( array(
71
+ 'label' => $term->name,
72
+ 'value' => $term->slug,
73
+ 'checked' => $saved_term === $term->slug,
74
+ ) );
75
+ }
76
+
77
+ return $options;
78
+ }
79
  }
vendor/CMB2/includes/types/CMB2_Type_Text.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Text extends CMB2_Type_Base {
14
 
@@ -34,8 +34,9 @@ class CMB2_Type_Text extends CMB2_Type_Base {
34
 
35
  /**
36
  * Handles outputting an 'input' element
 
37
  * @since 1.1.0
38
- * @param array $args Override arguments
39
  * @return string Form input element
40
  */
41
  public function render( $args = array() ) {
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Text extends CMB2_Type_Base {
14
 
34
 
35
  /**
36
  * Handles outputting an 'input' element
37
+ *
38
  * @since 1.1.0
39
+ * @param array $args Override arguments
40
  * @return string Form input element
41
  */
42
  public function render( $args = array() ) {
vendor/CMB2/includes/types/CMB2_Type_Text_Date.php CHANGED
@@ -6,13 +6,13 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Text_Date extends CMB2_Type_Picker_Base {
14
 
15
- public function render() {
16
  $args = $this->parse_args( 'text_date', array(
17
  'class' => 'cmb2-text-small cmb2-datepicker',
18
  'value' => $this->field->get_timestamp_format(),
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Text_Date extends CMB2_Type_Picker_Base {
14
 
15
+ public function render( $args = array() ) {
16
  $args = $this->parse_args( 'text_date', array(
17
  'class' => 'cmb2-text-small cmb2-datepicker',
18
  'value' => $this->field->get_timestamp_format(),
vendor/CMB2/includes/types/CMB2_Type_Text_Datetime_Timestamp.php CHANGED
@@ -6,13 +6,13 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Text_Datetime_Timestamp extends CMB2_Type_Picker_Base {
14
 
15
- public function render() {
16
  $field = $this->field;
17
 
18
  $args = wp_parse_args( $this->args, array(
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Text_Datetime_Timestamp extends CMB2_Type_Picker_Base {
14
 
15
+ public function render( $args = array() ) {
16
  $field = $this->field;
17
 
18
  $args = wp_parse_args( $this->args, array(
vendor/CMB2/includes/types/CMB2_Type_Text_Datetime_Timestamp_Timezone.php CHANGED
@@ -6,13 +6,13 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Text_Datetime_Timestamp_Timezone extends CMB2_Type_Base {
14
 
15
- public function render() {
16
  $field = $this->field;
17
 
18
  $args = wp_parse_args( $this->args, array(
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Text_Datetime_Timestamp_Timezone extends CMB2_Type_Base {
14
 
15
+ public function render( $args = array() ) {
16
  $field = $this->field;
17
 
18
  $args = wp_parse_args( $this->args, array(
vendor/CMB2/includes/types/CMB2_Type_Text_Time.php CHANGED
@@ -6,13 +6,13 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Text_Time extends CMB2_Type_Text_Date {
14
 
15
- public function render() {
16
  $this->args = $this->parse_picker_options( 'time', wp_parse_args( $this->args, array(
17
  'class' => 'cmb2-timepicker text-time',
18
  'value' => $this->field->get_timestamp_format( 'time_format' ),
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Text_Time extends CMB2_Type_Text_Date {
14
 
15
+ public function render( $args = array() ) {
16
  $this->args = $this->parse_picker_options( 'time', wp_parse_args( $this->args, array(
17
  'class' => 'cmb2-timepicker text-time',
18
  'value' => $this->field->get_timestamp_format( 'time_format' ),
vendor/CMB2/includes/types/CMB2_Type_Textarea.php CHANGED
@@ -6,16 +6,17 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Textarea extends CMB2_Type_Base {
14
 
15
  /**
16
  * Handles outputting an 'textarea' element
 
17
  * @since 1.1.0
18
- * @param array $args Override arguments
19
  * @return string Form textarea element
20
  */
21
  public function render( $args = array() ) {
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Textarea extends CMB2_Type_Base {
14
 
15
  /**
16
  * Handles outputting an 'textarea' element
17
+ *
18
  * @since 1.1.0
19
+ * @param array $args Override arguments
20
  * @return string Form textarea element
21
  */
22
  public function render( $args = array() ) {
vendor/CMB2/includes/types/CMB2_Type_Textarea_Code.php CHANGED
@@ -6,19 +6,20 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Textarea_Code extends CMB2_Type_Textarea {
14
 
15
  /**
16
  * Handles outputting an 'textarea' element
 
17
  * @since 1.1.0
18
- * @param array $args Override arguments
19
  * @return string Form textarea element
20
  */
21
- public function render() {
22
  return $this->rendered(
23
  sprintf( '<pre>%s', parent::render( array(
24
  'class' => 'cmb2-textarea-code',
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Textarea_Code extends CMB2_Type_Textarea {
14
 
15
  /**
16
  * Handles outputting an 'textarea' element
17
+ *
18
  * @since 1.1.0
19
+ * @param array $args Override arguments
20
  * @return string Form textarea element
21
  */
22
+ public function render( $args = array() ) {
23
  return $this->rendered(
24
  sprintf( '<pre>%s', parent::render( array(
25
  'class' => 'cmb2-textarea-code',
vendor/CMB2/includes/types/CMB2_Type_Title.php CHANGED
@@ -6,14 +6,15 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  */
13
  class CMB2_Type_Title extends CMB2_Type_Base {
14
 
15
  /**
16
  * Handles outputting an 'title' element
 
17
  * @return string Heading element
18
  */
19
  public function render() {
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  */
13
  class CMB2_Type_Title extends CMB2_Type_Base {
14
 
15
  /**
16
  * Handles outputting an 'title' element
17
+ *
18
  * @return string Heading element
19
  */
20
  public function render() {
vendor/CMB2/includes/types/CMB2_Type_Wysiwyg.php CHANGED
@@ -6,9 +6,9 @@
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
- * @author WebDevStudios
10
  * @license GPL-2.0+
11
- * @link http://webdevstudios.com
12
  *
13
  * @method string _id()
14
  * @method string _desc()
@@ -20,7 +20,7 @@ class CMB2_Type_Wysiwyg extends CMB2_Type_Textarea {
20
  * @since 1.1.0
21
  * @return string Form wysiwyg element
22
  */
23
- public function render() {
24
  $field = $this->field;
25
  $a = $this->parse_args( 'wysiwyg', array(
26
  'id' => $this->_id(),
@@ -76,7 +76,7 @@ class CMB2_Type_Wysiwyg extends CMB2_Type_Textarea {
76
  'cmb2_n_' . $group_id . $field_id,
77
  'cmb2_v_' . $group_id . $field_id,
78
  'cmb2_i_' . $group_id . $field_id,
79
- ), array(
80
  '{{ data.name }}',
81
  '{{{ data.value }}}',
82
  '{{ data.id }}',
@@ -85,7 +85,7 @@ class CMB2_Type_Wysiwyg extends CMB2_Type_Textarea {
85
  // And put the editor instance in a JS template wrapper.
86
  echo '<script type="text/template" id="tmpl-cmb2-wysiwyg-' . $group_id . '-' . $field_id . '">';
87
  // Need to wrap the template in a wrapper div w/ specific data attributes which will be used when adding/removing rows.
88
- echo '<div class="cmb2-wysiwyg-inner-wrap" data-iterator="{{ data.iterator }}" data-groupid="'. $group_id .'" data-id="'. $field_id .'">'. $editor .'</div>';
89
  echo '</script>';
90
  }
91
 
6
  *
7
  * @category WordPress_Plugin
8
  * @package CMB2
9
+ * @author CMB2 team
10
  * @license GPL-2.0+
11
+ * @link https://cmb2.io
12
  *
13
  * @method string _id()
14
  * @method string _desc()
20
  * @since 1.1.0
21
  * @return string Form wysiwyg element
22
  */
23
+ public function render( $args = array() ) {
24
  $field = $this->field;
25
  $a = $this->parse_args( 'wysiwyg', array(
26
  'id' => $this->_id(),
76
  'cmb2_n_' . $group_id . $field_id,
77
  'cmb2_v_' . $group_id . $field_id,
78
  'cmb2_i_' . $group_id . $field_id,
79
+ ), array(
80
  '{{ data.name }}',
81
  '{{{ data.value }}}',
82
  '{{ data.id }}',
85
  // And put the editor instance in a JS template wrapper.
86
  echo '<script type="text/template" id="tmpl-cmb2-wysiwyg-' . $group_id . '-' . $field_id . '">';
87
  // Need to wrap the template in a wrapper div w/ specific data attributes which will be used when adding/removing rows.
88
+ echo '<div class="cmb2-wysiwyg-inner-wrap" data-iterator="{{ data.iterator }}" data-groupid="' . $group_id . '" data-id="' . $field_id . '">' . $editor . '</div>';
89
  echo '</script>';
90
  }
91
 
vendor/CMB2/index.php CHANGED
@@ -1,2 +1 @@
1
- <?php
2
- // Silence is golden
1
+ <?php // Silence is golden.
 
vendor/CMB2/init.php CHANGED
@@ -1,23 +1,27 @@
1
  <?php
2
  /**
 
 
3
  * @category WordPress_Plugin
4
  * @package CMB2
5
- * @author WebDevStudios
6
  * @license GPL-2.0+
7
- * @link http://webdevstudios.com
8
  *
9
  * Plugin Name: CMB2
10
- * Plugin URI: https://github.com/WebDevStudios/CMB2
11
  * Description: CMB2 will create metaboxes and forms with custom fields that will blow your mind.
12
- * Author: WebDevStudios
13
- * Author URI: http://webdevstudios.com
14
- * Contributors: WebDevStudios (@webdevstudios / webdevstudios.com)
15
- * Justin Sternberg (@jtsternberg / dsgnwrks.pro)
 
 
16
  * Jared Atchison (@jaredatch / jaredatchison.com)
17
  * Bill Erickson (@billerickson / billerickson.net)
18
  * Andrew Norcross (@norcross / andrewnorcross.com)
19
  *
20
- * Version: 2.2.4
21
  *
22
  * Text Domain: cmb2
23
  * Domain Path: languages
@@ -27,7 +31,7 @@
27
  * http://www.opensource.org/licenses/gpl-license.php
28
  *
29
  * This is an add-on for WordPress
30
- * http://wordpress.org/
31
  *
32
  * **********************************************************************
33
  * This program is free software; you can redistribute it and/or modify
@@ -42,13 +46,15 @@
42
  * **********************************************************************
43
  */
44
 
45
- /************************************************************************
46
- You should not edit the code below
47
- (or any code in the included files)
48
- or things might explode!
49
- *************************************************************************/
 
 
50
 
51
- if ( ! class_exists( 'CMB2_Bootstrap_224', false ) ) {
52
 
53
  /**
54
  * Handles checking for and loading the newest version of CMB2
@@ -57,18 +63,19 @@ if ( ! class_exists( 'CMB2_Bootstrap_224', false ) ) {
57
  *
58
  * @category WordPress_Plugin
59
  * @package CMB2
60
- * @author WebDevStudios
61
  * @license GPL-2.0+
62
- * @link http://webdevstudios.com
63
  */
64
- class CMB2_Bootstrap_224 {
65
 
66
  /**
67
  * Current version number
 
68
  * @var string
69
  * @since 1.0.0
70
  */
71
- const VERSION = '2.2.4';
72
 
73
  /**
74
  * Current version hook priority.
@@ -77,20 +84,20 @@ if ( ! class_exists( 'CMB2_Bootstrap_224', false ) ) {
77
  * @var int
78
  * @since 2.0.0
79
  */
80
- const PRIORITY = 9977;
81
 
82
  /**
83
- * Single instance of the CMB2_Bootstrap_224 object
84
  *
85
- * @var CMB2_Bootstrap_224
86
  */
87
  public static $single_instance = null;
88
 
89
  /**
90
- * Creates/returns the single instance CMB2_Bootstrap_224 object
91
  *
92
  * @since 2.0.0
93
- * @return CMB2_Bootstrap_224 Single instance object
94
  */
95
  public static function initiate() {
96
  if ( null === self::$single_instance ) {
@@ -141,21 +148,22 @@ if ( ! class_exists( 'CMB2_Bootstrap_224', false ) ) {
141
 
142
  $this->l10ni18n();
143
 
144
- // Include helper functions
145
- require_once 'includes/CMB2_Base.php';
146
- require_once 'includes/CMB2.php';
147
- require_once 'includes/helper-functions.php';
148
 
149
- // Now kick off the class autoloader
150
  spl_autoload_register( 'cmb2_autoload_classes' );
151
 
152
- // Kick the whole thing off
153
- require_once 'bootstrap.php';
154
  cmb2_bootstrap();
155
  }
156
 
157
  /**
158
  * Registers CMB2 text domain path
 
159
  * @since 2.0.0
160
  */
161
  public function l10ni18n() {
@@ -181,6 +189,6 @@ if ( ! class_exists( 'CMB2_Bootstrap_224', false ) ) {
181
  }
182
 
183
  // Make it so...
184
- CMB2_Bootstrap_224::initiate();
185
 
186
- }
1
  <?php
2
  /**
3
+ * The initation loader for CMB2, and the main plugin file.
4
+ *
5
  * @category WordPress_Plugin
6
  * @package CMB2
7
+ * @author CMB2 team
8
  * @license GPL-2.0+
9
+ * @link https://cmb2.io
10
  *
11
  * Plugin Name: CMB2
12
+ * Plugin URI: https://github.com/CMB2/CMB2
13
  * Description: CMB2 will create metaboxes and forms with custom fields that will blow your mind.
14
+ * Author: CMB2 team
15
+ * Author URI: https://cmb2.io
16
+ * Contributors: Justin Sternberg (@jtsternberg / dsgnwrks.pro)
17
+ * WebDevStudios (@webdevstudios / webdevstudios.com)
18
+ * Zao (zao.is)
19
+ * Human Made (@humanmadeltd / hmn.md)
20
  * Jared Atchison (@jaredatch / jaredatchison.com)
21
  * Bill Erickson (@billerickson / billerickson.net)
22
  * Andrew Norcross (@norcross / andrewnorcross.com)
23
  *
24
+ * Version: 2.3.0
25
  *
26
  * Text Domain: cmb2
27
  * Domain Path: languages
31
  * http://www.opensource.org/licenses/gpl-license.php
32
  *
33
  * This is an add-on for WordPress
34
+ * https://wordpress.org/
35
  *
36
  * **********************************************************************
37
  * This program is free software; you can redistribute it and/or modify
46
  * **********************************************************************
47
  */
48
 
49
+ /**
50
+ * *********************************************************************
51
+ * You should not edit the code below
52
+ * (or any code in the included files)
53
+ * or things might explode!
54
+ * ***********************************************************************
55
+ */
56
 
57
+ if ( ! class_exists( 'CMB2_Bootstrap_230', false ) ) {
58
 
59
  /**
60
  * Handles checking for and loading the newest version of CMB2
63
  *
64
  * @category WordPress_Plugin
65
  * @package CMB2
66
+ * @author CMB2 team
67
  * @license GPL-2.0+
68
+ * @link https://cmb2.io
69
  */
70
+ class CMB2_Bootstrap_230 {
71
 
72
  /**
73
  * Current version number
74
+ *
75
  * @var string
76
  * @since 1.0.0
77
  */
78
+ const VERSION = '2.3.0';
79
 
80
  /**
81
  * Current version hook priority.
84
  * @var int
85
  * @since 2.0.0
86
  */
87
+ const PRIORITY = 9969;
88
 
89
  /**
90
+ * Single instance of the CMB2_Bootstrap_230 object
91
  *
92
+ * @var CMB2_Bootstrap_230
93
  */
94
  public static $single_instance = null;
95
 
96
  /**
97
+ * Creates/returns the single instance CMB2_Bootstrap_230 object
98
  *
99
  * @since 2.0.0
100
+ * @return CMB2_Bootstrap_230 Single instance object
101
  */
102
  public static function initiate() {
103
  if ( null === self::$single_instance ) {
148
 
149
  $this->l10ni18n();
150
 
151
+ // Include helper functions.
152
+ require_once CMB2_DIR . 'includes/CMB2_Base.php';
153
+ require_once CMB2_DIR . 'includes/CMB2.php';
154
+ require_once CMB2_DIR . 'includes/helper-functions.php';
155
 
156
+ // Now kick off the class autoloader.
157
  spl_autoload_register( 'cmb2_autoload_classes' );
158
 
159
+ // Kick the whole thing off.
160
+ require_once( cmb2_dir( 'bootstrap.php' ) );
161
  cmb2_bootstrap();
162
  }
163
 
164
  /**
165
  * Registers CMB2 text domain path
166
+ *
167
  * @since 2.0.0
168
  */
169
  public function l10ni18n() {
189
  }
190
 
191
  // Make it so...
192
+ CMB2_Bootstrap_230::initiate();
193
 
194
+ }// End if().
vendor/CMB2/js/cmb2-wysiwyg.js CHANGED
@@ -275,18 +275,25 @@ window.CMB2.wysiwyg = window.CMB2.wysiwyg || {};
275
  return false;
276
  }
277
 
 
 
278
  $.extend( data, getGroupData( data ) );
279
 
280
  initOptions( data );
281
 
282
  $toReplace.replaceWith( data.template( data ) );
283
 
284
- window.tinyMCE.init( tinyMCEPreInit.mceInit[ data.id ] );
285
- if ( 'function' === typeof window.quicktags ) {
 
 
 
286
  window.quicktags( tinyMCEPreInit.qtInit[ data.id ] );
287
  }
288
 
289
- $( document.getElementById( data.id ) ).parents( '.wp-editor-wrap' ).removeClass( 'html-active' ).addClass( 'tmce-active' );
 
 
290
 
291
  if ( false !== buttonsInit && 'undefined' !== typeof window.QTags ) {
292
  window.QTags._buttonsInit();
@@ -304,6 +311,10 @@ window.CMB2.wysiwyg = window.CMB2.wysiwyg || {};
304
  * @return {void}
305
  */
306
  wysiwyg.destroy = function( id ) {
 
 
 
 
307
 
308
  // The editor might not be initialized yet. But we need to destroy it once it is.
309
  var editor = tinyMCE.get( id );
275
  return false;
276
  }
277
 
278
+ var mceActive = window.cmb2_l10.user_can_richedit && window.tinyMCE;
279
+ var qtActive = 'function' === typeof window.quicktags;
280
  $.extend( data, getGroupData( data ) );
281
 
282
  initOptions( data );
283
 
284
  $toReplace.replaceWith( data.template( data ) );
285
 
286
+ if ( mceActive ) {
287
+ window.tinyMCE.init( tinyMCEPreInit.mceInit[ data.id ] );
288
+ }
289
+
290
+ if ( qtActive ) {
291
  window.quicktags( tinyMCEPreInit.qtInit[ data.id ] );
292
  }
293
 
294
+ if ( mceActive ) {
295
+ $( document.getElementById( data.id ) ).parents( '.wp-editor-wrap' ).removeClass( 'html-active' ).addClass( 'tmce-active' );
296
+ }
297
 
298
  if ( false !== buttonsInit && 'undefined' !== typeof window.QTags ) {
299
  window.QTags._buttonsInit();
311
  * @return {void}
312
  */
313
  wysiwyg.destroy = function( id ) {
314
+ if ( ! window.cmb2_l10.user_can_richedit || ! window.tinyMCE ) {
315
+ // Nothing to see here.
316
+ return;
317
+ }
318
 
319
  // The editor might not be initialized yet. But we need to destroy it once it is.
320
  var editor = tinyMCE.get( id );
vendor/CMB2/js/cmb2.js CHANGED
@@ -1,13 +1,10 @@
1
  /**
2
  * Controls the behaviours of custom metabox fields.
3
  *
4
- * @author WebDevStudios
5
- * @see https://github.com/WebDevStudios/CMB2
6
  */
7
 
8
- // TODO: fix this.
9
- // JQMIGRATE: jQuery.fn.attr('value') no longer gets properties
10
-
11
  /**
12
  * Custom jQuery for Custom Metaboxes and Fields
13
  */
@@ -64,7 +61,7 @@ window.CMB2 = window.CMB2 || {};
64
  cmb.initPickers( $metabox.find('input[type="text"].cmb2-timepicker'), $metabox.find('input[type="text"].cmb2-datepicker'), $metabox.find('input[type="text"].cmb2-colorpicker') );
65
 
66
  // Insert toggle button into DOM wherever there is multicheck. credit: Genesis Framework
67
- $( '<p><span class="button cmb-multicheck-toggle">' + l10n.strings.check_toggle + '</span></p>' ).insertBefore( '.cmb2-checkbox-list:not(.no-select-all)' );
68
 
69
  // Make File List drag/drop sortable:
70
  cmb.makeListSortable();
@@ -92,12 +89,12 @@ window.CMB2 = window.CMB2 || {};
92
 
93
  if ( $repeatGroup.length ) {
94
  $repeatGroup
 
95
  .filter('.sortable').each( function() {
96
  // Add sorting arrows
97
- $( this ).find( '.button.cmb-remove-group-row' ).before( '<a class="button cmb-shift-rows move-up alignleft" href="#"><span class="'+ l10n.up_arrow_class +'"></span></a> <a class="button cmb-shift-rows move-down alignleft" href="#"><span class="'+ l10n.down_arrow_class +'"></span></a>' );
98
  })
99
- .on( 'click', '.cmb-shift-rows', cmb.shiftRows )
100
- .on( 'cmb2_add_row', cmb.emptyValue );
101
  }
102
 
103
  // on pageload
@@ -114,15 +111,20 @@ window.CMB2 = window.CMB2 || {};
114
  }
115
 
116
  // Loop repeatable group tables
117
- $( '.cmb-repeatable-group' ).each( function() {
118
  var $table = $( this );
 
 
119
  // Loop repeatable group table rows
120
  $table.find( '.cmb-repeatable-grouping' ).each( function( rowindex ) {
121
  var $row = $( this );
 
122
  // Reset rows iterator
123
  $row.data( 'iterator', rowindex );
124
  // Reset rows title
125
- $row.find( '.cmb-group-title h4' ).text( $table.find( '.cmb-add-group-row' ).data( 'grouptitle' ).replace( '{#}', ( rowindex + 1 ) ) );
 
 
126
  });
127
  });
128
  };
@@ -170,20 +172,20 @@ window.CMB2 = window.CMB2 || {};
170
  cmb.attach_id = isList ? $el.find( 'input[type="hidden"]' ).data( 'id' ) : $td.find( '.cmb2-upload-file-id' ).val();
171
 
172
  if ( cmb.attach_id ) {
173
- cmb._handleMedia( $td.find( 'input.cmb2-upload-file' ).attr('id'), isList, cmb.attach_id );
174
  }
175
  };
176
 
177
- cmb._handleMedia = function( formfield, isList ) {
178
  if ( ! wp ) {
179
  return;
180
  }
181
 
182
- var modal, media, handlers;
183
 
184
  handlers = cmb.mediaHandlers;
185
  media = cmb.media;
186
- media.field = formfield;
187
  media.$field = $id( media.field );
188
  media.fieldData = media.$field.data();
189
  media.previewSize = media.fieldData.previewsize;
@@ -192,13 +194,13 @@ window.CMB2 = window.CMB2 || {};
192
  media.isList = isList;
193
 
194
  // If this field's media frame already exists, reopen it.
195
- if ( media.field in media.frames ) {
196
- return media.frames[ media.field ].open();
197
  }
198
 
199
  // Create the media frame.
200
- media.frames[ media.field ] = modal = wp.media( {
201
- title: cmb.metabox().find('label[for="' + media.field + '"]').text(),
202
  library : media.fieldData.queryargs || {},
203
  button: {
204
  text: l10n.strings[ isList ? 'upload_files' : 'upload_file' ]
@@ -206,13 +208,16 @@ window.CMB2 = window.CMB2 || {};
206
  multiple: isList ? 'add' : false
207
  } );
208
 
 
 
 
209
  cmb.trigger( 'cmb_media_modal_init', media );
210
 
211
  handlers.list = function( selection, returnIt ) {
212
- var data, isImage, mediaItem;
213
 
214
  // Setup our fileGroup array
215
  var fileGroup = [];
 
216
 
217
  if ( ! handlers.list.templates ) {
218
  handlers.list.templates = {
@@ -223,15 +228,12 @@ window.CMB2 = window.CMB2 || {};
223
 
224
  // Loop through each attachment
225
  selection.each( function( attachment ) {
226
- isImage = 'image' === attachment.get( 'type' );
227
-
228
- data = handlers.prepareData( attachment, isImage );
229
 
230
  // Image preview or standard generic output if it's not an image.
231
- mediaItem = handlers.list.templates[ isImage ? 'image' : 'file' ]( data );
232
 
233
  // Add our file to our fileGroup array
234
- fileGroup.push( mediaItem );
235
  });
236
 
237
  if ( ! returnIt ) {
@@ -244,8 +246,6 @@ window.CMB2 = window.CMB2 || {};
244
  };
245
 
246
  handlers.single = function( selection ) {
247
- var attachment, isImage, data, mediaItem;
248
-
249
  if ( ! handlers.single.templates ) {
250
  handlers.single.templates = {
251
  image : wp.template( 'cmb2-single-image' ),
@@ -254,20 +254,24 @@ window.CMB2 = window.CMB2 || {};
254
  }
255
 
256
  // Only get one file from the uploader
257
- attachment = selection.first();
258
 
259
  media.$field.val( attachment.get( 'url' ) );
260
  $id( media.field +'_id' ).val( attachment.get( 'id' ) );
261
 
262
- isImage = 'image' === attachment.get( 'type' );
263
-
264
- data = handlers.prepareData( attachment, isImage );
265
-
266
  // Image preview or standard generic output if it's not an image.
267
- mediaItem = handlers.single.templates[ isImage ? 'image' : 'file' ]( data );
268
 
269
  // add/display our output
270
- media.$field.siblings( '.cmb2-media-status' ).slideDown().html( mediaItem );
 
 
 
 
 
 
 
 
271
  };
272
 
273
  handlers.prepareData = function( data, image ) {
@@ -301,14 +305,16 @@ window.CMB2 = window.CMB2 || {};
301
 
302
  // Get the correct dimensions and url if a named size is set and exists
303
  // fallback to the 'large' size
304
- if ( sizes[ media.sizeName ] ) {
305
- url = sizes[ media.sizeName ].url;
306
- width = sizes[ media.sizeName ].width;
307
- height = sizes[ media.sizeName ].height;
308
- } else if ( sizes.large ) {
309
- url = sizes.large.url;
310
- width = sizes.large.width;
311
- height = sizes.large.height;
 
 
312
  }
313
 
314
  // Fit the image in to the preview size, keeping the correct aspect ratio
@@ -322,6 +328,14 @@ window.CMB2 = window.CMB2 || {};
322
  height = previewH;
323
  }
324
 
 
 
 
 
 
 
 
 
325
  this.set( 'sizeUrl', url );
326
  this.set( 'sizeWidth', width );
327
  this.set( 'sizeHeight', height );
@@ -330,7 +344,7 @@ window.CMB2 = window.CMB2 || {};
330
  };
331
 
332
  handlers.selectFile = function() {
333
- var selection = modal.state().get( 'selection' );
334
  var type = isList ? 'list' : 'single';
335
 
336
  if ( cmb.attach_id && isList ) {
@@ -343,7 +357,7 @@ window.CMB2 = window.CMB2 || {};
343
  };
344
 
345
  handlers.openModal = function() {
346
- var selection = modal.state().get( 'selection' );
347
  var attach;
348
 
349
  if ( ! cmb.attach_id ) {
@@ -358,12 +372,12 @@ window.CMB2 = window.CMB2 || {};
358
  };
359
 
360
  // When a file is selected, run a callback.
361
- modal
362
  .on( 'select', handlers.selectFile )
363
  .on( 'open', handlers.openModal );
364
 
365
  // Finally, open the modal
366
- modal.open();
367
  };
368
 
369
  cmb.handleRemoveMedia = function( evt ) {
@@ -376,8 +390,8 @@ window.CMB2 = window.CMB2 || {};
376
 
377
  cmb.media.field = $this.attr('rel');
378
 
379
- cmb.metabox().find( 'input#' + cmb.media.field ).val('');
380
- cmb.metabox().find( 'input#' + cmb.media.field + '_id' ).val('');
381
  $this.parents('.cmb2-media-status').html('');
382
 
383
  return false;
@@ -387,7 +401,7 @@ window.CMB2 = window.CMB2 || {};
387
  var $elements = $row.find( cmb.repeatUpdate );
388
  if ( group ) {
389
 
390
- var $other = $row.find( '[id]' ).not( cmb.repeatUpdate );
391
 
392
  // Remove extra ajaxed rows
393
  $row.find('.cmb-repeat-table .cmb-repeat-row:not(:first-child)').remove();
@@ -409,21 +423,23 @@ window.CMB2 = window.CMB2 || {};
409
  }
410
  }
411
 
412
- $elements.filter(':checked').prop( 'checked', false );
413
- $elements.filter(':selected').prop( 'selected', false );
 
 
414
 
415
  if ( $row.find('h3.cmb-group-title').length ) {
416
  $row.find( 'h3.cmb-group-title' ).text( $row.data( 'title' ).replace( '{#}', ( cmb.idNumber + 1 ) ) );
417
  }
418
 
419
  $elements.each( function() {
420
- cmb.elReplacements( $( this ), prevNum );
421
  } );
422
 
423
  return cmb;
424
  };
425
 
426
- cmb.elReplacements = function( $newInput, prevNum ) {
427
  var oldFor = $newInput.attr( 'for' );
428
  var oldVal = $newInput.val();
429
  var type = $newInput.prop( 'type' );
@@ -435,24 +451,29 @@ window.CMB2 = window.CMB2 || {};
435
  attrs = { 'for' : oldFor.replace( '_'+ prevNum, '_'+ cmb.idNumber ) };
436
  } else {
437
  var oldName = $newInput.attr( 'name' );
438
- // Replace 'name' attribute key
439
- var newName = oldName ? oldName.replace( '['+ prevNum +']', '['+ cmb.idNumber +']' ) : '';
440
- oldID = $newInput.attr( 'id' );
441
- newID = oldID ? oldID.replace( '_'+ prevNum, '_'+ cmb.idNumber ) : '';
442
- attrs = {
 
 
 
 
 
 
 
 
 
 
 
 
443
  id: newID,
444
- name: newName,
445
- // value: '',
446
- 'data-iterator': cmb.idNumber,
447
  };
448
 
449
  }
450
 
451
- // Clear out old values
452
- if ( undefined !== typeof( oldVal ) && oldVal || checkable ) {
453
- attrs.value = checkable ? checkable : '';
454
- }
455
-
456
  // Clear out textarea values
457
  if ( 'TEXTAREA' === $newInput.prop('tagName') ) {
458
  $newInput.html( '' );
@@ -462,6 +483,10 @@ window.CMB2 = window.CMB2 || {};
462
  $newInput.removeAttr( 'checked' );
463
  }
464
 
 
 
 
 
465
  $newInput
466
  .removeClass( 'hasDatepicker' )
467
  .attr( attrs ).val( checkable ? checkable : '' );
@@ -545,12 +570,6 @@ window.CMB2 = window.CMB2 || {};
545
 
546
  cmb.afterRowInsert( $newRow );
547
 
548
- if ( $table.find('.cmb-repeatable-grouping').length <= 1 ) {
549
- $table.find('.cmb-remove-group-row').prop( 'disabled', true );
550
- } else {
551
- $table.find('.cmb-remove-group-row').prop( 'disabled', false );
552
- }
553
-
554
  cmb.triggerElement( $table, { type: 'cmb2_add_row', group: true }, $newRow );
555
 
556
  };
@@ -574,8 +593,6 @@ window.CMB2 = window.CMB2 || {};
574
 
575
  cmb.triggerElement( $table, { type: 'cmb2_add_row', group: false }, $row );
576
 
577
- $table.find( '.cmb-remove-row-button' ).removeClass( 'button-disabled' );
578
-
579
  };
580
 
581
  cmb.removeGroupRow = function( evt ) {
@@ -586,9 +603,8 @@ window.CMB2 = window.CMB2 || {};
586
  var $parent = $this.parents('.cmb-repeatable-grouping');
587
  var number = $table.find('.cmb-repeatable-grouping').length;
588
 
589
- // Needs to always be at least one group.
590
  if ( number < 2 ) {
591
- return;
592
  }
593
 
594
  cmb.triggerElement( $table, 'cmb2_remove_group_row_start', $this );
@@ -598,12 +614,6 @@ window.CMB2 = window.CMB2 || {};
598
 
599
  $parent.remove();
600
 
601
- if ( number <= 2 ) {
602
- $table.find('.cmb-remove-group-row').prop( 'disabled', true );
603
- } else {
604
- $table.find('.cmb-remove-group-row').prop( 'disabled', false );
605
- }
606
-
607
  cmb.triggerElement( $table, { type: 'cmb2_remove_row', group: true } );
608
 
609
  };
@@ -622,20 +632,25 @@ window.CMB2 = window.CMB2 || {};
622
  var $table = $this.parents('.cmb-repeat-table');
623
  var number = $table.find('.cmb-row').length;
624
 
625
- if ( number > 2 ) {
626
- if ( $parent.hasClass('empty-row') ) {
627
- $parent.prev().addClass( 'empty-row' ).removeClass('cmb-repeat-row');
628
- }
629
- $this.parents('.cmb-repeat-table .cmb-row').remove();
630
- if ( number === 3 ) {
631
- $table.find( '.cmb-remove-row-button' ).addClass( 'button-disabled' );
632
- }
633
-
634
- cmb.triggerElement( $table, { type: 'cmb2_remove_row', group: false } );
635
 
636
- } else {
637
- $this.addClass( 'button-disabled' );
638
  }
 
 
 
 
 
 
 
 
 
 
 
 
639
  };
640
 
641
  cmb.shiftRows = function( evt ) {
@@ -791,7 +806,11 @@ window.CMB2 = window.CMB2 || {};
791
 
792
  options.onClose = function( dateText, inst ) {
793
  // Remove the class when we're done with it (and hide to remove FOUC).
794
- $id( 'ui-datepicker-div' ).removeClass( 'cmb2-element' ).hide();
 
 
 
 
795
 
796
  // Let's be sure to call onClose if it was added
797
  if ( 'function' === typeof existing.onClose ) {
@@ -1019,6 +1038,15 @@ window.CMB2 = window.CMB2 || {};
1019
  $el.trigger( evtName, args );
1020
  };
1021
 
 
 
 
 
 
 
 
 
 
1022
  $( cmb.init );
1023
 
1024
  })(window, document, jQuery, window.CMB2);
1
  /**
2
  * Controls the behaviours of custom metabox fields.
3
  *
4
+ * @author CMB2 team
5
+ * @see https://github.com/CMB2/CMB2
6
  */
7
 
 
 
 
8
  /**
9
  * Custom jQuery for Custom Metaboxes and Fields
10
  */
61
  cmb.initPickers( $metabox.find('input[type="text"].cmb2-timepicker'), $metabox.find('input[type="text"].cmb2-datepicker'), $metabox.find('input[type="text"].cmb2-colorpicker') );
62
 
63
  // Insert toggle button into DOM wherever there is multicheck. credit: Genesis Framework
64
+ $( '<p><span class="button-secondary cmb-multicheck-toggle">' + l10n.strings.check_toggle + '</span></p>' ).insertBefore( '.cmb2-checkbox-list:not(.no-select-all)' );
65
 
66
  // Make File List drag/drop sortable:
67
  cmb.makeListSortable();
89
 
90
  if ( $repeatGroup.length ) {
91
  $repeatGroup
92
+ .on( 'cmb2_add_row', cmb.emptyValue )
93
  .filter('.sortable').each( function() {
94
  // Add sorting arrows
95
+ $( this ).find( '.cmb-remove-group-row-button' ).before( '<a class="button-secondary cmb-shift-rows move-up alignleft" href="#"><span class="'+ l10n.up_arrow_class +'"></span></a> <a class="button-secondary cmb-shift-rows move-down alignleft" href="#"><span class="'+ l10n.down_arrow_class +'"></span></a>' );
96
  })
97
+ .on( 'click', '.cmb-shift-rows', cmb.shiftRows );
 
98
  }
99
 
100
  // on pageload
111
  }
112
 
113
  // Loop repeatable group tables
114
+ $( '.cmb-repeatable-group.repeatable' ).each( function() {
115
  var $table = $( this );
116
+ var groupTitle = $table.find( '.cmb-add-group-row' ).data( 'grouptitle' );
117
+
118
  // Loop repeatable group table rows
119
  $table.find( '.cmb-repeatable-grouping' ).each( function( rowindex ) {
120
  var $row = $( this );
121
+ var $rowTitle = $row.find( 'h3.cmb-group-title' );
122
  // Reset rows iterator
123
  $row.data( 'iterator', rowindex );
124
  // Reset rows title
125
+ if ( $rowTitle.length ) {
126
+ $rowTitle.text( groupTitle.replace( '{#}', ( rowindex + 1 ) ) );
127
+ }
128
  });
129
  });
130
  };
172
  cmb.attach_id = isList ? $el.find( 'input[type="hidden"]' ).data( 'id' ) : $td.find( '.cmb2-upload-file-id' ).val();
173
 
174
  if ( cmb.attach_id ) {
175
+ cmb._handleMedia( $td.find( 'input.cmb2-upload-file' ).attr( 'id' ), isList, cmb.attach_id );
176
  }
177
  };
178
 
179
+ cmb._handleMedia = function( id, isList ) {
180
  if ( ! wp ) {
181
  return;
182
  }
183
 
184
+ var media, handlers;
185
 
186
  handlers = cmb.mediaHandlers;
187
  media = cmb.media;
188
+ media.field = id;
189
  media.$field = $id( media.field );
190
  media.fieldData = media.$field.data();
191
  media.previewSize = media.fieldData.previewsize;
194
  media.isList = isList;
195
 
196
  // If this field's media frame already exists, reopen it.
197
+ if ( id in media.frames ) {
198
+ return media.frames[ id ].open();
199
  }
200
 
201
  // Create the media frame.
202
+ media.frames[ id ] = wp.media( {
203
+ title: cmb.metabox().find('label[for="' + id + '"]').text(),
204
  library : media.fieldData.queryargs || {},
205
  button: {
206
  text: l10n.strings[ isList ? 'upload_files' : 'upload_file' ]
208
  multiple: isList ? 'add' : false
209
  } );
210
 
211
+ // Enable the additional media filters: https://github.com/CMB2/CMB2/issues/873
212
+ media.frames[ id ].states.first().set( 'filterable', 'all' );
213
+
214
  cmb.trigger( 'cmb_media_modal_init', media );
215
 
216
  handlers.list = function( selection, returnIt ) {
 
217
 
218
  // Setup our fileGroup array
219
  var fileGroup = [];
220
+ var attachmentHtml;
221
 
222
  if ( ! handlers.list.templates ) {
223
  handlers.list.templates = {
228
 
229
  // Loop through each attachment
230
  selection.each( function( attachment ) {
 
 
 
231
 
232
  // Image preview or standard generic output if it's not an image.
233
+ attachmentHtml = handlers.getAttachmentHtml( attachment, 'list' );
234
 
235
  // Add our file to our fileGroup array
236
+ fileGroup.push( attachmentHtml );
237
  });
238
 
239
  if ( ! returnIt ) {
246
  };
247
 
248
  handlers.single = function( selection ) {
 
 
249
  if ( ! handlers.single.templates ) {
250
  handlers.single.templates = {
251
  image : wp.template( 'cmb2-single-image' ),
254
  }
255
 
256
  // Only get one file from the uploader
257
+ var attachment = selection.first();
258
 
259
  media.$field.val( attachment.get( 'url' ) );
260
  $id( media.field +'_id' ).val( attachment.get( 'id' ) );
261
 
 
 
 
 
262
  // Image preview or standard generic output if it's not an image.
263
+ var attachmentHtml = handlers.getAttachmentHtml( attachment, 'single' );
264
 
265
  // add/display our output
266
+ media.$field.siblings( '.cmb2-media-status' ).slideDown().html( attachmentHtml );
267
+ };
268
+
269
+ handlers.getAttachmentHtml = function( attachment, templatesId ) {
270
+ var isImage = 'image' === attachment.get( 'type' );
271
+ var data = handlers.prepareData( attachment, isImage );
272
+
273
+ // Image preview or standard generic output if it's not an image.
274
+ return handlers[ templatesId ].templates[ isImage ? 'image' : 'file' ]( data );
275
  };
276
 
277
  handlers.prepareData = function( data, image ) {
305
 
306
  // Get the correct dimensions and url if a named size is set and exists
307
  // fallback to the 'large' size
308
+ if ( sizes ) {
309
+ if ( sizes[ media.sizeName ] ) {
310
+ url = sizes[ media.sizeName ].url;
311
+ width = sizes[ media.sizeName ].width;
312
+ height = sizes[ media.sizeName ].height;
313
+ } else if ( sizes.large ) {
314
+ url = sizes.large.url;
315
+ width = sizes.large.width;
316
+ height = sizes.large.height;
317
+ }
318
  }
319
 
320
  // Fit the image in to the preview size, keeping the correct aspect ratio
328
  height = previewH;
329
  }
330
 
331
+ if ( ! width ) {
332
+ width = previewW;
333
+ }
334
+
335
+ if ( ! height ) {
336
+ height = 'svg' === this.get( 'filename' ).split( '.' ).pop() ? '100%' : previewH;
337
+ }
338
+
339
  this.set( 'sizeUrl', url );
340
  this.set( 'sizeWidth', width );
341
  this.set( 'sizeHeight', height );
344
  };
345
 
346
  handlers.selectFile = function() {
347
+ var selection = media.frames[ id ].state().get( 'selection' );
348
  var type = isList ? 'list' : 'single';
349
 
350
  if ( cmb.attach_id && isList ) {
357
  };
358
 
359
  handlers.openModal = function() {
360
+ var selection = media.frames[ id ].state().get( 'selection' );
361
  var attach;
362
 
363
  if ( ! cmb.attach_id ) {
372
  };
373
 
374
  // When a file is selected, run a callback.
375
+ media.frames[ id ]
376
  .on( 'select', handlers.selectFile )
377
  .on( 'open', handlers.openModal );
378
 
379
  // Finally, open the modal
380
+ media.frames[ id ].open();
381
  };
382
 
383
  cmb.handleRemoveMedia = function( evt ) {
390
 
391
  cmb.media.field = $this.attr('rel');
392
 
393
+ cmb.metabox().find( document.getElementById( cmb.media.field ) ).val('');
394
+ cmb.metabox().find( document.getElementById( cmb.media.field + '_id' ) ).val('');
395
  $this.parents('.cmb2-media-status').html('');
396
 
397
  return false;
401
  var $elements = $row.find( cmb.repeatUpdate );
402
  if ( group ) {
403
 
404
+ var $other = $row.find( '[id]' ).not( cmb.repeatUpdate );
405
 
406
  // Remove extra ajaxed rows
407
  $row.find('.cmb-repeat-table .cmb-repeat-row:not(:first-child)').remove();
423
  }
424
  }
425
 
426
+ $elements.filter( ':checked' ).removeAttr( 'checked' );
427
+ $elements.find( ':checked' ).removeAttr( 'checked' );
428
+ $elements.filter( ':selected' ).removeAttr( 'selected' );
429
+ $elements.find( ':selected' ).removeAttr( 'selected', false );
430
 
431
  if ( $row.find('h3.cmb-group-title').length ) {
432
  $row.find( 'h3.cmb-group-title' ).text( $row.data( 'title' ).replace( '{#}', ( cmb.idNumber + 1 ) ) );
433
  }
434
 
435
  $elements.each( function() {
436
+ cmb.elReplacements( $( this ), prevNum, group );
437
  } );
438
 
439
  return cmb;
440
  };
441
 
442
+ cmb.elReplacements = function( $newInput, prevNum, group ) {
443
  var oldFor = $newInput.attr( 'for' );
444
  var oldVal = $newInput.val();
445
  var type = $newInput.prop( 'type' );
451
  attrs = { 'for' : oldFor.replace( '_'+ prevNum, '_'+ cmb.idNumber ) };
452
  } else {
453
  var oldName = $newInput.attr( 'name' );
454
+ var newName;
455
+ oldID = $newInput.attr( 'id' );
456
+
457
+ // Handle adding groups vs rows.
458
+ if ( group ) {
459
+ // Expect another bracket after group's index closing bracket.
460
+ newName = oldName ? oldName.replace( '['+ prevNum +'][', '['+ cmb.idNumber +'][' ) : '';
461
+ // Expect another underscore after group's index trailing underscore.
462
+ newID = oldID ? oldID.replace( '_' + prevNum + '_', '_' + cmb.idNumber + '_' ) : '';
463
+ }
464
+ else {
465
+ // Row indexes are at the very end of the string.
466
+ newName = oldName ? cmb.replaceLast( oldName, '[' + prevNum + ']', '[' + cmb.idNumber + ']' ) : '';
467
+ newID = oldID ? cmb.replaceLast( oldID, '_' + prevNum, '_' + cmb.idNumber ) : '';
468
+ }
469
+
470
+ attrs = {
471
  id: newID,
472
+ name: newName
 
 
473
  };
474
 
475
  }
476
 
 
 
 
 
 
477
  // Clear out textarea values
478
  if ( 'TEXTAREA' === $newInput.prop('tagName') ) {
479
  $newInput.html( '' );
483
  $newInput.removeAttr( 'checked' );
484
  }
485
 
486
+ if ( ! group && $newInput[0].hasAttribute( 'data-iterator' ) ) {
487
+ attrs['data-iterator'] = cmb.idNumber;
488
+ }
489
+
490
  $newInput
491
  .removeClass( 'hasDatepicker' )
492
  .attr( attrs ).val( checkable ? checkable : '' );
570
 
571
  cmb.afterRowInsert( $newRow );
572
 
 
 
 
 
 
 
573
  cmb.triggerElement( $table, { type: 'cmb2_add_row', group: true }, $newRow );
574
 
575
  };
593
 
594
  cmb.triggerElement( $table, { type: 'cmb2_add_row', group: false }, $row );
595
 
 
 
596
  };
597
 
598
  cmb.removeGroupRow = function( evt ) {
603
  var $parent = $this.parents('.cmb-repeatable-grouping');
604
  var number = $table.find('.cmb-repeatable-grouping').length;
605
 
 
606
  if ( number < 2 ) {
607
+ return cmb.resetRow( $parent.parents('.cmb-repeatable-group').find( '.cmb-add-group-row' ), $this );
608
  }
609
 
610
  cmb.triggerElement( $table, 'cmb2_remove_group_row_start', $this );
614
 
615
  $parent.remove();
616
 
 
 
 
 
 
 
617
  cmb.triggerElement( $table, { type: 'cmb2_remove_row', group: true } );
618
 
619
  };
632
  var $table = $this.parents('.cmb-repeat-table');
633
  var number = $table.find('.cmb-row').length;
634
 
635
+ if ( number <= 2 ) {
636
+ return cmb.resetRow( $parent.find( '.cmb-add-row-button' ), $this );
637
+ }
 
 
 
 
 
 
 
638
 
639
+ if ( $parent.hasClass('empty-row') ) {
640
+ $parent.prev().addClass( 'empty-row' ).removeClass('cmb-repeat-row');
641
  }
642
+
643
+ $this.parents('.cmb-repeat-table .cmb-row').remove();
644
+
645
+
646
+ cmb.triggerElement( $table, { type: 'cmb2_remove_row', group: false } );
647
+ };
648
+
649
+ cmb.resetRow = function( $addNewBtn, $removeBtn ) {
650
+ // Click the "add new" button followed by the "remove this" button
651
+ // in order to reset the repeat row to empty values.
652
+ $addNewBtn.trigger( 'click' );
653
+ $removeBtn.trigger( 'click' );
654
  };
655
 
656
  cmb.shiftRows = function( evt ) {
806
 
807
  options.onClose = function( dateText, inst ) {
808
  // Remove the class when we're done with it (and hide to remove FOUC).
809
+ var $picker = $id( 'ui-datepicker-div' ).removeClass( 'cmb2-element' ).hide();
810
+ if ( 'timepicker' === method && ! $( inst.input ).val() ) {
811
+ // Set the timepicker field value if it's empty.
812
+ inst.input.val( $picker.find( '.ui_tpicker_time' ).text() );
813
+ }
814
 
815
  // Let's be sure to call onClose if it was added
816
  if ( 'function' === typeof existing.onClose ) {
1038
  $el.trigger( evtName, args );
1039
  };
1040
 
1041
+ cmb.replaceLast = function( string, search, replace ) {
1042
+ // find the index of last time word was used
1043
+ var n = string.lastIndexOf( search );
1044
+
1045
+ // slice the string in 2, one from the start to the lastIndexOf
1046
+ // and then replace the word in the rest
1047
+ return string.slice( 0, n ) + string.slice( n ).replace( search, replace );
1048
+ };
1049
+
1050
  $( cmb.init );
1051
 
1052
  })(window, document, jQuery, window.CMB2);
vendor/CMB2/js/cmb2.min.js CHANGED
@@ -1 +1 @@
1
- window.CMB2=window.CMB2||{},function(window,document,$,cmb,undefined){"use strict";var $document,l10n=window.cmb2_l10,setTimeout=window.setTimeout,$id=function(selector){return $(document.getElementById(selector))},defaults={idNumber:!1,repeatEls:'input:not([type="button"],[id^=filelist]),select,textarea,.cmb2-media-status',noEmpty:'input:not([type="button"]):not([type="radio"]):not([type="checkbox"]),textarea',repeatUpdate:'input:not([type="button"]),select,textarea,label',styleBreakPoint:450,mediaHandlers:{},defaults:{time_picker:l10n.defaults.time_picker,date_picker:l10n.defaults.date_picker,color_picker:l10n.defaults.color_picker||{}},media:{frames:{}}};cmb.metabox=function(){return cmb.$metabox?cmb.$metabox:(cmb.$metabox=$(".cmb2-wrap > .cmb2-metabox"),cmb.$metabox)},cmb.init=function(){$document=$(document),$.extend(cmb,defaults),cmb.trigger("cmb_pre_init");var $metabox=cmb.metabox(),$repeatGroup=$metabox.find(".cmb-repeatable-group");cmb.initPickers($metabox.find('input[type="text"].cmb2-timepicker'),$metabox.find('input[type="text"].cmb2-datepicker'),$metabox.find('input[type="text"].cmb2-colorpicker')),$('<p><span class="button cmb-multicheck-toggle">'+l10n.strings.check_toggle+"</span></p>").insertBefore(".cmb2-checkbox-list:not(.no-select-all)"),cmb.makeListSortable(),$metabox.on("change",".cmb2_upload_file",function(){cmb.media.field=$(this).attr("id"),$id(cmb.media.field+"_id").val("")}).on("click",".cmb-multicheck-toggle",cmb.toggleCheckBoxes).on("click",".cmb2-upload-button",cmb.handleMedia).on("click",".cmb-attach-list li, .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span",cmb.handleFileClick).on("click",".cmb2-remove-file-button",cmb.handleRemoveMedia).on("click",".cmb-add-group-row",cmb.addGroupRow).on("click",".cmb-add-row-button",cmb.addAjaxRow).on("click",".cmb-remove-group-row",cmb.removeGroupRow).on("click",".cmb-remove-row-button",cmb.removeAjaxRow).on("keyup paste focusout",".cmb2-oembed",cmb.maybeOembed).on("cmb2_remove_row",".cmb-repeatable-group",cmb.resetTitlesAndIterator).on("click",".cmbhandle, .cmbhandle + .cmbhandle-title",cmb.toggleHandle),$repeatGroup.length&&$repeatGroup.filter(".sortable").each(function(){$(this).find(".button.cmb-remove-group-row").before('<a class="button cmb-shift-rows move-up alignleft" href="#"><span class="'+l10n.up_arrow_class+'"></span></a> <a class="button cmb-shift-rows move-down alignleft" href="#"><span class="'+l10n.down_arrow_class+'"></span></a>')}).on("click",".cmb-shift-rows",cmb.shiftRows).on("cmb2_add_row",cmb.emptyValue),setTimeout(cmb.resizeoEmbeds,500),$(window).on("resize",cmb.resizeoEmbeds),cmb.trigger("cmb_init")},cmb.resetTitlesAndIterator=function(evt){evt.group&&$(".cmb-repeatable-group").each(function(){var $table=$(this);$table.find(".cmb-repeatable-grouping").each(function(rowindex){var $row=$(this);$row.data("iterator",rowindex),$row.find(".cmb-group-title h4").text($table.find(".cmb-add-group-row").data("grouptitle").replace("{#}",rowindex+1))})})},cmb.toggleHandle=function(evt){evt.preventDefault(),cmb.trigger("postbox-toggled",$(this).parent(".postbox").toggleClass("closed"))},cmb.toggleCheckBoxes=function(evt){evt.preventDefault();var $this=$(this),$multicheck=$this.closest(".cmb-td").find("input[type=checkbox]:not([disabled])");$this.data("checked")?($multicheck.prop("checked",!1),$this.data("checked",!1)):($multicheck.prop("checked",!0),$this.data("checked",!0))},cmb.handleMedia=function(evt){evt.preventDefault();var $el=$(this);cmb.attach_id=$el.hasClass("cmb2-upload-list")?!1:$el.closest(".cmb-td").find(".cmb2-upload-file-id").val(),cmb.attach_id="0"!==cmb.attach_id?cmb.attach_id:!1,cmb._handleMedia($el.prev("input.cmb2-upload-file").attr("id"),$el.hasClass("cmb2-upload-list"))},cmb.handleFileClick=function(evt){evt.preventDefault();var $el=$(this),$td=$el.closest(".cmb-td"),isList=$td.find(".cmb2-upload-button").hasClass("cmb2-upload-list");cmb.attach_id=isList?$el.find('input[type="hidden"]').data("id"):$td.find(".cmb2-upload-file-id").val(),cmb.attach_id&&cmb._handleMedia($td.find("input.cmb2-upload-file").attr("id"),isList,cmb.attach_id)},cmb._handleMedia=function(formfield,isList){if(wp){var modal,media,handlers;if(handlers=cmb.mediaHandlers,media=cmb.media,media.field=formfield,media.$field=$id(media.field),media.fieldData=media.$field.data(),media.previewSize=media.fieldData.previewsize,media.sizeName=media.fieldData.sizename,media.fieldName=media.$field.attr("name"),media.isList=isList,media.field in media.frames)return media.frames[media.field].open();media.frames[media.field]=modal=wp.media({title:cmb.metabox().find('label[for="'+media.field+'"]').text(),library:media.fieldData.queryargs||{},button:{text:l10n.strings[isList?"upload_files":"upload_file"]},multiple:isList?"add":!1}),cmb.trigger("cmb_media_modal_init",media),handlers.list=function(selection,returnIt){var data,isImage,mediaItem,fileGroup=[];return handlers.list.templates||(handlers.list.templates={image:wp.template("cmb2-list-image"),file:wp.template("cmb2-list-file")}),selection.each(function(attachment){isImage="image"===attachment.get("type"),data=handlers.prepareData(attachment,isImage),mediaItem=handlers.list.templates[isImage?"image":"file"](data),fileGroup.push(mediaItem)}),returnIt?fileGroup:void media.$field.siblings(".cmb2-media-status").append(fileGroup)},handlers.single=function(selection){var attachment,isImage,data,mediaItem;handlers.single.templates||(handlers.single.templates={image:wp.template("cmb2-single-image"),file:wp.template("cmb2-single-file")}),attachment=selection.first(),media.$field.val(attachment.get("url")),$id(media.field+"_id").val(attachment.get("id")),isImage="image"===attachment.get("type"),data=handlers.prepareData(attachment,isImage),mediaItem=handlers.single.templates[isImage?"image":"file"](data),media.$field.siblings(".cmb2-media-status").slideDown().html(mediaItem)},handlers.prepareData=function(data,image){return image&&handlers.getImageData.call(data,50),data=data.toJSON(),data.mediaField=media.field,data.mediaFieldName=media.fieldName,data.stringRemoveImage=l10n.strings.remove_image,data.stringFile=l10n.strings.file,data.stringDownload=l10n.strings.download,data.stringRemoveFile=l10n.strings.remove_file,data},handlers.getImageData=function(fallbackSize){var previewW=media.previewSize[0]||fallbackSize,previewH=media.previewSize[1]||fallbackSize,url=this.get("url"),width=this.get("width"),height=this.get("height"),sizes=this.get("sizes");return sizes[media.sizeName]?(url=sizes[media.sizeName].url,width=sizes[media.sizeName].width,height=sizes[media.sizeName].height):sizes.large&&(url=sizes.large.url,width=sizes.large.width,height=sizes.large.height),width>previewW&&(height=Math.floor(previewW*height/width),width=previewW),height>previewH&&(width=Math.floor(previewH*width/height),height=previewH),this.set("sizeUrl",url),this.set("sizeWidth",width),this.set("sizeHeight",height),this},handlers.selectFile=function(){var selection=modal.state().get("selection"),type=isList?"list":"single";cmb.attach_id&&isList?$('[data-id="'+cmb.attach_id+'"]').parents("li").replaceWith(handlers.list(selection,!0)):handlers[type](selection),cmb.trigger("cmb_media_modal_select",selection,media)},handlers.openModal=function(){var attach,selection=modal.state().get("selection");cmb.attach_id?(attach=wp.media.attachment(cmb.attach_id),attach.fetch(),selection.set(attach?[attach]:[])):selection.reset(),cmb.trigger("cmb_media_modal_open",selection,media)},modal.on("select",handlers.selectFile).on("open",handlers.openModal),modal.open()}},cmb.handleRemoveMedia=function(evt){evt.preventDefault();var $this=$(this);return $this.is(".cmb-attach-list .cmb2-remove-file-button")?($this.parents(".cmb2-media-item").remove(),!1):(cmb.media.field=$this.attr("rel"),cmb.metabox().find("input#"+cmb.media.field).val(""),cmb.metabox().find("input#"+cmb.media.field+"_id").val(""),$this.parents(".cmb2-media-status").html(""),!1)},cmb.cleanRow=function($row,prevNum,group){var $elements=$row.find(cmb.repeatUpdate);if(group){var $other=$row.find("[id]").not(cmb.repeatUpdate);$row.find(".cmb-repeat-table .cmb-repeat-row:not(:first-child)").remove(),$other.length&&$other.each(function(){var $_this=$(this),oldID=$_this.attr("id"),newID=oldID.replace("_"+prevNum,"_"+cmb.idNumber),$buttons=$row.find('[data-selector="'+oldID+'"]');$_this.attr("id",newID),$buttons.length&&$buttons.attr("data-selector",newID).data("selector",newID)})}return $elements.filter(":checked").prop("checked",!1),$elements.filter(":selected").prop("selected",!1),$row.find("h3.cmb-group-title").length&&$row.find("h3.cmb-group-title").text($row.data("title").replace("{#}",cmb.idNumber+1)),$elements.each(function(){cmb.elReplacements($(this),prevNum)}),cmb},cmb.elReplacements=function($newInput,prevNum){var newID,oldID,oldFor=$newInput.attr("for"),oldVal=$newInput.val(),type=$newInput.prop("type"),checkable="radio"===type||"checkbox"===type?oldVal:!1,attrs={};if(oldFor)attrs={"for":oldFor.replace("_"+prevNum,"_"+cmb.idNumber)};else{var oldName=$newInput.attr("name"),newName=oldName?oldName.replace("["+prevNum+"]","["+cmb.idNumber+"]"):"";oldID=$newInput.attr("id"),newID=oldID?oldID.replace("_"+prevNum,"_"+cmb.idNumber):"",attrs={id:newID,name:newName,"data-iterator":cmb.idNumber}}return(undefined!==typeof oldVal&&oldVal||checkable)&&(attrs.value=checkable?checkable:""),"TEXTAREA"===$newInput.prop("tagName")&&$newInput.html(""),checkable&&$newInput.removeAttr("checked"),$newInput.removeClass("hasDatepicker").attr(attrs).val(checkable?checkable:""),$newInput},cmb.newRowHousekeeping=function($row){var $colorPicker=$row.find(".wp-picker-container"),$list=$row.find(".cmb2-media-status");return $colorPicker.length&&$colorPicker.each(function(){var $td=$(this).parent();$td.html($td.find('input[type="text"].cmb2-colorpicker').attr("style",""))}),$list.length&&$list.empty(),cmb},cmb.afterRowInsert=function($row){cmb.initPickers($row.find('input[type="text"].cmb2-timepicker'),$row.find('input[type="text"].cmb2-datepicker'),$row.find('input[type="text"].cmb2-colorpicker'))},cmb.updateNameAttr=function(){var $this=$(this),name=$this.attr("name");if("undefined"!=typeof name){var prevNum=parseInt($this.parents(".cmb-repeatable-grouping").data("iterator"),10),newNum=prevNum-1,$newName=name.replace("["+prevNum+"]","["+newNum+"]");$this.attr("name",$newName)}},cmb.emptyValue=function(evt,row){$(cmb.noEmpty,row).val("")},cmb.addGroupRow=function(evt){evt.preventDefault();var $this=$(this);cmb.triggerElement($this,"cmb2_add_group_row_start",$this);var $table=$id($this.data("selector")),$oldRow=$table.find(".cmb-repeatable-grouping").last(),prevNum=parseInt($oldRow.data("iterator"),10);cmb.idNumber=parseInt(prevNum,10)+1;for(var $row=$oldRow.clone();$table.find('.cmb-repeatable-grouping[data-iterator="'+cmb.idNumber+'"]').length>0;)cmb.idNumber++;cmb.newRowHousekeeping($row.data("title",$this.data("grouptitle"))).cleanRow($row,prevNum,!0),$row.find(".cmb-add-row-button").prop("disabled",!1);var $newRow=$('<div class="postbox cmb-row cmb-repeatable-grouping" data-iterator="'+cmb.idNumber+'">'+$row.html()+"</div>");$oldRow.after($newRow),cmb.afterRowInsert($newRow),$table.find(".cmb-repeatable-grouping").length<=1?$table.find(".cmb-remove-group-row").prop("disabled",!0):$table.find(".cmb-remove-group-row").prop("disabled",!1),cmb.triggerElement($table,{type:"cmb2_add_row",group:!0},$newRow)},cmb.addAjaxRow=function(evt){evt.preventDefault();var $this=$(this),$table=$id($this.data("selector")),$emptyrow=$table.find(".empty-row"),prevNum=parseInt($emptyrow.find("[data-iterator]").data("iterator"),10);cmb.idNumber=parseInt(prevNum,10)+1;var $row=$emptyrow.clone();cmb.newRowHousekeeping($row).cleanRow($row,prevNum),$emptyrow.removeClass("empty-row hidden").addClass("cmb-repeat-row"),$emptyrow.after($row),cmb.afterRowInsert($row),cmb.triggerElement($table,{type:"cmb2_add_row",group:!1},$row),$table.find(".cmb-remove-row-button").removeClass("button-disabled")},cmb.removeGroupRow=function(evt){evt.preventDefault();var $this=$(this),$table=$id($this.data("selector")),$parent=$this.parents(".cmb-repeatable-grouping"),number=$table.find(".cmb-repeatable-grouping").length;2>number||(cmb.triggerElement($table,"cmb2_remove_group_row_start",$this),$parent.nextAll(".cmb-repeatable-grouping").find(cmb.repeatEls).each(cmb.updateNameAttr),$parent.remove(),2>=number?$table.find(".cmb-remove-group-row").prop("disabled",!0):$table.find(".cmb-remove-group-row").prop("disabled",!1),cmb.triggerElement($table,{type:"cmb2_remove_row",group:!0}))},cmb.removeAjaxRow=function(evt){evt.preventDefault();var $this=$(this);if(!$this.hasClass("button-disabled")){var $parent=$this.parents(".cmb-row"),$table=$this.parents(".cmb-repeat-table"),number=$table.find(".cmb-row").length;number>2?($parent.hasClass("empty-row")&&$parent.prev().addClass("empty-row").removeClass("cmb-repeat-row"),$this.parents(".cmb-repeat-table .cmb-row").remove(),3===number&&$table.find(".cmb-remove-row-button").addClass("button-disabled"),cmb.triggerElement($table,{type:"cmb2_remove_row",group:!1})):$this.addClass("button-disabled")}},cmb.shiftRows=function(evt){evt.preventDefault();var $this=$(this),$from=$this.parents(".cmb-repeatable-grouping"),$goto=$this.hasClass("move-up")?$from.prev(".cmb-repeatable-grouping"):$from.next(".cmb-repeatable-grouping");if(cmb.triggerElement($this,"cmb2_shift_rows_enter",$this,$from,$goto),$goto.length){cmb.triggerElement($this,"cmb2_shift_rows_start",$this,$from,$goto);var inputVals=[];$from.find(cmb.repeatEls).each(function(){var val,$element=$(this),elType=$element.attr("type");val=$element.hasClass("cmb2-media-status")?$element.html():"checkbox"===elType||"radio"===elType?$element.is(":checked"):"select"===$element.prop("tagName")?$element.is(":selected"):$element.val(),inputVals.push({val:val,$:$element})}),$goto.find(cmb.repeatEls).each(function(index){var val,$element=$(this),elType=$element.attr("type");if($element.hasClass("cmb2-media-status")){var toRowId=$element.closest(".cmb-repeatable-grouping").attr("data-iterator"),fromRowId=inputVals[index].$.closest(".cmb-repeatable-grouping").attr("data-iterator");val=$element.html(),$element.html(inputVals[index].val),inputVals[index].$.html(val),inputVals[index].$.find("input").each(function(){var name=$(this).attr("name");name=name.replace("["+toRowId+"]","["+fromRowId+"]"),$(this).attr("name",name)}),$element.find("input").each(function(){var name=$(this).attr("name");name=name.replace("["+fromRowId+"]","["+toRowId+"]"),$(this).attr("name",name)})}else"checkbox"===elType?(inputVals[index].$.prop("checked",$element.is(":checked")),$element.prop("checked",inputVals[index].val)):"radio"===elType?($element.is(":checked")&&inputVals[index].$.attr("data-checked","true"),inputVals[index].$.is(":checked")&&$element.attr("data-checked","true")):"select"===$element.prop("tagName")?(inputVals[index].$.prop("selected",$element.is(":selected")),$element.prop("selected",inputVals[index].val)):(inputVals[index].$.val($element.val()),$element.val(inputVals[index].val))}),$from.find("input[data-checked=true]").prop("checked",!0).removeAttr("data-checked"),$goto.find("input[data-checked=true]").prop("checked",!0).removeAttr("data-checked"),$from.find('input[type="text"].cmb2-colorpicker').trigger("change"),$goto.find('input[type="text"].cmb2-colorpicker').trigger("change"),cmb.triggerElement($this,"cmb2_shift_rows_complete",$this,$from,$goto)}},cmb.initPickers=function($timePickers,$datePickers,$colorPickers){cmb.initDateTimePickers($timePickers,"timepicker","time_picker"),cmb.initDateTimePickers($datePickers,"datepicker","date_picker"),cmb.initColorPickers($colorPickers)},cmb.initDateTimePickers=function($selector,method,defaultKey){$selector.length&&$selector[method]("destroy").each(function(){var $this=$(this),fieldOpts=$this.data(method)||{},options=$.extend({},cmb.defaults[defaultKey],fieldOpts);$this[method](cmb.datePickerSetupOpts(fieldOpts,options,method))})},cmb.datePickerSetupOpts=function(fieldOpts,options,method){var existing=$.extend({},options);return options.beforeShow=function(input,inst){"timepicker"===method&&cmb.addTimePickerClasses(inst.dpDiv),$id("ui-datepicker-div").addClass("cmb2-element"),"function"==typeof existing.beforeShow&&existing.beforeShow(input,inst)},"timepicker"===method&&(options.onChangeMonthYear=function(year,month,inst,picker){cmb.addTimePickerClasses(inst.dpDiv),"function"==typeof existing.onChangeMonthYear&&existing.onChangeMonthYear(year,month,inst,picker)}),options.onClose=function(dateText,inst){$id("ui-datepicker-div").removeClass("cmb2-element").hide(),"function"==typeof existing.onClose&&existing.onClose(dateText,inst)},options},cmb.addTimePickerClasses=function($picker){var func=cmb.addTimePickerClasses;func.count=func.count||0,setTimeout(function(){$picker.find(".ui-priority-secondary").length?($picker.find(".ui-priority-secondary").addClass("button-secondary"),$picker.find(".ui-priority-primary").addClass("button-primary"),func.count=0):func.count<5&&(func.count++,func($picker))},10)},cmb.initColorPickers=function($selector){$selector.length&&("object"==typeof jQuery.wp&&"function"==typeof jQuery.wp.wpColorPicker?$selector.each(function(){var $this=$(this),fieldOpts=$this.data("colorpicker")||{};$this.wpColorPicker($.extend({},cmb.defaults.color_picker,fieldOpts))}):$selector.each(function(i){$(this).after('<div id="picker-'+i+'" style="z-index: 1000; background: #EEE; border: 1px solid #CCC; position: absolute; display: block;"></div>'),$id("picker-"+i).hide().farbtastic($(this))}).focus(function(){$(this).next().show()}).blur(function(){$(this).next().hide()}))},cmb.makeListSortable=function(){var $filelist=cmb.metabox().find(".cmb2-media-status.cmb-attach-list");$filelist.length&&$filelist.sortable({cursor:"move"}).disableSelection()},cmb.maybeOembed=function(evt){var $this=$(this),m={focusout:function(){setTimeout(function(){cmb.spinner(".cmb2-metabox",!0)},2e3)},keyup:function(){var betw=function(min,max){return evt.which<=max&&evt.which>=min};(betw(48,90)||betw(96,111)||betw(8,9)||187===evt.which||190===evt.which)&&cmb.doAjax($this,evt)},paste:function(){setTimeout(function(){cmb.doAjax($this)},100)}};m[evt.type]()},cmb.resizeoEmbeds=function(){cmb.metabox().each(function(){var $this=$(this),$tableWrap=$this.parents(".inside"),isSide=$this.parents(".inner-sidebar").length||$this.parents("#side-sortables").length,isSmall=isSide,isSmallest=!1;if(!$tableWrap.length)return!0;var tableW=$tableWrap.width();cmb.styleBreakPoint>tableW&&(isSmall=!0,isSmallest=cmb.styleBreakPoint-62>tableW),tableW=isSmall?tableW:Math.round(.82*$tableWrap.width()*.97);var newWidth=tableW-30;if(!isSmall||isSide||isSmallest||(newWidth-=75),newWidth>639)return!0;var $embeds=$this.find(".cmb-type-oembed .embed-status"),$children=$embeds.children().not(".cmb2-remove-wrapper");return $children.length?void $children.each(function(){var $this=$(this),iwidth=$this.width(),iheight=$this.height(),_newWidth=newWidth;$this.parents(".cmb-repeat-row").length&&!isSmall&&(_newWidth=newWidth-91,_newWidth=785>tableW?_newWidth-15:_newWidth);var newHeight=Math.round(_newWidth*iheight/iwidth);$this.width(_newWidth).height(newHeight)}):!0})},cmb.log=function(){l10n.script_debug&&console&&"function"==typeof console.log&&console.log.apply(console,arguments)},cmb.spinner=function($context,hide){var m=hide?"removeClass":"addClass";$(".cmb-spinner",$context)[m]("is-active")},cmb.doAjax=function($obj){var oembed_url=$obj.val();if(!(oembed_url.length<6)){var field_id=$obj.attr("id"),$context=$obj.closest(".cmb-td"),$embed_container=$context.find(".embed-status"),$embed_wrap=$context.find(".embed_wrap"),$child_el=$embed_container.find(":first-child"),oembed_width=$embed_container.length&&$child_el.length?$child_el.width():$obj.width();cmb.log("oembed_url",oembed_url,field_id),cmb.spinner($context),$embed_wrap.html(""),setTimeout(function(){$(".cmb2-oembed:focus").val()===oembed_url&&$.ajax({type:"post",dataType:"json",url:l10n.ajaxurl,data:{action:"cmb2_oembed_handler",oembed_url:oembed_url,oembed_width:oembed_width>300?oembed_width:300,field_id:field_id,object_id:$obj.data("objectid"),object_type:$obj.data("objecttype"),cmb2_ajax_nonce:l10n.ajax_nonce},success:function(response){cmb.log(response),cmb.spinner($context,!0),$embed_wrap.html(response.data)}})},500)}},cmb.trigger=function(evtName){var args=Array.prototype.slice.call(arguments,1);args.push(cmb),$document.trigger(evtName,args)},cmb.triggerElement=function($el,evtName){var args=Array.prototype.slice.call(arguments,2);args.push(cmb),$el.trigger(evtName,args)},$(cmb.init)}(window,document,jQuery,window.CMB2),window.CMB2=window.CMB2||{},window.CMB2.wysiwyg=window.CMB2.wysiwyg||{},function(window,document,$,wysiwyg,undefined){"use strict";function delayedInit(){0===toBeDestroyed.length?toBeInitialized.forEach(function(toInit){toBeInitialized.splice(toBeInitialized.indexOf(toInit),1),wysiwyg.init.apply(wysiwyg,toInit)}):window.setTimeout(delayedInit,100)}function delayedDestroy(){toBeDestroyed.forEach(function(id){toBeDestroyed.splice(toBeDestroyed.indexOf(id),1),wysiwyg.destroy(id)})}function getGroupData(data){var groupid=data.groupid,fieldid=data.fieldid;return all[groupid]&&all[groupid][fieldid]||(all[groupid]=all[groupid]||{},all[groupid][fieldid]={template:wp.template("cmb2-wysiwyg-"+groupid+"-"+fieldid),defaults:{mce:$.extend({},tinyMCEPreInit.mceInit["cmb2_i_"+groupid+fieldid]),qt:$.extend({},tinyMCEPreInit.qtInit["cmb2_i_"+groupid+fieldid])}},delete tinyMCEPreInit.mceInit["cmb2_i_"+groupid+fieldid],delete tinyMCEPreInit.qtInit["cmb2_i_"+groupid+fieldid]),all[groupid][fieldid]}function initOptions(options){var prop,newSettings,newQTS,nameRegex=new RegExp("cmb2_n_"+options.groupid+options.fieldid,"g"),idRegex=new RegExp("cmb2_i_"+options.groupid+options.fieldid,"g");if("undefined"==typeof tinyMCEPreInit.mceInit[options.id]){newSettings=$.extend({},options.defaults.mce);for(prop in newSettings)"string"==typeof newSettings[prop]&&(newSettings[prop]=newSettings[prop].replace(idRegex,options.id).replace(nameRegex,options.name));tinyMCEPreInit.mceInit[options.id]=newSettings}if("undefined"==typeof tinyMCEPreInit.qtInit[options.id]){newQTS=$.extend({},options.defaults.qt);for(prop in newQTS)"string"==typeof newQTS[prop]&&(newQTS[prop]=newQTS[prop].replace(idRegex,options.id).replace(nameRegex,options.name));tinyMCEPreInit.qtInit[options.id]=newQTS}}var toBeDestroyed=[],toBeInitialized=[],all=wysiwyg.all={};wysiwyg.initAll=function(){var $this,data,initiated;$(".cmb2-wysiwyg-placeholder").each(function(){$this=$(this),data=$this.data(),data.groupid&&(data.id=$this.attr("id"),data.name=$this.attr("name"),data.value=$this.val(),wysiwyg.init($this,data,!1),initiated=!0)}),!0===initiated&&("undefined"!=typeof window.QTags&&window.QTags._buttonsInit(),$(document).on("cmb2_add_row",wysiwyg.addRow).on("cmb2_remove_group_row_start",wysiwyg.destroyRowEditors).on("cmb2_shift_rows_start",wysiwyg.shiftStart).on("cmb2_shift_rows_complete",wysiwyg.shiftComplete))},wysiwyg.addRow=function(evt,$row){wysiwyg.initRow($row)},wysiwyg.destroyRowEditors=function(evt,$btn){wysiwyg.destroy($btn.parents(".cmb-repeatable-grouping").find(".wp-editor-area").attr("id"))},wysiwyg.shiftStart=function(evt,$btn,$from,$to){$from.add($to).find(".wp-editor-wrap textarea").each(function(){wysiwyg.destroy($(this).attr("id"))})},wysiwyg.shiftComplete=function(evt,$btn,$from,$to){$from.add($to).each(function(){wysiwyg.initRow($(this))})},wysiwyg.initRow=function($row){var $toReplace,data;$row.find(".cmb2-wysiwyg-inner-wrap").each(function(){$toReplace=$(this),data=$toReplace.data(),data.iterator=$row.data("iterator"),data.fieldid=data.id,data.id=data.groupid+"_"+data.iterator+"_"+data.fieldid,data.name=data.groupid+"["+data.iterator+"]["+data.fieldid+"]",data.value=$toReplace.find(".wp-editor-area").length?$toReplace.find(".wp-editor-area").val():"",0===toBeDestroyed.length?wysiwyg.init($toReplace,data):(toBeInitialized.push([$toReplace,data]),window.setTimeout(delayedInit,100))})},wysiwyg.init=function($toReplace,data,buttonsInit){return data.groupid?($.extend(data,getGroupData(data)),initOptions(data),$toReplace.replaceWith(data.template(data)),window.tinyMCE.init(tinyMCEPreInit.mceInit[data.id]),"function"==typeof window.quicktags&&window.quicktags(tinyMCEPreInit.qtInit[data.id]),$(document.getElementById(data.id)).parents(".wp-editor-wrap").removeClass("html-active").addClass("tmce-active"),void(!1!==buttonsInit&&"undefined"!=typeof window.QTags&&window.QTags._buttonsInit())):!1},wysiwyg.destroy=function(id){var editor=tinyMCE.get(id);null!==editor&&"undefined"!=typeof editor?(editor.destroy(),"undefined"==typeof tinyMCEPreInit.mceInit[id]&&delete tinyMCEPreInit.mceInit[id],"undefined"==typeof tinyMCEPreInit.qtInit[id]&&delete tinyMCEPreInit.qtInit[id]):-1===toBeDestroyed.indexOf(id)&&(toBeDestroyed.push(id),window.setTimeout(delayedDestroy,100))},$(document).on("cmb_init",wysiwyg.initAll)}(window,document,jQuery,window.CMB2.wysiwyg);
1
+ window.CMB2=window.CMB2||{},function(window,document,$,cmb,undefined){"use strict";var $document,l10n=window.cmb2_l10,setTimeout=window.setTimeout,$id=function(selector){return $(document.getElementById(selector))},defaults={idNumber:!1,repeatEls:'input:not([type="button"],[id^=filelist]),select,textarea,.cmb2-media-status',noEmpty:'input:not([type="button"]):not([type="radio"]):not([type="checkbox"]),textarea',repeatUpdate:'input:not([type="button"]),select,textarea,label',styleBreakPoint:450,mediaHandlers:{},defaults:{time_picker:l10n.defaults.time_picker,date_picker:l10n.defaults.date_picker,color_picker:l10n.defaults.color_picker||{}},media:{frames:{}}};cmb.metabox=function(){return cmb.$metabox?cmb.$metabox:(cmb.$metabox=$(".cmb2-wrap > .cmb2-metabox"),cmb.$metabox)},cmb.init=function(){$document=$(document),$.extend(cmb,defaults),cmb.trigger("cmb_pre_init");var $metabox=cmb.metabox(),$repeatGroup=$metabox.find(".cmb-repeatable-group");cmb.initPickers($metabox.find('input[type="text"].cmb2-timepicker'),$metabox.find('input[type="text"].cmb2-datepicker'),$metabox.find('input[type="text"].cmb2-colorpicker')),$('<p><span class="button-secondary cmb-multicheck-toggle">'+l10n.strings.check_toggle+"</span></p>").insertBefore(".cmb2-checkbox-list:not(.no-select-all)"),cmb.makeListSortable(),$metabox.on("change",".cmb2_upload_file",function(){cmb.media.field=$(this).attr("id"),$id(cmb.media.field+"_id").val("")}).on("click",".cmb-multicheck-toggle",cmb.toggleCheckBoxes).on("click",".cmb2-upload-button",cmb.handleMedia).on("click",".cmb-attach-list li, .cmb2-media-status .img-status img, .cmb2-media-status .file-status > span",cmb.handleFileClick).on("click",".cmb2-remove-file-button",cmb.handleRemoveMedia).on("click",".cmb-add-group-row",cmb.addGroupRow).on("click",".cmb-add-row-button",cmb.addAjaxRow).on("click",".cmb-remove-group-row",cmb.removeGroupRow).on("click",".cmb-remove-row-button",cmb.removeAjaxRow).on("keyup paste focusout",".cmb2-oembed",cmb.maybeOembed).on("cmb2_remove_row",".cmb-repeatable-group",cmb.resetTitlesAndIterator).on("click",".cmbhandle, .cmbhandle + .cmbhandle-title",cmb.toggleHandle),$repeatGroup.length&&$repeatGroup.on("cmb2_add_row",cmb.emptyValue).filter(".sortable").each(function(){$(this).find(".cmb-remove-group-row-button").before('<a class="button-secondary cmb-shift-rows move-up alignleft" href="#"><span class="'+l10n.up_arrow_class+'"></span></a> <a class="button-secondary cmb-shift-rows move-down alignleft" href="#"><span class="'+l10n.down_arrow_class+'"></span></a>')}).on("click",".cmb-shift-rows",cmb.shiftRows),setTimeout(cmb.resizeoEmbeds,500),$(window).on("resize",cmb.resizeoEmbeds),cmb.trigger("cmb_init")},cmb.resetTitlesAndIterator=function(evt){evt.group&&$(".cmb-repeatable-group.repeatable").each(function(){var $table=$(this),groupTitle=$table.find(".cmb-add-group-row").data("grouptitle");$table.find(".cmb-repeatable-grouping").each(function(rowindex){var $row=$(this),$rowTitle=$row.find("h3.cmb-group-title");$row.data("iterator",rowindex),$rowTitle.length&&$rowTitle.text(groupTitle.replace("{#}",rowindex+1))})})},cmb.toggleHandle=function(evt){evt.preventDefault(),cmb.trigger("postbox-toggled",$(this).parent(".postbox").toggleClass("closed"))},cmb.toggleCheckBoxes=function(evt){evt.preventDefault();var $this=$(this),$multicheck=$this.closest(".cmb-td").find("input[type=checkbox]:not([disabled])");$this.data("checked")?($multicheck.prop("checked",!1),$this.data("checked",!1)):($multicheck.prop("checked",!0),$this.data("checked",!0))},cmb.handleMedia=function(evt){evt.preventDefault();var $el=$(this);cmb.attach_id=$el.hasClass("cmb2-upload-list")?!1:$el.closest(".cmb-td").find(".cmb2-upload-file-id").val(),cmb.attach_id="0"!==cmb.attach_id?cmb.attach_id:!1,cmb._handleMedia($el.prev("input.cmb2-upload-file").attr("id"),$el.hasClass("cmb2-upload-list"))},cmb.handleFileClick=function(evt){evt.preventDefault();var $el=$(this),$td=$el.closest(".cmb-td"),isList=$td.find(".cmb2-upload-button").hasClass("cmb2-upload-list");cmb.attach_id=isList?$el.find('input[type="hidden"]').data("id"):$td.find(".cmb2-upload-file-id").val(),cmb.attach_id&&cmb._handleMedia($td.find("input.cmb2-upload-file").attr("id"),isList,cmb.attach_id)},cmb._handleMedia=function(id,isList){if(wp){var media,handlers;if(handlers=cmb.mediaHandlers,media=cmb.media,media.field=id,media.$field=$id(media.field),media.fieldData=media.$field.data(),media.previewSize=media.fieldData.previewsize,media.sizeName=media.fieldData.sizename,media.fieldName=media.$field.attr("name"),media.isList=isList,id in media.frames)return media.frames[id].open();media.frames[id]=wp.media({title:cmb.metabox().find('label[for="'+id+'"]').text(),library:media.fieldData.queryargs||{},button:{text:l10n.strings[isList?"upload_files":"upload_file"]},multiple:isList?"add":!1}),media.frames[id].states.first().set("filterable","all"),cmb.trigger("cmb_media_modal_init",media),handlers.list=function(selection,returnIt){var attachmentHtml,fileGroup=[];return handlers.list.templates||(handlers.list.templates={image:wp.template("cmb2-list-image"),file:wp.template("cmb2-list-file")}),selection.each(function(attachment){attachmentHtml=handlers.getAttachmentHtml(attachment,"list"),fileGroup.push(attachmentHtml)}),returnIt?fileGroup:void media.$field.siblings(".cmb2-media-status").append(fileGroup)},handlers.single=function(selection){handlers.single.templates||(handlers.single.templates={image:wp.template("cmb2-single-image"),file:wp.template("cmb2-single-file")});var attachment=selection.first();media.$field.val(attachment.get("url")),$id(media.field+"_id").val(attachment.get("id"));var attachmentHtml=handlers.getAttachmentHtml(attachment,"single");media.$field.siblings(".cmb2-media-status").slideDown().html(attachmentHtml)},handlers.getAttachmentHtml=function(attachment,templatesId){var isImage="image"===attachment.get("type"),data=handlers.prepareData(attachment,isImage);return handlers[templatesId].templates[isImage?"image":"file"](data)},handlers.prepareData=function(data,image){return image&&handlers.getImageData.call(data,50),data=data.toJSON(),data.mediaField=media.field,data.mediaFieldName=media.fieldName,data.stringRemoveImage=l10n.strings.remove_image,data.stringFile=l10n.strings.file,data.stringDownload=l10n.strings.download,data.stringRemoveFile=l10n.strings.remove_file,data},handlers.getImageData=function(fallbackSize){var previewW=media.previewSize[0]||fallbackSize,previewH=media.previewSize[1]||fallbackSize,url=this.get("url"),width=this.get("width"),height=this.get("height"),sizes=this.get("sizes");return sizes&&(sizes[media.sizeName]?(url=sizes[media.sizeName].url,width=sizes[media.sizeName].width,height=sizes[media.sizeName].height):sizes.large&&(url=sizes.large.url,width=sizes.large.width,height=sizes.large.height)),width>previewW&&(height=Math.floor(previewW*height/width),width=previewW),height>previewH&&(width=Math.floor(previewH*width/height),height=previewH),width||(width=previewW),height||(height="svg"===this.get("filename").split(".").pop()?"100%":previewH),this.set("sizeUrl",url),this.set("sizeWidth",width),this.set("sizeHeight",height),this},handlers.selectFile=function(){var selection=media.frames[id].state().get("selection"),type=isList?"list":"single";cmb.attach_id&&isList?$('[data-id="'+cmb.attach_id+'"]').parents("li").replaceWith(handlers.list(selection,!0)):handlers[type](selection),cmb.trigger("cmb_media_modal_select",selection,media)},handlers.openModal=function(){var attach,selection=media.frames[id].state().get("selection");cmb.attach_id?(attach=wp.media.attachment(cmb.attach_id),attach.fetch(),selection.set(attach?[attach]:[])):selection.reset(),cmb.trigger("cmb_media_modal_open",selection,media)},media.frames[id].on("select",handlers.selectFile).on("open",handlers.openModal),media.frames[id].open()}},cmb.handleRemoveMedia=function(evt){evt.preventDefault();var $this=$(this);return $this.is(".cmb-attach-list .cmb2-remove-file-button")?($this.parents(".cmb2-media-item").remove(),!1):(cmb.media.field=$this.attr("rel"),cmb.metabox().find(document.getElementById(cmb.media.field)).val(""),cmb.metabox().find(document.getElementById(cmb.media.field+"_id")).val(""),$this.parents(".cmb2-media-status").html(""),!1)},cmb.cleanRow=function($row,prevNum,group){var $elements=$row.find(cmb.repeatUpdate);if(group){var $other=$row.find("[id]").not(cmb.repeatUpdate);$row.find(".cmb-repeat-table .cmb-repeat-row:not(:first-child)").remove(),$other.length&&$other.each(function(){var $_this=$(this),oldID=$_this.attr("id"),newID=oldID.replace("_"+prevNum,"_"+cmb.idNumber),$buttons=$row.find('[data-selector="'+oldID+'"]');$_this.attr("id",newID),$buttons.length&&$buttons.attr("data-selector",newID).data("selector",newID)})}return $elements.filter(":checked").removeAttr("checked"),$elements.find(":checked").removeAttr("checked"),$elements.filter(":selected").removeAttr("selected"),$elements.find(":selected").removeAttr("selected",!1),$row.find("h3.cmb-group-title").length&&$row.find("h3.cmb-group-title").text($row.data("title").replace("{#}",cmb.idNumber+1)),$elements.each(function(){cmb.elReplacements($(this),prevNum,group)}),cmb},cmb.elReplacements=function($newInput,prevNum,group){var newID,oldID,oldFor=$newInput.attr("for"),oldVal=$newInput.val(),type=$newInput.prop("type"),checkable="radio"===type||"checkbox"===type?oldVal:!1,attrs={};if(oldFor)attrs={"for":oldFor.replace("_"+prevNum,"_"+cmb.idNumber)};else{var newName,oldName=$newInput.attr("name");oldID=$newInput.attr("id"),group?(newName=oldName?oldName.replace("["+prevNum+"][","["+cmb.idNumber+"]["):"",newID=oldID?oldID.replace("_"+prevNum+"_","_"+cmb.idNumber+"_"):""):(newName=oldName?cmb.replaceLast(oldName,"["+prevNum+"]","["+cmb.idNumber+"]"):"",newID=oldID?cmb.replaceLast(oldID,"_"+prevNum,"_"+cmb.idNumber):""),attrs={id:newID,name:newName}}return"TEXTAREA"===$newInput.prop("tagName")&&$newInput.html(""),checkable&&$newInput.removeAttr("checked"),!group&&$newInput[0].hasAttribute("data-iterator")&&(attrs["data-iterator"]=cmb.idNumber),$newInput.removeClass("hasDatepicker").attr(attrs).val(checkable?checkable:""),$newInput},cmb.newRowHousekeeping=function($row){var $colorPicker=$row.find(".wp-picker-container"),$list=$row.find(".cmb2-media-status");return $colorPicker.length&&$colorPicker.each(function(){var $td=$(this).parent();$td.html($td.find('input[type="text"].cmb2-colorpicker').attr("style",""))}),$list.length&&$list.empty(),cmb},cmb.afterRowInsert=function($row){cmb.initPickers($row.find('input[type="text"].cmb2-timepicker'),$row.find('input[type="text"].cmb2-datepicker'),$row.find('input[type="text"].cmb2-colorpicker'))},cmb.updateNameAttr=function(){var $this=$(this),name=$this.attr("name");if("undefined"!=typeof name){var prevNum=parseInt($this.parents(".cmb-repeatable-grouping").data("iterator"),10),newNum=prevNum-1,$newName=name.replace("["+prevNum+"]","["+newNum+"]");$this.attr("name",$newName)}},cmb.emptyValue=function(evt,row){$(cmb.noEmpty,row).val("")},cmb.addGroupRow=function(evt){evt.preventDefault();var $this=$(this);cmb.triggerElement($this,"cmb2_add_group_row_start",$this);var $table=$id($this.data("selector")),$oldRow=$table.find(".cmb-repeatable-grouping").last(),prevNum=parseInt($oldRow.data("iterator"),10);cmb.idNumber=parseInt(prevNum,10)+1;for(var $row=$oldRow.clone();$table.find('.cmb-repeatable-grouping[data-iterator="'+cmb.idNumber+'"]').length>0;)cmb.idNumber++;cmb.newRowHousekeeping($row.data("title",$this.data("grouptitle"))).cleanRow($row,prevNum,!0),$row.find(".cmb-add-row-button").prop("disabled",!1);var $newRow=$('<div class="postbox cmb-row cmb-repeatable-grouping" data-iterator="'+cmb.idNumber+'">'+$row.html()+"</div>");$oldRow.after($newRow),cmb.afterRowInsert($newRow),cmb.triggerElement($table,{type:"cmb2_add_row",group:!0},$newRow)},cmb.addAjaxRow=function(evt){evt.preventDefault();var $this=$(this),$table=$id($this.data("selector")),$emptyrow=$table.find(".empty-row"),prevNum=parseInt($emptyrow.find("[data-iterator]").data("iterator"),10);cmb.idNumber=parseInt(prevNum,10)+1;var $row=$emptyrow.clone();cmb.newRowHousekeeping($row).cleanRow($row,prevNum),$emptyrow.removeClass("empty-row hidden").addClass("cmb-repeat-row"),$emptyrow.after($row),cmb.afterRowInsert($row),cmb.triggerElement($table,{type:"cmb2_add_row",group:!1},$row)},cmb.removeGroupRow=function(evt){evt.preventDefault();var $this=$(this),$table=$id($this.data("selector")),$parent=$this.parents(".cmb-repeatable-grouping"),number=$table.find(".cmb-repeatable-grouping").length;return 2>number?cmb.resetRow($parent.parents(".cmb-repeatable-group").find(".cmb-add-group-row"),$this):(cmb.triggerElement($table,"cmb2_remove_group_row_start",$this),$parent.nextAll(".cmb-repeatable-grouping").find(cmb.repeatEls).each(cmb.updateNameAttr),$parent.remove(),void cmb.triggerElement($table,{type:"cmb2_remove_row",group:!0}))},cmb.removeAjaxRow=function(evt){evt.preventDefault();var $this=$(this);if(!$this.hasClass("button-disabled")){var $parent=$this.parents(".cmb-row"),$table=$this.parents(".cmb-repeat-table"),number=$table.find(".cmb-row").length;if(2>=number)return cmb.resetRow($parent.find(".cmb-add-row-button"),$this);$parent.hasClass("empty-row")&&$parent.prev().addClass("empty-row").removeClass("cmb-repeat-row"),$this.parents(".cmb-repeat-table .cmb-row").remove(),cmb.triggerElement($table,{type:"cmb2_remove_row",group:!1})}},cmb.resetRow=function($addNewBtn,$removeBtn){$addNewBtn.trigger("click"),$removeBtn.trigger("click")},cmb.shiftRows=function(evt){evt.preventDefault();var $this=$(this),$from=$this.parents(".cmb-repeatable-grouping"),$goto=$this.hasClass("move-up")?$from.prev(".cmb-repeatable-grouping"):$from.next(".cmb-repeatable-grouping");if(cmb.triggerElement($this,"cmb2_shift_rows_enter",$this,$from,$goto),$goto.length){cmb.triggerElement($this,"cmb2_shift_rows_start",$this,$from,$goto);var inputVals=[];$from.find(cmb.repeatEls).each(function(){var val,$element=$(this),elType=$element.attr("type");val=$element.hasClass("cmb2-media-status")?$element.html():"checkbox"===elType||"radio"===elType?$element.is(":checked"):"select"===$element.prop("tagName")?$element.is(":selected"):$element.val(),inputVals.push({val:val,$:$element})}),$goto.find(cmb.repeatEls).each(function(index){var val,$element=$(this),elType=$element.attr("type");if($element.hasClass("cmb2-media-status")){var toRowId=$element.closest(".cmb-repeatable-grouping").attr("data-iterator"),fromRowId=inputVals[index].$.closest(".cmb-repeatable-grouping").attr("data-iterator");val=$element.html(),$element.html(inputVals[index].val),inputVals[index].$.html(val),inputVals[index].$.find("input").each(function(){var name=$(this).attr("name");name=name.replace("["+toRowId+"]","["+fromRowId+"]"),$(this).attr("name",name)}),$element.find("input").each(function(){var name=$(this).attr("name");name=name.replace("["+fromRowId+"]","["+toRowId+"]"),$(this).attr("name",name)})}else"checkbox"===elType?(inputVals[index].$.prop("checked",$element.is(":checked")),$element.prop("checked",inputVals[index].val)):"radio"===elType?($element.is(":checked")&&inputVals[index].$.attr("data-checked","true"),inputVals[index].$.is(":checked")&&$element.attr("data-checked","true")):"select"===$element.prop("tagName")?(inputVals[index].$.prop("selected",$element.is(":selected")),$element.prop("selected",inputVals[index].val)):(inputVals[index].$.val($element.val()),$element.val(inputVals[index].val))}),$from.find("input[data-checked=true]").prop("checked",!0).removeAttr("data-checked"),$goto.find("input[data-checked=true]").prop("checked",!0).removeAttr("data-checked"),$from.find('input[type="text"].cmb2-colorpicker').trigger("change"),$goto.find('input[type="text"].cmb2-colorpicker').trigger("change"),cmb.triggerElement($this,"cmb2_shift_rows_complete",$this,$from,$goto)}},cmb.initPickers=function($timePickers,$datePickers,$colorPickers){cmb.initDateTimePickers($timePickers,"timepicker","time_picker"),cmb.initDateTimePickers($datePickers,"datepicker","date_picker"),cmb.initColorPickers($colorPickers)},cmb.initDateTimePickers=function($selector,method,defaultKey){$selector.length&&$selector[method]("destroy").each(function(){var $this=$(this),fieldOpts=$this.data(method)||{},options=$.extend({},cmb.defaults[defaultKey],fieldOpts);$this[method](cmb.datePickerSetupOpts(fieldOpts,options,method))})},cmb.datePickerSetupOpts=function(fieldOpts,options,method){var existing=$.extend({},options);return options.beforeShow=function(input,inst){"timepicker"===method&&cmb.addTimePickerClasses(inst.dpDiv),$id("ui-datepicker-div").addClass("cmb2-element"),"function"==typeof existing.beforeShow&&existing.beforeShow(input,inst)},"timepicker"===method&&(options.onChangeMonthYear=function(year,month,inst,picker){cmb.addTimePickerClasses(inst.dpDiv),"function"==typeof existing.onChangeMonthYear&&existing.onChangeMonthYear(year,month,inst,picker)}),options.onClose=function(dateText,inst){var $picker=$id("ui-datepicker-div").removeClass("cmb2-element").hide();"timepicker"!==method||$(inst.input).val()||inst.input.val($picker.find(".ui_tpicker_time").text()),"function"==typeof existing.onClose&&existing.onClose(dateText,inst)},options},cmb.addTimePickerClasses=function($picker){var func=cmb.addTimePickerClasses;func.count=func.count||0,setTimeout(function(){$picker.find(".ui-priority-secondary").length?($picker.find(".ui-priority-secondary").addClass("button-secondary"),$picker.find(".ui-priority-primary").addClass("button-primary"),func.count=0):func.count<5&&(func.count++,func($picker))},10)},cmb.initColorPickers=function($selector){$selector.length&&("object"==typeof jQuery.wp&&"function"==typeof jQuery.wp.wpColorPicker?$selector.each(function(){var $this=$(this),fieldOpts=$this.data("colorpicker")||{};$this.wpColorPicker($.extend({},cmb.defaults.color_picker,fieldOpts))}):$selector.each(function(i){$(this).after('<div id="picker-'+i+'" style="z-index: 1000; background: #EEE; border: 1px solid #CCC; position: absolute; display: block;"></div>'),$id("picker-"+i).hide().farbtastic($(this))}).focus(function(){$(this).next().show()}).blur(function(){$(this).next().hide()}))},cmb.makeListSortable=function(){var $filelist=cmb.metabox().find(".cmb2-media-status.cmb-attach-list");$filelist.length&&$filelist.sortable({cursor:"move"}).disableSelection()},cmb.maybeOembed=function(evt){var $this=$(this),m={focusout:function(){setTimeout(function(){cmb.spinner(".cmb2-metabox",!0)},2e3)},keyup:function(){var betw=function(min,max){return evt.which<=max&&evt.which>=min};(betw(48,90)||betw(96,111)||betw(8,9)||187===evt.which||190===evt.which)&&cmb.doAjax($this,evt)},paste:function(){setTimeout(function(){cmb.doAjax($this)},100)}};m[evt.type]()},cmb.resizeoEmbeds=function(){cmb.metabox().each(function(){var $this=$(this),$tableWrap=$this.parents(".inside"),isSide=$this.parents(".inner-sidebar").length||$this.parents("#side-sortables").length,isSmall=isSide,isSmallest=!1;if(!$tableWrap.length)return!0;var tableW=$tableWrap.width();cmb.styleBreakPoint>tableW&&(isSmall=!0,isSmallest=cmb.styleBreakPoint-62>tableW),tableW=isSmall?tableW:Math.round(.82*$tableWrap.width()*.97);var newWidth=tableW-30;if(!isSmall||isSide||isSmallest||(newWidth-=75),newWidth>639)return!0;var $embeds=$this.find(".cmb-type-oembed .embed-status"),$children=$embeds.children().not(".cmb2-remove-wrapper");return $children.length?void $children.each(function(){var $this=$(this),iwidth=$this.width(),iheight=$this.height(),_newWidth=newWidth;$this.parents(".cmb-repeat-row").length&&!isSmall&&(_newWidth=newWidth-91,_newWidth=785>tableW?_newWidth-15:_newWidth);var newHeight=Math.round(_newWidth*iheight/iwidth);$this.width(_newWidth).height(newHeight)}):!0})},cmb.log=function(){l10n.script_debug&&console&&"function"==typeof console.log&&console.log.apply(console,arguments)},cmb.spinner=function($context,hide){var m=hide?"removeClass":"addClass";$(".cmb-spinner",$context)[m]("is-active")},cmb.doAjax=function($obj){var oembed_url=$obj.val();if(!(oembed_url.length<6)){var field_id=$obj.attr("id"),$context=$obj.closest(".cmb-td"),$embed_container=$context.find(".embed-status"),$embed_wrap=$context.find(".embed_wrap"),$child_el=$embed_container.find(":first-child"),oembed_width=$embed_container.length&&$child_el.length?$child_el.width():$obj.width();cmb.log("oembed_url",oembed_url,field_id),cmb.spinner($context),$embed_wrap.html(""),setTimeout(function(){$(".cmb2-oembed:focus").val()===oembed_url&&$.ajax({type:"post",dataType:"json",url:l10n.ajaxurl,data:{action:"cmb2_oembed_handler",oembed_url:oembed_url,oembed_width:oembed_width>300?oembed_width:300,field_id:field_id,object_id:$obj.data("objectid"),object_type:$obj.data("objecttype"),cmb2_ajax_nonce:l10n.ajax_nonce},success:function(response){cmb.log(response),cmb.spinner($context,!0),$embed_wrap.html(response.data)}})},500)}},cmb.trigger=function(evtName){var args=Array.prototype.slice.call(arguments,1);args.push(cmb),$document.trigger(evtName,args)},cmb.triggerElement=function($el,evtName){var args=Array.prototype.slice.call(arguments,2);args.push(cmb),$el.trigger(evtName,args)},cmb.replaceLast=function(string,search,replace){var n=string.lastIndexOf(search);return string.slice(0,n)+string.slice(n).replace(search,replace)},$(cmb.init)}(window,document,jQuery,window.CMB2),window.CMB2=window.CMB2||{},window.CMB2.wysiwyg=window.CMB2.wysiwyg||{},function(window,document,$,wysiwyg,undefined){"use strict";function delayedInit(){0===toBeDestroyed.length?toBeInitialized.forEach(function(toInit){toBeInitialized.splice(toBeInitialized.indexOf(toInit),1),wysiwyg.init.apply(wysiwyg,toInit)}):window.setTimeout(delayedInit,100)}function delayedDestroy(){toBeDestroyed.forEach(function(id){toBeDestroyed.splice(toBeDestroyed.indexOf(id),1),wysiwyg.destroy(id)})}function getGroupData(data){var groupid=data.groupid,fieldid=data.fieldid;return all[groupid]&&all[groupid][fieldid]||(all[groupid]=all[groupid]||{},all[groupid][fieldid]={template:wp.template("cmb2-wysiwyg-"+groupid+"-"+fieldid),defaults:{mce:$.extend({},tinyMCEPreInit.mceInit["cmb2_i_"+groupid+fieldid]),qt:$.extend({},tinyMCEPreInit.qtInit["cmb2_i_"+groupid+fieldid])}},delete tinyMCEPreInit.mceInit["cmb2_i_"+groupid+fieldid],delete tinyMCEPreInit.qtInit["cmb2_i_"+groupid+fieldid]),all[groupid][fieldid]}function initOptions(options){var prop,newSettings,newQTS,nameRegex=new RegExp("cmb2_n_"+options.groupid+options.fieldid,"g"),idRegex=new RegExp("cmb2_i_"+options.groupid+options.fieldid,"g");if("undefined"==typeof tinyMCEPreInit.mceInit[options.id]){newSettings=$.extend({},options.defaults.mce);for(prop in newSettings)"string"==typeof newSettings[prop]&&(newSettings[prop]=newSettings[prop].replace(idRegex,options.id).replace(nameRegex,options.name));tinyMCEPreInit.mceInit[options.id]=newSettings}if("undefined"==typeof tinyMCEPreInit.qtInit[options.id]){newQTS=$.extend({},options.defaults.qt);for(prop in newQTS)"string"==typeof newQTS[prop]&&(newQTS[prop]=newQTS[prop].replace(idRegex,options.id).replace(nameRegex,options.name));tinyMCEPreInit.qtInit[options.id]=newQTS}}var toBeDestroyed=[],toBeInitialized=[],all=wysiwyg.all={};wysiwyg.initAll=function(){var $this,data,initiated;$(".cmb2-wysiwyg-placeholder").each(function(){$this=$(this),data=$this.data(),data.groupid&&(data.id=$this.attr("id"),data.name=$this.attr("name"),data.value=$this.val(),wysiwyg.init($this,data,!1),initiated=!0)}),!0===initiated&&("undefined"!=typeof window.QTags&&window.QTags._buttonsInit(),$(document).on("cmb2_add_row",wysiwyg.addRow).on("cmb2_remove_group_row_start",wysiwyg.destroyRowEditors).on("cmb2_shift_rows_start",wysiwyg.shiftStart).on("cmb2_shift_rows_complete",wysiwyg.shiftComplete))},wysiwyg.addRow=function(evt,$row){wysiwyg.initRow($row)},wysiwyg.destroyRowEditors=function(evt,$btn){wysiwyg.destroy($btn.parents(".cmb-repeatable-grouping").find(".wp-editor-area").attr("id"))},wysiwyg.shiftStart=function(evt,$btn,$from,$to){$from.add($to).find(".wp-editor-wrap textarea").each(function(){wysiwyg.destroy($(this).attr("id"))})},wysiwyg.shiftComplete=function(evt,$btn,$from,$to){$from.add($to).each(function(){wysiwyg.initRow($(this))})},wysiwyg.initRow=function($row){var $toReplace,data;$row.find(".cmb2-wysiwyg-inner-wrap").each(function(){$toReplace=$(this),data=$toReplace.data(),data.iterator=$row.data("iterator"),data.fieldid=data.id,data.id=data.groupid+"_"+data.iterator+"_"+data.fieldid,data.name=data.groupid+"["+data.iterator+"]["+data.fieldid+"]",data.value=$toReplace.find(".wp-editor-area").length?$toReplace.find(".wp-editor-area").val():"",0===toBeDestroyed.length?wysiwyg.init($toReplace,data):(toBeInitialized.push([$toReplace,data]),window.setTimeout(delayedInit,100))})},wysiwyg.init=function($toReplace,data,buttonsInit){if(!data.groupid)return!1;var mceActive=window.cmb2_l10.user_can_richedit&&window.tinyMCE,qtActive="function"==typeof window.quicktags;$.extend(data,getGroupData(data)),initOptions(data),$toReplace.replaceWith(data.template(data)),mceActive&&window.tinyMCE.init(tinyMCEPreInit.mceInit[data.id]),qtActive&&window.quicktags(tinyMCEPreInit.qtInit[data.id]),mceActive&&$(document.getElementById(data.id)).parents(".wp-editor-wrap").removeClass("html-active").addClass("tmce-active"),!1!==buttonsInit&&"undefined"!=typeof window.QTags&&window.QTags._buttonsInit()},wysiwyg.destroy=function(id){if(window.cmb2_l10.user_can_richedit&&window.tinyMCE){var editor=tinyMCE.get(id);null!==editor&&"undefined"!=typeof editor?(editor.destroy(),"undefined"==typeof tinyMCEPreInit.mceInit[id]&&delete tinyMCEPreInit.mceInit[id],"undefined"==typeof tinyMCEPreInit.qtInit[id]&&delete tinyMCEPreInit.qtInit[id]):-1===toBeDestroyed.indexOf(id)&&(toBeDestroyed.push(id),window.setTimeout(delayedDestroy,100))}},$(document).on("cmb_init",wysiwyg.initAll)}(window,document,jQuery,window.CMB2.wysiwyg);
vendor/CMB2/js/index.php CHANGED
@@ -1,2 +1,2 @@
1
  <?php
2
- // Silence is golden
1
  <?php
2
+ // Silence is golden
vendor/CMB2/js/wp-color-picker-alpha.js ADDED
@@ -0,0 +1,496 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**!
2
+ * wp-color-picker-alpha
3
+ *
4
+ * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker
5
+ * Only run in input and is defined data alpha in true
6
+ *
7
+ * Version: 2.1.3
8
+ * https://github.com/kallookoo/wp-color-picker-alpha
9
+ * Licensed under the GPLv2 license.
10
+ */
11
+ ( function( $ ) {
12
+ // Prevent double-init.
13
+ if ( $.wp.wpColorPicker.prototype._hasAlpha ) {
14
+ return;
15
+ }
16
+
17
+ // Variable for some backgrounds ( grid )
18
+ var image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==',
19
+ // html stuff for wpColorPicker copy of the original color-picker.js
20
+ _after = '<div class="wp-picker-holder" />',
21
+ _wrap = '<div class="wp-picker-container" />',
22
+ _button = '<input type="button" class="button button-small" />',
23
+ // Prevent CSS issues in < WordPress 4.9
24
+ _deprecated = ( wpColorPickerL10n.current !== undefined );
25
+ // Declare some global variables when is deprecated or not
26
+ if ( _deprecated ) {
27
+ var _before = '<a tabindex="0" class="wp-color-result" />';
28
+ } else {
29
+ var _before = '<button type="button" class="button wp-color-result" aria-expanded="false"><span class="wp-color-result-text"></span></button>',
30
+ _wrappingLabel = '<label></label>',
31
+ _wrappingLabelText = '<span class="screen-reader-text"></span>';
32
+ }
33
+ /**
34
+ * Overwrite Color
35
+ * for enable support rbga
36
+ */
37
+ Color.fn.toString = function() {
38
+ if ( this._alpha < 1 )
39
+ return this.toCSS( 'rgba', this._alpha ).replace( /\s+/g, '' );
40
+
41
+ var hex = parseInt( this._color, 10 ).toString( 16 );
42
+
43
+ if ( this.error )
44
+ return '';
45
+
46
+ if ( hex.length < 6 )
47
+ hex = ( '00000' + hex ).substr( -6 );
48
+
49
+ return '#' + hex;
50
+ };
51
+
52
+ /**
53
+ * Overwrite wpColorPicker
54
+ */
55
+ $.widget( 'wp.wpColorPicker', $.wp.wpColorPicker, {
56
+ _hasAlpha: true,
57
+ /**
58
+ * @summary Creates the color picker.
59
+ *
60
+ * Creates the color picker, sets default values, css classes and wraps it all in HTML.
61
+ *
62
+ * @since 3.5.0
63
+ *
64
+ * @access private
65
+ *
66
+ * @returns {void}
67
+ */
68
+ _create: function() {
69
+ // Return early if Iris support is missing.
70
+ if ( ! $.support.iris ) {
71
+ return;
72
+ }
73
+
74
+ var self = this,
75
+ el = self.element;
76
+
77
+ // Override default options with options bound to the element.
78
+ $.extend( self.options, el.data() );
79
+
80
+ // Create a color picker which only allows adjustments to the hue.
81
+ if ( self.options.type === 'hue' ) {
82
+ return self._createHueOnly();
83
+ }
84
+
85
+ // Bind the close event.
86
+ self.close = $.proxy( self.close, self );
87
+
88
+ self.initialValue = el.val();
89
+
90
+ // Add a CSS class to the input field.
91
+ el.addClass( 'wp-color-picker' );
92
+
93
+ if ( _deprecated ) {
94
+ el.hide().wrap( _wrap );
95
+ self.wrap = el.parent();
96
+ self.toggler = $( _before )
97
+ .insertBefore( el )
98
+ .css( { backgroundColor : self.initialValue } )
99
+ .attr( 'title', wpColorPickerL10n.pick )
100
+ .attr( 'data-current', wpColorPickerL10n.current );
101
+ self.pickerContainer = $( _after ).insertAfter( el );
102
+ self.button = $( _button ).addClass('hidden');
103
+ } else {
104
+ /*
105
+ * Check if there's already a wrapping label, e.g. in the Customizer.
106
+ * If there's no label, add a default one to match the Customizer template.
107
+ */
108
+ if ( ! el.parent( 'label' ).length ) {
109
+ // Wrap the input field in the default label.
110
+ el.wrap( _wrappingLabel );
111
+ // Insert the default label text.
112
+ self.wrappingLabelText = $( _wrappingLabelText )
113
+ .insertBefore( el )
114
+ .text( wpColorPickerL10n.defaultLabel );
115
+ }
116
+
117
+ /*
118
+ * At this point, either it's the standalone version or the Customizer
119
+ * one, we have a wrapping label to use as hook in the DOM, let's store it.
120
+ */
121
+ self.wrappingLabel = el.parent();
122
+
123
+ // Wrap the label in the main wrapper.
124
+ self.wrappingLabel.wrap( _wrap );
125
+ // Store a reference to the main wrapper.
126
+ self.wrap = self.wrappingLabel.parent();
127
+ // Set up the toggle button and insert it before the wrapping label.
128
+ self.toggler = $( _before )
129
+ .insertBefore( self.wrappingLabel )
130
+ .css( { backgroundColor: self.initialValue } );
131
+ // Set the toggle button span element text.
132
+ self.toggler.find( '.wp-color-result-text' ).text( wpColorPickerL10n.pick );
133
+ // Set up the Iris container and insert it after the wrapping label.
134
+ self.pickerContainer = $( _after ).insertAfter( self.wrappingLabel );
135
+ // Store a reference to the Clear/Default button.
136
+ self.button = $( _button );
137
+ }
138
+
139
+ // Set up the Clear/Default button.
140
+ if ( self.options.defaultColor ) {
141
+ self.button.addClass( 'wp-picker-default' ).val( wpColorPickerL10n.defaultString );
142
+ if ( ! _deprecated ) {
143
+ self.button.attr( 'aria-label', wpColorPickerL10n.defaultAriaLabel );
144
+ }
145
+ } else {
146
+ self.button.addClass( 'wp-picker-clear' ).val( wpColorPickerL10n.clear );
147
+ if ( ! _deprecated ) {
148
+ self.button.attr( 'aria-label', wpColorPickerL10n.clearAriaLabel );
149
+ }
150
+ }
151
+
152
+ if ( _deprecated ) {
153
+ el.wrap( '<span class="wp-picker-input-wrap" />' ).after( self.button );
154
+ } else {
155
+ // Wrap the wrapping label in its wrapper and append the Clear/Default button.
156
+ self.wrappingLabel
157
+ .wrap( '<span class="wp-picker-input-wrap hidden" />' )
158
+ .after( self.button );
159
+
160
+ /*
161
+ * The input wrapper now contains the label+input+Clear/Default button.
162
+ * Store a reference to the input wrapper: we'll use this to toggle
163
+ * the controls visibility.
164
+ */
165
+ self.inputWrapper = el.closest( '.wp-picker-input-wrap' );
166
+ }
167
+
168
+ el.iris( {
169
+ target: self.pickerContainer,
170
+ hide: self.options.hide,
171
+ width: self.options.width,
172
+ mode: self.options.mode,
173
+ palettes: self.options.palettes,
174
+ /**
175
+ * @summary Handles the onChange event if one has been defined in the options.
176
+ *
177
+ * Handles the onChange event if one has been defined in the options and additionally
178
+ * sets the background color for the toggler element.
179
+ *
180
+ * @since 3.5.0
181
+ *
182
+ * @param {Event} event The event that's being called.
183
+ * @param {HTMLElement} ui The HTMLElement containing the color picker.
184
+ *
185
+ * @returns {void}
186
+ */
187
+ change: function( event, ui ) {
188
+ if ( self.options.alpha ) {
189
+ self.toggler.css( { 'background-image' : 'url(' + image + ')' } );
190
+ if ( _deprecated ) {
191
+ self.toggler.html( '<span class="color-alpha" />' );
192
+ } else {
193
+ self.toggler.css( {
194
+ 'position' : 'relative'
195
+ } );
196
+ if ( self.toggler.find('span.color-alpha').length == 0 ) {
197
+ self.toggler.append('<span class="color-alpha" />');
198
+ }
199
+ }
200
+
201
+ self.toggler.find( 'span.color-alpha' ).css( {
202
+ 'width' : '30px',
203
+ 'height' : '24px',
204
+ 'position' : 'absolute',
205
+ 'top' : 0,
206
+ 'left' : 0,
207
+ 'border-top-left-radius' : '2px',
208
+ 'border-bottom-left-radius' : '2px',
209
+ 'background' : ui.color.toString()
210
+ } );
211
+ } else {
212
+ self.toggler.css( { backgroundColor : ui.color.toString() } );
213
+ }
214
+
215
+ if ( $.isFunction( self.options.change ) ) {
216
+ self.options.change.call( this, event, ui );
217
+ }
218
+ }
219
+ } );
220
+
221
+ el.val( self.initialValue );
222
+ self._addListeners();
223
+
224
+ // Force the color picker to always be closed on initial load.
225
+ if ( ! self.options.hide ) {
226
+ self.toggler.click();
227
+ }
228
+ },
229
+ /**
230
+ * @summary Binds event listeners to the color picker.
231
+ *
232
+ * @since 3.5.0
233
+ *
234
+ * @access private
235
+ *
236
+ * @returns {void}
237
+ */
238
+ _addListeners: function() {
239
+ var self = this;
240
+
241
+ /**
242
+ * @summary Prevent any clicks inside this widget from leaking to the top and closing it.
243
+ *
244
+ * @since 3.5.0
245
+ *
246
+ * @param {Event} event The event that's being called.
247
+ *
248
+ * @returs {void}
249
+ */
250
+ self.wrap.on( 'click.wpcolorpicker', function( event ) {
251
+ event.stopPropagation();
252
+ });
253
+
254
+ /**
255
+ * @summary Open or close the color picker depending on the class.
256
+ *
257
+ * @since 3.5
258
+ */
259
+ self.toggler.click( function(){
260
+ if ( self.toggler.hasClass( 'wp-picker-open' ) ) {
261
+ self.close();
262
+ } else {
263
+ self.open();
264
+ }
265
+ });
266
+
267
+ /**
268
+ * @summary Checks if value is empty when changing the color in the color picker.
269
+ *
270
+ * Checks if value is empty when changing the color in the color picker.
271
+ * If so, the background color is cleared.
272
+ *
273
+ * @since 3.5.0
274
+ *
275
+ * @param {Event} event The event that's being called.
276
+ *
277
+ * @returns {void}
278
+ */
279
+ self.element.on( 'change', function( event ) {
280
+ // Empty or Error = clear
281
+ if ( $( this ).val() === '' || self.element.hasClass( 'iris-error' ) ) {
282
+ if ( self.options.alpha ) {
283
+ if ( _deprecated ) {
284
+ self.toggler.removeAttr( 'style' );
285
+ }
286
+ self.toggler.find( 'span.color-alpha' ).css( 'backgroundColor', '' );
287
+ } else {
288
+ self.toggler.css( 'backgroundColor', '' );
289
+ }
290
+
291
+ // fire clear callback if we have one
292
+ if ( $.isFunction( self.options.clear ) )
293
+ self.options.clear.call( this, event );
294
+ }
295
+ } );
296
+
297
+ /**
298
+ * @summary Enables the user to clear or revert the color in the color picker.
299
+ *
300
+ * Enables the user to either clear the color in the color picker or revert back to the default color.
301
+ *
302
+ * @since 3.5.0
303
+ *
304
+ * @param {Event} event The event that's being called.
305
+ *
306
+ * @returns {void}
307
+ */
308
+ self.button.on( 'click', function( event ) {
309
+ if ( $( this ).hasClass( 'wp-picker-clear' ) ) {
310
+ self.element.val( '' );
311
+ if ( self.options.alpha ) {
312
+ if ( _deprecated ) {
313
+ self.toggler.removeAttr( 'style' );
314
+ }
315
+ self.toggler.find( 'span.color-alpha' ).css( 'backgroundColor', '' );
316
+ } else {
317
+ self.toggler.css( 'backgroundColor', '' );
318
+ }
319
+
320
+ if ( $.isFunction( self.options.clear ) )
321
+ self.options.clear.call( this, event );
322
+
323
+ } else if ( $( this ).hasClass( 'wp-picker-default' ) ) {
324
+ self.element.val( self.options.defaultColor ).change();
325
+ }
326
+ });
327
+ },
328
+ });
329
+
330
+ /**
331
+ * Overwrite iris
332
+ */
333
+ $.widget( 'a8c.iris', $.a8c.iris, {
334
+ _create: function() {
335
+ this._super();
336
+
337
+ // Global option for check is mode rbga is enabled
338
+ this.options.alpha = this.element.data( 'alpha' ) || false;
339
+
340
+ // Is not input disabled
341
+ if ( ! this.element.is( ':input' ) )
342
+ this.options.alpha = false;
343
+
344
+ if ( typeof this.options.alpha !== 'undefined' && this.options.alpha ) {
345
+ var self = this,
346
+ el = self.element,
347
+ _html = '<div class="iris-strip iris-slider iris-alpha-slider"><div class="iris-slider-offset iris-slider-offset-alpha"></div></div>',
348
+ aContainer = $( _html ).appendTo( self.picker.find( '.iris-picker-inner' ) ),
349
+ aSlider = aContainer.find( '.iris-slider-offset-alpha' ),
350
+ controls = {
351
+ aContainer : aContainer,
352
+ aSlider : aSlider
353
+ };
354
+
355
+ if ( typeof el.data( 'custom-width' ) !== 'undefined' ) {
356
+ self.options.customWidth = parseInt( el.data( 'custom-width' ) ) || 0;
357
+ } else {
358
+ self.options.customWidth = 100;
359
+ }
360
+
361
+ // Set default width for input reset
362
+ self.options.defaultWidth = el.width();
363
+
364
+ // Update width for input
365
+ if ( self._color._alpha < 1 || self._color.toString().indexOf('rgb') != -1 )
366
+ el.width( parseInt( self.options.defaultWidth + self.options.customWidth ) );
367
+
368
+ // Push new controls
369
+ $.each( controls, function( k, v ) {
370
+ self.controls[k] = v;
371
+ } );
372
+
373
+ // Change size strip and add margin for sliders
374
+ self.controls.square.css( { 'margin-right': '0' } );
375
+ var emptyWidth = ( self.picker.width() - self.controls.square.width() - 20 ),
376
+ stripsMargin = ( emptyWidth / 6 ),
377
+ stripsWidth = ( ( emptyWidth / 2 ) - stripsMargin );
378
+
379
+ $.each( [ 'aContainer', 'strip' ], function( k, v ) {
380
+ self.controls[v].width( stripsWidth ).css( { 'margin-left' : stripsMargin + 'px' } );
381
+ } );
382
+
383
+ // Add new slider
384
+ self._initControls();
385
+
386
+ // For updated widget
387
+ self._change();
388
+ }
389
+ },
390
+ _initControls: function() {
391
+ this._super();
392
+
393
+ if ( this.options.alpha ) {
394
+ var self = this,
395
+ controls = self.controls;
396
+
397
+ controls.aSlider.slider({
398
+ orientation : 'vertical',
399
+ min : 0,
400
+ max : 100,
401
+ step : 1,
402
+ value : parseInt( self._color._alpha * 100 ),
403
+ slide : function( event, ui ) {
404
+ // Update alpha value
405
+ self._color._alpha = parseFloat( ui.value / 100 );
406
+ self._change.apply( self, arguments );
407
+ }
408
+ });
409
+ }
410
+ },
411
+ _change: function() {
412
+ this._super();
413
+
414
+ var self = this,
415
+ el = self.element;
416
+
417
+ if ( this.options.alpha ) {
418
+ var controls = self.controls,
419
+ alpha = parseInt( self._color._alpha * 100 ),
420
+ color = self._color.toRgb(),
421
+ gradient = [
422
+ 'rgb(' + color.r + ',' + color.g + ',' + color.b + ') 0%',
423
+ 'rgba(' + color.r + ',' + color.g + ',' + color.b + ', 0) 100%'
424
+ ],
425
+ defaultWidth = self.options.defaultWidth,
426
+ customWidth = self.options.customWidth,
427
+ target = self.picker.closest( '.wp-picker-container' ).find( '.wp-color-result' );
428
+
429
+ // Generate background slider alpha, only for CSS3 old browser fuck!! :)
430
+ controls.aContainer.css( { 'background' : 'linear-gradient(to bottom, ' + gradient.join( ', ' ) + '), url(' + image + ')' } );
431
+
432
+ if ( target.hasClass( 'wp-picker-open' ) ) {
433
+ // Update alpha value
434
+ controls.aSlider.slider( 'value', alpha );
435
+
436
+ /**
437
+ * Disabled change opacity in default slider Saturation ( only is alpha enabled )
438
+ * and change input width for view all value
439
+ */
440
+ if ( self._color._alpha < 1 ) {
441
+ controls.strip.attr( 'style', controls.strip.attr( 'style' ).replace( /rgba\(([0-9]+,)(\s+)?([0-9]+,)(\s+)?([0-9]+)(,(\s+)?[0-9\.]+)\)/g, 'rgb($1$3$5)' ) );
442
+ el.width( parseInt( defaultWidth + customWidth ) );
443
+ } else {
444
+ el.width( defaultWidth );
445
+ }
446
+ }
447
+ }
448
+
449
+ var reset = el.data( 'reset-alpha' ) || false;
450
+
451
+ if ( reset ) {
452
+ self.picker.find( '.iris-palette-container' ).on( 'click.palette', '.iris-palette', function() {
453
+ self._color._alpha = 1;
454
+ self.active = 'external';
455
+ self._change();
456
+ } );
457
+ }
458
+ },
459
+ _addInputListeners: function( input ) {
460
+ var self = this,
461
+ debounceTimeout = 100,
462
+ callback = function( event ) {
463
+ var color = new Color( input.val() ),
464
+ val = input.val();
465
+
466
+ input.removeClass( 'iris-error' );
467
+ // we gave a bad color
468
+ if ( color.error ) {
469
+ // don't error on an empty input
470
+ if ( val !== '' )
471
+ input.addClass( 'iris-error' );
472
+ } else {
473
+ if ( color.toString() !== self._color.toString() ) {
474
+ // let's not do this on keyup for hex shortcodes
475
+ if ( ! ( event.type === 'keyup' && val.match( /^[0-9a-fA-F]{3}$/ ) ) )
476
+ self._setOption( 'color', color.toString() );
477
+ }
478
+ }
479
+ };
480
+
481
+ input.on( 'change', callback ).on( 'keyup', self._debounce( callback, debounceTimeout ) );
482
+
483
+ // If we initialized hidden, show on first focus. The rest is up to you.
484
+ if ( self.options.hide ) {
485
+ input.on( 'focus', function() {
486
+ self.show();
487
+ } );
488
+ }
489
+ }
490
+ } );
491
+ }( jQuery ) );
492
+
493
+ // Auto Call plugin is class is color-picker
494
+ jQuery( document ).ready( function( $ ) {
495
+ $( '.color-picker' ).wpColorPicker();
496
+ } );
vendor/CMB2/js/wp-color-picker-alpha.min.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /**!
2
+ * wp-color-picker-alpha
3
+ *
4
+ * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker
5
+ * Only run in input and is defined data alpha in true
6
+ *
7
+ * Version: 2.1.3
8
+ * https://github.com/kallookoo/wp-color-picker-alpha
9
+ * Licensed under the GPLv2 license.
10
+ */
11
+ !function(a){if(!a.wp.wpColorPicker.prototype._hasAlpha){var b="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==",c='<div class="wp-picker-holder" />',d='<div class="wp-picker-container" />',e='<input type="button" class="button button-small" />',f=void 0!==wpColorPickerL10n.current;if(f)var g='<a tabindex="0" class="wp-color-result" />';else var g='<button type="button" class="button wp-color-result" aria-expanded="false"><span class="wp-color-result-text"></span></button>',h="<label></label>",i='<span class="screen-reader-text"></span>';Color.fn.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var a=parseInt(this._color,10).toString(16);return this.error?"":(a.length<6&&(a=("00000"+a).substr(-6)),"#"+a)},a.widget("wp.wpColorPicker",a.wp.wpColorPicker,{_hasAlpha:!0,_create:function(){if(a.support.iris){var j=this,k=j.element;if(a.extend(j.options,k.data()),"hue"===j.options.type)return j._createHueOnly();j.close=a.proxy(j.close,j),j.initialValue=k.val(),k.addClass("wp-color-picker"),f?(k.hide().wrap(d),j.wrap=k.parent(),j.toggler=a(g).insertBefore(k).css({backgroundColor:j.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current),j.pickerContainer=a(c).insertAfter(k),j.button=a(e).addClass("hidden")):(k.parent("label").length||(k.wrap(h),j.wrappingLabelText=a(i).insertBefore(k).text(wpColorPickerL10n.defaultLabel)),j.wrappingLabel=k.parent(),j.wrappingLabel.wrap(d),j.wrap=j.wrappingLabel.parent(),j.toggler=a(g).insertBefore(j.wrappingLabel).css({backgroundColor:j.initialValue}),j.toggler.find(".wp-color-result-text").text(wpColorPickerL10n.pick),j.pickerContainer=a(c).insertAfter(j.wrappingLabel),j.button=a(e)),j.options.defaultColor?(j.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString),f||j.button.attr("aria-label",wpColorPickerL10n.defaultAriaLabel)):(j.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear),f||j.button.attr("aria-label",wpColorPickerL10n.clearAriaLabel)),f?k.wrap('<span class="wp-picker-input-wrap" />').after(j.button):(j.wrappingLabel.wrap('<span class="wp-picker-input-wrap hidden" />').after(j.button),j.inputWrapper=k.closest(".wp-picker-input-wrap")),k.iris({target:j.pickerContainer,hide:j.options.hide,width:j.options.width,mode:j.options.mode,palettes:j.options.palettes,change:function(c,d){j.options.alpha?(j.toggler.css({"background-image":"url("+b+")"}),f?j.toggler.html('<span class="color-alpha" />'):(j.toggler.css({position:"relative"}),0==j.toggler.find("span.color-alpha").length&&j.toggler.append('<span class="color-alpha" />')),j.toggler.find("span.color-alpha").css({width:"30px",height:"24px",position:"absolute",top:0,left:0,"border-top-left-radius":"2px","border-bottom-left-radius":"2px",background:d.color.toString()})):j.toggler.css({backgroundColor:d.color.toString()}),a.isFunction(j.options.change)&&j.options.change.call(this,c,d)}}),k.val(j.initialValue),j._addListeners(),j.options.hide||j.toggler.click()}},_addListeners:function(){var b=this;b.wrap.on("click.wpcolorpicker",function(a){a.stopPropagation()}),b.toggler.click(function(){b.toggler.hasClass("wp-picker-open")?b.close():b.open()}),b.element.on("change",function(c){(""===a(this).val()||b.element.hasClass("iris-error"))&&(b.options.alpha?(f&&b.toggler.removeAttr("style"),b.toggler.find("span.color-alpha").css("backgroundColor","")):b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c))}),b.button.on("click",function(c){a(this).hasClass("wp-picker-clear")?(b.element.val(""),b.options.alpha?(f&&b.toggler.removeAttr("style"),b.toggler.find("span.color-alpha").css("backgroundColor","")):b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c)):a(this).hasClass("wp-picker-default")&&b.element.val(b.options.defaultColor).change()})}}),a.widget("a8c.iris",a.a8c.iris,{_create:function(){if(this._super(),this.options.alpha=this.element.data("alpha")||!1,this.element.is(":input")||(this.options.alpha=!1),"undefined"!=typeof this.options.alpha&&this.options.alpha){var b=this,c=b.element,d='<div class="iris-strip iris-slider iris-alpha-slider"><div class="iris-slider-offset iris-slider-offset-alpha"></div></div>',e=a(d).appendTo(b.picker.find(".iris-picker-inner")),f=e.find(".iris-slider-offset-alpha"),g={aContainer:e,aSlider:f};"undefined"!=typeof c.data("custom-width")?b.options.customWidth=parseInt(c.data("custom-width"))||0:b.options.customWidth=100,b.options.defaultWidth=c.width(),(b._color._alpha<1||-1!=b._color.toString().indexOf("rgb"))&&c.width(parseInt(b.options.defaultWidth+b.options.customWidth)),a.each(g,function(a,c){b.controls[a]=c}),b.controls.square.css({"margin-right":"0"});var h=b.picker.width()-b.controls.square.width()-20,i=h/6,j=h/2-i;a.each(["aContainer","strip"],function(a,c){b.controls[c].width(j).css({"margin-left":i+"px"})}),b._initControls(),b._change()}},_initControls:function(){if(this._super(),this.options.alpha){var a=this,b=a.controls;b.aSlider.slider({orientation:"vertical",min:0,max:100,step:1,value:parseInt(100*a._color._alpha),slide:function(b,c){a._color._alpha=parseFloat(c.value/100),a._change.apply(a,arguments)}})}},_change:function(){this._super();var a=this,c=a.element;if(this.options.alpha){var d=a.controls,e=parseInt(100*a._color._alpha),f=a._color.toRgb(),g=["rgb("+f.r+","+f.g+","+f.b+") 0%","rgba("+f.r+","+f.g+","+f.b+", 0) 100%"],h=a.options.defaultWidth,i=a.options.customWidth,j=a.picker.closest(".wp-picker-container").find(".wp-color-result");d.aContainer.css({background:"linear-gradient(to bottom, "+g.join(", ")+"), url("+b+")"}),j.hasClass("wp-picker-open")&&(d.aSlider.slider("value",e),a._color._alpha<1?(d.strip.attr("style",d.strip.attr("style").replace(/rgba\(([0-9]+,)(\s+)?([0-9]+,)(\s+)?([0-9]+)(,(\s+)?[0-9\.]+)\)/g,"rgb($1$3$5)")),c.width(parseInt(h+i))):c.width(h))}var k=c.data("reset-alpha")||!1;k&&a.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){a._color._alpha=1,a.active="external",a._change()})},_addInputListeners:function(a){var b=this,c=100,d=function(c){var d=new Color(a.val()),e=a.val();a.removeClass("iris-error"),d.error?""!==e&&a.addClass("iris-error"):d.toString()!==b._color.toString()&&("keyup"===c.type&&e.match(/^[0-9a-fA-F]{3}$/)||b._setOption("color",d.toString()))};a.on("change",d).on("keyup",b._debounce(d,c)),b.options.hide&&a.on("focus",function(){b.show()})}})}}(jQuery),jQuery(document).ready(function(a){a(".color-picker").wpColorPicker()});
vendor/CMB2/languages/cmb2-ach.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-af.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-an.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ar.po CHANGED
@@ -499,8 +499,8 @@ msgid "CMB2"
499
  msgstr "CMB2"
500
 
501
  #. Plugin URI of the plugin/theme
502
- msgid "https://github.com/WebDevStudios/CMB2"
503
- msgstr "https://github.com/WebDevStudios/CMB2"
504
 
505
  #. Description of the plugin/theme
506
  msgid ""
499
  msgstr "CMB2"
500
 
501
  #. Plugin URI of the plugin/theme
502
+ msgid "https://github.com/CMB2/CMB2"
503
+ msgstr "https://github.com/CMB2/CMB2"
504
 
505
  #. Description of the plugin/theme
506
  msgid ""
vendor/CMB2/languages/cmb2-ary.po CHANGED
@@ -322,8 +322,8 @@ msgid "CMB2"
322
  msgstr "CMB2"
323
 
324
  #. Plugin URI of the plugin/theme
325
- msgid "https://github.com/WebDevStudios/CMB2"
326
- msgstr "https://github.com/WebDevStudios/CMB2"
327
 
328
  #. Author of the plugin/theme
329
  msgid "WebDevStudios"
322
  msgstr "CMB2"
323
 
324
  #. Plugin URI of the plugin/theme
325
+ msgid "https://github.com/CMB2/CMB2"
326
+ msgstr "https://github.com/CMB2/CMB2"
327
 
328
  #. Author of the plugin/theme
329
  msgid "WebDevStudios"
vendor/CMB2/languages/cmb2-as.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-az.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-be.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-bg.po CHANGED
@@ -455,7 +455,7 @@ msgid "CMB2"
455
  msgstr ""
456
 
457
  #. Plugin URI of the plugin/theme
458
- msgid "https://github.com/WebDevStudios/CMB2"
459
  msgstr ""
460
 
461
  #. Description of the plugin/theme
455
  msgstr ""
456
 
457
  #. Plugin URI of the plugin/theme
458
+ msgid "https://github.com/CMB2/CMB2"
459
  msgstr ""
460
 
461
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-bg_BG.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-bn_BD.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-br.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-bs.po CHANGED
@@ -455,7 +455,7 @@ msgid "CMB2"
455
  msgstr ""
456
 
457
  #. Plugin URI of the plugin/theme
458
- msgid "https://github.com/WebDevStudios/CMB2"
459
  msgstr ""
460
 
461
  #. Description of the plugin/theme
455
  msgstr ""
456
 
457
  #. Plugin URI of the plugin/theme
458
+ msgid "https://github.com/CMB2/CMB2"
459
  msgstr ""
460
 
461
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-bs_BA.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ca.mo CHANGED
Binary file
vendor/CMB2/languages/cmb2-ca.po CHANGED
@@ -347,7 +347,7 @@ msgstr ""
347
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
348
  #: tests/test-cmb-types.php:701
349
  msgid "File:"
350
- msgstr ""
351
 
352
  #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
353
  msgid "Clear"
@@ -449,7 +449,7 @@ msgstr "Suprimeix"
449
  #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
450
  #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
451
  msgid "Download"
452
- msgstr ""
453
 
454
  #: includes/CMB2_JS.php:141
455
  msgid "Select / Deselect All"
@@ -457,7 +457,7 @@ msgstr ""
457
 
458
  #: includes/CMB2_Types.php:194
459
  msgid "Add Row"
460
- msgstr ""
461
 
462
  #: includes/CMB2_hookup.php:145
463
  msgid ""
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
347
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
348
  #: tests/test-cmb-types.php:701
349
  msgid "File:"
350
+ msgstr "Arxiu:"
351
 
352
  #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
353
  msgid "Clear"
449
  #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
450
  #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
451
  msgid "Download"
452
+ msgstr "Descarregar"
453
 
454
  #: includes/CMB2_JS.php:141
455
  msgid "Select / Deselect All"
457
 
458
  #: includes/CMB2_Types.php:194
459
  msgid "Add Row"
460
+ msgstr "Afegeix fila"
461
 
462
  #: includes/CMB2_hookup.php:145
463
  msgid ""
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-co.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-cs_CZ.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-cy.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-da_DK.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-de_AT.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-de_CH.po CHANGED
@@ -498,8 +498,8 @@ msgid "CMB2"
498
  msgstr "CMB2"
499
 
500
  #. Plugin URI of the plugin/theme
501
- msgid "https://github.com/WebDevStudios/CMB2"
502
- msgstr "https://github.com/WebDevStudios/CMB2"
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
498
  msgstr "CMB2"
499
 
500
  #. Plugin URI of the plugin/theme
501
+ msgid "https://github.com/CMB2/CMB2"
502
+ msgstr "https://github.com/CMB2/CMB2"
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
vendor/CMB2/languages/cmb2-de_DE.po CHANGED
@@ -500,8 +500,8 @@ msgid "CMB2"
500
  msgstr "CMB2"
501
 
502
  #. Plugin URI of the plugin/theme
503
- msgid "https://github.com/WebDevStudios/CMB2"
504
- msgstr "https://github.com/WebDevStudios/CMB2"
505
 
506
  #. Description of the plugin/theme
507
  msgid ""
500
  msgstr "CMB2"
501
 
502
  #. Plugin URI of the plugin/theme
503
+ msgid "https://github.com/CMB2/CMB2"
504
+ msgstr "https://github.com/CMB2/CMB2"
505
 
506
  #. Description of the plugin/theme
507
  msgid ""
vendor/CMB2/languages/cmb2-dv.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-el.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-en@pirate.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-en_AU.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-en_CA.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-en_GB.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-eo.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-es_AR.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-es_CL.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-es_CO.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-es_ES.po CHANGED
@@ -500,8 +500,8 @@ msgid "CMB2"
500
  msgstr "CMB2"
501
 
502
  #. Plugin URI of the plugin/theme
503
- msgid "https://github.com/WebDevStudios/CMB2"
504
- msgstr "https://github.com/WebDevStudios/CMB2"
505
 
506
  #. Description of the plugin/theme
507
  msgid ""
500
  msgstr "CMB2"
501
 
502
  #. Plugin URI of the plugin/theme
503
+ msgid "https://github.com/CMB2/CMB2"
504
+ msgstr "https://github.com/CMB2/CMB2"
505
 
506
  #. Description of the plugin/theme
507
  msgid ""
vendor/CMB2/languages/cmb2-es_MX.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-es_PE.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-es_VE.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-et.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-eu.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-fa.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-fa_IR.mo CHANGED
Binary file
vendor/CMB2/languages/cmb2-fa_IR.po CHANGED
@@ -7,30 +7,31 @@ msgstr ""
7
  "Project-Id-Version: CMB2\n"
8
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
9
  "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
10
- "PO-Revision-Date: 2016-06-27 17:01+0000\n"
11
  "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
12
- "Language-Team: Persian (Iran) (http://www.transifex.com/wp-translations/cmb2/language/fa_IR/)\n"
 
13
  "MIME-Version: 1.0\n"
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
  "Content-Transfer-Encoding: 8bit\n"
16
  "Language: fa_IR\n"
17
  "Plural-Forms: nplurals=1; plural=0;\n"
18
- "X-Generator: grunt-wp-i18n 0.4.9\n"
19
- "X-Poedit-Basepath: ../\n"
20
- "X-Poedit-Bookmarks: \n"
21
- "X-Poedit-Country: United States\n"
22
- "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
23
- "X-Poedit-SearchPath-0: .\n"
24
  "X-Poedit-SourceCharset: UTF-8\n"
25
  "X-Textdomain-Support: yes\n"
 
26
 
27
  #: example-functions.php:117 tests/test-cmb-field.php:255
28
  msgid "Test Metabox"
29
- msgstr ""
30
 
31
  #: example-functions.php:130 example-functions.php:436
32
  msgid "Test Text"
33
- msgstr ""
34
 
35
  #: example-functions.php:131 example-functions.php:144
36
  #: example-functions.php:157 example-functions.php:165
@@ -52,19 +53,19 @@ msgstr ""
52
  #: example-functions.php:613 example-functions.php:650
53
  #: tests/test-cmb-field.php:267
54
  msgid "field description (optional)"
55
- msgstr ""
56
 
57
  #: example-functions.php:143
58
  msgid "Test Text Small"
59
- msgstr ""
60
 
61
  #: example-functions.php:156
62
  msgid "Test Text Medium"
63
- msgstr ""
64
 
65
  #: example-functions.php:164
66
  msgid "Custom Rendered Field"
67
- msgstr ""
68
 
69
  #: example-functions.php:172
70
  msgid "Website URL"
@@ -72,11 +73,11 @@ msgstr "آدرس وب سایت"
72
 
73
  #: example-functions.php:181
74
  msgid "Test Text Email"
75
- msgstr ""
76
 
77
  #: example-functions.php:189
78
  msgid "Test Time"
79
- msgstr ""
80
 
81
  #: example-functions.php:197 example-functions.php:198
82
  msgid "Time zone"
@@ -84,110 +85,110 @@ msgstr "زمان محلی"
84
 
85
  #: example-functions.php:204
86
  msgid "Test Date Picker"
87
- msgstr ""
88
 
89
  #: example-functions.php:212
90
  msgid "Test Date Picker (UNIX timestamp)"
91
- msgstr ""
92
 
93
  #: example-functions.php:220
94
  msgid "Test Date/Time Picker Combo (UNIX timestamp)"
95
- msgstr ""
96
 
97
  #: example-functions.php:237
98
  msgid "Test Money"
99
- msgstr ""
100
 
101
  #: example-functions.php:246
102
  msgid "Test Color Picker"
103
- msgstr ""
104
 
105
  #: example-functions.php:259
106
  msgid "Test Text Area"
107
- msgstr ""
108
 
109
  #: example-functions.php:266
110
  msgid "Test Text Area Small"
111
- msgstr ""
112
 
113
  #: example-functions.php:273
114
  msgid "Test Text Area for Code"
115
- msgstr ""
116
 
117
  #: example-functions.php:280
118
  msgid "Test Title Weeeee"
119
- msgstr ""
120
 
121
  #: example-functions.php:281
122
  msgid "This is a title description"
123
- msgstr ""
124
 
125
  #: example-functions.php:287
126
  msgid "Test Select"
127
- msgstr ""
128
 
129
  #: example-functions.php:293 example-functions.php:306
130
  #: example-functions.php:318
131
  msgid "Option One"
132
- msgstr ""
133
 
134
  #: example-functions.php:294 example-functions.php:307
135
  #: example-functions.php:319
136
  msgid "Option Two"
137
- msgstr ""
138
 
139
  #: example-functions.php:295 example-functions.php:308
140
  #: example-functions.php:320
141
  msgid "Option Three"
142
- msgstr ""
143
 
144
  #: example-functions.php:300
145
  msgid "Test Radio inline"
146
- msgstr ""
147
 
148
  #: example-functions.php:313
149
  msgid "Test Radio"
150
- msgstr ""
151
 
152
  #: example-functions.php:325
153
  msgid "Test Taxonomy Radio"
154
- msgstr ""
155
 
156
  #: example-functions.php:334
157
  msgid "Test Taxonomy Select"
158
- msgstr ""
159
 
160
  #: example-functions.php:342
161
  msgid "Test Taxonomy Multi Checkbox"
162
- msgstr ""
163
 
164
  #: example-functions.php:351
165
  msgid "Test Checkbox"
166
- msgstr ""
167
 
168
  #: example-functions.php:358 tests/test-cmb-field.php:266
169
  msgid "Test Multi Checkbox"
170
- msgstr ""
171
 
172
  #: example-functions.php:364 tests/test-cmb-field.php:272
173
  msgid "Check One"
174
- msgstr ""
175
 
176
  #: example-functions.php:365 tests/test-cmb-field.php:273
177
  msgid "Check Two"
178
- msgstr ""
179
 
180
  #: example-functions.php:366 tests/test-cmb-field.php:274
181
  msgid "Check Three"
182
- msgstr ""
183
 
184
  #: example-functions.php:372
185
  msgid "Test wysiwyg"
186
- msgstr ""
187
 
188
  #: example-functions.php:380
189
  msgid "Test Image"
190
- msgstr ""
191
 
192
  #: example-functions.php:381
193
  msgid "Upload an image or enter a URL."
@@ -195,49 +196,53 @@ msgstr "فایل آپلود کنید یا URL را وارد کنید."
195
 
196
  #: example-functions.php:387
197
  msgid "Multiple Files"
198
- msgstr ""
199
 
200
  #: example-functions.php:388
201
  msgid "Upload or add multiple images/attachments."
202
- msgstr ""
203
 
204
  #: example-functions.php:395
205
  msgid "oEmbed"
206
- msgstr ""
207
 
208
  #: example-functions.php:396
209
  msgid ""
210
  "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
211
- "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
 
212
  msgstr ""
 
 
 
213
 
214
  #: example-functions.php:427
215
  msgid "About Page Metabox"
216
- msgstr ""
217
 
218
  #: example-functions.php:456
219
  msgid "Repeating Field Group"
220
- msgstr ""
221
 
222
  #: example-functions.php:464
223
  msgid "Generates reusable form entries"
224
- msgstr ""
225
 
226
  #: example-functions.php:466
227
  msgid "Entry {#}"
228
- msgstr ""
229
 
230
  #: example-functions.php:467
231
  msgid "Add Another Entry"
232
- msgstr ""
233
 
234
  #: example-functions.php:468
235
  msgid "Remove Entry"
236
- msgstr ""
237
 
238
  #: example-functions.php:481
239
  msgid "Entry Title"
240
- msgstr ""
241
 
242
  #: example-functions.php:488
243
  msgid "Description"
@@ -245,11 +250,11 @@ msgstr "توضیح"
245
 
246
  #: example-functions.php:489
247
  msgid "Write a short description for this entry"
248
- msgstr ""
249
 
250
  #: example-functions.php:495
251
  msgid "Entry Image"
252
- msgstr ""
253
 
254
  #: example-functions.php:501
255
  msgid "Image Caption"
@@ -257,15 +262,15 @@ msgstr "توضیح تصویر"
257
 
258
  #: example-functions.php:520
259
  msgid "User Profile Metabox"
260
- msgstr ""
261
 
262
  #: example-functions.php:527 example-functions.php:597
263
  msgid "Extra Info"
264
- msgstr ""
265
 
266
  #: example-functions.php:535
267
  msgid "Avatar"
268
- msgstr "چهرک"
269
 
270
  #: example-functions.php:542
271
  msgid "Facebook URL"
@@ -273,43 +278,43 @@ msgstr "نشانی صفحه فیس بوک"
273
 
274
  #: example-functions.php:549
275
  msgid "Twitter URL"
276
- msgstr ""
277
 
278
  #: example-functions.php:556
279
  msgid "Google+ URL"
280
- msgstr ""
281
 
282
  #: example-functions.php:563
283
  msgid "Linkedin URL"
284
- msgstr ""
285
 
286
  #: example-functions.php:570
287
  msgid "User Field"
288
- msgstr ""
289
 
290
  #: example-functions.php:590
291
  msgid "Category Metabox"
292
- msgstr ""
293
 
294
  #: example-functions.php:605
295
  msgid "Term Image"
296
- msgstr ""
297
 
298
  #: example-functions.php:612
299
  msgid "Arbitrary Term Field"
300
- msgstr ""
301
 
302
  #: example-functions.php:634
303
  msgid "Theme Options Metabox"
304
- msgstr ""
305
 
306
  #: example-functions.php:649
307
  msgid "Site Background Color"
308
- msgstr ""
309
 
310
  #: includes/CMB2.php:129
311
  msgid "Metabox configuration is required to have an ID parameter"
312
- msgstr ""
313
 
314
  #: includes/CMB2.php:418
315
  msgid "Click to toggle"
@@ -317,23 +322,23 @@ msgstr "برای جانشینی کلیک کنید"
317
 
318
  #: includes/CMB2_Ajax.php:71
319
  msgid "Please Try Again"
320
- msgstr ""
321
 
322
  #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
323
  msgid "Remove Embed"
324
- msgstr ""
325
 
326
  #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
327
  msgid "No oEmbed Results Found for %s. View more info at"
328
- msgstr ""
329
 
330
  #: includes/CMB2_Field.php:1186
331
  msgid "Add Group"
332
- msgstr ""
333
 
334
  #: includes/CMB2_Field.php:1187
335
  msgid "Remove Group"
336
- msgstr ""
337
 
338
  #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
339
  #: tests/test-cmb-field.php:229
@@ -342,13 +347,13 @@ msgstr "هیچ‌یک"
342
 
343
  #: includes/CMB2_Field.php:1269
344
  msgid "Sorry, this field does not have a cmb_id specified."
345
- msgstr ""
346
 
347
  #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
348
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
349
  #: tests/test-cmb-types.php:701
350
  msgid "File:"
351
- msgstr ""
352
 
353
  #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
354
  msgid "Clear"
@@ -368,25 +373,27 @@ msgstr "رنگ فعلی"
368
 
369
  #: includes/CMB2_JS.php:110
370
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
371
- msgstr ""
372
 
373
  #: includes/CMB2_JS.php:111
374
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
375
- msgstr ""
376
 
377
  #: includes/CMB2_JS.php:112
378
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
379
- msgstr ""
380
 
381
  #: includes/CMB2_JS.php:113
382
  msgid ""
383
  "January, February, March, April, May, June, July, August, September, "
384
  "October, November, December"
385
  msgstr ""
 
 
386
 
387
  #: includes/CMB2_JS.php:114
388
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
389
- msgstr ""
390
 
391
  #: includes/CMB2_JS.php:115
392
  msgid "Next"
@@ -406,7 +413,7 @@ msgstr "انجام شد"
406
 
407
  #: includes/CMB2_JS.php:122
408
  msgid "Choose Time"
409
- msgstr ""
410
 
411
  #: includes/CMB2_JS.php:123
412
  msgid "Time"
@@ -422,19 +429,19 @@ msgstr "دقیقه"
422
 
423
  #: includes/CMB2_JS.php:126
424
  msgid "Second"
425
- msgstr ""
426
 
427
  #: includes/CMB2_JS.php:127
428
  msgid "Now"
429
- msgstr ""
430
 
431
  #: includes/CMB2_JS.php:135
432
  msgid "Use this file"
433
- msgstr ""
434
 
435
  #: includes/CMB2_JS.php:136
436
  msgid "Use these files"
437
- msgstr ""
438
 
439
  #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
440
  msgid "Remove Image"
@@ -454,25 +461,27 @@ msgstr "دانلود"
454
 
455
  #: includes/CMB2_JS.php:141
456
  msgid "Select / Deselect All"
457
- msgstr ""
458
 
459
  #: includes/CMB2_Types.php:194
460
  msgid "Add Row"
461
- msgstr ""
462
 
463
  #: includes/CMB2_hookup.php:145
464
  msgid ""
465
  "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
466
  "install."
467
  msgstr ""
 
 
468
 
469
  #: includes/CMB2_hookup.php:149
470
  msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
471
- msgstr ""
472
 
473
  #: includes/helper-functions.php:93
474
  msgid "No oEmbed Results Found for %s. View more info at %s"
475
- msgstr ""
476
 
477
  #: includes/helper-functions.php:279
478
  msgid "Save"
@@ -481,48 +490,48 @@ msgstr "ذخیره"
481
  #: includes/types/CMB2_Type_File.php:36 tests/test-cmb-types.php:683
482
  #: tests/test-cmb-types.php:701
483
  msgid "Add or Upload File"
484
- msgstr ""
485
 
486
  #: includes/types/CMB2_Type_File_List.php:36 tests/test-cmb-types.php:639
487
  #: tests/test-cmb-types.php:663
488
  msgid "Add or Upload Files"
489
- msgstr ""
490
 
491
  #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
492
  #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
493
  msgid "No terms"
494
- msgstr ""
495
 
496
  #. Plugin Name of the plugin/theme
497
  msgid "CMB2"
498
- msgstr ""
499
 
500
  #. Plugin URI of the plugin/theme
501
- msgid "https://github.com/WebDevStudios/CMB2"
502
- msgstr ""
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
506
  "CMB2 will create metaboxes and forms with custom fields that will blow your "
507
  "mind."
508
- msgstr ""
509
 
510
  #. Author of the plugin/theme
511
  msgid "WebDevStudios"
512
- msgstr ""
513
 
514
  #. Author URI of the plugin/theme
515
  msgid "http://webdevstudios.com"
516
- msgstr ""
517
 
518
  #: includes/CMB2_JS.php:109
519
  msgctxt "Valid formatDate string for jquery-ui datepicker"
520
  msgid "mm/dd/yy"
521
- msgstr ""
522
 
523
  #: includes/CMB2_JS.php:129
524
  msgctxt ""
525
- "Valid formatting string, as per "
526
- "http://trentrichardson.com/examples/timepicker/"
527
  msgid "hh:mm TT"
528
- msgstr ""
7
  "Project-Id-Version: CMB2\n"
8
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
9
  "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
10
+ "PO-Revision-Date: 2017-11-05 17:11+0330\n"
11
  "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
12
+ "Language-Team: Persian (Iran) (http://www.transifex.com/wp-translations/"
13
+ "cmb2/language/fa_IR/)\n"
14
  "MIME-Version: 1.0\n"
15
  "Content-Type: text/plain; charset=UTF-8\n"
16
  "Content-Transfer-Encoding: 8bit\n"
17
  "Language: fa_IR\n"
18
  "Plural-Forms: nplurals=1; plural=0;\n"
19
+ "X-Generator: Poedit 1.8.7.1\n"
20
+ "X-Poedit-Basepath: ..\n"
21
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
22
+ "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
23
+ "esc_html_x:1,2c\n"
 
24
  "X-Poedit-SourceCharset: UTF-8\n"
25
  "X-Textdomain-Support: yes\n"
26
+ "X-Poedit-SearchPath-0: .\n"
27
 
28
  #: example-functions.php:117 tests/test-cmb-field.php:255
29
  msgid "Test Metabox"
30
+ msgstr " آزمایش متاباکس"
31
 
32
  #: example-functions.php:130 example-functions.php:436
33
  msgid "Test Text"
34
+ msgstr "متن آزمایشی"
35
 
36
  #: example-functions.php:131 example-functions.php:144
37
  #: example-functions.php:157 example-functions.php:165
53
  #: example-functions.php:613 example-functions.php:650
54
  #: tests/test-cmb-field.php:267
55
  msgid "field description (optional)"
56
+ msgstr "توضیحات فیلد (اختیاری)"
57
 
58
  #: example-functions.php:143
59
  msgid "Test Text Small"
60
+ msgstr "کادر متن کوچک آزمایشی"
61
 
62
  #: example-functions.php:156
63
  msgid "Test Text Medium"
64
+ msgstr "کادر متن متوسط آزمایشی"
65
 
66
  #: example-functions.php:164
67
  msgid "Custom Rendered Field"
68
+ msgstr "فیلد شخصی سازی شده"
69
 
70
  #: example-functions.php:172
71
  msgid "Website URL"
73
 
74
  #: example-functions.php:181
75
  msgid "Test Text Email"
76
+ msgstr "کادر متنی ایمیل"
77
 
78
  #: example-functions.php:189
79
  msgid "Test Time"
80
+ msgstr "زمان آزمایشی"
81
 
82
  #: example-functions.php:197 example-functions.php:198
83
  msgid "Time zone"
85
 
86
  #: example-functions.php:204
87
  msgid "Test Date Picker"
88
+ msgstr "انتخاب کننده تاریخ آزمایشی"
89
 
90
  #: example-functions.php:212
91
  msgid "Test Date Picker (UNIX timestamp)"
92
+ msgstr "انتخاب کننده تاریخ آزمایشی (unix timestamp)"
93
 
94
  #: example-functions.php:220
95
  msgid "Test Date/Time Picker Combo (UNIX timestamp)"
96
+ msgstr "انتخاب کننده تاریخ آزمایشی (unix timestamp)"
97
 
98
  #: example-functions.php:237
99
  msgid "Test Money"
100
+ msgstr "پول آزمایشی"
101
 
102
  #: example-functions.php:246
103
  msgid "Test Color Picker"
104
+ msgstr "آزمایش انتخاب کننده رنگ"
105
 
106
  #: example-functions.php:259
107
  msgid "Test Text Area"
108
+ msgstr "آزمایش Text Area"
109
 
110
  #: example-functions.php:266
111
  msgid "Test Text Area Small"
112
+ msgstr "آزمایش Text Area کوچک"
113
 
114
  #: example-functions.php:273
115
  msgid "Test Text Area for Code"
116
+ msgstr "آزمایش Text Area برای کد"
117
 
118
  #: example-functions.php:280
119
  msgid "Test Title Weeeee"
120
+ msgstr "Test Title Weeeee"
121
 
122
  #: example-functions.php:281
123
  msgid "This is a title description"
124
+ msgstr "این یک توضیح برای عنوان است"
125
 
126
  #: example-functions.php:287
127
  msgid "Test Select"
128
+ msgstr "آزمایش Select"
129
 
130
  #: example-functions.php:293 example-functions.php:306
131
  #: example-functions.php:318
132
  msgid "Option One"
133
+ msgstr "گزینه اول"
134
 
135
  #: example-functions.php:294 example-functions.php:307
136
  #: example-functions.php:319
137
  msgid "Option Two"
138
+ msgstr "گزینه دوم"
139
 
140
  #: example-functions.php:295 example-functions.php:308
141
  #: example-functions.php:320
142
  msgid "Option Three"
143
+ msgstr "گزینه سوم"
144
 
145
  #: example-functions.php:300
146
  msgid "Test Radio inline"
147
+ msgstr "آزمایش Radio درون خطی"
148
 
149
  #: example-functions.php:313
150
  msgid "Test Radio"
151
+ msgstr "آزمایش Radio "
152
 
153
  #: example-functions.php:325
154
  msgid "Test Taxonomy Radio"
155
+ msgstr "آزمایش Taxonomy radio"
156
 
157
  #: example-functions.php:334
158
  msgid "Test Taxonomy Select"
159
+ msgstr "آزمایش Taxonomy Select"
160
 
161
  #: example-functions.php:342
162
  msgid "Test Taxonomy Multi Checkbox"
163
+ msgstr "آزمایش Taxonomy Multi Checkbox"
164
 
165
  #: example-functions.php:351
166
  msgid "Test Checkbox"
167
+ msgstr "آزمایش Checkbox"
168
 
169
  #: example-functions.php:358 tests/test-cmb-field.php:266
170
  msgid "Test Multi Checkbox"
171
+ msgstr "آزمایش Multi Checkbox"
172
 
173
  #: example-functions.php:364 tests/test-cmb-field.php:272
174
  msgid "Check One"
175
+ msgstr "گزینه اول"
176
 
177
  #: example-functions.php:365 tests/test-cmb-field.php:273
178
  msgid "Check Two"
179
+ msgstr "گزینه دوم"
180
 
181
  #: example-functions.php:366 tests/test-cmb-field.php:274
182
  msgid "Check Three"
183
+ msgstr "گزینه سوم"
184
 
185
  #: example-functions.php:372
186
  msgid "Test wysiwyg"
187
+ msgstr "آزمایش wysiwyg"
188
 
189
  #: example-functions.php:380
190
  msgid "Test Image"
191
+ msgstr "آزمایش Image"
192
 
193
  #: example-functions.php:381
194
  msgid "Upload an image or enter a URL."
196
 
197
  #: example-functions.php:387
198
  msgid "Multiple Files"
199
+ msgstr "چند فایل"
200
 
201
  #: example-functions.php:388
202
  msgid "Upload or add multiple images/attachments."
203
+ msgstr "آپلود فایل ها"
204
 
205
  #: example-functions.php:395
206
  msgid "oEmbed"
207
+ msgstr "oEmbed"
208
 
209
  #: example-functions.php:396
210
  msgid ""
211
  "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
212
+ "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/"
213
+ "Embeds</a>."
214
  msgstr ""
215
+ "آدرس URL یوتیوب، تویتر یا ایستاگرام را وارد کنید. سرویس های پشتیبانی شده در "
216
+ "<a href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/"
217
+ "Embeds</a> موجود هستند."
218
 
219
  #: example-functions.php:427
220
  msgid "About Page Metabox"
221
+ msgstr "درباره متاباکس صفحه"
222
 
223
  #: example-functions.php:456
224
  msgid "Repeating Field Group"
225
+ msgstr "Field Group تکرار شونده"
226
 
227
  #: example-functions.php:464
228
  msgid "Generates reusable form entries"
229
+ msgstr "آیتم های فرم با قابلیت استفاده مجدد میسازد"
230
 
231
  #: example-functions.php:466
232
  msgid "Entry {#}"
233
+ msgstr "آیتم {#}"
234
 
235
  #: example-functions.php:467
236
  msgid "Add Another Entry"
237
+ msgstr "افزودن آیتم دیگر"
238
 
239
  #: example-functions.php:468
240
  msgid "Remove Entry"
241
+ msgstr "حذف آیتم"
242
 
243
  #: example-functions.php:481
244
  msgid "Entry Title"
245
+ msgstr "عنوان"
246
 
247
  #: example-functions.php:488
248
  msgid "Description"
250
 
251
  #: example-functions.php:489
252
  msgid "Write a short description for this entry"
253
+ msgstr "توضیح کوتاهی برای این آیتم بنویسید"
254
 
255
  #: example-functions.php:495
256
  msgid "Entry Image"
257
+ msgstr "تصویر آیتم"
258
 
259
  #: example-functions.php:501
260
  msgid "Image Caption"
262
 
263
  #: example-functions.php:520
264
  msgid "User Profile Metabox"
265
+ msgstr "متاباکس پروفایل"
266
 
267
  #: example-functions.php:527 example-functions.php:597
268
  msgid "Extra Info"
269
+ msgstr "اطلاعات بیشتر"
270
 
271
  #: example-functions.php:535
272
  msgid "Avatar"
273
+ msgstr "آواتار"
274
 
275
  #: example-functions.php:542
276
  msgid "Facebook URL"
278
 
279
  #: example-functions.php:549
280
  msgid "Twitter URL"
281
+ msgstr "آدرس Twitter"
282
 
283
  #: example-functions.php:556
284
  msgid "Google+ URL"
285
+ msgstr "آدرس Google+"
286
 
287
  #: example-functions.php:563
288
  msgid "Linkedin URL"
289
+ msgstr "آدرس Linkedin"
290
 
291
  #: example-functions.php:570
292
  msgid "User Field"
293
+ msgstr "فیلد کاربر"
294
 
295
  #: example-functions.php:590
296
  msgid "Category Metabox"
297
+ msgstr "متاباکس دسته بندی"
298
 
299
  #: example-functions.php:605
300
  msgid "Term Image"
301
+ msgstr "Term Image"
302
 
303
  #: example-functions.php:612
304
  msgid "Arbitrary Term Field"
305
+ msgstr "زمینه ترتیب دلخواه"
306
 
307
  #: example-functions.php:634
308
  msgid "Theme Options Metabox"
309
+ msgstr "گزینه های پوسته متاباکس"
310
 
311
  #: example-functions.php:649
312
  msgid "Site Background Color"
313
+ msgstr "پس زمینه سایت"
314
 
315
  #: includes/CMB2.php:129
316
  msgid "Metabox configuration is required to have an ID parameter"
317
+ msgstr "تنظیمات متاباکس نیاز به پارامتر ID دارد"
318
 
319
  #: includes/CMB2.php:418
320
  msgid "Click to toggle"
322
 
323
  #: includes/CMB2_Ajax.php:71
324
  msgid "Please Try Again"
325
+ msgstr "لطفا دوباره تلاش کنید"
326
 
327
  #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
328
  msgid "Remove Embed"
329
+ msgstr "حذف Embed"
330
 
331
  #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
332
  msgid "No oEmbed Results Found for %s. View more info at"
333
+ msgstr "هیچ نتیجه ای برای %s پیدا نشد. نمایش جزئیات بیشتر در "
334
 
335
  #: includes/CMB2_Field.php:1186
336
  msgid "Add Group"
337
+ msgstr "افزودن گروه"
338
 
339
  #: includes/CMB2_Field.php:1187
340
  msgid "Remove Group"
341
+ msgstr "حذف گروه"
342
 
343
  #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
344
  #: tests/test-cmb-field.php:229
347
 
348
  #: includes/CMB2_Field.php:1269
349
  msgid "Sorry, this field does not have a cmb_id specified."
350
+ msgstr "برای این فیلد cmb_id مشخص نشده است"
351
 
352
  #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
353
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
354
  #: tests/test-cmb-types.php:701
355
  msgid "File:"
356
+ msgstr "فایل:"
357
 
358
  #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
359
  msgid "Clear"
373
 
374
  #: includes/CMB2_JS.php:110
375
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
376
+ msgstr "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
377
 
378
  #: includes/CMB2_JS.php:111
379
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
380
+ msgstr "Su, Mo, Tu, We, Th, Fr, Sa"
381
 
382
  #: includes/CMB2_JS.php:112
383
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
384
+ msgstr "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
385
 
386
  #: includes/CMB2_JS.php:113
387
  msgid ""
388
  "January, February, March, April, May, June, July, August, September, "
389
  "October, November, December"
390
  msgstr ""
391
+ "January, February, March, April, May, June, July, August, September, "
392
+ "October, November, December"
393
 
394
  #: includes/CMB2_JS.php:114
395
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
396
+ msgstr "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
397
 
398
  #: includes/CMB2_JS.php:115
399
  msgid "Next"
413
 
414
  #: includes/CMB2_JS.php:122
415
  msgid "Choose Time"
416
+ msgstr "انتخاب زمان"
417
 
418
  #: includes/CMB2_JS.php:123
419
  msgid "Time"
429
 
430
  #: includes/CMB2_JS.php:126
431
  msgid "Second"
432
+ msgstr "ثانیه"
433
 
434
  #: includes/CMB2_JS.php:127
435
  msgid "Now"
436
+ msgstr "حالا"
437
 
438
  #: includes/CMB2_JS.php:135
439
  msgid "Use this file"
440
+ msgstr "استفاده از این فایل"
441
 
442
  #: includes/CMB2_JS.php:136
443
  msgid "Use these files"
444
+ msgstr "استفاده از این فایل ها"
445
 
446
  #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
447
  msgid "Remove Image"
461
 
462
  #: includes/CMB2_JS.php:141
463
  msgid "Select / Deselect All"
464
+ msgstr "انتخاب/ لغو انتخاب همه"
465
 
466
  #: includes/CMB2_Types.php:194
467
  msgid "Add Row"
468
+ msgstr "افزودن ردیف"
469
 
470
  #: includes/CMB2_hookup.php:145
471
  msgid ""
472
  "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
473
  "install."
474
  msgstr ""
475
+ "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
476
+ "install."
477
 
478
  #: includes/CMB2_hookup.php:149
479
  msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
480
+ msgstr "تنظیمات متاباکس نیاز به پارامتر taxonomies دارد"
481
 
482
  #: includes/helper-functions.php:93
483
  msgid "No oEmbed Results Found for %s. View more info at %s"
484
+ msgstr "هیچ نتیجه ای برای %s پیدا نشد. نمایش جزئیات بیشتر در %s"
485
 
486
  #: includes/helper-functions.php:279
487
  msgid "Save"
490
  #: includes/types/CMB2_Type_File.php:36 tests/test-cmb-types.php:683
491
  #: tests/test-cmb-types.php:701
492
  msgid "Add or Upload File"
493
+ msgstr "آپلود فایل"
494
 
495
  #: includes/types/CMB2_Type_File_List.php:36 tests/test-cmb-types.php:639
496
  #: tests/test-cmb-types.php:663
497
  msgid "Add or Upload Files"
498
+ msgstr "انتخاب یا آپلود فایل"
499
 
500
  #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
501
  #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
502
  msgid "No terms"
503
+ msgstr "بدون کلمه"
504
 
505
  #. Plugin Name of the plugin/theme
506
  msgid "CMB2"
507
+ msgstr "CMB2"
508
 
509
  #. Plugin URI of the plugin/theme
510
+ msgid "https://github.com/CMB2/CMB2"
511
+ msgstr "https://github.com/CMB2/CMB2"
512
 
513
  #. Description of the plugin/theme
514
  msgid ""
515
  "CMB2 will create metaboxes and forms with custom fields that will blow your "
516
  "mind."
517
+ msgstr "CMB2 برای شما متاباکس و فرم با فیلدهای سفارشی میسازد"
518
 
519
  #. Author of the plugin/theme
520
  msgid "WebDevStudios"
521
+ msgstr "WebDevStudios"
522
 
523
  #. Author URI of the plugin/theme
524
  msgid "http://webdevstudios.com"
525
+ msgstr "http://webdevstudios.com"
526
 
527
  #: includes/CMB2_JS.php:109
528
  msgctxt "Valid formatDate string for jquery-ui datepicker"
529
  msgid "mm/dd/yy"
530
+ msgstr "mm/dd/yy"
531
 
532
  #: includes/CMB2_JS.php:129
533
  msgctxt ""
534
+ "Valid formatting string, as per http://trentrichardson.com/examples/"
535
+ "timepicker/"
536
  msgid "hh:mm TT"
537
+ msgstr "hh:mm TT"
vendor/CMB2/languages/cmb2-fi.po CHANGED
@@ -500,8 +500,8 @@ msgid "CMB2"
500
  msgstr "CMB2"
501
 
502
  #. Plugin URI of the plugin/theme
503
- msgid "https://github.com/WebDevStudios/CMB2"
504
- msgstr "https://github.com/WebDevStudios/CMB2"
505
 
506
  #. Description of the plugin/theme
507
  msgid ""
500
  msgstr "CMB2"
501
 
502
  #. Plugin URI of the plugin/theme
503
+ msgid "https://github.com/CMB2/CMB2"
504
+ msgstr "https://github.com/CMB2/CMB2"
505
 
506
  #. Description of the plugin/theme
507
  msgid ""
vendor/CMB2/languages/cmb2-fo.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-fr_BE.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-fr_CA.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-fr_FR.po CHANGED
@@ -501,8 +501,8 @@ msgid "CMB2"
501
  msgstr "CMB2"
502
 
503
  #. Plugin URI of the plugin/theme
504
- msgid "https://github.com/WebDevStudios/CMB2"
505
- msgstr "https://github.com/WebDevStudios/CMB2"
506
 
507
  #. Description of the plugin/theme
508
  msgid ""
501
  msgstr "CMB2"
502
 
503
  #. Plugin URI of the plugin/theme
504
+ msgid "https://github.com/CMB2/CMB2"
505
+ msgstr "https://github.com/CMB2/CMB2"
506
 
507
  #. Description of the plugin/theme
508
  msgid ""
vendor/CMB2/languages/cmb2-fy.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ga.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-gd.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-gl_ES.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-gu_IN.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-he_IL.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-hi_IN.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-hr.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-hu_HU.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-hy.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-id_ID.po CHANGED
@@ -498,8 +498,8 @@ msgid "CMB2"
498
  msgstr "CMB2"
499
 
500
  #. Plugin URI of the plugin/theme
501
- msgid "https://github.com/WebDevStudios/CMB2"
502
- msgstr "https://github.com/WebDevStudios/CMB2"
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
498
  msgstr "CMB2"
499
 
500
  #. Plugin URI of the plugin/theme
501
+ msgid "https://github.com/CMB2/CMB2"
502
+ msgstr "https://github.com/CMB2/CMB2"
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
vendor/CMB2/languages/cmb2-is_IS.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-it_IT.mo CHANGED
Binary file
vendor/CMB2/languages/cmb2-it_IT.po CHANGED
@@ -1,59 +1,60 @@
1
- # Copyright (C) 2016 WebDevStudios
2
  # This file is distributed under the same license as the CMB2 package.
3
  # Translators:
4
  # Alessandro Curci <hantarex@gmail.com>, 2015
5
  # Andrea Brandi, 2015
6
- # Daniele Scasciafratte Mte90 <mte90net@gmail.com>, 2015
7
- # Emanuele <realbarnux@gmail.com>, 2015
8
  msgid ""
9
  msgstr ""
10
  "Project-Id-Version: CMB2\n"
11
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
12
- "POT-Creation-Date: 2016-06-27 17:01:22+00:00\n"
13
- "PO-Revision-Date: 2016-06-27 17:01+0000\n"
14
- "Last-Translator: Justin Sternberg <me@jtsternberg.com>\n"
15
- "Language-Team: Italian (Italy) (http://www.transifex.com/wp-translations/cmb2/language/it_IT/)\n"
 
16
  "MIME-Version: 1.0\n"
17
  "Content-Type: text/plain; charset=UTF-8\n"
18
  "Content-Transfer-Encoding: 8bit\n"
19
  "Language: it_IT\n"
20
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
- "X-Generator: grunt-wp-i18n 0.4.9\n"
22
- "X-Poedit-Basepath: ../\n"
23
- "X-Poedit-Bookmarks: \n"
24
- "X-Poedit-Country: United States\n"
25
- "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
26
- "X-Poedit-SearchPath-0: .\n"
27
  "X-Poedit-SourceCharset: UTF-8\n"
28
  "X-Textdomain-Support: yes\n"
 
29
 
30
  #: example-functions.php:117 tests/test-cmb-field.php:255
31
  msgid "Test Metabox"
32
  msgstr "Test Metabox"
33
 
34
- #: example-functions.php:130 example-functions.php:436
35
  msgid "Test Text"
36
  msgstr "Test Testo"
37
 
38
  #: example-functions.php:131 example-functions.php:144
39
- #: example-functions.php:157 example-functions.php:165
40
- #: example-functions.php:173 example-functions.php:182
41
- #: example-functions.php:190 example-functions.php:205
42
- #: example-functions.php:213 example-functions.php:221
43
- #: example-functions.php:238 example-functions.php:247
44
- #: example-functions.php:260 example-functions.php:267
45
- #: example-functions.php:274 example-functions.php:288
46
- #: example-functions.php:301 example-functions.php:314
47
- #: example-functions.php:326 example-functions.php:335
48
- #: example-functions.php:343 example-functions.php:352
49
- #: example-functions.php:359 example-functions.php:373
50
- #: example-functions.php:437 example-functions.php:528
51
- #: example-functions.php:536 example-functions.php:543
52
- #: example-functions.php:550 example-functions.php:557
53
- #: example-functions.php:564 example-functions.php:571
54
- #: example-functions.php:598 example-functions.php:606
55
- #: example-functions.php:613 example-functions.php:650
56
- #: tests/test-cmb-field.php:267
57
  msgid "field description (optional)"
58
  msgstr "descrizione campo (opzionale)"
59
 
@@ -65,256 +66,266 @@ msgstr "Test Testo Piccolo"
65
  msgid "Test Text Medium"
66
  msgstr "Test Testo Medio"
67
 
68
- #: example-functions.php:164
 
 
 
 
 
 
 
 
69
  msgid "Custom Rendered Field"
70
- msgstr ""
71
 
72
- #: example-functions.php:172
73
  msgid "Website URL"
74
  msgstr "URL Sito"
75
 
76
- #: example-functions.php:181
77
  msgid "Test Text Email"
78
  msgstr "Test Testo Email"
79
 
80
- #: example-functions.php:189
81
  msgid "Test Time"
82
  msgstr "Test Orario"
83
 
84
- #: example-functions.php:197 example-functions.php:198
85
  msgid "Time zone"
86
  msgstr "Time zone"
87
 
88
- #: example-functions.php:204
89
  msgid "Test Date Picker"
90
  msgstr "Test Date Picker"
91
 
92
- #: example-functions.php:212
93
  msgid "Test Date Picker (UNIX timestamp)"
94
  msgstr "Test Data Picker (UNIX timestamp)"
95
 
96
- #: example-functions.php:220
97
  msgid "Test Date/Time Picker Combo (UNIX timestamp)"
98
  msgstr "Test Data/Orario Picker Combo (UNIX timestamp)"
99
 
100
- #: example-functions.php:237
101
  msgid "Test Money"
102
  msgstr "Test Money"
103
 
104
- #: example-functions.php:246
105
  msgid "Test Color Picker"
106
  msgstr "Test Color Picker"
107
 
108
- #: example-functions.php:259
109
  msgid "Test Text Area"
110
  msgstr "Test Text Area"
111
 
112
- #: example-functions.php:266
113
  msgid "Test Text Area Small"
114
  msgstr "Test Text Area Piccola"
115
 
116
- #: example-functions.php:273
117
  msgid "Test Text Area for Code"
118
  msgstr "Test Text Area per Codice"
119
 
120
- #: example-functions.php:280
121
  msgid "Test Title Weeeee"
122
  msgstr "Test Titolo Weeeee"
123
 
124
- #: example-functions.php:281
125
  msgid "This is a title description"
126
  msgstr "Questa è una descrizione del titolo"
127
 
128
- #: example-functions.php:287
129
  msgid "Test Select"
130
  msgstr "Test Select"
131
 
132
- #: example-functions.php:293 example-functions.php:306
133
- #: example-functions.php:318
134
  msgid "Option One"
135
  msgstr "Opzione uno"
136
 
137
- #: example-functions.php:294 example-functions.php:307
138
- #: example-functions.php:319
139
  msgid "Option Two"
140
  msgstr "Opzione Due"
141
 
142
- #: example-functions.php:295 example-functions.php:308
143
- #: example-functions.php:320
144
  msgid "Option Three"
145
  msgstr "Opzione Tre"
146
 
147
- #: example-functions.php:300
148
  msgid "Test Radio inline"
149
  msgstr "Test Radio inline"
150
 
151
- #: example-functions.php:313
152
  msgid "Test Radio"
153
  msgstr "Test Radio"
154
 
155
- #: example-functions.php:325
156
  msgid "Test Taxonomy Radio"
157
  msgstr "Test Tassonomia Radio"
158
 
159
- #: example-functions.php:334
160
  msgid "Test Taxonomy Select"
161
  msgstr "Test Seleziona Tassonomia"
162
 
163
- #: example-functions.php:342
164
  msgid "Test Taxonomy Multi Checkbox"
165
  msgstr "Test Tassonomia Multi Checkbox"
166
 
167
- #: example-functions.php:351
168
  msgid "Test Checkbox"
169
  msgstr "Test Checkbox"
170
 
171
- #: example-functions.php:358 tests/test-cmb-field.php:266
172
  msgid "Test Multi Checkbox"
173
  msgstr "Test Multi Checkbox"
174
 
175
- #: example-functions.php:364 tests/test-cmb-field.php:272
176
  msgid "Check One"
177
  msgstr "Check Uno"
178
 
179
- #: example-functions.php:365 tests/test-cmb-field.php:273
180
  msgid "Check Two"
181
  msgstr "Check Due"
182
 
183
- #: example-functions.php:366 tests/test-cmb-field.php:274
184
  msgid "Check Three"
185
  msgstr "Check Tre"
186
 
187
- #: example-functions.php:372
188
  msgid "Test wysiwyg"
189
  msgstr "Test wysiwyg"
190
 
191
- #: example-functions.php:380
192
  msgid "Test Image"
193
  msgstr "Test Immagine"
194
 
195
- #: example-functions.php:381
196
  msgid "Upload an image or enter a URL."
197
  msgstr "Carica una immagine o inserisci una URL"
198
 
199
- #: example-functions.php:387
200
  msgid "Multiple Files"
201
  msgstr "File Multipli"
202
 
203
- #: example-functions.php:388
204
  msgid "Upload or add multiple images/attachments."
205
  msgstr "Carica o aggiungi immagini/allegati multipli"
206
 
207
- #: example-functions.php:395
208
  msgid "oEmbed"
209
  msgstr "oEmbed"
210
 
211
- #: example-functions.php:396
 
212
  msgid ""
213
- "Enter a youtube, twitter, or instagram URL. Supports services listed at <a "
214
- "href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
215
- msgstr "Inserisci una URL di youtube, twitter, o instagram. I servizi supportati si trovano su <a href=\"http://codex.wordpress.org/Embeds\">http://codex.wordpress.org/Embeds</a>."
 
216
 
217
- #: example-functions.php:427
218
  msgid "About Page Metabox"
219
  msgstr "About Page Metabox"
220
 
221
- #: example-functions.php:456
222
  msgid "Repeating Field Group"
223
  msgstr "Gruppo Campi Ripetuto"
224
 
225
- #: example-functions.php:464
226
  msgid "Generates reusable form entries"
227
  msgstr "Genera elementi del form riusabili"
228
 
229
- #: example-functions.php:466
230
  msgid "Entry {#}"
231
  msgstr "Instanza {#}"
232
 
233
- #: example-functions.php:467
234
  msgid "Add Another Entry"
235
  msgstr "Aggiungi una nuova instanza"
236
 
237
- #: example-functions.php:468
238
  msgid "Remove Entry"
239
  msgstr "Rimuovi instanza"
240
 
241
- #: example-functions.php:481
242
  msgid "Entry Title"
243
  msgstr "Inserisci Titolo"
244
 
245
- #: example-functions.php:488
246
  msgid "Description"
247
  msgstr "Descrizione"
248
 
249
- #: example-functions.php:489
250
  msgid "Write a short description for this entry"
251
  msgstr "Scrivi una breve descrizione per questo elemento"
252
 
253
- #: example-functions.php:495
254
  msgid "Entry Image"
255
  msgstr "Inserisci Immagine"
256
 
257
- #: example-functions.php:501
258
  msgid "Image Caption"
259
  msgstr "Didascalia immagine"
260
 
261
- #: example-functions.php:520
262
  msgid "User Profile Metabox"
263
  msgstr "Profilo Utente Metabox"
264
 
265
- #: example-functions.php:527 example-functions.php:597
266
  msgid "Extra Info"
267
  msgstr "Informazioni extra"
268
 
269
- #: example-functions.php:535
270
  msgid "Avatar"
271
  msgstr "Avatar"
272
 
273
- #: example-functions.php:542
274
  msgid "Facebook URL"
275
  msgstr "URL Facebook"
276
 
277
- #: example-functions.php:549
278
  msgid "Twitter URL"
279
  msgstr "URL Twitter"
280
 
281
- #: example-functions.php:556
282
  msgid "Google+ URL"
283
  msgstr "URL Google+"
284
 
285
- #: example-functions.php:563
286
  msgid "Linkedin URL"
287
  msgstr "URL LinkedIn"
288
 
289
- #: example-functions.php:570
290
  msgid "User Field"
291
  msgstr "Campo utente"
292
 
293
- #: example-functions.php:590
294
  msgid "Category Metabox"
295
- msgstr ""
296
 
297
- #: example-functions.php:605
298
  msgid "Term Image"
299
- msgstr ""
300
 
301
- #: example-functions.php:612
302
  msgid "Arbitrary Term Field"
303
- msgstr ""
304
 
305
- #: example-functions.php:634
306
  msgid "Theme Options Metabox"
307
  msgstr "Opzioni Tema Metabox"
308
 
309
- #: example-functions.php:649
310
  msgid "Site Background Color"
311
  msgstr "Colore di sfondo del sito"
312
 
313
- #: includes/CMB2.php:129
314
- msgid "Metabox configuration is required to have an ID parameter"
315
- msgstr "La configurazione del Metabox richiede un parametro ID"
316
 
317
- #: includes/CMB2.php:418
318
  msgid "Click to toggle"
319
  msgstr "Clicca per commutare"
320
 
@@ -326,158 +337,187 @@ msgstr "Prova Ancora"
326
  msgid "Remove Embed"
327
  msgstr "Rimuovi Embed"
328
 
329
- #: includes/CMB2_Ajax.php:177 tests/cmb-tests-base.php:64
330
- msgid "No oEmbed Results Found for %s. View more info at"
331
- msgstr "Nessun Risultato oEmbed trovato per %s. Trova altre informazioni su"
 
 
 
332
 
333
- #: includes/CMB2_Field.php:1186
334
  msgid "Add Group"
335
  msgstr "Aggiungi gruppo"
336
 
337
- #: includes/CMB2_Field.php:1187
338
  msgid "Remove Group"
339
  msgstr "Rimuovi gruppo"
340
 
341
- #: includes/CMB2_Field.php:1209 includes/CMB2_Field.php:1213
342
  #: tests/test-cmb-field.php:229
343
  msgid "None"
344
  msgstr "Nessuno"
345
 
346
- #: includes/CMB2_Field.php:1269
347
  msgid "Sorry, this field does not have a cmb_id specified."
348
- msgstr ""
349
 
350
- #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:139
351
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
352
  #: tests/test-cmb-types.php:701
353
  msgid "File:"
354
  msgstr "File:"
355
 
356
- #: includes/CMB2_JS.php:86 includes/CMB2_JS.php:119
357
  msgid "Clear"
358
  msgstr "Pulisci"
359
 
360
- #: includes/CMB2_JS.php:87
361
  msgid "Default"
362
  msgstr "Predefinito"
363
 
364
- #: includes/CMB2_JS.php:88
365
  msgid "Select Color"
366
  msgstr "Seleziona colore"
367
 
368
- #: includes/CMB2_JS.php:89
369
  msgid "Current Color"
370
  msgstr "Colore attuale"
371
 
372
- #: includes/CMB2_JS.php:110
373
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
374
  msgstr "Domenica, Lunedi, Martedì, Mercoledì, Giovedi, Venerdì, Sabato"
375
 
376
- #: includes/CMB2_JS.php:111
377
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
378
  msgstr "Do, Lu, Ma, Me, Gi, Ve, Sa"
379
 
380
- #: includes/CMB2_JS.php:112
381
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
382
  msgstr "Dom, Lun, Mar, Mer, Gio, Ven, Sab"
383
 
384
- #: includes/CMB2_JS.php:113
385
  msgid ""
386
  "January, February, March, April, May, June, July, August, September, "
387
  "October, November, December"
388
- msgstr "Gennaio, Febbraio, Marzo, Aprile, Maggio, Giugno, Luglio, Agosto, Settembre, Ottobre, Novembre, Dicembre"
 
 
389
 
390
- #: includes/CMB2_JS.php:114
391
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
392
  msgstr "Gen, Feb, Mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic"
393
 
394
- #: includes/CMB2_JS.php:115
395
  msgid "Next"
396
  msgstr "Successivo"
397
 
398
- #: includes/CMB2_JS.php:116
399
  msgid "Prev"
400
  msgstr "Precedente"
401
 
402
- #: includes/CMB2_JS.php:117
403
  msgid "Today"
404
  msgstr "Oggi"
405
 
406
- #: includes/CMB2_JS.php:118 includes/CMB2_JS.php:128
407
  msgid "Done"
408
  msgstr "Finito"
409
 
410
- #: includes/CMB2_JS.php:122
411
  msgid "Choose Time"
412
  msgstr "Scegli la data"
413
 
414
- #: includes/CMB2_JS.php:123
415
  msgid "Time"
416
  msgstr "Data"
417
 
418
- #: includes/CMB2_JS.php:124
419
  msgid "Hour"
420
  msgstr "Ora"
421
 
422
- #: includes/CMB2_JS.php:125
423
  msgid "Minute"
424
  msgstr "Minuto"
425
 
426
- #: includes/CMB2_JS.php:126
427
  msgid "Second"
428
  msgstr "Secondi"
429
 
430
- #: includes/CMB2_JS.php:127
431
  msgid "Now"
432
  msgstr "Ora"
433
 
434
- #: includes/CMB2_JS.php:135
435
  msgid "Use this file"
436
  msgstr "Usa questo file"
437
 
438
- #: includes/CMB2_JS.php:136
439
  msgid "Use these files"
440
  msgstr "Usa questi file"
441
 
442
- #: includes/CMB2_JS.php:137 includes/types/CMB2_Type_File_Base.php:61
443
  msgid "Remove Image"
444
  msgstr "Rimuovi immagine"
445
 
446
- #: includes/CMB2_JS.php:138 includes/CMB2_Types.php:257
447
  #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
448
  #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
449
  #: tests/test-cmb-types.php:701
450
  msgid "Remove"
451
  msgstr "Rimuovi"
452
 
453
- #: includes/CMB2_JS.php:140 includes/types/CMB2_Type_File_Base.php:78
454
  #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
455
  msgid "Download"
456
  msgstr "Download"
457
 
458
- #: includes/CMB2_JS.php:141
459
  msgid "Select / Deselect All"
460
  msgstr "Seleziona / Deseleziona tutto"
461
 
462
- #: includes/CMB2_Types.php:194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
  msgid "Add Row"
464
  msgstr "Aggiungi Riga"
465
 
466
- #: includes/CMB2_hookup.php:145
467
  msgid ""
468
- "Term Metadata is a WordPress > 4.4 feature. Please upgrade your WordPress "
469
  "install."
470
  msgstr ""
 
 
471
 
472
- #: includes/CMB2_hookup.php:149
473
- msgid "Term metaboxes configuration requires a 'taxonomies' parameter"
474
  msgstr ""
 
 
475
 
476
- #: includes/helper-functions.php:93
477
- msgid "No oEmbed Results Found for %s. View more info at %s"
478
- msgstr ""
479
-
480
- #: includes/helper-functions.php:279
481
  msgid "Save"
482
  msgstr "Salva"
483
 
@@ -497,35 +537,37 @@ msgid "No terms"
497
  msgstr "Nessun termine"
498
 
499
  #. Plugin Name of the plugin/theme
 
 
 
 
500
  msgid "CMB2"
501
  msgstr "CMB2"
502
 
503
  #. Plugin URI of the plugin/theme
504
- msgid "https://github.com/WebDevStudios/CMB2"
505
- msgstr "https://github.com/WebDevStudios/CMB2"
506
 
507
  #. Description of the plugin/theme
508
  msgid ""
509
  "CMB2 will create metaboxes and forms with custom fields that will blow your "
510
  "mind."
511
- msgstr "CMB2 crea metabox e form con campi personalizzati che ti faranno esplodere la testa."
512
-
513
- #. Author of the plugin/theme
514
- msgid "WebDevStudios"
515
- msgstr "WebDevStudios"
516
 
517
  #. Author URI of the plugin/theme
518
- msgid "http://webdevstudios.com"
519
- msgstr "http://webdevstudios.com"
520
 
521
- #: includes/CMB2_JS.php:109
522
  msgctxt "Valid formatDate string for jquery-ui datepicker"
523
  msgid "mm/dd/yy"
524
  msgstr "mm/dd/yy"
525
 
526
- #: includes/CMB2_JS.php:129
527
  msgctxt ""
528
- "Valid formatting string, as per "
529
- "http://trentrichardson.com/examples/timepicker/"
530
  msgid "hh:mm TT"
531
  msgstr "hh:mm TT"
1
+ # Copyright (C) 2017 CMB2 team
2
  # This file is distributed under the same license as the CMB2 package.
3
  # Translators:
4
  # Alessandro Curci <hantarex@gmail.com>, 2015
5
  # Andrea Brandi, 2015
6
+ # Daniele Scasciafratte Mte90 <mte90net@gmail.com>, 2015,2017
7
+ # Emanuele <e@emanuelebartolomucci.com>, 2015
8
  msgid ""
9
  msgstr ""
10
  "Project-Id-Version: CMB2\n"
11
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
12
+ "POT-Creation-Date: 2016-08-17 14:25:09+00:00\n"
13
+ "PO-Revision-Date: 2017-11-30 14:22-0500\n"
14
+ "Last-Translator: Justin Sternberg <justin@dsgnwrks.pro>\n"
15
+ "Language-Team: Italian (Italy) (http://www.transifex.com/wp-translations/"
16
+ "cmb2/language/it_IT/)\n"
17
  "MIME-Version: 1.0\n"
18
  "Content-Type: text/plain; charset=UTF-8\n"
19
  "Content-Transfer-Encoding: 8bit\n"
20
  "Language: it_IT\n"
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
+ "X-Generator: Poedit 1.8.7\n"
23
+ "X-Poedit-Basepath: ..\n"
24
+ "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
25
+ "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
26
+ "esc_html_x:1,2c\n"
 
27
  "X-Poedit-SourceCharset: UTF-8\n"
28
  "X-Textdomain-Support: yes\n"
29
+ "X-Poedit-SearchPath-0: .\n"
30
 
31
  #: example-functions.php:117 tests/test-cmb-field.php:255
32
  msgid "Test Metabox"
33
  msgstr "Test Metabox"
34
 
35
+ #: example-functions.php:130 example-functions.php:452
36
  msgid "Test Text"
37
  msgstr "Test Testo"
38
 
39
  #: example-functions.php:131 example-functions.php:144
40
+ #: example-functions.php:157 example-functions.php:164
41
+ #: example-functions.php:177 example-functions.php:185
42
+ #: example-functions.php:194 example-functions.php:202
43
+ #: example-functions.php:217 example-functions.php:225
44
+ #: example-functions.php:233 example-functions.php:250
45
+ #: example-functions.php:259 example-functions.php:272
46
+ #: example-functions.php:279 example-functions.php:286
47
+ #: example-functions.php:300 example-functions.php:313
48
+ #: example-functions.php:326 example-functions.php:338
49
+ #: example-functions.php:347 example-functions.php:355
50
+ #: example-functions.php:364 example-functions.php:371
51
+ #: example-functions.php:385 example-functions.php:453
52
+ #: example-functions.php:544 example-functions.php:552
53
+ #: example-functions.php:559 example-functions.php:566
54
+ #: example-functions.php:573 example-functions.php:580
55
+ #: example-functions.php:587 example-functions.php:614
56
+ #: example-functions.php:622 example-functions.php:629
57
+ #: example-functions.php:666 tests/test-cmb-field.php:267
58
  msgid "field description (optional)"
59
  msgstr "descrizione campo (opzionale)"
60
 
66
  msgid "Test Text Medium"
67
  msgstr "Test Testo Medio"
68
 
69
+ #: example-functions.php:163
70
+ msgid "Read-only Disabled Field"
71
+ msgstr "Disabilita campo in sola lettura"
72
+
73
+ #: example-functions.php:167
74
+ msgid "Hey there, I'm a read-only field"
75
+ msgstr "Ciao, Io sono un campo di sola lettura"
76
+
77
+ #: example-functions.php:176
78
  msgid "Custom Rendered Field"
79
+ msgstr "Campo personalizzato renderizzato"
80
 
81
+ #: example-functions.php:184
82
  msgid "Website URL"
83
  msgstr "URL Sito"
84
 
85
+ #: example-functions.php:193
86
  msgid "Test Text Email"
87
  msgstr "Test Testo Email"
88
 
89
+ #: example-functions.php:201
90
  msgid "Test Time"
91
  msgstr "Test Orario"
92
 
93
+ #: example-functions.php:209 example-functions.php:210
94
  msgid "Time zone"
95
  msgstr "Time zone"
96
 
97
+ #: example-functions.php:216
98
  msgid "Test Date Picker"
99
  msgstr "Test Date Picker"
100
 
101
+ #: example-functions.php:224
102
  msgid "Test Date Picker (UNIX timestamp)"
103
  msgstr "Test Data Picker (UNIX timestamp)"
104
 
105
+ #: example-functions.php:232
106
  msgid "Test Date/Time Picker Combo (UNIX timestamp)"
107
  msgstr "Test Data/Orario Picker Combo (UNIX timestamp)"
108
 
109
+ #: example-functions.php:249
110
  msgid "Test Money"
111
  msgstr "Test Money"
112
 
113
+ #: example-functions.php:258
114
  msgid "Test Color Picker"
115
  msgstr "Test Color Picker"
116
 
117
+ #: example-functions.php:271
118
  msgid "Test Text Area"
119
  msgstr "Test Text Area"
120
 
121
+ #: example-functions.php:278
122
  msgid "Test Text Area Small"
123
  msgstr "Test Text Area Piccola"
124
 
125
+ #: example-functions.php:285
126
  msgid "Test Text Area for Code"
127
  msgstr "Test Text Area per Codice"
128
 
129
+ #: example-functions.php:292
130
  msgid "Test Title Weeeee"
131
  msgstr "Test Titolo Weeeee"
132
 
133
+ #: example-functions.php:293
134
  msgid "This is a title description"
135
  msgstr "Questa è una descrizione del titolo"
136
 
137
+ #: example-functions.php:299
138
  msgid "Test Select"
139
  msgstr "Test Select"
140
 
141
+ #: example-functions.php:305 example-functions.php:318
142
+ #: example-functions.php:330
143
  msgid "Option One"
144
  msgstr "Opzione uno"
145
 
146
+ #: example-functions.php:306 example-functions.php:319
147
+ #: example-functions.php:331
148
  msgid "Option Two"
149
  msgstr "Opzione Due"
150
 
151
+ #: example-functions.php:307 example-functions.php:320
152
+ #: example-functions.php:332
153
  msgid "Option Three"
154
  msgstr "Opzione Tre"
155
 
156
+ #: example-functions.php:312
157
  msgid "Test Radio inline"
158
  msgstr "Test Radio inline"
159
 
160
+ #: example-functions.php:325
161
  msgid "Test Radio"
162
  msgstr "Test Radio"
163
 
164
+ #: example-functions.php:337
165
  msgid "Test Taxonomy Radio"
166
  msgstr "Test Tassonomia Radio"
167
 
168
+ #: example-functions.php:346
169
  msgid "Test Taxonomy Select"
170
  msgstr "Test Seleziona Tassonomia"
171
 
172
+ #: example-functions.php:354
173
  msgid "Test Taxonomy Multi Checkbox"
174
  msgstr "Test Tassonomia Multi Checkbox"
175
 
176
+ #: example-functions.php:363
177
  msgid "Test Checkbox"
178
  msgstr "Test Checkbox"
179
 
180
+ #: example-functions.php:370 tests/test-cmb-field.php:266
181
  msgid "Test Multi Checkbox"
182
  msgstr "Test Multi Checkbox"
183
 
184
+ #: example-functions.php:376 tests/test-cmb-field.php:272
185
  msgid "Check One"
186
  msgstr "Check Uno"
187
 
188
+ #: example-functions.php:377 tests/test-cmb-field.php:273
189
  msgid "Check Two"
190
  msgstr "Check Due"
191
 
192
+ #: example-functions.php:378 tests/test-cmb-field.php:274
193
  msgid "Check Three"
194
  msgstr "Check Tre"
195
 
196
+ #: example-functions.php:384
197
  msgid "Test wysiwyg"
198
  msgstr "Test wysiwyg"
199
 
200
+ #: example-functions.php:392
201
  msgid "Test Image"
202
  msgstr "Test Immagine"
203
 
204
+ #: example-functions.php:393
205
  msgid "Upload an image or enter a URL."
206
  msgstr "Carica una immagine o inserisci una URL"
207
 
208
+ #: example-functions.php:399
209
  msgid "Multiple Files"
210
  msgstr "File Multipli"
211
 
212
+ #: example-functions.php:400
213
  msgid "Upload or add multiple images/attachments."
214
  msgstr "Carica o aggiungi immagini/allegati multipli"
215
 
216
+ #: example-functions.php:407
217
  msgid "oEmbed"
218
  msgstr "oEmbed"
219
 
220
+ #. translators: %s: link to codex.wordpress.org/Embeds
221
+ #: example-functions.php:410
222
  msgid ""
223
+ "Enter a youtube, twitter, or instagram URL. Supports services listed at %s."
224
+ msgstr ""
225
+ "Inserisci una URL di youtube, twitter o instagram. Servizi supportato sono "
226
+ "elencati su %s."
227
 
228
+ #: example-functions.php:443
229
  msgid "About Page Metabox"
230
  msgstr "About Page Metabox"
231
 
232
+ #: example-functions.php:472
233
  msgid "Repeating Field Group"
234
  msgstr "Gruppo Campi Ripetuto"
235
 
236
+ #: example-functions.php:480
237
  msgid "Generates reusable form entries"
238
  msgstr "Genera elementi del form riusabili"
239
 
240
+ #: example-functions.php:482
241
  msgid "Entry {#}"
242
  msgstr "Instanza {#}"
243
 
244
+ #: example-functions.php:483
245
  msgid "Add Another Entry"
246
  msgstr "Aggiungi una nuova instanza"
247
 
248
+ #: example-functions.php:484
249
  msgid "Remove Entry"
250
  msgstr "Rimuovi instanza"
251
 
252
+ #: example-functions.php:497
253
  msgid "Entry Title"
254
  msgstr "Inserisci Titolo"
255
 
256
+ #: example-functions.php:504
257
  msgid "Description"
258
  msgstr "Descrizione"
259
 
260
+ #: example-functions.php:505
261
  msgid "Write a short description for this entry"
262
  msgstr "Scrivi una breve descrizione per questo elemento"
263
 
264
+ #: example-functions.php:511
265
  msgid "Entry Image"
266
  msgstr "Inserisci Immagine"
267
 
268
+ #: example-functions.php:517
269
  msgid "Image Caption"
270
  msgstr "Didascalia immagine"
271
 
272
+ #: example-functions.php:536
273
  msgid "User Profile Metabox"
274
  msgstr "Profilo Utente Metabox"
275
 
276
+ #: example-functions.php:543 example-functions.php:613
277
  msgid "Extra Info"
278
  msgstr "Informazioni extra"
279
 
280
+ #: example-functions.php:551
281
  msgid "Avatar"
282
  msgstr "Avatar"
283
 
284
+ #: example-functions.php:558
285
  msgid "Facebook URL"
286
  msgstr "URL Facebook"
287
 
288
+ #: example-functions.php:565
289
  msgid "Twitter URL"
290
  msgstr "URL Twitter"
291
 
292
+ #: example-functions.php:572
293
  msgid "Google+ URL"
294
  msgstr "URL Google+"
295
 
296
+ #: example-functions.php:579
297
  msgid "Linkedin URL"
298
  msgstr "URL LinkedIn"
299
 
300
+ #: example-functions.php:586
301
  msgid "User Field"
302
  msgstr "Campo utente"
303
 
304
+ #: example-functions.php:606
305
  msgid "Category Metabox"
306
+ msgstr "Metabox categoria"
307
 
308
+ #: example-functions.php:621
309
  msgid "Term Image"
310
+ msgstr "Immagine della tassonomia"
311
 
312
+ #: example-functions.php:628
313
  msgid "Arbitrary Term Field"
314
+ msgstr "Campo Arbitrary Term"
315
 
316
+ #: example-functions.php:650
317
  msgid "Theme Options Metabox"
318
  msgstr "Opzioni Tema Metabox"
319
 
320
+ #: example-functions.php:665
321
  msgid "Site Background Color"
322
  msgstr "Colore di sfondo del sito"
323
 
324
+ #: includes/CMB2.php:117
325
+ msgid "Metabox configuration is required to have an ID parameter."
326
+ msgstr "La configurazione del metabox richiede un parametro ID."
327
 
328
+ #: includes/CMB2.php:432
329
  msgid "Click to toggle"
330
  msgstr "Clicca per commutare"
331
 
337
  msgid "Remove Embed"
338
  msgstr "Rimuovi Embed"
339
 
340
+ #. translators: 1: results for. 2: link to codex.wordpress.org/Embeds
341
+ #: includes/CMB2_Ajax.php:181 includes/helper-functions.php:95
342
+ #: tests/cmb-tests-base.php:68
343
+ msgid "No oEmbed Results Found for %1$s. View more info at %2$s."
344
+ msgstr ""
345
+ "Nessun risultato OEmbed trovato per %1$s. Per altre informazioni vedi su%2$s."
346
 
347
+ #: includes/CMB2_Field.php:1144
348
  msgid "Add Group"
349
  msgstr "Aggiungi gruppo"
350
 
351
+ #: includes/CMB2_Field.php:1145
352
  msgid "Remove Group"
353
  msgstr "Rimuovi gruppo"
354
 
355
+ #: includes/CMB2_Field.php:1167 includes/CMB2_Field.php:1171
356
  #: tests/test-cmb-field.php:229
357
  msgid "None"
358
  msgstr "Nessuno"
359
 
360
+ #: includes/CMB2_Field.php:1232
361
  msgid "Sorry, this field does not have a cmb_id specified."
362
+ msgstr "Spiacenti, questo campo non ha il valore cmb_id specificato."
363
 
364
+ #: includes/CMB2_Field_Display.php:408 includes/CMB2_JS.php:155
365
  #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
366
  #: tests/test-cmb-types.php:701
367
  msgid "File:"
368
  msgstr "File:"
369
 
370
+ #: includes/CMB2_JS.php:96 includes/CMB2_JS.php:135
371
  msgid "Clear"
372
  msgstr "Pulisci"
373
 
374
+ #: includes/CMB2_JS.php:97
375
  msgid "Default"
376
  msgstr "Predefinito"
377
 
378
+ #: includes/CMB2_JS.php:98
379
  msgid "Select Color"
380
  msgstr "Seleziona colore"
381
 
382
+ #: includes/CMB2_JS.php:99
383
  msgid "Current Color"
384
  msgstr "Colore attuale"
385
 
386
+ #: includes/CMB2_JS.php:126
387
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
388
  msgstr "Domenica, Lunedi, Martedì, Mercoledì, Giovedi, Venerdì, Sabato"
389
 
390
+ #: includes/CMB2_JS.php:127
391
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
392
  msgstr "Do, Lu, Ma, Me, Gi, Ve, Sa"
393
 
394
+ #: includes/CMB2_JS.php:128
395
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
396
  msgstr "Dom, Lun, Mar, Mer, Gio, Ven, Sab"
397
 
398
+ #: includes/CMB2_JS.php:129
399
  msgid ""
400
  "January, February, March, April, May, June, July, August, September, "
401
  "October, November, December"
402
+ msgstr ""
403
+ "Gennaio, Febbraio, Marzo, Aprile, Maggio, Giugno, Luglio, Agosto, Settembre, "
404
+ "Ottobre, Novembre, Dicembre"
405
 
406
+ #: includes/CMB2_JS.php:130
407
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
408
  msgstr "Gen, Feb, Mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic"
409
 
410
+ #: includes/CMB2_JS.php:131
411
  msgid "Next"
412
  msgstr "Successivo"
413
 
414
+ #: includes/CMB2_JS.php:132
415
  msgid "Prev"
416
  msgstr "Precedente"
417
 
418
+ #: includes/CMB2_JS.php:133
419
  msgid "Today"
420
  msgstr "Oggi"
421
 
422
+ #: includes/CMB2_JS.php:134 includes/CMB2_JS.php:144
423
  msgid "Done"
424
  msgstr "Finito"
425
 
426
+ #: includes/CMB2_JS.php:138
427
  msgid "Choose Time"
428
  msgstr "Scegli la data"
429
 
430
+ #: includes/CMB2_JS.php:139
431
  msgid "Time"
432
  msgstr "Data"
433
 
434
+ #: includes/CMB2_JS.php:140
435
  msgid "Hour"
436
  msgstr "Ora"
437
 
438
+ #: includes/CMB2_JS.php:141
439
  msgid "Minute"
440
  msgstr "Minuto"
441
 
442
+ #: includes/CMB2_JS.php:142
443
  msgid "Second"
444
  msgstr "Secondi"
445
 
446
+ #: includes/CMB2_JS.php:143
447
  msgid "Now"
448
  msgstr "Ora"
449
 
450
+ #: includes/CMB2_JS.php:151
451
  msgid "Use this file"
452
  msgstr "Usa questo file"
453
 
454
+ #: includes/CMB2_JS.php:152
455
  msgid "Use these files"
456
  msgstr "Usa questi file"
457
 
458
+ #: includes/CMB2_JS.php:153 includes/types/CMB2_Type_File_Base.php:61
459
  msgid "Remove Image"
460
  msgstr "Rimuovi immagine"
461
 
462
+ #: includes/CMB2_JS.php:154 includes/CMB2_Types.php:303
463
  #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
464
  #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
465
  #: tests/test-cmb-types.php:701
466
  msgid "Remove"
467
  msgstr "Rimuovi"
468
 
469
+ #: includes/CMB2_JS.php:156 includes/types/CMB2_Type_File_Base.php:78
470
  #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:701
471
  msgid "Download"
472
  msgstr "Download"
473
 
474
+ #: includes/CMB2_JS.php:157
475
  msgid "Select / Deselect All"
476
  msgstr "Seleziona / Deseleziona tutto"
477
 
478
+ #: includes/CMB2_Types.php:171
479
+ msgid ""
480
+ "Custom field types require a Type object instantiation to use this method. "
481
+ "This method was called by the '%s' field type."
482
+ msgstr ""
483
+ "I campi personalizzati richiedono una instanziazione dell'oggetto Type per "
484
+ "usare questo metodo. Questo metodo è stato chiamato dal tipo di campo '%s'."
485
+
486
+ #: includes/CMB2_Types.php:174
487
+ msgid "That field type may not work as expected."
488
+ msgstr "Questo campo potrebbe non funzionare come previsto."
489
+
490
+ #: includes/CMB2_Types.php:175
491
+ msgid "That field type will not work as expected."
492
+ msgstr "Questo campo potrebbe non funzionare in modo corretto."
493
+
494
+ #: includes/CMB2_Types.php:177
495
+ msgid ""
496
+ "For more information about this change see: https://github.com/mustardBees/"
497
+ "cmb-field-select2/pull/34w"
498
+ msgstr ""
499
+ "Per altre informazioni riguardo questo cambiamento: https://github.com/"
500
+ "mustardBees/cmb-field-select2/pull/34w"
501
+
502
+ #: includes/CMB2_Types.php:240
503
  msgid "Add Row"
504
  msgstr "Aggiungi Riga"
505
 
506
+ #: includes/CMB2_hookup.php:128
507
  msgid ""
508
+ "Term Metadata is a WordPress 4.4+ feature. Please upgrade your WordPress "
509
  "install."
510
  msgstr ""
511
+ "Il supporto ai Term Metadata sono una funzionalità per WordPress 4.4. "
512
+ "Aggiorna la tua installazione di WordPress."
513
 
514
+ #: includes/CMB2_hookup.php:132
515
+ msgid "Term metaboxes configuration requires a \"taxonomies\" parameter."
516
  msgstr ""
517
+ "I metabox delle configurazioni per le tassonomie richiede il parametro "
518
+ "\"taxonomies\"."
519
 
520
+ #: includes/helper-functions.php:284
 
 
 
 
521
  msgid "Save"
522
  msgstr "Salva"
523
 
537
  msgstr "Nessun termine"
538
 
539
  #. Plugin Name of the plugin/theme
540
+ msgid "CMB2 team"
541
+ msgstr "CMB2 team"
542
+
543
+ #. Author of the plugin/theme
544
  msgid "CMB2"
545
  msgstr "CMB2"
546
 
547
  #. Plugin URI of the plugin/theme
548
+ msgid "https://github.com/CMB2/CMB2"
549
+ msgstr "https://github.com/CMB2/CMB2"
550
 
551
  #. Description of the plugin/theme
552
  msgid ""
553
  "CMB2 will create metaboxes and forms with custom fields that will blow your "
554
  "mind."
555
+ msgstr ""
556
+ "CMB2 crea metabox e form con campi personalizzati che ti faranno esplodere "
557
+ "la testa."
 
 
558
 
559
  #. Author URI of the plugin/theme
560
+ msgid "https://cmb2.io"
561
+ msgstr "https://cmb2.io"
562
 
563
+ #: includes/CMB2_JS.php:125
564
  msgctxt "Valid formatDate string for jquery-ui datepicker"
565
  msgid "mm/dd/yy"
566
  msgstr "mm/dd/yy"
567
 
568
+ #: includes/CMB2_JS.php:145
569
  msgctxt ""
570
+ "Valid formatting string, as per http://trentrichardson.com/examples/"
571
+ "timepicker/"
572
  msgid "hh:mm TT"
573
  msgstr "hh:mm TT"
vendor/CMB2/languages/cmb2-ja.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-jv.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ka.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ka_GE.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-kk.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-km.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-kn.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ko_KR.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ku.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ky.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-lo.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-lt_LT.po CHANGED
@@ -499,8 +499,8 @@ msgid "CMB2"
499
  msgstr ""
500
 
501
  #. Plugin URI of the plugin/theme
502
- msgid "https://github.com/WebDevStudios/CMB2"
503
- msgstr "https://github.com/WebDevStudios/CMB2"
504
 
505
  #. Description of the plugin/theme
506
  msgid ""
499
  msgstr ""
500
 
501
  #. Plugin URI of the plugin/theme
502
+ msgid "https://github.com/CMB2/CMB2"
503
+ msgstr "https://github.com/CMB2/CMB2"
504
 
505
  #. Description of the plugin/theme
506
  msgid ""
vendor/CMB2/languages/cmb2-lv.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-mg.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-mk_MK.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-mn.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-mr.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ms_MY.po CHANGED
@@ -498,8 +498,8 @@ msgid "CMB2"
498
  msgstr "CMB2"
499
 
500
  #. Plugin URI of the plugin/theme
501
- msgid "https://github.com/WebDevStudios/CMB2"
502
- msgstr "https://github.com/WebDevStudios/CMB2"
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
498
  msgstr "CMB2"
499
 
500
  #. Plugin URI of the plugin/theme
501
+ msgid "https://github.com/CMB2/CMB2"
502
+ msgstr "https://github.com/CMB2/CMB2"
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
vendor/CMB2/languages/cmb2-my_MM.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-nb_NO.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ne_NP.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-nl_BE.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-nl_NL.po CHANGED
@@ -499,7 +499,7 @@ msgid "CMB2"
499
  msgstr ""
500
 
501
  #. Plugin URI of the plugin/theme
502
- msgid "https://github.com/WebDevStudios/CMB2"
503
  msgstr ""
504
 
505
  #. Description of the plugin/theme
499
  msgstr ""
500
 
501
  #. Plugin URI of the plugin/theme
502
+ msgid "https://github.com/CMB2/CMB2"
503
  msgstr ""
504
 
505
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-nn_NO.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-oc.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-os.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-pap.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-pl_PL.po CHANGED
@@ -499,7 +499,7 @@ msgid "CMB2"
499
  msgstr ""
500
 
501
  #. Plugin URI of the plugin/theme
502
- msgid "https://github.com/WebDevStudios/CMB2"
503
  msgstr ""
504
 
505
  #. Description of the plugin/theme
499
  msgstr ""
500
 
501
  #. Plugin URI of the plugin/theme
502
+ msgid "https://github.com/CMB2/CMB2"
503
  msgstr ""
504
 
505
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ps.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-pt_BR.po CHANGED
@@ -499,8 +499,8 @@ msgid "CMB2"
499
  msgstr "CMB2"
500
 
501
  #. Plugin URI of the plugin/theme
502
- msgid "https://github.com/WebDevStudios/CMB2"
503
- msgstr "https://github.com/WebDevStudios/CMB2"
504
 
505
  #. Description of the plugin/theme
506
  msgid ""
499
  msgstr "CMB2"
500
 
501
  #. Plugin URI of the plugin/theme
502
+ msgid "https://github.com/CMB2/CMB2"
503
+ msgstr "https://github.com/CMB2/CMB2"
504
 
505
  #. Description of the plugin/theme
506
  msgid ""
vendor/CMB2/languages/cmb2-pt_PT.mo.orig ADDED
Binary file
vendor/CMB2/languages/cmb2-pt_PT.po CHANGED
@@ -601,8 +601,8 @@ msgid "CMB2"
601
  msgstr "CMB2"
602
 
603
  #. Plugin URI of the plugin/theme
604
- msgid "https://github.com/WebDevStudios/CMB2"
605
- msgstr "https://github.com/WebDevStudios/CMB2"
606
 
607
  #. Description of the plugin/theme
608
  msgid ""
601
  msgstr "CMB2"
602
 
603
  #. Plugin URI of the plugin/theme
604
+ msgid "https://github.com/CMB2/CMB2"
605
+ msgstr "https://github.com/CMB2/CMB2"
606
 
607
  #. Description of the plugin/theme
608
  msgid ""
vendor/CMB2/languages/cmb2-ro_RO.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ru_RU.po CHANGED
@@ -500,8 +500,8 @@ msgid "CMB2"
500
  msgstr "CMB2"
501
 
502
  #. Plugin URI of the plugin/theme
503
- msgid "https://github.com/WebDevStudios/CMB2"
504
- msgstr "https://github.com/WebDevStudios/CMB2"
505
 
506
  #. Description of the plugin/theme
507
  msgid ""
500
  msgstr "CMB2"
501
 
502
  #. Plugin URI of the plugin/theme
503
+ msgid "https://github.com/CMB2/CMB2"
504
+ msgstr "https://github.com/CMB2/CMB2"
505
 
506
  #. Description of the plugin/theme
507
  msgid ""
vendor/CMB2/languages/cmb2-sa.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-sah.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-si_LK.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-sk_SK.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-sl_SI.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-so.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-sq.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-sr_RS.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-su.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-sv_SE.po CHANGED
@@ -498,8 +498,8 @@ msgid "CMB2"
498
  msgstr ""
499
 
500
  #. Plugin URI of the plugin/theme
501
- msgid "https://github.com/WebDevStudios/CMB2"
502
- msgstr "https://github.com/WebDevStudios/CMB2"
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
498
  msgstr ""
499
 
500
  #. Plugin URI of the plugin/theme
501
+ msgid "https://github.com/CMB2/CMB2"
502
+ msgstr "https://github.com/CMB2/CMB2"
503
 
504
  #. Description of the plugin/theme
505
  msgid ""
vendor/CMB2/languages/cmb2-sw.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ta_IN.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ta_LK.po CHANGED
@@ -498,7 +498,7 @@ msgid "CMB2"
498
  msgstr ""
499
 
500
  #. Plugin URI of the plugin/theme
501
- msgid "https://github.com/WebDevStudios/CMB2"
502
  msgstr ""
503
 
504
  #. Description of the plugin/theme
498
  msgstr ""
499
 
500
  #. Plugin URI of the plugin/theme
501
+ msgid "https://github.com/CMB2/CMB2"
502
  msgstr ""
503
 
504
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-te.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-tg.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-th.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-tk_TM.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-tl.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-tr_TR.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-tzm.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ug.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-uk.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ur.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-ur_PK.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-uz.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-vi.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-zh_CN.po CHANGED
@@ -498,7 +498,7 @@ msgid "CMB2"
498
  msgstr "CMB2"
499
 
500
  #. Plugin URI of the plugin/theme
501
- msgid "https://github.com/WebDevStudios/CMB2"
502
  msgstr ""
503
 
504
  #. Description of the plugin/theme
498
  msgstr "CMB2"
499
 
500
  #. Plugin URI of the plugin/theme
501
+ msgid "https://github.com/CMB2/CMB2"
502
  msgstr ""
503
 
504
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-zh_HK.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2-zh_TW.po CHANGED
@@ -497,7 +497,7 @@ msgid "CMB2"
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
- msgid "https://github.com/WebDevStudios/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
497
  msgstr ""
498
 
499
  #. Plugin URI of the plugin/theme
500
+ msgid "https://github.com/CMB2/CMB2"
501
  msgstr ""
502
 
503
  #. Description of the plugin/theme
vendor/CMB2/languages/cmb2.pot CHANGED
@@ -1,16 +1,16 @@
1
- # Copyright (C) 2017 WebDevStudios
2
  # This file is distributed under the same license as the CMB2 package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: CMB2 2.2.4\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
7
- "POT-Creation-Date: 2017-02-15 17:51:05+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-2-15 17:51+300\n"
12
- "Last-Translator: WebDevStudios contact@webdevstudios.com\n"
13
- "Language-Team: WebDevStudios contact@webdevstudios.com\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
15
  "X-Poedit-KeywordsList: "
16
  "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
@@ -24,11 +24,11 @@ msgstr ""
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
- #: example-functions.php:117 tests/test-cmb-field.php:261
28
  msgid "Test Metabox"
29
  msgstr ""
30
 
31
- #: example-functions.php:130 example-functions.php:452
32
  msgid "Test Text"
33
  msgstr ""
34
 
@@ -38,19 +38,19 @@ msgstr ""
38
  #: example-functions.php:194 example-functions.php:202
39
  #: example-functions.php:217 example-functions.php:225
40
  #: example-functions.php:233 example-functions.php:250
41
- #: example-functions.php:259 example-functions.php:272
42
- #: example-functions.php:279 example-functions.php:286
43
- #: example-functions.php:300 example-functions.php:313
44
- #: example-functions.php:326 example-functions.php:338
45
- #: example-functions.php:347 example-functions.php:355
46
- #: example-functions.php:364 example-functions.php:371
47
- #: example-functions.php:385 example-functions.php:453
48
- #: example-functions.php:544 example-functions.php:552
49
- #: example-functions.php:559 example-functions.php:566
50
- #: example-functions.php:573 example-functions.php:580
51
- #: example-functions.php:587 example-functions.php:614
52
- #: example-functions.php:622 example-functions.php:629
53
- #: example-functions.php:666 tests/test-cmb-field.php:273
54
  msgid "field description (optional)"
55
  msgstr ""
56
 
@@ -110,466 +110,488 @@ msgstr ""
110
  msgid "Test Color Picker"
111
  msgstr ""
112
 
113
- #: example-functions.php:271
114
  msgid "Test Text Area"
115
  msgstr ""
116
 
117
- #: example-functions.php:278
118
  msgid "Test Text Area Small"
119
  msgstr ""
120
 
121
- #: example-functions.php:285
122
  msgid "Test Text Area for Code"
123
  msgstr ""
124
 
125
- #: example-functions.php:292
126
  msgid "Test Title Weeeee"
127
  msgstr ""
128
 
129
- #: example-functions.php:293
130
  msgid "This is a title description"
131
  msgstr ""
132
 
133
- #: example-functions.php:299
134
  msgid "Test Select"
135
  msgstr ""
136
 
137
- #: example-functions.php:305 example-functions.php:318
138
- #: example-functions.php:330
139
  msgid "Option One"
140
  msgstr ""
141
 
142
- #: example-functions.php:306 example-functions.php:319
143
- #: example-functions.php:331
144
  msgid "Option Two"
145
  msgstr ""
146
 
147
- #: example-functions.php:307 example-functions.php:320
148
- #: example-functions.php:332
149
  msgid "Option Three"
150
  msgstr ""
151
 
152
- #: example-functions.php:312
153
  msgid "Test Radio inline"
154
  msgstr ""
155
 
156
- #: example-functions.php:325
157
  msgid "Test Radio"
158
  msgstr ""
159
 
160
- #: example-functions.php:337
161
  msgid "Test Taxonomy Radio"
162
  msgstr ""
163
 
164
- #: example-functions.php:346
165
  msgid "Test Taxonomy Select"
166
  msgstr ""
167
 
168
- #: example-functions.php:354
169
  msgid "Test Taxonomy Multi Checkbox"
170
  msgstr ""
171
 
172
- #: example-functions.php:363
173
  msgid "Test Checkbox"
174
  msgstr ""
175
 
176
- #: example-functions.php:370 tests/test-cmb-field.php:272
177
  msgid "Test Multi Checkbox"
178
  msgstr ""
179
 
180
- #: example-functions.php:376 tests/test-cmb-field.php:278
181
  msgid "Check One"
182
  msgstr ""
183
 
184
- #: example-functions.php:377 tests/test-cmb-field.php:279
185
  msgid "Check Two"
186
  msgstr ""
187
 
188
- #: example-functions.php:378 tests/test-cmb-field.php:280
189
  msgid "Check Three"
190
  msgstr ""
191
 
192
- #: example-functions.php:384
193
  msgid "Test wysiwyg"
194
  msgstr ""
195
 
196
- #: example-functions.php:392
197
  msgid "Test Image"
198
  msgstr ""
199
 
200
- #: example-functions.php:393
201
  msgid "Upload an image or enter a URL."
202
  msgstr ""
203
 
204
- #: example-functions.php:399
205
  msgid "Multiple Files"
206
  msgstr ""
207
 
208
- #: example-functions.php:400
209
  msgid "Upload or add multiple images/attachments."
210
  msgstr ""
211
 
212
- #: example-functions.php:407
213
  msgid "oEmbed"
214
  msgstr ""
215
 
216
- #: example-functions.php:410
217
  #. translators: %s: link to codex.wordpress.org/Embeds
218
  msgid "Enter a youtube, twitter, or instagram URL. Supports services listed at %s."
219
  msgstr ""
220
 
221
- #: example-functions.php:443
222
  msgid "About Page Metabox"
223
  msgstr ""
224
 
225
- #: example-functions.php:472
226
  msgid "Repeating Field Group"
227
  msgstr ""
228
 
229
- #: example-functions.php:480
230
  msgid "Generates reusable form entries"
231
  msgstr ""
232
 
233
- #: example-functions.php:482
234
  msgid "Entry {#}"
235
  msgstr ""
236
 
237
- #: example-functions.php:483
238
  msgid "Add Another Entry"
239
  msgstr ""
240
 
241
- #: example-functions.php:484
242
  msgid "Remove Entry"
243
  msgstr ""
244
 
245
- #: example-functions.php:497
246
  msgid "Entry Title"
247
  msgstr ""
248
 
249
- #: example-functions.php:504
250
  msgid "Description"
251
  msgstr ""
252
 
253
- #: example-functions.php:505
254
  msgid "Write a short description for this entry"
255
  msgstr ""
256
 
257
- #: example-functions.php:511
258
  msgid "Entry Image"
259
  msgstr ""
260
 
261
- #: example-functions.php:517
262
  msgid "Image Caption"
263
  msgstr ""
264
 
265
- #: example-functions.php:536
266
  msgid "User Profile Metabox"
267
  msgstr ""
268
 
269
- #: example-functions.php:543 example-functions.php:613
270
  msgid "Extra Info"
271
  msgstr ""
272
 
273
- #: example-functions.php:551
274
  msgid "Avatar"
275
  msgstr ""
276
 
277
- #: example-functions.php:558
278
  msgid "Facebook URL"
279
  msgstr ""
280
 
281
- #: example-functions.php:565
282
  msgid "Twitter URL"
283
  msgstr ""
284
 
285
- #: example-functions.php:572
286
  msgid "Google+ URL"
287
  msgstr ""
288
 
289
- #: example-functions.php:579
290
  msgid "Linkedin URL"
291
  msgstr ""
292
 
293
- #: example-functions.php:586
294
  msgid "User Field"
295
  msgstr ""
296
 
297
- #: example-functions.php:606
298
  msgid "Category Metabox"
299
  msgstr ""
300
 
301
- #: example-functions.php:621
302
  msgid "Term Image"
303
  msgstr ""
304
 
305
- #: example-functions.php:628
306
  msgid "Arbitrary Term Field"
307
  msgstr ""
308
 
309
- #: example-functions.php:650
310
- msgid "Theme Options Metabox"
311
  msgstr ""
312
 
313
- #: example-functions.php:665
314
  msgid "Site Background Color"
315
  msgstr ""
316
 
317
- #: example-functions.php:701
 
 
 
 
318
  msgid "REST Test Box"
319
  msgstr ""
320
 
321
- #: example-functions.php:710
322
  msgid "REST Test Text"
323
  msgstr ""
324
 
325
- #: example-functions.php:711
326
  msgid "Will show in the REST API for this box and for pages."
327
  msgstr ""
328
 
329
- #: example-functions.php:717
330
  msgid "REST Editable Test Text"
331
  msgstr ""
332
 
333
- #: example-functions.php:718
334
  msgid "Will show in REST API \"editable\" contexts only (`POST` requests)."
335
  msgstr ""
336
 
337
- #: includes/CMB2.php:167
338
  msgid "Metabox configuration is required to have an ID parameter."
339
  msgstr ""
340
 
341
- #: includes/CMB2.php:510
342
  msgid "Click to toggle"
343
  msgstr ""
344
 
345
- #: includes/CMB2_Ajax.php:71
346
  msgid "Please Try Again"
347
  msgstr ""
348
 
349
- #: includes/CMB2_Ajax.php:173 tests/cmb-tests-base.php:59
350
  msgid "Remove Embed"
351
  msgstr ""
352
 
353
- #: includes/CMB2_Ajax.php:181 includes/helper-functions.php:99
354
- #: tests/cmb-tests-base.php:68 tests/test-cmb-types-display.php:192
355
  #. translators: 1: results for. 2: link to codex.wordpress.org/Embeds
356
  msgid "No oEmbed Results Found for %1$s. View more info at %2$s."
357
  msgstr ""
358
 
359
- #: includes/CMB2_Base.php:389
360
  msgid ""
361
- "The \"%s\" field parameter has been deprecated in favor of the \"%s\" "
362
  "parameter."
363
  msgstr ""
364
 
365
- #: includes/CMB2_Base.php:393
366
  msgid ""
367
- "Using the \"%s\" field parameter as a callback has been deprecated in favor "
368
- "of the \"%s\" parameter."
369
  msgstr ""
370
 
371
- #: includes/CMB2_Base.php:423
372
  msgid ""
373
  "%1$s was called with a parameter that is <strong>deprecated</strong> since "
374
  "version %2$s! %3$s"
375
  msgstr ""
376
 
377
- #: includes/CMB2_Base.php:426
378
  msgid ""
379
  "%1$s was called with a parameter that is <strong>deprecated</strong> since "
380
  "version %2$s with no alternative available."
381
  msgstr ""
382
 
383
- #: includes/CMB2_Base.php:459 includes/types/CMB2_Type_Base.php:138
 
384
  msgid "Invalid %1$s property: %2$s"
385
  msgstr ""
386
 
387
- #: includes/CMB2_Base.php:473 includes/types/CMB2_Type_Base.php:123
388
  msgid "Invalid %1$s method: %2$s"
389
  msgstr ""
390
 
391
- #: includes/CMB2_Field.php:1118
392
  msgid "Add Group"
393
  msgstr ""
394
 
395
- #: includes/CMB2_Field.php:1119
396
  msgid "Remove Group"
397
  msgstr ""
398
 
399
- #: includes/CMB2_Field.php:1141 includes/CMB2_Field.php:1145
400
- #: tests/test-cmb-field.php:235
401
  msgid "None"
402
  msgstr ""
403
 
404
- #: includes/CMB2_Field.php:1206
405
  msgid "Sorry, this field does not have a cmb_id specified."
406
  msgstr ""
407
 
408
- #: includes/CMB2_Field_Display.php:409 includes/CMB2_JS.php:156
409
- #: includes/types/CMB2_Type_File_Base.php:75 tests/test-cmb-types-base.php:143
410
- #: tests/test-cmb-types.php:700
411
  msgid "File:"
412
  msgstr ""
413
 
414
- #: includes/CMB2_JS.php:97 includes/CMB2_JS.php:136
 
 
 
 
415
  msgid "Clear"
416
  msgstr ""
417
 
418
- #: includes/CMB2_JS.php:98
419
  msgid "Default"
420
  msgstr ""
421
 
422
- #: includes/CMB2_JS.php:99
423
  msgid "Select Color"
424
  msgstr ""
425
 
426
- #: includes/CMB2_JS.php:100
427
  msgid "Current Color"
428
  msgstr ""
429
 
430
- #: includes/CMB2_JS.php:127
431
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
432
  msgstr ""
433
 
434
- #: includes/CMB2_JS.php:128
435
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
436
  msgstr ""
437
 
438
- #: includes/CMB2_JS.php:129
439
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
440
  msgstr ""
441
 
442
- #: includes/CMB2_JS.php:130
443
  msgid ""
444
  "January, February, March, April, May, June, July, August, September, "
445
  "October, November, December"
446
  msgstr ""
447
 
448
- #: includes/CMB2_JS.php:131
449
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
450
  msgstr ""
451
 
452
- #: includes/CMB2_JS.php:132
453
  msgid "Next"
454
  msgstr ""
455
 
456
- #: includes/CMB2_JS.php:133
457
  msgid "Prev"
458
  msgstr ""
459
 
460
- #: includes/CMB2_JS.php:134
461
  msgid "Today"
462
  msgstr ""
463
 
464
- #: includes/CMB2_JS.php:135 includes/CMB2_JS.php:145
465
  msgid "Done"
466
  msgstr ""
467
 
468
- #: includes/CMB2_JS.php:139
469
  msgid "Choose Time"
470
  msgstr ""
471
 
472
- #: includes/CMB2_JS.php:140
473
  msgid "Time"
474
  msgstr ""
475
 
476
- #: includes/CMB2_JS.php:141
477
  msgid "Hour"
478
  msgstr ""
479
 
480
- #: includes/CMB2_JS.php:142
481
  msgid "Minute"
482
  msgstr ""
483
 
484
- #: includes/CMB2_JS.php:143
485
  msgid "Second"
486
  msgstr ""
487
 
488
- #: includes/CMB2_JS.php:144
489
  msgid "Now"
490
  msgstr ""
491
 
492
- #: includes/CMB2_JS.php:152
493
  msgid "Use this file"
494
  msgstr ""
495
 
496
- #: includes/CMB2_JS.php:153
497
  msgid "Use these files"
498
  msgstr ""
499
 
500
- #: includes/CMB2_JS.php:154 includes/types/CMB2_Type_File_Base.php:61
501
  msgid "Remove Image"
502
  msgstr ""
503
 
504
- #: includes/CMB2_JS.php:155 includes/CMB2_Types.php:392
505
- #: includes/types/CMB2_Type_File_Base.php:80 tests/test-cmb-types-base.php:143
506
  #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
507
- #: tests/test-cmb-types.php:700
508
  msgid "Remove"
509
  msgstr ""
510
 
511
- #: includes/CMB2_JS.php:157 includes/types/CMB2_Type_File_Base.php:78
512
- #: tests/test-cmb-types-base.php:143 tests/test-cmb-types.php:700
513
  msgid "Download"
514
  msgstr ""
515
 
516
- #: includes/CMB2_JS.php:158
517
  msgid "Select / Deselect All"
518
  msgstr ""
519
 
520
- #: includes/CMB2_Types.php:220
 
 
 
 
 
 
 
 
521
  msgid "Custom CMB2 field type classes must extend CMB2_Type_Base."
522
  msgstr ""
523
 
524
- #: includes/CMB2_Types.php:329
525
  msgid "Add Row"
526
  msgstr ""
527
 
528
- #: includes/CMB2_hookup.php:148
 
 
 
 
 
529
  msgid ""
530
  "Term Metadata is a WordPress 4.4+ feature. Please upgrade your WordPress "
531
  "install."
532
  msgstr ""
533
 
534
- #: includes/CMB2_hookup.php:152
535
  msgid "Term metaboxes configuration requires a \"taxonomies\" parameter."
536
  msgstr ""
537
 
538
- #: includes/CMB2_hookup.php:389
539
  msgid "Toggle panel: %s"
540
  msgstr ""
541
 
542
- #: includes/helper-functions.php:287
543
  msgid "Save"
544
  msgstr ""
545
 
546
- #: includes/rest-api/CMB2_REST_Controller.php:250
547
  msgid "This box does not have read permissions."
548
  msgstr ""
549
 
550
- #: includes/rest-api/CMB2_REST_Controller.php:268
551
  msgid "This box does not have write permissions."
552
  msgstr ""
553
 
554
- #: includes/rest-api/CMB2_REST_Controller.php:289
555
  msgid ""
556
  "No box found by that id. A box needs to be registered with the "
557
  "\"show_in_rest\" parameter configured."
558
  msgstr ""
559
 
560
- #: includes/rest-api/CMB2_REST_Controller.php:365
561
  msgid "A human-readable description of the object."
562
  msgstr ""
563
 
564
- #: includes/rest-api/CMB2_REST_Controller.php:370
565
  msgid "The id for the object."
566
  msgstr ""
567
 
568
- #: includes/rest-api/CMB2_REST_Controller.php:375
569
  msgid "The title for the object."
570
  msgstr ""
571
 
572
- #: includes/rest-api/CMB2_REST_Controller_Boxes.php:50
573
  msgid "Includes the registered fields for the box in the response."
574
  msgstr ""
575
 
@@ -603,76 +625,76 @@ msgid ""
603
  msgstr ""
604
 
605
  #: includes/rest-api/CMB2_REST_Controller_Fields.php:236
606
- #: tests/test-cmb-rest-controllers.php:213
607
  msgid "CMB2 Field value cannot be updated without the value parameter specified."
608
  msgstr ""
609
 
610
- #: includes/rest-api/CMB2_REST_Controller_Fields.php:295
611
- #: tests/test-cmb-rest-controllers.php:224
612
- #: tests/test-cmb-rest-controllers.php:235
613
  msgid ""
614
  "CMB2 Field value cannot be modified without the object_id and object_type "
615
  "parameters specified."
616
  msgstr ""
617
 
618
- #: includes/rest-api/CMB2_REST_Controller_Fields.php:308
619
- #: includes/rest-api/CMB2_REST_Controller_Fields.php:335
620
  msgid "No field found by that id."
621
  msgstr ""
622
 
623
- #: includes/rest-api/CMB2_REST_Controller_Fields.php:407
624
  msgid "Value Error for %s"
625
  msgstr ""
626
 
627
- #: includes/shim/WP_REST_Controller.php:24
628
- msgid "The register_routes() method must be overriden"
 
629
  msgstr ""
630
 
631
- #: includes/shim/WP_REST_Controller.php:34
632
- #: includes/shim/WP_REST_Controller.php:44
633
- #: includes/shim/WP_REST_Controller.php:54
634
- #: includes/shim/WP_REST_Controller.php:64
635
- #: includes/shim/WP_REST_Controller.php:74
636
- #: includes/shim/WP_REST_Controller.php:84
637
- #: includes/shim/WP_REST_Controller.php:94
638
- #: includes/shim/WP_REST_Controller.php:104
639
- #: includes/shim/WP_REST_Controller.php:114
640
- #: includes/shim/WP_REST_Controller.php:124
641
- #: includes/shim/WP_REST_Controller.php:134
642
- #: includes/shim/WP_REST_Controller.php:145
643
- msgid "Method '%s' not implemented. Must be over-ridden in subclass."
644
  msgstr ""
645
 
646
- #: includes/shim/WP_REST_Controller.php:248
647
  msgid "Current page of the collection."
648
  msgstr ""
649
 
650
- #: includes/shim/WP_REST_Controller.php:256
651
  msgid "Maximum number of items to be returned in result set."
652
  msgstr ""
653
 
654
- #: includes/shim/WP_REST_Controller.php:265
655
  msgid "Limit results to those matching a string."
656
  msgstr ""
657
 
658
- #: includes/shim/WP_REST_Controller.php:283
659
  msgid ""
660
  "Scope under which the request is made; determines fields present in "
661
  "response."
662
  msgstr ""
663
 
664
- #: includes/types/CMB2_Type_File.php:40 tests/test-cmb-types.php:682
665
- #: tests/test-cmb-types.php:700
666
  msgid "Add or Upload File"
667
  msgstr ""
668
 
669
- #: includes/types/CMB2_Type_File_List.php:39 tests/test-cmb-types.php:638
670
- #: tests/test-cmb-types.php:662
671
  msgid "Add or Upload Files"
672
  msgstr ""
673
 
674
- #: includes/types/CMB2_Type_Taxonomy_Multicheck.php:27
675
- #: includes/types/CMB2_Type_Taxonomy_Radio.php:25
676
  msgid "No terms"
677
  msgstr ""
678
 
@@ -681,7 +703,7 @@ msgid "CMB2"
681
  msgstr ""
682
 
683
  #. Plugin URI of the plugin/theme
684
- msgid "https://github.com/WebDevStudios/CMB2"
685
  msgstr ""
686
 
687
  #. Description of the plugin/theme
@@ -691,19 +713,19 @@ msgid ""
691
  msgstr ""
692
 
693
  #. Author of the plugin/theme
694
- msgid "WebDevStudios"
695
  msgstr ""
696
 
697
  #. Author URI of the plugin/theme
698
- msgid "http://webdevstudios.com"
699
  msgstr ""
700
 
701
- #: includes/CMB2_JS.php:126
702
  msgctxt "Valid formatDate string for jquery-ui datepicker"
703
  msgid "mm/dd/yy"
704
  msgstr ""
705
 
706
- #: includes/CMB2_JS.php:146
707
  msgctxt ""
708
  "Valid formatting string, as per "
709
  "http://trentrichardson.com/examples/timepicker/"
1
+ # Copyright (C) 2017 CMB2 team
2
  # This file is distributed under the same license as the CMB2 package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: CMB2 2.3.0\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/cmb2\n"
7
+ "POT-Creation-Date: 2017-11-27 20:48:19+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2017-11-27 20:48+300\n"
12
+ "Last-Translator: CMB2 Team hello@cmb2.io\n"
13
+ "Language-Team: CMB2 Team hello@cmb2.io\n"
14
  "X-Generator: grunt-wp-i18n 0.4.9\n"
15
  "X-Poedit-KeywordsList: "
16
  "__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
+ #: example-functions.php:117 tests/test-cmb-field.php:263
28
  msgid "Test Metabox"
29
  msgstr ""
30
 
31
+ #: example-functions.php:130 example-functions.php:459
32
  msgid "Test Text"
33
  msgstr ""
34
 
38
  #: example-functions.php:194 example-functions.php:202
39
  #: example-functions.php:217 example-functions.php:225
40
  #: example-functions.php:233 example-functions.php:250
41
+ #: example-functions.php:259 example-functions.php:275
42
+ #: example-functions.php:282 example-functions.php:289
43
+ #: example-functions.php:303 example-functions.php:316
44
+ #: example-functions.php:329 example-functions.php:341
45
+ #: example-functions.php:350 example-functions.php:358
46
+ #: example-functions.php:367 example-functions.php:374
47
+ #: example-functions.php:388 example-functions.php:460
48
+ #: example-functions.php:551 example-functions.php:559
49
+ #: example-functions.php:566 example-functions.php:573
50
+ #: example-functions.php:580 example-functions.php:587
51
+ #: example-functions.php:594 example-functions.php:621
52
+ #: example-functions.php:629 example-functions.php:636
53
+ #: example-functions.php:682 tests/test-cmb-field.php:275
54
  msgid "field description (optional)"
55
  msgstr ""
56
 
110
  msgid "Test Color Picker"
111
  msgstr ""
112
 
113
+ #: example-functions.php:274
114
  msgid "Test Text Area"
115
  msgstr ""
116
 
117
+ #: example-functions.php:281
118
  msgid "Test Text Area Small"
119
  msgstr ""
120
 
121
+ #: example-functions.php:288
122
  msgid "Test Text Area for Code"
123
  msgstr ""
124
 
125
+ #: example-functions.php:295
126
  msgid "Test Title Weeeee"
127
  msgstr ""
128
 
129
+ #: example-functions.php:296
130
  msgid "This is a title description"
131
  msgstr ""
132
 
133
+ #: example-functions.php:302
134
  msgid "Test Select"
135
  msgstr ""
136
 
137
+ #: example-functions.php:308 example-functions.php:321
138
+ #: example-functions.php:333
139
  msgid "Option One"
140
  msgstr ""
141
 
142
+ #: example-functions.php:309 example-functions.php:322
143
+ #: example-functions.php:334
144
  msgid "Option Two"
145
  msgstr ""
146
 
147
+ #: example-functions.php:310 example-functions.php:323
148
+ #: example-functions.php:335
149
  msgid "Option Three"
150
  msgstr ""
151
 
152
+ #: example-functions.php:315
153
  msgid "Test Radio inline"
154
  msgstr ""
155
 
156
+ #: example-functions.php:328
157
  msgid "Test Radio"
158
  msgstr ""
159
 
160
+ #: example-functions.php:340
161
  msgid "Test Taxonomy Radio"
162
  msgstr ""
163
 
164
+ #: example-functions.php:349
165
  msgid "Test Taxonomy Select"
166
  msgstr ""
167
 
168
+ #: example-functions.php:357
169
  msgid "Test Taxonomy Multi Checkbox"
170
  msgstr ""
171
 
172
+ #: example-functions.php:366
173
  msgid "Test Checkbox"
174
  msgstr ""
175
 
176
+ #: example-functions.php:373 tests/test-cmb-field.php:274
177
  msgid "Test Multi Checkbox"
178
  msgstr ""
179
 
180
+ #: example-functions.php:379 tests/test-cmb-field.php:280
181
  msgid "Check One"
182
  msgstr ""
183
 
184
+ #: example-functions.php:380 tests/test-cmb-field.php:281
185
  msgid "Check Two"
186
  msgstr ""
187
 
188
+ #: example-functions.php:381 tests/test-cmb-field.php:282
189
  msgid "Check Three"
190
  msgstr ""
191
 
192
+ #: example-functions.php:387
193
  msgid "Test wysiwyg"
194
  msgstr ""
195
 
196
+ #: example-functions.php:397
197
  msgid "Test Image"
198
  msgstr ""
199
 
200
+ #: example-functions.php:398
201
  msgid "Upload an image or enter a URL."
202
  msgstr ""
203
 
204
+ #: example-functions.php:404
205
  msgid "Multiple Files"
206
  msgstr ""
207
 
208
+ #: example-functions.php:405
209
  msgid "Upload or add multiple images/attachments."
210
  msgstr ""
211
 
212
+ #: example-functions.php:412
213
  msgid "oEmbed"
214
  msgstr ""
215
 
216
+ #: example-functions.php:415
217
  #. translators: %s: link to codex.wordpress.org/Embeds
218
  msgid "Enter a youtube, twitter, or instagram URL. Supports services listed at %s."
219
  msgstr ""
220
 
221
+ #: example-functions.php:448
222
  msgid "About Page Metabox"
223
  msgstr ""
224
 
225
+ #: example-functions.php:479
226
  msgid "Repeating Field Group"
227
  msgstr ""
228
 
229
+ #: example-functions.php:487
230
  msgid "Generates reusable form entries"
231
  msgstr ""
232
 
233
+ #: example-functions.php:489
234
  msgid "Entry {#}"
235
  msgstr ""
236
 
237
+ #: example-functions.php:490
238
  msgid "Add Another Entry"
239
  msgstr ""
240
 
241
+ #: example-functions.php:491
242
  msgid "Remove Entry"
243
  msgstr ""
244
 
245
+ #: example-functions.php:504
246
  msgid "Entry Title"
247
  msgstr ""
248
 
249
+ #: example-functions.php:511
250
  msgid "Description"
251
  msgstr ""
252
 
253
+ #: example-functions.php:512
254
  msgid "Write a short description for this entry"
255
  msgstr ""
256
 
257
+ #: example-functions.php:518
258
  msgid "Entry Image"
259
  msgstr ""
260
 
261
+ #: example-functions.php:524
262
  msgid "Image Caption"
263
  msgstr ""
264
 
265
+ #: example-functions.php:543
266
  msgid "User Profile Metabox"
267
  msgstr ""
268
 
269
+ #: example-functions.php:550 example-functions.php:620
270
  msgid "Extra Info"
271
  msgstr ""
272
 
273
+ #: example-functions.php:558
274
  msgid "Avatar"
275
  msgstr ""
276
 
277
+ #: example-functions.php:565
278
  msgid "Facebook URL"
279
  msgstr ""
280
 
281
+ #: example-functions.php:572
282
  msgid "Twitter URL"
283
  msgstr ""
284
 
285
+ #: example-functions.php:579
286
  msgid "Google+ URL"
287
  msgstr ""
288
 
289
+ #: example-functions.php:586
290
  msgid "Linkedin URL"
291
  msgstr ""
292
 
293
+ #: example-functions.php:593
294
  msgid "User Field"
295
  msgstr ""
296
 
297
+ #: example-functions.php:613
298
  msgid "Category Metabox"
299
  msgstr ""
300
 
301
+ #: example-functions.php:628
302
  msgid "Term Image"
303
  msgstr ""
304
 
305
+ #: example-functions.php:635
306
  msgid "Arbitrary Term Field"
307
  msgstr ""
308
 
309
+ #: example-functions.php:654
310
+ msgid "Theme Options"
311
  msgstr ""
312
 
313
+ #: example-functions.php:681
314
  msgid "Site Background Color"
315
  msgstr ""
316
 
317
+ #: example-functions.php:718
318
+ msgid "%s &mdash; Updated!"
319
+ msgstr ""
320
+
321
+ #: example-functions.php:752
322
  msgid "REST Test Box"
323
  msgstr ""
324
 
325
+ #: example-functions.php:761
326
  msgid "REST Test Text"
327
  msgstr ""
328
 
329
+ #: example-functions.php:762
330
  msgid "Will show in the REST API for this box and for pages."
331
  msgstr ""
332
 
333
+ #: example-functions.php:768
334
  msgid "REST Editable Test Text"
335
  msgstr ""
336
 
337
+ #: example-functions.php:769
338
  msgid "Will show in REST API \"editable\" contexts only (`POST` requests)."
339
  msgstr ""
340
 
341
+ #: includes/CMB2.php:176
342
  msgid "Metabox configuration is required to have an ID parameter."
343
  msgstr ""
344
 
345
+ #: includes/CMB2.php:578
346
  msgid "Click to toggle"
347
  msgstr ""
348
 
349
+ #: includes/CMB2_Ajax.php:75
350
  msgid "Please Try Again"
351
  msgstr ""
352
 
353
+ #: includes/CMB2_Ajax.php:181 tests/cmb-tests-base.php:50
354
  msgid "Remove Embed"
355
  msgstr ""
356
 
357
+ #: includes/CMB2_Ajax.php:189 includes/helper-functions.php:105
358
+ #: tests/cmb-tests-base.php:68 tests/test-cmb-types-display.php:208
359
  #. translators: 1: results for. 2: link to codex.wordpress.org/Embeds
360
  msgid "No oEmbed Results Found for %1$s. View more info at %2$s."
361
  msgstr ""
362
 
363
+ #: includes/CMB2_Base.php:422
364
  msgid ""
365
+ "The \"%1$s\" field parameter has been deprecated in favor of the \"%1$s\" "
366
  "parameter."
367
  msgstr ""
368
 
369
+ #: includes/CMB2_Base.php:426
370
  msgid ""
371
+ "Using the \"%1$s\" field parameter as a callback has been deprecated in "
372
+ "favor of the \"%1$s\" parameter."
373
  msgstr ""
374
 
375
+ #: includes/CMB2_Base.php:456
376
  msgid ""
377
  "%1$s was called with a parameter that is <strong>deprecated</strong> since "
378
  "version %2$s! %3$s"
379
  msgstr ""
380
 
381
+ #: includes/CMB2_Base.php:458
382
  msgid ""
383
  "%1$s was called with a parameter that is <strong>deprecated</strong> since "
384
  "version %2$s with no alternative available."
385
  msgstr ""
386
 
387
+ #: includes/CMB2_Base.php:491 includes/CMB2_Hookup_Base.php:100
388
+ #: includes/CMB2_Options_Hookup.php:286 includes/types/CMB2_Type_Base.php:149
389
  msgid "Invalid %1$s property: %2$s"
390
  msgstr ""
391
 
392
+ #: includes/CMB2_Base.php:506 includes/types/CMB2_Type_Base.php:133
393
  msgid "Invalid %1$s method: %2$s"
394
  msgstr ""
395
 
396
+ #: includes/CMB2_Field.php:1211
397
  msgid "Add Group"
398
  msgstr ""
399
 
400
+ #: includes/CMB2_Field.php:1212
401
  msgid "Remove Group"
402
  msgstr ""
403
 
404
+ #: includes/CMB2_Field.php:1243 includes/CMB2_Field.php:1247
405
+ #: tests/test-cmb-field.php:237
406
  msgid "None"
407
  msgstr ""
408
 
409
+ #: includes/CMB2_Field.php:1358
410
  msgid "Sorry, this field does not have a cmb_id specified."
411
  msgstr ""
412
 
413
+ #: includes/CMB2_Field_Display.php:432 includes/CMB2_JS.php:204
414
+ #: includes/types/CMB2_Type_File_Base.php:78 tests/test-cmb-types-base.php:149
415
+ #: tests/test-cmb-types.php:884
416
  msgid "File:"
417
  msgstr ""
418
 
419
+ #: includes/CMB2_Hookup_Base.php:42
420
+ msgid "%1$s should be implemented by the extended class."
421
+ msgstr ""
422
+
423
+ #: includes/CMB2_JS.php:143 includes/CMB2_JS.php:184
424
  msgid "Clear"
425
  msgstr ""
426
 
427
+ #: includes/CMB2_JS.php:144
428
  msgid "Default"
429
  msgstr ""
430
 
431
+ #: includes/CMB2_JS.php:145
432
  msgid "Select Color"
433
  msgstr ""
434
 
435
+ #: includes/CMB2_JS.php:146
436
  msgid "Current Color"
437
  msgstr ""
438
 
439
+ #: includes/CMB2_JS.php:175
440
  msgid "Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday"
441
  msgstr ""
442
 
443
+ #: includes/CMB2_JS.php:176
444
  msgid "Su, Mo, Tu, We, Th, Fr, Sa"
445
  msgstr ""
446
 
447
+ #: includes/CMB2_JS.php:177
448
  msgid "Sun, Mon, Tue, Wed, Thu, Fri, Sat"
449
  msgstr ""
450
 
451
+ #: includes/CMB2_JS.php:178
452
  msgid ""
453
  "January, February, March, April, May, June, July, August, September, "
454
  "October, November, December"
455
  msgstr ""
456
 
457
+ #: includes/CMB2_JS.php:179
458
  msgid "Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec"
459
  msgstr ""
460
 
461
+ #: includes/CMB2_JS.php:180
462
  msgid "Next"
463
  msgstr ""
464
 
465
+ #: includes/CMB2_JS.php:181
466
  msgid "Prev"
467
  msgstr ""
468
 
469
+ #: includes/CMB2_JS.php:182
470
  msgid "Today"
471
  msgstr ""
472
 
473
+ #: includes/CMB2_JS.php:183 includes/CMB2_JS.php:193
474
  msgid "Done"
475
  msgstr ""
476
 
477
+ #: includes/CMB2_JS.php:187
478
  msgid "Choose Time"
479
  msgstr ""
480
 
481
+ #: includes/CMB2_JS.php:188
482
  msgid "Time"
483
  msgstr ""
484
 
485
+ #: includes/CMB2_JS.php:189
486
  msgid "Hour"
487
  msgstr ""
488
 
489
+ #: includes/CMB2_JS.php:190
490
  msgid "Minute"
491
  msgstr ""
492
 
493
+ #: includes/CMB2_JS.php:191
494
  msgid "Second"
495
  msgstr ""
496
 
497
+ #: includes/CMB2_JS.php:192
498
  msgid "Now"
499
  msgstr ""
500
 
501
+ #: includes/CMB2_JS.php:200
502
  msgid "Use this file"
503
  msgstr ""
504
 
505
+ #: includes/CMB2_JS.php:201
506
  msgid "Use these files"
507
  msgstr ""
508
 
509
+ #: includes/CMB2_JS.php:202 includes/types/CMB2_Type_File_Base.php:63
510
  msgid "Remove Image"
511
  msgstr ""
512
 
513
+ #: includes/CMB2_JS.php:203 includes/CMB2_Types.php:412
514
+ #: includes/types/CMB2_Type_File_Base.php:83 tests/test-cmb-types-base.php:149
515
  #: tests/test-cmb-types.php:47 tests/test-cmb-types.php:55
516
+ #: tests/test-cmb-types.php:884
517
  msgid "Remove"
518
  msgstr ""
519
 
520
+ #: includes/CMB2_JS.php:205 includes/types/CMB2_Type_File_Base.php:81
521
+ #: tests/test-cmb-types-base.php:149 tests/test-cmb-types.php:884
522
  msgid "Download"
523
  msgstr ""
524
 
525
+ #: includes/CMB2_JS.php:206
526
  msgid "Select / Deselect All"
527
  msgstr ""
528
 
529
+ #: includes/CMB2_Options_Hookup.php:126
530
+ msgid "Nothing to update."
531
+ msgstr ""
532
+
533
+ #: includes/CMB2_Options_Hookup.php:130
534
+ msgid "Settings updated."
535
+ msgstr ""
536
+
537
+ #: includes/CMB2_Types.php:231
538
  msgid "Custom CMB2 field type classes must extend CMB2_Type_Base."
539
  msgstr ""
540
 
541
+ #: includes/CMB2_Types.php:349
542
  msgid "Add Row"
543
  msgstr ""
544
 
545
+ #: includes/CMB2_Types.php:412 tests/test-cmb-types.php:47
546
+ #: tests/test-cmb-types.php:55
547
+ msgid "Remove Row"
548
+ msgstr ""
549
+
550
+ #: includes/CMB2_hookup.php:181
551
  msgid ""
552
  "Term Metadata is a WordPress 4.4+ feature. Please upgrade your WordPress "
553
  "install."
554
  msgstr ""
555
 
556
+ #: includes/CMB2_hookup.php:185
557
  msgid "Term metaboxes configuration requires a \"taxonomies\" parameter."
558
  msgstr ""
559
 
560
+ #: includes/CMB2_hookup.php:458
561
  msgid "Toggle panel: %s"
562
  msgstr ""
563
 
564
+ #: includes/helper-functions.php:303
565
  msgid "Save"
566
  msgstr ""
567
 
568
+ #: includes/rest-api/CMB2_REST_Controller.php:257
569
  msgid "This box does not have read permissions."
570
  msgstr ""
571
 
572
+ #: includes/rest-api/CMB2_REST_Controller.php:277
573
  msgid "This box does not have write permissions."
574
  msgstr ""
575
 
576
+ #: includes/rest-api/CMB2_REST_Controller.php:300
577
  msgid ""
578
  "No box found by that id. A box needs to be registered with the "
579
  "\"show_in_rest\" parameter configured."
580
  msgstr ""
581
 
582
+ #: includes/rest-api/CMB2_REST_Controller.php:378
583
  msgid "A human-readable description of the object."
584
  msgstr ""
585
 
586
+ #: includes/rest-api/CMB2_REST_Controller.php:385
587
  msgid "The id for the object."
588
  msgstr ""
589
 
590
+ #: includes/rest-api/CMB2_REST_Controller.php:392
591
  msgid "The title for the object."
592
  msgstr ""
593
 
594
+ #: includes/rest-api/CMB2_REST_Controller_Boxes.php:51
595
  msgid "Includes the registered fields for the box in the response."
596
  msgstr ""
597
 
625
  msgstr ""
626
 
627
  #: includes/rest-api/CMB2_REST_Controller_Fields.php:236
628
+ #: tests/test-cmb-rest-controllers.php:247
629
  msgid "CMB2 Field value cannot be updated without the value parameter specified."
630
  msgstr ""
631
 
632
+ #: includes/rest-api/CMB2_REST_Controller_Fields.php:297
633
+ #: tests/test-cmb-rest-controllers.php:258
634
+ #: tests/test-cmb-rest-controllers.php:269
635
  msgid ""
636
  "CMB2 Field value cannot be modified without the object_id and object_type "
637
  "parameters specified."
638
  msgstr ""
639
 
640
+ #: includes/rest-api/CMB2_REST_Controller_Fields.php:312
641
+ #: includes/rest-api/CMB2_REST_Controller_Fields.php:341
642
  msgid "No field found by that id."
643
  msgstr ""
644
 
645
+ #: includes/rest-api/CMB2_REST_Controller_Fields.php:415
646
  msgid "Value Error for %s"
647
  msgstr ""
648
 
649
+ #: includes/shim/WP_REST_Controller.php:25
650
+ #. translators: %s: register_routes()
651
+ msgid "Method '%s' must be overridden."
652
  msgstr ""
653
 
654
+ #: includes/shim/WP_REST_Controller.php:35
655
+ #: includes/shim/WP_REST_Controller.php:47
656
+ #: includes/shim/WP_REST_Controller.php:59
657
+ #: includes/shim/WP_REST_Controller.php:71
658
+ #: includes/shim/WP_REST_Controller.php:83
659
+ #: includes/shim/WP_REST_Controller.php:95
660
+ #: includes/shim/WP_REST_Controller.php:107
661
+ #: includes/shim/WP_REST_Controller.php:119
662
+ #: includes/shim/WP_REST_Controller.php:131
663
+ #: includes/shim/WP_REST_Controller.php:143
664
+ #: includes/shim/WP_REST_Controller.php:155
665
+ #: includes/shim/WP_REST_Controller.php:168
666
+ msgid "Method '%s' not implemented. Must be overridden in subclass."
667
  msgstr ""
668
 
669
+ #: includes/shim/WP_REST_Controller.php:273
670
  msgid "Current page of the collection."
671
  msgstr ""
672
 
673
+ #: includes/shim/WP_REST_Controller.php:281
674
  msgid "Maximum number of items to be returned in result set."
675
  msgstr ""
676
 
677
+ #: includes/shim/WP_REST_Controller.php:290
678
  msgid "Limit results to those matching a string."
679
  msgstr ""
680
 
681
+ #: includes/shim/WP_REST_Controller.php:308
682
  msgid ""
683
  "Scope under which the request is made; determines fields present in "
684
  "response."
685
  msgstr ""
686
 
687
+ #: includes/types/CMB2_Type_File.php:76 tests/test-cmb-types.php:860
688
+ #: tests/test-cmb-types.php:884
689
  msgid "Add or Upload File"
690
  msgstr ""
691
 
692
+ #: includes/types/CMB2_Type_File_List.php:41 tests/test-cmb-types.php:809
693
+ #: tests/test-cmb-types.php:840
694
  msgid "Add or Upload Files"
695
  msgstr ""
696
 
697
+ #: includes/types/CMB2_Type_Taxonomy_Base.php:99
 
698
  msgid "No terms"
699
  msgstr ""
700
 
703
  msgstr ""
704
 
705
  #. Plugin URI of the plugin/theme
706
+ msgid "https://github.com/CMB2/CMB2"
707
  msgstr ""
708
 
709
  #. Description of the plugin/theme
713
  msgstr ""
714
 
715
  #. Author of the plugin/theme
716
+ msgid "CMB2 team"
717
  msgstr ""
718
 
719
  #. Author URI of the plugin/theme
720
+ msgid "https://cmb2.io"
721
  msgstr ""
722
 
723
+ #: includes/CMB2_JS.php:174
724
  msgctxt "Valid formatDate string for jquery-ui datepicker"
725
  msgid "mm/dd/yy"
726
  msgstr ""
727
 
728
+ #: includes/CMB2_JS.php:194
729
  msgctxt ""
730
  "Valid formatting string, as per "
731
  "http://trentrichardson.com/examples/timepicker/"
vendor/autoload.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload.php @generated by Composer
4
+
5
+ require_once __DIR__ . '/composer' . '/autoload_real.php';
6
+
7
+ return ComposerAutoloaderInit05ee47f16c928176f7a8f75b4ca39924::getLoader();
vendor/composer/ClassLoader.php ADDED
@@ -0,0 +1,413 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
+ namespace Composer\Autoload;
14
+
15
+ /**
16
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
+ *
18
+ * $loader = new \Composer\Autoload\ClassLoader();
19
+ *
20
+ * // register classes with namespaces
21
+ * $loader->add('Symfony\Component', __DIR__.'/component');
22
+ * $loader->add('Symfony', __DIR__.'/framework');
23
+ *
24
+ * // activate the autoloader
25
+ * $loader->register();
26
+ *
27
+ * // to enable searching the include path (eg. for PEAR packages)
28
+ * $loader->setUseIncludePath(true);
29
+ *
30
+ * In this example, if you try to use a class in the Symfony\Component
31
+ * namespace or one of its children (Symfony\Component\Console for instance),
32
+ * the autoloader will first look for the class under the component/
33
+ * directory, and it will then fallback to the framework/ directory if not
34
+ * found before giving up.
35
+ *
36
+ * This class is loosely based on the Symfony UniversalClassLoader.
37
+ *
38
+ * @author Fabien Potencier <fabien@symfony.com>
39
+ * @author Jordi Boggiano <j.boggiano@seld.be>
40
+ * @see http://www.php-fig.org/psr/psr-0/
41
+ * @see http://www.php-fig.org/psr/psr-4/
42
+ */
43
+ class ClassLoader
44
+ {
45
+ // PSR-4
46
+ private $prefixLengthsPsr4 = array();
47
+ private $prefixDirsPsr4 = array();
48
+ private $fallbackDirsPsr4 = array();
49
+
50
+ // PSR-0
51
+ private $prefixesPsr0 = array();
52
+ private $fallbackDirsPsr0 = array();
53
+
54
+ private $useIncludePath = false;
55
+ private $classMap = array();
56
+
57
+ private $classMapAuthoritative = false;
58
+
59
+ public function getPrefixes()
60
+ {
61
+ if (!empty($this->prefixesPsr0)) {
62
+ return call_user_func_array('array_merge', $this->prefixesPsr0);
63
+ }
64
+
65
+ return array();
66
+ }
67
+
68
+ public function getPrefixesPsr4()
69
+ {
70
+ return $this->prefixDirsPsr4;
71
+ }
72
+
73
+ public function getFallbackDirs()
74
+ {
75
+ return $this->fallbackDirsPsr0;
76
+ }
77
+
78
+ public function getFallbackDirsPsr4()
79
+ {
80
+ return $this->fallbackDirsPsr4;
81
+ }
82
+
83
+ public function getClassMap()
84
+ {
85
+ return $this->classMap;
86
+ }
87
+
88
+ /**
89
+ * @param array $classMap Class to filename map
90
+ */
91
+ public function addClassMap(array $classMap)
92
+ {
93
+ if ($this->classMap) {
94
+ $this->classMap = array_merge($this->classMap, $classMap);
95
+ } else {
96
+ $this->classMap = $classMap;
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Registers a set of PSR-0 directories for a given prefix, either
102
+ * appending or prepending to the ones previously set for this prefix.
103
+ *
104
+ * @param string $prefix The prefix
105
+ * @param array|string $paths The PSR-0 root directories
106
+ * @param bool $prepend Whether to prepend the directories
107
+ */
108
+ public function add($prefix, $paths, $prepend = false)
109
+ {
110
+ if (!$prefix) {
111
+ if ($prepend) {
112
+ $this->fallbackDirsPsr0 = array_merge(
113
+ (array) $paths,
114
+ $this->fallbackDirsPsr0
115
+ );
116
+ } else {
117
+ $this->fallbackDirsPsr0 = array_merge(
118
+ $this->fallbackDirsPsr0,
119
+ (array) $paths
120
+ );
121
+ }
122
+
123
+ return;
124
+ }
125
+
126
+ $first = $prefix[0];
127
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
128
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
129
+
130
+ return;
131
+ }
132
+ if ($prepend) {
133
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
134
+ (array) $paths,
135
+ $this->prefixesPsr0[$first][$prefix]
136
+ );
137
+ } else {
138
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
139
+ $this->prefixesPsr0[$first][$prefix],
140
+ (array) $paths
141
+ );
142
+ }
143
+ }
144
+
145
+ /**
146
+ * Registers a set of PSR-4 directories for a given namespace, either
147
+ * appending or prepending to the ones previously set for this namespace.
148
+ *
149
+ * @param string $prefix The prefix/namespace, with trailing '\\'
150
+ * @param array|string $paths The PSR-4 base directories
151
+ * @param bool $prepend Whether to prepend the directories
152
+ *
153
+ * @throws \InvalidArgumentException
154
+ */
155
+ public function addPsr4($prefix, $paths, $prepend = false)
156
+ {
157
+ if (!$prefix) {
158
+ // Register directories for the root namespace.
159
+ if ($prepend) {
160
+ $this->fallbackDirsPsr4 = array_merge(
161
+ (array) $paths,
162
+ $this->fallbackDirsPsr4
163
+ );
164
+ } else {
165
+ $this->fallbackDirsPsr4 = array_merge(
166
+ $this->fallbackDirsPsr4,
167
+ (array) $paths
168
+ );
169
+ }
170
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
171
+ // Register directories for a new namespace.
172
+ $length = strlen($prefix);
173
+ if ('\\' !== $prefix[$length - 1]) {
174
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
175
+ }
176
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
177
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
178
+ } elseif ($prepend) {
179
+ // Prepend directories for an already registered namespace.
180
+ $this->prefixDirsPsr4[$prefix] = array_merge(
181
+ (array) $paths,
182
+ $this->prefixDirsPsr4[$prefix]
183
+ );
184
+ } else {
185
+ // Append directories for an already registered namespace.
186
+ $this->prefixDirsPsr4[$prefix] = array_merge(
187
+ $this->prefixDirsPsr4[$prefix],
188
+ (array) $paths
189
+ );
190
+ }
191
+ }
192
+
193
+ /**
194
+ * Registers a set of PSR-0 directories for a given prefix,
195
+ * replacing any others previously set for this prefix.
196
+ *
197
+ * @param string $prefix The prefix
198
+ * @param array|string $paths The PSR-0 base directories
199
+ */
200
+ public function set($prefix, $paths)
201
+ {
202
+ if (!$prefix) {
203
+ $this->fallbackDirsPsr0 = (array) $paths;
204
+ } else {
205
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
206
+ }
207
+ }
208
+
209
+ /**
210
+ * Registers a set of PSR-4 directories for a given namespace,
211
+ * replacing any others previously set for this namespace.
212
+ *
213
+ * @param string $prefix The prefix/namespace, with trailing '\\'
214
+ * @param array|string $paths The PSR-4 base directories
215
+ *
216
+ * @throws \InvalidArgumentException
217
+ */
218
+ public function setPsr4($prefix, $paths)
219
+ {
220
+ if (!$prefix) {
221
+ $this->fallbackDirsPsr4 = (array) $paths;
222
+ } else {
223
+ $length = strlen($prefix);
224
+ if ('\\' !== $prefix[$length - 1]) {
225
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
226
+ }
227
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
228
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
229
+ }
230
+ }
231
+
232
+ /**
233
+ * Turns on searching the include path for class files.
234
+ *
235
+ * @param bool $useIncludePath
236
+ */
237
+ public function setUseIncludePath($useIncludePath)
238
+ {
239
+ $this->useIncludePath = $useIncludePath;
240
+ }
241
+
242
+ /**
243
+ * Can be used to check if the autoloader uses the include path to check
244
+ * for classes.
245
+ *
246
+ * @return bool
247
+ */
248
+ public function getUseIncludePath()
249
+ {
250
+ return $this->useIncludePath;
251
+ }
252
+
253
+ /**
254
+ * Turns off searching the prefix and fallback directories for classes
255
+ * that have not been registered with the class map.
256
+ *
257
+ * @param bool $classMapAuthoritative
258
+ */
259
+ public function setClassMapAuthoritative($classMapAuthoritative)
260
+ {
261
+ $this->classMapAuthoritative = $classMapAuthoritative;
262
+ }
263
+
264
+ /**
265
+ * Should class lookup fail if not found in the current class map?
266
+ *
267
+ * @return bool
268
+ */
269
+ public function isClassMapAuthoritative()
270
+ {
271
+ return $this->classMapAuthoritative;
272
+ }
273
+
274
+ /**
275
+ * Registers this instance as an autoloader.
276
+ *
277
+ * @param bool $prepend Whether to prepend the autoloader or not
278
+ */
279
+ public function register($prepend = false)
280
+ {
281
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
282
+ }
283
+
284
+ /**
285
+ * Unregisters this instance as an autoloader.
286
+ */
287
+ public function unregister()
288
+ {
289
+ spl_autoload_unregister(array($this, 'loadClass'));
290
+ }
291
+
292
+ /**
293
+ * Loads the given class or interface.
294
+ *
295
+ * @param string $class The name of the class
296
+ * @return bool|null True if loaded, null otherwise
297
+ */
298
+ public function loadClass($class)
299
+ {
300
+ if ($file = $this->findFile($class)) {
301
+ includeFile($file);
302
+
303
+ return true;
304
+ }
305
+ }
306
+
307
+ /**
308
+ * Finds the path to the file where the class is defined.
309
+ *
310
+ * @param string $class The name of the class
311
+ *
312
+ * @return string|false The path if found, false otherwise
313
+ */
314
+ public function findFile($class)
315
+ {
316
+ // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
317
+ if ('\\' == $class[0]) {
318
+ $class = substr($class, 1);
319
+ }
320
+
321
+ // class map lookup
322
+ if (isset($this->classMap[$class])) {
323
+ return $this->classMap[$class];
324
+ }
325
+ if ($this->classMapAuthoritative) {
326
+ return false;
327
+ }
328
+
329
+ $file = $this->findFileWithExtension($class, '.php');
330
+
331
+ // Search for Hack files if we are running on HHVM
332
+ if ($file === null && defined('HHVM_VERSION')) {
333
+ $file = $this->findFileWithExtension($class, '.hh');
334
+ }
335
+
336
+ if ($file === null) {
337
+ // Remember that this class does not exist.
338
+ return $this->classMap[$class] = false;
339
+ }
340
+
341
+ return $file;
342
+ }
343
+
344
+ private function findFileWithExtension($class, $ext)
345
+ {
346
+ // PSR-4 lookup
347
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
348
+
349
+ $first = $class[0];
350
+ if (isset($this->prefixLengthsPsr4[$first])) {
351
+ foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
352
+ if (0 === strpos($class, $prefix)) {
353
+ foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
354
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
355
+ return $file;
356
+ }
357
+ }
358
+ }
359
+ }
360
+ }
361
+
362
+ // PSR-4 fallback dirs
363
+ foreach ($this->fallbackDirsPsr4 as $dir) {
364
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
365
+ return $file;
366
+ }
367
+ }
368
+
369
+ // PSR-0 lookup
370
+ if (false !== $pos = strrpos($class, '\\')) {
371
+ // namespaced class name
372
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
373
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
374
+ } else {
375
+ // PEAR-like class name
376
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
377
+ }
378
+
379
+ if (isset($this->prefixesPsr0[$first])) {
380
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
381
+ if (0 === strpos($class, $prefix)) {
382
+ foreach ($dirs as $dir) {
383
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
384
+ return $file;
385
+ }
386
+ }
387
+ }
388
+ }
389
+ }
390
+
391
+ // PSR-0 fallback dirs
392
+ foreach ($this->fallbackDirsPsr0 as $dir) {
393
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
394
+ return $file;
395
+ }
396
+ }
397
+
398
+ // PSR-0 include paths.
399
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
400
+ return $file;
401
+ }
402
+ }
403
+ }
404
+
405
+ /**
406
+ * Scope isolated include.
407
+ *
408
+ * Prevents access to $this/self from included files.
409
+ */
410
+ function includeFile($file)
411
+ {
412
+ include $file;
413
+ }
vendor/composer/LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ Copyright (c) 2016 Nils Adermann, Jordi Boggiano
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is furnished
9
+ to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ THE SOFTWARE.
21
+
vendor/composer/autoload_classmap.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_classmap.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
vendor/composer/autoload_namespaces.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_namespaces.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
vendor/composer/autoload_psr4.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_psr4.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
10
+ 'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
11
+ );
vendor/composer/autoload_real.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // autoload_real.php @generated by Composer
4
+
5
+ class ComposerAutoloaderInit05ee47f16c928176f7a8f75b4ca39924
6
+ {
7
+ private static $loader;
8
+
9
+ public static function loadClassLoader($class)
10
+ {
11
+ if ('Composer\Autoload\ClassLoader' === $class) {
12
+ require __DIR__ . '/ClassLoader.php';
13
+ }
14
+ }
15
+
16
+ public static function getLoader()
17
+ {
18
+ if (null !== self::$loader) {
19
+ return self::$loader;
20
+ }
21
+
22
+ spl_autoload_register(array('ComposerAutoloaderInit05ee47f16c928176f7a8f75b4ca39924', 'loadClassLoader'), true, true);
23
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit05ee47f16c928176f7a8f75b4ca39924', 'loadClassLoader'));
25
+
26
+ $map = require __DIR__ . '/autoload_namespaces.php';
27
+ foreach ($map as $namespace => $path) {
28
+ $loader->set($namespace, $path);
29
+ }
30
+
31
+ $map = require __DIR__ . '/autoload_psr4.php';
32
+ foreach ($map as $namespace => $path) {
33
+ $loader->setPsr4($namespace, $path);
34
+ }
35
+
36
+ $classMap = require __DIR__ . '/autoload_classmap.php';
37
+ if ($classMap) {
38
+ $loader->addClassMap($classMap);
39
+ }
40
+
41
+ $loader->register(true);
42
+
43
+ return $loader;
44
+ }
45
+ }
vendor/composer/installed.json ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "name": "psr/log",
4
+ "version": "1.0.2",
5
+ "version_normalized": "1.0.2.0",
6
+ "source": {
7
+ "type": "git",
8
+ "url": "https://github.com/php-fig/log.git",
9
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
10
+ },
11
+ "dist": {
12
+ "type": "zip",
13
+ "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
14
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
15
+ "shasum": ""
16
+ },
17
+ "require": {
18
+ "php": ">=5.3.0"
19
+ },
20
+ "time": "2016-10-10 12:19:37",
21
+ "type": "library",
22
+ "extra": {
23
+ "branch-alias": {
24
+ "dev-master": "1.0.x-dev"
25
+ }
26
+ },
27
+ "installation-source": "dist",
28
+ "autoload": {
29
+ "psr-4": {
30
+ "Psr\\Log\\": "Psr/Log/"
31
+ }
32
+ },
33
+ "notification-url": "https://packagist.org/downloads/",
34
+ "license": [
35
+ "MIT"
36
+ ],
37
+ "authors": [
38
+ {
39
+ "name": "PHP-FIG",
40
+ "homepage": "http://www.php-fig.org/"
41
+ }
42
+ ],
43
+ "description": "Common interface for logging libraries",
44
+ "homepage": "https://github.com/php-fig/log",
45
+ "keywords": [
46
+ "log",
47
+ "psr",
48
+ "psr-3"
49
+ ]
50
+ },
51
+ {
52
+ "name": "monolog/monolog",
53
+ "version": "1.21.0",
54
+ "version_normalized": "1.21.0.0",
55
+ "source": {
56
+ "type": "git",
57
+ "url": "https://github.com/Seldaek/monolog.git",
58
+ "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952"
59
+ },
60
+ "dist": {
61
+ "type": "zip",
62
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f42fbdfd53e306bda545845e4dbfd3e72edb4952",
63
+ "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952",
64
+ "shasum": ""
65
+ },
66
+ "require": {
67
+ "php": ">=5.3.0",
68
+ "psr/log": "~1.0"
69
+ },
70
+ "provide": {
71
+ "psr/log-implementation": "1.0.0"
72
+ },
73
+ "require-dev": {
74
+ "aws/aws-sdk-php": "^2.4.9",
75
+ "doctrine/couchdb": "~1.0@dev",
76
+ "graylog2/gelf-php": "~1.0",
77
+ "jakub-onderka/php-parallel-lint": "0.9",
78
+ "php-amqplib/php-amqplib": "~2.4",
79
+ "php-console/php-console": "^3.1.3",
80
+ "phpunit/phpunit": "~4.5",
81
+ "phpunit/phpunit-mock-objects": "2.3.0",
82
+ "ruflin/elastica": ">=0.90 <3.0",
83
+ "sentry/sentry": "^0.13",
84
+ "swiftmailer/swiftmailer": "~5.3"
85
+ },
86
+ "suggest": {
87
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
88
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
89
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
90
+ "ext-mongo": "Allow sending log messages to a MongoDB server",
91
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
92
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
93
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
94
+ "php-console/php-console": "Allow sending log messages to Google Chrome",
95
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
96
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
97
+ "sentry/sentry": "Allow sending log messages to a Sentry server"
98
+ },
99
+ "time": "2016-07-29 03:23:52",
100
+ "type": "library",
101
+ "extra": {
102
+ "branch-alias": {
103
+ "dev-master": "2.0.x-dev"
104
+ }
105
+ },
106
+ "installation-source": "dist",
107
+ "autoload": {
108
+ "psr-4": {
109
+ "Monolog\\": "src/Monolog"
110
+ }
111
+ },
112
+ "notification-url": "https://packagist.org/downloads/",
113
+ "license": [
114
+ "MIT"
115
+ ],
116
+ "authors": [
117
+ {
118
+ "name": "Jordi Boggiano",
119
+ "email": "j.boggiano@seld.be",
120
+ "homepage": "http://seld.be"
121
+ }
122
+ ],
123
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
124
+ "homepage": "http://github.com/Seldaek/monolog",
125
+ "keywords": [
126
+ "log",
127
+ "logging",
128
+ "psr-3"
129
+ ]
130
+ }
131
+ ]
vendor/constantcontact/guzzlehttp/guzzle/Makefile DELETED
@@ -1,50 +0,0 @@
1
- all: clean coverage docs
2
-
3
- start-server:
4
- cd vendor/guzzlehttp/ringphp && make start-server
5
-
6
- stop-server:
7
- cd vendor/guzzlehttp/ringphp && make stop-server
8
-
9
- test: start-server
10
- vendor/bin/phpunit
11
- $(MAKE) stop-server
12
-
13
- coverage: start-server
14
- vendor/bin/phpunit --coverage-html=artifacts/coverage
15
- $(MAKE) stop-server
16
-
17
- view-coverage:
18
- open artifacts/coverage/index.html
19
-
20
- clean:
21
- rm -rf artifacts/*
22
-
23
- docs:
24
- cd docs && make html && cd ..
25
-
26
- view-docs:
27
- open docs/_build/html/index.html
28
-
29
- tag:
30
- $(if $(TAG),,$(error TAG is not defined. Pass via "make tag TAG=4.2.1"))
31
- @echo Tagging $(TAG)
32
- chag update $(TAG)
33
- sed -i '' -e "s/VERSION = '.*'/VERSION = '$(TAG)'/" src/ClientInterface.php
34
- php -l src/ClientInterface.php
35
- git add -A
36
- git commit -m '$(TAG) release'
37
- chag tag
38
-
39
- perf: start-server
40
- php tests/perf.php
41
- $(MAKE) stop-server
42
-
43
- package: burgomaster
44
- php build/packager.php
45
-
46
- burgomaster:
47
- mkdir -p build/artifacts
48
- curl -s https://raw.githubusercontent.com/mtdowling/Burgomaster/0.0.2/src/Burgomaster.php > build/artifacts/Burgomaster.php
49
-
50
- .PHONY: docs burgomaster
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/constantcontact/guzzlehttp/guzzle/phpunit.xml.dist DELETED
@@ -1,17 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <phpunit bootstrap="./tests/bootstrap.php"
3
- colors="true">
4
- <testsuites>
5
- <testsuite>
6
- <directory>tests</directory>
7
- </testsuite>
8
- </testsuites>
9
- <filter>
10
- <whitelist>
11
- <directory suffix=".php">src</directory>
12
- <exclude>
13
- <directory suffix="Interface.php">src/</directory>
14
- </exclude>
15
- </whitelist>
16
- </filter>
17
- </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/constantcontact/guzzlehttp/guzzle/src/BatchResults.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Client.php CHANGED
@@ -182,6 +182,13 @@ class Client implements ClientInterface
182
  return new FutureResponse(new RejectedPromise($e));
183
  }
184
  throw RequestException::wrapException($trans->request, $e);
 
 
 
 
 
 
 
185
  }
186
  }
187
 
182
  return new FutureResponse(new RejectedPromise($e));
183
  }
184
  throw RequestException::wrapException($trans->request, $e);
185
+ } catch (\TypeError $error) {
186
+ $exception = new \Exception($error->getMessage(), $error->getCode(), $error);
187
+ if ($isFuture) {
188
+ // Wrap the exception in a promise
189
+ return new FutureResponse(new RejectedPromise($exception));
190
+ }
191
+ throw RequestException::wrapException($trans->request, $exception);
192
  }
193
  }
194
 
vendor/constantcontact/guzzlehttp/guzzle/src/ClientInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Collection.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/CookieJar.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Cookie/SetCookie.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/AbstractEvent.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/AbstractRequestEvent.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/AbstractRetryableEvent.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/AbstractTransferEvent.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/BeforeEvent.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/CompleteEvent.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/Emitter.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/EmitterInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/EndEvent.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/ErrorEvent.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/EventInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/HasEmitterInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/HasEmitterTrait.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/ListenerAttacherTrait.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/ProgressEvent.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/RequestEvents.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Event/SubscriberInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/BadResponseException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/ClientException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/ConnectException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/CouldNotRewindStreamException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/ParseException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/RequestException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/ServerException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/StateException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/TransferException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Exception/XmlParseException.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/HasDataTrait.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/AbstractMessage.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/AppliesHeadersInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/FutureResponse.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/MessageFactory.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/MessageFactoryInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/MessageInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/MessageParser.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/Request.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/RequestInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/Response.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Message/ResponseInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Mimetypes.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Pool.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Post/MultipartBody.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Post/PostBody.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Post/PostBodyInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Post/PostFile.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Post/PostFileInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Query.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/QueryParser.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/RequestFsm.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/RingBridge.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/Cookie.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/History.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/HttpError.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/Mock.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/Prepare.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Subscriber/Redirect.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/ToArrayInterface.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Transaction.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/UriTemplate.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Url.php CHANGED
File without changes
vendor/constantcontact/guzzlehttp/guzzle/src/Utils.php CHANGED
@@ -131,6 +131,10 @@ final class Utils
131
  */
132
  public static function jsonDecode($json, $assoc = false, $depth = 512, $options = 0)
133
  {
 
 
 
 
134
  static $jsonErrors = [
135
  JSON_ERROR_DEPTH => 'JSON_ERROR_DEPTH - Maximum stack depth exceeded',
136
  JSON_ERROR_STATE_MISMATCH => 'JSON_ERROR_STATE_MISMATCH - Underflow or the modes mismatch',
131
  */
132
  public static function jsonDecode($json, $assoc = false, $depth = 512, $options = 0)
133
  {
134
+ if ($json === '' || $json === null) {
135
+ return null;
136
+ }
137
+
138
  static $jsonErrors = [
139
  JSON_ERROR_DEPTH => 'JSON_ERROR_DEPTH - Maximum stack depth exceeded',
140
  JSON_ERROR_STATE_MISMATCH => 'JSON_ERROR_STATE_MISMATCH - Underflow or the modes mismatch',
vendor/monolog/monolog/.php_cs ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $header = <<<EOF
4
+ This file is part of the Monolog package.
5
+
6
+ (c) Jordi Boggiano <j.boggiano@seld.be>
7
+
8
+ For the full copyright and license information, please view the LICENSE
9
+ file that was distributed with this source code.
10
+ EOF;
11
+
12
+ $finder = Symfony\CS\Finder::create()
13
+ ->files()
14
+ ->name('*.php')
15
+ ->exclude('Fixtures')
16
+ ->in(__DIR__.'/src')
17
+ ->in(__DIR__.'/tests')
18
+ ;
19
+
20
+ return Symfony\CS\Config::create()
21
+ ->setUsingCache(true)
22
+ //->setUsingLinter(false)
23
+ ->setRiskyAllowed(true)
24
+ ->setRules(array(
25
+ '@PSR2' => true,
26
+ 'binary_operator_spaces' => true,
27
+ 'blank_line_before_return' => true,
28
+ 'header_comment' => array('header' => $header),
29
+ 'include' => true,
30
+ 'long_array_syntax' => true,
31
+ 'method_separation' => true,
32
+ 'no_blank_lines_after_class_opening' => true,
33
+ 'no_blank_lines_after_phpdoc' => true,
34
+ 'no_blank_lines_between_uses' => true,
35
+ 'no_duplicate_semicolons' => true,
36
+ 'no_extra_consecutive_blank_lines' => true,
37
+ 'no_leading_import_slash' => true,
38
+ 'no_leading_namespace_whitespace' => true,
39
+ 'no_trailing_comma_in_singleline_array' => true,
40
+ 'no_unused_imports' => true,
41
+ 'object_operator_without_whitespace' => true,
42
+ 'phpdoc_align' => true,
43
+ 'phpdoc_indent' => true,
44
+ 'phpdoc_no_access' => true,
45
+ 'phpdoc_no_package' => true,
46
+ 'phpdoc_order' => true,
47
+ 'phpdoc_scalar' => true,
48
+ 'phpdoc_trim' => true,
49
+ 'phpdoc_type_to_var' => true,
50
+ 'psr0' => true,
51
+ 'single_blank_line_before_namespace' => true,
52
+ 'spaces_cast' => true,
53
+ 'standardize_not_equals' => true,
54
+ 'ternary_operator_spaces' => true,
55
+ 'trailing_comma_in_multiline_array' => true,
56
+ 'whitespacy_lines' => true,
57
+ ))
58
+ ->finder($finder)
59
+ ;
vendor/monolog/monolog/CHANGELOG.mdown ADDED
@@ -0,0 +1,317 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### 1.21.0 (2016-07-29)
2
+
3
+ * Break: Reverted the addition of $context when the ErrorHandler handles regular php errors from 1.20.0 as it was causing issues
4
+ * Added support for more formats in RotatingFileHandler::setFilenameFormat as long as they have Y, m and d in order
5
+ * Added ability to format the main line of text the SlackHandler sends by explictly setting a formatter on the handler
6
+ * Added information about SoapFault instances in NormalizerFormatter
7
+ * Added $handleOnlyReportedErrors option on ErrorHandler::registerErrorHandler (default true) to allow logging of all errors no matter the error_reporting level
8
+
9
+ ### 1.20.0 (2016-07-02)
10
+
11
+ * Added FingersCrossedHandler::activate() to manually trigger the handler regardless of the activation policy
12
+ * Added StreamHandler::getUrl to retrieve the stream's URL
13
+ * Added ability to override addRow/addTitle in HtmlFormatter
14
+ * Added the $context to context information when the ErrorHandler handles a regular php error
15
+ * Deprecated RotatingFileHandler::setFilenameFormat to only support 3 formats: Y, Y-m and Y-m-d
16
+ * Fixed WhatFailureGroupHandler to work with PHP7 throwables
17
+ * Fixed a few minor bugs
18
+
19
+ ### 1.19.0 (2016-04-12)
20
+
21
+ * Break: StreamHandler will not close streams automatically that it does not own. If you pass in a stream (not a path/url), then it will not close it for you. You can retrieve those using getStream() if needed
22
+ * Added DeduplicationHandler to remove duplicate records from notifications across multiple requests, useful for email or other notifications on errors
23
+ * Added ability to use `%message%` and other LineFormatter replacements in the subject line of emails sent with NativeMailHandler and SwiftMailerHandler
24
+ * Fixed HipChatHandler handling of long messages
25
+
26
+ ### 1.18.2 (2016-04-02)
27
+
28
+ * Fixed ElasticaFormatter to use more precise dates
29
+ * Fixed GelfMessageFormatter sending too long messages
30
+
31
+ ### 1.18.1 (2016-03-13)
32
+
33
+ * Fixed SlackHandler bug where slack dropped messages randomly
34
+ * Fixed RedisHandler issue when using with the PHPRedis extension
35
+ * Fixed AmqpHandler content-type being incorrectly set when using with the AMQP extension
36
+ * Fixed BrowserConsoleHandler regression
37
+
38
+ ### 1.18.0 (2016-03-01)
39
+
40
+ * Added optional reduction of timestamp precision via `Logger->useMicrosecondTimestamps(false)`, disabling it gets you a bit of performance boost but reduces the precision to the second instead of microsecond
41
+ * Added possibility to skip some extra stack frames in IntrospectionProcessor if you have some library wrapping Monolog that is always adding frames
42
+ * Added `Logger->withName` to clone a logger (keeping all handlers) with a new name
43
+ * Added FluentdFormatter for the Fluentd unix socket protocol
44
+ * Added HandlerWrapper base class to ease the creation of handler wrappers, just extend it and override as needed
45
+ * Added support for replacing context sub-keys using `%context.*%` in LineFormatter
46
+ * Added support for `payload` context value in RollbarHandler
47
+ * Added setRelease to RavenHandler to describe the application version, sent with every log
48
+ * Added support for `fingerprint` context value in RavenHandler
49
+ * Fixed JSON encoding errors that would gobble up the whole log record, we now handle those more gracefully by dropping chars as needed
50
+ * Fixed write timeouts in SocketHandler and derivatives, set to 10sec by default, lower it with `setWritingTimeout()`
51
+ * Fixed PHP7 compatibility with regard to Exception/Throwable handling in a few places
52
+
53
+ ### 1.17.2 (2015-10-14)
54
+
55
+ * Fixed ErrorHandler compatibility with non-Monolog PSR-3 loggers
56
+ * Fixed SlackHandler handling to use slack functionalities better
57
+ * Fixed SwiftMailerHandler bug when sending multiple emails they all had the same id
58
+ * Fixed 5.3 compatibility regression
59
+
60
+ ### 1.17.1 (2015-08-31)
61
+
62
+ * Fixed RollbarHandler triggering PHP notices
63
+
64
+ ### 1.17.0 (2015-08-30)
65
+
66
+ * Added support for `checksum` and `release` context/extra values in RavenHandler
67
+ * Added better support for exceptions in RollbarHandler
68
+ * Added UidProcessor::getUid
69
+ * Added support for showing the resource type in NormalizedFormatter
70
+ * Fixed IntrospectionProcessor triggering PHP notices
71
+
72
+ ### 1.16.0 (2015-08-09)
73
+
74
+ * Added IFTTTHandler to notify ifttt.com triggers
75
+ * Added Logger::setHandlers() to allow setting/replacing all handlers
76
+ * Added $capSize in RedisHandler to cap the log size
77
+ * Fixed StreamHandler creation of directory to only trigger when the first log write happens
78
+ * Fixed bug in the handling of curl failures
79
+ * Fixed duplicate logging of fatal errors when both error and fatal error handlers are registered in monolog's ErrorHandler
80
+ * Fixed missing fatal errors records with handlers that need to be closed to flush log records
81
+ * Fixed TagProcessor::addTags support for associative arrays
82
+
83
+ ### 1.15.0 (2015-07-12)
84
+
85
+ * Added addTags and setTags methods to change a TagProcessor
86
+ * Added automatic creation of directories if they are missing for a StreamHandler to open a log file
87
+ * Added retry functionality to Loggly, Cube and Mandrill handlers so they retry up to 5 times in case of network failure
88
+ * Fixed process exit code being incorrectly reset to 0 if ErrorHandler::registerExceptionHandler was used
89
+ * Fixed HTML/JS escaping in BrowserConsoleHandler
90
+ * Fixed JSON encoding errors being silently suppressed (PHP 5.5+ only)
91
+
92
+ ### 1.14.0 (2015-06-19)
93
+
94
+ * Added PHPConsoleHandler to send record to Chrome's PHP Console extension and library
95
+ * Added support for objects implementing __toString in the NormalizerFormatter
96
+ * Added support for HipChat's v2 API in HipChatHandler
97
+ * Added Logger::setTimezone() to initialize the timezone monolog should use in case date.timezone isn't correct for your app
98
+ * Added an option to send formatted message instead of the raw record on PushoverHandler via ->useFormattedMessage(true)
99
+ * Fixed curl errors being silently suppressed
100
+
101
+ ### 1.13.1 (2015-03-09)
102
+
103
+ * Fixed regression in HipChat requiring a new token to be created
104
+
105
+ ### 1.13.0 (2015-03-05)
106
+
107
+ * Added Registry::hasLogger to check for the presence of a logger instance
108
+ * Added context.user support to RavenHandler
109
+ * Added HipChat API v2 support in the HipChatHandler
110
+ * Added NativeMailerHandler::addParameter to pass params to the mail() process
111
+ * Added context data to SlackHandler when $includeContextAndExtra is true
112
+ * Added ability to customize the Swift_Message per-email in SwiftMailerHandler
113
+ * Fixed SwiftMailerHandler to lazily create message instances if a callback is provided
114
+ * Fixed serialization of INF and NaN values in Normalizer and LineFormatter
115
+
116
+ ### 1.12.0 (2014-12-29)
117
+
118
+ * Break: HandlerInterface::isHandling now receives a partial record containing only a level key. This was always the intent and does not break any Monolog handler but is strictly speaking a BC break and you should check if you relied on any other field in your own handlers.
119
+ * Added PsrHandler to forward records to another PSR-3 logger
120
+ * Added SamplingHandler to wrap around a handler and include only every Nth record
121
+ * Added MongoDBFormatter to support better storage with MongoDBHandler (it must be enabled manually for now)
122
+ * Added exception codes in the output of most formatters
123
+ * Added LineFormatter::includeStacktraces to enable exception stack traces in logs (uses more than one line)
124
+ * Added $useShortAttachment to SlackHandler to minify attachment size and $includeExtra to append extra data
125
+ * Added $host to HipChatHandler for users of private instances
126
+ * Added $transactionName to NewRelicHandler and support for a transaction_name context value
127
+ * Fixed MandrillHandler to avoid outputing API call responses
128
+ * Fixed some non-standard behaviors in SyslogUdpHandler
129
+
130
+ ### 1.11.0 (2014-09-30)
131
+
132
+ * Break: The NewRelicHandler extra and context data are now prefixed with extra_ and context_ to avoid clashes. Watch out if you have scripts reading those from the API and rely on names
133
+ * Added WhatFailureGroupHandler to suppress any exception coming from the wrapped handlers and avoid chain failures if a logging service fails
134
+ * Added MandrillHandler to send emails via the Mandrillapp.com API
135
+ * Added SlackHandler to log records to a Slack.com account
136
+ * Added FleepHookHandler to log records to a Fleep.io account
137
+ * Added LogglyHandler::addTag to allow adding tags to an existing handler
138
+ * Added $ignoreEmptyContextAndExtra to LineFormatter to avoid empty [] at the end
139
+ * Added $useLocking to StreamHandler and RotatingFileHandler to enable flock() while writing
140
+ * Added support for PhpAmqpLib in the AmqpHandler
141
+ * Added FingersCrossedHandler::clear and BufferHandler::clear to reset them between batches in long running jobs
142
+ * Added support for adding extra fields from $_SERVER in the WebProcessor
143
+ * Fixed support for non-string values in PrsLogMessageProcessor
144
+ * Fixed SwiftMailer messages being sent with the wrong date in long running scripts
145
+ * Fixed minor PHP 5.6 compatibility issues
146
+ * Fixed BufferHandler::close being called twice
147
+
148
+ ### 1.10.0 (2014-06-04)
149
+
150
+ * Added Logger::getHandlers() and Logger::getProcessors() methods
151
+ * Added $passthruLevel argument to FingersCrossedHandler to let it always pass some records through even if the trigger level is not reached
152
+ * Added support for extra data in NewRelicHandler
153
+ * Added $expandNewlines flag to the ErrorLogHandler to create multiple log entries when a message has multiple lines
154
+
155
+ ### 1.9.1 (2014-04-24)
156
+
157
+ * Fixed regression in RotatingFileHandler file permissions
158
+ * Fixed initialization of the BufferHandler to make sure it gets flushed after receiving records
159
+ * Fixed ChromePHPHandler and FirePHPHandler's activation strategies to be more conservative
160
+
161
+ ### 1.9.0 (2014-04-20)
162
+
163
+ * Added LogEntriesHandler to send logs to a LogEntries account
164
+ * Added $filePermissions to tweak file mode on StreamHandler and RotatingFileHandler
165
+ * Added $useFormatting flag to MemoryProcessor to make it send raw data in bytes
166
+ * Added support for table formatting in FirePHPHandler via the table context key
167
+ * Added a TagProcessor to add tags to records, and support for tags in RavenHandler
168
+ * Added $appendNewline flag to the JsonFormatter to enable using it when logging to files
169
+ * Added sound support to the PushoverHandler
170
+ * Fixed multi-threading support in StreamHandler
171
+ * Fixed empty headers issue when ChromePHPHandler received no records
172
+ * Fixed default format of the ErrorLogHandler
173
+
174
+ ### 1.8.0 (2014-03-23)
175
+
176
+ * Break: the LineFormatter now strips newlines by default because this was a bug, set $allowInlineLineBreaks to true if you need them
177
+ * Added BrowserConsoleHandler to send logs to any browser's console via console.log() injection in the output
178
+ * Added FilterHandler to filter records and only allow those of a given list of levels through to the wrapped handler
179
+ * Added FlowdockHandler to send logs to a Flowdock account
180
+ * Added RollbarHandler to send logs to a Rollbar account
181
+ * Added HtmlFormatter to send prettier log emails with colors for each log level
182
+ * Added GitProcessor to add the current branch/commit to extra record data
183
+ * Added a Monolog\Registry class to allow easier global access to pre-configured loggers
184
+ * Added support for the new official graylog2/gelf-php lib for GelfHandler, upgrade if you can by replacing the mlehner/gelf-php requirement
185
+ * Added support for HHVM
186
+ * Added support for Loggly batch uploads
187
+ * Added support for tweaking the content type and encoding in NativeMailerHandler
188
+ * Added $skipClassesPartials to tweak the ignored classes in the IntrospectionProcessor
189
+ * Fixed batch request support in GelfHandler
190
+
191
+ ### 1.7.0 (2013-11-14)
192
+
193
+ * Added ElasticSearchHandler to send logs to an Elastic Search server
194
+ * Added DynamoDbHandler and ScalarFormatter to send logs to Amazon's Dynamo DB
195
+ * Added SyslogUdpHandler to send logs to a remote syslogd server
196
+ * Added LogglyHandler to send logs to a Loggly account
197
+ * Added $level to IntrospectionProcessor so it only adds backtraces when needed
198
+ * Added $version to LogstashFormatter to allow using the new v1 Logstash format
199
+ * Added $appName to NewRelicHandler
200
+ * Added configuration of Pushover notification retries/expiry
201
+ * Added $maxColumnWidth to NativeMailerHandler to change the 70 chars default
202
+ * Added chainability to most setters for all handlers
203
+ * Fixed RavenHandler batch processing so it takes the message from the record with highest priority
204
+ * Fixed HipChatHandler batch processing so it sends all messages at once
205
+ * Fixed issues with eAccelerator
206
+ * Fixed and improved many small things
207
+
208
+ ### 1.6.0 (2013-07-29)
209
+
210
+ * Added HipChatHandler to send logs to a HipChat chat room
211
+ * Added ErrorLogHandler to send logs to PHP's error_log function
212
+ * Added NewRelicHandler to send logs to NewRelic's service
213
+ * Added Monolog\ErrorHandler helper class to register a Logger as exception/error/fatal handler
214
+ * Added ChannelLevelActivationStrategy for the FingersCrossedHandler to customize levels by channel
215
+ * Added stack traces output when normalizing exceptions (json output & co)
216
+ * Added Monolog\Logger::API constant (currently 1)
217
+ * Added support for ChromePHP's v4.0 extension
218
+ * Added support for message priorities in PushoverHandler, see $highPriorityLevel and $emergencyLevel
219
+ * Added support for sending messages to multiple users at once with the PushoverHandler
220
+ * Fixed RavenHandler's support for batch sending of messages (when behind a Buffer or FingersCrossedHandler)
221
+ * Fixed normalization of Traversables with very large data sets, only the first 1000 items are shown now
222
+ * Fixed issue in RotatingFileHandler when an open_basedir restriction is active
223
+ * Fixed minor issues in RavenHandler and bumped the API to Raven 0.5.0
224
+ * Fixed SyslogHandler issue when many were used concurrently with different facilities
225
+
226
+ ### 1.5.0 (2013-04-23)
227
+
228
+ * Added ProcessIdProcessor to inject the PID in log records
229
+ * Added UidProcessor to inject a unique identifier to all log records of one request/run
230
+ * Added support for previous exceptions in the LineFormatter exception serialization
231
+ * Added Monolog\Logger::getLevels() to get all available levels
232
+ * Fixed ChromePHPHandler so it avoids sending headers larger than Chrome can handle
233
+
234
+ ### 1.4.1 (2013-04-01)
235
+
236
+ * Fixed exception formatting in the LineFormatter to be more minimalistic
237
+ * Fixed RavenHandler's handling of context/extra data, requires Raven client >0.1.0
238
+ * Fixed log rotation in RotatingFileHandler to work with long running scripts spanning multiple days
239
+ * Fixed WebProcessor array access so it checks for data presence
240
+ * Fixed Buffer, Group and FingersCrossed handlers to make use of their processors
241
+
242
+ ### 1.4.0 (2013-02-13)
243
+
244
+ * Added RedisHandler to log to Redis via the Predis library or the phpredis extension
245
+ * Added ZendMonitorHandler to log to the Zend Server monitor
246
+ * Added the possibility to pass arrays of handlers and processors directly in the Logger constructor
247
+ * Added `$useSSL` option to the PushoverHandler which is enabled by default
248
+ * Fixed ChromePHPHandler and FirePHPHandler issue when multiple instances are used simultaneously
249
+ * Fixed header injection capability in the NativeMailHandler
250
+
251
+ ### 1.3.1 (2013-01-11)
252
+
253
+ * Fixed LogstashFormatter to be usable with stream handlers
254
+ * Fixed GelfMessageFormatter levels on Windows
255
+
256
+ ### 1.3.0 (2013-01-08)
257
+
258
+ * Added PSR-3 compliance, the `Monolog\Logger` class is now an instance of `Psr\Log\LoggerInterface`
259
+ * Added PsrLogMessageProcessor that you can selectively enable for full PSR-3 compliance
260
+ * Added LogstashFormatter (combine with SocketHandler or StreamHandler to send logs to Logstash)
261
+ * Added PushoverHandler to send mobile notifications
262
+ * Added CouchDBHandler and DoctrineCouchDBHandler
263
+ * Added RavenHandler to send data to Sentry servers
264
+ * Added support for the new MongoClient class in MongoDBHandler
265
+ * Added microsecond precision to log records' timestamps
266
+ * Added `$flushOnOverflow` param to BufferHandler to flush by batches instead of losing
267
+ the oldest entries
268
+ * Fixed normalization of objects with cyclic references
269
+
270
+ ### 1.2.1 (2012-08-29)
271
+
272
+ * Added new $logopts arg to SyslogHandler to provide custom openlog options
273
+ * Fixed fatal error in SyslogHandler
274
+
275
+ ### 1.2.0 (2012-08-18)
276
+
277
+ * Added AmqpHandler (for use with AMQP servers)
278
+ * Added CubeHandler
279
+ * Added NativeMailerHandler::addHeader() to send custom headers in mails
280
+ * Added the possibility to specify more than one recipient in NativeMailerHandler
281
+ * Added the possibility to specify float timeouts in SocketHandler
282
+ * Added NOTICE and EMERGENCY levels to conform with RFC 5424
283
+ * Fixed the log records to use the php default timezone instead of UTC
284
+ * Fixed BufferHandler not being flushed properly on PHP fatal errors
285
+ * Fixed normalization of exotic resource types
286
+ * Fixed the default format of the SyslogHandler to avoid duplicating datetimes in syslog
287
+
288
+ ### 1.1.0 (2012-04-23)
289
+
290
+ * Added Monolog\Logger::isHandling() to check if a handler will
291
+ handle the given log level
292
+ * Added ChromePHPHandler
293
+ * Added MongoDBHandler
294
+ * Added GelfHandler (for use with Graylog2 servers)
295
+ * Added SocketHandler (for use with syslog-ng for example)
296
+ * Added NormalizerFormatter
297
+ * Added the possibility to change the activation strategy of the FingersCrossedHandler
298
+ * Added possibility to show microseconds in logs
299
+ * Added `server` and `referer` to WebProcessor output
300
+
301
+ ### 1.0.2 (2011-10-24)
302
+
303
+ * Fixed bug in IE with large response headers and FirePHPHandler
304
+
305
+ ### 1.0.1 (2011-08-25)
306
+
307
+ * Added MemoryPeakUsageProcessor and MemoryUsageProcessor
308
+ * Added Monolog\Logger::getName() to get a logger's channel name
309
+
310
+ ### 1.0.0 (2011-07-06)
311
+
312
+ * Added IntrospectionProcessor to get info from where the logger was called
313
+ * Fixed WebProcessor in CLI
314
+
315
+ ### 1.0.0-RC1 (2011-07-01)
316
+
317
+ * Initial release
vendor/monolog/monolog/LICENSE ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright (c) 2011-2016 Jordi Boggiano
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is furnished
8
+ to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
vendor/monolog/monolog/README.mdown ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Monolog - Logging for PHP [![Build Status](https://img.shields.io/travis/Seldaek/monolog.svg)](https://travis-ci.org/Seldaek/monolog)
2
+
3
+ [![Total Downloads](https://img.shields.io/packagist/dt/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog)
4
+ [![Latest Stable Version](https://img.shields.io/packagist/v/monolog/monolog.svg)](https://packagist.org/packages/monolog/monolog)
5
+ [![Reference Status](https://www.versioneye.com/php/monolog:monolog/reference_badge.svg)](https://www.versioneye.com/php/monolog:monolog/references)
6
+
7
+
8
+ Monolog sends your logs to files, sockets, inboxes, databases and various
9
+ web services. See the complete list of handlers below. Special handlers
10
+ allow you to build advanced logging strategies.
11
+
12
+ This library implements the [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
13
+ interface that you can type-hint against in your own libraries to keep
14
+ a maximum of interoperability. You can also use it in your applications to
15
+ make sure you can always use another compatible logger at a later time.
16
+ As of 1.11.0 Monolog public APIs will also accept PSR-3 log levels.
17
+ Internally Monolog still uses its own level scheme since it predates PSR-3.
18
+
19
+ ## Installation
20
+
21
+ Install the latest version with
22
+
23
+ ```bash
24
+ $ composer require monolog/monolog
25
+ ```
26
+
27
+ ## Basic Usage
28
+
29
+ ```php
30
+ <?php
31
+
32
+ use Monolog\Logger;
33
+ use Monolog\Handler\StreamHandler;
34
+
35
+ // create a log channel
36
+ $log = new Logger('name');
37
+ $log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
38
+
39
+ // add records to the log
40
+ $log->addWarning('Foo');
41
+ $log->addError('Bar');
42
+ ```
43
+
44
+ ## Documentation
45
+
46
+ - [Usage Instructions](doc/01-usage.md)
47
+ - [Handlers, Formatters and Processors](doc/02-handlers-formatters-processors.md)
48
+ - [Utility classes](doc/03-utilities.md)
49
+ - [Extending Monolog](doc/04-extending.md)
50
+
51
+ ## Third Party Packages
52
+
53
+ Third party handlers, formatters and processors are
54
+ [listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You
55
+ can also add your own there if you publish one.
56
+
57
+ ## About
58
+
59
+ ### Requirements
60
+
61
+ - Monolog works with PHP 5.3 or above, and is also tested to work with HHVM.
62
+
63
+ ### Submitting bugs and feature requests
64
+
65
+ Bugs and feature request are tracked on [GitHub](https://github.com/Seldaek/monolog/issues)
66
+
67
+ ### Framework Integrations
68
+
69
+ - Frameworks and libraries using [PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
70
+ can be used very easily with Monolog since it implements the interface.
71
+ - [Symfony2](http://symfony.com) comes out of the box with Monolog.
72
+ - [Silex](http://silex.sensiolabs.org/) comes out of the box with Monolog.
73
+ - [Laravel 4 & 5](http://laravel.com/) come out of the box with Monolog.
74
+ - [Lumen](http://lumen.laravel.com/) comes out of the box with Monolog.
75
+ - [PPI](http://www.ppi.io/) comes out of the box with Monolog.
76
+ - [CakePHP](http://cakephp.org/) is usable with Monolog via the [cakephp-monolog](https://github.com/jadb/cakephp-monolog) plugin.
77
+ - [Slim](http://www.slimframework.com/) is usable with Monolog via the [Slim-Monolog](https://github.com/Flynsarmy/Slim-Monolog) log writer.
78
+ - [XOOPS 2.6](http://xoops.org/) comes out of the box with Monolog.
79
+ - [Aura.Web_Project](https://github.com/auraphp/Aura.Web_Project) comes out of the box with Monolog.
80
+ - [Nette Framework](http://nette.org/en/) can be used with Monolog via [Kdyby/Monolog](https://github.com/Kdyby/Monolog) extension.
81
+ - [Proton Micro Framework](https://github.com/alexbilbie/Proton) comes out of the box with Monolog.
82
+
83
+ ### Author
84
+
85
+ Jordi Boggiano - <j.boggiano@seld.be> - <http://twitter.com/seldaek><br />
86
+ See also the list of [contributors](https://github.com/Seldaek/monolog/contributors) which participated in this project.
87
+
88
+ ### License
89
+
90
+ Monolog is licensed under the MIT License - see the `LICENSE` file for details
91
+
92
+ ### Acknowledgements
93
+
94
+ This library is heavily inspired by Python's [Logbook](http://packages.python.org/Logbook/)
95
+ library, although most concepts have been adjusted to fit to the PHP world.
vendor/monolog/monolog/composer.json ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "monolog/monolog",
3
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
4
+ "keywords": ["log", "logging", "psr-3"],
5
+ "homepage": "http://github.com/Seldaek/monolog",
6
+ "type": "library",
7
+ "license": "MIT",
8
+ "authors": [
9
+ {
10
+ "name": "Jordi Boggiano",
11
+ "email": "j.boggiano@seld.be",
12
+ "homepage": "http://seld.be"
13
+ }
14
+ ],
15
+ "require": {
16
+ "php": ">=5.3.0",
17
+ "psr/log": "~1.0"
18
+ },
19
+ "require-dev": {
20
+ "phpunit/phpunit": "~4.5",
21
+ "graylog2/gelf-php": "~1.0",
22
+ "sentry/sentry": "^0.13",
23
+ "ruflin/elastica": ">=0.90 <3.0",
24
+ "doctrine/couchdb": "~1.0@dev",
25
+ "aws/aws-sdk-php": "^2.4.9",
26
+ "php-amqplib/php-amqplib": "~2.4",
27
+ "swiftmailer/swiftmailer": "~5.3",
28
+ "php-console/php-console": "^3.1.3",
29
+ "phpunit/phpunit-mock-objects": "2.3.0",
30
+ "jakub-onderka/php-parallel-lint": "0.9"
31
+ },
32
+ "_": "phpunit/phpunit-mock-objects required in 2.3.0 due to https://github.com/sebastianbergmann/phpunit-mock-objects/issues/223 - needs hhvm 3.8+ on travis",
33
+ "suggest": {
34
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
35
+ "sentry/sentry": "Allow sending log messages to a Sentry server",
36
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
37
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
38
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
39
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
40
+ "ext-mongo": "Allow sending log messages to a MongoDB server",
41
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
42
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
43
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
44
+ "php-console/php-console": "Allow sending log messages to Google Chrome"
45
+ },
46
+ "autoload": {
47
+ "psr-4": {"Monolog\\": "src/Monolog"}
48
+ },
49
+ "autoload-dev": {
50
+ "psr-4": {"Monolog\\": "tests/Monolog"}
51
+ },
52
+ "provide": {
53
+ "psr/log-implementation": "1.0.0"
54
+ },
55
+ "extra": {
56
+ "branch-alias": {
57
+ "dev-master": "2.0.x-dev"
58
+ }
59
+ },
60
+ "scripts": {
61
+ "test": [
62
+ "parallel-lint . --exclude vendor",
63
+ "phpunit"
64
+ ]
65
+ }
66
+ }
vendor/monolog/monolog/composer.lock ADDED
@@ -0,0 +1,1850 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "content-hash": "96187ca17806d85dadb167d71dea95fe",
8
+ "packages": [
9
+ {
10
+ "name": "psr/log",
11
+ "version": "1.0.2",
12
+ "source": {
13
+ "type": "git",
14
+ "url": "https://github.com/php-fig/log.git",
15
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
16
+ },
17
+ "dist": {
18
+ "type": "zip",
19
+ "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
20
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
21
+ "shasum": ""
22
+ },
23
+ "require": {
24
+ "php": ">=5.3.0"
25
+ },
26
+ "type": "library",
27
+ "extra": {
28
+ "branch-alias": {
29
+ "dev-master": "1.0.x-dev"
30
+ }
31
+ },
32
+ "autoload": {
33
+ "psr-4": {
34
+ "Psr\\Log\\": "Psr/Log/"
35
+ }
36
+ },
37
+ "notification-url": "https://packagist.org/downloads/",
38
+ "license": [
39
+ "MIT"
40
+ ],
41
+ "authors": [
42
+ {
43
+ "name": "PHP-FIG",
44
+ "homepage": "http://www.php-fig.org/"
45
+ }
46
+ ],
47
+ "description": "Common interface for logging libraries",
48
+ "homepage": "https://github.com/php-fig/log",
49
+ "keywords": [
50
+ "log",
51
+ "psr",
52
+ "psr-3"
53
+ ],
54
+ "time": "2016-10-10T12:19:37+00:00"
55
+ }
56
+ ],
57
+ "packages-dev": [
58
+ {
59
+ "name": "aws/aws-sdk-php",
60
+ "version": "2.8.31",
61
+ "source": {
62
+ "type": "git",
63
+ "url": "https://github.com/aws/aws-sdk-php.git",
64
+ "reference": "64fa4b07f056e338a5f0f29eece75babaa83af68"
65
+ },
66
+ "dist": {
67
+ "type": "zip",
68
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/64fa4b07f056e338a5f0f29eece75babaa83af68",
69
+ "reference": "64fa4b07f056e338a5f0f29eece75babaa83af68",
70
+ "shasum": ""
71
+ },
72
+ "require": {
73
+ "guzzle/guzzle": "~3.7",
74
+ "php": ">=5.3.3"
75
+ },
76
+ "require-dev": {
77
+ "doctrine/cache": "~1.0",
78
+ "ext-openssl": "*",
79
+ "monolog/monolog": "~1.4",
80
+ "phpunit/phpunit": "~4.0",
81
+ "phpunit/phpunit-mock-objects": "2.3.1",
82
+ "symfony/yaml": "~2.1"
83
+ },
84
+ "suggest": {
85
+ "doctrine/cache": "Adds support for caching of credentials and responses",
86
+ "ext-apc": "Allows service description opcode caching, request and response caching, and credentials caching",
87
+ "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
88
+ "monolog/monolog": "Adds support for logging HTTP requests and responses",
89
+ "symfony/yaml": "Eases the ability to write manifests for creating jobs in AWS Import/Export"
90
+ },
91
+ "type": "library",
92
+ "autoload": {
93
+ "psr-0": {
94
+ "Aws": "src/"
95
+ }
96
+ },
97
+ "notification-url": "https://packagist.org/downloads/",
98
+ "license": [
99
+ "Apache-2.0"
100
+ ],
101
+ "authors": [
102
+ {
103
+ "name": "Amazon Web Services",
104
+ "homepage": "http://aws.amazon.com"
105
+ }
106
+ ],
107
+ "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
108
+ "homepage": "http://aws.amazon.com/sdkforphp",
109
+ "keywords": [
110
+ "amazon",
111
+ "aws",
112
+ "cloud",
113
+ "dynamodb",
114
+ "ec2",
115
+ "glacier",
116
+ "s3",
117
+ "sdk"
118
+ ],
119
+ "time": "2016-07-25T18:03:20+00:00"
120
+ },
121
+ {
122
+ "name": "doctrine/couchdb",
123
+ "version": "dev-master",
124
+ "source": {
125
+ "type": "git",
126
+ "url": "https://github.com/doctrine/couchdb-client.git",
127
+ "reference": "7cd29b766ae82da0a38a140c04d838ea34f2758d"
128
+ },
129
+ "dist": {
130
+ "type": "zip",
131
+ "url": "https://api.github.com/repos/doctrine/couchdb-client/zipball/7cd29b766ae82da0a38a140c04d838ea34f2758d",
132
+ "reference": "7cd29b766ae82da0a38a140c04d838ea34f2758d",
133
+ "shasum": ""
134
+ },
135
+ "require": {
136
+ "php": ">=5.4"
137
+ },
138
+ "require-dev": {
139
+ "phpunit/phpunit": "~4.0"
140
+ },
141
+ "type": "library",
142
+ "extra": {
143
+ "branch-alias": {
144
+ "dev-master": "1.0-dev"
145
+ }
146
+ },
147
+ "autoload": {
148
+ "psr-0": {
149
+ "Doctrine\\CouchDB": "lib/"
150
+ }
151
+ },
152
+ "notification-url": "https://packagist.org/downloads/",
153
+ "license": [
154
+ "MIT"
155
+ ],
156
+ "authors": [
157
+ {
158
+ "name": "Benjamin Eberlei",
159
+ "email": "kontakt@beberlei.de"
160
+ },
161
+ {
162
+ "name": "Lukas Kahwe Smith",
163
+ "email": "smith@pooteeweet.org"
164
+ }
165
+ ],
166
+ "description": "CouchDB Client",
167
+ "homepage": "http://www.doctrine-project.org",
168
+ "keywords": [
169
+ "couchdb",
170
+ "persistence"
171
+ ],
172
+ "time": "2017-12-22T05:38:56+00:00"
173
+ },
174
+ {
175
+ "name": "doctrine/instantiator",
176
+ "version": "1.0.5",
177
+ "source": {
178
+ "type": "git",
179
+ "url": "https://github.com/doctrine/instantiator.git",
180
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
181
+ },
182
+ "dist": {
183
+ "type": "zip",
184
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
185
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
186
+ "shasum": ""
187
+ },
188
+ "require": {
189
+ "php": ">=5.3,<8.0-DEV"
190
+ },
191
+ "require-dev": {
192
+ "athletic/athletic": "~0.1.8",
193
+ "ext-pdo": "*",
194
+ "ext-phar": "*",
195
+ "phpunit/phpunit": "~4.0",
196
+ "squizlabs/php_codesniffer": "~2.0"
197
+ },
198
+ "type": "library",
199
+ "extra": {
200
+ "branch-alias": {
201
+ "dev-master": "1.0.x-dev"
202
+ }
203
+ },
204
+ "autoload": {
205
+ "psr-4": {
206
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
207
+ }
208
+ },
209
+ "notification-url": "https://packagist.org/downloads/",
210
+ "license": [
211
+ "MIT"
212
+ ],
213
+ "authors": [
214
+ {
215
+ "name": "Marco Pivetta",
216
+ "email": "ocramius@gmail.com",
217
+ "homepage": "http://ocramius.github.com/"
218
+ }
219
+ ],
220
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
221
+ "homepage": "https://github.com/doctrine/instantiator",
222
+ "keywords": [
223
+ "constructor",
224
+ "instantiate"
225
+ ],
226
+ "time": "2015-06-14T21:17:01+00:00"
227
+ },
228
+ {
229
+ "name": "graylog2/gelf-php",
230
+ "version": "1.5.5",
231
+ "source": {
232
+ "type": "git",
233
+ "url": "https://github.com/bzikarsky/gelf-php.git",
234
+ "reference": "c4e0743ba323459b6e62222107a0898e77d2fd6e"
235
+ },
236
+ "dist": {
237
+ "type": "zip",
238
+ "url": "https://api.github.com/repos/bzikarsky/gelf-php/zipball/c4e0743ba323459b6e62222107a0898e77d2fd6e",
239
+ "reference": "c4e0743ba323459b6e62222107a0898e77d2fd6e",
240
+ "shasum": ""
241
+ },
242
+ "require": {
243
+ "php": ">=5.3.9",
244
+ "psr/log": "~1.0"
245
+ },
246
+ "provide": {
247
+ "psr/log-implementation": "~1.0"
248
+ },
249
+ "require-dev": {
250
+ "phpunit/phpunit": "~4.3",
251
+ "squizlabs/php_codesniffer": "~2.0"
252
+ },
253
+ "type": "library",
254
+ "extra": {
255
+ "branch-alias": {
256
+ "dev-master": "1.4.x-dev"
257
+ }
258
+ },
259
+ "autoload": {
260
+ "psr-4": {
261
+ "Gelf\\": "src/Gelf"
262
+ },
263
+ "files": [
264
+ "src/check_technical_requirements.php"
265
+ ]
266
+ },
267
+ "notification-url": "https://packagist.org/downloads/",
268
+ "license": [
269
+ "MIT"
270
+ ],
271
+ "authors": [
272
+ {
273
+ "name": "Benjamin Zikarsky",
274
+ "email": "benjamin@zikarsky.de"
275
+ },
276
+ {
277
+ "name": "gelf-php contributors",
278
+ "homepage": "https://github.com/bzikarsky/gelf-php/contributors"
279
+ }
280
+ ],
281
+ "description": "A php implementation to send log-messages to a GELF compatible backend like Graylog2.",
282
+ "time": "2017-06-24T10:38:25+00:00"
283
+ },
284
+ {
285
+ "name": "guzzle/guzzle",
286
+ "version": "v3.9.3",
287
+ "source": {
288
+ "type": "git",
289
+ "url": "https://github.com/guzzle/guzzle3.git",
290
+ "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9"
291
+ },
292
+ "dist": {
293
+ "type": "zip",
294
+ "url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9",
295
+ "reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9",
296
+ "shasum": ""
297
+ },
298
+ "require": {
299
+ "ext-curl": "*",
300
+ "php": ">=5.3.3",
301
+ "symfony/event-dispatcher": "~2.1"
302
+ },
303
+ "replace": {
304
+ "guzzle/batch": "self.version",
305
+ "guzzle/cache": "self.version",
306
+ "guzzle/common": "self.version",
307
+ "guzzle/http": "self.version",
308
+ "guzzle/inflection": "self.version",
309
+ "guzzle/iterator": "self.version",
310
+ "guzzle/log": "self.version",
311
+ "guzzle/parser": "self.version",
312
+ "guzzle/plugin": "self.version",
313
+ "guzzle/plugin-async": "self.version",
314
+ "guzzle/plugin-backoff": "self.version",
315
+ "guzzle/plugin-cache": "self.version",
316
+ "guzzle/plugin-cookie": "self.version",
317
+ "guzzle/plugin-curlauth": "self.version",
318
+ "guzzle/plugin-error-response": "self.version",
319
+ "guzzle/plugin-history": "self.version",
320
+ "guzzle/plugin-log": "self.version",
321
+ "guzzle/plugin-md5": "self.version",
322
+ "guzzle/plugin-mock": "self.version",
323
+ "guzzle/plugin-oauth": "self.version",
324
+ "guzzle/service": "self.version",
325
+ "guzzle/stream": "self.version"
326
+ },
327
+ "require-dev": {
328
+ "doctrine/cache": "~1.3",
329
+ "monolog/monolog": "~1.0",
330
+ "phpunit/phpunit": "3.7.*",
331
+ "psr/log": "~1.0",
332
+ "symfony/class-loader": "~2.1",
333
+ "zendframework/zend-cache": "2.*,<2.3",
334
+ "zendframework/zend-log": "2.*,<2.3"
335
+ },
336
+ "suggest": {
337
+ "guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated."
338
+ },
339
+ "type": "library",
340
+ "extra": {
341
+ "branch-alias": {
342
+ "dev-master": "3.9-dev"
343
+ }
344
+ },
345
+ "autoload": {
346
+ "psr-0": {
347
+ "Guzzle": "src/",
348
+ "Guzzle\\Tests": "tests/"
349
+ }
350
+ },
351
+ "notification-url": "https://packagist.org/downloads/",
352
+ "license": [
353
+ "MIT"
354
+ ],
355
+ "authors": [
356
+ {
357
+ "name": "Michael Dowling",
358
+ "email": "mtdowling@gmail.com",
359
+ "homepage": "https://github.com/mtdowling"
360
+ },
361
+ {
362
+ "name": "Guzzle Community",
363
+ "homepage": "https://github.com/guzzle/guzzle/contributors"
364
+ }
365
+ ],
366
+ "description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle",
367
+ "homepage": "http://guzzlephp.org/",
368
+ "keywords": [
369
+ "client",
370
+ "curl",
371
+ "framework",
372
+ "http",
373
+ "http client",
374
+ "rest",
375
+ "web service"
376
+ ],
377
+ "abandoned": "guzzlehttp/guzzle",
378
+ "time": "2015-03-18T18:23:50+00:00"
379
+ },
380
+ {
381
+ "name": "jakub-onderka/php-parallel-lint",
382
+ "version": "v0.9",
383
+ "source": {
384
+ "type": "git",
385
+ "url": "https://github.com/JakubOnderka/PHP-Parallel-Lint.git",
386
+ "reference": "1b693fb455201cacf595163c92bfb1adfa2158d8"
387
+ },
388
+ "dist": {
389
+ "type": "zip",
390
+ "url": "https://api.github.com/repos/JakubOnderka/PHP-Parallel-Lint/zipball/1b693fb455201cacf595163c92bfb1adfa2158d8",
391
+ "reference": "1b693fb455201cacf595163c92bfb1adfa2158d8",
392
+ "shasum": ""
393
+ },
394
+ "require": {
395
+ "php": ">=5.3.3"
396
+ },
397
+ "require-dev": {
398
+ "jakub-onderka/php-console-highlighter": "~0.3",
399
+ "nette/tester": "~1.3"
400
+ },
401
+ "suggest": {
402
+ "jakub-onderka/php-console-highlighter": "Highlight syntax in code snippet"
403
+ },
404
+ "bin": [
405
+ "parallel-lint"
406
+ ],
407
+ "type": "library",
408
+ "autoload": {
409
+ "classmap": [
410
+ "./"
411
+ ]
412
+ },
413
+ "notification-url": "https://packagist.org/downloads/",
414
+ "license": [
415
+ "BSD"
416
+ ],
417
+ "authors": [
418
+ {
419
+ "name": "Jakub Onderka",
420
+ "email": "jakub.onderka@gmail.com"
421
+ }
422
+ ],
423
+ "description": "This tool check syntax of PHP files about 20x faster than serial check.",
424
+ "homepage": "https://github.com/JakubOnderka/PHP-Parallel-Lint",
425
+ "time": "2015-06-16T10:17:07+00:00"
426
+ },
427
+ {
428
+ "name": "php-amqplib/php-amqplib",
429
+ "version": "v2.7.2",
430
+ "source": {
431
+ "type": "git",
432
+ "url": "https://github.com/php-amqplib/php-amqplib.git",
433
+ "reference": "dfd3694a86f1a7394d3693485259d4074a6ec79b"
434
+ },
435
+ "dist": {
436
+ "type": "zip",
437
+ "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/dfd3694a86f1a7394d3693485259d4074a6ec79b",
438
+ "reference": "dfd3694a86f1a7394d3693485259d4074a6ec79b",
439
+ "shasum": ""
440
+ },
441
+ "require": {
442
+ "ext-bcmath": "*",
443
+ "ext-mbstring": "*",
444
+ "php": ">=5.3.0"
445
+ },
446
+ "replace": {
447
+ "videlalvaro/php-amqplib": "self.version"
448
+ },
449
+ "require-dev": {
450
+ "phpdocumentor/phpdocumentor": "^2.9",
451
+ "phpunit/phpunit": "^4.8",
452
+ "scrutinizer/ocular": "^1.1",
453
+ "squizlabs/php_codesniffer": "^2.5"
454
+ },
455
+ "suggest": {
456
+ "ext-sockets": "Use AMQPSocketConnection"
457
+ },
458
+ "type": "library",
459
+ "extra": {
460
+ "branch-alias": {
461
+ "dev-master": "2.7-dev"
462
+ }
463
+ },
464
+ "autoload": {
465
+ "psr-4": {
466
+ "PhpAmqpLib\\": "PhpAmqpLib/"
467
+ }
468
+ },
469
+ "notification-url": "https://packagist.org/downloads/",
470
+ "license": [
471
+ "LGPL-2.1-or-later"
472
+ ],
473
+ "authors": [
474
+ {
475
+ "name": "Alvaro Videla",
476
+ "role": "Original Maintainer"
477
+ },
478
+ {
479
+ "name": "John Kelly",
480
+ "email": "johnmkelly86@gmail.com",
481
+ "role": "Maintainer"
482
+ },
483
+ {
484
+ "name": "Raúl Araya",
485
+ "email": "nubeiro@gmail.com",
486
+ "role": "Maintainer"
487
+ }
488
+ ],
489
+ "description": "Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.",
490
+ "homepage": "https://github.com/php-amqplib/php-amqplib/",
491
+ "keywords": [
492
+ "message",
493
+ "queue",
494
+ "rabbitmq"
495
+ ],
496
+ "time": "2018-02-11T19:28:00+00:00"
497
+ },
498
+ {
499
+ "name": "php-console/php-console",
500
+ "version": "3.1.7",
501
+ "source": {
502
+ "type": "git",
503
+ "url": "https://github.com/barbushin/php-console.git",
504
+ "reference": "c171ec62669d5c616cfa62de7a30df3c6237e831"
505
+ },
506
+ "dist": {
507
+ "type": "zip",
508
+ "url": "https://api.github.com/repos/barbushin/php-console/zipball/c171ec62669d5c616cfa62de7a30df3c6237e831",
509
+ "reference": "c171ec62669d5c616cfa62de7a30df3c6237e831",
510
+ "shasum": ""
511
+ },
512
+ "require": {
513
+ "php": ">=5.3.0"
514
+ },
515
+ "require-dev": {
516
+ "ext-mbstring": "*",
517
+ "phpunit/phpunit": "^4.8",
518
+ "psr/log": "^1.0"
519
+ },
520
+ "type": "library",
521
+ "autoload": {
522
+ "psr-4": {
523
+ "PhpConsole\\": "src/PhpConsole"
524
+ }
525
+ },
526
+ "notification-url": "https://packagist.org/downloads/",
527
+ "license": [
528
+ "MIT"
529
+ ],
530
+ "authors": [
531
+ {
532
+ "name": "Sergey Barbushin",
533
+ "email": "barbushin@gmail.com",
534
+ "homepage": "http://linkedin.com/in/barbushin"
535
+ }
536
+ ],
537
+ "description": "PHP library for Google Chrome extension \"PHP Console\".",
538
+ "homepage": "https://github.com/barbushin/php-console",
539
+ "keywords": [
540
+ "chrome",
541
+ "debug",
542
+ "error handler",
543
+ "errors",
544
+ "google chrome",
545
+ "php"
546
+ ],
547
+ "time": "2018-02-25T12:43:21+00:00"
548
+ },
549
+ {
550
+ "name": "phpdocumentor/reflection-common",
551
+ "version": "1.0.1",
552
+ "source": {
553
+ "type": "git",
554
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
555
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
556
+ },
557
+ "dist": {
558
+ "type": "zip",
559
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
560
+ "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
561
+ "shasum": ""
562
+ },
563
+ "require": {
564
+ "php": ">=5.5"
565
+ },
566
+ "require-dev": {
567
+ "phpunit/phpunit": "^4.6"
568
+ },
569
+ "type": "library",
570
+ "extra": {
571
+ "branch-alias": {
572
+ "dev-master": "1.0.x-dev"
573
+ }
574
+ },
575
+ "autoload": {
576
+ "psr-4": {
577
+ "phpDocumentor\\Reflection\\": [
578
+ "src"
579
+ ]
580
+ }
581
+ },
582
+ "notification-url": "https://packagist.org/downloads/",
583
+ "license": [
584
+ "MIT"
585
+ ],
586
+ "authors": [
587
+ {
588
+ "name": "Jaap van Otterdijk",
589
+ "email": "opensource@ijaap.nl"
590
+ }
591
+ ],
592
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
593
+ "homepage": "http://www.phpdoc.org",
594
+ "keywords": [
595
+ "FQSEN",
596
+ "phpDocumentor",
597
+ "phpdoc",
598
+ "reflection",
599
+ "static analysis"
600
+ ],
601
+ "time": "2017-09-11T18:02:19+00:00"
602
+ },
603
+ {
604
+ "name": "phpdocumentor/reflection-docblock",
605
+ "version": "3.2.2",
606
+ "source": {
607
+ "type": "git",
608
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
609
+ "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157"
610
+ },
611
+ "dist": {
612
+ "type": "zip",
613
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/4aada1f93c72c35e22fb1383b47fee43b8f1d157",
614
+ "reference": "4aada1f93c72c35e22fb1383b47fee43b8f1d157",
615
+ "shasum": ""
616
+ },
617
+ "require": {
618
+ "php": ">=5.5",
619
+ "phpdocumentor/reflection-common": "^1.0@dev",
620
+ "phpdocumentor/type-resolver": "^0.3.0",
621
+ "webmozart/assert": "^1.0"
622
+ },
623
+ "require-dev": {
624
+ "mockery/mockery": "^0.9.4",
625
+ "phpunit/phpunit": "^4.4"
626
+ },
627
+ "type": "library",
628
+ "autoload": {
629
+ "psr-4": {
630
+ "phpDocumentor\\Reflection\\": [
631
+ "src/"
632
+ ]
633
+ }
634
+ },
635
+ "notification-url": "https://packagist.org/downloads/",
636
+ "license": [
637
+ "MIT"
638
+ ],
639
+ "authors": [
640
+ {
641
+ "name": "Mike van Riel",
642
+ "email": "me@mikevanriel.com"
643
+ }
644
+ ],
645
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
646
+ "time": "2017-08-08T06:39:58+00:00"
647
+ },
648
+ {
649
+ "name": "phpdocumentor/type-resolver",
650
+ "version": "0.3.0",
651
+ "source": {
652
+ "type": "git",
653
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
654
+ "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773"
655
+ },
656
+ "dist": {
657
+ "type": "zip",
658
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fb3933512008d8162b3cdf9e18dba9309b7c3773",
659
+ "reference": "fb3933512008d8162b3cdf9e18dba9309b7c3773",
660
+ "shasum": ""
661
+ },
662
+ "require": {
663
+ "php": "^5.5 || ^7.0",
664
+ "phpdocumentor/reflection-common": "^1.0"
665
+ },
666
+ "require-dev": {
667
+ "mockery/mockery": "^0.9.4",
668
+ "phpunit/phpunit": "^5.2||^4.8.24"
669
+ },
670
+ "type": "library",
671
+ "extra": {
672
+ "branch-alias": {
673
+ "dev-master": "1.0.x-dev"
674
+ }
675
+ },
676
+ "autoload": {
677
+ "psr-4": {
678
+ "phpDocumentor\\Reflection\\": [
679
+ "src/"
680
+ ]
681
+ }
682
+ },
683
+ "notification-url": "https://packagist.org/downloads/",
684
+ "license": [
685
+ "MIT"
686
+ ],
687
+ "authors": [
688
+ {
689
+ "name": "Mike van Riel",
690
+ "email": "me@mikevanriel.com"
691
+ }
692
+ ],
693
+ "time": "2017-06-03T08:32:36+00:00"
694
+ },
695
+ {
696
+ "name": "phpspec/prophecy",
697
+ "version": "1.7.5",
698
+ "source": {
699
+ "type": "git",
700
+ "url": "https://github.com/phpspec/prophecy.git",
701
+ "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401"
702
+ },
703
+ "dist": {
704
+ "type": "zip",
705
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401",
706
+ "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401",
707
+ "shasum": ""
708
+ },
709
+ "require": {
710
+ "doctrine/instantiator": "^1.0.2",
711
+ "php": "^5.3|^7.0",
712
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
713
+ "sebastian/comparator": "^1.1|^2.0",
714
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0"
715
+ },
716
+ "require-dev": {
717
+ "phpspec/phpspec": "^2.5|^3.2",
718
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
719
+ },
720
+ "type": "library",
721
+ "extra": {
722
+ "branch-alias": {
723
+ "dev-master": "1.7.x-dev"
724
+ }
725
+ },
726
+ "autoload": {
727
+ "psr-0": {
728
+ "Prophecy\\": "src/"
729
+ }
730
+ },
731
+ "notification-url": "https://packagist.org/downloads/",
732
+ "license": [
733
+ "MIT"
734
+ ],
735
+ "authors": [
736
+ {
737
+ "name": "Konstantin Kudryashov",
738
+ "email": "ever.zet@gmail.com",
739
+ "homepage": "http://everzet.com"
740
+ },
741
+ {
742
+ "name": "Marcello Duarte",
743
+ "email": "marcello.duarte@gmail.com"
744
+ }
745
+ ],
746
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
747
+ "homepage": "https://github.com/phpspec/prophecy",
748
+ "keywords": [
749
+ "Double",
750
+ "Dummy",
751
+ "fake",
752
+ "mock",
753
+ "spy",
754
+ "stub"
755
+ ],
756
+ "time": "2018-02-19T10:16:54+00:00"
757
+ },
758
+ {
759
+ "name": "phpunit/php-code-coverage",
760
+ "version": "2.2.4",
761
+ "source": {
762
+ "type": "git",
763
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
764
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
765
+ },
766
+ "dist": {
767
+ "type": "zip",
768
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
769
+ "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
770
+ "shasum": ""
771
+ },
772
+ "require": {
773
+ "php": ">=5.3.3",
774
+ "phpunit/php-file-iterator": "~1.3",
775
+ "phpunit/php-text-template": "~1.2",
776
+ "phpunit/php-token-stream": "~1.3",
777
+ "sebastian/environment": "^1.3.2",
778
+ "sebastian/version": "~1.0"
779
+ },
780
+ "require-dev": {
781
+ "ext-xdebug": ">=2.1.4",
782
+ "phpunit/phpunit": "~4"
783
+ },
784
+ "suggest": {
785
+ "ext-dom": "*",
786
+ "ext-xdebug": ">=2.2.1",
787
+ "ext-xmlwriter": "*"
788
+ },
789
+ "type": "library",
790
+ "extra": {
791
+ "branch-alias": {
792
+ "dev-master": "2.2.x-dev"
793
+ }
794
+ },
795
+ "autoload": {
796
+ "classmap": [
797
+ "src/"
798
+ ]
799
+ },
800
+ "notification-url": "https://packagist.org/downloads/",
801
+ "license": [
802
+ "BSD-3-Clause"
803
+ ],
804
+ "authors": [
805
+ {
806
+ "name": "Sebastian Bergmann",
807
+ "email": "sb@sebastian-bergmann.de",
808
+ "role": "lead"
809
+ }
810
+ ],
811
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
812
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
813
+ "keywords": [
814
+ "coverage",
815
+ "testing",
816
+ "xunit"
817
+ ],
818
+ "time": "2015-10-06T15:47:00+00:00"
819
+ },
820
+ {
821
+ "name": "phpunit/php-file-iterator",
822
+ "version": "1.4.5",
823
+ "source": {
824
+ "type": "git",
825
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
826
+ "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
827
+ },
828
+ "dist": {
829
+ "type": "zip",
830
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
831
+ "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
832
+ "shasum": ""
833
+ },
834
+ "require": {
835
+ "php": ">=5.3.3"
836
+ },
837
+ "type": "library",
838
+ "extra": {
839
+ "branch-alias": {
840
+ "dev-master": "1.4.x-dev"
841
+ }
842
+ },
843
+ "autoload": {
844
+ "classmap": [
845
+ "src/"
846
+ ]
847
+ },
848
+ "notification-url": "https://packagist.org/downloads/",
849
+ "license": [
850
+ "BSD-3-Clause"
851
+ ],
852
+ "authors": [
853
+ {
854
+ "name": "Sebastian Bergmann",
855
+ "email": "sb@sebastian-bergmann.de",
856
+ "role": "lead"
857
+ }
858
+ ],
859
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
860
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
861
+ "keywords": [
862
+ "filesystem",
863
+ "iterator"
864
+ ],
865
+ "time": "2017-11-27T13:52:08+00:00"
866
+ },
867
+ {
868
+ "name": "phpunit/php-text-template",
869
+ "version": "1.2.1",
870
+ "source": {
871
+ "type": "git",
872
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
873
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
874
+ },
875
+ "dist": {
876
+ "type": "zip",
877
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
878
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
879
+ "shasum": ""
880
+ },
881
+ "require": {
882
+ "php": ">=5.3.3"
883
+ },
884
+ "type": "library",
885
+ "autoload": {
886
+ "classmap": [
887
+ "src/"
888
+ ]
889
+ },
890
+ "notification-url": "https://packagist.org/downloads/",
891
+ "license": [
892
+ "BSD-3-Clause"
893
+ ],
894
+ "authors": [
895
+ {
896
+ "name": "Sebastian Bergmann",
897
+ "email": "sebastian@phpunit.de",
898
+ "role": "lead"
899
+ }
900
+ ],
901
+ "description": "Simple template engine.",
902
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
903
+ "keywords": [
904
+ "template"
905
+ ],
906
+ "time": "2015-06-21T13:50:34+00:00"
907
+ },
908
+ {
909
+ "name": "phpunit/php-timer",
910
+ "version": "1.0.9",
911
+ "source": {
912
+ "type": "git",
913
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
914
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
915
+ },
916
+ "dist": {
917
+ "type": "zip",
918
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
919
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
920
+ "shasum": ""
921
+ },
922
+ "require": {
923
+ "php": "^5.3.3 || ^7.0"
924
+ },
925
+ "require-dev": {
926
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
927
+ },
928
+ "type": "library",
929
+ "extra": {
930
+ "branch-alias": {
931
+ "dev-master": "1.0-dev"
932
+ }
933
+ },
934
+ "autoload": {
935
+ "classmap": [
936
+ "src/"
937
+ ]
938
+ },
939
+ "notification-url": "https://packagist.org/downloads/",
940
+ "license": [
941
+ "BSD-3-Clause"
942
+ ],
943
+ "authors": [
944
+ {
945
+ "name": "Sebastian Bergmann",
946
+ "email": "sb@sebastian-bergmann.de",
947
+ "role": "lead"
948
+ }
949
+ ],
950
+ "description": "Utility class for timing",
951
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
952
+ "keywords": [
953
+ "timer"
954
+ ],
955
+ "time": "2017-02-26T11:10:40+00:00"
956
+ },
957
+ {
958
+ "name": "phpunit/php-token-stream",
959
+ "version": "1.4.12",
960
+ "source": {
961
+ "type": "git",
962
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
963
+ "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16"
964
+ },
965
+ "dist": {
966
+ "type": "zip",
967
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16",
968
+ "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16",
969
+ "shasum": ""
970
+ },
971
+ "require": {
972
+ "ext-tokenizer": "*",
973
+ "php": ">=5.3.3"
974
+ },
975
+ "require-dev": {
976
+ "phpunit/phpunit": "~4.2"
977
+ },
978
+ "type": "library",
979
+ "extra": {
980
+ "branch-alias": {
981
+ "dev-master": "1.4-dev"
982
+ }
983
+ },
984
+ "autoload": {
985
+ "classmap": [
986
+ "src/"
987
+ ]
988
+ },
989
+ "notification-url": "https://packagist.org/downloads/",
990
+ "license": [
991
+ "BSD-3-Clause"
992
+ ],
993
+ "authors": [
994
+ {
995
+ "name": "Sebastian Bergmann",
996
+ "email": "sebastian@phpunit.de"
997
+ }
998
+ ],
999
+ "description": "Wrapper around PHP's tokenizer extension.",
1000
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
1001
+ "keywords": [
1002
+ "tokenizer"
1003
+ ],
1004
+ "time": "2017-12-04T08:55:13+00:00"
1005
+ },
1006
+ {
1007
+ "name": "phpunit/phpunit",
1008
+ "version": "4.8.36",
1009
+ "source": {
1010
+ "type": "git",
1011
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
1012
+ "reference": "46023de9a91eec7dfb06cc56cb4e260017298517"
1013
+ },
1014
+ "dist": {
1015
+ "type": "zip",
1016
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517",
1017
+ "reference": "46023de9a91eec7dfb06cc56cb4e260017298517",
1018
+ "shasum": ""
1019
+ },
1020
+ "require": {
1021
+ "ext-dom": "*",
1022
+ "ext-json": "*",
1023
+ "ext-pcre": "*",
1024
+ "ext-reflection": "*",
1025
+ "ext-spl": "*",
1026
+ "php": ">=5.3.3",
1027
+ "phpspec/prophecy": "^1.3.1",
1028
+ "phpunit/php-code-coverage": "~2.1",
1029
+ "phpunit/php-file-iterator": "~1.4",
1030
+ "phpunit/php-text-template": "~1.2",
1031
+ "phpunit/php-timer": "^1.0.6",
1032
+ "phpunit/phpunit-mock-objects": "~2.3",
1033
+ "sebastian/comparator": "~1.2.2",
1034
+ "sebastian/diff": "~1.2",
1035
+ "sebastian/environment": "~1.3",
1036
+ "sebastian/exporter": "~1.2",
1037
+ "sebastian/global-state": "~1.0",
1038
+ "sebastian/version": "~1.0",
1039
+ "symfony/yaml": "~2.1|~3.0"
1040
+ },
1041
+ "suggest": {
1042
+ "phpunit/php-invoker": "~1.1"
1043
+ },
1044
+ "bin": [
1045
+ "phpunit"
1046
+ ],
1047
+ "type": "library",
1048
+ "extra": {
1049
+ "branch-alias": {
1050
+ "dev-master": "4.8.x-dev"
1051
+ }
1052
+ },
1053
+ "autoload": {
1054
+ "classmap": [
1055
+ "src/"
1056
+ ]
1057
+ },
1058
+ "notification-url": "https://packagist.org/downloads/",
1059
+ "license": [
1060
+ "BSD-3-Clause"
1061
+ ],
1062
+ "authors": [
1063
+ {
1064
+ "name": "Sebastian Bergmann",
1065
+ "email": "sebastian@phpunit.de",
1066
+ "role": "lead"
1067
+ }
1068
+ ],
1069
+ "description": "The PHP Unit Testing framework.",
1070
+ "homepage": "https://phpunit.de/",
1071
+ "keywords": [
1072
+ "phpunit",
1073
+ "testing",
1074
+ "xunit"
1075
+ ],
1076
+ "time": "2017-06-21T08:07:12+00:00"
1077
+ },
1078
+ {
1079
+ "name": "phpunit/phpunit-mock-objects",
1080
+ "version": "2.3.0",
1081
+ "source": {
1082
+ "type": "git",
1083
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1084
+ "reference": "c63d2367247365f688544f0d500af90a11a44c65"
1085
+ },
1086
+ "dist": {
1087
+ "type": "zip",
1088
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65",
1089
+ "reference": "c63d2367247365f688544f0d500af90a11a44c65",
1090
+ "shasum": ""
1091
+ },
1092
+ "require": {
1093
+ "doctrine/instantiator": "~1.0,>=1.0.1",
1094
+ "php": ">=5.3.3",
1095
+ "phpunit/php-text-template": "~1.2"
1096
+ },
1097
+ "require-dev": {
1098
+ "phpunit/phpunit": "~4.3"
1099
+ },
1100
+ "suggest": {
1101
+ "ext-soap": "*"
1102
+ },
1103
+ "type": "library",
1104
+ "extra": {
1105
+ "branch-alias": {
1106
+ "dev-master": "2.3.x-dev"
1107
+ }
1108
+ },
1109
+ "autoload": {
1110
+ "classmap": [
1111
+ "src/"
1112
+ ]
1113
+ },
1114
+ "notification-url": "https://packagist.org/downloads/",
1115
+ "license": [
1116
+ "BSD-3-Clause"
1117
+ ],
1118
+ "authors": [
1119
+ {
1120
+ "name": "Sebastian Bergmann",
1121
+ "email": "sb@sebastian-bergmann.de",
1122
+ "role": "lead"
1123
+ }
1124
+ ],
1125
+ "description": "Mock Object library for PHPUnit",
1126
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1127
+ "keywords": [
1128
+ "mock",
1129
+ "xunit"
1130
+ ],
1131
+ "time": "2014-10-03T05:12:11+00:00"
1132
+ },
1133
+ {
1134
+ "name": "ruflin/elastica",
1135
+ "version": "2.3.1",
1136
+ "source": {
1137
+ "type": "git",
1138
+ "url": "https://github.com/ruflin/Elastica.git",
1139
+ "reference": "0df1d7b513960ba11d3075652dcd71fcab8dd37a"
1140
+ },
1141
+ "dist": {
1142
+ "type": "zip",
1143
+ "url": "https://api.github.com/repos/ruflin/Elastica/zipball/0df1d7b513960ba11d3075652dcd71fcab8dd37a",
1144
+ "reference": "0df1d7b513960ba11d3075652dcd71fcab8dd37a",
1145
+ "shasum": ""
1146
+ },
1147
+ "require": {
1148
+ "php": ">=5.3.3",
1149
+ "psr/log": "~1.0"
1150
+ },
1151
+ "require-dev": {
1152
+ "guzzlehttp/guzzle": "5.3.*",
1153
+ "munkie/elasticsearch-thrift-php": "1.4.*"
1154
+ },
1155
+ "suggest": {
1156
+ "egeloen/http-adapter": "Allow using httpadapter transport",
1157
+ "guzzlehttp/guzzle": "Allow using guzzle 5.3.x as the http transport (Requires php 5.4)",
1158
+ "monolog/monolog": "Logging request",
1159
+ "munkie/elasticsearch-thrift-php": "Allow using thrift transport"
1160
+ },
1161
+ "type": "library",
1162
+ "extra": {
1163
+ "branch-alias": {
1164
+ "dev-master": "2.2.x-dev"
1165
+ }
1166
+ },
1167
+ "autoload": {
1168
+ "psr-4": {
1169
+ "Elastica\\": "lib/Elastica/"
1170
+ }
1171
+ },
1172
+ "notification-url": "https://packagist.org/downloads/",
1173
+ "license": [
1174
+ "MIT"
1175
+ ],
1176
+ "authors": [
1177
+ {
1178
+ "name": "Nicolas Ruflin",
1179
+ "homepage": "http://ruflin.com/"
1180
+ }
1181
+ ],
1182
+ "description": "Elasticsearch Client",
1183
+ "homepage": "http://elastica.io/",
1184
+ "keywords": [
1185
+ "client",
1186
+ "search"
1187
+ ],
1188
+ "time": "2015-10-19T07:09:10+00:00"
1189
+ },
1190
+ {
1191
+ "name": "sebastian/comparator",
1192
+ "version": "1.2.4",
1193
+ "source": {
1194
+ "type": "git",
1195
+ "url": "https://github.com/sebastianbergmann/comparator.git",
1196
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
1197
+ },
1198
+ "dist": {
1199
+ "type": "zip",
1200
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1201
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1202
+ "shasum": ""
1203
+ },
1204
+ "require": {
1205
+ "php": ">=5.3.3",
1206
+ "sebastian/diff": "~1.2",
1207
+ "sebastian/exporter": "~1.2 || ~2.0"
1208
+ },
1209
+ "require-dev": {
1210
+ "phpunit/phpunit": "~4.4"
1211
+ },
1212
+ "type": "library",
1213
+ "extra": {
1214
+ "branch-alias": {
1215
+ "dev-master": "1.2.x-dev"
1216
+ }
1217
+ },
1218
+ "autoload": {
1219
+ "classmap": [
1220
+ "src/"
1221
+ ]
1222
+ },
1223
+ "notification-url": "https://packagist.org/downloads/",
1224
+ "license": [
1225
+ "BSD-3-Clause"
1226
+ ],
1227
+ "authors": [
1228
+ {
1229
+ "name": "Jeff Welch",
1230
+ "email": "whatthejeff@gmail.com"
1231
+ },
1232
+ {
1233
+ "name": "Volker Dusch",
1234
+ "email": "github@wallbash.com"
1235
+ },
1236
+ {
1237
+ "name": "Bernhard Schussek",
1238
+ "email": "bschussek@2bepublished.at"
1239
+ },
1240
+ {
1241
+ "name": "Sebastian Bergmann",
1242
+ "email": "sebastian@phpunit.de"
1243
+ }
1244
+ ],
1245
+ "description": "Provides the functionality to compare PHP values for equality",
1246
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
1247
+ "keywords": [
1248
+ "comparator",
1249
+ "compare",
1250
+ "equality"
1251
+ ],
1252
+ "time": "2017-01-29T09:50:25+00:00"
1253
+ },
1254
+ {
1255
+ "name": "sebastian/diff",
1256
+ "version": "1.4.3",
1257
+ "source": {
1258
+ "type": "git",
1259
+ "url": "https://github.com/sebastianbergmann/diff.git",
1260
+ "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
1261
+ },
1262
+ "dist": {
1263
+ "type": "zip",
1264
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
1265
+ "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
1266
+ "shasum": ""
1267
+ },
1268
+ "require": {
1269
+ "php": "^5.3.3 || ^7.0"
1270
+ },
1271
+ "require-dev": {
1272
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1273
+ },
1274
+ "type": "library",
1275
+ "extra": {
1276
+ "branch-alias": {
1277
+ "dev-master": "1.4-dev"
1278
+ }
1279
+ },
1280
+ "autoload": {
1281
+ "classmap": [
1282
+ "src/"
1283
+ ]
1284
+ },
1285
+ "notification-url": "https://packagist.org/downloads/",
1286
+ "license": [
1287
+ "BSD-3-Clause"
1288
+ ],
1289
+ "authors": [
1290
+ {
1291
+ "name": "Kore Nordmann",
1292
+ "email": "mail@kore-nordmann.de"
1293
+ },
1294
+ {
1295
+ "name": "Sebastian Bergmann",
1296
+ "email": "sebastian@phpunit.de"
1297
+ }
1298
+ ],
1299
+ "description": "Diff implementation",
1300
+ "homepage": "https://github.com/sebastianbergmann/diff",
1301
+ "keywords": [
1302
+ "diff"
1303
+ ],
1304
+ "time": "2017-05-22T07:24:03+00:00"
1305
+ },
1306
+ {
1307
+ "name": "sebastian/environment",
1308
+ "version": "1.3.8",
1309
+ "source": {
1310
+ "type": "git",
1311
+ "url": "https://github.com/sebastianbergmann/environment.git",
1312
+ "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
1313
+ },
1314
+ "dist": {
1315
+ "type": "zip",
1316
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
1317
+ "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
1318
+ "shasum": ""
1319
+ },
1320
+ "require": {
1321
+ "php": "^5.3.3 || ^7.0"
1322
+ },
1323
+ "require-dev": {
1324
+ "phpunit/phpunit": "^4.8 || ^5.0"
1325
+ },
1326
+ "type": "library",
1327
+ "extra": {
1328
+ "branch-alias": {
1329
+ "dev-master": "1.3.x-dev"
1330
+ }
1331
+ },
1332
+ "autoload": {
1333
+ "classmap": [
1334
+ "src/"
1335
+ ]
1336
+ },
1337
+ "notification-url": "https://packagist.org/downloads/",
1338
+ "license": [
1339
+ "BSD-3-Clause"
1340
+ ],
1341
+ "authors": [
1342
+ {
1343
+ "name": "Sebastian Bergmann",
1344
+ "email": "sebastian@phpunit.de"
1345
+ }
1346
+ ],
1347
+ "description": "Provides functionality to handle HHVM/PHP environments",
1348
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
1349
+ "keywords": [
1350
+ "Xdebug",
1351
+ "environment",
1352
+ "hhvm"
1353
+ ],
1354
+ "time": "2016-08-18T05:49:44+00:00"
1355
+ },
1356
+ {
1357
+ "name": "sebastian/exporter",
1358
+ "version": "1.2.2",
1359
+ "source": {
1360
+ "type": "git",
1361
+ "url": "https://github.com/sebastianbergmann/exporter.git",
1362
+ "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
1363
+ },
1364
+ "dist": {
1365
+ "type": "zip",
1366
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
1367
+ "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
1368
+ "shasum": ""
1369
+ },
1370
+ "require": {
1371
+ "php": ">=5.3.3",
1372
+ "sebastian/recursion-context": "~1.0"
1373
+ },
1374
+ "require-dev": {
1375
+ "ext-mbstring": "*",
1376
+ "phpunit/phpunit": "~4.4"
1377
+ },
1378
+ "type": "library",
1379
+ "extra": {
1380
+ "branch-alias": {
1381
+ "dev-master": "1.3.x-dev"
1382
+ }
1383
+ },
1384
+ "autoload": {
1385
+ "classmap": [
1386
+ "src/"
1387
+ ]
1388
+ },
1389
+ "notification-url": "https://packagist.org/downloads/",
1390
+ "license": [
1391
+ "BSD-3-Clause"
1392
+ ],
1393
+ "authors": [
1394
+ {
1395
+ "name": "Jeff Welch",
1396
+ "email": "whatthejeff@gmail.com"
1397
+ },
1398
+ {
1399
+ "name": "Volker Dusch",
1400
+ "email": "github@wallbash.com"
1401
+ },
1402
+ {
1403
+ "name": "Bernhard Schussek",
1404
+ "email": "bschussek@2bepublished.at"
1405
+ },
1406
+ {
1407
+ "name": "Sebastian Bergmann",
1408
+ "email": "sebastian@phpunit.de"
1409
+ },
1410
+ {
1411
+ "name": "Adam Harvey",
1412
+ "email": "aharvey@php.net"
1413
+ }
1414
+ ],
1415
+ "description": "Provides the functionality to export PHP variables for visualization",
1416
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
1417
+ "keywords": [
1418
+ "export",
1419
+ "exporter"
1420
+ ],
1421
+ "time": "2016-06-17T09:04:28+00:00"
1422
+ },
1423
+ {
1424
+ "name": "sebastian/global-state",
1425
+ "version": "1.1.1",
1426
+ "source": {
1427
+ "type": "git",
1428
+ "url": "https://github.com/sebastianbergmann/global-state.git",
1429
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
1430
+ },
1431
+ "dist": {
1432
+ "type": "zip",
1433
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
1434
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
1435
+ "shasum": ""
1436
+ },
1437
+ "require": {
1438
+ "php": ">=5.3.3"
1439
+ },
1440
+ "require-dev": {
1441
+ "phpunit/phpunit": "~4.2"
1442
+ },
1443
+ "suggest": {
1444
+ "ext-uopz": "*"
1445
+ },
1446
+ "type": "library",
1447
+ "extra": {
1448
+ "branch-alias": {
1449
+ "dev-master": "1.0-dev"
1450
+ }
1451
+ },
1452
+ "autoload": {
1453
+ "classmap": [
1454
+ "src/"
1455
+ ]
1456
+ },
1457
+ "notification-url": "https://packagist.org/downloads/",
1458
+ "license": [
1459
+ "BSD-3-Clause"
1460
+ ],
1461
+ "authors": [
1462
+ {
1463
+ "name": "Sebastian Bergmann",
1464
+ "email": "sebastian@phpunit.de"
1465
+ }
1466
+ ],
1467
+ "description": "Snapshotting of global state",
1468
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
1469
+ "keywords": [
1470
+ "global state"
1471
+ ],
1472
+ "time": "2015-10-12T03:26:01+00:00"
1473
+ },
1474
+ {
1475
+ "name": "sebastian/recursion-context",
1476
+ "version": "1.0.5",
1477
+ "source": {
1478
+ "type": "git",
1479
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
1480
+ "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7"
1481
+ },
1482
+ "dist": {
1483
+ "type": "zip",
1484
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
1485
+ "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7",
1486
+ "shasum": ""
1487
+ },
1488
+ "require": {
1489
+ "php": ">=5.3.3"
1490
+ },
1491
+ "require-dev": {
1492
+ "phpunit/phpunit": "~4.4"
1493
+ },
1494
+ "type": "library",
1495
+ "extra": {
1496
+ "branch-alias": {
1497
+ "dev-master": "1.0.x-dev"
1498
+ }
1499
+ },
1500
+ "autoload": {
1501
+ "classmap": [
1502
+ "src/"
1503
+ ]
1504
+ },
1505
+ "notification-url": "https://packagist.org/downloads/",
1506
+ "license": [
1507
+ "BSD-3-Clause"
1508
+ ],
1509
+ "authors": [
1510
+ {
1511
+ "name": "Jeff Welch",
1512
+ "email": "whatthejeff@gmail.com"
1513
+ },
1514
+ {
1515
+ "name": "Sebastian Bergmann",
1516
+ "email": "sebastian@phpunit.de"
1517
+ },
1518
+ {
1519
+ "name": "Adam Harvey",
1520
+ "email": "aharvey@php.net"
1521
+ }
1522
+ ],
1523
+ "description": "Provides functionality to recursively process PHP variables",
1524
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1525
+ "time": "2016-10-03T07:41:43+00:00"
1526
+ },
1527
+ {
1528
+ "name": "sebastian/version",
1529
+ "version": "1.0.6",
1530
+ "source": {
1531
+ "type": "git",
1532
+ "url": "https://github.com/sebastianbergmann/version.git",
1533
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
1534
+ },
1535
+ "dist": {
1536
+ "type": "zip",
1537
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
1538
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
1539
+ "shasum": ""
1540
+ },
1541
+ "type": "library",
1542
+ "autoload": {
1543
+ "classmap": [
1544
+ "src/"
1545
+ ]
1546
+ },
1547
+ "notification-url": "https://packagist.org/downloads/",
1548
+ "license": [
1549
+ "BSD-3-Clause"
1550
+ ],
1551
+ "authors": [
1552
+ {
1553
+ "name": "Sebastian Bergmann",
1554
+ "email": "sebastian@phpunit.de",
1555
+ "role": "lead"
1556
+ }
1557
+ ],
1558
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
1559
+ "homepage": "https://github.com/sebastianbergmann/version",
1560
+ "time": "2015-06-21T13:59:46+00:00"
1561
+ },
1562
+ {
1563
+ "name": "sentry/sentry",
1564
+ "version": "0.13.0",
1565
+ "source": {
1566
+ "type": "git",
1567
+ "url": "https://github.com/getsentry/sentry-php.git",
1568
+ "reference": "1d5be07afc001df98a3528d1f928eeb2241afce6"
1569
+ },
1570
+ "dist": {
1571
+ "type": "zip",
1572
+ "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/1d5be07afc001df98a3528d1f928eeb2241afce6",
1573
+ "reference": "1d5be07afc001df98a3528d1f928eeb2241afce6",
1574
+ "shasum": ""
1575
+ },
1576
+ "require": {
1577
+ "ext-curl": "*",
1578
+ "php": ">=5.2.4"
1579
+ },
1580
+ "require-dev": {
1581
+ "fabpot/php-cs-fixer": "^1.8.0",
1582
+ "phpunit/phpunit": "^4.6.6"
1583
+ },
1584
+ "bin": [
1585
+ "bin/raven"
1586
+ ],
1587
+ "type": "library",
1588
+ "extra": {
1589
+ "branch-alias": {
1590
+ "dev-master": "0.13.x-dev"
1591
+ }
1592
+ },
1593
+ "autoload": {
1594
+ "psr-0": {
1595
+ "Raven_": "lib/"
1596
+ }
1597
+ },
1598
+ "notification-url": "https://packagist.org/downloads/",
1599
+ "license": [
1600
+ "BSD"
1601
+ ],
1602
+ "authors": [
1603
+ {
1604
+ "name": "David Cramer",
1605
+ "email": "dcramer@gmail.com"
1606
+ }
1607
+ ],
1608
+ "description": "A PHP client for Sentry (http://getsentry.com)",
1609
+ "homepage": "http://getsentry.com",
1610
+ "keywords": [
1611
+ "log",
1612
+ "logging"
1613
+ ],
1614
+ "time": "2015-09-09T18:12:58+00:00"
1615
+ },
1616
+ {
1617
+ "name": "swiftmailer/swiftmailer",
1618
+ "version": "v5.4.9",
1619
+ "source": {
1620
+ "type": "git",
1621
+ "url": "https://github.com/swiftmailer/swiftmailer.git",
1622
+ "reference": "7ffc1ea296ed14bf8260b6ef11b80208dbadba91"
1623
+ },
1624
+ "dist": {
1625
+ "type": "zip",
1626
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/7ffc1ea296ed14bf8260b6ef11b80208dbadba91",
1627
+ "reference": "7ffc1ea296ed14bf8260b6ef11b80208dbadba91",
1628
+ "shasum": ""
1629
+ },
1630
+ "require": {
1631
+ "php": ">=5.3.3"
1632
+ },
1633
+ "require-dev": {
1634
+ "mockery/mockery": "~0.9.1",
1635
+ "symfony/phpunit-bridge": "~3.2"
1636
+ },
1637
+ "type": "library",
1638
+ "extra": {
1639
+ "branch-alias": {
1640
+ "dev-master": "5.4-dev"
1641
+ }
1642
+ },
1643
+ "autoload": {
1644
+ "files": [
1645
+ "lib/swift_required.php"
1646
+ ]
1647
+ },
1648
+ "notification-url": "https://packagist.org/downloads/",
1649
+ "license": [
1650
+ "MIT"
1651
+ ],
1652
+ "authors": [
1653
+ {
1654
+ "name": "Chris Corbyn"
1655
+ },
1656
+ {
1657
+ "name": "Fabien Potencier",
1658
+ "email": "fabien@symfony.com"
1659
+ }
1660
+ ],
1661
+ "description": "Swiftmailer, free feature-rich PHP mailer",
1662
+ "homepage": "https://swiftmailer.symfony.com",
1663
+ "keywords": [
1664
+ "email",
1665
+ "mail",
1666
+ "mailer"
1667
+ ],
1668
+ "time": "2018-01-23T07:37:21+00:00"
1669
+ },
1670
+ {
1671
+ "name": "symfony/event-dispatcher",
1672
+ "version": "v2.8.36",
1673
+ "source": {
1674
+ "type": "git",
1675
+ "url": "https://github.com/symfony/event-dispatcher.git",
1676
+ "reference": "f5d2d7dcc33b89e20c2696ea9afcbddf6540081c"
1677
+ },
1678
+ "dist": {
1679
+ "type": "zip",
1680
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f5d2d7dcc33b89e20c2696ea9afcbddf6540081c",
1681
+ "reference": "f5d2d7dcc33b89e20c2696ea9afcbddf6540081c",
1682
+ "shasum": ""
1683
+ },
1684
+ "require": {
1685
+ "php": ">=5.3.9"
1686
+ },
1687
+ "require-dev": {
1688
+ "psr/log": "~1.0",
1689
+ "symfony/config": "^2.0.5|~3.0.0",
1690
+ "symfony/dependency-injection": "~2.6|~3.0.0",
1691
+ "symfony/expression-language": "~2.6|~3.0.0",
1692
+ "symfony/stopwatch": "~2.3|~3.0.0"
1693
+ },
1694
+ "suggest": {
1695
+ "symfony/dependency-injection": "",
1696
+ "symfony/http-kernel": ""
1697
+ },
1698
+ "type": "library",
1699
+ "extra": {
1700
+ "branch-alias": {
1701
+ "dev-master": "2.8-dev"
1702
+ }
1703
+ },
1704
+ "autoload": {
1705
+ "psr-4": {
1706
+ "Symfony\\Component\\EventDispatcher\\": ""
1707
+ },
1708
+ "exclude-from-classmap": [
1709
+ "/Tests/"
1710
+ ]
1711
+ },
1712
+ "notification-url": "https://packagist.org/downloads/",
1713
+ "license": [
1714
+ "MIT"
1715
+ ],
1716
+ "authors": [
1717
+ {
1718
+ "name": "Fabien Potencier",
1719
+ "email": "fabien@symfony.com"
1720
+ },
1721
+ {
1722
+ "name": "Symfony Community",
1723
+ "homepage": "https://symfony.com/contributors"
1724
+ }
1725
+ ],
1726
+ "description": "Symfony EventDispatcher Component",
1727
+ "homepage": "https://symfony.com",
1728
+ "time": "2018-02-11T16:53:59+00:00"
1729
+ },
1730
+ {
1731
+ "name": "symfony/yaml",
1732
+ "version": "v3.4.6",
1733
+ "source": {
1734
+ "type": "git",
1735
+ "url": "https://github.com/symfony/yaml.git",
1736
+ "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb"
1737
+ },
1738
+ "dist": {
1739
+ "type": "zip",
1740
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/6af42631dcf89e9c616242c900d6c52bd53bd1bb",
1741
+ "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb",
1742
+ "shasum": ""
1743
+ },
1744
+ "require": {
1745
+ "php": "^5.5.9|>=7.0.8"
1746
+ },
1747
+ "conflict": {
1748
+ "symfony/console": "<3.4"
1749
+ },
1750
+ "require-dev": {
1751
+ "symfony/console": "~3.4|~4.0"
1752
+ },
1753
+ "suggest": {
1754
+ "symfony/console": "For validating YAML files using the lint command"
1755
+ },
1756
+ "type": "library",
1757
+ "extra": {
1758
+ "branch-alias": {
1759
+ "dev-master": "3.4-dev"
1760
+ }
1761
+ },
1762
+ "autoload": {
1763
+ "psr-4": {
1764
+ "Symfony\\Component\\Yaml\\": ""
1765
+ },
1766
+ "exclude-from-classmap": [
1767
+ "/Tests/"
1768
+ ]
1769
+ },
1770
+ "notification-url": "https://packagist.org/downloads/",
1771
+ "license": [
1772
+ "MIT"
1773
+ ],
1774
+ "authors": [
1775
+ {
1776
+ "name": "Fabien Potencier",
1777
+ "email": "fabien@symfony.com"
1778
+ },
1779
+ {
1780
+ "name": "Symfony Community",
1781
+ "homepage": "https://symfony.com/contributors"
1782
+ }
1783
+ ],
1784
+ "description": "Symfony Yaml Component",
1785
+ "homepage": "https://symfony.com",
1786
+ "time": "2018-02-16T09:50:28+00:00"
1787
+ },
1788
+ {
1789
+ "name": "webmozart/assert",
1790
+ "version": "1.3.0",
1791
+ "source": {
1792
+ "type": "git",
1793
+ "url": "https://github.com/webmozart/assert.git",
1794
+ "reference": "0df1908962e7a3071564e857d86874dad1ef204a"
1795
+ },
1796
+ "dist": {
1797
+ "type": "zip",
1798
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
1799
+ "reference": "0df1908962e7a3071564e857d86874dad1ef204a",
1800
+ "shasum": ""
1801
+ },
1802
+ "require": {
1803
+ "php": "^5.3.3 || ^7.0"
1804
+ },
1805
+ "require-dev": {
1806
+ "phpunit/phpunit": "^4.6",
1807
+ "sebastian/version": "^1.0.1"
1808
+ },
1809
+ "type": "library",
1810
+ "extra": {
1811
+ "branch-alias": {
1812
+ "dev-master": "1.3-dev"
1813
+ }
1814
+ },
1815
+ "autoload": {
1816
+ "psr-4": {
1817
+ "Webmozart\\Assert\\": "src/"
1818
+ }
1819
+ },
1820
+ "notification-url": "https://packagist.org/downloads/",
1821
+ "license": [
1822
+ "MIT"
1823
+ ],
1824
+ "authors": [
1825
+ {
1826
+ "name": "Bernhard Schussek",
1827
+ "email": "bschussek@gmail.com"
1828
+ }
1829
+ ],
1830
+ "description": "Assertions to validate method input/output with nice error messages.",
1831
+ "keywords": [
1832
+ "assert",
1833
+ "check",
1834
+ "validate"
1835
+ ],
1836
+ "time": "2018-01-29T19:49:41+00:00"
1837
+ }
1838
+ ],
1839
+ "aliases": [],
1840
+ "minimum-stability": "stable",
1841
+ "stability-flags": {
1842
+ "doctrine/couchdb": 20
1843
+ },
1844
+ "prefer-stable": false,
1845
+ "prefer-lowest": false,
1846
+ "platform": {
1847
+ "php": ">=5.3.0"
1848
+ },
1849
+ "platform-dev": []
1850
+ }
vendor/monolog/monolog/doc/01-usage.md ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Using Monolog
2
+
3
+ - [Installation](#installation)
4
+ - [Core Concepts](#core-concepts)
5
+ - [Log Levels](#log-levels)
6
+ - [Configuring a logger](#configuring-a-logger)
7
+ - [Adding extra data in the records](#adding-extra-data-in-the-records)
8
+ - [Leveraging channels](#leveraging-channels)
9
+ - [Customizing the log format](#customizing-the-log-format)
10
+
11
+ ## Installation
12
+
13
+ Monolog is available on Packagist ([monolog/monolog](http://packagist.org/packages/monolog/monolog))
14
+ and as such installable via [Composer](http://getcomposer.org/).
15
+
16
+ ```bash
17
+ composer require monolog/monolog
18
+ ```
19
+
20
+ If you do not use Composer, you can grab the code from GitHub, and use any
21
+ PSR-0 compatible autoloader (e.g. the [Symfony2 ClassLoader component](https://github.com/symfony/ClassLoader))
22
+ to load Monolog classes.
23
+
24
+ ## Core Concepts
25
+
26
+ Every `Logger` instance has a channel (name) and a stack of handlers. Whenever
27
+ you add a record to the logger, it traverses the handler stack. Each handler
28
+ decides whether it fully handled the record, and if so, the propagation of the
29
+ record ends there.
30
+
31
+ This allows for flexible logging setups, for example having a `StreamHandler` at
32
+ the bottom of the stack that will log anything to disk, and on top of that add
33
+ a `MailHandler` that will send emails only when an error message is logged.
34
+ Handlers also have a `$bubble` property which defines whether they block the
35
+ record or not if they handled it. In this example, setting the `MailHandler`'s
36
+ `$bubble` argument to false means that records handled by the `MailHandler` will
37
+ not propagate to the `StreamHandler` anymore.
38
+
39
+ You can create many `Logger`s, each defining a channel (e.g.: db, request,
40
+ router, ..) and each of them combining various handlers, which can be shared
41
+ or not. The channel is reflected in the logs and allows you to easily see or
42
+ filter records.
43
+
44
+ Each Handler also has a Formatter, a default one with settings that make sense
45
+ will be created if you don't set one. The formatters normalize and format
46
+ incoming records so that they can be used by the handlers to output useful
47
+ information.
48
+
49
+ Custom severity levels are not available. Only the eight
50
+ [RFC 5424](http://tools.ietf.org/html/rfc5424) levels (debug, info, notice,
51
+ warning, error, critical, alert, emergency) are present for basic filtering
52
+ purposes, but for sorting and other use cases that would require
53
+ flexibility, you should add Processors to the Logger that can add extra
54
+ information (tags, user ip, ..) to the records bef