Current File : /home/quantums/theartoflevelingup.net/wp-content/plugins/pretty-link/js/editor.js.map
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./js/editor/components/index.js","webpack:///./js/editor/components/link-editor/index.js","webpack:///./js/editor/components/link-editor/style.scss?a870","webpack:///./js/editor/components/link-editor/utils.js","webpack:///./js/editor/components/url-input/index.js","webpack:///./js/editor/formats/pretty-link/index.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/dom-scroll-into-view/lib/dom-scroll-into-view.js","webpack:///./node_modules/dom-scroll-into-view/lib/index.js","webpack:///./node_modules/dom-scroll-into-view/lib/util.js","webpack:///./js/editor/components/link-editor/style.scss","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///external {\"this\":\"regeneratorRuntime\"}","webpack:///external {\"this\":[\"wp\",\"apiFetch\"]}","webpack:///external {\"this\":[\"wp\",\"blockEditor\"]}","webpack:///external {\"this\":[\"wp\",\"components\"]}","webpack:///external {\"this\":[\"wp\",\"compose\"]}","webpack:///external {\"this\":[\"wp\",\"data\"]}","webpack:///external {\"this\":[\"wp\",\"dom\"]}","webpack:///external {\"this\":[\"wp\",\"element\"]}","webpack:///external {\"this\":[\"wp\",\"htmlEntities\"]}","webpack:///external {\"this\":[\"wp\",\"i18n\"]}","webpack:///external {\"this\":[\"wp\",\"keycodes\"]}","webpack:///external {\"this\":[\"wp\",\"richText\"]}","webpack:///external {\"this\":[\"wp\",\"url\"]}","webpack:///external {\"this\":\"lodash\"}"],"names":["stopKeyPropagation","event","stopPropagation","isShowingInput","props","state","addingLink","editLink","LinkEditor","value","onChangeInputValue","onKeyDown","submitLink","autocompleteRef","__","LinkViewerUrl","url","prependedURL","prependHTTP","linkClassName","classnames","isValidHref","filterURLForDisplay","safeDecodeURI","URLPopoverAtLink","isActive","anchorRect","useMemo","selection","window","getSelection","range","rangeCount","getRangeAt","getRectangleFromRange","element","startContainer","nextElementSibling","nodeType","Node","ELEMENT_NODE","parentNode","closest","getBoundingClientRect","start","end","LinkViewer","createNewPrettyLink","target","slug","Promise","resolve","reject","jQuery","post","ajaxurl","action","redirect","nofollow","tracking","sponsored","data","textStatus","xhr","fail","error","InlineLinkUI","arguments","bind","setNoFollow","setIsSponsored","setLinkTarget","onClickOutside","resetState","createRef","noFollow","opensInNewWindow","isSponsored","inputValue","newLinkUrl","newLinkSlug","creatingLink","createdLink","createdLinkError","LEFT","DOWN","RIGHT","UP","BACKSPACE","ENTER","indexOf","keyCode","setState","activeAttributes","onChange","selectedText","getTextContent","slice","applyFormat","createLinkFormat","text","console","log","preventDefault","speak","format","isCollapsed","toInsert","create","length","insert","autocompleteElement","current","contains","stopAddingLink","showInput","then","plEditor","homeUrl","catch","Component","withSpokenMessages","href","trimmedHref","trim","test","protocol","getProtocol","isValidProtocol","startsWith","authority","getAuthority","isValidAuthority","path","getPath","isValidPath","queryString","getQueryString","isValidQueryString","fragment","getFragment","isValidFragment","type","attributes","rel","label","sprintf","stopEventPropagation","fetchLinkSuggestions","search","apiFetch","addQueryArgs","term","links","map","link","pretty_url","title","decodeEntities","URLInput","inputRef","updateSuggestions","throttle","suggestionNodes","suggestions","showSuggestions","selectedSuggestion","scrollingIntoView","scrollIntoView","onlyScrollIfNeeded","setTimeout","suggestionsRequest","index","ref","loading","request","debouncedSpeak","_n","selectionStart","setSelectionRange","suggestion","previousIndex","nextIndex","TAB","selectLink","focus","autoFocus","instanceId","className","suggestionsListboxId","suggestionOptionIdPrefix","undefined","id","bindSuggestionNode","handleOnClick","compose","withSafeTimeout","withInstanceId","withSelect","select","getSettings","__experimentalFetchLinkSuggestions","name","prettyLink","tagName","edit","addLink","onRemoveFormat","isURL","removeFormat","registerFormats","forEach","settings","registerFormatType"],"mappings":"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AAU,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,EAEN;AACF,CAAC;;;;;;;;;;;;;ACnDY;;AAEb,WAAW,mBAAO,CAAC,+DAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;;;;;;;AChIa;;AAEb,iBAAiB,mBAAO,CAAC,+FAAwB,E;;;;;;;;;;;;ACFpC;;AAEb,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,CAAC,Y;;;;;;;;;;;ACtbD,6EAA6E,mBAAmB,EAAE,gEAAgE,qBAAqB,EAAE,G;;;;;;;;;;;ACAzL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,uDAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,KAAK,KAAwC,EAAE,EAE7C;;AAEF,QAAQ,sBAAiB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;;;;;;AC9YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFA,aAAa,6CAA6C,EAAE,I;;;;;;;;;;;ACA5D,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,4CAA4C,EAAE,I;;;;;;;;;;;ACA3D,aAAa,2CAA2C,EAAE,I;;;;;;;;;;;ACA1D,aAAa,wCAAwC,EAAE,I;;;;;;;;;;;ACAvD,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,oCAAoC,EAAE,I;;;;;;;;;;;ACAnD,aAAa,wCAAwC,EAAE,I;;;;;;;;;;;ACAvD,aAAa,6CAA6C,EAAE,I;;;;;;;;;;;ACA5D,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,oCAAoC,EAAE,I;;;;;;;;;;;ACAnD,aAAa,iCAAiC,EAAE,I","file":"editor.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","export { default as URLInput } from './url-input';","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, Fragment, createRef, useMemo } from '@wordpress/element';\nimport {\n  ExternalLink,\n  IconButton,\n  ToggleControl,\n  Button,\n  TextControl,\n  Notice,\n  Spinner,\n  withSpokenMessages,\n} from '@wordpress/components';\nimport { LEFT, RIGHT, UP, DOWN, BACKSPACE, ENTER } from '@wordpress/keycodes';\nimport { getRectangleFromRange } from '@wordpress/dom';\nimport { prependHTTP, safeDecodeURI, filterURLForDisplay } from '@wordpress/url';\nimport {\n  create,\n  insert,\n  isCollapsed,\n  applyFormat,\n  getTextContent,\n  slice,\n} from '@wordpress/rich-text';\nimport { URLPopover } from '@wordpress/block-editor';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport URLInput from '../url-input';\nimport './style.scss';\n\n/**\n * Internal dependencies\n */\nimport { createLinkFormat, isValidHref } from './utils';\n\nconst stopKeyPropagation = ( event ) => event.stopPropagation();\n\nfunction isShowingInput( props, state ) {\n  return props.addingLink || state.editLink;\n}\n\nconst LinkEditor = ( { value, onChangeInputValue, onKeyDown, submitLink, autocompleteRef } ) => (\n  // Disable reason: KeyPress must be suppressed so the block doesn't hide the toolbar\n  /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n  <form\n    className=\"editor-format-toolbar__link-container-content block-editor-format-toolbar__link-container-content\"\n    onKeyPress={ stopKeyPropagation }\n    onKeyDown={ onKeyDown }\n    onSubmit={ submitLink }\n  >\n    <URLInput\n      value={ value }\n      onChange={ onChangeInputValue }\n      autocompleteRef={ autocompleteRef }\n    />\n    <IconButton icon=\"editor-break\" label={ __( 'Insert Pretty Link' ) } type=\"submit\" />\n  </form>\n  /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */\n);\n\nconst LinkViewerUrl = ( { url } ) => {\n  const prependedURL = prependHTTP( url );\n  const linkClassName = classnames( 'editor-format-toolbar__link-container-value block-editor-format-toolbar__link-container-value', {\n    'has-invalid-link': ! isValidHref( prependedURL ),\n  } );\n\n  if ( ! url ) {\n    return <span className={ linkClassName }></span>;\n  }\n\n  return (\n    <ExternalLink\n      className={ linkClassName }\n      href={ url }\n    >\n      { filterURLForDisplay( safeDecodeURI( url ) ) }\n    </ExternalLink>\n  );\n};\n\nconst URLPopoverAtLink = ( { isActive, addingLink, value, ...props } ) => {\n  const anchorRect = useMemo( () => {\n    const selection = window.getSelection();\n    const range = selection.rangeCount > 0 ? selection.getRangeAt( 0 ) : null;\n    if ( ! range ) {\n      return;\n    }\n\n    if ( addingLink ) {\n      return getRectangleFromRange( range );\n    }\n\n    let element = range.startContainer;\n\n    // If the caret is right before the element, select the next element.\n    element = element.nextElementSibling || element;\n\n    while ( element.nodeType !== window.Node.ELEMENT_NODE ) {\n      element = element.parentNode;\n    }\n\n    const closest = element.closest( 'a' );\n    if ( closest ) {\n      return closest.getBoundingClientRect();\n    }\n  }, [ isActive, addingLink, value.start, value.end ] );\n\n  if ( ! anchorRect ) {\n    return null;\n  }\n\n  return <URLPopover anchorRect={ anchorRect } { ...props } />;\n};\n\nconst LinkViewer = ( { url, editLink } ) => {\n  return (\n    // Disable reason: KeyPress must be suppressed so the block doesn't hide the toolbar\n    /* eslint-disable jsx-a11y/no-static-element-interactions */\n    <div\n      className=\"editor-format-toolbar__link-container-content block-editor-format-toolbar__link-container-content\"\n      onKeyPress={ stopKeyPropagation }\n    >\n      <LinkViewerUrl url={ url } />\n      <IconButton icon=\"edit\" label={ __( 'Edit' ) } onClick={ editLink } />\n    </div>\n    /* eslint-enable jsx-a11y/no-static-element-interactions */\n  );\n};\n\nconst createNewPrettyLink = (target, slug) => {\n  return new Promise((resolve, reject) => {\n    jQuery.post(\n      ajaxurl,\n      {\n        action: 'prli_create_pretty_link',\n        target: target,\n        slug: slug,\n        redirect: '',\n        nofollow: 1,\n        tracking: 1,\n        sponsored: 0\n      },\n      (data, textStatus, xhr) => {\n        'true' === data ? resolve(data) : reject(data);\n      }\n      ).fail(error => {\n        reject(error);\n      });\n  });\n}\n\nclass InlineLinkUI extends Component {\n  constructor() {\n    super( ...arguments );\n\n    this.editLink = this.editLink.bind( this );\n    this.submitLink = this.submitLink.bind( this );\n    this.onKeyDown = this.onKeyDown.bind( this );\n    this.onChangeInputValue = this.onChangeInputValue.bind( this );\n    this.setNoFollow = this.setNoFollow.bind( this );\n    this.setIsSponsored = this.setIsSponsored.bind( this );\n    this.setLinkTarget = this.setLinkTarget.bind( this );\n    this.onClickOutside = this.onClickOutside.bind( this );\n    this.resetState = this.resetState.bind( this );\n    this.autocompleteRef = createRef();\n\n    this.state = {\n      noFollow: false,\n      opensInNewWindow: false,\n      isSponsored: false,\n      inputValue: '',\n      newLinkUrl: '',\n      newLinkSlug: '',\n      creatingLink: false,\n      createdLink: false,\n      createdLinkError: false\n    };\n  }\n\n  static getDerivedStateFromProps( props, state ) {\n    const { activeAttributes: { url, target, isSponsored } } = props;\n    const opensInNewWindow = target === '_blank';\n\n    if ( ! isShowingInput( props, state ) ) {\n      if ( url !== state.inputValue ) {\n        return { inputValue: url };\n      }\n\n      if ( opensInNewWindow !== state.opensInNewWindow ) {\n        return { opensInNewWindow };\n      }\n    }\n\n    return null;\n  }\n\n  onKeyDown( event ) {\n    if ( [ LEFT, DOWN, RIGHT, UP, BACKSPACE, ENTER ].indexOf( event.keyCode ) > -1 ) {\n      // Stop the key event from propagating up to ObserveTyping.startTypingInTextField.\n      event.stopPropagation();\n    }\n  }\n\n  onChangeInputValue( inputValue ) {\n    this.setState( { inputValue } );\n  }\n\n  setLinkTarget( opensInNewWindow ) {\n    const { activeAttributes: { url = '' }, value, onChange } = this.props;\n\n    this.setState( { opensInNewWindow } );\n\n    // Apply now if URL is not being edited.\n    if ( ! isShowingInput( this.props, this.state ) ) {\n      const selectedText = getTextContent( slice( value ) );\n\n      onChange( applyFormat( value, createLinkFormat( {\n        url,\n        opensInNewWindow,\n        text: selectedText,\n      } ) ) );\n    }\n  }\n\n  setNoFollow( noFollow ) {\n    const { activeAttributes: { url = '' }, value, onChange } = this.props;\n\n    this.setState( { noFollow } );\n\n    // Apply now if URL is not being edited.\n    if ( ! isShowingInput( this.props, this.state ) ) {\n      const selectedText = getTextContent( slice( value ) );\n\n      onChange( applyFormat( value, createLinkFormat( {\n        url,\n        opensInNewWindow,\n        text: selectedText,\n        noFollow,\n        isSponsored\n      } ) ) );\n    }\n  }\n\n  setIsSponsored( isSponsored ) {\n    console.log(this);\n    const { activeAttributes: { url = '' }, value, onChange } = this.props;\n\n    this.setState( { isSponsored } );\n\n    // Apply now if URL is not being edited.\n    if ( ! isShowingInput( this.props, this.state ) ) {\n      const selectedText = getTextContent( slice( value ) );\n\n      onChange( applyFormat( value, createLinkFormat( {\n        url,\n        opensInNewWindow,\n        text: selectedText,\n        noFollow,\n        isSponsored\n      } ) ) );\n    }\n  }\n\n  editLink( event ) {\n    this.setState( { editLink: true } );\n    event.preventDefault();\n  }\n\n  submitLink( event ) {\n    const { isActive, value, onChange, speak } = this.props;\n    const { inputValue, opensInNewWindow, noFollow, isSponsored } = this.state;\n    const url = prependHTTP( inputValue );\n    const selectedText = getTextContent( slice( value ) );\n    const format = createLinkFormat( {\n      url,\n      opensInNewWindow,\n      text: selectedText,\n      noFollow,\n      isSponsored\n    } );\n\n    event.preventDefault();\n\n    if ( isCollapsed( value ) && ! isActive ) {\n      const toInsert = applyFormat( create( { text: url } ), format, 0, url.length );\n      onChange( insert( value, toInsert ) );\n    } else {\n      onChange( applyFormat( value, format ) );\n    }\n\n    this.resetState();\n\n    if ( ! isValidHref( url ) ) {\n      speak( __( 'Warning: the link has been inserted but may have errors. Please test it.' ), 'assertive' );\n    } else if ( isActive ) {\n      speak( __( 'Link edited.' ), 'assertive' );\n    } else {\n      speak( __( 'Link inserted.' ), 'assertive' );\n    }\n  }\n\n  onClickOutside( event ) {\n    // The autocomplete suggestions list renders in a separate popover (in a portal),\n    // so onClickOutside fails to detect that a click on a suggestion occurred in the\n    // LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n    // return to avoid the popover being closed.\n    const autocompleteElement = this.autocompleteRef.current;\n    if ( autocompleteElement && autocompleteElement.contains( event.target ) ) {\n      return;\n    }\n\n    this.resetState();\n  }\n\n  resetState() {\n    this.props.stopAddingLink();\n    this.setState( { editLink: false } );\n  }\n\n  render() {\n    const { isActive, activeAttributes: { url }, addingLink, value } = this.props;\n\n    if ( ! isActive && ! addingLink ) {\n      return null;\n    }\n\n    const { inputValue, noFollow, opensInNewWindow, isSponsored, newLinkUrl, newLinkSlug, creatingLink, createdLink, createdLinkError } = this.state;\n    const showInput = isShowingInput( this.props, this.state );\n\n    return (\n      <URLPopoverAtLink\n        className=\"pretty-link-inserter\"\n        value={ value }\n        isActive={ isActive }\n        addingLink={ addingLink }\n        onClickOutside={ this.onClickOutside }\n        onClose={ this.resetState }\n        focusOnMount={ showInput ? 'firstElement' : false }\n        renderSettings={ () => (\n          <Fragment>\n            <div>\n              <ToggleControl\n                label={ __( 'Open in New Tab' ) }\n                checked={ opensInNewWindow }\n                onChange={ this.setLinkTarget }\n              />\n              <ToggleControl\n                label={ __( 'Nofollow' ) }\n                checked={ noFollow }\n                onChange={ this.setNoFollow }\n              />\n              <ToggleControl\n                label={ __( 'Sponsored Link' ) }\n                checked={ isSponsored }\n                onChange={ this.setIsSponsored }\n              />\n            </div>\n            <div className=\"pretty-link-inserter-form-container\">\n              {\n                createdLink && (\n                  <Notice status=\"success\" onRemove={() => this.setState({createdLink: false})}>\n                        <p>{__( 'Pretty Link created successfully.', 'memberpress' )}</p>\n                    </Notice>\n                )\n              }\n              {\n                createdLinkError && (\n                  <Notice status=\"error\" onRemove={() => this.setState({createdLink: false, createdLinkError: false})}>\n                        <p>{__( 'Pretty Link could not be created. Please try a slug that is not already used.', 'memberpress' )}</p>\n                    </Notice>\n                )\n              }\n              <strong>{__('New Pretty Link', 'pretty-link')}</strong>\n              <form onSubmit={(event) => {\n                event.preventDefault();\n                // Send request to create new Pretty Link\n                this.setState({\n                  creatingLink: true,\n                  createdLinkError: false,\n                });\n                createNewPrettyLink( newLinkUrl, newLinkSlug )\n                  .then(data => {\n                    this.setState({\n                      createdLink: true,\n                      creatingLink: false,\n                      inputValue: plEditor.homeUrl + newLinkSlug,\n                      newLinkUrl: '',\n                      newLinkSlug: ''\n                    });\n                  })\n                  .catch(error => {\n                    this.setState({\n                      createdLink: false,\n                      creatingLink: false,\n                      createdLinkError: true,\n                    });\n                  });\n              }}>\n                <p>\n                  <TextControl\n                        placeholder=\"URL\"\n                        className=\"pretty-link-new-link-url\"\n                        value={newLinkUrl}\n                        onChange={ ( newLinkUrl ) => {\n                          this.setState( { newLinkUrl } );\n                        } }\n                    />\n                </p>\n                  <p>\n                    <TextControl\n                          placeholder=\"Slug\"\n                          className=\"pretty-link-new-link-slug\"\n                          value={newLinkSlug}\n                          onChange={ ( newLinkSlug ) => {\n                            this.setState( { newLinkSlug } );\n                          } }\n                      />\n                  </p>\n                  <p>\n                    <button\n                      className=\"pretty-link-submit-new-link components-button is-button is-primary\"\n                      onClick={ () => {\n                        console.log('Creating new Pretty Link...');\n                      } }\n                    >\n                      { __( 'Create New Pretty Link', 'pretty-link' ) }\n                    </button>\n                    {\n                      creatingLink && (\n                        <Spinner />\n                      )\n                    }\n                  </p>\n              </form>\n            </div>\n          </Fragment>\n        ) }\n      >\n        { showInput ? (\n          <LinkEditor\n            value={ inputValue }\n            onChangeInputValue={ this.onChangeInputValue }\n            onKeyDown={ this.onKeyDown }\n            submitLink={ this.submitLink }\n            autocompleteRef={ this.autocompleteRef }\n          />\n        ) : (\n          <LinkViewer\n            url={ url }\n            editLink={ this.editLink }\n          />\n        ) }\n      </URLPopoverAtLink>\n    );\n  }\n}\n\nexport default withSpokenMessages( InlineLinkUI );\n","\nvar content = require(\"!!../../../../node_modules/postcss-loader/src/index.js??ref--6-1!../../../../node_modules/sass-loader/lib/loader.js!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/postcss-loader/src/index.js??ref--6-1!../../../../node_modules/sass-loader/lib/loader.js!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/postcss-loader/src/index.js??ref--6-1!../../../../node_modules/sass-loader/lib/loader.js!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","/**\n * External dependencies\n */\nimport { startsWith } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n  getProtocol,\n  isValidProtocol,\n  getAuthority,\n  isValidAuthority,\n  getPath,\n  isValidPath,\n  getQueryString,\n  isValidQueryString,\n  getFragment,\n  isValidFragment,\n} from '@wordpress/url';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Check for issues with the provided href.\n *\n * @param {string} href The href.\n *\n * @return {boolean} Is the href invalid?\n */\nexport function isValidHref( href ) {\n  if ( ! href ) {\n    return false;\n  }\n\n  const trimmedHref = href.trim();\n\n  if ( ! trimmedHref ) {\n    return false;\n  }\n\n  // Does the href start with something that looks like a URL protocol?\n  if ( /^\\S+:/.test( trimmedHref ) ) {\n    const protocol = getProtocol( trimmedHref );\n    if ( ! isValidProtocol( protocol ) ) {\n      return false;\n    }\n\n    // Add some extra checks for http(s) URIs, since these are the most common use-case.\n    // This ensures URIs with an http protocol have exactly two forward slashes following the protocol.\n    if ( startsWith( protocol, 'http' ) && ! /^https?:\\/\\/[^\\/\\s]/i.test( trimmedHref ) ) {\n      return false;\n    }\n\n    const authority = getAuthority( trimmedHref );\n    if ( ! isValidAuthority( authority ) ) {\n      return false;\n    }\n\n    const path = getPath( trimmedHref );\n    if ( path && ! isValidPath( path ) ) {\n      return false;\n    }\n\n    const queryString = getQueryString( trimmedHref );\n    if ( queryString && ! isValidQueryString( queryString ) ) {\n      return false;\n    }\n\n    const fragment = getFragment( trimmedHref );\n    if ( fragment && ! isValidFragment( fragment ) ) {\n      return false;\n    }\n  }\n\n  // Validate anchor links.\n  if ( startsWith( trimmedHref, '#' ) && ! isValidFragment( trimmedHref ) ) {\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * Generates the format object that will be applied to the link text.\n *\n * @param {string}  url              The href of the link.\n * @param {boolean} opensInNewWindow Whether this link will open in a new window.\n * @param {Object}  text             The text that is being hyperlinked.\n *\n * @return {Object} The final format object.\n */\nexport function createLinkFormat( { url, opensInNewWindow, text, noFollow, isSponsored } ) {\n  const format = {\n    type: 'core/link',\n    attributes: {\n      url,\n    },\n  };\n\n  format.attributes.rel = '';\n\n  if ( noFollow ) {\n    format.attributes.rel += 'nofollow noindex ';\n  }\n\n  if ( isSponsored ) {\n    format.attributes.rel += 'sponsored ';\n  }\n\n  if ( opensInNewWindow ) {\n    // translators: accessibility label for external links, where the argument is the link text\n    const label = sprintf( __( '%s (opens in a new tab)' ), text );\n\n    format.attributes.target = '_blank';\n    format.attributes.rel += 'noreferrer noopener';\n\n    format.attributes[ 'aria-label' ] = label;\n  }\n\n  if ( '' === format.attributes.rel ) {\n    delete format.attributes.rel;\n  }\n\n  return format;\n}\n","/**\n * External dependencies\n */\nimport { throttle, map, pick, defaultTo } from 'lodash';\nimport classnames from 'classnames';\nimport scrollIntoView from 'dom-scroll-into-view';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { UP, DOWN, ENTER, TAB } from '@wordpress/keycodes';\nimport { Spinner, withSpokenMessages, Popover } from '@wordpress/components';\nimport { withInstanceId, withSafeTimeout, compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport apiFetch from '@wordpress/api-fetch';\nimport { addQueryArgs } from '@wordpress/url';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n// Since URLInput is rendered in the context of other inputs, but should be\n// considered a separate modal node, prevent keyboard events from propagating\n// as being considered from the input.\nconst stopEventPropagation = ( event ) => event.stopPropagation();\n\nconst fetchLinkSuggestions = async ( search ) => {\n\n  const links = await apiFetch( {\n    url: addQueryArgs( ajaxurl, {\n      action: 'prli_search_for_links',\n      term: search,\n    } ),\n  } );\n\n  return map( links, ( link ) => ( {\n    url: link.pretty_url,\n    title: decodeEntities( link.value ) + ' (' + decodeEntities( link.slug ) + ')' || __( '(no title)' ),\n  } ) );\n};\n\nclass URLInput extends Component {\n  constructor( { autocompleteRef } ) {\n    super( ...arguments );\n\n    this.onChange = this.onChange.bind( this );\n    this.onKeyDown = this.onKeyDown.bind( this );\n    this.autocompleteRef = autocompleteRef || createRef();\n    this.inputRef = createRef();\n    this.updateSuggestions = throttle( this.updateSuggestions.bind( this ), 200 );\n\n    this.suggestionNodes = [];\n\n    this.state = {\n      suggestions: [],\n      showSuggestions: false,\n      selectedSuggestion: null,\n    };\n  }\n\n  componentDidUpdate() {\n    const { showSuggestions, selectedSuggestion } = this.state;\n    // only have to worry about scrolling selected suggestion into view\n    // when already expanded\n    if ( showSuggestions && selectedSuggestion !== null && ! this.scrollingIntoView ) {\n      this.scrollingIntoView = true;\n      scrollIntoView( this.suggestionNodes[ selectedSuggestion ], this.autocompleteRef.current, {\n        onlyScrollIfNeeded: true,\n      } );\n\n      this.props.setTimeout( () => {\n        this.scrollingIntoView = false;\n      }, 100 );\n    }\n  }\n\n  componentWillUnmount() {\n    delete this.suggestionsRequest;\n  }\n\n  bindSuggestionNode( index ) {\n    return ( ref ) => {\n      this.suggestionNodes[ index ] = ref;\n    };\n  }\n\n  updateSuggestions( value ) {\n\n    // Show the suggestions after typing at least 2 characters\n    // and also for URLs\n    if ( value.length < 2 || /^https?:/.test( value ) ) {\n      this.setState( {\n        showSuggestions: false,\n        selectedSuggestion: null,\n        loading: false,\n      } );\n\n      return;\n    }\n\n    this.setState( {\n      showSuggestions: true,\n      selectedSuggestion: null,\n      loading: true,\n    } );\n\n    const request = fetchLinkSuggestions( value );\n\n    request.then( ( suggestions ) => {\n      // A fetch Promise doesn't have an abort option. It's mimicked by\n      // comparing the request reference in on the instance, which is\n      // reset or deleted on subsequent requests or unmounting.\n      if ( this.suggestionsRequest !== request ) {\n        return;\n      }\n\n      this.setState( {\n        suggestions,\n        loading: false,\n      } );\n\n      if ( !! suggestions.length ) {\n        this.props.debouncedSpeak( sprintf( _n(\n          '%d result found, use up and down arrow keys to navigate.',\n          '%d results found, use up and down arrow keys to navigate.',\n          suggestions.length\n        ), suggestions.length ), 'assertive' );\n      } else {\n        this.props.debouncedSpeak( __( 'No results.' ), 'assertive' );\n      }\n    } ).catch( () => {\n      if ( this.suggestionsRequest === request ) {\n        this.setState( {\n          loading: false,\n        } );\n      }\n    } );\n\n    this.suggestionsRequest = request;\n  }\n\n  onChange( event ) {\n    const inputValue = event.target.value;\n    this.props.onChange( inputValue );\n    this.updateSuggestions( inputValue );\n  }\n\n  onKeyDown( event ) {\n    const { showSuggestions, selectedSuggestion, suggestions, loading } = this.state;\n    // If the suggestions are not shown or loading, we shouldn't handle the arrow keys\n    // We shouldn't preventDefault to allow block arrow keys navigation\n    if ( ! showSuggestions || ! suggestions.length || loading ) {\n      // In the Windows version of Firefox the up and down arrows don't move the caret\n      // within an input field like they do for Mac Firefox/Chrome/Safari. This causes\n      // a form of focus trapping that is disruptive to the user experience. This disruption\n      // only happens if the caret is not in the first or last position in the text input.\n      // See: https://github.com/WordPress/gutenberg/issues/5693#issuecomment-436684747\n      switch ( event.keyCode ) {\n        // When UP is pressed, if the caret is at the start of the text, move it to the 0\n        // position.\n        case UP: {\n          if ( 0 !== event.target.selectionStart ) {\n            event.stopPropagation();\n            event.preventDefault();\n\n            // Set the input caret to position 0\n            event.target.setSelectionRange( 0, 0 );\n          }\n          break;\n        }\n        // When DOWN is pressed, if the caret is not at the end of the text, move it to the\n        // last position.\n        case DOWN: {\n          if ( this.props.value.length !== event.target.selectionStart ) {\n            event.stopPropagation();\n            event.preventDefault();\n\n            // Set the input caret to the last position\n            event.target.setSelectionRange( this.props.value.length, this.props.value.length );\n          }\n          break;\n        }\n      }\n\n      return;\n    }\n\n    const suggestion = this.state.suggestions[ this.state.selectedSuggestion ];\n\n    switch ( event.keyCode ) {\n      case UP: {\n        event.stopPropagation();\n        event.preventDefault();\n        const previousIndex = ! selectedSuggestion ? suggestions.length - 1 : selectedSuggestion - 1;\n        this.setState( {\n          selectedSuggestion: previousIndex,\n        } );\n        break;\n      }\n      case DOWN: {\n        event.stopPropagation();\n        event.preventDefault();\n        const nextIndex = selectedSuggestion === null || ( selectedSuggestion === suggestions.length - 1 ) ? 0 : selectedSuggestion + 1;\n        this.setState( {\n          selectedSuggestion: nextIndex,\n        } );\n        break;\n      }\n      case TAB: {\n        if ( this.state.selectedSuggestion !== null ) {\n          this.selectLink( suggestion );\n          // Announce a link has been selected when tabbing away from the input field.\n          this.props.speak( __( 'Link selected.' ) );\n        }\n        break;\n      }\n      case ENTER: {\n        if ( this.state.selectedSuggestion !== null ) {\n          event.stopPropagation();\n          this.selectLink( suggestion );\n        }\n        break;\n      }\n    }\n  }\n\n  selectLink( suggestion ) {\n    this.props.onChange( suggestion.url, suggestion );\n    this.setState( {\n      selectedSuggestion: null,\n      showSuggestions: false,\n    } );\n  }\n\n  handleOnClick( suggestion ) {\n    this.selectLink( suggestion );\n    // Move focus to the input field when a link suggestion is clicked.\n    this.inputRef.current.focus();\n  }\n\n  render() {\n    const { value = '', autoFocus = true, instanceId, className } = this.props;\n    const { showSuggestions, suggestions, selectedSuggestion, loading } = this.state;\n\n    const suggestionsListboxId = `block-editor-url-input-suggestions-${ instanceId }`;\n    const suggestionOptionIdPrefix = `block-editor-url-input-suggestion-${ instanceId }`;\n\n    /* eslint-disable jsx-a11y/no-autofocus */\n    return (\n      <div className={ classnames( 'editor-url-input block-editor-url-input', className ) }>\n        <input\n          autoFocus={ autoFocus }\n          type=\"text\"\n          aria-label={ __( 'URL' ) }\n          required\n          value={ value }\n          onChange={ this.onChange }\n          onInput={ stopEventPropagation }\n          placeholder={ __( 'Paste or type to search for your Pretty Link' ) }\n          onKeyDown={ this.onKeyDown }\n          role=\"combobox\"\n          aria-expanded={ showSuggestions }\n          aria-autocomplete=\"list\"\n          aria-owns={ suggestionsListboxId }\n          aria-activedescendant={ selectedSuggestion !== null ? `${ suggestionOptionIdPrefix }-${ selectedSuggestion }` : undefined }\n          ref={ this.inputRef }\n        />\n\n        { ( loading ) && <Spinner /> }\n\n        { showSuggestions && !! suggestions.length &&\n          <Popover position=\"bottom\" noArrow focusOnMount={ false }>\n            <div\n              className=\"editor-url-input__suggestions block-editor-url-input__suggestions\"\n              id={ suggestionsListboxId }\n              ref={ this.autocompleteRef }\n              role=\"listbox\"\n            >\n              { suggestions.map( ( suggestion, index ) => (\n                <button\n                  key={ suggestion.id }\n                  role=\"option\"\n                  tabIndex=\"-1\"\n                  id={ `${ suggestionOptionIdPrefix }-${ index }` }\n                  ref={ this.bindSuggestionNode( index ) }\n                  className={ classnames( 'editor-url-input__suggestion block-editor-url-input__suggestion', {\n                    'is-selected': index === selectedSuggestion,\n                  } ) }\n                  onClick={ () => this.handleOnClick( suggestion ) }\n                  aria-selected={ index === selectedSuggestion }\n                >\n                  { suggestion.title }\n                </button>\n              ) ) }\n            </div>\n          </Popover>\n        }\n      </div>\n    );\n    /* eslint-enable jsx-a11y/no-autofocus */\n  }\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/url-input/README.md\n */\nexport default compose(\n  withSafeTimeout,\n  withSpokenMessages,\n  withInstanceId,\n  withSelect( ( select ) => {\n    const { getSettings } = select( 'core/block-editor' );\n    return {\n      fetchLinkSuggestions: getSettings().__experimentalFetchLinkSuggestions,\n    };\n  } )\n)( URLInput );\n","/**\n * WordPress dependencies\n */\nimport { __ } from \"@wordpress/i18n\";\nimport { withSpokenMessages } from \"@wordpress/components\";\nimport { Component, Fragment } from \"@wordpress/element\";\nimport {\n  getTextContent,\n  applyFormat,\n  removeFormat,\n  slice,\n  registerFormatType\n} from \"@wordpress/rich-text\";\nimport { isURL, isEmail } from \"@wordpress/url\";\nimport {\n  RichTextToolbarButton,\n  RichTextShortcut\n} from \"@wordpress/block-editor\";\nimport InlineLinkUI from \"../../components/link-editor\";\n\n/**\n * Block constants\n */\nconst name = \"pretty-link/pretty-link\";\nconst title = __(\"Pretty Link\");\n\nexport const prettyLink = {\n  name,\n  title,\n  tagName: \"a\",\n  className: \"pretty-link\",\n  attributes: {\n    url: \"href\",\n    target: \"target\"\n  },\n  edit: withSpokenMessages(\n    class LinkEdit extends Component {\n      constructor() {\n        super(...arguments);\n\n        this.addLink = this.addLink.bind(this);\n        this.stopAddingLink = this.stopAddingLink.bind(this);\n        this.onRemoveFormat = this.onRemoveFormat.bind(this);\n        this.state = {\n          addingLink: false\n        };\n      }\n\n      addLink() {\n        const { value, onChange } = this.props;\n        const text = getTextContent(slice(value));\n\n        if (text && isURL(text)) {\n          onChange(\n            applyFormat(value, { type: name, attributes: { url: text } })\n          );\n        } else {\n          this.setState({ addingLink: true });\n        }\n      }\n\n      stopAddingLink() {\n        this.setState({ addingLink: false });\n      }\n\n      onRemoveFormat() {\n        const { value, onChange, speak } = this.props;\n\n        onChange(removeFormat(value, name));\n        speak(__(\"Link removed.\"), \"assertive\");\n      }\n\n      render() {\n        const { isActive, activeAttributes, value, onChange } = this.props;\n\n        return (\n          <>\n            <RichTextShortcut\n              type=\"primary\"\n              character=\"p\"\n              onUse={this.addLink}\n            />\n            <RichTextShortcut\n              type=\"primaryShift\"\n              character=\"p\"\n              onUse={this.onRemoveFormat}\n            />\n            {isActive && (\n              <RichTextToolbarButton\n                icon=\"star-filled\"\n                title={__(\"Unlink\")}\n                onClick={this.onRemoveFormat}\n                isActive={isActive}\n                shortcutType=\"primaryShift\"\n                shortcutCharacter=\"p\"\n              />\n            )}\n            {!isActive && (\n              <RichTextToolbarButton\n                icon=\"star-filled\"\n                title={title}\n                onClick={this.addLink}\n                isActive={isActive}\n                shortcutType=\"primary\"\n                shortcutCharacter=\"p\"\n              />\n            )}\n            <InlineLinkUI\n              addingLink={this.state.addingLink}\n              stopAddingLink={this.stopAddingLink}\n              isActive={isActive}\n              activeAttributes={activeAttributes}\n              value={value}\n              onChange={onChange}\n            />\n          </>\n        );\n      }\n    }\n  )\n};\n\nfunction registerFormats() {\n  [prettyLink].forEach(({ name, ...settings }) =>\n    registerFormatType(name, settings)\n  );\n}\nregisterFormats();\n","function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nmodule.exports = _createClass;","function _extends() {\n  module.exports = _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _getPrototypeOf(o) {\n  module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n  module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n    module.exports = _typeof = function _typeof(obj) {\n      return _typeof2(obj);\n    };\n  } else {\n    module.exports = _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n    };\n  }\n\n  return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\nvar util = require('./util');\n\nfunction scrollIntoView(elem, container, config) {\n  config = config || {};\n  // document 归一化到 window\n  if (container.nodeType === 9) {\n    container = util.getWindow(container);\n  }\n\n  var allowHorizontalScroll = config.allowHorizontalScroll;\n  var onlyScrollIfNeeded = config.onlyScrollIfNeeded;\n  var alignWithTop = config.alignWithTop;\n  var alignWithLeft = config.alignWithLeft;\n  var offsetTop = config.offsetTop || 0;\n  var offsetLeft = config.offsetLeft || 0;\n  var offsetBottom = config.offsetBottom || 0;\n  var offsetRight = config.offsetRight || 0;\n\n  allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;\n\n  var isWin = util.isWindow(container);\n  var elemOffset = util.offset(elem);\n  var eh = util.outerHeight(elem);\n  var ew = util.outerWidth(elem);\n  var containerOffset = undefined;\n  var ch = undefined;\n  var cw = undefined;\n  var containerScroll = undefined;\n  var diffTop = undefined;\n  var diffBottom = undefined;\n  var win = undefined;\n  var winScroll = undefined;\n  var ww = undefined;\n  var wh = undefined;\n\n  if (isWin) {\n    win = container;\n    wh = util.height(win);\n    ww = util.width(win);\n    winScroll = {\n      left: util.scrollLeft(win),\n      top: util.scrollTop(win)\n    };\n    // elem 相对 container 可视视窗的距离\n    diffTop = {\n      left: elemOffset.left - winScroll.left - offsetLeft,\n      top: elemOffset.top - winScroll.top - offsetTop\n    };\n    diffBottom = {\n      left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,\n      top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom\n    };\n    containerScroll = winScroll;\n  } else {\n    containerOffset = util.offset(container);\n    ch = container.clientHeight;\n    cw = container.clientWidth;\n    containerScroll = {\n      left: container.scrollLeft,\n      top: container.scrollTop\n    };\n    // elem 相对 container 可视视窗的距离\n    // 注意边框, offset 是边框到根节点\n    diffTop = {\n      left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,\n      top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop\n    };\n    diffBottom = {\n      left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,\n      top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom\n    };\n  }\n\n  if (diffTop.top < 0 || diffBottom.top > 0) {\n    // 强制向上\n    if (alignWithTop === true) {\n      util.scrollTop(container, containerScroll.top + diffTop.top);\n    } else if (alignWithTop === false) {\n      util.scrollTop(container, containerScroll.top + diffBottom.top);\n    } else {\n      // 自动调整\n      if (diffTop.top < 0) {\n        util.scrollTop(container, containerScroll.top + diffTop.top);\n      } else {\n        util.scrollTop(container, containerScroll.top + diffBottom.top);\n      }\n    }\n  } else {\n    if (!onlyScrollIfNeeded) {\n      alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;\n      if (alignWithTop) {\n        util.scrollTop(container, containerScroll.top + diffTop.top);\n      } else {\n        util.scrollTop(container, containerScroll.top + diffBottom.top);\n      }\n    }\n  }\n\n  if (allowHorizontalScroll) {\n    if (diffTop.left < 0 || diffBottom.left > 0) {\n      // 强制向上\n      if (alignWithLeft === true) {\n        util.scrollLeft(container, containerScroll.left + diffTop.left);\n      } else if (alignWithLeft === false) {\n        util.scrollLeft(container, containerScroll.left + diffBottom.left);\n      } else {\n        // 自动调整\n        if (diffTop.left < 0) {\n          util.scrollLeft(container, containerScroll.left + diffTop.left);\n        } else {\n          util.scrollLeft(container, containerScroll.left + diffBottom.left);\n        }\n      }\n    } else {\n      if (!onlyScrollIfNeeded) {\n        alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;\n        if (alignWithLeft) {\n          util.scrollLeft(container, containerScroll.left + diffTop.left);\n        } else {\n          util.scrollLeft(container, containerScroll.left + diffBottom.left);\n        }\n      }\n    }\n  }\n}\n\nmodule.exports = scrollIntoView;","'use strict';\n\nmodule.exports = require('./dom-scroll-into-view');","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nfunction getClientPosition(elem) {\n  var box = undefined;\n  var x = undefined;\n  var y = undefined;\n  var doc = elem.ownerDocument;\n  var body = doc.body;\n  var docElem = doc && doc.documentElement;\n  // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n  box = elem.getBoundingClientRect();\n\n  // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n  // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n  // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n  x = box.left;\n  y = box.top;\n\n  // In IE, most of the time, 2 extra pixels are added to the top and left\n  // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and\n  // IE6 standards mode, this border can be overridden by setting the\n  // document element's border to zero -- thus, we cannot rely on the\n  // offset always being 2 pixels.\n\n  // In quirks mode, the offset can be determined by querying the body's\n  // clientLeft/clientTop, but in standards mode, it is found by querying\n  // the document element's clientLeft/clientTop.  Since we already called\n  // getClientBoundingRect we have already forced a reflow, so it is not\n  // too expensive just to query them all.\n\n  // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n  // 窗口边框标准是设 documentElement ,quirks 时设置 body\n  // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n  // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n  // 标准 ie 下 docElem.clientTop 就是 border-top\n  // ie7 html 即窗口边框改变不了。永远为 2\n  // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n  x -= docElem.clientLeft || body.clientLeft || 0;\n  y -= docElem.clientTop || body.clientTop || 0;\n\n  return {\n    left: x,\n    top: y\n  };\n}\n\nfunction getScroll(w, top) {\n  var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n  var method = 'scroll' + (top ? 'Top' : 'Left');\n  if (typeof ret !== 'number') {\n    var d = w.document;\n    // ie6,7,8 standard mode\n    ret = d.documentElement[method];\n    if (typeof ret !== 'number') {\n      // quirks mode\n      ret = d.body[method];\n    }\n  }\n  return ret;\n}\n\nfunction getScrollLeft(w) {\n  return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n  return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n  var pos = getClientPosition(el);\n  var doc = el.ownerDocument;\n  var w = doc.defaultView || doc.parentWindow;\n  pos.left += getScrollLeft(w);\n  pos.top += getScrollTop(w);\n  return pos;\n}\nfunction _getComputedStyle(elem, name, computedStyle_) {\n  var val = '';\n  var d = elem.ownerDocument;\n  var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);\n\n  // https://github.com/kissyteam/kissy/issues/61\n  if (computedStyle) {\n    val = computedStyle.getPropertyValue(name) || computedStyle[name];\n  }\n\n  return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n  // currentStyle maybe null\n  // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n  var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n  // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n  // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n  // 在 ie 下不对,需要直接用 offset 方式\n  // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n\n  // From the awesome hack by Dean Edwards\n  // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n  // If we're not dealing with a regular pixel number\n  // but a number that has a weird ending, we need to convert it to pixels\n  // exclude left right for relativity\n  if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n    // Remember the original values\n    var style = elem.style;\n    var left = style[LEFT];\n    var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n    // prevent flashing of content\n    elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n    // Put in the new values to get a computed value out\n    style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n    ret = style.pixelLeft + PX;\n\n    // Revert the changed values\n    style[LEFT] = left;\n\n    elem[RUNTIME_STYLE][LEFT] = rsLeft;\n  }\n  return ret === '' ? 'auto' : ret;\n}\n\nvar getComputedStyleX = undefined;\nif (typeof window !== 'undefined') {\n  getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction each(arr, fn) {\n  for (var i = 0; i < arr.length; i++) {\n    fn(arr[i]);\n  }\n}\n\nfunction isBorderBoxFn(elem) {\n  return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n  var old = {};\n  var style = elem.style;\n  var name = undefined;\n\n  // Remember the old values, and insert the new ones\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      old[name] = style[name];\n      style[name] = options[name];\n    }\n  }\n\n  callback.call(elem);\n\n  // Revert the old values\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      style[name] = old[name];\n    }\n  }\n}\n\nfunction getPBMWidth(elem, props, which) {\n  var value = 0;\n  var prop = undefined;\n  var j = undefined;\n  var i = undefined;\n  for (j = 0; j < props.length; j++) {\n    prop = props[j];\n    if (prop) {\n      for (i = 0; i < which.length; i++) {\n        var cssProp = undefined;\n        if (prop === 'border') {\n          cssProp = prop + which[i] + 'Width';\n        } else {\n          cssProp = prop + which[i];\n        }\n        value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n      }\n    }\n  }\n  return value;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n  // must use == for ie8\n  /* eslint eqeqeq:0 */\n  return obj != null && obj == obj.window;\n}\n\nvar domUtils = {};\n\neach(['Width', 'Height'], function (name) {\n  domUtils['doc' + name] = function (refWin) {\n    var d = refWin.document;\n    return Math.max(\n    // firefox chrome documentElement.scrollHeight< body.scrollHeight\n    // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n    d.documentElement['scroll' + name],\n    // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n    d.body['scroll' + name], domUtils['viewport' + name](d));\n  };\n\n  domUtils['viewport' + name] = function (win) {\n    // pc browser includes scrollbar in window.innerWidth\n    var prop = 'client' + name;\n    var doc = win.document;\n    var body = doc.body;\n    var documentElement = doc.documentElement;\n    var documentElementProp = documentElement[prop];\n    // 标准模式取 documentElement\n    // backcompat 取 body\n    return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n  };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra]  'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, extra) {\n  if (isWindow(elem)) {\n    return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n  } else if (elem.nodeType === 9) {\n    return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n  }\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n  var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n  var computedStyle = getComputedStyleX(elem);\n  var isBorderBox = isBorderBoxFn(elem, computedStyle);\n  var cssBoxValue = 0;\n  if (borderBoxValue == null || borderBoxValue <= 0) {\n    borderBoxValue = undefined;\n    // Fall back to computed then un computed css if necessary\n    cssBoxValue = getComputedStyleX(elem, name);\n    if (cssBoxValue == null || Number(cssBoxValue) < 0) {\n      cssBoxValue = elem.style[name] || 0;\n    }\n    // Normalize '', auto, and prepare for extra\n    cssBoxValue = parseFloat(cssBoxValue) || 0;\n  }\n  if (extra === undefined) {\n    extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n  }\n  var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n  var val = borderBoxValue || cssBoxValue;\n  if (extra === CONTENT_INDEX) {\n    if (borderBoxValueOrIsBorderBox) {\n      return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);\n    }\n    return cssBoxValue;\n  }\n  if (borderBoxValueOrIsBorderBox) {\n    var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);\n    return val + (extra === BORDER_INDEX ? 0 : padding);\n  }\n  return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);\n}\n\nvar cssShow = {\n  position: 'absolute',\n  visibility: 'hidden',\n  display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(elem) {\n  var val = undefined;\n  var args = arguments;\n  // in case elem is window\n  // elem.offsetWidth === undefined\n  if (elem.offsetWidth !== 0) {\n    val = getWH.apply(undefined, args);\n  } else {\n    swap(elem, cssShow, function () {\n      val = getWH.apply(undefined, args);\n    });\n  }\n  return val;\n}\n\nfunction css(el, name, v) {\n  var value = v;\n  if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n    for (var i in name) {\n      if (name.hasOwnProperty(i)) {\n        css(el, i, name[i]);\n      }\n    }\n    return undefined;\n  }\n  if (typeof value !== 'undefined') {\n    if (typeof value === 'number') {\n      value += 'px';\n    }\n    el.style[name] = value;\n    return undefined;\n  }\n  return getComputedStyleX(el, name);\n}\n\neach(['width', 'height'], function (name) {\n  var first = name.charAt(0).toUpperCase() + name.slice(1);\n  domUtils['outer' + first] = function (el, includeMargin) {\n    return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n  };\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n  domUtils[name] = function (elem, val) {\n    if (val !== undefined) {\n      if (elem) {\n        var computedStyle = getComputedStyleX(elem);\n        var isBorderBox = isBorderBoxFn(elem);\n        if (isBorderBox) {\n          val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n        }\n        return css(elem, name, val);\n      }\n      return undefined;\n    }\n    return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n  };\n});\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setOffset(elem, offset) {\n  // set position first, in-case top/left are set even on static elem\n  if (css(elem, 'position') === 'static') {\n    elem.style.position = 'relative';\n  }\n\n  var old = getOffset(elem);\n  var ret = {};\n  var current = undefined;\n  var key = undefined;\n\n  for (key in offset) {\n    if (offset.hasOwnProperty(key)) {\n      current = parseFloat(css(elem, key)) || 0;\n      ret[key] = current + offset[key] - old[key];\n    }\n  }\n  css(elem, ret);\n}\n\nmodule.exports = _extends({\n  getWindow: function getWindow(node) {\n    var doc = node.ownerDocument || node;\n    return doc.defaultView || doc.parentWindow;\n  },\n  offset: function offset(el, value) {\n    if (typeof value !== 'undefined') {\n      setOffset(el, value);\n    } else {\n      return getOffset(el);\n    }\n  },\n\n  isWindow: isWindow,\n  each: each,\n  css: css,\n  clone: function clone(obj) {\n    var ret = {};\n    for (var i in obj) {\n      if (obj.hasOwnProperty(i)) {\n        ret[i] = obj[i];\n      }\n    }\n    var overflow = obj.overflow;\n    if (overflow) {\n      for (var i in obj) {\n        if (obj.hasOwnProperty(i)) {\n          ret.overflow[i] = obj.overflow[i];\n        }\n      }\n    }\n    return ret;\n  },\n  scrollLeft: function scrollLeft(w, v) {\n    if (isWindow(w)) {\n      if (v === undefined) {\n        return getScrollLeft(w);\n      }\n      window.scrollTo(v, getScrollTop(w));\n    } else {\n      if (v === undefined) {\n        return w.scrollLeft;\n      }\n      w.scrollLeft = v;\n    }\n  },\n  scrollTop: function scrollTop(w, v) {\n    if (isWindow(w)) {\n      if (v === undefined) {\n        return getScrollTop(w);\n      }\n      window.scrollTo(getScrollLeft(w), v);\n    } else {\n      if (v === undefined) {\n        return w.scrollTop;\n      }\n      w.scrollTop = v;\n    }\n  },\n\n  viewportWidth: 0,\n  viewportHeight: 0\n}, domUtils);","module.exports = \".pretty-link-inserter .block-editor-url-popover__settings {\\n  display: block; }\\n\\n.pretty-link-inserter .pretty-link-inserter-form-container {\\n  margin-top: 30px; }\\n\"","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n  if (parent){\n    return parent.querySelector(target);\n  }\n  return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n                // If passing function in options, then use it for resolve \"head\" element.\n                // Useful for Shadow Root style i.e\n                // {\n                //   insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n                // }\n                if (typeof target === 'function') {\n                        return target();\n                }\n                if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n        if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (typeof __webpack_nonce__ === 'undefined') {\n\t\treturn null;\n\t}\n\n\treturn __webpack_nonce__;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t    result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t    if (result) {\n\t    \t// If transform returns a value, use that instead of the original css.\n\t    \t// This allows running runtime transformations on the css.\n\t    \tobj.css = result;\n\t    } else {\n\t    \t// If the transform function returns a falsy value, don't add this css.\n\t    \t// This allows conditional loading of css\n\t    \treturn function() {\n\t    \t\t// noop\n\t    \t};\n\t    }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default.  Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n  // get current location\n  var location = typeof window !== \"undefined\" && window.location;\n\n  if (!location) {\n    throw new Error(\"fixUrls requires window.location\");\n  }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t  return css;\n  }\n\n  var baseUrl = location.protocol + \"//\" + location.host;\n  var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\(  = Match on the word \"url\" with any whitespace after it and then a parens\n\t   (  = Start a capturing group\n\t     (?:  = Start a non-capturing group\n\t         [^)(]  = Match anything that isn't a parentheses\n\t         |  = OR\n\t         \\(  = Match a start parentheses\n\t             (?:  = Start another non-capturing groups\n\t                 [^)(]+  = Match anything that isn't a parentheses\n\t                 |  = OR\n\t                 \\(  = Match a start parentheses\n\t                     [^)(]*  = Match anything that isn't a parentheses\n\t                 \\)  = Match a end parentheses\n\t             )  = End Group\n              *\\) = Match anything and then a close parens\n          )  = Close non-capturing group\n          *  = Match anything\n       )  = Close capturing group\n\t \\)  = Match a close parens\n\n\t /gi  = Get all matches, not the first.  Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t  return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t  \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n","(function() { module.exports = this[\"regeneratorRuntime\"]; }());","(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());","(function() { module.exports = this[\"wp\"][\"blockEditor\"]; }());","(function() { module.exports = this[\"wp\"][\"components\"]; }());","(function() { module.exports = this[\"wp\"][\"compose\"]; }());","(function() { module.exports = this[\"wp\"][\"data\"]; }());","(function() { module.exports = this[\"wp\"][\"dom\"]; }());","(function() { module.exports = this[\"wp\"][\"element\"]; }());","(function() { module.exports = this[\"wp\"][\"htmlEntities\"]; }());","(function() { module.exports = this[\"wp\"][\"i18n\"]; }());","(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());","(function() { module.exports = this[\"wp\"][\"richText\"]; }());","(function() { module.exports = this[\"wp\"][\"url\"]; }());","(function() { module.exports = this[\"lodash\"]; }());"],"sourceRoot":""}