newspack-components 4.2.0 → 4.4.0-epic-editor-refactor.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/DEVELOPMENT.md +868 -0
  3. package/copy-styles.js +3 -2
  4. package/dist/cjs/accordion/index.js +17 -12
  5. package/dist/cjs/action-card/index.js +186 -140
  6. package/dist/cjs/action-card/style.scss +25 -2
  7. package/dist/cjs/autocomplete-tokenfield/index.js +254 -234
  8. package/dist/cjs/autocomplete-with-latest-posts/index.js +351 -0
  9. package/dist/cjs/autocomplete-with-latest-posts/style.scss +150 -0
  10. package/dist/cjs/autocomplete-with-suggestions/index.js +229 -126
  11. package/dist/cjs/badge/index.js +32 -0
  12. package/dist/cjs/badge/style.scss +36 -0
  13. package/dist/cjs/box-contrast/index.js +19 -15
  14. package/dist/cjs/button/index.js +41 -24
  15. package/dist/cjs/button-props/button-props.js +5 -5
  16. package/dist/cjs/button-props/index.js +2 -2
  17. package/dist/cjs/card/core-card.js +199 -0
  18. package/dist/cjs/card/index.js +75 -35
  19. package/dist/cjs/card/style-core.scss +295 -0
  20. package/dist/cjs/card/style.scss +4 -4
  21. package/dist/cjs/card-feature/index.js +141 -0
  22. package/dist/cjs/card-feature/style.scss +75 -0
  23. package/dist/cjs/card-form/index.js +144 -0
  24. package/dist/cjs/card-form/style.scss +20 -0
  25. package/dist/cjs/card-settings-group/index.js +69 -0
  26. package/dist/cjs/card-settings-group/style.scss +33 -0
  27. package/dist/cjs/card-sortable-list/index.js +426 -0
  28. package/dist/cjs/card-sortable-list/style.scss +48 -0
  29. package/dist/cjs/category-autocomplete/index.js +175 -155
  30. package/dist/cjs/color-picker/index.js +41 -23
  31. package/dist/cjs/color-picker/index.test.js +82 -0
  32. package/dist/cjs/color-picker/style.scss +11 -13
  33. package/dist/cjs/confirm-dialog/index.js +123 -0
  34. package/dist/cjs/consts.js +1 -1
  35. package/dist/cjs/custom-select-control/index.js +39 -28
  36. package/dist/cjs/dataviews/index.js +38 -0
  37. package/dist/cjs/dataviews/style.scss +9 -0
  38. package/dist/cjs/divider/index.js +47 -0
  39. package/dist/cjs/divider/style.scss +51 -0
  40. package/dist/cjs/footer/index.js +36 -30
  41. package/dist/cjs/form-token-field/index.js +51 -40
  42. package/dist/cjs/form-token-field/style.scss +0 -5
  43. package/dist/cjs/global-notices/index.js +5 -5
  44. package/dist/cjs/grid/index.js +25 -18
  45. package/dist/cjs/grid/style.scss +67 -8
  46. package/dist/cjs/handoff/index.js +204 -156
  47. package/dist/cjs/handoff-message/index.js +12 -7
  48. package/dist/cjs/hooks/index.js +10 -8
  49. package/dist/cjs/hooks/use-confirm-dialog.js +79 -0
  50. package/dist/cjs/hooks/use-unsaved-changes-dialog.js +144 -0
  51. package/dist/cjs/hooks/useObjectState.js +21 -12
  52. package/dist/cjs/hooks/useObjectState.test.js +55 -33
  53. package/dist/cjs/hooks/useOnClickOutside.js +6 -6
  54. package/dist/cjs/hooks/usePrompt.js +10 -13
  55. package/dist/cjs/image-upload/index.js +114 -123
  56. package/dist/cjs/image-upload/index.test.js +11 -13
  57. package/dist/cjs/image-upload/style.scss +12 -40
  58. package/dist/cjs/index.js +166 -92
  59. package/dist/cjs/info-button/index.js +43 -32
  60. package/dist/cjs/integration-icons/active-campaign.js +22 -0
  61. package/dist/cjs/integration-icons/constant-contact.js +28 -0
  62. package/dist/cjs/integration-icons/fundraise-up.js +25 -0
  63. package/dist/cjs/integration-icons/index.js +48 -0
  64. package/dist/cjs/integration-icons/mailchimp.js +19 -0
  65. package/dist/cjs/integration-icons/salesforce.js +17 -0
  66. package/dist/cjs/integration-icons/wisepops.js +20 -0
  67. package/dist/cjs/modal/index.js +29 -19
  68. package/dist/cjs/modal/style.scss +47 -13
  69. package/dist/cjs/newspack-icon/index.js +45 -38
  70. package/dist/cjs/newspack-icon/style.scss +5 -3
  71. package/dist/cjs/notice/index.js +64 -55
  72. package/dist/cjs/plugin-installer/index.js +259 -253
  73. package/dist/cjs/plugin-settings/SettingsSection.js +66 -60
  74. package/dist/cjs/plugin-settings/index.js +217 -200
  75. package/dist/cjs/plugin-toggle/index.js +192 -199
  76. package/dist/cjs/popover/index.js +41 -28
  77. package/dist/cjs/position-control/index.js +24 -23
  78. package/dist/cjs/progress-bar/index.js +71 -59
  79. package/dist/cjs/progress-bar/index.test.js +62 -68
  80. package/dist/cjs/proxied-imports/router.js +3 -3
  81. package/dist/cjs/radio-control/index.js +40 -27
  82. package/dist/cjs/section-header/index.js +143 -39
  83. package/dist/cjs/section-header/style.scss +129 -4
  84. package/dist/cjs/select-control/ButtonGroupControl.js +26 -21
  85. package/dist/cjs/select-control/GroupedSelectControl.js +41 -35
  86. package/dist/cjs/select-control/index.js +52 -40
  87. package/dist/cjs/settings/MinMaxSetting.js +30 -20
  88. package/dist/cjs/settings/SettingsCard.js +20 -17
  89. package/dist/cjs/settings/SettingsSection.js +22 -21
  90. package/dist/cjs/settings/index.js +5 -5
  91. package/dist/cjs/sortable-newsletter-list-control/index.js +78 -57
  92. package/dist/cjs/steps-list/index.js +44 -34
  93. package/dist/cjs/steps-list-item/index.js +47 -39
  94. package/dist/cjs/style-card/index.js +70 -63
  95. package/dist/cjs/style.scss +2 -0
  96. package/dist/cjs/tabbed-navigation/index.js +38 -36
  97. package/dist/cjs/text-control/index.js +27 -25
  98. package/dist/cjs/utils/color.js +4 -4
  99. package/dist/cjs/utils/editor-toolbar-back-button.js +61 -0
  100. package/dist/cjs/utils/index.js +31 -19
  101. package/dist/cjs/utils/style.scss +8 -0
  102. package/dist/cjs/waiting/index.js +48 -35
  103. package/dist/cjs/waiting/style.scss +4 -0
  104. package/dist/cjs/web-preview/index.js +219 -154
  105. package/dist/cjs/web-preview/style.scss +20 -53
  106. package/dist/cjs/with-wizard/index.js +362 -364
  107. package/dist/cjs/with-wizard/style.scss +28 -60
  108. package/dist/cjs/with-wizard-screen/index.js +54 -58
  109. package/dist/cjs/with-wizard-screen/style.scss +77 -10
  110. package/dist/cjs/wizard/components/WizardError.js +20 -18
  111. package/dist/cjs/wizard/components/WizardSnackbar.js +73 -0
  112. package/dist/cjs/wizard/components/style.scss +48 -0
  113. package/dist/cjs/wizard/index.js +207 -64
  114. package/dist/cjs/wizard/store/index.js +191 -97
  115. package/dist/cjs/wizard/store/utils.js +13 -8
  116. package/dist/esm/accordion/index.js +14 -9
  117. package/dist/esm/action-card/index.js +178 -124
  118. package/dist/esm/action-card/style.scss +25 -2
  119. package/dist/esm/autocomplete-tokenfield/index.js +248 -222
  120. package/dist/esm/autocomplete-with-latest-posts/index.js +347 -0
  121. package/dist/esm/autocomplete-with-latest-posts/style.scss +150 -0
  122. package/dist/esm/autocomplete-with-suggestions/index.js +226 -119
  123. package/dist/esm/badge/index.js +24 -0
  124. package/dist/esm/badge/style.scss +36 -0
  125. package/dist/esm/box-contrast/index.js +15 -11
  126. package/dist/esm/button/index.js +39 -19
  127. package/dist/esm/button-props/button-props.js +1 -1
  128. package/dist/esm/card/core-card.js +195 -0
  129. package/dist/esm/card/index.js +70 -22
  130. package/dist/esm/card/style-core.scss +295 -0
  131. package/dist/esm/card/style.scss +4 -4
  132. package/dist/esm/card-feature/index.js +131 -0
  133. package/dist/esm/card-feature/style.scss +75 -0
  134. package/dist/esm/card-form/index.js +134 -0
  135. package/dist/esm/card-form/style.scss +20 -0
  136. package/dist/esm/card-settings-group/index.js +61 -0
  137. package/dist/esm/card-settings-group/style.scss +33 -0
  138. package/dist/esm/card-sortable-list/index.js +425 -0
  139. package/dist/esm/card-sortable-list/style.scss +48 -0
  140. package/dist/esm/category-autocomplete/index.js +168 -140
  141. package/dist/esm/color-picker/index.js +39 -21
  142. package/dist/esm/color-picker/index.test.js +78 -0
  143. package/dist/esm/color-picker/style.scss +11 -13
  144. package/dist/esm/confirm-dialog/index.js +116 -0
  145. package/dist/esm/consts.js +1 -1
  146. package/dist/esm/custom-select-control/index.js +34 -15
  147. package/dist/esm/dataviews/index.js +34 -0
  148. package/dist/esm/dataviews/style.scss +9 -0
  149. package/dist/esm/divider/index.js +42 -0
  150. package/dist/esm/divider/style.scss +51 -0
  151. package/dist/esm/footer/index.js +34 -28
  152. package/dist/esm/form-token-field/index.js +46 -27
  153. package/dist/esm/form-token-field/style.scss +0 -5
  154. package/dist/esm/global-notices/index.js +3 -3
  155. package/dist/esm/grid/index.js +23 -13
  156. package/dist/esm/grid/style.scss +67 -8
  157. package/dist/esm/handoff/index.js +199 -143
  158. package/dist/esm/handoff-message/index.js +10 -6
  159. package/dist/esm/hooks/index.js +8 -6
  160. package/dist/esm/hooks/use-confirm-dialog.js +73 -0
  161. package/dist/esm/hooks/use-unsaved-changes-dialog.js +136 -0
  162. package/dist/esm/hooks/useObjectState.js +19 -9
  163. package/dist/esm/hooks/useObjectState.test.js +54 -32
  164. package/dist/esm/hooks/useOnClickOutside.js +4 -4
  165. package/dist/esm/hooks/usePrompt.js +9 -11
  166. package/dist/esm/image-upload/index.js +110 -111
  167. package/dist/esm/image-upload/index.test.js +11 -13
  168. package/dist/esm/image-upload/style.scss +12 -40
  169. package/dist/esm/index.js +13 -1
  170. package/dist/esm/info-button/index.js +38 -19
  171. package/dist/esm/integration-icons/active-campaign.js +16 -0
  172. package/dist/esm/integration-icons/constant-contact.js +22 -0
  173. package/dist/esm/integration-icons/fundraise-up.js +19 -0
  174. package/dist/esm/integration-icons/index.js +6 -0
  175. package/dist/esm/integration-icons/mailchimp.js +13 -0
  176. package/dist/esm/integration-icons/salesforce.js +11 -0
  177. package/dist/esm/integration-icons/wisepops.js +14 -0
  178. package/dist/esm/modal/index.js +27 -13
  179. package/dist/esm/modal/style.scss +47 -13
  180. package/dist/esm/newspack-icon/index.js +40 -25
  181. package/dist/esm/newspack-icon/style.scss +5 -3
  182. package/dist/esm/notice/index.js +59 -42
  183. package/dist/esm/plugin-installer/index.js +255 -243
  184. package/dist/esm/plugin-settings/SettingsSection.js +61 -50
  185. package/dist/esm/plugin-settings/index.js +212 -189
  186. package/dist/esm/plugin-toggle/index.js +187 -190
  187. package/dist/esm/popover/index.js +35 -16
  188. package/dist/esm/position-control/index.js +22 -18
  189. package/dist/esm/progress-bar/index.js +66 -49
  190. package/dist/esm/progress-bar/index.test.js +61 -67
  191. package/dist/esm/radio-control/index.js +34 -15
  192. package/dist/esm/section-header/index.js +140 -38
  193. package/dist/esm/section-header/style.scss +129 -4
  194. package/dist/esm/select-control/ButtonGroupControl.js +23 -18
  195. package/dist/esm/select-control/GroupedSelectControl.js +38 -30
  196. package/dist/esm/select-control/index.js +47 -27
  197. package/dist/esm/settings/MinMaxSetting.js +27 -16
  198. package/dist/esm/settings/SettingsCard.js +18 -13
  199. package/dist/esm/settings/SettingsSection.js +20 -19
  200. package/dist/esm/settings/index.js +3 -3
  201. package/dist/esm/sortable-newsletter-list-control/index.js +74 -53
  202. package/dist/esm/steps-list/index.js +39 -21
  203. package/dist/esm/steps-list-item/index.js +42 -26
  204. package/dist/esm/style-card/index.js +65 -50
  205. package/dist/esm/style.scss +2 -0
  206. package/dist/esm/tabbed-navigation/index.js +35 -33
  207. package/dist/esm/text-control/index.js +25 -19
  208. package/dist/esm/utils/color.js +4 -4
  209. package/dist/esm/utils/editor-toolbar-back-button.js +53 -0
  210. package/dist/esm/utils/index.js +29 -16
  211. package/dist/esm/utils/style.scss +8 -0
  212. package/dist/esm/waiting/index.js +43 -22
  213. package/dist/esm/waiting/style.scss +4 -0
  214. package/dist/esm/web-preview/index.js +218 -147
  215. package/dist/esm/web-preview/style.scss +20 -53
  216. package/dist/esm/with-wizard/index.js +360 -358
  217. package/dist/esm/with-wizard/style.scss +28 -60
  218. package/dist/esm/with-wizard-screen/index.js +48 -46
  219. package/dist/esm/with-wizard-screen/style.scss +77 -10
  220. package/dist/esm/wizard/components/WizardError.js +18 -16
  221. package/dist/esm/wizard/components/WizardSnackbar.js +70 -0
  222. package/dist/esm/wizard/components/style.scss +48 -0
  223. package/dist/esm/wizard/index.js +207 -58
  224. package/dist/esm/wizard/store/index.js +189 -90
  225. package/dist/esm/wizard/store/utils.js +13 -6
  226. package/package.json +30 -17
  227. package/release.config.js +1 -0
  228. package/shared/author-context.js +26 -0
  229. package/shared/hooks/use-coauthors.js +388 -0
  230. package/shared/hooks/use-coauthors.test.js +850 -0
  231. package/shared/hooks/use-custom-byline.js +47 -0
  232. package/shared/hooks/use-custom-byline.test.js +133 -0
  233. package/shared/scss/_mixins.scss +54 -0
  234. package/src/accordion/index.js +8 -7
  235. package/src/action-card/action-card.d.ts +7 -3
  236. package/src/action-card/index.js +39 -12
  237. package/src/action-card/style.scss +25 -2
  238. package/src/autocomplete-tokenfield/index.js +2 -2
  239. package/src/autocomplete-with-latest-posts/index.js +290 -0
  240. package/src/autocomplete-with-latest-posts/style.scss +150 -0
  241. package/src/badge/index.tsx +26 -0
  242. package/src/badge/style.scss +36 -0
  243. package/src/button/index.tsx +3 -2
  244. package/src/card/core-card.js +224 -0
  245. package/src/card/index.js +40 -1
  246. package/src/card/style-core.scss +295 -0
  247. package/src/card/style.scss +4 -4
  248. package/src/card-feature/README.md +188 -0
  249. package/src/card-feature/index.tsx +186 -0
  250. package/src/card-feature/style.scss +75 -0
  251. package/src/card-form/README.md +113 -0
  252. package/src/card-form/index.tsx +128 -0
  253. package/src/card-form/style.scss +20 -0
  254. package/src/card-settings-group/README.md +43 -0
  255. package/src/card-settings-group/index.tsx +78 -0
  256. package/src/card-settings-group/style.scss +33 -0
  257. package/src/card-sortable-list/README.md +51 -0
  258. package/src/card-sortable-list/index.tsx +435 -0
  259. package/src/card-sortable-list/style.scss +48 -0
  260. package/src/color-picker/index.js +15 -8
  261. package/src/color-picker/index.test.js +52 -0
  262. package/src/color-picker/style.scss +11 -13
  263. package/src/confirm-dialog/README.md +128 -0
  264. package/src/confirm-dialog/index.tsx +132 -0
  265. package/src/dataviews/index.tsx +34 -0
  266. package/src/dataviews/style.scss +9 -0
  267. package/src/divider/README.md +25 -0
  268. package/src/divider/index.js +31 -0
  269. package/src/divider/style.scss +51 -0
  270. package/src/form-token-field/style.scss +0 -5
  271. package/src/grid/index.tsx +2 -1
  272. package/src/grid/style.scss +67 -8
  273. package/src/handoff/README.md +93 -0
  274. package/src/handoff/index.js +46 -8
  275. package/src/hooks/index.ts +2 -1
  276. package/src/hooks/use-confirm-dialog.tsx +80 -0
  277. package/src/hooks/use-unsaved-changes-dialog.tsx +140 -0
  278. package/src/image-upload/index.js +10 -15
  279. package/src/image-upload/style.scss +12 -40
  280. package/src/index.js +13 -1
  281. package/src/integration-icons/active-campaign.js +14 -0
  282. package/src/integration-icons/constant-contact.js +22 -0
  283. package/src/integration-icons/fundraise-up.js +18 -0
  284. package/src/integration-icons/index.js +6 -0
  285. package/src/integration-icons/mailchimp.js +10 -0
  286. package/src/integration-icons/salesforce.js +10 -0
  287. package/src/integration-icons/wisepops.js +14 -0
  288. package/src/modal/index.js +12 -3
  289. package/src/modal/style.scss +47 -13
  290. package/src/newspack-icon/style.scss +5 -3
  291. package/src/plugin-installer/index.js +30 -19
  292. package/src/section-header/index.js +105 -14
  293. package/src/section-header/style.scss +129 -4
  294. package/src/select-control/index.js +4 -0
  295. package/src/style.scss +2 -0
  296. package/src/utils/editor-toolbar-back-button.tsx +48 -0
  297. package/src/utils/index.js +6 -0
  298. package/src/utils/style.scss +8 -0
  299. package/src/waiting/index.js +2 -1
  300. package/src/waiting/style.scss +4 -0
  301. package/src/web-preview/index.js +90 -35
  302. package/src/web-preview/style.scss +20 -53
  303. package/src/with-wizard/index.js +1 -1
  304. package/src/with-wizard/style.scss +28 -60
  305. package/src/with-wizard-screen/style.scss +77 -10
  306. package/src/wizard/components/WizardSnackbar.js +58 -0
  307. package/src/wizard/components/style.scss +48 -0
  308. package/src/wizard/index.js +152 -21
  309. package/src/wizard/store/index.js +28 -2
  310. package/dist/cjs/button-card/index.js +0 -72
  311. package/dist/cjs/button-card/style.scss +0 -180
  312. package/dist/esm/button-card/index.js +0 -64
  313. package/dist/esm/button-card/style.scss +0 -180
  314. package/src/button-card/index.js +0 -52
  315. package/src/button-card/style.scss +0 -180
