summaryrefslogtreecommitdiffstats
path: root/wp-includes/js/dist/notices.js
diff options
context:
space:
mode:
Diffstat (limited to 'wp-includes/js/dist/notices.js')
-rw-r--r--wp-includes/js/dist/notices.js674
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