newspack-components 3.0.0-alpha.1 → 3.0.0-alpha.3

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 (245) hide show
  1. package/babel.config.cjs.js +26 -0
  2. package/babel.config.js +26 -0
  3. package/dist/cjs/accordion/index.js +50 -0
  4. package/dist/cjs/accordion/style.scss +31 -0
  5. package/dist/cjs/action-card/index.js +38 -41
  6. package/dist/cjs/action-card/style.scss +9 -9
  7. package/dist/cjs/autocomplete-tokenfield/index.js +19 -18
  8. package/dist/cjs/autocomplete-tokenfield/style.scss +3 -3
  9. package/dist/cjs/autocomplete-with-suggestions/index.js +29 -29
  10. package/dist/cjs/autocomplete-with-suggestions/style.scss +8 -8
  11. package/dist/cjs/button/style.scss +1 -1
  12. package/dist/cjs/button-card/index.js +8 -8
  13. package/dist/cjs/button-card/style.scss +19 -13
  14. package/dist/cjs/card/index.js +3 -3
  15. package/dist/cjs/card/style.scss +1 -1
  16. package/dist/cjs/category-autocomplete/index.js +50 -48
  17. package/dist/cjs/category-autocomplete/style.scss +2 -2
  18. package/dist/cjs/color-picker/index.js +7 -7
  19. package/dist/cjs/color-picker/style.scss +3 -3
  20. package/dist/cjs/custom-select-control/index.js +3 -3
  21. package/dist/cjs/custom-select-control/style.scss +11 -10
  22. package/dist/cjs/date-range-picker/index.js +39 -0
  23. package/dist/cjs/date-range-picker/style.scss +148 -0
  24. package/dist/cjs/footer/index.js +19 -17
  25. package/dist/cjs/footer/style.scss +1 -1
  26. package/dist/cjs/form-token-field/index.js +5 -5
  27. package/dist/cjs/form-token-field/style.scss +1 -1
  28. package/dist/cjs/global-notices/index.js +3 -3
  29. package/dist/cjs/grid/style.scss +9 -9
  30. package/dist/cjs/handoff/index.js +72 -69
  31. package/dist/cjs/handoff-message/index.js +5 -3
  32. package/dist/cjs/hooks/useObjectState.js +1 -1
  33. package/dist/cjs/hooks/useObjectState.test.js +9 -9
  34. package/dist/cjs/image-upload/index.js +113 -108
  35. package/dist/cjs/image-upload/index.test.js +13 -6
  36. package/dist/cjs/image-upload/style.scss +5 -5
  37. package/dist/cjs/index.js +15 -1
  38. package/dist/cjs/info-button/index.js +5 -5
  39. package/dist/cjs/modal/index.js +3 -3
  40. package/dist/cjs/modal/style.scss +5 -5
  41. package/dist/cjs/newspack-icon/index.js +4 -4
  42. package/dist/cjs/newspack-icon/style.scss +1 -1
  43. package/dist/cjs/newspack-logo/index.js +4 -4
  44. package/dist/cjs/newspack-logo/style.scss +1 -1
  45. package/dist/cjs/notice/index.js +11 -8
  46. package/dist/cjs/notice/style.scss +11 -11
  47. package/dist/cjs/patrons-logo/index.js +58 -62
  48. package/dist/cjs/plugin-installer/index.js +139 -137
  49. package/dist/cjs/plugin-installer/style.scss +1 -1
  50. package/dist/cjs/plugin-settings/SettingsSection.js +11 -9
  51. package/dist/cjs/plugin-settings/index.js +151 -144
  52. package/dist/cjs/plugin-settings/style.scss +1 -1
  53. package/dist/cjs/plugin-toggle/index.js +159 -155
  54. package/dist/cjs/plugin-toggle/style.scss +1 -1
  55. package/dist/cjs/popover/index.js +3 -3
  56. package/dist/cjs/popover/style.scss +7 -7
  57. package/dist/cjs/position-control/index.js +24 -22
  58. package/dist/cjs/position-control/style.scss +8 -8
  59. package/dist/cjs/progress-bar/index.js +8 -8
  60. package/dist/cjs/progress-bar/index.test.js +12 -11
  61. package/dist/cjs/progress-bar/style.scss +2 -2
  62. package/dist/cjs/proxied-imports/router.js +2 -1
  63. package/dist/cjs/radio-control/index.js +3 -3
  64. package/dist/cjs/radio-control/style.scss +3 -3
  65. package/dist/cjs/section-header/index.js +8 -8
  66. package/dist/cjs/section-header/style.scss +1 -1
  67. package/dist/cjs/select-control/ButtonGroupControl.js +7 -7
  68. package/dist/cjs/select-control/GroupedSelectControl.js +15 -14
  69. package/dist/cjs/select-control/index.js +6 -6
  70. package/dist/cjs/select-control/style.scss +4 -4
  71. package/dist/cjs/settings/MinMaxSetting.js +12 -11
  72. package/dist/cjs/settings/SettingsCard.js +4 -4
  73. package/dist/cjs/settings/SettingsSection.js +6 -6
  74. package/dist/cjs/settings/index.js +1 -1
  75. package/dist/cjs/settings/style.scss +1 -1
  76. package/dist/cjs/sortable-newsletter-list-control/index.js +25 -24
  77. package/dist/cjs/steps-list/index.js +4 -4
  78. package/dist/cjs/steps-list/style.scss +2 -2
  79. package/dist/cjs/steps-list-item/index.js +5 -5
  80. package/dist/cjs/steps-list-item/style.scss +5 -5
  81. package/dist/cjs/style-card/index.js +20 -17
  82. package/dist/cjs/style-card/style.scss +4 -4
  83. package/dist/cjs/style.scss +1 -1
  84. package/dist/cjs/tabbed-navigation/index.js +7 -7
  85. package/dist/cjs/tabbed-navigation/style.scss +4 -4
  86. package/dist/cjs/utils/index.js +2 -2
  87. package/dist/cjs/waiting/index.js +3 -3
  88. package/dist/cjs/web-preview/index.js +107 -104
  89. package/dist/cjs/web-preview/style.scss +5 -5
  90. package/dist/cjs/with-wizard/index.js +250 -239
  91. package/dist/cjs/with-wizard/style.scss +44 -22
  92. package/dist/cjs/with-wizard-screen/index.js +24 -23
  93. package/dist/cjs/with-wizard-screen/style.scss +7 -7
  94. package/dist/cjs/wizard/components/WizardError.js +10 -9
  95. package/dist/cjs/wizard/index.js +30 -27
  96. package/dist/cjs/wizard/store/index.js +1 -1
  97. package/dist/esm/accordion/index.js +42 -0
  98. package/dist/esm/accordion/style.scss +31 -0
  99. package/dist/esm/action-card/index.js +37 -40
  100. package/dist/esm/action-card/style.scss +9 -9
  101. package/dist/esm/autocomplete-tokenfield/index.js +18 -17
  102. package/dist/esm/autocomplete-tokenfield/style.scss +3 -3
  103. package/dist/esm/autocomplete-with-suggestions/index.js +17 -19
  104. package/dist/esm/autocomplete-with-suggestions/style.scss +8 -8
  105. package/dist/esm/button/style.scss +1 -1
  106. package/dist/esm/button-card/index.js +7 -7
  107. package/dist/esm/button-card/style.scss +19 -13
  108. package/dist/esm/card/index.js +2 -2
  109. package/dist/esm/card/style.scss +1 -1
  110. package/dist/esm/category-autocomplete/index.js +49 -47
  111. package/dist/esm/category-autocomplete/style.scss +2 -2
  112. package/dist/esm/color-picker/index.js +6 -6
  113. package/dist/esm/color-picker/style.scss +3 -3
  114. package/dist/esm/custom-select-control/index.js +2 -2
  115. package/dist/esm/custom-select-control/style.scss +11 -10
  116. package/dist/esm/date-range-picker/index.js +31 -0
  117. package/dist/esm/date-range-picker/style.scss +148 -0
  118. package/dist/esm/footer/index.js +10 -11
  119. package/dist/esm/footer/style.scss +1 -1
  120. package/dist/esm/form-token-field/index.js +4 -4
  121. package/dist/esm/form-token-field/style.scss +1 -1
  122. package/dist/esm/global-notices/index.js +3 -3
  123. package/dist/esm/grid/style.scss +9 -9
  124. package/dist/esm/handoff/index.js +66 -67
  125. package/dist/esm/handoff-message/index.js +5 -3
  126. package/dist/esm/hooks/useObjectState.test.js +8 -8
  127. package/dist/esm/image-upload/index.js +109 -108
  128. package/dist/esm/image-upload/index.test.js +10 -4
  129. package/dist/esm/image-upload/style.scss +5 -5
  130. package/dist/esm/index.js +2 -0
  131. package/dist/esm/info-button/index.js +4 -4
  132. package/dist/esm/modal/index.js +2 -2
  133. package/dist/esm/modal/style.scss +5 -5
  134. package/dist/esm/newspack-icon/index.js +3 -3
  135. package/dist/esm/newspack-icon/style.scss +1 -1
  136. package/dist/esm/newspack-logo/index.js +3 -3
  137. package/dist/esm/newspack-logo/style.scss +1 -1
  138. package/dist/esm/notice/index.js +6 -7
  139. package/dist/esm/notice/style.scss +11 -11
  140. package/dist/esm/patrons-logo/index.js +57 -62
  141. package/dist/esm/plugin-installer/index.js +133 -134
  142. package/dist/esm/plugin-installer/style.scss +1 -1
  143. package/dist/esm/plugin-settings/SettingsSection.js +8 -9
  144. package/dist/esm/plugin-settings/index.js +147 -143
  145. package/dist/esm/plugin-settings/style.scss +1 -1
  146. package/dist/esm/plugin-toggle/index.js +156 -153
  147. package/dist/esm/plugin-toggle/style.scss +1 -1
  148. package/dist/esm/popover/index.js +2 -2
  149. package/dist/esm/popover/style.scss +7 -7
  150. package/dist/esm/position-control/index.js +8 -9
  151. package/dist/esm/position-control/style.scss +8 -8
  152. package/dist/esm/progress-bar/index.js +8 -8
  153. package/dist/esm/progress-bar/index.test.js +9 -10
  154. package/dist/esm/progress-bar/style.scss +2 -2
  155. package/dist/esm/radio-control/index.js +2 -2
  156. package/dist/esm/radio-control/style.scss +3 -3
  157. package/dist/esm/section-header/index.js +7 -7
  158. package/dist/esm/section-header/style.scss +1 -1
  159. package/dist/esm/select-control/ButtonGroupControl.js +6 -6
  160. package/dist/esm/select-control/GroupedSelectControl.js +10 -11
  161. package/dist/esm/select-control/index.js +5 -5
  162. package/dist/esm/select-control/style.scss +4 -4
  163. package/dist/esm/settings/MinMaxSetting.js +9 -10
  164. package/dist/esm/settings/SettingsCard.js +3 -3
  165. package/dist/esm/settings/SettingsSection.js +6 -6
  166. package/dist/esm/settings/style.scss +1 -1
  167. package/dist/esm/sortable-newsletter-list-control/index.js +19 -20
  168. package/dist/esm/steps-list/index.js +3 -3
  169. package/dist/esm/steps-list/style.scss +2 -2
  170. package/dist/esm/steps-list-item/index.js +4 -4
  171. package/dist/esm/steps-list-item/style.scss +5 -5
  172. package/dist/esm/style-card/index.js +11 -12
  173. package/dist/esm/style-card/style.scss +4 -4
  174. package/dist/esm/style.scss +1 -1
  175. package/dist/esm/tabbed-navigation/index.js +6 -6
  176. package/dist/esm/tabbed-navigation/style.scss +4 -4
  177. package/dist/esm/utils/index.js +2 -2
  178. package/dist/esm/waiting/index.js +2 -2
  179. package/dist/esm/web-preview/index.js +103 -103
  180. package/dist/esm/web-preview/style.scss +5 -5
  181. package/dist/esm/with-wizard/index.js +248 -239
  182. package/dist/esm/with-wizard/style.scss +44 -22
  183. package/dist/esm/with-wizard-screen/index.js +19 -20
  184. package/dist/esm/with-wizard-screen/style.scss +7 -7
  185. package/dist/esm/wizard/components/WizardError.js +7 -8
  186. package/dist/esm/wizard/index.js +23 -24
  187. package/package.json +21 -15
  188. package/shared/scss/_mixins.scss +2 -2
  189. package/src/accordion/index.js +35 -0
  190. package/src/accordion/style.scss +31 -0
  191. package/src/action-card/style.scss +9 -9
  192. package/src/autocomplete-tokenfield/style.scss +3 -3
  193. package/src/autocomplete-with-suggestions/index.js +46 -44
  194. package/src/autocomplete-with-suggestions/style.scss +8 -8
  195. package/src/button/style.scss +1 -1
  196. package/src/button-card/style.scss +19 -13
  197. package/src/card/style.scss +1 -1
  198. package/src/category-autocomplete/style.scss +2 -2
  199. package/src/color-picker/style.scss +3 -3
  200. package/src/custom-select-control/style.scss +11 -10
  201. package/src/date-range-picker/index.js +31 -0
  202. package/src/date-range-picker/style.scss +148 -0
  203. package/src/footer/style.scss +1 -1
  204. package/src/form-token-field/style.scss +1 -1
  205. package/src/grid/style.scss +9 -9
  206. package/src/handoff-message/index.js +3 -1
  207. package/src/image-upload/index.js +1 -1
  208. package/src/image-upload/index.test.js +6 -1
  209. package/src/image-upload/style.scss +5 -5
  210. package/src/index.js +2 -0
  211. package/src/modal/style.scss +5 -5
  212. package/src/newspack-icon/style.scss +1 -1
  213. package/src/newspack-logo/style.scss +1 -1
  214. package/src/notice/style.scss +11 -11
  215. package/src/plugin-installer/style.scss +1 -1
  216. package/src/plugin-settings/style.scss +1 -1
  217. package/src/plugin-toggle/index.js +6 -7
  218. package/src/plugin-toggle/style.scss +1 -1
  219. package/src/popover/style.scss +7 -7
  220. package/src/position-control/index.js +62 -63
  221. package/src/position-control/style.scss +8 -8
  222. package/src/progress-bar/style.scss +2 -2
  223. package/src/radio-control/style.scss +3 -3
  224. package/src/section-header/style.scss +1 -1
  225. package/src/select-control/style.scss +4 -4
  226. package/src/settings/style.scss +1 -1
  227. package/src/steps-list/style.scss +2 -2
  228. package/src/steps-list-item/style.scss +5 -5
  229. package/src/style-card/style.scss +4 -4
  230. package/src/style.scss +1 -1
  231. package/src/tabbed-navigation/index.js +1 -1
  232. package/src/tabbed-navigation/style.scss +4 -4
  233. package/src/web-preview/style.scss +5 -5
  234. package/src/with-wizard/style.scss +44 -22
  235. package/src/with-wizard-screen/style.scss +7 -7
  236. package/dist/cjs/button/index.js +0 -56
  237. package/dist/cjs/grid/index.js +0 -37
  238. package/dist/cjs/hooks/index.js +0 -25
  239. package/dist/cjs/hooks/usePrompt.js +0 -49
  240. package/dist/cjs/text-control/index.js +0 -61
  241. package/dist/esm/button/index.js +0 -48
  242. package/dist/esm/grid/index.js +0 -29
  243. package/dist/esm/hooks/index.js +0 -17
  244. package/dist/esm/hooks/usePrompt.js +0 -40
  245. package/dist/esm/text-control/index.js +0 -57