@@ -4,221 +4,214 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports["default"] = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
14
  var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
9
15
  var _element = require("@wordpress/element");
10
16
  var _i18n = require("@wordpress/i18n");
11
17
  var _ = require("../");
12
18
  require("./style.scss");
13
19
  var _jsxRuntime = require("react/jsx-runtime");
14
- /**
20
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
23
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /**
15
24
  * WordPress dependencies.
16
- */
17
-
18
- /**
25
+ */ /**
19
26
  * Internal dependencies.
20
- */
21
-
22
- /**
27
+ */ /**
23
28
  * Plugin toggle group component.
24
- */class PluginToggle extends _element.Component {
25
- state = {
26
- pluginInfo: {}
27
- };
28
- componentDidMount = () => {
29
- this.retrievePluginInfo();
30
- };
31
-
32
- /**
33
- * Retrieve complete data about Newspack plugins.
34
- */
35
- retrievePluginInfo = () => {
36
- return new Promise(() => {
37
- (0, _apiFetch.default)({
38
- path: '/newspack/v1/plugins/'
39
- }).then(pluginInfo => this.setState({
40
- pluginInfo
41
- }));
29
+ */
30
+ var PluginToggle = /*#__PURE__*/function (_Component) {
31
+ function PluginToggle() {
32
+ var _this;
33
+ (0, _classCallCheck2["default"])(this, PluginToggle);
34
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
35
+ args[_key] = arguments[_key];
36
+ }
37
+ _this = _callSuper(this, PluginToggle, [].concat(args));
38
+ (0, _defineProperty2["default"])(_this, "state", {
39
+ pluginInfo: {}
42
40
  });
43
- };
44
-
45
- /**
46
- * Install/activate or remove a plugin.
47
- */
48
- managePlugin = (plugin, value) => {
49
- const {
50
- plugins
51
- } = this.props;
52
- const {
53
- pluginInfo
54
- } = this.state;
55
- const action = value ? 'configure' : 'deactivate';
56
- const params = {
57
- path: `/newspack/v1/plugins/${plugin}/${action}/`,
58
- method: 'post'
59
- };
60
- this.setState({
61
- pluginInfo: {
62
- ...pluginInfo,
63
- [plugin]: {
64
- ...pluginInfo[plugin],
41
+ (0, _defineProperty2["default"])(_this, "componentDidMount", function () {
42
+ _this.retrievePluginInfo();
43
+ });
44
+ /**
45
+ * Retrieve complete data about Newspack plugins.
46
+ */
47
+ (0, _defineProperty2["default"])(_this, "retrievePluginInfo", function () {
48
+ return new Promise(function () {
49
+ (0, _apiFetch["default"])({
50
+ path: '/newspack/v1/plugins/'
51
+ }).then(function (pluginInfo) {
52
+ return _this.setState({
53
+ pluginInfo: pluginInfo
54
+ });
55
+ });
56
+ });
57
+ });
58
+ /**
59
+ * Install/activate or remove a plugin.
60
+ */
61
+ (0, _defineProperty2["default"])(_this, "managePlugin", function (plugin, value) {
62
+ var plugins = _this.props.plugins;
63
+ var pluginInfo = _this.state.pluginInfo;
64
+ var action = value ? 'configure' : 'deactivate';
65
+ var params = {
66
+ path: "/newspack/v1/plugins/".concat(plugin, "/").concat(action, "/"),
67
+ method: 'post'
68
+ };
69
+ _this.setState({
70
+ pluginInfo: _objectSpread(_objectSpread({}, pluginInfo), {}, (0, _defineProperty2["default"])({}, plugin, _objectSpread(_objectSpread({}, pluginInfo[plugin]), {}, {
65
71
  inFlight: action
66
- }
67
- }
68
- }, () => {
69
- (0, _apiFetch.default)(params).then(response => {
70
- const {
71
- shouldRefreshAfterUpdate
72
- } = plugins[plugin];
73
- this.setState(({
74
- pluginInfo: currentPluginInfo
75
- }) => ({
76
- pluginInfo: {
77
- ...currentPluginInfo,
78
- [plugin]: response
79
- }
80
- }), () => shouldRefreshAfterUpdate && location.reload());
81
- }).catch(e => {
82
- this.setState({
83
- pluginInfo: {
84
- ...pluginInfo,
85
- [plugin]: {
86
- ...pluginInfo[plugin],
72
+ })))
73
+ }, function () {
74
+ (0, _apiFetch["default"])(params).then(function (response) {
75
+ var shouldRefreshAfterUpdate = plugins[plugin].shouldRefreshAfterUpdate;
76
+ _this.setState(function (_ref) {
77
+ var currentPluginInfo = _ref.pluginInfo;
78
+ return {
79
+ pluginInfo: _objectSpread(_objectSpread({}, currentPluginInfo), {}, (0, _defineProperty2["default"])({}, plugin, response))
80
+ };
81
+ }, function () {
82
+ return shouldRefreshAfterUpdate && location.reload();
83
+ });
84
+ })["catch"](function (e) {
85
+ _this.setState({
86
+ pluginInfo: _objectSpread(_objectSpread({}, pluginInfo), {}, (0, _defineProperty2["default"])({}, plugin, _objectSpread(_objectSpread({}, pluginInfo[plugin]), {}, {
87
87
  error: e.message || (0, _i18n.__)('There was an error managing this plugin.', 'newspack-plugin')
88
- }
89
- }
88
+ })))
89
+ });
90
90
  });
91
91
  });
92
92
  });
93
- };
94
-
95
- /**
96
- * Render.
97
- */
98
- render() {
99
- const {
100
- plugins
101
- } = this.props;
102
- const {
103
- pluginInfo
104
- } = this.state;
105
- return this.prepareDataForRender(plugins, pluginInfo).map((plugin, index) => {
106
- var _plugin$onClick;
107
- const {
108
- name,
109
- description,
110
- href,
111
- slug,
112
- editPath
113
- } = plugin;
114
- const pluginStatus = this.isPluginInstalledAndActive(plugin);
115
- const handoff = !href && pluginStatus && editPath ? slug : null;
116
- const error = this.errorForPlugin(plugin);
117
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_.ActionCard, {
118
- className: this.classNameForPlugin(plugin),
119
- title: name,
120
- description: description,
121
- actionText: this.actionTextForPlugin(plugin),
122
- handoff: handoff,
123
- onClick: (_plugin$onClick = plugin.onClick) !== null && _plugin$onClick !== void 0 ? _plugin$onClick : null,
124
- href: href,
125
- toggle: true,
126
- toggleChecked: this.isPluginInstalledAndActive(plugin),
127
- toggleOnChange: value => this.managePlugin(slug, value),
128
- notification: error,
129
- notificationHTML: error,
130
- notificationLevel: "error"
131
- }, index);
93
+ /**
94
+ * Prepare plugins data for render. Change all keys to camelCase, merge API-fetched data with prop.
95
+ */
96
+ (0, _defineProperty2["default"])(_this, "prepareDataForRender", function (pluginsFromProps, pluginsFromAPI) {
97
+ return Object.keys(pluginsFromProps).map(function (pluginSlug) {
98
+ return pluginsFromAPI[pluginSlug] ? Object.keys(pluginsFromAPI[pluginSlug]).reduce(function (accumulator, key) {
99
+ return _objectSpread(_objectSpread({}, accumulator), {}, (0, _defineProperty2["default"])({}, key.charAt(0).toLowerCase() + key.slice(1), pluginsFromAPI[pluginSlug][key]));
100
+ }, {}) : {};
101
+ }).map(function (plugin) {
102
+ return Object.assign(plugin, pluginsFromProps[plugin.slug]);
103
+ });
104
+ });
105
+ /**
106
+ * Generate a classname for the ActionCard based on plugin state. Applies 'in-flight' class if an API is underway and 'loading' if the plugin data is not yet available.
107
+ */
108
+ (0, _defineProperty2["default"])(_this, "classNameForPlugin", function (plugin) {
109
+ var status = plugin.status,
110
+ inFlight = plugin.inFlight;
111
+ if (inFlight) {
112
+ return 'in-flight';
113
+ }
114
+ if (!status) {
115
+ return 'loading';
116
+ }
117
+ });
118
+ /**
119
+ * Generate the ActionCard action text for a plugin.
120
+ */
121
+ (0, _defineProperty2["default"])(_this, "actionTextForPlugin", function (plugin) {
122
+ var actionText = plugin.actionText,
123
+ editPath = plugin.editPath,
124
+ href = plugin.href,
125
+ inFlight = plugin.inFlight,
126
+ name = plugin.name;
127
+ // Show spinner when plugin data is unavailable, or when an API call is in flight.
128
+ if ('configure' === inFlight) {
129
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_element.Fragment, {
130
+ children: [(0, _i18n.__)('Installing…', 'newspack-plugin'), " ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Waiting, {
131
+ isRight: true
132
+ })]
133
+ });
134
+ }
135
+ if ('deactivate' === inFlight) {
136
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_element.Fragment, {
137
+ children: [(0, _i18n.__)('Deactivating…', 'newspack-plugin'), " ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Waiting, {
138
+ isRight: true
139
+ })]
140
+ });
141
+ }
142
+ if (!name) {
143
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_element.Fragment, {
144
+ children: [(0, _i18n.__)('Loading…', 'newspack-plugin'), " ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Waiting, {
145
+ isRight: true
146
+ })]
147
+ });
148
+ }
149
+ // No action button at all if the plugin isn't installed and active.
150
+ if (!_this.isPluginInstalledAndActive(plugin)) {
151
+ return null;
152
+ }
153
+ if (href || editPath) {
154
+ return actionText ? actionText : (0, _i18n.__)('Configure', 'newspack-plugin');
155
+ }
132
156
  });
157
+ /**
158
+ * Get error message for this plugin.
159
+ */
160
+ (0, _defineProperty2["default"])(_this, "errorForPlugin", function (plugin) {
161
+ var _pluginInfo$slug;
162
+ var slug = plugin.slug;
163
+ var pluginInfo = _this.state.pluginInfo;
164
+ return ((_pluginInfo$slug = pluginInfo[slug]) === null || _pluginInfo$slug === void 0 ? void 0 : _pluginInfo$slug.error) || null;
165
+ });
166
+ /**
167
+ * Get installation/activation status for a plugin.
168
+ */
169
+ (0, _defineProperty2["default"])(_this, "isPluginInstalledAndActive", function (plugin) {
170
+ var status = plugin.status;
171
+ return status === 'active';
172
+ });
173
+ return _this;
133
174
  }
134
-
135
- /**
136
- * Prepare plugins data for render. Change all keys to camelCase, merge API-fetched data with prop.
137
- */
138
- prepareDataForRender = (pluginsFromProps, pluginsFromAPI) => Object.keys(pluginsFromProps).map(pluginSlug => pluginsFromAPI[pluginSlug] ? Object.keys(pluginsFromAPI[pluginSlug]).reduce((accumulator, key) => ({
139
- ...accumulator,
140
- [key.charAt(0).toLowerCase() + key.slice(1)]: pluginsFromAPI[pluginSlug][key]
141
- }), {}) : {}).map(plugin => Object.assign(plugin, pluginsFromProps[plugin.slug]));
142
-
143
- /**
144
- * Generate a classname for the ActionCard based on plugin state. Applies 'in-flight' class if an API is underway and 'loading' if the plugin data is not yet available.
145
- */
146
- classNameForPlugin = plugin => {
147
- const {
148
- status,
149
- inFlight
150
- } = plugin;
151
- if (inFlight) {
152
- return 'in-flight';
153
- }
154
- if (!status) {
155
- return 'loading';
156
- }
157
- };
158
-
159
- /**
160
- * Generate the ActionCard action text for a plugin.
161
- */
162
- actionTextForPlugin = plugin => {
163
- const {
164
- actionText,
165
- editPath,
166
- href,
167
- inFlight,
168
- name
169
- } = plugin;
170
- // Show spinner when plugin data is unavailable, or when an API call is in flight.
171
- if ('configure' === inFlight) {
172
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_element.Fragment, {
173
- children: [(0, _i18n.__)('Installing…', 'newspack-plugin'), " ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Waiting, {
174
- isRight: true
175
- })]
176
- });
177
- }
178
- if ('deactivate' === inFlight) {
179
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_element.Fragment, {
180
- children: [(0, _i18n.__)('Deactivating…', 'newspack-plugin'), " ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Waiting, {
181
- isRight: true
182
- })]
183
- });
184
- }
185
- if (!name) {
186
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_element.Fragment, {
187
- children: [(0, _i18n.__)('Loading…', 'newspack-plugin'), " ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Waiting, {
188
- isRight: true
189
- })]
175
+ (0, _inherits2["default"])(PluginToggle, _Component);
176
+ return (0, _createClass2["default"])(PluginToggle, [{
177
+ key: "render",
178
+ value:
179
+ /**
180
+ * Render.
181
+ */
182
+ function render() {
183
+ var _this2 = this;
184
+ var plugins = this.props.plugins;
185
+ var pluginInfo = this.state.pluginInfo;
186
+ return this.prepareDataForRender(plugins, pluginInfo).map(function (plugin, index) {
187
+ var _plugin$onClick;
188
+ var name = plugin.name,
189
+ description = plugin.description,
190
+ href = plugin.href,
191
+ slug = plugin.slug,
192
+ editPath = plugin.editPath;
193
+ var pluginStatus = _this2.isPluginInstalledAndActive(plugin);
194
+ var handoff = !href && pluginStatus && editPath ? slug : null;
195
+ var error = _this2.errorForPlugin(plugin);
196
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_.ActionCard, {
197
+ className: _this2.classNameForPlugin(plugin),
198
+ title: name,
199
+ description: description,
200
+ actionText: _this2.actionTextForPlugin(plugin),
201
+ handoff: handoff,
202
+ onClick: (_plugin$onClick = plugin.onClick) !== null && _plugin$onClick !== void 0 ? _plugin$onClick : null,
203
+ href: href,
204
+ toggle: true,
205
+ toggleChecked: _this2.isPluginInstalledAndActive(plugin),
206
+ toggleOnChange: function toggleOnChange(value) {
207
+ return _this2.managePlugin(slug, value);
208
+ },
209
+ notification: error,
210
+ notificationHTML: error,
211
+ notificationLevel: "error"
212
+ }, index);
190
213
  });
191
214
  }
192
- // No action button at all if the plugin isn't installed and active.
193
- if (!this.isPluginInstalledAndActive(plugin)) {
194
- return null;
195
- }
196
- if (href || editPath) {
197
- return actionText ? actionText : (0, _i18n.__)('Configure', 'newspack-plugin');
198
- }
199
- };
200
-
201
- /**
202
- * Get error message for this plugin.
203
- */
204
- errorForPlugin = plugin => {
205
- const {
206
- slug
207
- } = plugin;
208
- const {
209
- pluginInfo
210
- } = this.state;
211
- return pluginInfo[slug]?.error || null;
212
- };
213
-
214
- /**
215
- * Get installation/activation status for a plugin.
216
- */
217
- isPluginInstalledAndActive = plugin => {
218
- const {
219
- status
220
- } = plugin;
221
- return status === 'active';
222
- };
223
- }
224
- var _default = exports.default = PluginToggle;
215
+ }]);
216
+ }(_element.Component);
217
+ var _default = exports["default"] = PluginToggle;
@@ -4,44 +4,57 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports["default"] = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
8
15
  var _components = require("@wordpress/components");
