diff options
Diffstat (limited to '')
-rw-r--r-- | wp-includes/js/dist/notices.js | 674 |
1 files changed, 674 insertions, 0 deletions
diff --git a/wp-includes/js/dist/notices.js b/wp-includes/js/dist/notices.js new file mode 100644 index 0000000..b70ad2f --- /dev/null +++ b/wp-includes/js/dist/notices.js @@ -0,0 +1,674 @@ +/******/ (function() { // 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) { +/******/ 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/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + store: function() { return /* 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; }, + removeAllNotices: function() { return removeAllNotices; }, + removeNotice: function() { return removeNotice; }, + removeNotices: function() { return 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; } +}); + +;// CONCATENATED MODULE: external ["wp","data"] +var 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 + * by a property on the action object. + * + * @param {string} actionProperty Action property by which to key object. + * + * @return {Function} Higher-order reducer. + */ +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. + const nextKeyState = reducer(state[key], action); + if (nextKeyState === state[key]) { + return state; + } + return { + ...state, + [key]: nextKeyState + }; +}; +/* harmony default export */ var on_sub_key = (onSubKey); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/reducer.js +/** + * Internal dependencies + */ + + +/** + * Reducer returning the next notices state. The notices state is an object + * where each key is a context, its value an array of notice objects. + * + * @param {Object} state Current state. + * @param {Object} action Dispatched action. + * + * @return {Object} Updated state. + */ +const notices = on_sub_key('context')((state = [], action) => { + switch (action.type) { + case 'CREATE_NOTICE': + // Avoid duplicates on ID. + return [...state.filter(({ + id + }) => id !== action.notice.id), action.notice]; + case 'REMOVE_NOTICE': + 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); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/constants.js +/** + * Default context to use for notice grouping when not otherwise specified. Its + * specific value doesn't hold much meaning, but it must be reasonably unique + * and, more importantly, referenced consistently in the store implementation. + * + * @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 +/** + * Internal dependencies + */ + + +/** + * @typedef {Object} WPNoticeAction Object describing a user action option associated with a notice. + * + * @property {string} label Message to use as action label. + * @property {?string} url Optional URL of resource if action incurs + * 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|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 + * group notice. + * @param {string} [options.id] Identifier for notice. + * Automatically assigned + * if not specified. + * @param {boolean} [options.isDismissible=true] Whether the notice can + * be dismissed by user. + * @param {string} [options.type='default'] Type of notice, one of + * `default`, or `snackbar`. + * @param {boolean} [options.speak=true] Whether the notice + * content should be + * announced to screen + * readers. + * @param {Array<WPNoticeAction>} [options.actions] User actions to be + * presented with 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 explicit dismiss button and + * can't be dismissed by clicking + * 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(status = DEFAULT_STATUS, content, options = {}) { + const { + speak = true, + isDismissible = true, + context = DEFAULT_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 + // supported, cast to a string. + content = String(content); + return { + type: 'CREATE_NOTICE', + context, + notice: { + id, + status, + content, + spokenMessage: speak ? content : null, + __unstableHTML, + isDismissible, + actions, + type, + icon, + explicitDismiss, + onDismiss + } + }; +} + +/** + * Returns an action object used in signalling that a success notice is to be + * created. Refer to `createNotice` for options documentation. + * + * @see createNotice + * + * @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. + * + * @see createNotice + * + * @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. + * + * @see createNotice + * + * @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. + * + * @see createNotice + * + * @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. + * + * @param {string} id Notice unique identifier. + * @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, context = DEFAULT_CONTEXT) { + return { + type: 'REMOVE_NOTICE', + id, + context + }; +} + +/** + * 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 { removeNotices } = 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 */ + +/** + * The default empty set of notices to return when there are no notices + * assigned for a given notices context. This can occur if the getNotices + * selector is called without a notice ever having been created for the + * context. A shared value is used to ensure referential equality between + * sequential selector calls, since otherwise `[] !== []`. + * + * @type {Array} + */ +const DEFAULT_NOTICES = []; + +/** + * @typedef {Object} WPNotice Notice object. + * + * @property {string} id Unique identifier of notice. + * @property {string} status Status of notice, one of `success`, + * `info`, `error`, or `warning`. Defaults + * to `info`. + * @property {string} content Notice message. + * @property {string} spokenMessage Audibly announced message text used by + * assistive technologies. + * @property {string} __unstableHTML Notice message as raw HTML. Intended to + * serve primarily for compatibility of + * server-rendered notices, and SHOULD NOT + * be used for notices. It is subject to + * removal without notice. + * @property {boolean} isDismissible Whether the notice can be dismissed by + * user. Defaults to `true`. + * @property {string} type Type of notice, one of `default`, + * or `snackbar`. Defaults to `default`. + * @property {boolean} speak Whether the notice content should be + * announced to screen readers. Defaults to + * `true`. + * @property {WPNoticeAction[]} actions User actions to present with notice. + */ + +/** + * Returns all notices as an array, optionally for a given context. Defaults to + * the global context. + * + * @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, context = DEFAULT_CONTEXT) { + return state[context] || DEFAULT_NOTICES; +} + +;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/index.js +/** + * WordPress dependencies + */ + + +/** + * Internal dependencies + */ + + + + +/** + * Store definition for the notices namespace. + * + * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore + */ +const store = (0,external_wp_data_namespaceObject.createReduxStore)('core/notices', { + reducer: reducer, + actions: actions_namespaceObject, + selectors: selectors_namespaceObject +}); +(0,external_wp_data_namespaceObject.register)(store); + +;// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/index.js + + +(window.wp = window.wp || {}).notices = __webpack_exports__; +/******/ })() +;
\ No newline at end of file |