@@ -1,178 +1,185 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _classnames = _interopRequireDefault(require("classnames"));
10
9
  var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
11
10
  var _element = require("@wordpress/element");
12
11
  var _i18n = require("@wordpress/i18n");
13
12
  var _ = require("../");
14
13
  var _SettingsSection = _interopRequireDefault(require("./SettingsSection"));
15
- var _jsxRuntime = require("@emotion/react/jsx-runtime");
14
+ var _jsxRuntime = require("react/jsx-runtime");
16
15
  /**
17
16
  * External dependencies
18
17
  */
18
+
19
19
  /**
20
20
  * WordPress dependencies.
21
21
  */
22
+
22
23
  /**
23
24
  * Internal dependencies.
24
25
  */
25
- const __ = _i18n.__;
26
+
26
27
  class PluginSettings extends _element.Component {
27
28
  constructor() {
28
29
  super(...arguments);
29
- (0, _defineProperty2.default)(this, "fetchSettings", () => {
30
- const {
31
- afterFetch,
32
- pluginSlug,
33
- isWizard
34
- } = this.props;
30
+ this.state = {
31
+ inFlight: false,
32
+ settings: {},
33
+ error: null
34
+ };
35
+ }
36
+ fetchSettings = () => {
37
+ const {
38
+ afterFetch,
39
+ pluginSlug,
40
+ isWizard
41
+ } = this.props;
42
+ this.setState({
43
+ inFlight: true
44
+ });
45
+ (0, _apiFetch.default)({
46
+ path: isWizard ? `/newspack/v1/wizard/${pluginSlug}/settings` : `/${pluginSlug}/v1/settings`
47
+ }).then(settings => {
35
48
  this.setState({
36
- inFlight: true
49
+ settings,
50
+ error: null
37
51
  });
38
- (0, _apiFetch.default)({
39
- path: isWizard ? `/newspack/v1/wizard/${pluginSlug}/settings` : `/${pluginSlug}/v1/settings`
40
- }).then(settings => {
41
- this.setState({
42
- settings,
43
- error: null
44
- });
45
- if ('function' === typeof afterFetch) {
46
- afterFetch(settings);
47
- }
48
- }).catch(error => {
49
- this.setState({
50
- error
51
- });
52
- }).finally(() => {
53
- this.setState({
54
- inFlight: false
55
- });
52
+ if ('function' === typeof afterFetch) {
53
+ afterFetch(settings);
54
+ }
55
+ }).catch(error => {
56
+ this.setState({
57
+ error
58
+ });
59
+ }).finally(() => {
60
+ this.setState({
61
+ inFlight: false
56
62
  });
57
63
  });
58
- (0, _defineProperty2.default)(this, "getSettingsValues", sectionKey => {
59
- return this.state.settings[sectionKey]?.reduce((map, setting) => {
60
- map[setting.key] = setting.value;
61
- return map;
62
- }, {}) || {};
64
+ };
65
+ componentDidMount() {
66
+ this.fetchSettings();
67
+ }
68
+ getSettingsValues = sectionKey => {
69
+ return this.state.settings[sectionKey]?.reduce((map, setting) => {
70
+ map[setting.key] = setting.value;
71
+ return map;
72
+ }, {}) || {};
73
+ };
74
+ handleSettingChange = sectionKey => (key, value) => {
75
+ const sectionSettings = [...this.state.settings[sectionKey]];
76
+ sectionSettings.forEach(setting => {
77
+ if (setting.key === key) {
78
+ setting.value = value;
79
+ }
63
80
  });
64
- (0, _defineProperty2.default)(this, "handleSettingChange", sectionKey => (key, value) => {
65
- const sectionSettings = [...this.state.settings[sectionKey]];
66
- sectionSettings.forEach(setting => {
67
- if (setting.key === key) {
68
- setting.value = value;
69
- }
70
- });
81
+ this.setState({
82
+ settings: {
83
+ ...this.state.settings,
84
+ [sectionKey]: sectionSettings
85
+ }
86
+ });
87
+ };
88
+ handleSectionUpdate = sectionKey => data => {
89
+ const {
90
+ afterUpdate,
91
+ pluginSlug,
92
+ isWizard
93
+ } = this.props;
94
+ this.setState({
95
+ inFlight: true
96
+ });
97
+ (0, _apiFetch.default)({
98
+ path: isWizard ? `/newspack/v1/wizard/${pluginSlug}/settings` : `/${pluginSlug}/v1/settings`,
99
+ method: 'POST',
100
+ data: {
101
+ section: sectionKey,
102
+ settings: data ? data : this.getSettingsValues(sectionKey)
103
+ }
104
+ }).then(settings => {
71
105
  this.setState({
72
106
  settings: {
73
107
  ...this.state.settings,
74
- [sectionKey]: sectionSettings
75
- }
108
+ [sectionKey]: settings[sectionKey]
109
+ },
110
+ error: null
76
111
  });
77
- });
78
- (0, _defineProperty2.default)(this, "handleSectionUpdate", sectionKey => data => {
79
- const {
80
- afterUpdate,
81
- pluginSlug,
82
- isWizard
83
- } = this.props;
112
+ if ('function' === typeof afterUpdate) {
113
+ afterUpdate(settings);
114
+ }
115
+ }).catch(error => {
84
116
  this.setState({
85
- inFlight: true
117
+ error
86
118
  });
87
- (0, _apiFetch.default)({
88
- path: isWizard ? `/newspack/v1/wizard/${pluginSlug}/settings` : `/${pluginSlug}/v1/settings`,
89
- method: 'POST',
90
- data: {
91
- section: sectionKey,
92
- settings: data ? data : this.getSettingsValues(sectionKey)
93
- }
94
- }).then(settings => {
95
- this.setState({
96
- settings: {
97
- ...this.state.settings,
98
- [sectionKey]: settings[sectionKey]
99
- },
100
- error: null
101
- });
102
- if ('function' === typeof afterUpdate) {
103
- afterUpdate(settings);
104
- }
105
- }).catch(error => {
106
- this.setState({
107
- error
108
- });
109
- }).finally(() => {
110
- this.setState({
111
- inFlight: false
112
- });
119
+ }).finally(() => {
120
+ this.setState({
121
+ inFlight: false
113
122
  });
114
123
  });
115
- /**
116
- * Get the section setting containing section information.
117
- *
118
- * @param {string} sectionKey The section name.
119
- * @return {Object} The section setting.
120
- */
121
- (0, _defineProperty2.default)(this, "getSectionInfo", sectionKey => {
122
- return this.state.settings[sectionKey]?.find(setting => !setting.key || setting.key === 'active');
123
- });
124
- /**
125
- * Get the section title.
126
- *
127
- * @param {string} sectionKey The section name.
128
- * @return {string} The section title.
129
- */
130
- (0, _defineProperty2.default)(this, "getSectionTitle", sectionKey => {
131
- return this.getSectionInfo(sectionKey)?.description;
132
- });
133
- /**
134
- * Get the section description.
135
- *
136
- * @param {string} sectionKey The section name.
137
- * @return {string} The section description.
138
- */
139
- (0, _defineProperty2.default)(this, "getSectionDescription", sectionKey => {
140
- return this.getSectionInfo(sectionKey)?.help;
141
- });
142
- /**
143
- * Get whether a section is active.
144
- *
145
- * @param {string} sectionKey The section name.
146
- * @return {?boolean} Whether the section is active or not. Null if the section is not found or does not support activation.
147
- */
148
- (0, _defineProperty2.default)(this, "isSectionActive", sectionKey => {
149
- const {
150
- settings
151
- } = this.state;
152
- const activation = settings[sectionKey]?.find(setting => setting.key === 'active');
153
- if (!activation) {
154
- return null;
155
- }
156
- return activation.value;
157
- });
158
- /**
159
- * Get list of section field settings.
160
- *
161
- * @param {string} sectionKey The section name.
162
- * @return {?Array} List of section fields.
163
- */
164
- (0, _defineProperty2.default)(this, "getSectionFields", sectionKey => {
165
- return this.state.settings[sectionKey]?.filter(setting => setting.key && setting.key !== 'active');
166
- });
167
- this.state = {
168
- inFlight: false,
169
- settings: {},
170
- error: null
171
- };
172
- }
173
- componentDidMount() {
174
- this.fetchSettings();
175
- }
124
+ };
125
+
126
+ /**
127
+ * Get the section setting containing section information.
128
+ *
129
+ * @param {string} sectionKey The section name.
130
+ * @return {Object} The section setting.
131
+ */
132
+ getSectionInfo = sectionKey => {
133
+ return this.state.settings[sectionKey]?.find(setting => !setting.key || setting.key === 'active');
134
+ };
135
+
136
+ /**
137
+ * Get the section title.
138
+ *
139
+ * @param {string} sectionKey The section name.
140
+ * @return {string} The section title.
141
+ */
142
+ getSectionTitle = sectionKey => {
143
+ return this.getSectionInfo(sectionKey)?.description;
144
+ };
145
+
146
+ /**
147
+ * Get the section description.
148
+ *
149
+ * @param {string} sectionKey The section name.
150
+ * @return {string} The section description.
151
+ */
152
+ getSectionDescription = sectionKey => {
153
+ return this.getSectionInfo(sectionKey)?.help;
154
+ };
155
+
156
+ /**
157
+ * Get whether a section is active.
158
+ *
159
+ * @param {string} sectionKey The section name.
160
+ * @return {?boolean} Whether the section is active or not. Null if the section is not found or does not support activation.
161
+ */
162
+ isSectionActive = sectionKey => {
163
+ const {
164
+ settings
165
+ } = this.state;
166
+ const activation = settings[sectionKey]?.find(setting => setting.key === 'active');
167
+ if (!activation) {
168
+ return null;
169
+ }
170
+ return activation.value;
171
+ };
172
+
173
+ /**
174
+ * Get list of section field settings.
175
+ *
176
+ * @param {string} sectionKey The section name.
177
+ * @return {?Array} List of section fields.
178
+ */
179
+ getSectionFields = sectionKey => {
180
+ return this.state.settings[sectionKey]?.filter(setting => setting.key && setting.key !== 'active');
181
+ };
182
+
176
183
  /**
177
184
  * Render.
178
185
  */
@@ -188,18 +195,18 @@ class PluginSettings extends _element.Component {
188
195
  inFlight,
189
196
  error
190
197
  } = this.state;
191
- return (0, _jsxRuntime.jsxs)(_element.Fragment, {
192
- children: [title && (0, _jsxRuntime.jsx)(_.SectionHeader, {
198
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_element.Fragment, {
199
+ children: [title && /*#__PURE__*/(0, _jsxRuntime.jsx)(_.SectionHeader, {
193
200
  title: title,
194
201
  description: description
195
- }), error && (0, _jsxRuntime.jsx)(_.Notice, {
202
+ }), error && /*#__PURE__*/(0, _jsxRuntime.jsx)(_.Notice, {
196
203
  isError: true,
197
204
  noticeText: error.message
198
- }), (0, _jsxRuntime.jsxs)("div", {
205
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
199
206
  className: (0, _classnames.default)('newspack-plugin-settings', {
200
207
  'newspack-wizard-section__is-loading': inFlight && !Object.keys(settings).length
201
208
  }),
202
- children: [Object.keys(settings).map(sectionKey => (0, _jsxRuntime.jsx)(_SettingsSection.default, {
209
+ children: [Object.keys(settings).map(sectionKey => /*#__PURE__*/(0, _jsxRuntime.jsx)(_SettingsSection.default, {
203
210
  disabled: inFlight,
204
211
  sectionKey: sectionKey,
205
212
  title: this.getSectionTitle(sectionKey),
@@ -215,7 +222,7 @@ class PluginSettings extends _element.Component {
215
222
  }
216
223
  }
217
224
  PluginSettings.defaultProps = {
218
- title: __('General Settings', 'newspack-plugin')
225
+ title: (0, _i18n.__)('General Settings', 'newspack-plugin')
219
226
  };
220
227
  PluginSettings.Section = _SettingsSection.default;
221
228
  var _default = exports.default = PluginSettings;
@@ -1,4 +1,4 @@
1
- .newspack-card:not( .newspack-settings__no-border ) {
1
+ .newspack-card:not(.newspack-settings__no-border) {
2
2
  .newspack-action-card__region-children {
3
3
  > .newspack-grid {
4
4
  margin: 32px 0 0 !important;