9
16
  var _element = require("@wordpress/element");
10
17
  require("./style.scss");
11
18
  var _classnames = _interopRequireDefault(require("classnames"));
12
19
  var _jsxRuntime = require("react/jsx-runtime");
13
- /**
20
+ var _excluded = ["className", "padding"];
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
24
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /**
14
25
  * WordPress dependencies
15
- */
16
-
17
- /**
26
+ */ /**
18
27
  * Internal dependencies
19
- */
20
-
21
- /**
28
+ */ /**
22
29
  * External dependencies
23
- */
24
-
25
- /**
30
+ */ /**
26
31
  * Popover
27
- */class Popover extends _element.Component {
28
- /**
29
- * Render
30
- */
31
- render() {
32
- const {
33
- className,
34
- padding,
35
- ...otherProps
36
- } = this.props;
37
- const classes = (0, _classnames.default)('newspack-popover', padding && 'newspack-popover__padding-' + padding, className);
38
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Popover, {
39
- className: classes,
40
- ...otherProps
41
- });
32
+ */
33
+ var Popover = /*#__PURE__*/function (_Component) {
34
+ function Popover() {
35
+ (0, _classCallCheck2["default"])(this, Popover);
36
+ return _callSuper(this, Popover, arguments);
42
37
  }
43
- }
38
+ (0, _inherits2["default"])(Popover, _Component);
39
+ return (0, _createClass2["default"])(Popover, [{
40
+ key: "render",
41
+ value:
42
+ /**
43
+ * Render
44
+ */
45
+ function render() {
46
+ var _this$props = this.props,
47
+ className = _this$props.className,
48
+ padding = _this$props.padding,
49
+ otherProps = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
50
+ var classes = (0, _classnames["default"])('newspack-popover', padding && 'newspack-popover__padding-' + padding, className);
51
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Popover, _objectSpread({
52
+ className: classes
53
+ }, otherProps));
54
+ }
55
+ }]);
56
+ }(_element.Component);
44
57
  Popover.defaultProps = {
45
58
  padding: false
46
59
  };
