newspack-components 4.3.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.
- package/CHANGELOG.md +11 -0
- package/DEVELOPMENT.md +868 -0
- 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
|
@@ -4,7 +4,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
12
|
var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
|
|
9
13
|
var _components = require("@wordpress/components");
|
|
10
14
|
var _htmlEntities = require("@wordpress/html-entities");
|
|
@@ -14,52 +18,69 @@ var _url = require("@wordpress/url");
|
|
|
14
18
|
var _ = require("../");
|
|
15
19
|
require("./style.scss");
|
|
16
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
-
|
|
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 _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
24
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); } /**
|
|
18
25
|
* WordPress dependencies
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/**
|
|
26
|
+
*/ /**
|
|
22
27
|
* External dependencies.
|
|
23
28
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
29
|
+
var AutocompleteWithSuggestions = function AutocompleteWithSuggestions(_ref) {
|
|
30
|
+
var _ref$fetchSavedPosts = _ref.fetchSavedPosts,
|
|
31
|
+
fetchSavedPosts = _ref$fetchSavedPosts === void 0 ? false : _ref$fetchSavedPosts,
|
|
32
|
+
_ref$fetchSuggestions = _ref.fetchSuggestions,
|
|
33
|
+
fetchSuggestions = _ref$fetchSuggestions === void 0 ? false : _ref$fetchSuggestions,
|
|
34
|
+
_ref$help = _ref.help,
|
|
35
|
+
help = _ref$help === void 0 ? (0, _i18n.__)('Begin typing search term, click autocomplete result to select.', 'newspack-plugin') : _ref$help,
|
|
36
|
+
_ref$hideHelp = _ref.hideHelp,
|
|
37
|
+
hideHelp = _ref$hideHelp === void 0 ? false : _ref$hideHelp,
|
|
38
|
+
_ref$label = _ref.label,
|
|
39
|
+
label = _ref$label === void 0 ? (0, _i18n.__)('Search', 'newspack-plugin') : _ref$label,
|
|
40
|
+
_ref$maxItemsToSugges = _ref.maxItemsToSuggest,
|
|
41
|
+
maxItemsToSuggest = _ref$maxItemsToSugges === void 0 ? 0 : _ref$maxItemsToSugges,
|
|
42
|
+
_ref$multiSelect = _ref.multiSelect,
|
|
43
|
+
multiSelect = _ref$multiSelect === void 0 ? false : _ref$multiSelect,
|
|
44
|
+
_ref$onChange = _ref.onChange,
|
|
45
|
+
onChange = _ref$onChange === void 0 ? false : _ref$onChange,
|
|
46
|
+
_ref$onPostTypeChange = _ref.onPostTypeChange,
|
|
47
|
+
onPostTypeChange = _ref$onPostTypeChange === void 0 ? false : _ref$onPostTypeChange,
|
|
48
|
+
_ref$postTypes = _ref.postTypes,
|
|
49
|
+
postTypes = _ref$postTypes === void 0 ? [{
|
|
50
|
+
slug: 'post',
|
|
51
|
+
label: 'Post'
|
|
52
|
+
}] : _ref$postTypes,
|
|
53
|
+
_ref$postTypeLabel = _ref.postTypeLabel,
|
|
54
|
+
postTypeLabel = _ref$postTypeLabel === void 0 ? (0, _i18n.__)('item', 'newspack-plugin') : _ref$postTypeLabel,
|
|
55
|
+
_ref$postTypeLabelPlu = _ref.postTypeLabelPlural,
|
|
56
|
+
postTypeLabelPlural = _ref$postTypeLabelPlu === void 0 ? (0, _i18n.__)('items', 'newspack-plugin') : _ref$postTypeLabelPlu,
|
|
57
|
+
_ref$selectedItems = _ref.selectedItems,
|
|
58
|
+
selectedItems = _ref$selectedItems === void 0 ? [] : _ref$selectedItems,
|
|
59
|
+
_ref$selectedPost = _ref.selectedPost,
|
|
60
|
+
selectedPost = _ref$selectedPost === void 0 ? 0 : _ref$selectedPost,
|
|
61
|
+
_ref$suggestionsToFet = _ref.suggestionsToFetch,
|
|
62
|
+
suggestionsToFetch = _ref$suggestionsToFet === void 0 ? 10 : _ref$suggestionsToFet;
|
|
63
|
+
var _useState = (0, _element.useState)(true),
|
|
64
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
65
|
+
isLoading = _useState2[0],
|
|
66
|
+
setIsLoading = _useState2[1];
|
|
67
|
+
var _useState3 = (0, _element.useState)(false),
|
|
68
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
69
|
+
isLoadingMore = _useState4[0],
|
|
70
|
+
setIsLoadingMore = _useState4[1];
|
|
71
|
+
var _useState5 = (0, _element.useState)([]),
|
|
72
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
73
|
+
suggestions = _useState6[0],
|
|
74
|
+
setSuggestions = _useState6[1];
|
|
75
|
+
var _useState7 = (0, _element.useState)(0),
|
|
76
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
77
|
+
maxSuggestions = _useState8[0],
|
|
78
|
+
setMaxSuggestions = _useState8[1];
|
|
79
|
+
var _useState9 = (0, _element.useState)(postTypes[0].slug),
|
|
80
|
+
_useState0 = (0, _slicedToArray2["default"])(_useState9, 2),
|
|
81
|
+
postTypeToSearch = _useState0[0],
|
|
82
|
+
setPostTypeToSearch = _useState0[1];
|
|
83
|
+
var classNames = ['newspack-autocomplete-with-suggestions'];
|
|
63
84
|
if (hideHelp) {
|
|
64
85
|
classNames.push('hide-help');
|
|
65
86
|
}
|
|
@@ -67,96 +88,143 @@ const AutocompleteWithSuggestions = ({
|
|
|
67
88
|
/**
|
|
68
89
|
* Fetch recent posts to show as suggestions.
|
|
69
90
|
*/
|
|
70
|
-
(0, _element.useEffect)(()
|
|
91
|
+
(0, _element.useEffect)(function () {
|
|
71
92
|
if (onPostTypeChange) {
|
|
72
93
|
onPostTypeChange(postTypeToSearch);
|
|
73
94
|
}
|
|
74
95
|
setIsLoading(true);
|
|
75
|
-
handleFetchSuggestions(null, 0, postTypeToSearch).then(_suggestions
|
|
96
|
+
handleFetchSuggestions(null, 0, postTypeToSearch).then(function (_suggestions) {
|
|
76
97
|
if (0 < _suggestions.length) {
|
|
77
98
|
setSuggestions(_suggestions);
|
|
78
99
|
}
|
|
79
|
-
})
|
|
100
|
+
})["finally"](function () {
|
|
101
|
+
return setIsLoading(false);
|
|
102
|
+
});
|
|
80
103
|
}, [postTypeToSearch]);
|
|
81
104
|
|
|
82
105
|
/**
|
|
83
106
|
* Fetch more suggestions.
|
|
84
107
|
*/
|
|
85
|
-
(0, _element.useEffect)(()
|
|
108
|
+
(0, _element.useEffect)(function () {
|
|
86
109
|
if (isLoadingMore) {
|
|
87
|
-
handleFetchSuggestions(null, suggestions.length, postTypeToSearch).then(_suggestions
|
|
110
|
+
handleFetchSuggestions(null, suggestions.length, postTypeToSearch).then(function (_suggestions) {
|
|
88
111
|
if (0 < _suggestions.length) {
|
|
89
112
|
setSuggestions(suggestions.concat(_suggestions));
|
|
90
113
|
}
|
|
91
|
-
})
|
|
114
|
+
})["finally"](function () {
|
|
115
|
+
return setIsLoadingMore(false);
|
|
116
|
+
});
|
|
92
117
|
}
|
|
93
118
|
}, [isLoadingMore]);
|
|
94
119
|
|
|
95
120
|
/**
|
|
96
121
|
* If passed a `fetchSavedPosts` prop, use that, otherwise, build it based on the selected post type.
|
|
97
122
|
*/
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
123
|
+
var handleFetchSaved = fetchSavedPosts ? fetchSavedPosts : /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
124
|
+
var postIds,
|
|
125
|
+
searchSlug,
|
|
126
|
+
postTypeSlug,
|
|
127
|
+
endpoint,
|
|
128
|
+
posts,
|
|
129
|
+
_args = arguments;
|
|
130
|
+
return _regenerator().w(function (_context) {
|
|
131
|
+
while (1) switch (_context.n) {
|
|
132
|
+
case 0:
|
|
133
|
+
postIds = _args.length > 0 && _args[0] !== undefined ? _args[0] : [];
|
|
134
|
+
searchSlug = _args.length > 1 && _args[1] !== undefined ? _args[1] : null;
|
|
135
|
+
postTypeSlug = searchSlug || postTypeToSearch;
|
|
136
|
+
endpoint = 'post' === postTypeSlug || 'page' === postTypeSlug ? postTypeSlug + 's' // Default post type endpoints are plural.
|
|
137
|
+
: postTypeSlug; // Custom post type endpoints are singular.
|
|
138
|
+
_context.n = 1;
|
|
139
|
+
return (0, _apiFetch["default"])({
|
|
140
|
+
path: (0, _url.addQueryArgs)('/wp/v2/' + endpoint, {
|
|
141
|
+
per_page: 100,
|
|
142
|
+
include: postIds.join(','),
|
|
143
|
+
_fields: 'id,title'
|
|
144
|
+
})
|
|
145
|
+
});
|
|
146
|
+
case 1:
|
|
147
|
+
posts = _context.v;
|
|
148
|
+
return _context.a(2, posts.map(function (post) {
|
|
149
|
+
return {
|
|
150
|
+
value: parseInt(post.id),
|
|
151
|
+
label: (0, _htmlEntities.decodeEntities)(post.title) || (0, _i18n.__)('(no title)', 'newspack-plugin')
|
|
152
|
+
};
|
|
153
|
+
}));
|
|
154
|
+
}
|
|
155
|
+
}, _callee);
|
|
156
|
+
}));
|
|
114
157
|
|
|
115
158
|
/**
|
|
116
159
|
* If passed a `fetchSuggestions` prop, use that, otherwise, build it based on the selected post type.
|
|
117
160
|
*/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
161
|
+
var handleFetchSuggestions = fetchSuggestions ? fetchSuggestions : /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee2() {
|
|
162
|
+
var search,
|
|
163
|
+
offset,
|
|
164
|
+
searchSlug,
|
|
165
|
+
postTypeSlug,
|
|
166
|
+
endpoint,
|
|
167
|
+
response,
|
|
168
|
+
total,
|
|
169
|
+
posts,
|
|
170
|
+
_args2 = arguments;
|
|
171
|
+
return _regenerator().w(function (_context2) {
|
|
172
|
+
while (1) switch (_context2.n) {
|
|
173
|
+
case 0:
|
|
174
|
+
search = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : null;
|
|
175
|
+
offset = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : 0;
|
|
176
|
+
searchSlug = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : null;
|
|
177
|
+
postTypeSlug = searchSlug || postTypeToSearch;
|
|
178
|
+
endpoint = 'post' === postTypeSlug || 'page' === postTypeSlug ? postTypeSlug + 's' // Default post type endpoints are plural.
|
|
179
|
+
: postTypeSlug; // Custom post type endpoints are singular.
|
|
180
|
+
_context2.n = 1;
|
|
181
|
+
return (0, _apiFetch["default"])({
|
|
182
|
+
parse: false,
|
|
183
|
+
path: (0, _url.addQueryArgs)('/wp/v2/' + endpoint, {
|
|
184
|
+
search: search,
|
|
185
|
+
offset: offset,
|
|
186
|
+
per_page: suggestionsToFetch,
|
|
187
|
+
_fields: 'id,title'
|
|
188
|
+
})
|
|
189
|
+
});
|
|
190
|
+
case 1:
|
|
191
|
+
response = _context2.v;
|
|
192
|
+
total = parseInt(response.headers.get('x-wp-total') || 0);
|
|
193
|
+
_context2.n = 2;
|
|
194
|
+
return response.json();
|
|
195
|
+
case 2:
|
|
196
|
+
posts = _context2.v;
|
|
197
|
+
setMaxSuggestions(total);
|
|
134
198
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
199
|
+
// Format suggestions for FormTokenField display.
|
|
200
|
+
return _context2.a(2, posts.reduce(function (acc, post) {
|
|
201
|
+
acc.push({
|
|
202
|
+
value: parseInt(post.id),
|
|
203
|
+
label: (0, _htmlEntities.decodeEntities)(post === null || post === void 0 ? void 0 : post.title.rendered) || (0, _i18n.__)('(no title)', 'newspack-plugin')
|
|
204
|
+
});
|
|
205
|
+
return acc;
|
|
206
|
+
}, []));
|
|
207
|
+
}
|
|
208
|
+
}, _callee2);
|
|
209
|
+
}));
|
|
144
210
|
|
|
145
211
|
/**
|
|
146
212
|
* Intercept onChange callback so we can decide whether to allow multiple selections.
|
|
147
213
|
*/
|
|
148
|
-
|
|
214
|
+
var handleOnChange = function handleOnChange(_selections) {
|
|
149
215
|
// If only allowing one selection, just return the one selected item.
|
|
150
216
|
if (!multiSelect) {
|
|
151
217
|
return onChange(_selections);
|
|
152
218
|
}
|
|
153
219
|
|
|
154
220
|
// Handle legacy `selectedPost` prop.
|
|
155
|
-
|
|
221
|
+
var selections = selectedPost ? [].concat((0, _toConsumableArray2["default"])(selectedItems), [selectedPost]) : (0, _toConsumableArray2["default"])(selectedItems);
|
|
156
222
|
|
|
157
223
|
// Loop through new selections to determine whether to add or remove them.
|
|
158
|
-
_selections.forEach(_selection
|
|
159
|
-
|
|
224
|
+
_selections.forEach(function (_selection) {
|
|
225
|
+
var existingSelection = selections.findIndex(function (selection) {
|
|
226
|
+
return parseInt(selection.value) === parseInt(_selection.value);
|
|
227
|
+
});
|
|
160
228
|
if (-1 < existingSelection) {
|
|
161
229
|
// If the selection is already selected, remove it.
|
|
162
230
|
selections.splice(existingSelection, 1);
|
|
@@ -167,19 +235,20 @@ const AutocompleteWithSuggestions = ({
|
|
|
167
235
|
});
|
|
168
236
|
|
|
169
237
|
// Include currently selected post type in selection results.
|
|
170
|
-
onChange(selections.map(selection
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
238
|
+
onChange(selections.map(function (selection) {
|
|
239
|
+
return _objectSpread(_objectSpread({}, selection), {}, {
|
|
240
|
+
postType: postTypeToSearch
|
|
241
|
+
});
|
|
242
|
+
}));
|
|
174
243
|
};
|
|
175
244
|
|
|
176
245
|
/**
|
|
177
246
|
* Render selected item(s) for this component. Clicking on a selection deselects it.
|
|
178
247
|
*/
|
|
179
|
-
|
|
248
|
+
var renderSelections = function renderSelections() {
|
|
180
249
|
// Handle legacy `selectedPost` prop.
|
|
181
|
-
|
|
182
|
-
|
|
250
|
+
var selections = selectedPost ? [].concat((0, _toConsumableArray2["default"])(selectedItems), [selectedPost]) : selectedItems;
|
|
251
|
+
var selectedMessage = multiSelect ? (0, _i18n.sprintf)(
|
|
183
252
|
// Translators: %1: the length of selections. %2: the selection leabel.
|
|
184
253
|
(0, _i18n.__)('%1$s %2$s selected', 'newspack-plugin'), selections.length, selections.length > 1 ? postTypeLabelPlural : postTypeLabel) : (0, _i18n.sprintf)(
|
|
185
254
|
// Translators: %s: The label for the selection.
|
|
@@ -189,34 +258,46 @@ const AutocompleteWithSuggestions = ({
|
|
|
189
258
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
190
259
|
className: "newspack-autocomplete-with-suggestions__label",
|
|
191
260
|
children: [selectedMessage, 1 < selections.length && (0, _i18n._x)(' – ', 'separator character', 'newspack-plugin'), 1 < selections.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
192
|
-
onClick: ()
|
|
261
|
+
onClick: function onClick() {
|
|
262
|
+
return onChange([]);
|
|
263
|
+
},
|
|
193
264
|
isLink: true,
|
|
194
265
|
isDestructive: true,
|
|
195
266
|
children: (0, _i18n.__)('Clear all', 'newspack-plugin')
|
|
196
267
|
})]
|
|
197
|
-
}), selections.map(
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
268
|
+
}), selections.map(function (selection) {
|
|
269
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
270
|
+
className: "newspack-autocomplete-with-suggestions__selected-item-button",
|
|
271
|
+
isTertiary: true,
|
|
272
|
+
onClick: function onClick() {
|
|
273
|
+
return onChange(selections.filter(function (_selection) {
|
|
274
|
+
return _selection.value !== selection.value;
|
|
275
|
+
}));
|
|
276
|
+
},
|
|
277
|
+
children: selection.label
|
|
278
|
+
}, selection.value);
|
|
279
|
+
})]
|
|
203
280
|
});
|
|
204
281
|
};
|
|
205
282
|
|
|
206
283
|
/**
|
|
207
284
|
* Render post type select dropdown.
|
|
208
285
|
*/
|
|
209
|
-
|
|
286
|
+
var renderPostTypeSelect = function renderPostTypeSelect() {
|
|
210
287
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SelectControl, {
|
|
211
288
|
label: (0, _i18n.sprintf)(
|
|
212
289
|
// Translators: %s: The name of the type.
|
|
213
290
|
(0, _i18n.__)('%s type', 'newspack-plugin'), postTypeLabel.charAt(0).toUpperCase() + postTypeLabel.slice(1)),
|
|
214
291
|
value: postTypeToSearch,
|
|
215
|
-
options: postTypes.map(postTypeOption
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
292
|
+
options: postTypes.map(function (postTypeOption) {
|
|
293
|
+
return {
|
|
294
|
+
label: postTypeOption.label,
|
|
295
|
+
value: postTypeOption.slug
|
|
296
|
+
};
|
|
297
|
+
}),
|
|
298
|
+
onChange: function onChange(_postType) {
|
|
299
|
+
return setPostTypeToSearch(_postType);
|
|
300
|
+
}
|
|
220
301
|
});
|
|
221
302
|
};
|
|
222
303
|
|
|
@@ -225,19 +306,25 @@ const AutocompleteWithSuggestions = ({
|
|
|
225
306
|
*
|
|
226
307
|
* @param {Object} suggestion Suggestion object with value and label keys.
|
|
227
308
|
*/
|
|
228
|
-
|
|
309
|
+
var renderSuggestion = function renderSuggestion(suggestion) {
|
|
229
310
|
if (multiSelect) {
|
|
230
|
-
|
|
231
|
-
|
|
311
|
+
var selections = selectedPost ? [].concat((0, _toConsumableArray2["default"])(selectedItems), [selectedPost]) : (0, _toConsumableArray2["default"])(selectedItems);
|
|
312
|
+
var isSelected = !!selections.find(function (_selection) {
|
|
313
|
+
return parseInt(_selection.value) === parseInt(suggestion.value) && _selection.label === suggestion.label;
|
|
314
|
+
});
|
|
232
315
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
|
|
233
316
|
checked: isSelected,
|
|
234
|
-
onChange: ()
|
|
317
|
+
onChange: function onChange() {
|
|
318
|
+
return handleOnChange([suggestion]);
|
|
319
|
+
},
|
|
235
320
|
label: suggestion.label
|
|
236
321
|
}, suggestion.value);
|
|
237
322
|
}
|
|
238
323
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
239
324
|
isLink: true,
|
|
240
|
-
onClick: ()
|
|
325
|
+
onClick: function onClick() {
|
|
326
|
+
return handleOnChange([suggestion]);
|
|
327
|
+
},
|
|
241
328
|
children: suggestion.label
|
|
242
329
|
}, suggestion.value);
|
|
243
330
|
};
|
|
@@ -245,11 +332,11 @@ const AutocompleteWithSuggestions = ({
|
|
|
245
332
|
/**
|
|
246
333
|
* Render a list of suggestions that can be clicked to select instead of searching by title.
|
|
247
334
|
*/
|
|
248
|
-
|
|
335
|
+
var renderSuggestions = function renderSuggestions() {
|
|
249
336
|
if (0 === suggestions.length) {
|
|
250
337
|
return null;
|
|
251
338
|
}
|
|
252
|
-
|
|
339
|
+
var className = multiSelect ? 'newspack-autocomplete-with-suggestions__search-suggestions-multiselect' : 'newspack-autocomplete-with-suggestions__search-suggestions';
|
|
253
340
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
254
341
|
children: [!hideHelp && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
255
342
|
className: "newspack-autocomplete-with-suggestions__label",
|
|
@@ -259,7 +346,9 @@ const AutocompleteWithSuggestions = ({
|
|
|
259
346
|
children: [suggestions.map(renderSuggestion), suggestions.length < (maxItemsToSuggest || maxSuggestions) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
260
347
|
disabled: isLoadingMore,
|
|
261
348
|
isSecondary: true,
|
|
262
|
-
onClick: ()
|
|
349
|
+
onClick: function onClick() {
|
|
350
|
+
return setIsLoadingMore(true);
|
|
351
|
+
},
|
|
263
352
|
children: isLoadingMore ? (0, _i18n.__)('Loading…', 'newspack-plugin') : (0, _i18n.__)('Load more', 'newspack-plugin')
|
|
264
353
|
})]
|
|
265
354
|
})]
|
|
@@ -270,8 +359,22 @@ const AutocompleteWithSuggestions = ({
|
|
|
270
359
|
children: [0 < selectedItems.length && renderSelections(), 1 < postTypes.length && renderPostTypeSelect(), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.AutocompleteTokenField, {
|
|
271
360
|
tokens: [],
|
|
272
361
|
onChange: handleOnChange,
|
|
273
|
-
fetchSuggestions:
|
|
274
|
-
|
|
362
|
+
fetchSuggestions: (/*#__PURE__*/function () {
|
|
363
|
+
var _ref4 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator().m(function _callee3(search) {
|
|
364
|
+
return _regenerator().w(function (_context3) {
|
|
365
|
+
while (1) switch (_context3.n) {
|
|
366
|
+
case 0:
|
|
367
|
+
return _context3.a(2, handleFetchSuggestions(search, 0, postTypeToSearch));
|
|
368
|
+
}
|
|
369
|
+
}, _callee3);
|
|
370
|
+
}));
|
|
371
|
+
return function (_x2) {
|
|
372
|
+
return _ref4.apply(this, arguments);
|
|
373
|
+
};
|
|
374
|
+
}()),
|
|
375
|
+
fetchSavedInfo: function fetchSavedInfo(postIds) {
|
|
376
|
+
return handleFetchSaved(postIds);
|
|
377
|
+
},
|
|
275
378
|
label: label,
|
|
276
379
|
loading: isLoading,
|
|
277
380
|
help: !hideHelp && help,
|
|
@@ -279,4 +382,4 @@ const AutocompleteWithSuggestions = ({
|
|
|
279
382
|
}), renderSuggestions()]
|
|
280
383
|
});
|
|
281
384
|
};
|
|
282
|
-
var _default = exports
|
|
385
|
+
var _default = exports["default"] = AutocompleteWithSuggestions;
|
package/dist/cjs/badge/index.js
CHANGED
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports
|
|
7
|
+
exports["default"] = void 0;
|
|
8
8
|
require("./style.scss");
|
|
9
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -19,14 +19,14 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
19
19
|
/**
|
|
20
20
|
* Badge component
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
text,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
var Badge = function Badge(_ref) {
|
|
23
|
+
var text = _ref.text,
|
|
24
|
+
_ref$level = _ref.level,
|
|
25
|
+
level = _ref$level === void 0 ? 'default' : _ref$level;
|
|
26
|
+
var classes = (0, _classnames["default"])('newspack-badge', "is-".concat(level));
|
|
27
27
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
28
28
|
className: classes,
|
|
29
29
|
children: text
|
|
30
30
|
});
|
|
31
31
|
};
|
|
32
|
-
var _default = exports
|
|
32
|
+
var _default = exports["default"] = Badge;
|
|
@@ -1,49 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
7
10
|
var _color = require("../utils/color");
|
|
8
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
|
+
var _excluded = ["hexColor", "isInverted", "children"];
|
|
9
13
|
/**
|
|
10
14
|
* Box Contrast
|
|
11
15
|
*
|
|
12
16
|
* can be used to dynamically assign black or white color/background-color based on a hex color.
|
|
13
17
|
* Black/white can be assigned to either text or background-color.
|
|
14
18
|
*/
|
|
15
|
-
|
|
16
19
|
/**
|
|
17
20
|
* Dependencies
|
|
18
21
|
*/
|
|
19
|
-
|
|
20
22
|
/**
|
|
21
23
|
* Box Contrast component
|
|
22
24
|
*
|
|
23
25
|
* @return JSX.Element
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
*/
|
|
27
|
+
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; }
|
|
28
|
+
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; }
|
|
29
|
+
var BoxContrast = function BoxContrast(_ref) {
|
|
30
|
+
var hexColor = _ref.hexColor,
|
|
31
|
+
_ref$isInverted = _ref.isInverted,
|
|
32
|
+
isInverted = _ref$isInverted === void 0 ? false : _ref$isInverted,
|
|
33
|
+
children = _ref.children,
|
|
34
|
+
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
35
|
+
var contrastColor;
|
|
31
36
|
if (hexColor === '#f0f0f0') {
|
|
32
37
|
contrastColor = '#1e1e1e';
|
|
33
38
|
} else {
|
|
34
39
|
contrastColor = (0, _color.getContrast)(hexColor);
|
|
35
40
|
}
|
|
36
|
-
|
|
41
|
+
var style = isInverted ? {
|
|
37
42
|
color: hexColor,
|
|
38
43
|
backgoundColor: contrastColor
|
|
39
44
|
} : {
|
|
40
45
|
backgroundColor: hexColor,
|
|
41
46
|
color: contrastColor
|
|
42
47
|
};
|
|
43
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
44
|
-
...props,
|
|
48
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, props), {}, {
|
|
45
49
|
style: style,
|
|
46
50
|
children: children
|
|
47
|
-
});
|
|
51
|
+
}));
|
|
48
52
|
};
|
|
49
|
-
var _default = exports
|
|
53
|
+
var _default = exports["default"] = BoxContrast;
|