--- a/wp/wp-includes/js/dist/notices.js Thu Sep 29 08:06:27 2022 +0200
+++ b/wp/wp-includes/js/dist/notices.js Fri Sep 05 18:40:08 2025 +0200
@@ -1,36 +1,36 @@
-/******/ (function() { // webpackBootstrap
+/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/define property getters */
-/******/ !function() {
+/******/ (() => {
/******/ // define getter functions for harmony exports
-/******/ __webpack_require__.d = function(exports, definition) {
+/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
-/******/ }();
+/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
-/******/ !function() {
-/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
-/******/ }();
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
-/******/ !function() {
+/******/ (() => {
/******/ // define __esModule on exports
-/******/ __webpack_require__.r = function(exports) {
+/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
-/******/ }();
+/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
@@ -39,32 +39,32 @@
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
- "store": function() { return /* reexport */ store; }
+ store: () => (/* reexport */ store)
});
// NAMESPACE OBJECT: ./node_modules/@wordpress/notices/build-module/store/actions.js
var actions_namespaceObject = {};
__webpack_require__.r(actions_namespaceObject);
__webpack_require__.d(actions_namespaceObject, {
- "createErrorNotice": function() { return createErrorNotice; },
- "createInfoNotice": function() { return createInfoNotice; },
- "createNotice": function() { return createNotice; },
- "createSuccessNotice": function() { return createSuccessNotice; },
- "createWarningNotice": function() { return createWarningNotice; },
- "removeNotice": function() { return removeNotice; }
+ createErrorNotice: () => (createErrorNotice),
+ createInfoNotice: () => (createInfoNotice),
+ createNotice: () => (createNotice),
+ createSuccessNotice: () => (createSuccessNotice),
+ createWarningNotice: () => (createWarningNotice),
+ removeAllNotices: () => (removeAllNotices),
+ removeNotice: () => (removeNotice),
+ removeNotices: () => (removeNotices)
});
// NAMESPACE OBJECT: ./node_modules/@wordpress/notices/build-module/store/selectors.js
var selectors_namespaceObject = {};
__webpack_require__.r(selectors_namespaceObject);
__webpack_require__.d(selectors_namespaceObject, {
- "getNotices": function() { return getNotices; }
+ getNotices: () => (getNotices)
});
;// CONCATENATED MODULE: external ["wp","data"]
-var external_wp_data_namespaceObject = window["wp"]["data"];
-;// CONCATENATED MODULE: external "lodash"
-var external_lodash_namespaceObject = window["lodash"];
+const external_wp_data_namespaceObject = window["wp"]["data"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/utils/on-sub-key.js
/**
* Higher-order reducer creator which creates a combined reducer object, keyed
@@ -74,37 +74,29 @@
*
* @return {Function} Higher-order reducer.
*/
-const onSubKey = actionProperty => reducer => function () {
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- let action = arguments.length > 1 ? arguments[1] : undefined;
+const onSubKey = actionProperty => reducer => (state = {}, action) => {
// Retrieve subkey from action. Do not track if undefined; useful for cases
// where reducer is scoped by action shape.
const key = action[actionProperty];
-
if (key === undefined) {
return state;
- } // Avoid updating state if unchanged. Note that this also accounts for a
- // reducer which returns undefined on a key which is not yet tracked.
+ }
-
+ // Avoid updating state if unchanged. Note that this also accounts for a
+ // reducer which returns undefined on a key which is not yet tracked.
const nextKeyState = reducer(state[key], action);
-
if (nextKeyState === state[key]) {
return state;
}
-
- return { ...state,
+ return {
+ ...state,
[key]: nextKeyState
};
};
-/* harmony default export */ var on_sub_key = (onSubKey);
+/* harmony default export */ const on_sub_key = (onSubKey);
;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/reducer.js
/**
- * External dependencies
- */
-
-/**
* Internal dependencies
*/
@@ -118,27 +110,29 @@
*
* @return {Object} Updated state.
*/
-
-const notices = on_sub_key('context')(function () {
- let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
- let action = arguments.length > 1 ? arguments[1] : undefined;
-
+const notices = on_sub_key('context')((state = [], action) => {
switch (action.type) {
case 'CREATE_NOTICE':
// Avoid duplicates on ID.
- return [...(0,external_lodash_namespaceObject.reject)(state, {
- id: action.notice.id
- }), action.notice];
-
+ return [...state.filter(({
+ id
+ }) => id !== action.notice.id), action.notice];
case 'REMOVE_NOTICE':
- return (0,external_lodash_namespaceObject.reject)(state, {
- id: action.id
- });
+ return state.filter(({
+ id
+ }) => id !== action.id);
+ case 'REMOVE_NOTICES':
+ return state.filter(({
+ id
+ }) => !action.ids.includes(id));
+ case 'REMOVE_ALL_NOTICES':
+ return state.filter(({
+ type
+ }) => type !== action.noticeType);
}
-
return state;
});
-/* harmony default export */ var reducer = (notices);
+/* harmony default export */ const reducer = (notices);
;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/constants.js
/**
@@ -149,20 +143,16 @@
* @type {string}
*/
const DEFAULT_CONTEXT = 'global';
+
/**
* Default notice status.
*
* @type {string}
*/
-
const DEFAULT_STATUS = 'info';
;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/actions.js
/**
- * External dependencies
- */
-
-/**
* Internal dependencies
*/
@@ -175,13 +165,14 @@
* browser navigation.
* @property {?Function} onClick Optional function to invoke when action is
* triggered by user.
- *
*/
+let uniqueId = 0;
+
/**
* Returns an action object used in signalling that a notice is to be created.
*
- * @param {string} [status='info'] Notice status.
+ * @param {string|undefined} status Notice status ("info" if undefined is passed).
* @param {string} content Notice message.
* @param {Object} [options] Notice options.
* @param {string} [options.context='global'] Context under which to
@@ -199,35 +190,53 @@
* readers.
* @param {Array<WPNoticeAction>} [options.actions] User actions to be
* presented with notice.
- * @param {Object} [options.icon] An icon displayed with the notice.
+ * @param {string} [options.icon] An icon displayed with the notice.
+ * Only used when type is set to `snackbar`.
* @param {boolean} [options.explicitDismiss] Whether the notice includes
- * an explict dismiss button and
+ * an explicit dismiss button and
* can't be dismissed by clicking
- * the body of the notice.
+ * the body of the notice. Only applies
+ * when type is set to `snackbar`.
* @param {Function} [options.onDismiss] Called when the notice is dismissed.
*
+ * @example
+ * ```js
+ * import { __ } from '@wordpress/i18n';
+ * import { useDispatch } from '@wordpress/data';
+ * import { store as noticesStore } from '@wordpress/notices';
+ * import { Button } from '@wordpress/components';
+ *
+ * const ExampleComponent = () => {
+ * const { createNotice } = useDispatch( noticesStore );
+ * return (
+ * <Button
+ * onClick={ () => createNotice( 'success', __( 'Notice message' ) ) }
+ * >
+ * { __( 'Generate a success notice!' ) }
+ * </Button>
+ * );
+ * };
+ * ```
+ *
* @return {Object} Action object.
*/
-
-function createNotice() {
- let status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_STATUS;
- let content = arguments.length > 1 ? arguments[1] : undefined;
- let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+function createNotice(status = DEFAULT_STATUS, content, options = {}) {
const {
speak = true,
isDismissible = true,
context = DEFAULT_CONTEXT,
- id = (0,external_lodash_namespaceObject.uniqueId)(context),
+ id = `${context}${++uniqueId}`,
actions = [],
type = 'default',
__unstableHTML,
icon = null,
explicitDismiss = false,
onDismiss
- } = options; // The supported value shape of content is currently limited to plain text
- // strings. To avoid setting expectation that e.g. a WPElement could be
+ } = options;
+
+ // The supported value shape of content is currently limited to plain text
+ // strings. To avoid setting expectation that e.g. a React Element could be
// supported, cast to a string.
-
content = String(content);
return {
type: 'CREATE_NOTICE',
@@ -247,6 +256,7 @@
}
};
}
+
/**
* Returns an action object used in signalling that a success notice is to be
* created. Refer to `createNotice` for options documentation.
@@ -256,12 +266,36 @@
* @param {string} content Notice message.
* @param {Object} [options] Optional notice options.
*
+ * @example
+ * ```js
+ * import { __ } from '@wordpress/i18n';
+ * import { useDispatch } from '@wordpress/data';
+ * import { store as noticesStore } from '@wordpress/notices';
+ * import { Button } from '@wordpress/components';
+ *
+ * const ExampleComponent = () => {
+ * const { createSuccessNotice } = useDispatch( noticesStore );
+ * return (
+ * <Button
+ * onClick={ () =>
+ * createSuccessNotice( __( 'Success!' ), {
+ * type: 'snackbar',
+ * icon: '🔥',
+ * } )
+ * }
+ * >
+ * { __( 'Generate a snackbar success notice!' ) }
+ * </Button>
+ * );
+ * };
+ * ```
+ *
* @return {Object} Action object.
*/
-
function createSuccessNotice(content, options) {
return createNotice('success', content, options);
}
+
/**
* Returns an action object used in signalling that an info notice is to be
* created. Refer to `createNotice` for options documentation.
@@ -271,12 +305,35 @@
* @param {string} content Notice message.
* @param {Object} [options] Optional notice options.
*
+ * @example
+ * ```js
+ * import { __ } from '@wordpress/i18n';
+ * import { useDispatch } from '@wordpress/data';
+ * import { store as noticesStore } from '@wordpress/notices';
+ * import { Button } from '@wordpress/components';
+ *
+ * const ExampleComponent = () => {
+ * const { createInfoNotice } = useDispatch( noticesStore );
+ * return (
+ * <Button
+ * onClick={ () =>
+ * createInfoNotice( __( 'Something happened!' ), {
+ * isDismissible: false,
+ * } )
+ * }
+ * >
+ * { __( 'Generate a notice that cannot be dismissed.' ) }
+ * </Button>
+ * );
+ * };
+ *```
+ *
* @return {Object} Action object.
*/
-
function createInfoNotice(content, options) {
return createNotice('info', content, options);
}
+
/**
* Returns an action object used in signalling that an error notice is to be
* created. Refer to `createNotice` for options documentation.
@@ -286,12 +343,38 @@
* @param {string} content Notice message.
* @param {Object} [options] Optional notice options.
*
+ * @example
+ * ```js
+ * import { __ } from '@wordpress/i18n';
+ * import { useDispatch } from '@wordpress/data';
+ * import { store as noticesStore } from '@wordpress/notices';
+ * import { Button } from '@wordpress/components';
+ *
+ * const ExampleComponent = () => {
+ * const { createErrorNotice } = useDispatch( noticesStore );
+ * return (
+ * <Button
+ * onClick={ () =>
+ * createErrorNotice( __( 'An error occurred!' ), {
+ * type: 'snackbar',
+ * explicitDismiss: true,
+ * } )
+ * }
+ * >
+ * { __(
+ * 'Generate an snackbar error notice with explicit dismiss button.'
+ * ) }
+ * </Button>
+ * );
+ * };
+ * ```
+ *
* @return {Object} Action object.
*/
-
function createErrorNotice(content, options) {
return createNotice('error', content, options);
}
+
/**
* Returns an action object used in signalling that a warning notice is to be
* created. Refer to `createNotice` for options documentation.
@@ -301,12 +384,39 @@
* @param {string} content Notice message.
* @param {Object} [options] Optional notice options.
*
+ * @example
+ * ```js
+ * import { __ } from '@wordpress/i18n';
+ * import { useDispatch } from '@wordpress/data';
+ * import { store as noticesStore } from '@wordpress/notices';
+ * import { Button } from '@wordpress/components';
+ *
+ * const ExampleComponent = () => {
+ * const { createWarningNotice, createInfoNotice } = useDispatch( noticesStore );
+ * return (
+ * <Button
+ * onClick={ () =>
+ * createWarningNotice( __( 'Warning!' ), {
+ * onDismiss: () => {
+ * createInfoNotice(
+ * __( 'The warning has been dismissed!' )
+ * );
+ * },
+ * } )
+ * }
+ * >
+ * { __( 'Generates a warning notice with onDismiss callback' ) }
+ * </Button>
+ * );
+ * };
+ * ```
+ *
* @return {Object} Action object.
*/
-
function createWarningNotice(content, options) {
return createNotice('warning', content, options);
}
+
/**
* Returns an action object used in signalling that a notice is to be removed.
*
@@ -314,11 +424,41 @@
* @param {string} [context='global'] Optional context (grouping) in which the notice is
* intended to appear. Defaults to default context.
*
+ * @example
+ * ```js
+ * import { __ } from '@wordpress/i18n';
+ * import { useDispatch } from '@wordpress/data';
+ * import { store as noticesStore } from '@wordpress/notices';
+ * import { Button } from '@wordpress/components';
+ *
+ * const ExampleComponent = () => {
+ * const notices = useSelect( ( select ) => select( noticesStore ).getNotices() );
+ * const { createWarningNotice, removeNotice } = useDispatch( noticesStore );
+ *
+ * return (
+ * <>
+ * <Button
+ * onClick={ () =>
+ * createWarningNotice( __( 'Warning!' ), {
+ * isDismissible: false,
+ * } )
+ * }
+ * >
+ * { __( 'Generate a notice' ) }
+ * </Button>
+ * { notices.length > 0 && (
+ * <Button onClick={ () => removeNotice( notices[ 0 ].id ) }>
+ * { __( 'Remove the notice' ) }
+ * </Button>
+ * ) }
+ * </>
+ * );
+ *};
+ * ```
+ *
* @return {Object} Action object.
*/
-
-function removeNotice(id) {
- let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_CONTEXT;
+function removeNotice(id, context = DEFAULT_CONTEXT) {
return {
type: 'REMOVE_NOTICE',
id,
@@ -326,11 +466,112 @@
};
}
+/**
+ * Removes all notices from a given context. Defaults to the default context.
+ *
+ * @param {string} noticeType The context to remove all notices from.
+ * @param {string} context The context to remove all notices from.
+ *
+ * @example
+ * ```js
+ * import { __ } from '@wordpress/i18n';
+ * import { useDispatch, useSelect } from '@wordpress/data';
+ * import { store as noticesStore } from '@wordpress/notices';
+ * import { Button } from '@wordpress/components';
+ *
+ * export const ExampleComponent = () => {
+ * const notices = useSelect( ( select ) =>
+ * select( noticesStore ).getNotices()
+ * );
+ * const { removeAllNotices } = useDispatch( noticesStore );
+ * return (
+ * <>
+ * <ul>
+ * { notices.map( ( notice ) => (
+ * <li key={ notice.id }>{ notice.content }</li>
+ * ) ) }
+ * </ul>
+ * <Button
+ * onClick={ () =>
+ * removeAllNotices()
+ * }
+ * >
+ * { __( 'Clear all notices', 'woo-gutenberg-products-block' ) }
+ * </Button>
+ * <Button
+ * onClick={ () =>
+ * removeAllNotices( 'snackbar' )
+ * }
+ * >
+ * { __( 'Clear all snackbar notices', 'woo-gutenberg-products-block' ) }
+ * </Button>
+ * </>
+ * );
+ * };
+ * ```
+ *
+ * @return {Object} Action object.
+ */
+function removeAllNotices(noticeType = 'default', context = DEFAULT_CONTEXT) {
+ return {
+ type: 'REMOVE_ALL_NOTICES',
+ noticeType,
+ context
+ };
+}
+
+/**
+ * Returns an action object used in signalling that several notices are to be removed.
+ *
+ * @param {string[]} ids List of unique notice identifiers.
+ * @param {string} [context='global'] Optional context (grouping) in which the notices are
+ * intended to appear. Defaults to default context.
+ * @example
+ * ```js
+ * import { __ } from '@wordpress/i18n';
+ * import { useDispatch, useSelect } from '@wordpress/data';
+ * import { store as noticesStore } from '@wordpress/notices';
+ * import { Button } from '@wordpress/components';
+ *
+ * const ExampleComponent = () => {
+ * const notices = useSelect( ( select ) =>
+ * select( noticesStore ).getNotices()
+ * );
+ * const { removeNotices } = useDispatch( noticesStore );
+ * return (
+ * <>
+ * <ul>
+ * { notices.map( ( notice ) => (
+ * <li key={ notice.id }>{ notice.content }</li>
+ * ) ) }
+ * </ul>
+ * <Button
+ * onClick={ () =>
+ * removeNotices( notices.map( ( { id } ) => id ) )
+ * }
+ * >
+ * { __( 'Clear all notices' ) }
+ * </Button>
+ * </>
+ * );
+ * };
+ * ```
+ * @return {Object} Action object.
+ */
+function removeNotices(ids, context = DEFAULT_CONTEXT) {
+ return {
+ type: 'REMOVE_NOTICES',
+ ids,
+ context
+ };
+}
+
;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/selectors.js
/**
* Internal dependencies
*/
+
/** @typedef {import('./actions').WPNoticeAction} WPNoticeAction */
/**
@@ -342,8 +583,8 @@
*
* @type {Array}
*/
+const DEFAULT_NOTICES = [];
-const DEFAULT_NOTICES = [];
/**
* @typedef {Object} WPNotice Notice object.
*
@@ -367,7 +608,6 @@
* announced to screen readers. Defaults to
* `true`.
* @property {WPNoticeAction[]} actions User actions to present with notice.
- *
*/
/**
@@ -377,11 +617,27 @@
* @param {Object} state Notices state.
* @param {?string} context Optional grouping context.
*
+ * @example
+ *
+ *```js
+ * import { useSelect } from '@wordpress/data';
+ * import { store as noticesStore } from '@wordpress/notices';
+ *
+ * const ExampleComponent = () => {
+ * const notices = useSelect( ( select ) => select( noticesStore ).getNotices() );
+ * return (
+ * <ul>
+ * { notices.map( ( notice ) => (
+ * <li key={ notice.ID }>{ notice.content }</li>
+ * ) ) }
+ * </ul>
+ * )
+ * };
+ *```
+ *
* @return {WPNotice[]} Array of notices.
*/
-
-function getNotices(state) {
- let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_CONTEXT;
+function getNotices(state, context = DEFAULT_CONTEXT) {
return state[context] || DEFAULT_NOTICES;
}
@@ -390,6 +646,7 @@
* WordPress dependencies
*/
+
/**
* Internal dependencies
*/
@@ -401,10 +658,7 @@
* Store definition for the notices namespace.
*
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
- *
- * @type {Object}
*/
-
const store = (0,external_wp_data_namespaceObject.createReduxStore)('core/notices', {
reducer: reducer,
actions: actions_namespaceObject,