summaryrefslogtreecommitdiffstats
path: root/wp-includes/blocks/search/view.js
diff options
context:
space:
mode:
Diffstat (limited to 'wp-includes/blocks/search/view.js')
-rw-r--r--wp-includes/blocks/search/view.js101
1 files changed, 101 insertions, 0 deletions
diff --git a/wp-includes/blocks/search/view.js b/wp-includes/blocks/search/view.js
new file mode 100644
index 0000000..9d18abf
--- /dev/null
+++ b/wp-includes/blocks/search/view.js
@@ -0,0 +1,101 @@
+"use strict";
+(self["__WordPressPrivateInteractivityAPI__"] = self["__WordPressPrivateInteractivityAPI__"] || []).push([[222],{
+
+/***/ 534:
+/***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
+
+/* harmony import */ var _wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(754);
+/**
+ * WordPress dependencies
+ */
+
+(0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__/* .store */ .h)({
+ selectors: {
+ core: {
+ search: {
+ ariaLabel: ({
+ context
+ }) => {
+ const {
+ ariaLabelCollapsed,
+ ariaLabelExpanded
+ } = context.core.search;
+ return context.core.search.isSearchInputVisible ? ariaLabelExpanded : ariaLabelCollapsed;
+ },
+ ariaControls: ({
+ context
+ }) => {
+ return context.core.search.isSearchInputVisible ? null : context.core.search.inputId;
+ },
+ type: ({
+ context
+ }) => {
+ return context.core.search.isSearchInputVisible ? 'submit' : 'button';
+ },
+ tabindex: ({
+ context
+ }) => {
+ return context.core.search.isSearchInputVisible ? '0' : '-1';
+ }
+ }
+ }
+ },
+ actions: {
+ core: {
+ search: {
+ openSearchInput: ({
+ context,
+ event,
+ ref
+ }) => {
+ if (!context.core.search.isSearchInputVisible) {
+ event.preventDefault();
+ context.core.search.isSearchInputVisible = true;
+ ref.parentElement.querySelector('input').focus();
+ }
+ },
+ closeSearchInput: ({
+ context
+ }) => {
+ context.core.search.isSearchInputVisible = false;
+ },
+ handleSearchKeydown: store => {
+ const {
+ actions,
+ event,
+ ref
+ } = store;
+ // If Escape close the menu.
+ if (event?.key === 'Escape') {
+ actions.core.search.closeSearchInput(store);
+ ref.querySelector('button').focus();
+ }
+ },
+ handleSearchFocusout: store => {
+ const {
+ actions,
+ event,
+ ref
+ } = store;
+ // If focus is outside search form, and in the document, close menu
+ // event.target === The element losing focus
+ // event.relatedTarget === The element receiving focus (if any)
+ // When focusout is outside the document,
+ // `window.document.activeElement` doesn't change.
+ if (!ref.contains(event.relatedTarget) && event.target !== window.document.activeElement) {
+ actions.core.search.closeSearchInput(store);
+ }
+ }
+ }
+ }
+ }
+});
+
+/***/ })
+
+},
+/******/ function(__webpack_require__) { // webpackRuntimeModules
+/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
+/******/ var __webpack_exports__ = (__webpack_exec__(534));
+/******/ }
+]); \ No newline at end of file