PluginProbe
Gutenberg / 12.6.0
Gutenberg v12.6.0
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / build / notices / index.js

index.js in Gutenberg 12.6.0, at build/notices/index.js

420 lines 14.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /******/ (function() { // webpackBootstrap
2 /******/ "use strict";
3 /******/ // The require scope
4 /******/ var __webpack_require__ = {};
5 /******/
6 /************************************************************************/
7 /******/ /* webpack/runtime/define property getters */
8 /******/ !function() {
9 /******/ // define getter functions for harmony exports
10 /******/ __webpack_require__.d = function(exports, definition) {
11 /******/ for(var key in definition) {
12 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
13 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
14 /******/ }
15 /******/ }
16 /******/ };
17 /******/ }();
18 /******/
19 /******/ /* webpack/runtime/hasOwnProperty shorthand */
20 /******/ !function() {
21 /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
22 /******/ }();
23 /******/
24 /******/ /* webpack/runtime/make namespace object */
25 /******/ !function() {
26 /******/ // define __esModule on exports
27 /******/ __webpack_require__.r = function(exports) {
28 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
29 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
30 /******/ }
31 /******/ Object.defineProperty(exports, '__esModule', { value: true });
32 /******/ };
33 /******/ }();
34 /******/
35 /************************************************************************/
36 var __webpack_exports__ = {};
37 // ESM COMPAT FLAG
38 __webpack_require__.r(__webpack_exports__);
39
40 // EXPORTS
41 __webpack_require__.d(__webpack_exports__, {
42 "store": function() { return /* reexport */ store; }
43 });
44
45 // NAMESPACE OBJECT: ./packages/notices/build-module/store/actions.js
46 var actions_namespaceObject = {};
47 __webpack_require__.r(actions_namespaceObject);
48 __webpack_require__.d(actions_namespaceObject, {
49 "createErrorNotice": function() { return createErrorNotice; },
50 "createInfoNotice": function() { return createInfoNotice; },
51 "createNotice": function() { return createNotice; },
52 "createSuccessNotice": function() { return createSuccessNotice; },
53 "createWarningNotice": function() { return createWarningNotice; },
54 "removeNotice": function() { return removeNotice; }
55 });
56
57 // NAMESPACE OBJECT: ./packages/notices/build-module/store/selectors.js
58 var selectors_namespaceObject = {};
59 __webpack_require__.r(selectors_namespaceObject);
60 __webpack_require__.d(selectors_namespaceObject, {
61 "getNotices": function() { return getNotices; }
62 });
63
64 ;// CONCATENATED MODULE: external ["wp","data"]
65 var external_wp_data_namespaceObject = window["wp"]["data"];
66 ;// CONCATENATED MODULE: external "lodash"
67 var external_lodash_namespaceObject = window["lodash"];
68 ;// CONCATENATED MODULE: ./packages/notices/build-module/store/utils/on-sub-key.js
69 /**
70 * Higher-order reducer creator which creates a combined reducer object, keyed
71 * by a property on the action object.
72 *
73 * @param {string} actionProperty Action property by which to key object.
74 *
75 * @return {Function} Higher-order reducer.
76 */
77 const onSubKey = actionProperty => reducer => function () {
78 let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
79 let action = arguments.length > 1 ? arguments[1] : undefined;
80 // Retrieve subkey from action. Do not track if undefined; useful for cases
81 // where reducer is scoped by action shape.
82 const key = action[actionProperty];
83
84 if (key === undefined) {
85 return state;
86 } // Avoid updating state if unchanged. Note that this also accounts for a
87 // reducer which returns undefined on a key which is not yet tracked.
88
89
90 const nextKeyState = reducer(state[key], action);
91
92 if (nextKeyState === state[key]) {
93 return state;
94 }
95
96 return { ...state,
97 [key]: nextKeyState
98 };
99 };
100 /* harmony default export */ var on_sub_key = (onSubKey);
101 //# sourceMappingURL=on-sub-key.js.map
102 ;// CONCATENATED MODULE: ./packages/notices/build-module/store/reducer.js
103 /**
104 * External dependencies
105 */
106
107 /**
108 * Internal dependencies
109 */
110
111
112 /**
113 * Reducer returning the next notices state. The notices state is an object
114 * where each key is a context, its value an array of notice objects.
115 *
116 * @param {Object} state Current state.
117 * @param {Object} action Dispatched action.
118 *
119 * @return {Object} Updated state.
120 */
121
122 const notices = on_sub_key('context')(function () {
123 let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
124 let action = arguments.length > 1 ? arguments[1] : undefined;
125
126 switch (action.type) {
127 case 'CREATE_NOTICE':
128 // Avoid duplicates on ID.
129 return [...(0,external_lodash_namespaceObject.reject)(state, {
130 id: action.notice.id
131 }), action.notice];
132
133 case 'REMOVE_NOTICE':
134 return (0,external_lodash_namespaceObject.reject)(state, {
135 id: action.id
136 });
137 }
138
139 return state;
140 });
141 /* harmony default export */ var reducer = (notices);
142 //# sourceMappingURL=reducer.js.map
143 ;// CONCATENATED MODULE: ./packages/notices/build-module/store/constants.js
144 /**
145 * Default context to use for notice grouping when not otherwise specified. Its
146 * specific value doesn't hold much meaning, but it must be reasonably unique
147 * and, more importantly, referenced consistently in the store implementation.
148 *
149 * @type {string}
150 */
151 const DEFAULT_CONTEXT = 'global';
152 /**
153 * Default notice status.
154 *
155 * @type {string}
156 */
157
158 const DEFAULT_STATUS = 'info';
159 //# sourceMappingURL=constants.js.map
160 ;// CONCATENATED MODULE: ./packages/notices/build-module/store/actions.js
161 /**
162 * External dependencies
163 */
164
165 /**
166 * Internal dependencies
167 */
168
169
170 /**
171 * @typedef {Object} WPNoticeAction Object describing a user action option associated with a notice.
172 *
173 * @property {string} label Message to use as action label.
174 * @property {?string} url Optional URL of resource if action incurs
175 * browser navigation.
176 * @property {?Function} onClick Optional function to invoke when action is
177 * triggered by user.
178 *
179 */
180
181 /**
182 * Returns an action object used in signalling that a notice is to be created.
183 *
184 * @param {string} [status='info'] Notice status.
185 * @param {string} content Notice message.
186 * @param {Object} [options] Notice options.
187 * @param {string} [options.context='global'] Context under which to
188 * group notice.
189 * @param {string} [options.id] Identifier for notice.
190 * Automatically assigned
191 * if not specified.
192 * @param {boolean} [options.isDismissible=true] Whether the notice can
193 * be dismissed by user.
194 * @param {string} [options.type='default'] Type of notice, one of
195 * `default`, or `snackbar`.
196 * @param {boolean} [options.speak=true] Whether the notice
197 * content should be
198 * announced to screen
199 * readers.
200 * @param {Array<WPNoticeAction>} [options.actions] User actions to be
201 * presented with notice.
202 * @param {Object} [options.icon] An icon displayed with the notice.
203 * @param {boolean} [options.explicitDismiss] Whether the notice includes
204 * an explict dismiss button and
205 * can't be dismissed by clicking
206 * the body of the notice.
207 * @param {Function} [options.onDismiss] Called when the notice is dismissed.
208 *
209 * @return {Object} Action object.
210 */
211
212 function createNotice() {
213 let status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_STATUS;
214 let content = arguments.length > 1 ? arguments[1] : undefined;
215 let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
216 const {
217 speak = true,
218 isDismissible = true,
219 context = DEFAULT_CONTEXT,
220 id = (0,external_lodash_namespaceObject.uniqueId)(context),
221 actions = [],
222 type = 'default',
223 __unstableHTML,
224 icon = null,
225 explicitDismiss = false,
226 onDismiss
227 } = options; // The supported value shape of content is currently limited to plain text
228 // strings. To avoid setting expectation that e.g. a WPElement could be
229 // supported, cast to a string.
230
231 content = String(content);
232 return {
233 type: 'CREATE_NOTICE',
234 context,
235 notice: {
236 id,
237 status,
238 content,
239 spokenMessage: speak ? content : null,
240 __unstableHTML,
241 isDismissible,
242 actions,
243 type,
244 icon,
245 explicitDismiss,
246 onDismiss
247 }
248 };
249 }
250 /**
251 * Returns an action object used in signalling that a success notice is to be
252 * created. Refer to `createNotice` for options documentation.
253 *
254 * @see createNotice
255 *
256 * @param {string} content Notice message.
257 * @param {Object} [options] Optional notice options.
258 *
259 * @return {Object} Action object.
260 */
261
262 function createSuccessNotice(content, options) {
263 return createNotice('success', content, options);
264 }
265 /**
266 * Returns an action object used in signalling that an info notice is to be
267 * created. Refer to `createNotice` for options documentation.
268 *
269 * @see createNotice
270 *
271 * @param {string} content Notice message.
272 * @param {Object} [options] Optional notice options.
273 *
274 * @return {Object} Action object.
275 */
276
277 function createInfoNotice(content, options) {
278 return createNotice('info', content, options);
279 }
280 /**
281 * Returns an action object used in signalling that an error notice is to be
282 * created. Refer to `createNotice` for options documentation.
283 *
284 * @see createNotice
285 *
286 * @param {string} content Notice message.
287 * @param {Object} [options] Optional notice options.
288 *
289 * @return {Object} Action object.
290 */
291
292 function createErrorNotice(content, options) {
293 return createNotice('error', content, options);
294 }
295 /**
296 * Returns an action object used in signalling that a warning notice is to be
297 * created. Refer to `createNotice` for options documentation.
298 *
299 * @see createNotice
300 *
301 * @param {string} content Notice message.
302 * @param {Object} [options] Optional notice options.
303 *
304 * @return {Object} Action object.
305 */
306
307 function createWarningNotice(content, options) {
308 return createNotice('warning', content, options);
309 }
310 /**
311 * Returns an action object used in signalling that a notice is to be removed.
312 *
313 * @param {string} id Notice unique identifier.
314 * @param {string} [context='global'] Optional context (grouping) in which the notice is
315 * intended to appear. Defaults to default context.
316 *
317 * @return {Object} Action object.
318 */
319
320 function removeNotice(id) {
321 let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_CONTEXT;
322 return {
323 type: 'REMOVE_NOTICE',
324 id,
325 context
326 };
327 }
328 //# sourceMappingURL=actions.js.map
329 ;// CONCATENATED MODULE: ./packages/notices/build-module/store/selectors.js
330 /**
331 * Internal dependencies
332 */
333
334 /** @typedef {import('./actions').WPNoticeAction} WPNoticeAction */
335
336 /**
337 * The default empty set of notices to return when there are no notices
338 * assigned for a given notices context. This can occur if the getNotices
339 * selector is called without a notice ever having been created for the
340 * context. A shared value is used to ensure referential equality between
341 * sequential selector calls, since otherwise `[] !== []`.
342 *
343 * @type {Array}
344 */
345
346 const DEFAULT_NOTICES = [];
347 /**
348 * @typedef {Object} WPNotice Notice object.
349 *
350 * @property {string} id Unique identifier of notice.
351 * @property {string} status Status of notice, one of `success`,
352 * `info`, `error`, or `warning`. Defaults
353 * to `info`.
354 * @property {string} content Notice message.
355 * @property {string} spokenMessage Audibly announced message text used by
356 * assistive technologies.
357 * @property {string} __unstableHTML Notice message as raw HTML. Intended to
358 * serve primarily for compatibility of
359 * server-rendered notices, and SHOULD NOT
360 * be used for notices. It is subject to
361 * removal without notice.
362 * @property {boolean} isDismissible Whether the notice can be dismissed by
363 * user. Defaults to `true`.
364 * @property {string} type Type of notice, one of `default`,
365 * or `snackbar`. Defaults to `default`.
366 * @property {boolean} speak Whether the notice content should be
367 * announced to screen readers. Defaults to
368 * `true`.
369 * @property {WPNoticeAction[]} actions User actions to present with notice.
370 *
371 */
372
373 /**
374 * Returns all notices as an array, optionally for a given context. Defaults to
375 * the global context.
376 *
377 * @param {Object} state Notices state.
378 * @param {?string} context Optional grouping context.
379 *
380 * @return {WPNotice[]} Array of notices.
381 */
382
383 function getNotices(state) {
384 let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_CONTEXT;
385 return state[context] || DEFAULT_NOTICES;
386 }
387 //# sourceMappingURL=selectors.js.map
388 ;// CONCATENATED MODULE: ./packages/notices/build-module/store/index.js
389 /**
390 * WordPress dependencies
391 */
392
393 /**
394 * Internal dependencies
395 */
396
397
398
399
400 /**
401 * Store definition for the notices namespace.
402 *
403 * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
404 *
405 * @type {Object}
406 */
407
408 const store = (0,external_wp_data_namespaceObject.createReduxStore)('core/notices', {
409 reducer: reducer,
410 actions: actions_namespaceObject,
411 selectors: selectors_namespaceObject
412 });
413 (0,external_wp_data_namespaceObject.register)(store);
414 //# sourceMappingURL=index.js.map
415 ;// CONCATENATED MODULE: ./packages/notices/build-module/index.js
416
417 //# sourceMappingURL=index.js.map
418 (window.wp = window.wp || {}).notices = __webpack_exports__;
419 /******/ })()
420 ;