UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 3.65 kB
{ "version": 3, "sources": ["../../src/search/view.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tstore,\n\tgetContext,\n\tgetElement,\n\twithSyncEvent,\n} from '@wordpress/interactivity';\n\nconst { actions } = store(\n\t'core/search',\n\t{\n\t\tstate: {\n\t\t\tget ariaLabel() {\n\t\t\t\tconst {\n\t\t\t\t\tisSearchInputVisible,\n\t\t\t\t\tariaLabelCollapsed,\n\t\t\t\t\tariaLabelExpanded,\n\t\t\t\t} = getContext();\n\t\t\t\treturn isSearchInputVisible\n\t\t\t\t\t? ariaLabelExpanded\n\t\t\t\t\t: ariaLabelCollapsed;\n\t\t\t},\n\t\t\tget ariaControls() {\n\t\t\t\tconst { isSearchInputVisible, inputId } = getContext();\n\t\t\t\treturn isSearchInputVisible ? null : inputId;\n\t\t\t},\n\t\t\tget type() {\n\t\t\t\tconst { isSearchInputVisible } = getContext();\n\t\t\t\treturn isSearchInputVisible ? 'submit' : 'button';\n\t\t\t},\n\t\t\tget tabindex() {\n\t\t\t\tconst { isSearchInputVisible } = getContext();\n\t\t\t\treturn isSearchInputVisible ? '0' : '-1';\n\t\t\t},\n\t\t},\n\t\tactions: {\n\t\t\topenSearchInput: withSyncEvent( ( event ) => {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tif ( ! ctx.isSearchInputVisible ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tctx.isSearchInputVisible = true;\n\t\t\t\t\tref.parentElement.querySelector( 'input' ).focus();\n\t\t\t\t}\n\t\t\t} ),\n\t\t\tcloseSearchInput() {\n\t\t\t\tconst ctx = getContext();\n\t\t\t\tctx.isSearchInputVisible = false;\n\t\t\t},\n\t\t\thandleSearchKeydown: withSyncEvent( ( event ) => {\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\t// If Escape close the menu.\n\t\t\t\tif ( event?.key === 'Escape' ) {\n\t\t\t\t\tactions.closeSearchInput();\n\t\t\t\t\tref.querySelector( 'button' ).focus();\n\t\t\t\t}\n\t\t\t} ),\n\t\t\thandleSearchFocusout: withSyncEvent( ( event ) => {\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\t// If focus is outside search form, and in the document, close menu\n\t\t\t\t// event.target === The element losing focus\n\t\t\t\t// event.relatedTarget === The element receiving focus (if any)\n\t\t\t\t// When focusout is outside the document,\n\t\t\t\t// `window.document.activeElement` doesn't change.\n\t\t\t\tif (\n\t\t\t\t\t! ref.contains( event.relatedTarget ) &&\n\t\t\t\t\tevent.target !== window.document.activeElement\n\t\t\t\t) {\n\t\t\t\t\tactions.closeSearchInput();\n\t\t\t\t}\n\t\t\t} ),\n\t\t},\n\t},\n\t{ lock: true }\n);\n"], "mappings": ";AAGA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,IAAM,EAAE,QAAQ,IAAI;AAAA,EACnB;AAAA,EACA;AAAA,IACC,OAAO;AAAA,MACN,IAAI,YAAY;AACf,cAAM;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACD,IAAI,WAAW;AACf,eAAO,uBACJ,oBACA;AAAA,MACJ;AAAA,MACA,IAAI,eAAe;AAClB,cAAM,EAAE,sBAAsB,QAAQ,IAAI,WAAW;AACrD,eAAO,uBAAuB,OAAO;AAAA,MACtC;AAAA,MACA,IAAI,OAAO;AACV,cAAM,EAAE,qBAAqB,IAAI,WAAW;AAC5C,eAAO,uBAAuB,WAAW;AAAA,MAC1C;AAAA,MACA,IAAI,WAAW;AACd,cAAM,EAAE,qBAAqB,IAAI,WAAW;AAC5C,eAAO,uBAAuB,MAAM;AAAA,MACrC;AAAA,IACD;AAAA,IACA,SAAS;AAAA,MACR,iBAAiB,cAAe,CAAE,UAAW;AAC5C,cAAM,MAAM,WAAW;AACvB,cAAM,EAAE,IAAI,IAAI,WAAW;AAC3B,YAAK,CAAE,IAAI,sBAAuB;AACjC,gBAAM,eAAe;AACrB,cAAI,uBAAuB;AAC3B,cAAI,cAAc,cAAe,OAAQ,EAAE,MAAM;AAAA,QAClD;AAAA,MACD,CAAE;AAAA,MACF,mBAAmB;AAClB,cAAM,MAAM,WAAW;AACvB,YAAI,uBAAuB;AAAA,MAC5B;AAAA,MACA,qBAAqB,cAAe,CAAE,UAAW;AAChD,cAAM,EAAE,IAAI,IAAI,WAAW;AAE3B,YAAK,OAAO,QAAQ,UAAW;AAC9B,kBAAQ,iBAAiB;AACzB,cAAI,cAAe,QAAS,EAAE,MAAM;AAAA,QACrC;AAAA,MACD,CAAE;AAAA,MACF,sBAAsB,cAAe,CAAE,UAAW;AACjD,cAAM,EAAE,IAAI,IAAI,WAAW;AAM3B,YACC,CAAE,IAAI,SAAU,MAAM,aAAc,KACpC,MAAM,WAAW,OAAO,SAAS,eAChC;AACD,kBAAQ,iBAAiB;AAAA,QAC1B;AAAA,MACD,CAAE;AAAA,IACH;AAAA,EACD;AAAA,EACA,EAAE,MAAM,KAAK;AACd;", "names": [] }