diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-includes/js/dist/notices.js --- 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} [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 ( + * + * ); + * }; + * ``` + * * @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 ( + * + * ); + * }; + * ``` + * * @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 ( + * + * ); + * }; + *``` + * * @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 ( + * + * ); + * }; + * ``` + * * @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 ( + * + * ); + * }; + * ``` + * * @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 ( + * <> + * + * { notices.length > 0 && ( + * + * ) } + * + * ); + *}; + * ``` + * * @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 ( + * <> + * + * + * + * + * ); + * }; + * ``` + * + * @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 ( + * <> + * + * + * + * ); + * }; + * ``` + * @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 ( + * + * ) + * }; + *``` + * * @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,