newspack-components 4.3.0 → 4.4.0-alpha.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.
- package/CHANGELOG.md +11 -0
- package/DEVELOPMENT.md +868 -0
- package/colors/colors.module.scss +52 -2
- package/copy-styles.js +3 -2
- package/dist/cjs/accordion/index.js +17 -12
- package/dist/cjs/action-card/index.js +176 -139
- package/dist/cjs/autocomplete-tokenfield/index.js +254 -234
- package/dist/cjs/autocomplete-with-latest-posts/index.js +172 -110
- package/dist/cjs/autocomplete-with-suggestions/index.js +229 -126
- package/dist/cjs/badge/index.js +7 -7
- package/dist/cjs/box-contrast/index.js +19 -15
- package/dist/cjs/button/index.js +41 -26
- package/dist/cjs/button-props/button-props.js +5 -5
- package/dist/cjs/button-props/index.js +2 -2
- package/dist/cjs/card/core-card.js +110 -52
- package/dist/cjs/card/index.js +74 -67
- package/dist/cjs/card/style-core.scss +93 -25
- package/dist/cjs/card/style.scss +2 -2
- package/dist/cjs/card-feature/index.js +141 -0
- package/dist/cjs/card-feature/style.scss +75 -0
- package/dist/cjs/card-form/index.js +144 -0
- package/dist/cjs/card-form/style.scss +20 -0
- package/dist/cjs/card-settings-group/index.js +36 -16
- package/dist/cjs/card-sortable-list/index.js +176 -140
- package/dist/cjs/category-autocomplete/index.js +175 -155
- package/dist/cjs/color-picker/index.js +41 -23
- package/dist/cjs/color-picker/index.test.js +82 -0
- package/dist/cjs/color-picker/style.scss +11 -13
- package/dist/cjs/confirm-dialog/index.js +86 -22
- package/dist/cjs/consts.js +1 -1
- package/dist/cjs/custom-select-control/index.js +39 -28
- package/dist/cjs/dataviews/index.js +38 -0
- package/dist/cjs/dataviews/style.scss +9 -0
- package/dist/cjs/divider/index.js +26 -21
- package/dist/cjs/footer/index.js +36 -30
- package/dist/cjs/form-token-field/index.js +51 -40
- package/dist/cjs/global-notices/index.js +5 -5
- package/dist/cjs/grid/index.js +25 -19
- package/dist/cjs/grid/style.scss +6 -1
- package/dist/cjs/handoff/index.js +204 -156
- package/dist/cjs/handoff-message/index.js +12 -7
- package/dist/cjs/hooks/index.js +10 -8
- package/dist/cjs/hooks/use-confirm-dialog.js +79 -0
- package/dist/cjs/hooks/use-unsaved-changes-dialog.js +144 -0
- package/dist/cjs/hooks/useObjectState.js +21 -12
- package/dist/cjs/hooks/useObjectState.test.js +55 -33
- package/dist/cjs/hooks/useOnClickOutside.js +6 -6
- package/dist/cjs/hooks/usePrompt.js +10 -13
- package/dist/cjs/image-upload/index.js +114 -123
- package/dist/cjs/image-upload/index.test.js +11 -13
- package/dist/cjs/image-upload/style.scss +12 -40
- package/dist/cjs/index.js +136 -104
- package/dist/cjs/info-button/index.js +43 -32
- package/dist/cjs/integration-icons/active-campaign.js +22 -0
- package/dist/cjs/integration-icons/constant-contact.js +28 -0
- package/dist/cjs/integration-icons/fundraise-up.js +25 -0
- package/dist/cjs/integration-icons/index.js +48 -0
- package/dist/cjs/integration-icons/mailchimp.js +19 -0
- package/dist/cjs/integration-icons/salesforce.js +17 -0
- package/dist/cjs/integration-icons/wisepops.js +20 -0
- package/dist/cjs/modal/index.js +22 -19
- package/dist/cjs/modal/style.scss +4 -0
- package/dist/cjs/newspack-icon/index.js +45 -38
- package/dist/cjs/notice/index.js +64 -55
- package/dist/cjs/plugin-installer/index.js +259 -253
- package/dist/cjs/plugin-settings/SettingsSection.js +66 -60
- package/dist/cjs/plugin-settings/index.js +217 -200
- package/dist/cjs/plugin-toggle/index.js +192 -199
- package/dist/cjs/popover/index.js +41 -28
- package/dist/cjs/position-control/index.js +24 -23
- package/dist/cjs/progress-bar/index.js +71 -59
- package/dist/cjs/progress-bar/index.test.js +62 -68
- package/dist/cjs/proxied-imports/router.js +3 -3
- package/dist/cjs/radio-control/index.js +40 -27
- package/dist/cjs/section-header/index.js +103 -58
- package/dist/cjs/section-header/style.scss +31 -11
- package/dist/cjs/select-control/ButtonGroupControl.js +26 -21
- package/dist/cjs/select-control/GroupedSelectControl.js +41 -35
- package/dist/cjs/select-control/index.js +52 -40
- package/dist/cjs/settings/MinMaxSetting.js +30 -20
- package/dist/cjs/settings/SettingsCard.js +20 -17
- package/dist/cjs/settings/SettingsSection.js +22 -21
- package/dist/cjs/settings/index.js +5 -5
- package/dist/cjs/sortable-newsletter-list-control/index.js +78 -57
- package/dist/cjs/steps-list/index.js +44 -34
- package/dist/cjs/steps-list-item/index.js +47 -39
- package/dist/cjs/style-card/index.js +70 -63
- package/dist/cjs/tabbed-navigation/index.js +38 -36
- package/dist/cjs/text-control/index.js +27 -25
- package/dist/cjs/utils/color.js +4 -4
- package/dist/cjs/utils/editor-toolbar-back-button.js +61 -0
- package/dist/cjs/utils/index.js +31 -19
- package/dist/cjs/utils/style.scss +8 -0
- package/dist/cjs/waiting/index.js +48 -37
- package/dist/cjs/web-preview/index.js +217 -211
- package/dist/cjs/with-wizard/index.js +362 -364
- package/dist/cjs/with-wizard/style.scss +4 -54
- package/dist/cjs/with-wizard-screen/index.js +54 -58
- package/dist/cjs/with-wizard-screen/style.scss +41 -3
- package/dist/cjs/wizard/components/WizardError.js +20 -18
- package/dist/cjs/wizard/components/WizardSnackbar.js +26 -23
- package/dist/cjs/wizard/index.js +176 -114
- package/dist/cjs/wizard/store/index.js +171 -123
- package/dist/cjs/wizard/store/utils.js +13 -8
- package/dist/esm/accordion/index.js +14 -9
- package/dist/esm/action-card/index.js +168 -123
- package/dist/esm/autocomplete-tokenfield/index.js +248 -222
- package/dist/esm/autocomplete-with-latest-posts/index.js +169 -103
- package/dist/esm/autocomplete-with-suggestions/index.js +226 -119
- package/dist/esm/badge/index.js +5 -5
- package/dist/esm/box-contrast/index.js +15 -11
- package/dist/esm/button/index.js +39 -21
- package/dist/esm/button-props/button-props.js +1 -1
- package/dist/esm/card/core-card.js +109 -47
- package/dist/esm/card/index.js +69 -54
- package/dist/esm/card/style-core.scss +93 -25
- package/dist/esm/card/style.scss +2 -2
- package/dist/esm/card-feature/index.js +131 -0
- package/dist/esm/card-feature/style.scss +75 -0
- package/dist/esm/card-form/index.js +134 -0
- package/dist/esm/card-form/style.scss +20 -0
- package/dist/esm/card-settings-group/index.js +33 -14
- package/dist/esm/card-sortable-list/index.js +170 -126
- package/dist/esm/category-autocomplete/index.js +168 -140
- package/dist/esm/color-picker/index.js +39 -21
- package/dist/esm/color-picker/index.test.js +78 -0
- package/dist/esm/color-picker/style.scss +11 -13
- package/dist/esm/confirm-dialog/index.js +85 -18
- package/dist/esm/consts.js +1 -1
- package/dist/esm/custom-select-control/index.js +34 -15
- package/dist/esm/dataviews/index.js +34 -0
- package/dist/esm/dataviews/style.scss +9 -0
- package/dist/esm/divider/index.js +24 -16
- package/dist/esm/footer/index.js +34 -28
- package/dist/esm/form-token-field/index.js +46 -27
- package/dist/esm/global-notices/index.js +3 -3
- package/dist/esm/grid/index.js +23 -14
- package/dist/esm/grid/style.scss +6 -1
- package/dist/esm/handoff/index.js +199 -143
- package/dist/esm/handoff-message/index.js +10 -6
- package/dist/esm/hooks/index.js +8 -6
- package/dist/esm/hooks/use-confirm-dialog.js +73 -0
- package/dist/esm/hooks/use-unsaved-changes-dialog.js +136 -0
- package/dist/esm/hooks/useObjectState.js +19 -9
- package/dist/esm/hooks/useObjectState.test.js +54 -32
- package/dist/esm/hooks/useOnClickOutside.js +4 -4
- package/dist/esm/hooks/usePrompt.js +9 -11
- package/dist/esm/image-upload/index.js +110 -111
- package/dist/esm/image-upload/index.test.js +11 -13
- package/dist/esm/image-upload/style.scss +12 -40
- package/dist/esm/index.js +7 -1
- package/dist/esm/info-button/index.js +38 -19
- package/dist/esm/integration-icons/active-campaign.js +16 -0
- package/dist/esm/integration-icons/constant-contact.js +22 -0
- package/dist/esm/integration-icons/fundraise-up.js +19 -0
- package/dist/esm/integration-icons/index.js +6 -0
- package/dist/esm/integration-icons/mailchimp.js +13 -0
- package/dist/esm/integration-icons/salesforce.js +11 -0
- package/dist/esm/integration-icons/wisepops.js +14 -0
- package/dist/esm/modal/index.js +20 -13
- package/dist/esm/modal/style.scss +4 -0
- package/dist/esm/newspack-icon/index.js +40 -25
- package/dist/esm/notice/index.js +59 -42
- package/dist/esm/plugin-installer/index.js +255 -243
- package/dist/esm/plugin-settings/SettingsSection.js +61 -50
- package/dist/esm/plugin-settings/index.js +212 -189
- package/dist/esm/plugin-toggle/index.js +187 -190
- package/dist/esm/popover/index.js +35 -16
- package/dist/esm/position-control/index.js +22 -18
- package/dist/esm/progress-bar/index.js +66 -49
- package/dist/esm/progress-bar/index.test.js +61 -67
- package/dist/esm/radio-control/index.js +34 -15
- package/dist/esm/section-header/index.js +102 -57
- package/dist/esm/section-header/style.scss +31 -11
- package/dist/esm/select-control/ButtonGroupControl.js +23 -18
- package/dist/esm/select-control/GroupedSelectControl.js +38 -30
- package/dist/esm/select-control/index.js +47 -27
- package/dist/esm/settings/MinMaxSetting.js +27 -16
- package/dist/esm/settings/SettingsCard.js +18 -13
- package/dist/esm/settings/SettingsSection.js +20 -19
- package/dist/esm/settings/index.js +3 -3
- package/dist/esm/sortable-newsletter-list-control/index.js +74 -53
- package/dist/esm/steps-list/index.js +39 -21
- package/dist/esm/steps-list-item/index.js +42 -26
- package/dist/esm/style-card/index.js +65 -50
- package/dist/esm/tabbed-navigation/index.js +35 -33
- package/dist/esm/text-control/index.js +25 -19
- package/dist/esm/utils/color.js +4 -4
- package/dist/esm/utils/editor-toolbar-back-button.js +53 -0
- package/dist/esm/utils/index.js +29 -16
- package/dist/esm/utils/style.scss +8 -0
- package/dist/esm/waiting/index.js +43 -24
- package/dist/esm/web-preview/index.js +213 -201
- package/dist/esm/with-wizard/index.js +360 -358
- package/dist/esm/with-wizard/style.scss +4 -54
- package/dist/esm/with-wizard-screen/index.js +48 -46
- package/dist/esm/with-wizard-screen/style.scss +41 -3
- package/dist/esm/wizard/components/WizardError.js +18 -16
- package/dist/esm/wizard/components/WizardSnackbar.js +23 -17
- package/dist/esm/wizard/index.js +171 -103
- package/dist/esm/wizard/store/index.js +169 -116
- package/dist/esm/wizard/store/utils.js +13 -6
- package/package.json +30 -16
- package/release.config.js +1 -0
- package/shared/hooks/use-coauthors.js +195 -27
- package/shared/hooks/use-coauthors.test.js +232 -6
- package/shared/scss/_mixins.scss +13 -5
- package/src/accordion/index.js +8 -7
- package/src/action-card/index.js +15 -1
- package/src/badge/index.tsx +3 -1
- package/src/card/core-card.js +95 -18
- package/src/card/index.js +1 -0
- package/src/card/style-core.scss +93 -25
- package/src/card/style.scss +2 -2
- package/src/card-feature/README.md +188 -0
- package/src/card-feature/index.tsx +186 -0
- package/src/card-feature/style.scss +75 -0
- package/src/card-form/README.md +113 -0
- package/src/card-form/index.tsx +128 -0
- package/src/card-form/style.scss +20 -0
- package/src/card-settings-group/index.tsx +28 -3
- package/src/card-sortable-list/index.tsx +27 -4
- package/src/color-picker/index.js +15 -8
- package/src/color-picker/index.test.js +52 -0
- package/src/color-picker/style.scss +11 -13
- package/src/confirm-dialog/README.md +128 -0
- package/src/confirm-dialog/index.tsx +74 -6
- package/src/dataviews/index.tsx +34 -0
- package/src/dataviews/style.scss +9 -0
- package/src/grid/style.scss +6 -1
- package/src/handoff/README.md +93 -0
- package/src/handoff/index.js +46 -8
- package/src/hooks/index.ts +2 -1
- package/src/hooks/use-confirm-dialog.tsx +80 -0
- package/src/hooks/use-unsaved-changes-dialog.tsx +140 -0
- package/src/image-upload/index.js +10 -15
- package/src/image-upload/style.scss +12 -40
- package/src/index.js +7 -1
- package/src/integration-icons/active-campaign.js +14 -0
- package/src/integration-icons/constant-contact.js +22 -0
- package/src/integration-icons/fundraise-up.js +18 -0
- package/src/integration-icons/index.js +6 -0
- package/src/integration-icons/mailchimp.js +10 -0
- package/src/integration-icons/salesforce.js +10 -0
- package/src/integration-icons/wisepops.js +14 -0
- package/src/modal/style.scss +4 -0
- package/src/plugin-installer/index.js +30 -19
- package/src/section-header/index.js +56 -24
- package/src/section-header/style.scss +31 -11
- package/src/select-control/index.js +4 -0
- package/src/utils/editor-toolbar-back-button.tsx +48 -0
- package/src/utils/index.js +6 -0
- package/src/utils/style.scss +8 -0
- package/src/with-wizard/style.scss +4 -54
- package/src/with-wizard-screen/style.scss +41 -3
- package/src/wizard/index.js +90 -53
- package/src/wizard/store/index.js +2 -2
- package/dist/cjs/button-card/index.js +0 -72
- package/dist/cjs/button-card/style.scss +0 -180
- package/dist/esm/button-card/index.js +0 -64
- package/dist/esm/button-card/style.scss +0 -180
- package/src/button-card/index.js +0 -52
- package/src/button-card/style.scss +0 -180
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
4
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
7
|
+
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; }
|
|
8
|
+
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) { _defineProperty(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; }
|
|
9
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
10
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
1
11
|
/**
|
|
2
12
|
* WordPress dependencies.
|
|
3
13
|
*/
|
|
@@ -15,204 +25,191 @@ import './style.scss';
|
|
|
15
25
|
* Plugin toggle group component.
|
|
16
26
|
*/
|
|
17
27
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*/
|
|
29
|
-
retrievePluginInfo = () => {
|
|
30
|
-
return new Promise(() => {
|
|
31
|
-
apiFetch({
|
|
32
|
-
path: '/newspack/v1/plugins/'
|
|
33
|
-
}).then(pluginInfo => this.setState({
|
|
34
|
-
pluginInfo
|
|
35
|
-
}));
|
|
28
|
+
var PluginToggle = /*#__PURE__*/function (_Component) {
|
|
29
|
+
function PluginToggle() {
|
|
30
|
+
var _this;
|
|
31
|
+
_classCallCheck(this, PluginToggle);
|
|
32
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
33
|
+
args[_key] = arguments[_key];
|
|
34
|
+
}
|
|
35
|
+
_this = _callSuper(this, PluginToggle, [].concat(args));
|
|
36
|
+
_defineProperty(_this, "state", {
|
|
37
|
+
pluginInfo: {}
|
|
36
38
|
});
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
39
|
+
_defineProperty(_this, "componentDidMount", function () {
|
|
40
|
+
_this.retrievePluginInfo();
|
|
41
|
+
});
|
|
42
|
+
/**
|
|
43
|
+
* Retrieve complete data about Newspack plugins.
|
|
44
|
+
*/
|
|
45
|
+
_defineProperty(_this, "retrievePluginInfo", function () {
|
|
46
|
+
return new Promise(function () {
|
|
47
|
+
apiFetch({
|
|
48
|
+
path: '/newspack/v1/plugins/'
|
|
49
|
+
}).then(function (pluginInfo) {
|
|
50
|
+
return _this.setState({
|
|
51
|
+
pluginInfo: pluginInfo
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
/**
|
|
57
|
+
* Install/activate or remove a plugin.
|
|
58
|
+
*/
|
|
59
|
+
_defineProperty(_this, "managePlugin", function (plugin, value) {
|
|
60
|
+
var plugins = _this.props.plugins;
|
|
61
|
+
var pluginInfo = _this.state.pluginInfo;
|
|
62
|
+
var action = value ? 'configure' : 'deactivate';
|
|
63
|
+
var params = {
|
|
64
|
+
path: "/newspack/v1/plugins/".concat(plugin, "/").concat(action, "/"),
|
|
65
|
+
method: 'post'
|
|
66
|
+
};
|
|
67
|
+
_this.setState({
|
|
68
|
+
pluginInfo: _objectSpread(_objectSpread({}, pluginInfo), {}, _defineProperty({}, plugin, _objectSpread(_objectSpread({}, pluginInfo[plugin]), {}, {
|
|
59
69
|
inFlight: action
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}).catch(e => {
|
|
76
|
-
this.setState({
|
|
77
|
-
pluginInfo: {
|
|
78
|
-
...pluginInfo,
|
|
79
|
-
[plugin]: {
|
|
80
|
-
...pluginInfo[plugin],
|
|
70
|
+
})))
|
|
71
|
+
}, function () {
|
|
72
|
+
apiFetch(params).then(function (response) {
|
|
73
|
+
var shouldRefreshAfterUpdate = plugins[plugin].shouldRefreshAfterUpdate;
|
|
74
|
+
_this.setState(function (_ref) {
|
|
75
|
+
var currentPluginInfo = _ref.pluginInfo;
|
|
76
|
+
return {
|
|
77
|
+
pluginInfo: _objectSpread(_objectSpread({}, currentPluginInfo), {}, _defineProperty({}, plugin, response))
|
|
78
|
+
};
|
|
79
|
+
}, function () {
|
|
80
|
+
return shouldRefreshAfterUpdate && location.reload();
|
|
81
|
+
});
|
|
82
|
+
})["catch"](function (e) {
|
|
83
|
+
_this.setState({
|
|
84
|
+
pluginInfo: _objectSpread(_objectSpread({}, pluginInfo), {}, _defineProperty({}, plugin, _objectSpread(_objectSpread({}, pluginInfo[plugin]), {}, {
|
|
81
85
|
error: e.message || __('There was an error managing this plugin.', 'newspack-plugin')
|
|
82
|
-
}
|
|
83
|
-
}
|
|
86
|
+
})))
|
|
87
|
+
});
|
|
84
88
|
});
|
|
85
89
|
});
|
|
86
90
|
});
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
} = this.state;
|
|
99
|
-
return this.prepareDataForRender(plugins, pluginInfo).map((plugin, index) => {
|
|
100
|
-
var _plugin$onClick;
|
|
101
|
-
const {
|
|
102
|
-
name,
|
|
103
|
-
description,
|
|
104
|
-
href,
|
|
105
|
-
slug,
|
|
106
|
-
editPath
|
|
107
|
-
} = plugin;
|
|
108
|
-
const pluginStatus = this.isPluginInstalledAndActive(plugin);
|
|
109
|
-
const handoff = !href && pluginStatus && editPath ? slug : null;
|
|
110
|
-
const error = this.errorForPlugin(plugin);
|
|
111
|
-
return /*#__PURE__*/_jsx(ActionCard, {
|
|
112
|
-
className: this.classNameForPlugin(plugin),
|
|
113
|
-
title: name,
|
|
114
|
-
description: description,
|
|
115
|
-
actionText: this.actionTextForPlugin(plugin),
|
|
116
|
-
handoff: handoff,
|
|
117
|
-
onClick: (_plugin$onClick = plugin.onClick) !== null && _plugin$onClick !== void 0 ? _plugin$onClick : null,
|
|
118
|
-
href: href,
|
|
119
|
-
toggle: true,
|
|
120
|
-
toggleChecked: this.isPluginInstalledAndActive(plugin),
|
|
121
|
-
toggleOnChange: value => this.managePlugin(slug, value),
|
|
122
|
-
notification: error,
|
|
123
|
-
notificationHTML: error,
|
|
124
|
-
notificationLevel: "error"
|
|
125
|
-
}, index);
|
|
91
|
+
/**
|
|
92
|
+
* Prepare plugins data for render. Change all keys to camelCase, merge API-fetched data with prop.
|
|
93
|
+
*/
|
|
94
|
+
_defineProperty(_this, "prepareDataForRender", function (pluginsFromProps, pluginsFromAPI) {
|
|
95
|
+
return Object.keys(pluginsFromProps).map(function (pluginSlug) {
|
|
96
|
+
return pluginsFromAPI[pluginSlug] ? Object.keys(pluginsFromAPI[pluginSlug]).reduce(function (accumulator, key) {
|
|
97
|
+
return _objectSpread(_objectSpread({}, accumulator), {}, _defineProperty({}, key.charAt(0).toLowerCase() + key.slice(1), pluginsFromAPI[pluginSlug][key]));
|
|
98
|
+
}, {}) : {};
|
|
99
|
+
}).map(function (plugin) {
|
|
100
|
+
return Object.assign(plugin, pluginsFromProps[plugin.slug]);
|
|
101
|
+
});
|
|
126
102
|
});
|
|
103
|
+
/**
|
|
104
|
+
* 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.
|
|
105
|
+
*/
|
|
106
|
+
_defineProperty(_this, "classNameForPlugin", function (plugin) {
|
|
107
|
+
var status = plugin.status,
|
|
108
|
+
inFlight = plugin.inFlight;
|
|
109
|
+
if (inFlight) {
|
|
110
|
+
return 'in-flight';
|
|
111
|
+
}
|
|
112
|
+
if (!status) {
|
|
113
|
+
return 'loading';
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
/**
|
|
117
|
+
* Generate the ActionCard action text for a plugin.
|
|
118
|
+
*/
|
|
119
|
+
_defineProperty(_this, "actionTextForPlugin", function (plugin) {
|
|
120
|
+
var actionText = plugin.actionText,
|
|
121
|
+
editPath = plugin.editPath,
|
|
122
|
+
href = plugin.href,
|
|
123
|
+
inFlight = plugin.inFlight,
|
|
124
|
+
name = plugin.name;
|
|
125
|
+
// Show spinner when plugin data is unavailable, or when an API call is in flight.
|
|
126
|
+
if ('configure' === inFlight) {
|
|
127
|
+
return /*#__PURE__*/_jsxs(Fragment, {
|
|
128
|
+
children: [__('Installing…', 'newspack-plugin'), " ", /*#__PURE__*/_jsx(Waiting, {
|
|
129
|
+
isRight: true
|
|
130
|
+
})]
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
if ('deactivate' === inFlight) {
|
|
134
|
+
return /*#__PURE__*/_jsxs(Fragment, {
|
|
135
|
+
children: [__('Deactivating…', 'newspack-plugin'), " ", /*#__PURE__*/_jsx(Waiting, {
|
|
136
|
+
isRight: true
|
|
137
|
+
})]
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
if (!name) {
|
|
141
|
+
return /*#__PURE__*/_jsxs(Fragment, {
|
|
142
|
+
children: [__('Loading…', 'newspack-plugin'), " ", /*#__PURE__*/_jsx(Waiting, {
|
|
143
|
+
isRight: true
|
|
144
|
+
})]
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
// No action button at all if the plugin isn't installed and active.
|
|
148
|
+
if (!_this.isPluginInstalledAndActive(plugin)) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
if (href || editPath) {
|
|
152
|
+
return actionText ? actionText : __('Configure', 'newspack-plugin');
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
/**
|
|
156
|
+
* Get error message for this plugin.
|
|
157
|
+
*/
|
|
158
|
+
_defineProperty(_this, "errorForPlugin", function (plugin) {
|
|
159
|
+
var _pluginInfo$slug;
|
|
160
|
+
var slug = plugin.slug;
|
|
161
|
+
var pluginInfo = _this.state.pluginInfo;
|
|
162
|
+
return ((_pluginInfo$slug = pluginInfo[slug]) === null || _pluginInfo$slug === void 0 ? void 0 : _pluginInfo$slug.error) || null;
|
|
163
|
+
});
|
|
164
|
+
/**
|
|
165
|
+
* Get installation/activation status for a plugin.
|
|
166
|
+
*/
|
|
167
|
+
_defineProperty(_this, "isPluginInstalledAndActive", function (plugin) {
|
|
168
|
+
var status = plugin.status;
|
|
169
|
+
return status === 'active';
|
|
170
|
+
});
|
|
171
|
+
return _this;
|
|
127
172
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
return /*#__PURE__*/_jsxs(Fragment, {
|
|
167
|
-
children: [__('Installing…', 'newspack-plugin'), " ", /*#__PURE__*/_jsx(Waiting, {
|
|
168
|
-
isRight: true
|
|
169
|
-
})]
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
if ('deactivate' === inFlight) {
|
|
173
|
-
return /*#__PURE__*/_jsxs(Fragment, {
|
|
174
|
-
children: [__('Deactivating…', 'newspack-plugin'), " ", /*#__PURE__*/_jsx(Waiting, {
|
|
175
|
-
isRight: true
|
|
176
|
-
})]
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
if (!name) {
|
|
180
|
-
return /*#__PURE__*/_jsxs(Fragment, {
|
|
181
|
-
children: [__('Loading…', 'newspack-plugin'), " ", /*#__PURE__*/_jsx(Waiting, {
|
|
182
|
-
isRight: true
|
|
183
|
-
})]
|
|
173
|
+
_inherits(PluginToggle, _Component);
|
|
174
|
+
return _createClass(PluginToggle, [{
|
|
175
|
+
key: "render",
|
|
176
|
+
value:
|
|
177
|
+
/**
|
|
178
|
+
* Render.
|
|
179
|
+
*/
|
|
180
|
+
function render() {
|
|
181
|
+
var _this2 = this;
|
|
182
|
+
var plugins = this.props.plugins;
|
|
183
|
+
var pluginInfo = this.state.pluginInfo;
|
|
184
|
+
return this.prepareDataForRender(plugins, pluginInfo).map(function (plugin, index) {
|
|
185
|
+
var _plugin$onClick;
|
|
186
|
+
var name = plugin.name,
|
|
187
|
+
description = plugin.description,
|
|
188
|
+
href = plugin.href,
|
|
189
|
+
slug = plugin.slug,
|
|
190
|
+
editPath = plugin.editPath;
|
|
191
|
+
var pluginStatus = _this2.isPluginInstalledAndActive(plugin);
|
|
192
|
+
var handoff = !href && pluginStatus && editPath ? slug : null;
|
|
193
|
+
var error = _this2.errorForPlugin(plugin);
|
|
194
|
+
return /*#__PURE__*/_jsx(ActionCard, {
|
|
195
|
+
className: _this2.classNameForPlugin(plugin),
|
|
196
|
+
title: name,
|
|
197
|
+
description: description,
|
|
198
|
+
actionText: _this2.actionTextForPlugin(plugin),
|
|
199
|
+
handoff: handoff,
|
|
200
|
+
onClick: (_plugin$onClick = plugin.onClick) !== null && _plugin$onClick !== void 0 ? _plugin$onClick : null,
|
|
201
|
+
href: href,
|
|
202
|
+
toggle: true,
|
|
203
|
+
toggleChecked: _this2.isPluginInstalledAndActive(plugin),
|
|
204
|
+
toggleOnChange: function toggleOnChange(value) {
|
|
205
|
+
return _this2.managePlugin(slug, value);
|
|
206
|
+
},
|
|
207
|
+
notification: error,
|
|
208
|
+
notificationHTML: error,
|
|
209
|
+
notificationLevel: "error"
|
|
210
|
+
}, index);
|
|
184
211
|
});
|
|
185
212
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
return null;
|
|
189
|
-
}
|
|
190
|
-
if (href || editPath) {
|
|
191
|
-
return actionText ? actionText : __('Configure', 'newspack-plugin');
|
|
192
|
-
}
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
/**
|
|
196
|
-
* Get error message for this plugin.
|
|
197
|
-
*/
|
|
198
|
-
errorForPlugin = plugin => {
|
|
199
|
-
const {
|
|
200
|
-
slug
|
|
201
|
-
} = plugin;
|
|
202
|
-
const {
|
|
203
|
-
pluginInfo
|
|
204
|
-
} = this.state;
|
|
205
|
-
return pluginInfo[slug]?.error || null;
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
/**
|
|
209
|
-
* Get installation/activation status for a plugin.
|
|
210
|
-
*/
|
|
211
|
-
isPluginInstalledAndActive = plugin => {
|
|
212
|
-
const {
|
|
213
|
-
status
|
|
214
|
-
} = plugin;
|
|
215
|
-
return status === 'active';
|
|
216
|
-
};
|
|
217
|
-
}
|
|
213
|
+
}]);
|
|
214
|
+
}(Component);
|
|
218
215
|
export default PluginToggle;
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
4
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
5
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
8
|
+
var _excluded = ["className", "padding"];
|
|
9
|
+
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; }
|
|
10
|
+
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) { _defineProperty(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; }
|
|
11
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
12
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
1
13
|
/**
|
|
2
14
|
* WordPress dependencies
|
|
3
15
|
*/
|
|
@@ -18,23 +30,30 @@ import classnames from 'classnames';
|
|
|
18
30
|
* Popover
|
|
19
31
|
*/
|
|
20
32
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
render() {
|
|
26
|
-
const {
|
|
27
|
-
className,
|
|
28
|
-
padding,
|
|
29
|
-
...otherProps
|
|
30
|
-
} = this.props;
|
|
31
|
-
const classes = classnames('newspack-popover', padding && 'newspack-popover__padding-' + padding, className);
|
|
32
|
-
return /*#__PURE__*/_jsx(BaseComponent, {
|
|
33
|
-
className: classes,
|
|
34
|
-
...otherProps
|
|
35
|
-
});
|
|
33
|
+
var Popover = /*#__PURE__*/function (_Component) {
|
|
34
|
+
function Popover() {
|
|
35
|
+
_classCallCheck(this, Popover);
|
|
36
|
+
return _callSuper(this, Popover, arguments);
|
|
36
37
|
}
|
|
37
|
-
|
|
38
|
+
_inherits(Popover, _Component);
|
|
39
|
+
return _createClass(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 = _objectWithoutProperties(_this$props, _excluded);
|
|
50
|
+
var classes = classnames('newspack-popover', padding && 'newspack-popover__padding-' + padding, className);
|
|
51
|
+
return /*#__PURE__*/_jsx(BaseComponent, _objectSpread({
|
|
52
|
+
className: classes
|
|
53
|
+
}, otherProps));
|
|
54
|
+
}
|
|
55
|
+
}]);
|
|
56
|
+
}(Component);
|
|
38
57
|
Popover.defaultProps = {
|
|
39
58
|
padding: false
|
|
40
59
|
};
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
var _excluded = ["allowedPositions", "value", "label", "help", "onChange", "size"];
|
|
4
|
+
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; }
|
|
5
|
+
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) { _defineProperty(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; }
|
|
1
6
|
/**
|
|
2
7
|
* WordPress dependencies
|
|
3
8
|
*/
|
|
@@ -14,19 +19,18 @@ import classnames from 'classnames';
|
|
|
14
19
|
*/
|
|
15
20
|
import './style.scss';
|
|
16
21
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
-
export default function PositionControl({
|
|
18
|
-
allowedPositions,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}) {
|
|
22
|
+
export default function PositionControl(_ref) {
|
|
23
|
+
var allowedPositions = _ref.allowedPositions,
|
|
24
|
+
value = _ref.value,
|
|
25
|
+
label = _ref.label,
|
|
26
|
+
help = _ref.help,
|
|
27
|
+
onChange = _ref.onChange,
|
|
28
|
+
size = _ref.size,
|
|
29
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
26
30
|
/**
|
|
27
31
|
* Set layout options
|
|
28
32
|
*/
|
|
29
|
-
|
|
33
|
+
var options = size === 'full-width' ? [{
|
|
30
34
|
value: 'top',
|
|
31
35
|
/* translators: Overlay Position */
|
|
32
36
|
label: __('Top', 'newspack-plugin')
|
|
@@ -80,10 +84,10 @@ export default function PositionControl({
|
|
|
80
84
|
children: [/*#__PURE__*/_jsx("p", {
|
|
81
85
|
className: "components-base-control__label",
|
|
82
86
|
children: label
|
|
83
|
-
}), /*#__PURE__*/_jsx(ButtonGroup, {
|
|
84
|
-
"aria-label": __('Select Position', 'newspack-plugin')
|
|
85
|
-
|
|
86
|
-
children: options.map((option, index)
|
|
87
|
+
}), /*#__PURE__*/_jsx(ButtonGroup, _objectSpread(_objectSpread({
|
|
88
|
+
"aria-label": __('Select Position', 'newspack-plugin')
|
|
89
|
+
}, props), {}, {
|
|
90
|
+
children: options.map(function (option, index) {
|
|
87
91
|
return /*#__PURE__*/_jsx("div", {
|
|
88
92
|
className: option.value === value ? 'is-selected' : null,
|
|
89
93
|
children: /*#__PURE__*/_jsx(Button, {
|
|
@@ -91,14 +95,14 @@ export default function PositionControl({
|
|
|
91
95
|
title: option.label,
|
|
92
96
|
"aria-label": option.label,
|
|
93
97
|
isPrimary: option.value === value,
|
|
94
|
-
onClick: ()
|
|
98
|
+
onClick: function onClick() {
|
|
95
99
|
onChange(option.value);
|
|
96
100
|
},
|
|
97
|
-
disabled: allowedPositions
|
|
101
|
+
disabled: (allowedPositions === null || allowedPositions === void 0 ? void 0 : allowedPositions.length) && !allowedPositions.includes(option.value)
|
|
98
102
|
})
|
|
99
|
-
},
|
|
103
|
+
}, "newspack-position-placement-item-".concat(index));
|
|
100
104
|
})
|
|
101
|
-
}), /*#__PURE__*/_jsx("p", {
|
|
105
|
+
})), /*#__PURE__*/_jsx("p", {
|
|
102
106
|
className: "components-base-control__help",
|
|
103
107
|
children: help
|
|
104
108
|
})]
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
4
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
7
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
1
8
|
/**
|
|
2
9
|
* Progress Bar
|
|
3
10
|
*/
|
|
@@ -12,57 +19,67 @@ import { Component } from '@wordpress/element';
|
|
|
12
19
|
*/
|
|
13
20
|
import './style.scss';
|
|
14
21
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* @param {number} completed The number of steps completed.
|
|
20
|
-
* @param {number} total The total number of steps.
|
|
21
|
-
* @return {number} completion percentage
|
|
22
|
-
*/
|
|
23
|
-
getCompletionPercentage(completed, total) {
|
|
24
|
-
if (!total) {
|
|
25
|
-
return 100;
|
|
26
|
-
}
|
|
27
|
-
return Math.max(Math.min(Math.round(completed / total * 100), 100), 0);
|
|
22
|
+
var ProgressBar = /*#__PURE__*/function (_Component) {
|
|
23
|
+
function ProgressBar() {
|
|
24
|
+
_classCallCheck(this, ProgressBar);
|
|
25
|
+
return _callSuper(this, ProgressBar, arguments);
|
|
28
26
|
}
|
|
27
|
+
_inherits(ProgressBar, _Component);
|
|
28
|
+
return _createClass(ProgressBar, [{
|
|
29
|
+
key: "getCompletionPercentage",
|
|
30
|
+
value:
|
|
31
|
+
/**
|
|
32
|
+
* Get completion as a percentage.
|
|
33
|
+
*
|
|
34
|
+
* @param {number} completed The number of steps completed.
|
|
35
|
+
* @param {number} total The total number of steps.
|
|
36
|
+
* @return {number} completion percentage
|
|
37
|
+
*/
|
|
38
|
+
function getCompletionPercentage(completed, total) {
|
|
39
|
+
if (!total) {
|
|
40
|
+
return 100;
|
|
41
|
+
}
|
|
42
|
+
return Math.max(Math.min(Math.round(completed / total * 100), 100), 0);
|
|
43
|
+
}
|
|
29
44
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
children: label
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
children:
|
|
45
|
+
/**
|
|
46
|
+
* Render.
|
|
47
|
+
*/
|
|
48
|
+
}, {
|
|
49
|
+
key: "render",
|
|
50
|
+
value: function render() {
|
|
51
|
+
var _this$props = this.props,
|
|
52
|
+
label = _this$props.label,
|
|
53
|
+
completed = _this$props.completed,
|
|
54
|
+
total = _this$props.total,
|
|
55
|
+
displayFraction = _this$props.displayFraction;
|
|
56
|
+
var cleanTotal = Math.max(0, parseInt(total) || 0);
|
|
57
|
+
var cleanCompleted = Math.max(0, Math.min(parseInt(completed) || 0, parseInt(cleanTotal)));
|
|
58
|
+
var barStyle = {
|
|
59
|
+
width: this.getCompletionPercentage(cleanCompleted, cleanTotal) + '%'
|
|
60
|
+
};
|
|
61
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
62
|
+
className: "newspack-progress-bar",
|
|
63
|
+
children: [(label || displayFraction) && /*#__PURE__*/_jsxs("div", {
|
|
64
|
+
className: "newspack-progress-bar__headings",
|
|
65
|
+
children: [label && /*#__PURE__*/_jsx("h2", {
|
|
66
|
+
children: label
|
|
67
|
+
}), displayFraction && /*#__PURE__*/_jsx("p", {
|
|
68
|
+
className: "is-dark",
|
|
69
|
+
children: /*#__PURE__*/_jsxs("strong", {
|
|
70
|
+
children: [cleanCompleted, "/", cleanTotal]
|
|
71
|
+
})
|
|
72
|
+
})]
|
|
73
|
+
}), /*#__PURE__*/_jsx("div", {
|
|
74
|
+
className: "newspack-progress-bar__container",
|
|
75
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
76
|
+
className: "newspack-progress-bar__bar",
|
|
77
|
+
style: barStyle,
|
|
78
|
+
"data-testid": "progress-bar-indicator"
|
|
55
79
|
})
|
|
56
80
|
})]
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
style: barStyle,
|
|
62
|
-
"data-testid": "progress-bar-indicator"
|
|
63
|
-
})
|
|
64
|
-
})]
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}]);
|
|
84
|
+
}(Component);
|
|
68
85
|
export default ProgressBar;
|