{
  "version": 3,
  "sources": ["../../src/store/actions.ts"],
  "sourcesContent": ["/**\n * Internal dependencies\n */\nimport { DEFAULT_CONTEXT, DEFAULT_STATUS } from './constants';\nimport type { NoticeOptions, ReducerAction } from './types';\n\nlet uniqueId = 0;\n\n/**\n * Returns an action object used in signalling that a notice is to be created.\n *\n * @param status  Notice status (\"info\" if undefined is passed).\n * @param content Notice message.\n * @param options Optional notice options.\n *\n * @example\n * ```js\n * import { __ } from '@wordpress/i18n';\n * import { useDispatch } from '@wordpress/data';\n * import { store as noticesStore } from '@wordpress/notices';\n * import { Button } from '@wordpress/components';\n *\n * const ExampleComponent = () => {\n *     const { createNotice } = useDispatch( noticesStore );\n *     return (\n *         <Button\n *             onClick={ () => createNotice( 'success', __( 'Notice message' ) ) }\n *         >\n *             { __( 'Generate a success notice!' ) }\n *         </Button>\n *     );\n * };\n * ```\n *\n * @return Action object.\n */\nexport function createNotice(\n\tstatus = DEFAULT_STATUS,\n\tcontent: string,\n\toptions: NoticeOptions = {}\n): Extract< ReducerAction, { type: 'CREATE_NOTICE' } > {\n\tconst {\n\t\tspeak = true,\n\t\tisDismissible = true,\n\t\tcontext = DEFAULT_CONTEXT,\n\t\tid = `${ context }${ ++uniqueId }`,\n\t\tactions = [],\n\t\ttype = 'default',\n\t\t__unstableHTML,\n\t\ticon = null,\n\t\texplicitDismiss = false,\n\t\tonDismiss,\n\t} = options;\n\n\t// The supported value shape of content is currently limited to plain text\n\t// strings. To avoid setting expectation that e.g. a React Element could be\n\t// supported, cast to a string.\n\tcontent = String( content );\n\n\treturn {\n\t\ttype: 'CREATE_NOTICE',\n\t\tcontext,\n\t\tnotice: {\n\t\t\tid,\n\t\t\tstatus,\n\t\t\tcontent,\n\t\t\tspokenMessage: speak ? content : null,\n\t\t\t__unstableHTML,\n\t\t\tisDismissible,\n\t\t\tactions,\n\t\t\ttype,\n\t\t\ticon,\n\t\t\texplicitDismiss,\n\t\t\tonDismiss,\n\t\t},\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a success notice is to be\n * created. Refer to `createNotice` for options documentation.\n *\n * @see createNotice\n *\n * @param content Notice message.\n * @param options Optional notice options.\n *\n * @example\n * ```js\n * import { __ } from '@wordpress/i18n';\n * import { useDispatch } from '@wordpress/data';\n * import { store as noticesStore } from '@wordpress/notices';\n * import { Button } from '@wordpress/components';\n *\n * const ExampleComponent = () => {\n *     const { createSuccessNotice } = useDispatch( noticesStore );\n *     return (\n *         <Button\n *             onClick={ () =>\n *                 createSuccessNotice( __( 'Success!' ), {\n *                     type: 'snackbar',\n *                     icon: '\uD83D\uDD25',\n *                 } )\n *             }\n *         >\n *             { __( 'Generate a snackbar success notice!' ) }\n *        </Button>\n *     );\n * };\n * ```\n *\n * @return Action object.\n */\nexport function createSuccessNotice(\n\tcontent: string,\n\toptions?: NoticeOptions\n) {\n\treturn createNotice( 'success', content, options );\n}\n\n/**\n * Returns an action object used in signalling that an info notice is to be\n * created. Refer to `createNotice` for options documentation.\n *\n * @see createNotice\n *\n * @param content Notice message.\n * @param options Optional notice options.\n *\n * @example\n * ```js\n * import { __ } from '@wordpress/i18n';\n * import { useDispatch } from '@wordpress/data';\n * import { store as noticesStore } from '@wordpress/notices';\n * import { Button } from '@wordpress/components';\n *\n * const ExampleComponent = () => {\n *     const { createInfoNotice } = useDispatch( noticesStore );\n *     return (\n *         <Button\n *             onClick={ () =>\n *                createInfoNotice( __( 'Something happened!' ), {\n *                   isDismissible: false,\n *                } )\n *             }\n *         >\n *         { __( 'Generate a notice that cannot be dismissed.' ) }\n *       </Button>\n *       );\n * };\n *```\n *\n * @return Action object.\n */\nexport function createInfoNotice( content: string, options?: NoticeOptions ) {\n\treturn createNotice( 'info', content, options );\n}\n\n/**\n * Returns an action object used in signalling that an error notice is to be\n * created. Refer to `createNotice` for options documentation.\n *\n * @see createNotice\n *\n * @param content Notice message.\n * @param options Optional notice options.\n *\n * @example\n * ```js\n * import { __ } from '@wordpress/i18n';\n * import { useDispatch } from '@wordpress/data';\n * import { store as noticesStore } from '@wordpress/notices';\n * import { Button } from '@wordpress/components';\n *\n * const ExampleComponent = () => {\n *     const { createErrorNotice } = useDispatch( noticesStore );\n *     return (\n *         <Button\n *             onClick={ () =>\n *                 createErrorNotice( __( 'An error occurred!' ), {\n *                     type: 'snackbar',\n *                     explicitDismiss: true,\n *                 } )\n *             }\n *         >\n *             { __(\n *                 'Generate a snackbar error notice with explicit dismiss button.'\n *             ) }\n *         </Button>\n *     );\n * };\n * ```\n *\n * @return Action object.\n */\nexport function createErrorNotice( content: string, options?: NoticeOptions ) {\n\treturn createNotice( 'error', content, options );\n}\n\n/**\n * Returns an action object used in signalling that a warning notice is to be\n * created. Refer to `createNotice` for options documentation.\n *\n * @see createNotice\n *\n * @param content Notice message.\n * @param options Optional notice options.\n *\n * @example\n * ```js\n * import { __ } from '@wordpress/i18n';\n * import { useDispatch } from '@wordpress/data';\n * import { store as noticesStore } from '@wordpress/notices';\n * import { Button } from '@wordpress/components';\n *\n * const ExampleComponent = () => {\n *     const { createWarningNotice, createInfoNotice } = useDispatch( noticesStore );\n *     return (\n *         <Button\n *             onClick={ () =>\n *                 createWarningNotice( __( 'Warning!' ), {\n *                     onDismiss: () => {\n *                         createInfoNotice(\n *                             __( 'The warning has been dismissed!' )\n *                         );\n *                     },\n *                 } )\n *             }\n *         >\n *             { __( 'Generates a warning notice with onDismiss callback' ) }\n *         </Button>\n *     );\n * };\n * ```\n *\n * @return Action object.\n */\nexport function createWarningNotice(\n\tcontent: string,\n\toptions?: NoticeOptions\n) {\n\treturn createNotice( 'warning', content, options );\n}\n\n/**\n * Returns an action object used in signalling that a notice is to be removed.\n *\n * @param id      Notice unique identifier.\n * @param context Optional context (grouping) in which the notice is\n *                intended to appear. Defaults to 'default' context.\n *\n * @example\n * ```js\n * import { __ } from '@wordpress/i18n';\n * import { useDispatch } from '@wordpress/data';\n * import { store as noticesStore } from '@wordpress/notices';\n * import { Button } from '@wordpress/components';\n *\n * const ExampleComponent = () => {\n *    const notices = useSelect( ( select ) => select( noticesStore ).getNotices() );\n *    const { createWarningNotice, removeNotice } = useDispatch( noticesStore );\n *\n *    return (\n *         <>\n *             <Button\n *                 onClick={ () =>\n *                     createWarningNotice( __( 'Warning!' ), {\n *                         isDismissible: false,\n *                     } )\n *                 }\n *             >\n *                 { __( 'Generate a notice' ) }\n *             </Button>\n *             { notices.length > 0 && (\n *                 <Button onClick={ () => removeNotice( notices[ 0 ].id ) }>\n *                     { __( 'Remove the notice' ) }\n *                 </Button>\n *             ) }\n *         </>\n *     );\n *};\n * ```\n *\n * @return Action object.\n */\nexport function removeNotice(\n\tid: string,\n\tcontext: string = DEFAULT_CONTEXT\n): Extract< ReducerAction, { type: 'REMOVE_NOTICE' } > {\n\treturn {\n\t\ttype: 'REMOVE_NOTICE',\n\t\tid,\n\t\tcontext,\n\t};\n}\n\n/**\n * Removes all notices from a given context. Defaults to the default context.\n *\n * @param noticeType The context to remove all notices from.\n * @param context    The optional context to remove all notices from.\n *\n * @example\n * ```js\n * import { __ } from '@wordpress/i18n';\n * import { useDispatch, useSelect } from '@wordpress/data';\n * import { store as noticesStore } from '@wordpress/notices';\n * import { Button } from '@wordpress/components';\n *\n * export const ExampleComponent = () => {\n * \tconst notices = useSelect( ( select ) =>\n * \t\tselect( noticesStore ).getNotices()\n * \t);\n * \tconst { removeAllNotices } = useDispatch( noticesStore );\n * \treturn (\n * \t\t<>\n * \t\t\t<ul>\n * \t\t\t\t{ notices.map( ( notice ) => (\n * \t\t\t\t\t<li key={ notice.id }>{ notice.content }</li>\n * \t\t\t\t) ) }\n * \t\t\t</ul>\n * \t\t\t<Button\n * \t\t\t\tonClick={ () =>\n * \t\t\t\t\tremoveAllNotices()\n * \t\t\t\t}\n * \t\t\t>\n * \t\t\t\t{ __( 'Clear all notices', 'woo-gutenberg-products-block' ) }\n * \t\t\t</Button>\n * \t\t\t<Button\n * \t\t\t\tonClick={ () =>\n * \t\t\t\t\tremoveAllNotices( 'snackbar' )\n * \t\t\t\t}\n * \t\t\t>\n * \t\t\t\t{ __( 'Clear all snackbar notices', 'woo-gutenberg-products-block' ) }\n * \t\t\t</Button>\n * \t\t</>\n * \t);\n * };\n * ```\n *\n * @return \t   Action object.\n */\nexport function removeAllNotices(\n\tnoticeType = 'default',\n\tcontext: string = DEFAULT_CONTEXT\n): Extract< ReducerAction, { type: 'REMOVE_ALL_NOTICES' } > {\n\treturn {\n\t\ttype: 'REMOVE_ALL_NOTICES',\n\t\tnoticeType,\n\t\tcontext,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that several notices are to be removed.\n *\n * @param ids     List of unique notice identifiers.\n * @param context Optional context (grouping) in which the notices are\n *                intended to appear. Defaults to 'default' context.\n * @example\n * ```js\n * import { __ } from '@wordpress/i18n';\n * import { useDispatch, useSelect } from '@wordpress/data';\n * import { store as noticesStore } from '@wordpress/notices';\n * import { Button } from '@wordpress/components';\n *\n * const ExampleComponent = () => {\n * \tconst notices = useSelect( ( select ) =>\n * \t\tselect( noticesStore ).getNotices()\n * \t);\n * \tconst { removeNotices } = useDispatch( noticesStore );\n * \treturn (\n * \t\t<>\n * \t\t\t<ul>\n * \t\t\t\t{ notices.map( ( notice ) => (\n * \t\t\t\t\t<li key={ notice.id }>{ notice.content }</li>\n * \t\t\t\t) ) }\n * \t\t\t</ul>\n * \t\t\t<Button\n * \t\t\t\tonClick={ () =>\n * \t\t\t\t\tremoveNotices( notices.map( ( { id } ) => id ) )\n * \t\t\t\t}\n * \t\t\t>\n * \t\t\t\t{ __( 'Clear all notices' ) }\n * \t\t\t</Button>\n * \t\t</>\n * \t);\n * };\n * ```\n * @return Action object.\n */\nexport function removeNotices(\n\tids: Array< string >,\n\tcontext: string = DEFAULT_CONTEXT\n): Extract< ReducerAction, { type: 'REMOVE_NOTICES' } > {\n\treturn {\n\t\ttype: 'REMOVE_NOTICES',\n\t\tids,\n\t\tcontext,\n\t};\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,uBAAgD;AAGhD,IAAI,WAAW;AA8BR,SAAS,aACf,SAAS,iCACT,SACA,UAAyB,CAAC,GAC4B;AACtD,QAAM;AAAA,IACL,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,KAAK,GAAI,OAAQ,GAAI,EAAE,QAAS;AAAA,IAChC,UAAU,CAAC;AAAA,IACX,OAAO;AAAA,IACP;AAAA,IACA,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB;AAAA,EACD,IAAI;AAKJ,YAAU,OAAQ,OAAQ;AAE1B,SAAO;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA,QAAQ;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe,QAAQ,UAAU;AAAA,MACjC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;AAqCO,SAAS,oBACf,SACA,SACC;AACD,SAAO,aAAc,WAAW,SAAS,OAAQ;AAClD;AAoCO,SAAS,iBAAkB,SAAiB,SAA0B;AAC5E,SAAO,aAAc,QAAQ,SAAS,OAAQ;AAC/C;AAuCO,SAAS,kBAAmB,SAAiB,SAA0B;AAC7E,SAAO,aAAc,SAAS,SAAS,OAAQ;AAChD;AAwCO,SAAS,oBACf,SACA,SACC;AACD,SAAO,aAAc,WAAW,SAAS,OAAQ;AAClD;AA2CO,SAAS,aACf,IACA,UAAkB,kCACoC;AACtD,SAAO;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD;AAgDO,SAAS,iBACf,aAAa,WACb,UAAkB,kCACyC;AAC3D,SAAO;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD;AAwCO,SAAS,cACf,KACA,UAAkB,kCACqC;AACvD,SAAO;AAAA,IACN,MAAM;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD;",
  "names": []
}