47
- var _default = exports.default = Popover;
60
+ var _default = exports["default"] = Popover;
@@ -4,37 +4,38 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = PositionControl;
7
+ exports["default"] = PositionControl;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
8
10
  var _i18n = require("@wordpress/i18n");
9
11
  var _components = require("@wordpress/components");
10
12
  var _classnames = _interopRequireDefault(require("classnames"));
11
13
  require("./style.scss");
12
14
  var _jsxRuntime = require("react/jsx-runtime");
15
+ var _excluded = ["allowedPositions", "value", "label", "help", "onChange", "size"];
13
16
  /**
14
17
  * WordPress dependencies
15
18
  */
16
-
17
19
  /**
18
20
  * External dependencies
19
21
  */
20
-
21
22
  /**
22
23
  * Internal dependencies
23
24
  */
24
-
25
- function PositionControl({
26
- allowedPositions,
27
- value,
28
- label,
29
- help,
30
- onChange,
31
- size,
32
- ...props
33
- }) {
25
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
27
+ function PositionControl(_ref) {
28
+ var allowedPositions = _ref.allowedPositions,
29
+ value = _ref.value,
30
+ label = _ref.label,
31
+ help = _ref.help,
32
+ onChange = _ref.onChange,
33
+ size = _ref.size,
34
+ props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
34
35
  /**
35
36
  * Set layout options
36
37
  */
37
- const options = size === 'full-width' ? [{
38
+ var options = size === 'full-width' ? [{
38
39
  value: 'top',
39
40
  /* translators: Overlay Position */
40
41
  label: (0, _i18n.__)('Top', 'newspack-plugin')
@@ -84,14 +85,14 @@ function PositionControl({
84
85
  label: (0, _i18n.__)('Bottom Right', 'newspack-plugin')
85
86
  }];
86
87
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
87
- className: (0, _classnames.default)('newspack-position-placement-control', 'size-' + size),
88
+ className: (0, _classnames["default"])('newspack-position-placement-control', 'size-' + size),
88
89
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
89
90
  className: "components-base-control__label",
90
91
  children: label
91
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ButtonGroup, {
92
- "aria-label": (0, _i18n.__)('Select Position', 'newspack-plugin'),
93
- ...props,
94
- children: options.map((option, index) => {
92
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ButtonGroup, _objectSpread(_objectSpread({
93
+ "aria-label": (0, _i18n.__)('Select Position', 'newspack-plugin')
94
+ }, props), {}, {
95
+ children: options.map(function (option, index) {
95
96
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
96
97
  className: option.value === value ? 'is-selected' : null,
97
98
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
@@ -99,14 +100,14 @@ function PositionControl({
99
100
  title: option.label,
100
101
  "aria-label": option.label,
101
102
  isPrimary: option.value === value,
102
- onClick: () => {
103
+ onClick: function onClick() {
103
104
  onChange(option.value);
104
105
  },
105
- disabled: allowedPositions?.length && !allowedPositions.includes(option.value)
106
+ disabled: (allowedPositions === null || allowedPositions === void 0 ? void 0 : allowedPositions.length) && !allowedPositions.includes(option.value)
106
107
  })
107
- }, `newspack-position-placement-item-${index}`);
108
+ }, "newspack-position-placement-item-".concat(index));
108
109
  })
109
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
110
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
110
111
  className: "components-base-control__help",
111
112
  children: help
112
113
  })]