PluginProbe
Gutenberg / 17.8.1
Gutenberg v17.8.1
24.0.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 All 403 releases
gutenberg / build / interactivity / search.js

search.js in Gutenberg 17.8.1, at build/interactivity/search.js

110 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity";
2 /******/ // The require scope
3 /******/ var __webpack_require__ = {};
4 /******/
5 /************************************************************************/
6 /******/ /* webpack/runtime/define property getters */
7 /******/ (() => {
8 /******/ // define getter functions for harmony exports
9 /******/ __webpack_require__.d = (exports, definition) => {
10 /******/ for(var key in definition) {
11 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
12 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
13 /******/ }
14 /******/ }
15 /******/ };
16 /******/ })();
17 /******/
18 /******/ /* webpack/runtime/hasOwnProperty shorthand */
19 /******/ (() => {
20 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
21 /******/ })();
22 /******/
23 /************************************************************************/
24 var __webpack_exports__ = {};
25
26 ;// CONCATENATED MODULE: external "@wordpress/interactivity"
27 var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }
28 var y = x => () => x
29 const interactivity_namespaceObject = x({ ["getContext"]: () => __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getContext, ["getElement"]: () => __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getElement, ["store"]: () => __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.store });
30 ;// CONCATENATED MODULE: ./packages/block-library/src/search/view.js
31 /**
32 * WordPress dependencies
33 */
34
35 const {
36 actions
37 } = (0,interactivity_namespaceObject.store)('core/search', {
38 state: {
39 get ariaLabel() {
40 const {
41 isSearchInputVisible,
42 ariaLabelCollapsed,
43 ariaLabelExpanded
44 } = (0,interactivity_namespaceObject.getContext)();
45 return isSearchInputVisible ? ariaLabelExpanded : ariaLabelCollapsed;
46 },
47 get ariaControls() {
48 const {
49 isSearchInputVisible,
50 inputId
51 } = (0,interactivity_namespaceObject.getContext)();
52 return isSearchInputVisible ? null : inputId;
53 },
54 get type() {
55 const {
56 isSearchInputVisible
57 } = (0,interactivity_namespaceObject.getContext)();
58 return isSearchInputVisible ? 'submit' : 'button';
59 },
60 get tabindex() {
61 const {
62 isSearchInputVisible
63 } = (0,interactivity_namespaceObject.getContext)();
64 return isSearchInputVisible ? '0' : '-1';
65 }
66 },
67 actions: {
68 openSearchInput(event) {
69 const ctx = (0,interactivity_namespaceObject.getContext)();
70 const {
71 ref
72 } = (0,interactivity_namespaceObject.getElement)();
73 if (!ctx.isSearchInputVisible) {
74 event.preventDefault();
75 ctx.isSearchInputVisible = true;
76 ref.parentElement.querySelector('input').focus();
77 }
78 },
79 closeSearchInput() {
80 const ctx = (0,interactivity_namespaceObject.getContext)();
81 ctx.isSearchInputVisible = false;
82 },
83 handleSearchKeydown(event) {
84 const {
85 ref
86 } = (0,interactivity_namespaceObject.getElement)();
87 // If Escape close the menu.
88 if (event?.key === 'Escape') {
89 actions.closeSearchInput();
90 ref.querySelector('button').focus();
91 }
92 },
93 handleSearchFocusout(event) {
94 const {
95 ref
96 } = (0,interactivity_namespaceObject.getElement)();
97 // If focus is outside search form, and in the document, close menu
98 // event.target === The element losing focus
99 // event.relatedTarget === The element receiving focus (if any)
100 // When focusout is outside the document,
101 // `window.document.activeElement` doesn't change.
102 if (!ref.contains(event.relatedTarget) && event.target !== window.document.activeElement) {
103 actions.closeSearchInput();
104 }
105 }
106 }
107 }, {
108 lock: true
109 });
110