PluginProbe
Gutenberg / 23.3.1
Gutenberg v23.3.1
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 / scripts / preferences / index.js

index.js in Gutenberg 23.3.1, at build/scripts/preferences/index.js

580 lines 21.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 "use strict";
2 var wp;
3 (wp ||= {}).preferences = (() => {
4 var __create = Object.create;
5 var __defProp = Object.defineProperty;
6 var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7 var __getOwnPropNames = Object.getOwnPropertyNames;
8 var __getProtoOf = Object.getPrototypeOf;
9 var __hasOwnProp = Object.prototype.hasOwnProperty;
10 var __commonJS = (cb, mod) => function __require() {
11 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12 };
13 var __export = (target, all) => {
14 for (var name in all)
15 __defProp(target, name, { get: all[name], enumerable: true });
16 };
17 var __copyProps = (to, from, except, desc) => {
18 if (from && typeof from === "object" || typeof from === "function") {
19 for (let key of __getOwnPropNames(from))
20 if (!__hasOwnProp.call(to, key) && key !== except)
21 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22 }
23 return to;
24 };
25 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26 // If the importer is in node compatibility mode or this is not an ESM
27 // file that has been converted to a CommonJS file using a Babel-
28 // compatible transform (i.e. "__esModule" has not been set), then set
29 // "default" to the CommonJS "module.exports" for node compatibility.
30 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
31 mod
32 ));
33 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
35 // package-external:@wordpress/data
36 var require_data = __commonJS({
37 "package-external:@wordpress/data"(exports, module) {
38 module.exports = window.wp.data;
39 }
40 });
41
42 // package-external:@wordpress/components
43 var require_components = __commonJS({
44 "package-external:@wordpress/components"(exports, module) {
45 module.exports = window.wp.components;
46 }
47 });
48
49 // package-external:@wordpress/i18n
50 var require_i18n = __commonJS({
51 "package-external:@wordpress/i18n"(exports, module) {
52 module.exports = window.wp.i18n;
53 }
54 });
55
56 // package-external:@wordpress/element
57 var require_element = __commonJS({
58 "package-external:@wordpress/element"(exports, module) {
59 module.exports = window.wp.element;
60 }
61 });
62
63 // package-external:@wordpress/primitives
64 var require_primitives = __commonJS({
65 "package-external:@wordpress/primitives"(exports, module) {
66 module.exports = window.wp.primitives;
67 }
68 });
69
70 // vendor-external:react/jsx-runtime
71 var require_jsx_runtime = __commonJS({
72 "vendor-external:react/jsx-runtime"(exports, module) {
73 module.exports = window.ReactJSXRuntime;
74 }
75 });
76
77 // package-external:@wordpress/a11y
78 var require_a11y = __commonJS({
79 "package-external:@wordpress/a11y"(exports, module) {
80 module.exports = window.wp.a11y;
81 }
82 });
83
84 // package-external:@wordpress/deprecated
85 var require_deprecated = __commonJS({
86 "package-external:@wordpress/deprecated"(exports, module) {
87 module.exports = window.wp.deprecated;
88 }
89 });
90
91 // package-external:@wordpress/compose
92 var require_compose = __commonJS({
93 "package-external:@wordpress/compose"(exports, module) {
94 module.exports = window.wp.compose;
95 }
96 });
97
98 // package-external:@wordpress/private-apis
99 var require_private_apis = __commonJS({
100 "package-external:@wordpress/private-apis"(exports, module) {
101 module.exports = window.wp.privateApis;
102 }
103 });
104
105 // packages/preferences/build-module/index.mjs
106 var index_exports = {};
107 __export(index_exports, {
108 PreferenceToggleMenuItem: () => PreferenceToggleMenuItem,
109 privateApis: () => privateApis,
110 store: () => store
111 });
112
113 // packages/preferences/build-module/components/preference-toggle-menu-item/index.mjs
114 var import_data3 = __toESM(require_data(), 1);
115 var import_components = __toESM(require_components(), 1);
116 var import_i18n = __toESM(require_i18n(), 1);
117
118 // packages/icons/build-module/icon/index.mjs
119 var import_element = __toESM(require_element(), 1);
120 var icon_default = (0, import_element.forwardRef)(
121 ({ icon, size = 24, ...props }, ref) => {
122 return (0, import_element.cloneElement)(
123 icon,
124 {
125 width: size,
126 height: size,
127 ...props,
128 ref
129 }
130 );
131 }
132 );
133
134 // packages/icons/build-module/library/check.mjs
135 var import_primitives = __toESM(require_primitives(), 1);
136 var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
137 var check_default = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { d: "M16.5 7.5 10 13.9l-2.5-2.4-1 1 3.5 3.6 7.5-7.6z" }) });
138
139 // packages/icons/build-module/library/chevron-left.mjs
140 var import_primitives2 = __toESM(require_primitives(), 1);
141 var import_jsx_runtime2 = __toESM(require_jsx_runtime(), 1);
142 var chevron_left_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.Path, { d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z" }) });
143
144 // packages/icons/build-module/library/chevron-right.mjs
145 var import_primitives3 = __toESM(require_primitives(), 1);
146 var import_jsx_runtime3 = __toESM(require_jsx_runtime(), 1);
147 var chevron_right_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.Path, { d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z" }) });
148
149 // packages/preferences/build-module/components/preference-toggle-menu-item/index.mjs
150 var import_a11y = __toESM(require_a11y(), 1);
151
152 // packages/preferences/build-module/store/index.mjs
153 var import_data2 = __toESM(require_data(), 1);
154
155 // packages/preferences/build-module/store/reducer.mjs
156 var import_data = __toESM(require_data(), 1);
157 function defaults(state = {}, action) {
158 if (action.type === "SET_PREFERENCE_DEFAULTS") {
159 const { scope, defaults: values } = action;
160 return {
161 ...state,
162 [scope]: {
163 ...state[scope],
164 ...values
165 }
166 };
167 }
168 return state;
169 }
170 function withPersistenceLayer(reducer) {
171 let persistenceLayer;
172 return (state, action) => {
173 if (action.type === "SET_PERSISTENCE_LAYER") {
174 const { persistenceLayer: persistence, persistedData } = action;
175 persistenceLayer = persistence;
176 return persistedData;
177 }
178 const nextState = reducer(state, action);
179 if (action.type === "SET_PREFERENCE_VALUE") {
180 persistenceLayer?.set(nextState);
181 }
182 return nextState;
183 };
184 }
185 var preferences = withPersistenceLayer((state = {}, action) => {
186 if (action.type === "SET_PREFERENCE_VALUE") {
187 const { scope, name, value } = action;
188 return {
189 ...state,
190 [scope]: {
191 ...state[scope],
192 [name]: value
193 }
194 };
195 }
196 return state;
197 });
198 var reducer_default = (0, import_data.combineReducers)({
199 defaults,
200 preferences
201 });
202
203 // packages/preferences/build-module/store/actions.mjs
204 var actions_exports = {};
205 __export(actions_exports, {
206 set: () => set,
207 setDefaults: () => setDefaults,
208 setPersistenceLayer: () => setPersistenceLayer,
209 toggle: () => toggle
210 });
211 function toggle(scope, name) {
212 return function({ select, dispatch }) {
213 const currentValue = select.get(scope, name);
214 dispatch.set(scope, name, !currentValue);
215 };
216 }
217 function set(scope, name, value) {
218 return {
219 type: "SET_PREFERENCE_VALUE",
220 scope,
221 name,
222 value
223 };
224 }
225 function setDefaults(scope, defaults2) {
226 return {
227 type: "SET_PREFERENCE_DEFAULTS",
228 scope,
229 defaults: defaults2
230 };
231 }
232 async function setPersistenceLayer(persistenceLayer) {
233 const persistedData = await persistenceLayer.get();
234 return {
235 type: "SET_PERSISTENCE_LAYER",
236 persistenceLayer,
237 persistedData
238 };
239 }
240
241 // packages/preferences/build-module/store/selectors.mjs
242 var selectors_exports = {};
243 __export(selectors_exports, {
244 get: () => get
245 });
246 var import_deprecated = __toESM(require_deprecated(), 1);
247 var withDeprecatedKeys = (originalGet) => (state, scope, name) => {
248 const settingsToMoveToCore = [
249 "allowRightClickOverrides",
250 "distractionFree",
251 "editorMode",
252 "fixedToolbar",
253 "focusMode",
254 "hiddenBlockTypes",
255 "inactivePanels",
256 "keepCaretInsideBlock",
257 "mostUsedBlocks",
258 "openPanels",
259 "showBlockBreadcrumbs",
260 "showIconLabels",
261 "showListViewByDefault",
262 "isPublishSidebarEnabled",
263 "isComplementaryAreaVisible",
264 "pinnedItems"
265 ];
266 if (settingsToMoveToCore.includes(name) && ["core/edit-post", "core/edit-site"].includes(scope)) {
267 (0, import_deprecated.default)(
268 `wp.data.select( 'core/preferences' ).get( '${scope}', '${name}' )`,
269 {
270 since: "6.5",
271 alternative: `wp.data.select( 'core/preferences' ).get( 'core', '${name}' )`
272 }
273 );
274 return originalGet(state, "core", name);
275 }
276 return originalGet(state, scope, name);
277 };
278 var get = withDeprecatedKeys(
279 (state, scope, name) => {
280 const value = state.preferences[scope]?.[name];
281 return value !== void 0 ? value : state.defaults[scope]?.[name];
282 }
283 );
284
285 // packages/preferences/build-module/store/constants.mjs
286 var STORE_NAME = "core/preferences";
287
288 // packages/preferences/build-module/store/index.mjs
289 var store = (0, import_data2.createReduxStore)(STORE_NAME, {
290 reducer: reducer_default,
291 actions: actions_exports,
292 selectors: selectors_exports
293 });
294 (0, import_data2.register)(store);
295
296 // packages/preferences/build-module/components/preference-toggle-menu-item/index.mjs
297 var import_jsx_runtime4 = __toESM(require_jsx_runtime(), 1);
298 function PreferenceToggleMenuItem({
299 scope,
300 name,
301 label,
302 info,
303 messageActivated,
304 messageDeactivated,
305 shortcut,
306 handleToggling = true,
307 onToggle = () => null,
308 disabled = false
309 }) {
310 const isActive = (0, import_data3.useSelect)(
311 (select) => !!select(store).get(scope, name),
312 [scope, name]
313 );
314 const { toggle: toggle2 } = (0, import_data3.useDispatch)(store);
315 const speakMessage = () => {
316 if (isActive) {
317 const message = messageDeactivated || (0, import_i18n.sprintf)(
318 /* translators: %s: preference name, e.g. 'Fullscreen mode' */
319 (0, import_i18n.__)("Preference deactivated - %s"),
320 label
321 );
322 (0, import_a11y.speak)(message);
323 } else {
324 const message = messageActivated || (0, import_i18n.sprintf)(
325 /* translators: %s: preference name, e.g. 'Fullscreen mode' */
326 (0, import_i18n.__)("Preference activated - %s"),
327 label
328 );
329 (0, import_a11y.speak)(message);
330 }
331 };
332 return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
333 import_components.MenuItem,
334 {
335 icon: isActive ? check_default : null,
336 isSelected: isActive,
337 onClick: () => {
338 onToggle();
339 if (handleToggling) {
340 toggle2(scope, name);
341 }
342 speakMessage();
343 },
344 role: "menuitemcheckbox",
345 info,
346 shortcut,
347 disabled,
348 children: label
349 }
350 );
351 }
352
353 // packages/preferences/build-module/components/preference-base-option/index.mjs
354 var import_components2 = __toESM(require_components(), 1);
355 var import_jsx_runtime5 = __toESM(require_jsx_runtime(), 1);
356 function BaseOption({
357 help,
358 label,
359 isChecked,
360 onChange,
361 children
362 }) {
363 return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "preference-base-option", children: [
364 /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
365 import_components2.ToggleControl,
366 {
367 help,
368 label,
369 checked: isChecked,
370 onChange
371 }
372 ),
373 children
374 ] });
375 }
376 var preference_base_option_default = BaseOption;
377
378 // packages/preferences/build-module/components/preference-toggle-control/index.mjs
379 var import_data4 = __toESM(require_data(), 1);
380 var import_jsx_runtime6 = __toESM(require_jsx_runtime(), 1);
381 function PreferenceToggleControl(props) {
382 const {
383 scope,
384 featureName,
385 onToggle = () => {
386 },
387 ...remainingProps
388 } = props;
389 const isChecked = (0, import_data4.useSelect)(
390 (select) => !!select(store).get(scope, featureName),
391 [scope, featureName]
392 );
393 const { toggle: toggle2 } = (0, import_data4.useDispatch)(store);
394 const onChange = () => {
395 onToggle();
396 toggle2(scope, featureName);
397 };
398 return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
399 preference_base_option_default,
400 {
401 ...remainingProps,
402 onChange,
403 isChecked
404 }
405 );
406 }
407 var preference_toggle_control_default = PreferenceToggleControl;
408
409 // packages/preferences/build-module/components/preferences-modal/index.mjs
410 var import_components3 = __toESM(require_components(), 1);
411 var import_i18n2 = __toESM(require_i18n(), 1);
412 var import_jsx_runtime7 = __toESM(require_jsx_runtime(), 1);
413 function PreferencesModal({
414 closeModal,
415 children
416 }) {
417 return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
418 import_components3.Modal,
419 {
420 className: "preferences-modal",
421 title: (0, import_i18n2.__)("Preferences"),
422 onRequestClose: closeModal,
423 children
424 }
425 );
426 }
427
428 // packages/preferences/build-module/components/preferences-modal-section/index.mjs
429 var import_jsx_runtime8 = __toESM(require_jsx_runtime(), 1);
430 var Section = ({ description, title, children }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("fieldset", { className: "preferences-modal__section", children: [
431 /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("legend", { className: "preferences-modal__section-legend", children: [
432 /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h2", { className: "preferences-modal__section-title", children: title }),
433 description && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "preferences-modal__section-description", children: description })
434 ] }),
435 /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "preferences-modal__section-content", children })
436 ] });
437 var preferences_modal_section_default = Section;
438
439 // packages/preferences/build-module/components/preferences-modal-tabs/index.mjs
440 var import_compose = __toESM(require_compose(), 1);
441 var import_components4 = __toESM(require_components(), 1);
442 var import_element2 = __toESM(require_element(), 1);
443 var import_i18n3 = __toESM(require_i18n(), 1);
444
445 // packages/preferences/build-module/lock-unlock.mjs
446 var import_private_apis = __toESM(require_private_apis(), 1);
447 var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)(
448 "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.",
449 "@wordpress/preferences"
450 );
451
452 // packages/preferences/build-module/components/preferences-modal-tabs/index.mjs
453 var import_jsx_runtime9 = __toESM(require_jsx_runtime(), 1);
454 var { Tabs } = unlock(import_components4.privateApis);
455 var PREFERENCES_MENU = "preferences-menu";
456 function PreferencesModalTabs({
457 sections
458 }) {
459 const isLargeViewport = (0, import_compose.useViewportMatch)("medium");
460 const [activeMenu, setActiveMenu] = (0, import_element2.useState)(PREFERENCES_MENU);
461 const { tabs, sectionsContentMap } = (0, import_element2.useMemo)(() => {
462 let mappedTabs = {
463 tabs: [],
464 sectionsContentMap: {}
465 };
466 if (sections.length) {
467 mappedTabs = sections.reduce(
468 (accumulator, { name, tabLabel: title, content }) => {
469 accumulator.tabs.push({ name, title });
470 accumulator.sectionsContentMap[name] = content;
471 return accumulator;
472 },
473 { tabs: [], sectionsContentMap: {} }
474 );
475 }
476 return mappedTabs;
477 }, [sections]);
478 let modalContent;
479 if (isLargeViewport) {
480 modalContent = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "preferences__tabs", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
481 Tabs,
482 {
483 defaultTabId: activeMenu !== PREFERENCES_MENU ? activeMenu : void 0,
484 onSelect: setActiveMenu,
485 orientation: "vertical",
486 children: [
487 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Tabs.TabList, { className: "preferences__tabs-tablist", children: tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
488 Tabs.Tab,
489 {
490 tabId: tab.name,
491 className: "preferences__tabs-tab",
492 children: tab.title
493 },
494 tab.name
495 )) }),
496 tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
497 Tabs.TabPanel,
498 {
499 tabId: tab.name,
500 className: "preferences__tabs-tabpanel",
501 focusable: false,
502 children: sectionsContentMap[tab.name] || null
503 },
504 tab.name
505 ))
506 ]
507 }
508 ) });
509 } else {
510 modalContent = /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_components4.Navigator, { initialPath: "/", className: "preferences__provider", children: [
511 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.Navigator.Screen, { path: "/", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.Card, { isBorderless: true, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.CardBody, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.__experimentalItemGroup, { children: tabs.map((tab) => {
512 return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
513 import_components4.Navigator.Button,
514 {
515 path: `/${tab.name}`,
516 as: import_components4.__experimentalItem,
517 isAction: true,
518 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_components4.__experimentalHStack, { justify: "space-between", children: [
519 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.FlexItem, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.__experimentalTruncate, { children: tab.title }) }),
520 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.FlexItem, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
521 icon_default,
522 {
523 icon: (0, import_i18n3.isRTL)() ? chevron_left_default : chevron_right_default
524 }
525 ) })
526 ] })
527 },
528 tab.name
529 );
530 }) }) }) }) }),
531 sections.length && sections.map((section) => {
532 return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
533 import_components4.Navigator.Screen,
534 {
535 path: `/${section.name}`,
536 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_components4.Card, { isBorderless: true, size: "large", children: [
537 /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
538 import_components4.CardHeader,
539 {
540 isBorderless: false,
541 justify: "left",
542 size: "small",
543 gap: "6",
544 as: "div",
545 children: [
546 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
547 import_components4.Navigator.BackButton,
548 {
549 icon: (0, import_i18n3.isRTL)() ? chevron_right_default : chevron_left_default,
550 label: (0, import_i18n3.__)("Back")
551 }
552 ),
553 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.__experimentalText, { size: "16", children: section.tabLabel })
554 ]
555 }
556 ),
557 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.CardBody, { children: section.content })
558 ] })
559 },
560 `${section.name}-menu`
561 );
562 })
563 ] });
564 }
565 return modalContent;
566 }
567
568 // packages/preferences/build-module/private-apis.mjs
569 var privateApis = {};
570 lock(privateApis, {
571 PreferenceBaseOption: preference_base_option_default,
572 PreferenceToggleControl: preference_toggle_control_default,
573 PreferencesModal,
574 PreferencesModalSection: preferences_modal_section_default,
575 PreferencesModalTabs
576 });
577 return __toCommonJS(index_exports);
578 })();
579 //# sourceMappingURL=index.js.map
580