newspack-components 2.1.0 → 2.2.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/dist/cjs/accordion/index.js +46 -0
- package/dist/cjs/accordion/style.scss +27 -0
- package/dist/cjs/action-card/index.js +48 -25
- package/dist/cjs/action-card/style.scss +100 -23
- package/dist/cjs/autocomplete-tokenfield/index.js +13 -41
- package/dist/cjs/autocomplete-tokenfield/style.scss +2 -2
- package/dist/cjs/autocomplete-with-suggestions/index.js +30 -51
- package/dist/cjs/autocomplete-with-suggestions/style.scss +16 -15
- package/dist/cjs/button/index.js +5 -13
- package/dist/cjs/button-card/index.js +1 -10
- package/dist/cjs/button-card/style.scss +13 -13
- package/dist/cjs/card/index.js +1 -8
- package/dist/cjs/card/style.scss +25 -8
- package/dist/cjs/category-autocomplete/index.js +18 -38
- package/dist/cjs/category-autocomplete/style.scss +0 -2
- package/dist/cjs/color-picker/index.js +1 -15
- package/dist/cjs/color-picker/style.scss +0 -3
- package/dist/cjs/consts.js +5 -3
- package/dist/cjs/custom-select-control/index.js +1 -9
- package/dist/cjs/custom-select-control/style.scss +6 -7
- package/dist/cjs/date-range-picker/index.js +1 -10
- package/dist/cjs/date-range-picker/style.scss +12 -12
- package/dist/cjs/footer/index.js +5 -17
- package/dist/cjs/footer/style.scss +5 -5
- package/dist/cjs/form-token-field/index.js +1 -9
- package/dist/cjs/form-token-field/style.scss +2 -3
- package/dist/cjs/global-notices/index.js +1 -8
- package/dist/cjs/grid/index.js +1 -8
- package/dist/cjs/grid/style.scss +5 -5
- package/dist/cjs/handoff/index.js +8 -17
- package/dist/cjs/handoff-message/index.js +50 -0
- package/dist/cjs/hooks/index.js +1 -7
- package/dist/cjs/hooks/useObjectState.js +7 -13
- package/dist/cjs/hooks/useObjectState.test.js +0 -14
- package/dist/cjs/hooks/useOnClickOutside.js +3 -6
- package/dist/cjs/hooks/usePrompt.js +1 -13
- package/dist/cjs/image-upload/index.js +21 -19
- package/dist/cjs/image-upload/index.test.js +0 -5
- package/dist/cjs/image-upload/style.scss +5 -9
- package/dist/cjs/index.js +28 -44
- package/dist/cjs/info-button/index.js +3 -11
- package/dist/cjs/info-button/style.scss +1 -3
- package/dist/cjs/modal/index.js +1 -9
- package/dist/cjs/modal/style.scss +8 -8
- package/dist/cjs/newspack-icon/index.js +1 -9
- package/dist/cjs/newspack-icon/style.scss +4 -4
- package/dist/cjs/newspack-logo/index.js +1 -9
- package/dist/cjs/newspack-logo/style.scss +3 -3
- package/dist/cjs/notice/index.js +8 -15
- package/dist/cjs/notice/style.scss +28 -15
- package/dist/cjs/patrons-logo/index.js +3 -11
- package/dist/cjs/plugin-installer/index.js +36 -36
- package/dist/cjs/plugin-installer/style.scss +5 -5
- package/dist/cjs/plugin-settings/SettingsSection.js +9 -28
- package/dist/cjs/plugin-settings/index.js +39 -22
- package/dist/cjs/plugin-toggle/index.js +40 -33
- package/dist/cjs/plugin-toggle/style.scss +2 -2
- package/dist/cjs/popover/index.js +1 -11
- package/dist/cjs/popover/style.scss +19 -16
- package/dist/cjs/position-control/index.js +113 -0
- package/dist/cjs/position-control/style.scss +66 -0
- package/dist/cjs/progress-bar/index.js +2 -9
- package/dist/cjs/progress-bar/index.test.js +2 -7
- package/dist/cjs/progress-bar/style.scss +4 -4
- package/dist/cjs/proxied-imports/router.js +0 -3
- package/dist/cjs/radio-control/index.js +1 -11
- package/dist/cjs/radio-control/style.scss +9 -9
- package/dist/cjs/section-header/index.js +44 -29
- package/dist/cjs/section-header/style.scss +2 -2
- package/dist/cjs/select-control/ButtonGroupControl.js +4 -13
- package/dist/cjs/select-control/GroupedSelectControl.js +9 -15
- package/dist/cjs/select-control/index.js +5 -12
- package/dist/cjs/select-control/style.scss +2 -2
- package/dist/cjs/settings/MinMaxSetting.js +3 -7
- package/dist/cjs/settings/SettingsCard.js +3 -7
- package/dist/cjs/settings/SettingsSection.js +1 -4
- package/dist/cjs/settings/index.js +0 -6
- package/dist/cjs/settings/style.scss +1 -1
- package/dist/cjs/steps-list/index.js +52 -0
- package/dist/cjs/steps-list/style.scss +11 -0
- package/dist/cjs/steps-list-item/index.js +56 -0
- package/dist/cjs/steps-list-item/style.scss +47 -0
- package/dist/cjs/style-card/index.js +6 -13
- package/dist/cjs/style-card/style.scss +9 -12
- package/dist/cjs/style.scss +5 -6
- package/dist/cjs/tabbed-navigation/index.js +19 -16
- package/dist/cjs/tabbed-navigation/style.scss +3 -4
- package/dist/cjs/text-control/index.js +6 -16
- package/dist/cjs/utils/index.js +10 -5
- package/dist/cjs/waiting/index.js +1 -9
- package/dist/cjs/web-preview/index.js +13 -28
- package/dist/cjs/web-preview/style.scss +14 -14
- package/dist/cjs/with-wizard/index.js +51 -31
- package/dist/cjs/with-wizard/style.scss +35 -37
- package/dist/cjs/with-wizard-screen/index.js +11 -17
- package/dist/cjs/with-wizard-screen/style.scss +14 -17
- package/dist/cjs/wizard/components/WizardError.js +3 -15
- package/dist/cjs/wizard/index.js +10 -24
- package/dist/cjs/wizard/store/index.js +42 -55
- package/dist/cjs/wizard/store/utils.js +1 -6
- package/dist/esm/accordion/index.js +38 -0
- package/dist/esm/accordion/style.scss +27 -0
- package/dist/esm/action-card/index.js +50 -21
- package/dist/esm/action-card/style.scss +100 -23
- package/dist/esm/autocomplete-tokenfield/index.js +14 -37
- package/dist/esm/autocomplete-tokenfield/style.scss +2 -2
- package/dist/esm/autocomplete-with-suggestions/index.js +28 -41
- package/dist/esm/autocomplete-with-suggestions/style.scss +16 -15
- package/dist/esm/button/index.js +5 -7
- package/dist/esm/button-card/index.js +2 -5
- package/dist/esm/button-card/style.scss +13 -13
- package/dist/esm/card/index.js +2 -5
- package/dist/esm/card/style.scss +25 -8
- package/dist/esm/category-autocomplete/index.js +17 -30
- package/dist/esm/category-autocomplete/style.scss +0 -2
- package/dist/esm/color-picker/index.js +2 -4
- package/dist/esm/color-picker/style.scss +0 -3
- package/dist/esm/consts.js +3 -2
- package/dist/esm/custom-select-control/index.js +2 -5
- package/dist/esm/custom-select-control/style.scss +6 -7
- package/dist/esm/date-range-picker/index.js +1 -3
- package/dist/esm/date-range-picker/style.scss +12 -12
- package/dist/esm/footer/index.js +3 -11
- package/dist/esm/footer/style.scss +5 -5
- package/dist/esm/form-token-field/index.js +2 -5
- package/dist/esm/form-token-field/style.scss +2 -3
- package/dist/esm/global-notices/index.js +1 -6
- package/dist/esm/grid/index.js +2 -5
- package/dist/esm/grid/style.scss +5 -5
- package/dist/esm/handoff/index.js +3 -14
- package/dist/esm/handoff-message/index.js +45 -0
- package/dist/esm/hooks/index.js +0 -2
- package/dist/esm/hooks/useObjectState.js +3 -8
- package/dist/esm/hooks/useObjectState.test.js +0 -3
- package/dist/esm/hooks/useOnClickOutside.js +2 -5
- package/dist/esm/hooks/usePrompt.js +1 -8
- package/dist/esm/image-upload/index.js +17 -16
- package/dist/esm/image-upload/style.scss +5 -9
- package/dist/esm/index.js +4 -0
- package/dist/esm/info-button/index.js +4 -6
- package/dist/esm/info-button/style.scss +1 -3
- package/dist/esm/modal/index.js +2 -5
- package/dist/esm/modal/style.scss +8 -8
- package/dist/esm/newspack-icon/index.js +2 -5
- package/dist/esm/newspack-icon/style.scss +4 -4
- package/dist/esm/newspack-logo/index.js +2 -5
- package/dist/esm/newspack-logo/style.scss +3 -3
- package/dist/esm/notice/index.js +4 -8
- package/dist/esm/notice/style.scss +28 -15
- package/dist/esm/patrons-logo/index.js +3 -5
- package/dist/esm/plugin-installer/index.js +35 -39
- package/dist/esm/plugin-installer/style.scss +5 -5
- package/dist/esm/plugin-settings/SettingsSection.js +8 -21
- package/dist/esm/plugin-settings/index.js +38 -24
- package/dist/esm/plugin-toggle/index.js +39 -36
- package/dist/esm/plugin-toggle/style.scss +2 -2
- package/dist/esm/popover/index.js +3 -6
- package/dist/esm/popover/style.scss +19 -16
- package/dist/esm/position-control/index.js +109 -0
- package/dist/esm/position-control/style.scss +66 -0
- package/dist/esm/progress-bar/index.js +2 -7
- package/dist/esm/progress-bar/index.test.js +2 -1
- package/dist/esm/progress-bar/style.scss +4 -4
- package/dist/esm/proxied-imports/router.js +1 -0
- package/dist/esm/radio-control/index.js +3 -6
- package/dist/esm/radio-control/style.scss +9 -9
- package/dist/esm/section-header/index.js +44 -25
- package/dist/esm/section-header/style.scss +2 -2
- package/dist/esm/select-control/ButtonGroupControl.js +5 -7
- package/dist/esm/select-control/GroupedSelectControl.js +5 -6
- package/dist/esm/select-control/index.js +6 -6
- package/dist/esm/select-control/style.scss +2 -2
- package/dist/esm/settings/MinMaxSetting.js +1 -3
- package/dist/esm/settings/SettingsCard.js +3 -4
- package/dist/esm/settings/SettingsSection.js +0 -2
- package/dist/esm/settings/style.scss +1 -1
- package/dist/esm/steps-list/index.js +43 -0
- package/dist/esm/steps-list/style.scss +11 -0
- package/dist/esm/steps-list-item/index.js +48 -0
- package/dist/esm/steps-list-item/style.scss +47 -0
- package/dist/esm/style-card/index.js +2 -5
- package/dist/esm/style-card/style.scss +9 -12
- package/dist/esm/style.scss +5 -6
- package/dist/esm/tabbed-navigation/index.js +20 -10
- package/dist/esm/tabbed-navigation/style.scss +3 -4
- package/dist/esm/text-control/index.js +2 -9
- package/dist/esm/utils/index.js +9 -3
- package/dist/esm/waiting/index.js +2 -5
- package/dist/esm/web-preview/index.js +9 -24
- package/dist/esm/web-preview/style.scss +14 -14
- package/dist/esm/with-wizard/index.js +49 -34
- package/dist/esm/with-wizard/style.scss +35 -37
- package/dist/esm/with-wizard-screen/index.js +9 -11
- package/dist/esm/with-wizard-screen/style.scss +14 -17
- package/dist/esm/wizard/components/WizardError.js +1 -10
- package/dist/esm/wizard/index.js +10 -12
- package/dist/esm/wizard/store/index.js +40 -46
- package/dist/esm/wizard/store/utils.js +1 -1
- package/package.json +4 -4
- package/shared/js/button-props.js +3 -1
- package/shared/scss/_mixins.scss +12 -0
- package/src/accordion/index.js +32 -0
- package/src/accordion/style.scss +27 -0
- package/src/action-card/index.js +43 -8
- package/src/action-card/style.scss +100 -23
- package/src/autocomplete-tokenfield/index.js +1 -1
- package/src/autocomplete-tokenfield/style.scss +2 -2
- package/src/autocomplete-with-suggestions/style.scss +16 -15
- package/src/button-card/style.scss +13 -13
- package/src/card/style.scss +25 -8
- package/src/category-autocomplete/index.js +3 -1
- package/src/category-autocomplete/style.scss +0 -2
- package/src/color-picker/style.scss +0 -3
- package/src/consts.js +2 -1
- package/src/custom-select-control/style.scss +6 -7
- package/src/date-range-picker/style.scss +12 -12
- package/src/footer/index.js +2 -2
- package/src/footer/style.scss +5 -5
- package/src/form-token-field/index.js +2 -7
- package/src/form-token-field/style.scss +2 -3
- package/src/grid/style.scss +5 -5
- package/src/handoff/index.js +3 -8
- package/src/handoff-message/index.js +39 -0
- package/src/hooks/useObjectState.js +2 -1
- package/src/image-upload/index.js +9 -3
- package/src/image-upload/style.scss +5 -9
- package/src/index.js +4 -0
- package/src/info-button/style.scss +1 -3
- package/src/modal/style.scss +8 -8
- package/src/newspack-icon/style.scss +4 -4
- package/src/newspack-logo/style.scss +3 -3
- package/src/notice/index.js +2 -0
- package/src/notice/style.scss +28 -15
- package/src/plugin-installer/index.js +15 -2
- package/src/plugin-installer/style.scss +5 -5
- package/src/plugin-settings/SettingsSection.js +7 -13
- package/src/plugin-settings/index.js +7 -2
- package/src/plugin-toggle/index.js +2 -3
- package/src/plugin-toggle/style.scss +2 -2
- package/src/popover/style.scss +19 -16
- package/src/position-control/index.js +122 -0
- package/src/position-control/style.scss +66 -0
- package/src/progress-bar/style.scss +4 -4
- package/src/radio-control/style.scss +9 -9
- package/src/section-header/index.js +32 -15
- package/src/section-header/style.scss +2 -2
- package/src/select-control/ButtonGroupControl.js +3 -0
- package/src/select-control/GroupedSelectControl.js +2 -1
- package/src/select-control/index.js +6 -2
- package/src/select-control/style.scss +2 -2
- package/src/settings/style.scss +1 -1
- package/src/steps-list/index.js +39 -0
- package/src/steps-list/style.scss +11 -0
- package/src/steps-list-item/index.js +40 -0
- package/src/steps-list-item/style.scss +47 -0
- package/src/style-card/index.js +2 -11
- package/src/style-card/style.scss +9 -12
- package/src/style.scss +5 -6
- package/src/tabbed-navigation/index.js +12 -4
- package/src/tabbed-navigation/style.scss +3 -4
- package/src/utils/index.js +9 -0
- package/src/web-preview/index.js +1 -1
- package/src/web-preview/style.scss +14 -14
- package/src/with-wizard/style.scss +35 -37
- package/src/with-wizard-screen/index.js +4 -1
- package/src/with-wizard-screen/style.scss +14 -17
- package/src/wizard/index.js +15 -3
- package/src/wizard/store/index.js +8 -2
package/dist/cjs/grid/index.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _element = require("@wordpress/element");
|
|
11
|
-
|
|
12
9
|
require("./style.scss");
|
|
13
|
-
|
|
14
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
-
|
|
16
11
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
17
|
-
|
|
18
12
|
/**
|
|
19
13
|
* Grid
|
|
20
14
|
*/
|
|
@@ -30,6 +24,7 @@ var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
|
30
24
|
/**
|
|
31
25
|
* External dependencies
|
|
32
26
|
*/
|
|
27
|
+
|
|
33
28
|
class Grid extends _element.Component {
|
|
34
29
|
/**
|
|
35
30
|
* Render
|
|
@@ -49,9 +44,7 @@ class Grid extends _element.Component {
|
|
|
49
44
|
...otherProps
|
|
50
45
|
});
|
|
51
46
|
}
|
|
52
|
-
|
|
53
47
|
}
|
|
54
|
-
|
|
55
48
|
Grid.defaultProps = {
|
|
56
49
|
columns: 2,
|
|
57
50
|
gutter: 32,
|
package/dist/cjs/grid/style.scss
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Grid
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
@
|
|
5
|
+
@use '~@wordpress/base-styles/colors' as wp-colors;
|
|
6
6
|
|
|
7
7
|
.newspack-grid {
|
|
8
8
|
display: grid;
|
|
@@ -145,9 +145,9 @@
|
|
|
145
145
|
// Table-like
|
|
146
146
|
&__thead {
|
|
147
147
|
background: rgba( black, 0.025 );
|
|
148
|
-
border-bottom: 1px solid
|
|
149
|
-
border-top: 1px solid
|
|
150
|
-
color:
|
|
148
|
+
border-bottom: 1px solid wp-colors.$gray-300;
|
|
149
|
+
border-top: 1px solid wp-colors.$gray-300;
|
|
150
|
+
color: wp-colors.$gray-900;
|
|
151
151
|
|
|
152
152
|
> *:not( .screen-reader-text ) {
|
|
153
153
|
padding: 8px;
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
&__tbody {
|
|
158
|
-
border-bottom: 1px solid
|
|
158
|
+
border-bottom: 1px solid wp-colors.$gray-300;
|
|
159
159
|
padding: 8px 0;
|
|
160
160
|
}
|
|
161
161
|
|
|
@@ -1,37 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _apiFetch = _interopRequireDefault(require("@wordpress/api-fetch"));
|
|
13
|
-
|
|
14
10
|
var _element = require("@wordpress/element");
|
|
15
|
-
|
|
16
11
|
var _i18n = require("@wordpress/i18n");
|
|
17
|
-
|
|
18
12
|
var _ = require("../");
|
|
19
|
-
|
|
20
|
-
var _lodash = require("lodash");
|
|
21
|
-
|
|
13
|
+
var _assign = _interopRequireDefault(require("lodash/assign"));
|
|
22
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
23
|
-
|
|
24
15
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
25
|
-
|
|
26
16
|
/**
|
|
27
17
|
* Handoff
|
|
28
18
|
*/
|
|
29
|
-
|
|
30
19
|
/**
|
|
31
20
|
* WordPress dependencies.
|
|
32
21
|
*/
|
|
22
|
+
/**
|
|
23
|
+
* Internal dependencies.
|
|
24
|
+
*/
|
|
33
25
|
const __ = _i18n.__;
|
|
34
|
-
|
|
26
|
+
/**
|
|
27
|
+
* External dependencies.
|
|
28
|
+
*/
|
|
35
29
|
class Handoff extends _element.Component {
|
|
36
30
|
constructor() {
|
|
37
31
|
super(...arguments);
|
|
@@ -68,7 +62,7 @@ class Handoff extends _element.Component {
|
|
|
68
62
|
primaryModalButton: __('Manage', 'newspack'),
|
|
69
63
|
dismissModalButton: __('Dismiss', 'newspack')
|
|
70
64
|
};
|
|
71
|
-
return (0,
|
|
65
|
+
return (0, _assign.default)(defaults, this.props);
|
|
72
66
|
});
|
|
73
67
|
(0, _defineProperty2.default)(this, "goToPlugin", plugin => {
|
|
74
68
|
const {
|
|
@@ -92,7 +86,6 @@ class Handoff extends _element.Component {
|
|
|
92
86
|
showModal: false
|
|
93
87
|
};
|
|
94
88
|
}
|
|
95
|
-
|
|
96
89
|
/**
|
|
97
90
|
* Render.
|
|
98
91
|
*/
|
|
@@ -180,9 +173,7 @@ class Handoff extends _element.Component {
|
|
|
180
173
|
})]
|
|
181
174
|
});
|
|
182
175
|
}
|
|
183
|
-
|
|
184
176
|
}
|
|
185
|
-
|
|
186
177
|
Handoff.defaultProps = {
|
|
187
178
|
onReady: () => {}
|
|
188
179
|
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = HandoffMessage;
|
|
7
|
+
var _element = require("@wordpress/element");
|
|
8
|
+
var _consts = require("../consts");
|
|
9
|
+
var _ = require("../");
|
|
10
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
11
|
+
/**
|
|
12
|
+
* WordPress dependencies.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Internal dependencies.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Handoff Message Component.
|
|
21
|
+
*/function HandoffMessage() {
|
|
22
|
+
const [handoffMessage, setHandoffMessage] = (0, _element.useState)(false);
|
|
23
|
+
(0, _element.useEffect)(() => {
|
|
24
|
+
// Slight delay to allow for localStorage to be updated by RAS component.
|
|
25
|
+
setTimeout(() => {
|
|
26
|
+
const handoff = JSON.parse(localStorage.getItem(_consts.HANDOFF_KEY));
|
|
27
|
+
if (handoff?.message) {
|
|
28
|
+
setHandoffMessage(handoff.message);
|
|
29
|
+
} else {
|
|
30
|
+
setHandoffMessage(false);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Clean up the notification if navigating away from the relevant page.
|
|
34
|
+
if (handoff?.url && -1 === window.location.href.indexOf(handoff.url)) {
|
|
35
|
+
window.localStorage.removeItem(_consts.HANDOFF_KEY);
|
|
36
|
+
setHandoffMessage(false);
|
|
37
|
+
}
|
|
38
|
+
}, 100);
|
|
39
|
+
|
|
40
|
+
// Clean up the notification when unmounting.
|
|
41
|
+
return () => window.localStorage.removeItem(_consts.HANDOFF_KEY);
|
|
42
|
+
}, []);
|
|
43
|
+
if (!handoffMessage) return null;
|
|
44
|
+
return (0, _jsxRuntime.jsx)(_.Notice, {
|
|
45
|
+
isHandoff: true,
|
|
46
|
+
isDismissible: false,
|
|
47
|
+
rawHTML: true,
|
|
48
|
+
noticeText: handoffMessage
|
|
49
|
+
});
|
|
50
|
+
}
|
package/dist/cjs/hooks/index.js
CHANGED
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _element = require("@wordpress/element");
|
|
11
|
-
|
|
12
9
|
var _usePrompt = _interopRequireDefault(require("./usePrompt"));
|
|
13
|
-
|
|
14
10
|
var _useObjectState = _interopRequireDefault(require("./useObjectState"));
|
|
15
|
-
|
|
16
11
|
var _useOnClickOutside = _interopRequireDefault(require("./useOnClickOutside"));
|
|
17
|
-
|
|
18
12
|
/**
|
|
19
13
|
* WordPress dependencies
|
|
20
14
|
*/
|
|
15
|
+
|
|
21
16
|
const useUniqueId = prefix => {
|
|
22
17
|
const id = (0, _element.useRef)(`${prefix}-${Math.round(Math.random() * 99999)}`);
|
|
23
18
|
return id.current;
|
|
24
19
|
};
|
|
25
|
-
|
|
26
20
|
var _default = {
|
|
27
21
|
usePrompt: _usePrompt.default,
|
|
28
22
|
useObjectState: _useObjectState.default,
|
|
@@ -1,46 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
7
|
-
|
|
8
8
|
var _element = require("@wordpress/element");
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
9
|
+
var _isArray = _interopRequireDefault(require("lodash/isArray"));
|
|
10
|
+
var _mergeWith = _interopRequireDefault(require("lodash/mergeWith"));
|
|
12
11
|
/**
|
|
13
12
|
* WordPress dependencies
|
|
14
13
|
*/
|
|
14
|
+
|
|
15
15
|
const mergeCustomizer = (objValue, srcValue) => {
|
|
16
|
-
if ((0,
|
|
16
|
+
if ((0, _isArray.default)(objValue)) {
|
|
17
17
|
// If it's an array, replace it (instead of concatenating).
|
|
18
18
|
return srcValue;
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
|
+
|
|
21
22
|
/**
|
|
22
23
|
* A useState for an object.
|
|
23
24
|
* Nested objects will be nested, but arrays replaced.
|
|
24
25
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
26
|
var _default = function _default() {
|
|
28
27
|
let initial = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
29
28
|
const [stateObject, setStateObject] = (0, _element.useState)(initial);
|
|
30
|
-
|
|
31
|
-
const runUpdate = update => setStateObject(_stateObject => (0, _lodash.mergeWith)({}, _stateObject, update, mergeCustomizer));
|
|
32
|
-
|
|
29
|
+
const runUpdate = update => setStateObject(_stateObject => (0, _mergeWith.default)({}, _stateObject, update, mergeCustomizer));
|
|
33
30
|
const updateStateObject = keyOrUpdate => {
|
|
34
31
|
if (typeof keyOrUpdate === 'string') {
|
|
35
32
|
return value => runUpdate({
|
|
36
33
|
[keyOrUpdate]: value
|
|
37
34
|
});
|
|
38
35
|
}
|
|
39
|
-
|
|
40
36
|
runUpdate(keyOrUpdate);
|
|
41
37
|
};
|
|
42
|
-
|
|
43
38
|
return [stateObject, updateStateObject];
|
|
44
39
|
};
|
|
45
|
-
|
|
46
40
|
exports.default = _default;
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _useObjectState = _interopRequireDefault(require("./useObjectState"));
|
|
10
|
-
|
|
11
7
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
12
|
-
|
|
13
8
|
const INIT_STATE = {
|
|
14
9
|
name: 'Foo',
|
|
15
10
|
widgets: [1],
|
|
@@ -18,7 +13,6 @@ const INIT_STATE = {
|
|
|
18
13
|
baz: 1
|
|
19
14
|
}
|
|
20
15
|
};
|
|
21
|
-
|
|
22
16
|
const TestComponent = () => {
|
|
23
17
|
const [state, updateState] = (0, _useObjectState.default)(INIT_STATE);
|
|
24
18
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
@@ -53,24 +47,18 @@ const TestComponent = () => {
|
|
|
53
47
|
})]
|
|
54
48
|
});
|
|
55
49
|
};
|
|
56
|
-
|
|
57
50
|
describe('useObjectState', () => {
|
|
58
51
|
const getState = () => JSON.parse(_react2.screen.getByPlaceholderText('state').getAttribute('value'));
|
|
59
|
-
|
|
60
52
|
beforeEach(() => {
|
|
61
53
|
(0, _react2.render)((0, _jsxRuntime.jsx)(TestComponent, {}));
|
|
62
54
|
});
|
|
63
55
|
it('updates arrays', () => {
|
|
64
56
|
expect(getState()).toStrictEqual(INIT_STATE);
|
|
65
|
-
|
|
66
57
|
_react2.screen.getByText('Remove widgets').click();
|
|
67
|
-
|
|
68
58
|
expect(getState()).toMatchObject({
|
|
69
59
|
widgets: []
|
|
70
60
|
});
|
|
71
|
-
|
|
72
61
|
_react2.screen.getByText('Add widget').click();
|
|
73
|
-
|
|
74
62
|
expect(getState()).toMatchObject({
|
|
75
63
|
widgets: [1]
|
|
76
64
|
});
|
|
@@ -81,14 +69,12 @@ describe('useObjectState', () => {
|
|
|
81
69
|
value: 'Ramon'
|
|
82
70
|
}
|
|
83
71
|
});
|
|
84
|
-
|
|
85
72
|
expect(getState()).toMatchObject({
|
|
86
73
|
name: 'Ramon'
|
|
87
74
|
});
|
|
88
75
|
});
|
|
89
76
|
it('updates a nested object', () => {
|
|
90
77
|
_react2.screen.getByText('Nested update').click();
|
|
91
|
-
|
|
92
78
|
expect(getState()).toMatchObject({
|
|
93
79
|
attributes: {
|
|
94
80
|
bar: 2,
|
|
@@ -4,14 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _element = require("@wordpress/element");
|
|
9
|
-
|
|
10
8
|
// https://usehooks.com/useOnClickOutside/
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* External dependencies.
|
|
14
12
|
*/
|
|
13
|
+
|
|
15
14
|
const useOnClickOutside = (ref, handler) => {
|
|
16
15
|
(0, _element.useEffect)(() => {
|
|
17
16
|
const listener = event => {
|
|
@@ -19,17 +18,16 @@ const useOnClickOutside = (ref, handler) => {
|
|
|
19
18
|
if (!ref.current || ref.current.contains(event.target)) {
|
|
20
19
|
return;
|
|
21
20
|
}
|
|
22
|
-
|
|
23
21
|
handler(event);
|
|
24
22
|
};
|
|
25
|
-
|
|
26
23
|
document.addEventListener('mousedown', listener);
|
|
27
24
|
document.addEventListener('touchstart', listener);
|
|
28
25
|
return () => {
|
|
29
26
|
document.removeEventListener('mousedown', listener);
|
|
30
27
|
document.removeEventListener('touchstart', listener);
|
|
31
28
|
};
|
|
32
|
-
},
|
|
29
|
+
},
|
|
30
|
+
// Add ref and handler to effect dependencies
|
|
33
31
|
// It's worth noting that because passed in handler is a new ...
|
|
34
32
|
// ... function on every render that will cause this effect ...
|
|
35
33
|
// ... callback/cleanup to run every render. It's not a big deal ...
|
|
@@ -37,6 +35,5 @@ const useOnClickOutside = (ref, handler) => {
|
|
|
37
35
|
// ... passing it into this hook.
|
|
38
36
|
[ref, handler]);
|
|
39
37
|
};
|
|
40
|
-
|
|
41
38
|
var _default = useOnClickOutside;
|
|
42
39
|
exports.default = _default;
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _element = require("@wordpress/element");
|
|
11
|
-
|
|
12
9
|
var _router = _interopRequireDefault(require("../proxied-imports/router"));
|
|
13
|
-
|
|
14
10
|
// https://gist.github.com/sibelius/60a4e11da1f826b8d60dc3975a1ac805
|
|
15
11
|
|
|
16
12
|
/**
|
|
@@ -20,45 +16,37 @@ var _router = _interopRequireDefault(require("../proxied-imports/router"));
|
|
|
20
16
|
/**
|
|
21
17
|
* Internal dependencies.
|
|
22
18
|
*/
|
|
19
|
+
|
|
23
20
|
const {
|
|
24
21
|
useHistory
|
|
25
22
|
} = _router.default;
|
|
26
|
-
|
|
27
23
|
var _default = (when, message) => {
|
|
28
24
|
const history = useHistory();
|
|
29
25
|
const self = (0, _element.useRef)(null);
|
|
30
|
-
|
|
31
26
|
const onWindowOrTabClose = event => {
|
|
32
27
|
if (!when) {
|
|
33
28
|
return;
|
|
34
29
|
}
|
|
35
|
-
|
|
36
30
|
if (typeof event === 'undefined') {
|
|
37
31
|
event = window.event;
|
|
38
32
|
}
|
|
39
|
-
|
|
40
33
|
if (event) {
|
|
41
34
|
event.returnValue = message;
|
|
42
35
|
}
|
|
43
|
-
|
|
44
36
|
return message;
|
|
45
37
|
};
|
|
46
|
-
|
|
47
38
|
(0, _element.useEffect)(() => {
|
|
48
39
|
if (when) {
|
|
49
40
|
self.current = history.block(message);
|
|
50
41
|
window.addEventListener('beforeunload', onWindowOrTabClose);
|
|
51
42
|
}
|
|
52
|
-
|
|
53
43
|
return () => {
|
|
54
44
|
if (self.current) {
|
|
55
45
|
self.current();
|
|
56
46
|
}
|
|
57
|
-
|
|
58
47
|
window.removeEventListener('beforeunload', onWindowOrTabClose);
|
|
59
48
|
};
|
|
60
49
|
}, [message, when]);
|
|
61
50
|
return self.current;
|
|
62
51
|
};
|
|
63
|
-
|
|
64
52
|
exports.default = _default;
|
|
@@ -1,47 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _element = require("@wordpress/element");
|
|
13
|
-
|
|
14
10
|
var _i18n = require("@wordpress/i18n");
|
|
15
|
-
|
|
16
11
|
var _ = require("../");
|
|
17
|
-
|
|
18
12
|
require("./style.scss");
|
|
19
|
-
|
|
20
13
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
21
|
-
|
|
22
14
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
23
|
-
|
|
24
15
|
/**
|
|
25
16
|
* Image Upload
|
|
26
17
|
*/
|
|
27
|
-
|
|
28
18
|
/**
|
|
29
19
|
* WordPress dependencies.
|
|
30
20
|
*/
|
|
21
|
+
/**
|
|
22
|
+
* Internal dependencies.
|
|
23
|
+
*/
|
|
31
24
|
const __ = _i18n.__;
|
|
32
|
-
|
|
25
|
+
/**
|
|
26
|
+
* External dependencies.
|
|
27
|
+
*/
|
|
33
28
|
class ImageUpload extends _element.Component {
|
|
34
29
|
/**
|
|
35
30
|
* Constructor.
|
|
36
31
|
*/
|
|
37
32
|
constructor() {
|
|
38
33
|
super(...arguments);
|
|
34
|
+
/**
|
|
35
|
+
* Open the WP media modal.
|
|
36
|
+
*/
|
|
39
37
|
(0, _defineProperty2.default)(this, "openModal", () => {
|
|
40
38
|
if (this.state.frame) {
|
|
41
39
|
this.state.frame.open();
|
|
42
40
|
return;
|
|
43
41
|
}
|
|
44
|
-
|
|
45
42
|
this.setState({
|
|
46
43
|
frame: wp.media({
|
|
47
44
|
title: __('Select or upload image'),
|
|
@@ -58,6 +55,9 @@ class ImageUpload extends _element.Component {
|
|
|
58
55
|
this.state.frame.open();
|
|
59
56
|
});
|
|
60
57
|
});
|
|
58
|
+
/**
|
|
59
|
+
* Update the state when an image is selected from the media modal.
|
|
60
|
+
*/
|
|
61
61
|
(0, _defineProperty2.default)(this, "handleImageSelect", () => {
|
|
62
62
|
const {
|
|
63
63
|
onChange
|
|
@@ -65,10 +65,14 @@ class ImageUpload extends _element.Component {
|
|
|
65
65
|
const attachment = this.state.frame.state().get('selection').first().toJSON();
|
|
66
66
|
onChange(attachment);
|
|
67
67
|
});
|
|
68
|
+
/**
|
|
69
|
+
* Render.
|
|
70
|
+
*/
|
|
68
71
|
(0, _defineProperty2.default)(this, "render", () => {
|
|
69
72
|
const {
|
|
70
73
|
buttonLabel,
|
|
71
74
|
className,
|
|
75
|
+
disabled,
|
|
72
76
|
help,
|
|
73
77
|
image,
|
|
74
78
|
info,
|
|
@@ -94,7 +98,8 @@ class ImageUpload extends _element.Component {
|
|
|
94
98
|
})]
|
|
95
99
|
}), (0, _jsxRuntime.jsx)("div", {
|
|
96
100
|
className: classes,
|
|
97
|
-
style: {
|
|
101
|
+
style: {
|
|
102
|
+
...style
|
|
98
103
|
},
|
|
99
104
|
children: image?.url ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
100
105
|
children: [(0, _jsxRuntime.jsx)("img", {
|
|
@@ -104,12 +109,14 @@ class ImageUpload extends _element.Component {
|
|
|
104
109
|
}), (0, _jsxRuntime.jsxs)("div", {
|
|
105
110
|
className: "newspack-image-upload__controls",
|
|
106
111
|
children: [(0, _jsxRuntime.jsx)(_.Button, {
|
|
112
|
+
disabled: disabled,
|
|
107
113
|
onClick: this.openModal,
|
|
108
114
|
isLink: true,
|
|
109
115
|
children: __('Replace', 'newspack')
|
|
110
116
|
}), (0, _jsxRuntime.jsx)("span", {
|
|
111
117
|
className: "sep"
|
|
112
118
|
}), (0, _jsxRuntime.jsx)(_.Button, {
|
|
119
|
+
disabled: disabled,
|
|
113
120
|
onClick: () => onChange(null),
|
|
114
121
|
isLink: true,
|
|
115
122
|
isDestructive: true,
|
|
@@ -117,6 +124,7 @@ class ImageUpload extends _element.Component {
|
|
|
117
124
|
})]
|
|
118
125
|
})]
|
|
119
126
|
}) : (0, _jsxRuntime.jsx)(_.Button, {
|
|
127
|
+
disabled: disabled,
|
|
120
128
|
onClick: this.openModal,
|
|
121
129
|
isLink: true,
|
|
122
130
|
children: buttonLabel ? buttonLabel : __('Upload', 'newspack')
|
|
@@ -131,12 +139,6 @@ class ImageUpload extends _element.Component {
|
|
|
131
139
|
frame: false
|
|
132
140
|
};
|
|
133
141
|
}
|
|
134
|
-
/**
|
|
135
|
-
* Open the WP media modal.
|
|
136
|
-
*/
|
|
137
|
-
|
|
138
|
-
|
|
139
142
|
}
|
|
140
|
-
|
|
141
143
|
var _default = ImageUpload;
|
|
142
144
|
exports.default = _default;
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _ = _interopRequireDefault(require("./"));
|
|
10
|
-
|
|
11
7
|
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
12
|
-
|
|
13
8
|
describe('ImageUpload', () => {
|
|
14
9
|
it('should render an add image button', () => {
|
|
15
10
|
const {
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* Image Upload
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
@
|
|
6
|
-
@import '~@wordpress/base-styles/colors';
|
|
5
|
+
@use '~@wordpress/base-styles/colors' as wp-colors;
|
|
7
6
|
|
|
8
7
|
.newspack-image-upload {
|
|
9
8
|
margin: 32px 0;
|
|
@@ -18,7 +17,7 @@
|
|
|
18
17
|
background-repeat: no-repeat;
|
|
19
18
|
background-size: contain;
|
|
20
19
|
background-position: center;
|
|
21
|
-
border: 1px dashed
|
|
20
|
+
border: 1px dashed wp-colors.$gray-700;
|
|
22
21
|
border-radius: 2px;
|
|
23
22
|
display: flex;
|
|
24
23
|
justify-content: center;
|
|
@@ -52,12 +51,9 @@
|
|
|
52
51
|
&::after {
|
|
53
52
|
border: 1px solid rgba( black, 0.54 );
|
|
54
53
|
border-radius: 2px;
|
|
55
|
-
bottom: 0;
|
|
56
54
|
content: '';
|
|
57
|
-
|
|
55
|
+
inset: 0;
|
|
58
56
|
position: absolute;
|
|
59
|
-
right: 0;
|
|
60
|
-
top: 0;
|
|
61
57
|
z-index: 0;
|
|
62
58
|
}
|
|
63
59
|
button,
|
|
@@ -71,7 +67,7 @@
|
|
|
71
67
|
}
|
|
72
68
|
&::after {
|
|
73
69
|
background: rgba( white, 0.9 );
|
|
74
|
-
border-color:
|
|
70
|
+
border-color: wp-colors.$gray-700;
|
|
75
71
|
}
|
|
76
72
|
&:focus-within,
|
|
77
73
|
&:hover {
|
|
@@ -94,7 +90,7 @@
|
|
|
94
90
|
}
|
|
95
91
|
}
|
|
96
92
|
&__image + &__help {
|
|
97
|
-
color:
|
|
93
|
+
color: wp-colors.$gray-700;
|
|
98
94
|
font-size: 12px;
|
|
99
95
|
margin: 1em 0 0;
|
|
100
96
|
}
|