UNPKG

@wordpress/block-editor

Version:
8 lines (7 loc) 2.63 kB
{ "version": 3, "sources": ["../../src/autocompleters/link.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { Icon, page, post } from '@wordpress/icons';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nconst SHOWN_SUGGESTIONS = 10;\n\n/**\n * Creates a suggestion list for links to posts or pages.\n *\n * @return {Object} A links completer.\n */\nfunction createLinkCompleter() {\n\treturn {\n\t\tname: 'links',\n\t\tclassName: 'block-editor-autocompleters__link',\n\t\ttriggerPrefix: '[[',\n\t\toptions: async ( letters ) => {\n\t\t\tlet options = await apiFetch( {\n\t\t\t\tpath: addQueryArgs( '/wp/v2/search', {\n\t\t\t\t\tper_page: SHOWN_SUGGESTIONS,\n\t\t\t\t\tsearch: letters,\n\t\t\t\t\ttype: 'post',\n\t\t\t\t\torder_by: 'menu_order',\n\t\t\t\t} ),\n\t\t\t} );\n\n\t\t\toptions = options.filter( ( option ) => option.title !== '' );\n\n\t\t\treturn options;\n\t\t},\n\t\tgetOptionKeywords( item ) {\n\t\t\tconst expansionWords = item.title.split( /\\s+/ );\n\t\t\treturn [ ...expansionWords ];\n\t\t},\n\t\tgetOptionLabel( item ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\ticon={ item.subtype === 'page' ? page : post }\n\t\t\t\t\t/>\n\t\t\t\t\t{ decodeEntities( item.title ) }\n\t\t\t\t</>\n\t\t\t);\n\t\t},\n\t\tgetOptionCompletion( item ) {\n\t\t\treturn <a href={ item.url }>{ item.title }</a>;\n\t\t},\n\t};\n}\n\n/**\n * Creates a suggestion list for links to posts or pages..\n *\n * @return {Object} A link completer.\n */\nexport default createLinkCompleter();\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,uBAAqB;AACrB,iBAA6B;AAC7B,mBAAiC;AACjC,2BAA+B;AAkC3B;AAhCJ,IAAM,oBAAoB;AAO1B,SAAS,sBAAsB;AAC9B,SAAO;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,eAAe;AAAA,IACf,SAAS,OAAQ,YAAa;AAC7B,UAAI,UAAU,UAAM,iBAAAA,SAAU;AAAA,QAC7B,UAAM,yBAAc,iBAAiB;AAAA,UACpC,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,UAAU;AAAA,QACX,CAAE;AAAA,MACH,CAAE;AAEF,gBAAU,QAAQ,OAAQ,CAAE,WAAY,OAAO,UAAU,EAAG;AAE5D,aAAO;AAAA,IACR;AAAA,IACA,kBAAmB,MAAO;AACzB,YAAM,iBAAiB,KAAK,MAAM,MAAO,KAAM;AAC/C,aAAO,CAAE,GAAG,cAAe;AAAA,IAC5B;AAAA,IACA,eAAgB,MAAO;AACtB,aACC,4EACC;AAAA;AAAA,UAAC;AAAA;AAAA,YAEA,MAAO,KAAK,YAAY,SAAS,oBAAO;AAAA;AAAA,UADpC;AAAA,QAEL;AAAA,YACE,qCAAgB,KAAK,KAAM;AAAA,SAC9B;AAAA,IAEF;AAAA,IACA,oBAAqB,MAAO;AAC3B,aAAO,4CAAC,OAAE,MAAO,KAAK,KAAQ,eAAK,OAAO;AAAA,IAC3C;AAAA,EACD;AACD;AAOA,IAAO,eAAQ,oBAAoB;", "names": ["apiFetch"] }