WordPress/wp-includes/js/dist/block-library.js.map
herregroen 6ff1386460 I18N: Add JavaScript translation support.
Adds the `wp_set_script_translations` function which registers translations for a JavaScript file. This function takes a handle, domain and optionally a path and ensures JavaScript translation files are loaded if they exist.

Props atimmer, omarreiss, nerrad, swissspidy, ocean90.
Fixes #45103.

Built from https://develop.svn.wordpress.org/branches/5.0@43825


git-svn-id: http://core.svn.wordpress.org/branches/5.0@43654 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-10-26 07:35:06 +00:00

1 line
626 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack://wp.[name]/webpack/bootstrap","webpack://wp.[name]/./node_modules/punycode/punycode.js","webpack://wp.[name]/./node_modules/querystring-es3/decode.js","webpack://wp.[name]/./node_modules/querystring-es3/encode.js","webpack://wp.[name]/./node_modules/querystring-es3/index.js","webpack://wp.[name]/./node_modules/url/url.js","webpack://wp.[name]/./node_modules/url/util.js","webpack://wp.[name]/(webpack)/buildin/global.js","webpack://wp.[name]/(webpack)/buildin/module.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/extends.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://wp.[name]/./packages/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://wp.[name]/./packages/node_modules/classnames/dedupe.js","webpack://wp.[name]/./packages/node_modules/classnames/index.js","webpack://wp.[name]/./packages/node_modules/memize/index.js","webpack://wp.[name]/./packages/packages/block-library/src/archives/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/archives/index.js","webpack://wp.[name]/./packages/packages/block-library/src/audio/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/audio/index.js","webpack://wp.[name]/./packages/packages/block-library/src/block/edit-panel/index.js","webpack://wp.[name]/./packages/packages/block-library/src/block/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/block/index.js","webpack://wp.[name]/./packages/packages/block-library/src/block/indicator/index.js","webpack://wp.[name]/./packages/packages/block-library/src/button/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/button/index.js","webpack://wp.[name]/./packages/packages/block-library/src/categories/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/categories/index.js","webpack://wp.[name]/./packages/packages/block-library/src/classic/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/classic/index.js","webpack://wp.[name]/./packages/packages/block-library/src/code/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/code/index.js","webpack://wp.[name]/./packages/packages/block-library/src/columns/column.js","webpack://wp.[name]/./packages/packages/block-library/src/columns/index.js","webpack://wp.[name]/./packages/packages/block-library/src/cover/index.js","webpack://wp.[name]/./packages/packages/block-library/src/embed/index.js","webpack://wp.[name]/./packages/packages/block-library/src/file/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/file/index.js","webpack://wp.[name]/./packages/packages/block-library/src/file/inspector.js","webpack://wp.[name]/./packages/packages/block-library/src/gallery/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/gallery/gallery-image.js","webpack://wp.[name]/./packages/packages/block-library/src/gallery/index.js","webpack://wp.[name]/./packages/packages/block-library/src/heading/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/heading/heading-toolbar.js","webpack://wp.[name]/./packages/packages/block-library/src/heading/index.js","webpack://wp.[name]/./packages/packages/block-library/src/html/index.js","webpack://wp.[name]/./packages/packages/block-library/src/image/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/image/image-size.js","webpack://wp.[name]/./packages/packages/block-library/src/image/index.js","webpack://wp.[name]/./packages/packages/block-library/src/index.js","webpack://wp.[name]/./packages/packages/block-library/src/latest-comments/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/latest-comments/index.js","webpack://wp.[name]/./packages/packages/block-library/src/latest-posts/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/latest-posts/index.js","webpack://wp.[name]/./packages/packages/block-library/src/list/index.js","webpack://wp.[name]/./packages/packages/block-library/src/media-text/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/media-text/index.js","webpack://wp.[name]/./packages/packages/block-library/src/media-text/media-container.js","webpack://wp.[name]/./packages/packages/block-library/src/missing/index.js","webpack://wp.[name]/./packages/packages/block-library/src/more/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/more/index.js","webpack://wp.[name]/./packages/packages/block-library/src/nextpage/index.js","webpack://wp.[name]/./packages/packages/block-library/src/paragraph/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/paragraph/index.js","webpack://wp.[name]/./packages/packages/block-library/src/preformatted/index.js","webpack://wp.[name]/./packages/packages/block-library/src/pullquote/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/pullquote/index.js","webpack://wp.[name]/./packages/packages/block-library/src/quote/index.js","webpack://wp.[name]/./packages/packages/block-library/src/separator/index.js","webpack://wp.[name]/./packages/packages/block-library/src/shortcode/index.js","webpack://wp.[name]/./packages/packages/block-library/src/spacer/index.js","webpack://wp.[name]/./packages/packages/block-library/src/subhead/index.js","webpack://wp.[name]/./packages/packages/block-library/src/table/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/table/index.js","webpack://wp.[name]/./packages/packages/block-library/src/table/state.js","webpack://wp.[name]/./packages/packages/block-library/src/template/index.js","webpack://wp.[name]/./packages/packages/block-library/src/text-columns/index.js","webpack://wp.[name]/./packages/packages/block-library/src/verse/index.js","webpack://wp.[name]/./packages/packages/block-library/src/video/edit.js","webpack://wp.[name]/./packages/packages/block-library/src/video/index.js","webpack://wp.[name]/external {\"this\":[\"wp\",\"autop\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"blob\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"blocks\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"components\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"compose\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"coreData\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"data\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"date\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"deprecated\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"editor\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"element\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"htmlEntities\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"i18n\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"keycodes\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"richText\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"viewport\"]}","webpack://wp.[name]/external \"lodash\""],"names":["ArchivesEdit","attributes","setAttributes","align","showPostCounts","displayAsDropdown","__","nextAlign","name","settings","title","description","icon","category","supports","html","getEditWrapperProps","includes","edit","save","ALLOWED_MEDIA_TYPES","AudioEdit","arguments","state","editing","props","src","toggleAttribute","bind","onSelectURL","noticeOperations","id","isBlobURL","file","getBlobByURL","mediaUpload","filesList","onFileChange","mediaId","url","onError","e","undefined","setState","createErrorNotice","allowedTypes","attribute","newValue","newSrc","autoplay","caption","loop","preload","isSelected","className","noticeUI","switchToEditing","onSelectAudio","media","value","label","RichText","isEmpty","Component","withNotices","type","source","selector","transforms","from","isMatch","files","length","indexOf","transform","block","createBlock","createBlobURL","ReusableBlockEditPanel","titleField","createRef","editButton","handleFormSubmit","handleTitleChange","handleTitleKeyDown","isEditing","current","select","prevProps","isSaving","focus","event","preventDefault","onSave","onChangeTitle","target","keyCode","ESCAPE","stopPropagation","onCancel","onEdit","instanceId","withInstanceId","ReusableBlockEdit","reusableBlock","startEditing","stopEditing","setTitle","isTemporary","changedAttributes","fetchReusableBlock","prevState","onUpdateTitle","updateAttributes","clientId","isFetching","element","noop","compose","withSelect","ownProps","getReusableBlock","isFetchingReusableBlock","isSavingReusableBlock","getBlock","ref","withDispatch","dispatch","fetchReusableBlocks","updateBlockAttributes","updateReusableBlockTitle","saveReusableBlock","partial","customClassName","inserter","ReusableBlockIndicator","tooltipText","sprintf","window","getComputedStyle","applyFallbackStyles","withFallbackStyles","node","textColor","backgroundColor","backgroundColorValue","color","textColorValue","textNode","querySelector","fallbackBackgroundColor","fallbackTextColor","ButtonEdit","nodeRef","bindRef","setBackgroundColor","setTextColor","text","classnames","class","onChange","isLargeText","withColors","blockAttributes","customBackgroundColor","customTextColor","colorsMigration","omit","alignWide","styles","isDefault","textClass","getColorClassName","backgroundClass","buttonClasses","buttonStyle","deprecated","pick","default","linkClass","migrate","CategoriesEdit","toggleDisplayAsDropdown","toggleShowPostCounts","toggleShowHierarchy","showHierarchy","parentId","categories","filter","parent","level","unescape","trim","getCategories","getCategoryListClassName","map","renderCategoryListItem","childCategories","link","renderCategoryName","count","childCategory","renderCategoryDropdownItem","times","isRequesting","inspectorControls","renderCategoryDropdown","renderCategoryList","getEntityRecords","isResolving","query","per_page","isTmceEmpty","editor","body","getBody","childNodes","test","innerText","textContent","ClassicEdit","initialize","onSetup","wpEditorL10n","tinymce","baseURL","suffix","EditorManager","overrideDefaults","base_url","document","readyState","addEventListener","wp","oldEditor","remove","content","get","setContent","inline","content_css","fixed_toolbar_container","setup","on","command","getContent","BACKSPACE","DELETE","onReplace","stopImmediatePropagation","altKey","F10","addButton","tooltip","_x","onClick","button","active","dom","toggleClass","cmd","rootNode","activeElement","blur","nativeEvent","onToolbarKeyDown","CodeEdit","trigger","regExp","nodeName","children","firstChild","schema","pre","code","ALLOWED_BLOCKS","getColumnsTemplate","memoize","columns","isEligible","innerBlocks","some","property","withoutLayout","reduce","result","innerBlock","layout","columnIndex","columnMatch","match","Number","push","migratedInnerBlocks","columnBlocks","classes","nextColumns","validAlignments","contentAlign","hasParallax","dimRatio","overlayColor","customOverlayColor","backgroundType","IMAGE_BACKGROUND_TYPE","VIDEO_BACKGROUND_TYPE","blocks","to","setOverlayColor","updateAlignment","onSelectMedia","mediaType","media_type","toggleParallax","setDimRatio","ratio","newTitle","style","backgroundImageStyles","dimRatioToClass","controls","open","hasTitle","overlayColorClass","Math","round","backgroundImage","HOSTS_NO_PREVIEWS","ASPECT_RATIOS","matchesPatterns","patterns","pattern","findBlock","common","others","getEmbedEdit","switchBackToURLInput","setUrl","maybeSwitchBlock","getAttributesFromPreview","setAttributesFromPreview","setAspectRatioClassNames","getResponsiveHelp","toggleResponsive","handleIncomingPreview","editingURL","preview","hasPreview","hadPreview","switchedPreview","switchedURL","cannotEmbed","photo","photoPreview","thumbnail_url","renderToString","matchingBlock","allowResponsive","previewDocument","implementation","createHTMLDocument","innerHTML","iframe","height","width","aspectRatio","toFixed","ratioIndex","potentialRatio","getAspectRatioClassNames","providerName","provider_name","providerNameSlug","kebabCase","toLower","checked","responsiveClassNames","fetching","supportsResponsive","getPhotoHtml","scripts","parsedUrl","parse","cannotPreview","host","replace","iframeTitle","sandboxClassnames","embedWrapper","__html","embedAttributes","getEmbedBlockSettings","keywords","blockDescription","core","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","getThemeSupports","previewIsFallback","themeSupports","badEmbedProvider","wordpressCantEmbed","data","status","validPreview","embedClassName","embedContentIcon","embedAudioIcon","embedPhotoIcon","embedVideoIcon","foreground","FileEdit","onSelectFile","confirmCopyURL","resetCopyConfirmation","changeLinkDestinationOption","changeOpenInNewWindow","changeShowDownloadButton","hasError","showCopyConfirmation","href","message","revokeBlobURL","fileName","textLinkHref","newHref","textLinkTarget","showDownloadButton","downloadButtonText","attachmentPage","openInNewWindow","getMedia","priority","blobURL","mime_type","getTextContent","create","getDownloadButtonHelp","FileBlockInspector","hrefs","linkDestinationOptions","MAX_COLUMNS","linkOptions","defaultColumnsNumber","min","images","pickRelevantMediaFiles","image","GalleryEdit","onSelectImage","onSelectImages","setLinkTo","setColumnsNumber","toggleImageCrop","onRemoveImage","setImageAttributes","addFiles","uploadFromFiles","selectedImage","index","img","i","linkTo","imageCrop","slice","currentImages","imagesNormalized","concat","captionSelected","dropZone","getImageCropHelp","alt","attrs","GalleryImage","onImageClick","onSelectCaption","onKeyDown","bindContainer","container","onSelect","onRemove","source_url","alt_text","newCaption","isMultiBlock","validImages","tag","shortcode","ids","named","split","parseInt","every","HeadingEdit","mergeBlocks","insertBlocksAfter","placeholder","tagName","newLevel","before","after","textAlign","HeadingToolbar","targetLevel","selectedLevel","isActive","subscript","String","minLevel","maxLevel","range","createLevelControl","getLevelFromHeadingNodeName","substr","anchor","h1","getPhrasingContentSchema","h2","h3","h4","h5","h6","getBlockAttributes","getBlockType","outerHTML","migratedAttributes","toLowerCase","merge","attributesToMerge","figure","require","figcaption","withState","isPreview","isDisabled","MIN_SIZE","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","isTemporaryImage","isExternalImage","ImageEdit","updateAlt","onFocusCaption","updateImageURL","updateWidth","updateHeight","updateDimensions","onSetCustomHref","onSetLinkDestination","toggleIsEditing","captionFocused","prevID","prevURL","linkDestination","newURL","newAlt","extraUpdatedAttributes","isLargeViewport","maxWidth","toggleSelection","isRTL","isExternal","toolbarEditButton","availableSizes","getAvailableSizes","isResizable","isLinkURLInputDisabled","getInspectorControls","imageWidth","imageHeight","size","startCase","scale","scaledWidth","scaledHeight","isCurrent","getLinkDestinationOptions","sizes","imageWidthWithinContainer","imageHeightWithinContainer","currentWidth","currentHeight","minWidth","minHeight","showRightHandle","showLeftHandle","top","right","bottom","left","direction","elt","delta","getEditorSettings","withViewportMatch","ImageSize","calculateSize","fetchImageSize","dirtynessTrigger","onload","Image","clientWidth","exceedMaxWidth","containerWidth","containerHeight","clientHeight","withGlobalEvents","resize","imageSchema","a","alignMatches","exec","idMatches","anchorElement","blockType","extraImageProps","figureStyle","registerCoreBlocks","paragraph","heading","gallery","list","quote","archives","audio","column","cover","embed","classic","mediaText","latestComments","latestPosts","missing","more","nextpage","preformatted","pullquote","separator","spacer","subhead","table","template","textColumns","verse","video","forEach","registerBlockType","setDefaultBlockName","setFreeformContentHandlerName","setUnregisteredTypeHandlerName","MIN_COMMENTS","MAX_COMMENTS","LatestComments","setAlignment","setCommentsToShow","toggleDisplayAvatar","createToggleAttribute","toggleDisplayDate","toggleDisplayExcerpt","propName","commentsToShow","displayAvatar","displayDate","displayExcerpt","MAX_POSTS_COLUMNS","LatestPostsEdit","toggleDisplayPostDate","displayPostDate","categoriesList","postLayout","order","orderBy","postsToShow","hasPosts","Array","isArray","displayPosts","layoutControls","dateFormat","getSettings","formats","date","post","decodeEntities","rendered","date_gmt","format","dateI18n","latestPostsQuery","pickBy","orderby","isUndefined","categoriesListQuery","listContentSchema","ul","ol","li","ordered","values","multiline","toHTMLString","join","multilineTag","piece","setupEditor","setNextValues","internalListType","parents","find","nodeInfo","findInternalListType","lang","navigator","browserLanguage","language","keyboardHasSquareBracket","shortcuts","add","execCommand","editorSettings","plugins","lists_indent_on_tab","nextValues","createSetListType","createExecCommand","TEMPLATE","fontSize","MediaTextEdit","onWidthChange","commitWidthChange","mediaWidth","mediaAlt","mediaUrl","mediaPosition","temporaryMediaWidth","classNames","widthString","gridTemplateColumns","colorSettings","toolbarControls","renderMediaArea","DEFAULT_MEDIA_WIDTH","mediaTypeRenders","MediaContainer","renderToolbarEditButton","onResize","onResizeStop","enablePositions","mediaElement","renderImage","renderVideo","renderPlaceholder","MissingBlockWarning","convertToHTML","originalName","originalUndelimitedContent","hasContent","hasHTMLBlock","actions","messageHTML","replaceBlock","originalContent","MoreEdit","onChangeInput","defaultText","customText","ENTER","getDefaultBlockName","noTeaser","toggleNoTeaser","inputLength","multiple","dataset","moreTag","noTeaserTag","compact","customFontSize","editableNode","computedStyles","fallbackFontSize","ParagraphBlock","toggleDropCap","splitBlock","dropCap","setFontSize","nextDirection","getDropCapHelp","nextContent","ParagraphEdit","withFontSizes","enum","p","fontSizeClass","isFinite","getFontSizeClass","SOLID_COLOR_STYLE_NAME","SOLID_COLOR_CLASS","PullQuoteEdit","wasTextColorAutomaticallyComputed","pullQuoteMainColorSetter","pullQuoteTextColorSetter","colorValue","colorUtils","setMainColor","getMostReadableColor","mainColor","citation","isSolidColorStyle","borderColor","blockquoteStyle","blockquoteClasses","nextValue","nextCitation","customMainColor","figureClass","figureStyles","colors","colorObject","getColorObjectByAttributeValues","blockquoteTextColorClass","blockquote","paragraphs","pieces","quotePieces","forward","hasEmptyCitation","hr","removep","autop","inputId","topRight","bottomRight","bottomLeft","topLeft","alternative","plugin","TableEdit","onCreateTable","onChangeFixedLayout","onChangeInitialColumnCount","onChangeInitialRowCount","renderSection","getTableControls","onInsertRow","onInsertRowBefore","onInsertRowAfter","onDeleteRow","onInsertColumn","onInsertColumnBefore","onInsertColumnAfter","onDeleteColumn","initialRowCount","initialColumnCount","selectedCell","createTable","rowCount","columnCount","hasFixedLayout","section","rowIndex","updateCellContent","insertRow","deleteRow","insertColumn","deleteColumn","rows","Tag","cells","CellTag","cell","createOnFocus","head","foot","Section","tableContentPasteSchema","tr","th","td","tablePasteSchema","thead","tfoot","tbody","getTableSectionAttributeSchema","cellIndex","row","currentRowIndex","currentColumnIndex","cellCount","nextWidth","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","VideoEdit","videoPlayer","posterImageButton","onSelectPoster","onRemovePoster","poster","load","muted","onSelectVideo"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;AClFA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,KAAK;AACL,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;AAExB,yCAAyC,qBAAqB;;AAE9D;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;;AAEtD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,iBAAiB;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;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;;AAEA;AACA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAmB;AACrB;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,EAaN;;AAEF,CAAC;;;;;;;;;;;;;;ACphBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpFa;;AAEb,iCAAiC,mBAAO,CAAC,0DAAU;AACnD,qCAAqC,mBAAO,CAAC,0DAAU;;;;;;;;;;;;;ACHvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,eAAe,mBAAO,CAAC,qDAAU;AACjC,WAAW,mBAAO,CAAC,0CAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAK;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,2CAA2C,KAAK;AAChD,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,mBAAO,CAAC,4DAAa;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3tBa;;AAEb;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;ACfA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAe;AACf;AACA,iDAAiD,gBAAgB;AACjE;AA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","file":"block-library.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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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 = \"./packages/packages/block-library/build-module/index.js\");\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","module.exports = function(module) {\r\n\tif (!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif (!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default 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}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _extends() {\n _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}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _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}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import defineProperty from \"./defineProperty\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _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}","export default 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}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","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\nexport default function _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _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 Copyright (c) 2016 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 classNames = (function () {\n\t\t// don't inherit from Object so we can skip hasOwnProperty check later\n\t\t// http://stackoverflow.com/questions/15518328/creating-js-object-with-object-createnull#answer-21079232\n\t\tfunction StorageObject() {}\n\t\tStorageObject.prototype = Object.create(null);\n\n\t\tfunction _parseArray (resultSet, array) {\n\t\t\tvar length = array.length;\n\n\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\t_parse(resultSet, array[i]);\n\t\t\t}\n\t\t}\n\n\t\tvar hasOwn = {}.hasOwnProperty;\n\n\t\tfunction _parseNumber (resultSet, num) {\n\t\t\tresultSet[num] = true;\n\t\t}\n\n\t\tfunction _parseObject (resultSet, object) {\n\t\t\tfor (var k in object) {\n\t\t\t\tif (hasOwn.call(object, k)) {\n\t\t\t\t\t// set value to false instead of deleting it to avoid changing object structure\n\t\t\t\t\t// https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/#de-referencing-misconceptions\n\t\t\t\t\tresultSet[k] = !!object[k];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar SPACE = /\\s+/;\n\t\tfunction _parseString (resultSet, str) {\n\t\t\tvar array = str.split(SPACE);\n\t\t\tvar length = array.length;\n\n\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\tresultSet[array[i]] = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction _parse (resultSet, arg) {\n\t\t\tif (!arg) return;\n\t\t\tvar argType = typeof arg;\n\n\t\t\t// 'foo bar'\n\t\t\tif (argType === 'string') {\n\t\t\t\t_parseString(resultSet, arg);\n\n\t\t\t// ['foo', 'bar', ...]\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t_parseArray(resultSet, arg);\n\n\t\t\t// { 'foo': true, ... }\n\t\t\t} else if (argType === 'object') {\n\t\t\t\t_parseObject(resultSet, arg);\n\n\t\t\t// '130'\n\t\t\t} else if (argType === 'number') {\n\t\t\t\t_parseNumber(resultSet, arg);\n\t\t\t}\n\t\t}\n\n\t\tfunction _classNames () {\n\t\t\t// don't leak arguments\n\t\t\t// https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n\t\t\tvar len = arguments.length;\n\t\t\tvar args = Array(len);\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\targs[i] = arguments[i];\n\t\t\t}\n\n\t\t\tvar classSet = new StorageObject();\n\t\t\t_parseArray(classSet, args);\n\n\t\t\tvar list = [];\n\n\t\t\tfor (var k in classSet) {\n\t\t\t\tif (classSet[k]) {\n\t\t\t\t\tlist.push(k)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn list.join(' ');\n\t\t}\n\n\t\treturn _classNames;\n\t})();\n\n\tif (typeof module !== 'undefined' && module.exports) {\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","/*!\n Copyright (c) 2016 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)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\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\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","module.exports = function memize( fn, options ) {\n\tvar size = 0,\n\t\tmaxSize, head, tail;\n\n\tif ( options && options.maxSize ) {\n\t\tmaxSize = options.maxSize;\n\t}\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\thead.prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args )\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === maxSize ) {\n\t\t\ttail = tail.prev;\n\t\t\ttail.next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\treturn memoized;\n};\n","/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tDisabled,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n\tServerSideRender,\n} from '@wordpress/editor';\n\nexport default function ArchivesEdit( { attributes, setAttributes } ) {\n\tconst { align, showPostCounts, displayAsDropdown } = attributes;\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Archives Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display as Dropdown' ) }\n\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\tonChange={ () => setAttributes( { displayAsDropdown: ! displayAsDropdown } ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show Post Counts' ) }\n\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\tonChange={ () => setAttributes( { showPostCounts: ! showPostCounts } ) }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls>\n\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<Disabled>\n\t\t\t\t<ServerSideRender block=\"core/archives\" attributes={ attributes } />\n\t\t\t</Disabled>\n\t\t</Fragment>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/archives';\n\nexport const settings = {\n\ttitle: __( 'Archives' ),\n\n\tdescription: __( 'Display a monthly archive of your sites Posts.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M7 11h2v2H7v-2zm14-5v14l-2 2H5l-2-2V6l2-2h1V2h2v2h8V2h2v2h1l2 2zM5 8h14V6H5v2zm14 12V10H5v10h14zm-4-7h2v-2h-2v2zm-4 0h2v-2h-2v2z\" /></g></svg>,\n\n\tcategory: 'widgets',\n\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align } = attributes;\n\t\tif ( [ 'left', 'center', 'right' ].includes( align ) ) {\n\t\t\treturn { 'data-align': align };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave() {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tDisabled,\n\tIconButton,\n\tPanelBody,\n\tSelectControl,\n\tToolbar,\n\tToggleControl,\n\twithNotices,\n} from '@wordpress/components';\nimport { Component, Fragment } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tRichText,\n\tmediaUpload,\n} from '@wordpress/editor';\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nclass AudioEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\t// edit component has its own src in the state so it can be edited\n\t\t// without setting the actual value outside of the edit UI\n\t\tthis.state = {\n\t\t\tediting: ! this.props.attributes.src,\n\t\t};\n\n\t\tthis.toggleAttribute = this.toggleAttribute.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, noticeOperations, setAttributes } = this.props;\n\t\tconst { id, src = '' } = attributes;\n\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\n\t\t\tif ( file ) {\n\t\t\t\tmediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ { id: mediaId, url } ] ) => {\n\t\t\t\t\t\tsetAttributes( { id: mediaId, src: url } );\n\t\t\t\t\t},\n\t\t\t\t\tonError: ( e ) => {\n\t\t\t\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\t\t\t\tthis.setState( { editing: true } );\n\t\t\t\t\t\tnoticeOperations.createErrorNotice( e );\n\t\t\t\t\t},\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\ttoggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tthis.props.setAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tonSelectURL( newSrc ) {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { src } = attributes;\n\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\n\t\tthis.setState( { editing: false } );\n\t}\n\n\trender() {\n\t\tconst { autoplay, caption, loop, preload, src } = this.props.attributes;\n\t\tconst { setAttributes, isSelected, className, noticeOperations, noticeUI } = this.props;\n\t\tconst { editing } = this.state;\n\t\tconst switchToEditing = () => {\n\t\t\tthis.setState( { editing: true } );\n\t\t};\n\t\tconst onSelectAudio = ( media ) => {\n\t\t\tif ( ! media || ! media.url ) {\n\t\t\t\t// in this case there was an error and we should continue in the editing state\n\t\t\t\t// previous attributes should be removed because they may be temporary blob urls\n\t\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\t\tswitchToEditing();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// sets the block's attribute and updates the edit component from the\n\t\t\t// selected media, then switches off the editing UI\n\t\t\tsetAttributes( { src: media.url, id: media.id } );\n\t\t\tthis.setState( { src: media.url, editing: false } );\n\t\t};\n\t\tif ( editing ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon=\"media-audio\"\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'Audio' ),\n\t\t\t\t\t\tname: __( 'an audio' ),\n\t\t\t\t\t} }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ this.props.attributes }\n\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName=\"components-icon-button components-toolbar__control\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit audio' ) }\n\t\t\t\t\t\t\tonClick={ switchToEditing }\n\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Audio Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'loop' ) }\n\t\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\t\t\t\tvalue={ undefined !== preload ? preload : 'none' }\n\t\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { preload: ( 'none' !== value ) ? value : undefined } ) }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t\t{ value: 'none', label: __( 'None' ) },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<figure className={ className }>\n\t\t\t\t\t{ /*\n\t\t\t\t\t\tDisable the audio tag so the user clicking on it won't play the\n\t\t\t\t\t\tfile or change the position slider when the controls are enabled.\n\t\t\t\t\t*/ }\n\t\t\t\t\t<Disabled>\n\t\t\t\t\t\t<audio controls=\"controls\" src={ src } />\n\t\t\t\t\t</Disabled>\n\t\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t</Fragment>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t}\n}\n\nexport default withNotices( AudioEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\n\nexport const name = 'core/audio';\n\nexport const settings = {\n\ttitle: __( 'Audio' ),\n\n\tdescription: __( 'Embed an audio file and a simple audio player.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"m12 3l0.01 10.55c-0.59-0.34-1.27-0.55-2-0.55-2.22 0-4.01 1.79-4.01 4s1.79 4 4.01 4 3.99-1.79 3.99-4v-10h4v-4h-6zm-1.99 16c-1.1 0-2-0.9-2-2s0.9-2 2-2 2 0.9 2 2-0.9 2-2 2z\" /></svg>,\n\n\tcategory: 'common',\n\n\tattributes: {\n\t\tsrc: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'audio',\n\t\t\tattribute: 'src',\n\t\t},\n\t\tcaption: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tautoplay: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'audio',\n\t\t\tattribute: 'autoplay',\n\t\t},\n\t\tloop: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'audio',\n\t\t\tattribute: 'loop',\n\t\t},\n\t\tpreload: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'audio',\n\t\t\tattribute: 'preload',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch( files ) {\n\t\t\t\t\treturn files.length === 1 && files[ 0 ].type.indexOf( 'audio/' ) === 0;\n\t\t\t\t},\n\t\t\t\ttransform( files ) {\n\t\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t\t// in the audio block\n\t\t\t\t\tconst block = createBlock( 'core/audio', {\n\t\t\t\t\t\tsrc: createBlobURL( file ),\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn block;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tsupports: {\n\t\talign: true,\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { autoplay, caption, loop, preload, src } = attributes;\n\t\treturn (\n\t\t\t<figure>\n\t\t\t\t<audio controls=\"controls\" src={ src } autoPlay={ autoplay } loop={ loop } preload={ preload } />\n\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, Fragment, createRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { withInstanceId } from '@wordpress/compose';\n\nclass ReusableBlockEditPanel extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.titleField = createRef();\n\t\tthis.editButton = createRef();\n\t\tthis.handleFormSubmit = this.handleFormSubmit.bind( this );\n\t\tthis.handleTitleChange = this.handleTitleChange.bind( this );\n\t\tthis.handleTitleKeyDown = this.handleTitleKeyDown.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\t// Select the input text when the form opens.\n\t\tif ( this.props.isEditing && this.titleField.current ) {\n\t\t\tthis.titleField.current.select();\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Select the input text only once when the form opens.\n\t\tif ( ! prevProps.isEditing && this.props.isEditing ) {\n\t\t\tthis.titleField.current.select();\n\t\t}\n\t\t// Move focus back to the Edit button after pressing the Escape key, Cancel, or Save.\n\t\tif ( ( prevProps.isEditing || prevProps.isSaving ) && ! this.props.isEditing && ! this.props.isSaving ) {\n\t\t\tthis.editButton.current.focus();\n\t\t}\n\t}\n\n\thandleFormSubmit( event ) {\n\t\tevent.preventDefault();\n\t\tthis.props.onSave();\n\t}\n\n\thandleTitleChange( event ) {\n\t\tthis.props.onChangeTitle( event.target.value );\n\t}\n\n\thandleTitleKeyDown( event ) {\n\t\tif ( event.keyCode === ESCAPE ) {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.props.onCancel();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { isEditing, title, isSaving, onEdit, instanceId } = this.props;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ ( ! isEditing && ! isSaving ) && (\n\t\t\t\t\t<div className=\"reusable-block-edit-panel\">\n\t\t\t\t\t\t<b className=\"reusable-block-edit-panel__info\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</b>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ this.editButton }\n\t\t\t\t\t\t\tisLarge\n\t\t\t\t\t\t\tclassName=\"reusable-block-edit-panel__button\"\n\t\t\t\t\t\t\tonClick={ onEdit }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ ( isEditing || isSaving ) && (\n\t\t\t\t\t<form className=\"reusable-block-edit-panel\" onSubmit={ this.handleFormSubmit }>\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\thtmlFor={ `reusable-block-edit-panel__title-${ instanceId }` }\n\t\t\t\t\t\t\tclassName=\"reusable-block-edit-panel__label\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Name:' ) }\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref={ this.titleField }\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\t\t\tclassName=\"reusable-block-edit-panel__title\"\n\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\tonChange={ this.handleTitleChange }\n\t\t\t\t\t\t\tonKeyDown={ this.handleTitleKeyDown }\n\t\t\t\t\t\t\tid={ `reusable-block-edit-panel__title-${ instanceId }` }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisLarge\n\t\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t\t\tdisabled={ ! title || isSaving }\n\t\t\t\t\t\t\tclassName=\"reusable-block-edit-panel__button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</form>\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withInstanceId( ReusableBlockEditPanel );\n","/**\n * External dependencies\n */\nimport { noop, partial } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport { Placeholder, Spinner, Disabled } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { BlockEdit } from '@wordpress/editor';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport ReusableBlockEditPanel from './edit-panel';\nimport ReusableBlockIndicator from './indicator';\n\nclass ReusableBlockEdit extends Component {\n\tconstructor( { reusableBlock } ) {\n\t\tsuper( ...arguments );\n\n\t\tthis.startEditing = this.startEditing.bind( this );\n\t\tthis.stopEditing = this.stopEditing.bind( this );\n\t\tthis.setAttributes = this.setAttributes.bind( this );\n\t\tthis.setTitle = this.setTitle.bind( this );\n\t\tthis.save = this.save.bind( this );\n\n\t\tif ( reusableBlock && reusableBlock.isTemporary ) {\n\t\t\t// Start in edit mode when we're working with a newly created reusable block\n\t\t\tthis.state = {\n\t\t\t\tisEditing: true,\n\t\t\t\ttitle: reusableBlock.title,\n\t\t\t\tchangedAttributes: {},\n\t\t\t};\n\t\t} else {\n\t\t\t// Start in preview mode when we're working with an existing reusable block\n\t\t\tthis.state = {\n\t\t\t\tisEditing: false,\n\t\t\t\ttitle: null,\n\t\t\t\tchangedAttributes: null,\n\t\t\t};\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( ! this.props.reusableBlock ) {\n\t\t\tthis.props.fetchReusableBlock();\n\t\t}\n\t}\n\n\tstartEditing() {\n\t\tconst { reusableBlock } = this.props;\n\n\t\tthis.setState( {\n\t\t\tisEditing: true,\n\t\t\ttitle: reusableBlock.title,\n\t\t\tchangedAttributes: {},\n\t\t} );\n\t}\n\n\tstopEditing() {\n\t\tthis.setState( {\n\t\t\tisEditing: false,\n\t\t\ttitle: null,\n\t\t\tchangedAttributes: null,\n\t\t} );\n\t}\n\n\tsetAttributes( attributes ) {\n\t\tthis.setState( ( prevState ) => {\n\t\t\tif ( prevState.changedAttributes !== null ) {\n\t\t\t\treturn { changedAttributes: { ...prevState.changedAttributes, ...attributes } };\n\t\t\t}\n\t\t} );\n\t}\n\n\tsetTitle( title ) {\n\t\tthis.setState( { title } );\n\t}\n\n\tsave() {\n\t\tconst { reusableBlock, onUpdateTitle, updateAttributes, block, onSave } = this.props;\n\t\tconst { title, changedAttributes } = this.state;\n\n\t\tif ( title !== reusableBlock.title ) {\n\t\t\tonUpdateTitle( title );\n\t\t}\n\n\t\tupdateAttributes( block.clientId, changedAttributes );\n\t\tonSave();\n\n\t\tthis.stopEditing();\n\t}\n\n\trender() {\n\t\tconst { isSelected, reusableBlock, block, isFetching, isSaving } = this.props;\n\t\tconst { isEditing, title, changedAttributes } = this.state;\n\n\t\tif ( ! reusableBlock && isFetching ) {\n\t\t\treturn <Placeholder><Spinner /></Placeholder>;\n\t\t}\n\n\t\tif ( ! reusableBlock || ! block ) {\n\t\t\treturn <Placeholder>{ __( 'Block has been deleted or is unavailable.' ) }</Placeholder>;\n\t\t}\n\n\t\tlet element = (\n\t\t\t<BlockEdit\n\t\t\t\t{ ...this.props }\n\t\t\t\tisSelected={ isEditing && isSelected }\n\t\t\t\tclientId={ block.clientId }\n\t\t\t\tname={ block.name }\n\t\t\t\tattributes={ { ...block.attributes, ...changedAttributes } }\n\t\t\t\tsetAttributes={ isEditing ? this.setAttributes : noop }\n\t\t\t/>\n\t\t);\n\n\t\tif ( ! isEditing ) {\n\t\t\telement = <Disabled>{ element }</Disabled>;\n\t\t}\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ ( isSelected || isEditing ) && (\n\t\t\t\t\t<ReusableBlockEditPanel\n\t\t\t\t\t\tisEditing={ isEditing }\n\t\t\t\t\t\ttitle={ title !== null ? title : reusableBlock.title }\n\t\t\t\t\t\tisSaving={ isSaving && ! reusableBlock.isTemporary }\n\t\t\t\t\t\tonEdit={ this.startEditing }\n\t\t\t\t\t\tonChangeTitle={ this.setTitle }\n\t\t\t\t\t\tonSave={ this.save }\n\t\t\t\t\t\tonCancel={ this.stopEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isSelected && ! isEditing && <ReusableBlockIndicator title={ reusableBlock.title } /> }\n\t\t\t\t{ element }\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, ownProps ) => {\n\t\tconst {\n\t\t\tgetReusableBlock,\n\t\t\tisFetchingReusableBlock,\n\t\t\tisSavingReusableBlock,\n\t\t\tgetBlock,\n\t\t} = select( 'core/editor' );\n\t\tconst { ref } = ownProps.attributes;\n\t\tconst reusableBlock = getReusableBlock( ref );\n\n\t\treturn {\n\t\t\treusableBlock,\n\t\t\tisFetching: isFetchingReusableBlock( ref ),\n\t\t\tisSaving: isSavingReusableBlock( ref ),\n\t\t\tblock: reusableBlock ? getBlock( reusableBlock.clientId ) : null,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst {\n\t\t\tfetchReusableBlocks,\n\t\t\tupdateBlockAttributes,\n\t\t\tupdateReusableBlockTitle,\n\t\t\tsaveReusableBlock,\n\t\t} = dispatch( 'core/editor' );\n\t\tconst { ref } = ownProps.attributes;\n\n\t\treturn {\n\t\t\tfetchReusableBlock: partial( fetchReusableBlocks, ref ),\n\t\t\tupdateAttributes: updateBlockAttributes,\n\t\t\tonUpdateTitle: partial( updateReusableBlockTitle, ref ),\n\t\t\tonSave: partial( saveReusableBlock, ref ),\n\t\t};\n\t} ),\n] )( ReusableBlockEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/block';\n\nexport const settings = {\n\ttitle: __( 'Reusable Block' ),\n\n\tcategory: 'reusable',\n\n\tdescription: __( 'Create content, and save it to reuse across your site. Update the block, and the changes apply everywhere its used.' ),\n\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t},\n\n\tedit,\n\n\tsave: () => null,\n};\n","/**\n * WordPress dependencies\n */\nimport { Tooltip, Dashicon } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\nfunction ReusableBlockIndicator( { title } ) {\n\t// translators: %s: title/name of the reusable block\n\tconst tooltipText = sprintf( __( 'Reusable Block: %s' ), title );\n\treturn (\n\t\t<Tooltip text={ tooltipText }>\n\t\t\t<span className=\"reusable-block-indicator\">\n\t\t\t\t<Dashicon icon=\"controls-repeat\" />\n\t\t\t</span>\n\t\t</Tooltip>\n\t);\n}\n\nexport default ReusableBlockIndicator;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tComponent,\n\tFragment,\n} from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport {\n\tDashicon,\n\tIconButton,\n\twithFallbackStyles,\n} from '@wordpress/components';\nimport {\n\tURLInput,\n\tRichText,\n\tContrastChecker,\n\tInspectorControls,\n\twithColors,\n\tPanelColorSettings,\n} from '@wordpress/editor';\n\nconst { getComputedStyle } = window;\n\nconst applyFallbackStyles = withFallbackStyles( ( node, ownProps ) => {\n\tconst { textColor, backgroundColor } = ownProps;\n\tconst backgroundColorValue = backgroundColor && backgroundColor.color;\n\tconst textColorValue = textColor && textColor.color;\n\t//avoid the use of querySelector if textColor color is known and verify if node is available.\n\tconst textNode = ! textColorValue && node ? node.querySelector( '[contenteditable=\"true\"]' ) : null;\n\treturn {\n\t\tfallbackBackgroundColor: backgroundColorValue || ! node ? undefined : getComputedStyle( node ).backgroundColor,\n\t\tfallbackTextColor: textColorValue || ! textNode ? undefined : getComputedStyle( textNode ).color,\n\t};\n} );\n\nclass ButtonEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.nodeRef = null;\n\t\tthis.bindRef = this.bindRef.bind( this );\n\t}\n\n\tbindRef( node ) {\n\t\tif ( ! node ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.nodeRef = node;\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tbackgroundColor,\n\t\t\ttextColor,\n\t\t\tsetBackgroundColor,\n\t\t\tsetTextColor,\n\t\t\tfallbackBackgroundColor,\n\t\t\tfallbackTextColor,\n\t\t\tsetAttributes,\n\t\t\tisSelected,\n\t\t\tclassName,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\ttext,\n\t\t\turl,\n\t\t\ttitle,\n\t\t} = attributes;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<div className={ className } title={ title } ref={ this.bindRef }>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tplaceholder={ __( 'Add text…' ) }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { text: value } ) }\n\t\t\t\t\t\tformattingControls={ [ 'bold', 'italic', 'strikethrough' ] }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-button__link', {\n\t\t\t\t\t\t\t\t'has-background': backgroundColor.color,\n\t\t\t\t\t\t\t\t[ backgroundColor.class ]: backgroundColor.class,\n\t\t\t\t\t\t\t\t'has-text-color': textColor.color,\n\t\t\t\t\t\t\t\t[ textColor.class ]: textColor.class,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tbackgroundColor: backgroundColor.color,\n\t\t\t\t\t\t\tcolor: textColor.color,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tkeepPlaceholderOnFocus\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\ttitle={ __( 'Color Settings' ) }\n\t\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Background Color' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Text Color' ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\tisLargeText: true,\n\t\t\t\t\t\t\t\t\ttextColor: textColor.color,\n\t\t\t\t\t\t\t\t\tbackgroundColor: backgroundColor.color,\n\t\t\t\t\t\t\t\t\tfallbackBackgroundColor,\n\t\t\t\t\t\t\t\t\tfallbackTextColor,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelColorSettings>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</div>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<form\n\t\t\t\t\t\tclassName=\"block-library-button__inline-link\"\n\t\t\t\t\t\tonSubmit={ ( event ) => event.preventDefault() }>\n\t\t\t\t\t\t<Dashicon icon=\"admin-links\" />\n\t\t\t\t\t\t<URLInput\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { url: value } ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<IconButton icon=\"editor-break\" label={ __( 'Apply' ) } type=\"submit\" />\n\t\t\t\t\t</form>\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithColors( 'backgroundColor', { textColor: 'color' } ),\n\tapplyFallbackStyles,\n] )( ButtonEdit );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit, pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tRichText,\n\tgetColorClassName,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nconst blockAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'a',\n\t\tattribute: 'href',\n\t},\n\ttitle: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'a',\n\t\tattribute: 'title',\n\t},\n\ttext: {\n\t\tsource: 'html',\n\t\tselector: 'a',\n\t},\n\tbackgroundColor: {\n\t\ttype: 'string',\n\t},\n\ttextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomBackgroundColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTextColor: {\n\t\ttype: 'string',\n\t},\n};\n\nexport const name = 'core/button';\n\nconst colorsMigration = ( attributes ) => {\n\treturn omit( {\n\t\t...attributes,\n\t\tcustomTextColor: attributes.textColor && '#' === attributes.textColor[ 0 ] ? attributes.textColor : undefined,\n\t\tcustomBackgroundColor: attributes.color && '#' === attributes.color[ 0 ] ? attributes.color : undefined,\n\t}, [ 'color', 'textColor' ] );\n};\n\nexport const settings = {\n\ttitle: __( 'Button' ),\n\n\tdescription: __( 'Want visitors to click to subscribe, buy, or read more? Get their attention with a button.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M19 6H5L3 8v8l2 2h14l2-2V8l-2-2zm0 10H5V8h14v8z\" /></g></svg>,\n\n\tcategory: 'layout',\n\n\tattributes: blockAttributes,\n\n\tsupports: {\n\t\talign: true,\n\t\talignWide: false,\n\t},\n\n\tstyles: [\n\t\t{ name: 'default', label: __( 'Rounded' ), isDefault: true },\n\t\t{ name: 'outline', label: __( 'Outline' ) },\n\t\t{ name: 'squared', label: __( 'Squared' ) },\n\t],\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\tbackgroundColor,\n\t\t\ttextColor,\n\t\t\tcustomBackgroundColor,\n\t\t\tcustomTextColor,\n\t\t} = attributes;\n\n\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\tconst backgroundClass = getColorClassName( 'background-color', backgroundColor );\n\n\t\tconst buttonClasses = classnames( 'wp-block-button__link', {\n\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t[ textClass ]: textClass,\n\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t} );\n\n\t\tconst buttonStyle = {\n\t\t\tbackgroundColor: backgroundClass ? undefined : customBackgroundColor,\n\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t};\n\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\thref={ url }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\n\tdeprecated: [ {\n\t\tattributes: {\n\t\t\t...pick( blockAttributes, [ 'url', 'title', 'text' ] ),\n\t\t\tcolor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t},\n\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, text, title, align, color, textColor } = attributes;\n\n\t\t\tconst buttonStyle = {\n\t\t\t\tbackgroundColor: color,\n\t\t\t\tcolor: textColor,\n\t\t\t};\n\n\t\t\tconst linkClass = 'wp-block-button__link';\n\n\t\t\treturn (\n\t\t\t\t<div className={ `align${ align }` }>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tmigrate: colorsMigration,\n\t},\n\t{\n\t\tattributes: {\n\t\t\t...pick( blockAttributes, [ 'url', 'title', 'text' ] ),\n\t\t\tcolor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t},\n\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, text, title, align, color, textColor } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<div className={ `align${ align }` } style={ { backgroundColor: color } }>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ { color: textColor } }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tmigrate: colorsMigration,\n\t},\n\t],\n};\n","/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport { PanelBody, Placeholder, Spinner, ToggleControl } from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { times, unescape } from 'lodash';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tBlockAlignmentToolbar,\n} from '@wordpress/editor';\n\nclass CategoriesEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.toggleDisplayAsDropdown = this.toggleDisplayAsDropdown.bind( this );\n\t\tthis.toggleShowPostCounts = this.toggleShowPostCounts.bind( this );\n\t\tthis.toggleShowHierarchy = this.toggleShowHierarchy.bind( this );\n\t}\n\n\ttoggleDisplayAsDropdown() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { displayAsDropdown } = attributes;\n\n\t\tsetAttributes( { displayAsDropdown: ! displayAsDropdown } );\n\t}\n\n\ttoggleShowPostCounts() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { showPostCounts } = attributes;\n\n\t\tsetAttributes( { showPostCounts: ! showPostCounts } );\n\t}\n\n\ttoggleShowHierarchy() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { showHierarchy } = attributes;\n\n\t\tsetAttributes( { showHierarchy: ! showHierarchy } );\n\t}\n\n\tgetCategories( parentId = null ) {\n\t\tconst categories = this.props.categories;\n\t\tif ( ! categories || ! categories.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif ( parentId === null ) {\n\t\t\treturn categories;\n\t\t}\n\n\t\treturn categories.filter( ( category ) => category.parent === parentId );\n\t}\n\n\tgetCategoryListClassName( level ) {\n\t\tconst { className } = this.props;\n\t\treturn `${ className }__list ${ className }__list-level-${ level }`;\n\t}\n\n\trenderCategoryName( category ) {\n\t\tif ( ! category.name ) {\n\t\t\treturn __( '(Untitled)' );\n\t\t}\n\n\t\treturn unescape( category.name ).trim();\n\t}\n\n\trenderCategoryList() {\n\t\tconst { showHierarchy } = this.props.attributes;\n\t\tconst parentId = showHierarchy ? 0 : null;\n\t\tconst categories = this.getCategories( parentId );\n\n\t\treturn (\n\t\t\t<ul className={ this.getCategoryListClassName( 0 ) }>\n\t\t\t\t{ categories.map( ( category ) => this.renderCategoryListItem( category, 0 ) ) }\n\t\t\t</ul>\n\t\t);\n\t}\n\n\trenderCategoryListItem( category, level ) {\n\t\tconst { showHierarchy, showPostCounts } = this.props.attributes;\n\t\tconst childCategories = this.getCategories( category.id );\n\n\t\treturn (\n\t\t\t<li key={ category.id }>\n\t\t\t\t<a href={ category.link } target=\"_blank\">{ this.renderCategoryName( category ) }</a>\n\t\t\t\t{ showPostCounts &&\n\t\t\t\t\t<span className={ `${ this.props.className }__post-count` }>\n\t\t\t\t\t\t{ ' ' }({ category.count })\n\t\t\t\t\t</span>\n\t\t\t\t}\n\n\t\t\t\t{\n\t\t\t\t\tshowHierarchy &&\n\t\t\t\t\t!! childCategories.length && (\n\t\t\t\t\t\t<ul className={ this.getCategoryListClassName( level + 1 ) }>\n\t\t\t\t\t\t\t{ childCategories.map( ( childCategory ) => this.renderCategoryListItem( childCategory, level + 1 ) ) }\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</li>\n\t\t);\n\t}\n\n\trenderCategoryDropdown() {\n\t\tconst { showHierarchy } = this.props.attributes;\n\t\tconst parentId = showHierarchy ? 0 : null;\n\t\tconst categories = this.getCategories( parentId );\n\n\t\treturn (\n\t\t\t<select className={ `${ this.props.className }__dropdown` }>\n\t\t\t\t{ categories.map( ( category ) => this.renderCategoryDropdownItem( category, 0 ) ) }\n\t\t\t</select>\n\t\t);\n\t}\n\n\trenderCategoryDropdownItem( category, level ) {\n\t\tconst { showHierarchy, showPostCounts } = this.props.attributes;\n\t\tconst childCategories = this.getCategories( category.id );\n\n\t\treturn [\n\t\t\t<option key={ category.id }>\n\t\t\t\t{ times( level * 3, () => '\\xa0' ) }\n\t\t\t\t{ this.renderCategoryName( category ) }\n\t\t\t\t{\n\t\t\t\t\t!! showPostCounts ?\n\t\t\t\t\t\t` (${ category.count })` :\n\t\t\t\t\t\t''\n\t\t\t\t}\n\t\t\t</option>,\n\t\t\tshowHierarchy &&\n\t\t\t!! childCategories.length && (\n\t\t\t\tchildCategories.map( ( childCategory ) => this.renderCategoryDropdownItem( childCategory, level + 1 ) )\n\t\t\t),\n\t\t];\n\t}\n\n\trender() {\n\t\tconst { attributes, setAttributes, isRequesting } = this.props;\n\t\tconst { align, displayAsDropdown, showHierarchy, showPostCounts } = attributes;\n\n\t\tconst inspectorControls = (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Categories Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display as Dropdown' ) }\n\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\tonChange={ this.toggleDisplayAsDropdown }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show Hierarchy' ) }\n\t\t\t\t\t\tchecked={ showHierarchy }\n\t\t\t\t\t\tonChange={ this.toggleShowHierarchy }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show Post Counts' ) }\n\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\tonChange={ this.toggleShowPostCounts }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\n\t\tif ( isRequesting ) {\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{ inspectorControls }\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon=\"admin-post\"\n\t\t\t\t\t\tlabel={ __( 'Categories' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</Placeholder>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tcontrols={ [ 'left', 'center', 'right', 'full' ] }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div className={ this.props.className }>\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayAsDropdown ?\n\t\t\t\t\t\t\tthis.renderCategoryDropdown() :\n\t\t\t\t\t\t\tthis.renderCategoryList()\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getEntityRecords } = select( 'core' );\n\tconst { isResolving } = select( 'core/data' );\n\tconst query = { per_page: -1 };\n\n\treturn {\n\t\tcategories: getEntityRecords( 'taxonomy', 'category', query ),\n\t\tisRequesting: isResolving( 'core', 'getEntityRecords', [ 'taxonomy', 'category', query ] ),\n\t};\n} )( CategoriesEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/categories';\n\nexport const settings = {\n\ttitle: __( 'Categories' ),\n\n\tdescription: __( 'Display a list of all your sites categories.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"M12,2l-5.5,9h11L12,2z M12,5.84L13.93,9h-3.87L12,5.84z\" /><path d=\"m17.5 13c-2.49 0-4.5 2.01-4.5 4.5s2.01 4.5 4.5 4.5 4.5-2.01 4.5-4.5-2.01-4.5-4.5-4.5zm0 7c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\" /><path d=\"m3 21.5h8v-8h-8v8zm2-6h4v4h-4v-4z\" /></svg>,\n\n\tcategory: 'widgets',\n\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tdisplayAsDropdown: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tshowHierarchy: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\tshowPostCounts: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align } = attributes;\n\t\tif ( [ 'left', 'center', 'right', 'full' ].includes( align ) ) {\n\t\t\treturn { 'data-align': align };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave() {\n\t\treturn null;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE, F10 } from '@wordpress/keycodes';\n\nfunction isTmceEmpty( editor ) {\n\t// When tinyMce is empty the content seems to be:\n\t// <p><br data-mce-bogus=\"1\"></p>\n\t// avoid expensive checks for large documents\n\tconst body = editor.getBody();\n\tif ( body.childNodes.length > 1 ) {\n\t\treturn false;\n\t} else if ( body.childNodes.length === 0 ) {\n\t\treturn true;\n\t}\n\tif ( body.childNodes[ 0 ].childNodes.length > 1 ) {\n\t\treturn false;\n\t}\n\treturn /^\\n?$/.test( body.innerText || body.textContent );\n}\n\nexport default class ClassicEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.initialize = this.initialize.bind( this );\n\t\tthis.onSetup = this.onSetup.bind( this );\n\t\tthis.focus = this.focus.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { baseURL, suffix } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\tif ( document.readyState === 'complete' ) {\n\t\t\tthis.initialize();\n\t\t} else {\n\t\t\twindow.addEventListener( 'DOMContentLoaded', this.initialize );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.addEventListener( 'DOMContentLoaded', this.initialize );\n\t\twp.oldEditor.remove( `editor-${ this.props.clientId }` );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { clientId, attributes: { content } } = this.props;\n\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\n\t\tif ( prevProps.attributes.content !== content ) {\n\t\t\teditor.setContent( content || '' );\n\t\t}\n\t}\n\n\tinitialize() {\n\t\tconst { clientId } = this.props;\n\t\tconst { settings } = window.wpEditorL10n.tinymce;\n\t\twp.oldEditor.initialize( `editor-${ clientId }`, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tinline: true,\n\t\t\t\tcontent_css: false,\n\t\t\t\tfixed_toolbar_container: `#toolbar-${ clientId }`,\n\t\t\t\tsetup: this.onSetup,\n\t\t\t},\n\t\t} );\n\t}\n\n\tonSetup( editor ) {\n\t\tconst { attributes: { content }, setAttributes } = this.props;\n\t\tconst { ref } = this;\n\n\t\tthis.editor = editor;\n\n\t\t// Disable TinyMCE's keyboard shortcut help.\n\t\teditor.on( 'BeforeExecCommand', ( event ) => {\n\t\t\tif ( event.command === 'WP_Help' ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t} );\n\n\t\tif ( content ) {\n\t\t\teditor.on( 'loadContent', () => editor.setContent( content ) );\n\t\t}\n\n\t\teditor.on( 'blur', () => {\n\t\t\tsetAttributes( {\n\t\t\t\tcontent: editor.getContent(),\n\t\t\t} );\n\t\t\treturn false;\n\t\t} );\n\n\t\teditor.on( 'keydown', ( event ) => {\n\t\t\tif ( ( event.keyCode === BACKSPACE || event.keyCode === DELETE ) && isTmceEmpty( editor ) ) {\n\t\t\t\t// delete the block\n\t\t\t\tthis.props.onReplace( [] );\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\n\t\t\tconst { altKey } = event;\n\t\t\t/*\n\t\t\t * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n\t\t\t * `alt+f10` shortcut to focus its toolbar.\n\t\t\t */\n\t\t\tif ( altKey && event.keyCode === F10 ) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t} );\n\n\t\teditor.addButton( 'kitchensink', {\n\t\t\ttooltip: _x( 'More', 'button to expand options' ),\n\t\t\ticon: 'dashicon dashicons-editor-kitchensink',\n\t\t\tonClick: function() {\n\t\t\t\tconst button = this;\n\t\t\t\tconst active = ! button.active();\n\n\t\t\t\tbutton.active( active );\n\t\t\t\teditor.dom.toggleClass( ref, 'has-advanced-toolbar', active );\n\t\t\t},\n\t\t} );\n\n\t\teditor.addButton( 'wp_add_media', {\n\t\t\ttooltip: __( 'Insert Media' ),\n\t\t\ticon: 'dashicon dashicons-admin-media',\n\t\t\tcmd: 'WP_Medialib',\n\t\t} );\n\n\t\teditor.on( 'init', () => {\n\t\t\tconst rootNode = this.editor.getBody();\n\n\t\t\t// Create the toolbar by refocussing the editor.\n\t\t\tif ( document.activeElement === rootNode ) {\n\t\t\t\trootNode.blur();\n\t\t\t\tthis.editor.focus();\n\t\t\t}\n\t\t} );\n\t}\n\n\tfocus() {\n\t\tif ( this.editor ) {\n\t\t\tthis.editor.focus();\n\t\t}\n\t}\n\n\tonToolbarKeyDown( event ) {\n\t\t// Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n\t\tevent.stopPropagation();\n\t\t// Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\t\tevent.nativeEvent.stopImmediatePropagation();\n\t}\n\n\trender() {\n\t\tconst { clientId } = this.props;\n\n\t\t// Disable reason: the toolbar itself is non-interactive, but must capture\n\t\t// events from the KeyboardShortcuts component to stop their propagation.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\treturn [\n\t\t\t// Disable reason: Clicking on this visual placeholder should create\n\t\t\t// the toolbar, it can also be created by focussing the field below.\n\t\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<div\n\t\t\t\tkey=\"toolbar\"\n\t\t\t\tid={ `toolbar-${ clientId }` }\n\t\t\t\tref={ ( ref ) => this.ref = ref }\n\t\t\t\tclassName=\"block-library-classic__toolbar\"\n\t\t\t\tonClick={ this.focus }\n\t\t\t\tdata-placeholder={ __( 'Classic' ) }\n\t\t\t\tonKeyDown={ this.onToolbarKeyDown }\n\t\t\t/>,\n\t\t\t<div\n\t\t\t\tkey=\"editor\"\n\t\t\t\tid={ `editor-${ clientId }` }\n\t\t\t\tclassName=\"wp-block-freeform block-library-rich-text__tinymce\"\n\t\t\t/>,\n\t\t];\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\t}\n}\n","/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/freeform';\n\nexport const settings = {\n\ttitle: __( 'Classic' ),\n\n\tdescription: __( 'Its the classic WordPress editor and its a block! Drop the editor right in.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"m20 7v10h-16v-10h16m0-2h-16c-1.1 0-1.99 0.9-1.99 2l-0.01 10c0 1.1 0.9 2 2 2h16c1.1 0 2-0.9 2-2v-10c0-1.1-0.9-2-2-2z\" /><rect x=\"11\" y=\"8\" width=\"2\" height=\"2\" /><rect x=\"11\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"8\" y=\"8\" width=\"2\" height=\"2\" /><rect x=\"8\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"5\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"5\" y=\"8\" width=\"2\" height=\"2\" /><rect x=\"8\" y=\"14\" width=\"8\" height=\"2\" /><rect x=\"14\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"14\" y=\"8\" width=\"2\" height=\"2\" /><rect x=\"17\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"17\" y=\"8\" width=\"2\" height=\"2\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t},\n\t},\n\n\tsupports: {\n\t\tclassName: false,\n\t\tcustomClassName: false,\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { content } = attributes;\n\n\t\treturn <RawHTML>{ content }</RawHTML>;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { PlainText } from '@wordpress/editor';\n\nexport default function CodeEdit( { attributes, setAttributes, className } ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<PlainText\n\t\t\t\tvalue={ attributes.content }\n\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\tplaceholder={ __( 'Write code…' ) }\n\t\t\t\taria-label={ __( 'Code' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPath,\n\tSVG,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/code';\n\nexport const settings = {\n\ttitle: __( 'Code' ),\n\n\tdescription: __( 'Add text that respects your spacing and tabs -- perfect for displaying code.' ),\n\n\ticon: <SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><Path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><Path d=\"M9.4,16.6L4.8,12l4.6-4.6L8,6l-6,6l6,6L9.4,16.6z M14.6,16.6l4.6-4.6l-4.6-4.6L16,6l6,6l-6,6L14.6,16.6z\" /></SVG>,\n\n\tcategory: 'formatting',\n\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'text',\n\t\t\tselector: 'code',\n\t\t},\n\t},\n\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'pattern',\n\t\t\t\ttrigger: 'enter',\n\t\t\t\tregExp: /^```$/,\n\t\t\t\ttransform: () => createBlock( 'core/code' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => (\n\t\t\t\t\tnode.nodeName === 'PRE' &&\n\t\t\t\t\tnode.children.length === 1 &&\n\t\t\t\t\tnode.firstChild.nodeName === 'CODE'\n\t\t\t\t),\n\t\t\t\tschema: {\n\t\t\t\t\tpre: {\n\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\tcode: {\n\t\t\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\t\t\t'#text': {},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\treturn <pre><code>{ attributes.content }</code></pre>;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InnerBlocks } from '@wordpress/editor';\n\nexport const name = 'core/column';\n\nexport const settings = {\n\ttitle: __( 'Column' ),\n\n\tparent: [ 'core/columns' ],\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M11.99 18.54l-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16zm0-11.47L17.74 9 12 13.47 6.26 9 12 4.53z\" /></svg>,\n\n\tdescription: __( 'A single column within a columns block.' ),\n\n\tcategory: 'common',\n\n\tsupports: {\n\t\tinserter: false,\n\t},\n\n\tedit() {\n\t\treturn <InnerBlocks templateLock={ false } />;\n\t},\n\n\tsave() {\n\t\treturn <div><InnerBlocks.Content /></div>;\n\t},\n};\n","/**\n * External dependencies\n */\nimport { times, property, omit } from 'lodash';\nimport classnames from 'classnames';\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, RangeControl } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n} from '@wordpress/editor';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n*/\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\n/**\n * Returns the layouts configuration for a given number of columns.\n *\n * @param {number} columns Number of columns.\n *\n * @return {Object[]} Columns layout configuration.\n */\nconst getColumnsTemplate = memoize( ( columns ) => {\n\treturn times( columns, () => [ 'core/column' ] );\n} );\n\nexport const name = 'core/columns';\n\nexport const settings = {\n\ttitle: __( 'Columns' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M21 4H3L2 5v14l1 1h18l1-1V5l-1-1zM8 18H4V6h4v12zm6 0h-4V6h4v12zm6 0h-4V6h4v12z\" /></g></svg>,\n\n\tcategory: 'layout',\n\n\tattributes: {\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 2,\n\t\t},\n\t},\n\n\tdescription: __( 'Add a block that displays content in multiple columns, then add whatever content blocks youd like.' ),\n\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tattributes: {\n\t\t\t\tcolumns: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tdefault: 2,\n\t\t\t\t},\n\t\t\t},\n\t\t\tisEligible( attributes, innerBlocks ) {\n\t\t\t\treturn innerBlocks.some( property( [ 'attributes', 'layout' ] ) );\n\t\t\t},\n\t\t\tmigrate( attributes, innerBlocks ) {\n\t\t\t\tfunction withoutLayout( block ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...block,\n\t\t\t\t\t\tattributes: omit( block.attributes, [ 'layout' ] ),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst columns = innerBlocks.reduce( ( result, innerBlock ) => {\n\t\t\t\t\tconst { layout } = innerBlock.attributes;\n\n\t\t\t\t\tlet columnIndex, columnMatch;\n\t\t\t\t\tif ( layout && ( columnMatch = layout.match( /^column-(\\d+)$/ ) ) ) {\n\t\t\t\t\t\tcolumnIndex = Number( columnMatch[ 1 ] ) - 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcolumnIndex = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! result[ columnIndex ] ) {\n\t\t\t\t\t\tresult[ columnIndex ] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[ columnIndex ].push( withoutLayout( innerBlock ) );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}, [] );\n\n\t\t\t\tconst migratedInnerBlocks = columns.map( ( columnBlocks ) => (\n\t\t\t\t\tcreateBlock( 'core/column', {}, columnBlocks )\n\t\t\t\t) );\n\n\t\t\t\treturn [\n\t\t\t\t\tattributes,\n\t\t\t\t\tmigratedInnerBlocks,\n\t\t\t\t];\n\t\t\t},\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { columns } = attributes;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div className={ `has-${ columns }-columns` }>\n\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\n\tedit( { attributes, setAttributes, className } ) {\n\t\tconst { columns } = attributes;\n\t\tconst classes = classnames( className, `has-${ columns }-columns` );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ ( nextColumns ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcolumns: nextColumns,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\tmax={ 6 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<div className={ classes }>\n\t\t\t\t\t<InnerBlocks\n\t\t\t\t\t\ttemplate={ getColumnsTemplate( columns ) }\n\t\t\t\t\t\ttemplateLock=\"all\"\n\t\t\t\t\t\tallowedBlocks={ ALLOWED_BLOCKS } />\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t},\n\n\tsave( { attributes } ) {\n\t\tconst { columns } = attributes;\n\n\t\treturn (\n\t\t\t<div className={ `has-${ columns }-columns` }>\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t</div>\n\t\t);\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { IconButton, PanelBody, RangeControl, ToggleControl, Toolbar, withNotices } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { compose } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tAlignmentToolbar,\n\tPanelColorSettings,\n\tRichText,\n\twithColors,\n\tgetColorClassName,\n} from '@wordpress/editor';\n\nconst validAlignments = [ 'left', 'center', 'right', 'wide', 'full' ];\n\nconst blockAttributes = {\n\ttitle: {\n\t\tsource: 'html',\n\t\tselector: 'p',\n\t},\n\turl: {\n\t\ttype: 'string',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n\tcontentAlign: {\n\t\ttype: 'string',\n\t\tdefault: 'center',\n\t},\n\tid: {\n\t\ttype: 'number',\n\t},\n\thasParallax: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tdimRatio: {\n\t\ttype: 'number',\n\t\tdefault: 50,\n\t},\n\toverlayColor: {\n\t\ttype: 'string',\n\t},\n\tcustomOverlayColor: {\n\t\ttype: 'string',\n\t},\n\tbackgroundType: {\n\t\ttype: 'string',\n\t\tdefault: 'image',\n\t},\n};\n\nexport const name = 'core/cover';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video' ];\nconst IMAGE_BACKGROUND_TYPE = 'image';\nconst VIDEO_BACKGROUND_TYPE = 'video';\n\nexport const settings = {\n\ttitle: __( 'Cover' ),\n\n\tdescription: __( 'Add a full-width image or video, and layer text over it — great for headers.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9l-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z\" /><path d=\"M0 0h24v24H0z\" fill=\"none\" /></svg>,\n\n\tcategory: 'common',\n\n\tattributes: blockAttributes,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/heading' ],\n\t\t\t\ttransform: ( { content } ) => (\n\t\t\t\t\tcreateBlock( 'core/cover', { title: content } )\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\ttransform: ( { caption, url, align, id } ) => (\n\t\t\t\t\tcreateBlock( 'core/cover', {\n\t\t\t\t\t\ttitle: caption,\n\t\t\t\t\t\turl,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/video' ],\n\t\t\t\ttransform: ( { caption, src, align, id } ) => (\n\t\t\t\t\tcreateBlock( 'core/cover', {\n\t\t\t\t\t\ttitle: caption,\n\t\t\t\t\t\turl: src,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tbackgroundType: VIDEO_BACKGROUND_TYPE,\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/heading' ],\n\t\t\t\ttransform: ( { title } ) => (\n\t\t\t\t\tcreateBlock( 'core/heading', { content: title } )\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\tisMatch: ( { backgroundType, url } ) => {\n\t\t\t\t\treturn ! url || backgroundType === IMAGE_BACKGROUND_TYPE;\n\t\t\t\t},\n\t\t\t\ttransform: ( { title, url, align, id } ) => (\n\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\tcaption: title,\n\t\t\t\t\t\turl,\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tid,\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/video' ],\n\t\t\t\tisMatch: ( { backgroundType, url } ) => {\n\t\t\t\t\treturn ! url || backgroundType === VIDEO_BACKGROUND_TYPE;\n\t\t\t\t},\n\t\t\t\ttransform: ( { title, url, align, id } ) => (\n\t\t\t\t\tcreateBlock( 'core/video', {\n\t\t\t\t\t\tcaption: title,\n\t\t\t\t\t\tsrc: url,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\talign,\n\t\t\t\t\t} )\n\t\t\t\t),\n\t\t\t},\n\t\t],\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align } = attributes;\n\t\tif ( -1 !== validAlignments.indexOf( align ) ) {\n\t\t\treturn { 'data-align': align };\n\t\t}\n\t},\n\n\tedit: compose( [\n\t\twithColors( { overlayColor: 'background-color' } ),\n\t\twithNotices,\n\t] )(\n\t\t( { attributes, setAttributes, isSelected, className, noticeOperations, noticeUI, overlayColor, setOverlayColor } ) => {\n\t\t\tconst {\n\t\t\t\talign,\n\t\t\t\tbackgroundType,\n\t\t\t\tcontentAlign,\n\t\t\t\tdimRatio,\n\t\t\t\thasParallax,\n\t\t\t\tid,\n\t\t\t\ttitle,\n\t\t\t\turl,\n\t\t\t} = attributes;\n\t\t\tconst updateAlignment = ( nextAlign ) => setAttributes( { align: nextAlign } );\n\t\t\tconst onSelectMedia = ( media ) => {\n\t\t\t\tif ( ! media || ! media.url ) {\n\t\t\t\t\tsetAttributes( { url: undefined, id: undefined } );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlet mediaType;\n\t\t\t\t// for media selections originated from a file upload.\n\t\t\t\tif ( media.media_type ) {\n\t\t\t\t\tif ( media.media_type === IMAGE_BACKGROUND_TYPE ) {\n\t\t\t\t\t\tmediaType = IMAGE_BACKGROUND_TYPE;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t\t\t// Videos contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\t\t\tmediaType = VIDEO_BACKGROUND_TYPE;\n\t\t\t\t\t}\n\t\t\t\t} else { // for media selections originated from existing files in the media library.\n\t\t\t\t\tif (\n\t\t\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE &&\n\t\t\t\t\t\tmedia.type !== VIDEO_BACKGROUND_TYPE\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tmediaType = media.type;\n\t\t\t\t}\n\t\t\t\tsetAttributes( {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tbackgroundType: mediaType,\n\t\t\t\t} );\n\t\t\t};\n\t\t\tconst toggleParallax = () => setAttributes( { hasParallax: ! hasParallax } );\n\t\t\tconst setDimRatio = ( ratio ) => setAttributes( { dimRatio: ratio } );\n\t\t\tconst setTitle = ( newTitle ) => setAttributes( { title: newTitle } );\n\n\t\t\tconst style = {\n\t\t\t\t...(\n\t\t\t\t\tbackgroundType === IMAGE_BACKGROUND_TYPE ?\n\t\t\t\t\t\tbackgroundImageStyles( url ) :\n\t\t\t\t\t\t{}\n\t\t\t\t),\n\t\t\t\tbackgroundColor: overlayColor.color,\n\t\t\t};\n\n\t\t\tconst classes = classnames(\n\t\t\t\tclassName,\n\t\t\t\tcontentAlign !== 'center' && `has-${ contentAlign }-content`,\n\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t{\n\t\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tconst controls = (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ !! url && (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\t\t\t\tvalue={ contentAlign }\n\t\t\t\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( { contentAlign: nextAlign } );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Edit media' ) }\n\t\t\t\t\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Toolbar>\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t{ !! url && (\n\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Cover Settings' ) }>\n\t\t\t\t\t\t\t\t{ IMAGE_BACKGROUND_TYPE === backgroundType && (\n\t\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed Background' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\t\t\t\ttitle={ __( 'Overlay' ) }\n\t\t\t\t\t\t\t\t\tinitialOpen={ true }\n\t\t\t\t\t\t\t\t\tcolorSettings={ [ {\n\t\t\t\t\t\t\t\t\t\tvalue: overlayColor.color,\n\t\t\t\t\t\t\t\t\t\tonChange: setOverlayColor,\n\t\t\t\t\t\t\t\t\t\tlabel: __( 'Overlay Color' ),\n\t\t\t\t\t\t\t\t\t} ] }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Background Opacity' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={ dimRatio }\n\t\t\t\t\t\t\t\t\t\tonChange={ setDimRatio }\n\t\t\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\t\t\t\t\tstep={ 10 }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PanelColorSettings>\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t) }\n\t\t\t\t</Fragment>\n\t\t\t);\n\n\t\t\tif ( ! url ) {\n\t\t\t\tconst hasTitle = ! RichText.isEmpty( title );\n\t\t\t\tconst icon = hasTitle ? undefined : 'format-image';\n\t\t\t\tconst label = hasTitle ? (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\ttagName=\"h2\"\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t/>\n\t\t\t\t) : __( 'Cover' );\n\n\t\t\t\treturn (\n\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t{ controls }\n\t\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\t\ttitle: label,\n\t\t\t\t\t\t\t\t/* translators: Fragment of the sentence: \"Drag %s, upload a new one or select a file from your library.\" */\n\t\t\t\t\t\t\t\tname: __( 'an image or a video' ),\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Fragment>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{ controls }\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-url={ url }\n\t\t\t\t\t\tstyle={ style }\n\t\t\t\t\t\tclassName={ classes }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ VIDEO_BACKGROUND_TYPE === backgroundType && (\n\t\t\t\t\t\t\t<video\n\t\t\t\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\t\t\t\tautoPlay\n\t\t\t\t\t\t\t\tmuted\n\t\t\t\t\t\t\t\tloop\n\t\t\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ( ! RichText.isEmpty( title ) || isSelected ) && (\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\tclassName=\"wp-block-cover-text\"\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Write title…' ) }\n\t\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\t),\n\n\tsave( { attributes, className } ) {\n\t\tconst {\n\t\t\talign,\n\t\t\tbackgroundType,\n\t\t\tcontentAlign,\n\t\t\tcustomOverlayColor,\n\t\t\tdimRatio,\n\t\t\thasParallax,\n\t\t\toverlayColor,\n\t\t\ttitle,\n\t\t\turl,\n\t\t} = attributes;\n\t\tconst overlayColorClass = getColorClassName( 'background-color', overlayColor );\n\t\tconst style = backgroundType === IMAGE_BACKGROUND_TYPE ?\n\t\t\tbackgroundImageStyles( url ) :\n\t\t\t{};\n\t\tif ( ! overlayColorClass ) {\n\t\t\tstyle.backgroundColor = customOverlayColor;\n\t\t}\n\n\t\tconst classes = classnames(\n\t\t\tclassName,\n\t\t\tdimRatioToClass( dimRatio ),\n\t\t\toverlayColorClass,\n\t\t\t{\n\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t[ `has-${ contentAlign }-content` ]: contentAlign !== 'center',\n\t\t\t},\n\t\t\talign ? `align${ align }` : null,\n\t\t);\n\n\t\treturn (\n\t\t\t<div className={ classes } style={ style }>\n\t\t\t\t{ VIDEO_BACKGROUND_TYPE === backgroundType && url && ( <video\n\t\t\t\t\tclassName=\"wp-block-cover__video-background\"\n\t\t\t\t\tautoPlay\n\t\t\t\t\tmuted\n\t\t\t\t\tloop\n\t\t\t\t\tsrc={ url }\n\t\t\t\t/> ) }\n\t\t\t\t{ ! RichText.isEmpty( title ) && (\n\t\t\t\t\t<RichText.Content tagName=\"p\" className=\"wp-block-cover-text\" value={ title } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t},\n\n\tdeprecated: [ {\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t},\n\n\t\tsupports: {\n\t\t\tclassName: false,\n\t\t},\n\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, title, hasParallax, dimRatio, align, contentAlign, overlayColor, customOverlayColor } = attributes;\n\t\t\tconst overlayColorClass = getColorClassName( 'background-color', overlayColor );\n\t\t\tconst style = backgroundImageStyles( url );\n\t\t\tif ( ! overlayColorClass ) {\n\t\t\t\tstyle.backgroundColor = customOverlayColor;\n\t\t\t}\n\n\t\t\tconst classes = classnames(\n\t\t\t\t'wp-block-cover-image',\n\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\toverlayColorClass,\n\t\t\t\t{\n\t\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t\t[ `has-${ contentAlign }-content` ]: contentAlign !== 'center',\n\t\t\t\t},\n\t\t\t\talign ? `align${ align }` : null,\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<div className={ classes } style={ style }>\n\t\t\t\t\t{ ! RichText.isEmpty( title ) && (\n\t\t\t\t\t\t<RichText.Content tagName=\"p\" className=\"wp-block-cover-image-text\" value={ title } />\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t}, {\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\ttitle: {\n\t\t\t\tsource: 'html',\n\t\t\t\tselector: 'h2',\n\t\t\t},\n\t\t},\n\n\t\tsave( { attributes, className } ) {\n\t\t\tconst { url, title, hasParallax, dimRatio, align } = attributes;\n\t\t\tconst style = backgroundImageStyles( url );\n\t\t\tconst classes = classnames(\n\t\t\t\tclassName,\n\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t{\n\t\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t},\n\t\t\t\talign ? `align${ align }` : null,\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<section className={ classes } style={ style }>\n\t\t\t\t\t<RichText.Content tagName=\"h2\" value={ title } />\n\t\t\t\t</section>\n\t\t\t);\n\t\t},\n\t} ],\n};\n\nfunction dimRatioToClass( ratio ) {\n\treturn ( ratio === 0 || ratio === 50 ) ?\n\t\tnull :\n\t\t'has-background-dim-' + ( 10 * Math.round( ratio / 10 ) );\n}\n\nfunction backgroundImageStyles( url ) {\n\treturn url ?\n\t\t{ backgroundImage: `url(${ url })` } :\n\t\t{};\n}\n","/**\n * External dependencies\n */\nimport { parse } from 'url';\nimport { includes, kebabCase, toLower } from 'lodash';\nimport classnames from 'classnames/dedupe';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { Component, renderToString, Fragment } from '@wordpress/element';\nimport {\n\tButton,\n\tPlaceholder,\n\tSpinner,\n\tSandBox,\n\tIconButton,\n\tToolbar,\n\tPanelBody,\n\tToggleControl,\n} from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { RichText, BlockControls, BlockIcon, InspectorControls } from '@wordpress/editor';\nimport { withSelect } from '@wordpress/data';\n\n// These embeds do not work in sandboxes\nconst HOSTS_NO_PREVIEWS = [ 'facebook.com' ];\n\nconst ASPECT_RATIOS = [\n\t// Common video resolutions.\n\t{ ratio: '2.33', className: 'wp-embed-aspect-21-9' },\n\t{ ratio: '2.00', className: 'wp-embed-aspect-18-9' },\n\t{ ratio: '1.78', className: 'wp-embed-aspect-16-9' },\n\t{ ratio: '1.33', className: 'wp-embed-aspect-4-3' },\n\t// Vertical video and instagram square video support.\n\t{ ratio: '1.00', className: 'wp-embed-aspect-1-1' },\n\t{ ratio: '0.56', className: 'wp-embed-aspect-9-16' },\n\t{ ratio: '0.50', className: 'wp-embed-aspect-1-2' },\n];\n\nconst matchesPatterns = ( url, patterns = [] ) => {\n\treturn patterns.some( ( pattern ) => {\n\t\treturn url.match( pattern );\n\t} );\n};\n\nconst findBlock = ( url ) => {\n\tfor ( const block of [ ...common, ...others ] ) {\n\t\tif ( matchesPatterns( url, block.patterns ) ) {\n\t\t\treturn block.name;\n\t\t}\n\t}\n\treturn 'core/embed';\n};\n\nexport function getEmbedEdit( title, icon ) {\n\treturn class extends Component {\n\t\tconstructor() {\n\t\t\tsuper( ...arguments );\n\t\t\tthis.switchBackToURLInput = this.switchBackToURLInput.bind( this );\n\t\t\tthis.setUrl = this.setUrl.bind( this );\n\t\t\tthis.maybeSwitchBlock = this.maybeSwitchBlock.bind( this );\n\t\t\tthis.getAttributesFromPreview = this.getAttributesFromPreview.bind( this );\n\t\t\tthis.setAttributesFromPreview = this.setAttributesFromPreview.bind( this );\n\t\t\tthis.setAspectRatioClassNames = this.setAspectRatioClassNames.bind( this );\n\t\t\tthis.getResponsiveHelp = this.getResponsiveHelp.bind( this );\n\t\t\tthis.toggleResponsive = this.toggleResponsive.bind( this );\n\t\t\tthis.handleIncomingPreview = this.handleIncomingPreview.bind( this );\n\n\t\t\tthis.state = {\n\t\t\t\teditingURL: false,\n\t\t\t\turl: this.props.attributes.url,\n\t\t\t};\n\n\t\t\tif ( this.props.preview ) {\n\t\t\t\tthis.handleIncomingPreview();\n\t\t\t}\n\t\t}\n\n\t\thandleIncomingPreview() {\n\t\t\tthis.setAttributesFromPreview();\n\t\t\tthis.maybeSwitchBlock();\n\t\t}\n\n\t\tcomponentDidUpdate( prevProps ) {\n\t\t\tconst hasPreview = undefined !== this.props.preview;\n\t\t\tconst hadPreview = undefined !== prevProps.preview;\n\t\t\t// We had a preview, and the URL was edited, and the new URL already has a preview fetched.\n\t\t\tconst switchedPreview = this.props.preview && this.props.attributes.url !== prevProps.attributes.url;\n\t\t\tconst switchedURL = this.props.attributes.url !== prevProps.attributes.url;\n\n\t\t\tif ( ( switchedURL || ( hasPreview && ! hadPreview ) ) && this.maybeSwitchBlock() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ( hasPreview && ! hadPreview ) || switchedPreview ) {\n\t\t\t\tif ( this.props.cannotEmbed ) {\n\t\t\t\t\tthis.setState( { editingURL: true } );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.handleIncomingPreview();\n\t\t\t}\n\t\t}\n\n\t\tgetPhotoHtml( photo ) {\n\t\t\t// 100% width for the preview so it fits nicely into the document, some \"thumbnails\" are\n\t\t\t// acually the full size photo.\n\t\t\tconst photoPreview = <p><img src={ photo.thumbnail_url } alt={ photo.title } width=\"100%\" /></p>;\n\t\t\treturn renderToString( photoPreview );\n\t\t}\n\n\t\tsetUrl( event ) {\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t\tconst { url } = this.state;\n\t\t\tconst { setAttributes } = this.props;\n\t\t\tthis.setState( { editingURL: false } );\n\t\t\tsetAttributes( { url } );\n\t\t}\n\n\t\t/***\n\t\t * Maybe switches to a different embed block type, based on the URL\n\t\t * and the HTML in the preview.\n\t\t *\n\t\t * @return {boolean} Whether the block was switched.\n\t\t */\n\t\tmaybeSwitchBlock() {\n\t\t\tconst { preview } = this.props;\n\t\t\tconst { url } = this.props.attributes;\n\n\t\t\tif ( ! url ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst matchingBlock = findBlock( url );\n\n\t\t\t// WordPress blocks can work on multiple sites, and so don't have patterns,\n\t\t\t// so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.\n\t\t\tif ( 'core-embed/wordpress' !== this.props.name && 'core/embed' !== matchingBlock ) {\n\t\t\t\t// At this point, we have discovered a more suitable block for this url, so transform it.\n\t\t\t\tif ( this.props.name !== matchingBlock ) {\n\t\t\t\t\tthis.props.onReplace( createBlock( matchingBlock, { url } ) );\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( preview ) {\n\t\t\t\tconst { html } = preview;\n\n\t\t\t\t// This indicates it's a WordPress embed, there aren't a set of URL patterns we can use to match WordPress URLs.\n\t\t\t\tif ( includes( html, 'class=\"wp-embedded-content\" data-secret' ) ) {\n\t\t\t\t\t// If this is not the WordPress embed block, transform it into one.\n\t\t\t\t\tif ( this.props.name !== 'core-embed/wordpress' ) {\n\t\t\t\t\t\tthis.props.onReplace(\n\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t'core-embed/wordpress',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\t// By now we have the preview, but when the new block first renders, it\n\t\t\t\t\t\t\t\t\t// won't have had all the attributes set, and so won't get the correct\n\t\t\t\t\t\t\t\t\t// type and it won't render correctly. So, we work out the attributes\n\t\t\t\t\t\t\t\t\t// here so that the initial render works when we switch to the WordPress\n\t\t\t\t\t\t\t\t\t// block. This only affects the WordPress block because it can't be\n\t\t\t\t\t\t\t\t\t// rendered in the usual Sandbox (it has a sandbox of its own) and it\n\t\t\t\t\t\t\t\t\t// relies on the preview to set the correct render type.\n\t\t\t\t\t\t\t\t\t...this.getAttributesFromPreview(\n\t\t\t\t\t\t\t\t\t\tthis.props.preview, this.props.attributes.allowResponsive\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * Gets the appropriate CSS class names to enforce an aspect ratio when the embed is resized\n\t\t * if the HTML has an iframe with width and height set.\n\t\t *\n\t\t * @param {string} html The preview HTML that possibly contains an iframe with width and height set.\n\t\t * @param {boolean} allowResponsive If the classes should be added, or removed.\n\t\t * @return {Object} Object with classnames set for use with `classnames`.\n\t\t */\n\t\tgetAspectRatioClassNames( html, allowResponsive = true ) {\n\t\t\tconst previewDocument = document.implementation.createHTMLDocument( '' );\n\t\t\tpreviewDocument.body.innerHTML = html;\n\t\t\tconst iframe = previewDocument.body.querySelector( 'iframe' );\n\n\t\t\tif ( iframe && iframe.height && iframe.width ) {\n\t\t\t\tconst aspectRatio = ( iframe.width / iframe.height ).toFixed( 2 );\n\t\t\t\t// Given the actual aspect ratio, find the widest ratio to support it.\n\t\t\t\tfor ( let ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++ ) {\n\t\t\t\t\tconst potentialRatio = ASPECT_RATIOS[ ratioIndex ];\n\t\t\t\t\tif ( aspectRatio >= potentialRatio.ratio ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t[ potentialRatio.className ]: allowResponsive,\n\t\t\t\t\t\t\t'wp-has-aspect-ratio': allowResponsive,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.props.attributes.className;\n\t\t}\n\n\t\t/**\n\t\t * Sets the aspect ratio related class names returned by `getAspectRatioClassNames`\n\t\t * if `allowResponsive` is truthy.\n\t\t *\n\t\t * @param {string} html The preview HTML.\n\t\t */\n\t\tsetAspectRatioClassNames( html ) {\n\t\t\tconst { allowResponsive } = this.props.attributes;\n\t\t\tif ( ! allowResponsive ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst className = classnames(\n\t\t\t\tthis.props.attributes.className,\n\t\t\t\tthis.getAspectRatioClassNames( html )\n\t\t\t);\n\t\t\tthis.props.setAttributes( { className } );\n\t\t}\n\n\t\t/***\n\t\t * Gets block attributes based on the preview and responsive state.\n\t\t *\n\t\t * @param {string} preview The preview data.\n\t\t * @param {boolean} allowResponsive Apply responsive classes to fixed size content.\n\t\t * @return {Object} Attributes and values.\n\t\t */\n\t\tgetAttributesFromPreview( preview, allowResponsive = true ) {\n\t\t\tconst attributes = {};\n\t\t\t// Some plugins only return HTML with no type info, so default this to 'rich'.\n\t\t\tlet { type = 'rich' } = preview;\n\t\t\t// If we got a provider name from the API, use it for the slug, otherwise we use the title,\n\t\t\t// because not all embed code gives us a provider name.\n\t\t\tconst { html, provider_name: providerName } = preview;\n\t\t\tconst providerNameSlug = kebabCase( toLower( '' !== providerName ? providerName : title ) );\n\n\t\t\tif ( includes( html, 'class=\"wp-embedded-content\" data-secret' ) ) {\n\t\t\t\ttype = 'wp-embed';\n\t\t\t}\n\n\t\t\tif ( html || 'photo' === type ) {\n\t\t\t\tattributes.type = type;\n\t\t\t\tattributes.providerNameSlug = providerNameSlug;\n\t\t\t}\n\n\t\t\tattributes.className = classnames(\n\t\t\t\tthis.props.attributes.className,\n\t\t\t\tthis.getAspectRatioClassNames( html, allowResponsive )\n\t\t\t);\n\n\t\t\treturn attributes;\n\t\t}\n\n\t\t/***\n\t\t * Sets block attributes based on the preview data.\n\t\t */\n\t\tsetAttributesFromPreview() {\n\t\t\tconst { setAttributes, preview } = this.props;\n\t\t\tconst { allowResponsive } = this.props.attributes;\n\t\t\tsetAttributes( this.getAttributesFromPreview( preview, allowResponsive ) );\n\t\t}\n\n\t\tswitchBackToURLInput() {\n\t\t\tthis.setState( { editingURL: true } );\n\t\t}\n\n\t\tgetResponsiveHelp( checked ) {\n\t\t\treturn checked ? __( 'Videos and other content automatically resizes.' ) : __( 'Content is fixed size.' );\n\t\t}\n\n\t\ttoggleResponsive() {\n\t\t\tconst { allowResponsive, className } = this.props.attributes;\n\t\t\tconst { html } = this.props.preview;\n\t\t\tconst responsiveClassNames = this.getAspectRatioClassNames( html, ! allowResponsive );\n\n\t\t\tthis.props.setAttributes(\n\t\t\t\t{\n\t\t\t\t\tallowResponsive: ! allowResponsive,\n\t\t\t\t\tclassName: classnames( className, responsiveClassNames ),\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\trender() {\n\t\t\tconst { url, editingURL } = this.state;\n\t\t\tconst { caption, type, allowResponsive } = this.props.attributes;\n\t\t\tconst { fetching, setAttributes, isSelected, className, preview, cannotEmbed, supportsResponsive } = this.props;\n\t\t\tconst controls = (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t\t{ preview && ! cannotEmbed && (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Edit URL' ) }\n\t\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\t\tonClick={ this.switchBackToURLInput }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Toolbar>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t{ supportsResponsive && (\n\t\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t\t<PanelBody title={ __( 'Media Settings' ) } className=\"blocks-responsive\">\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Automatically scale content' ) }\n\t\t\t\t\t\t\t\t\tchecked={ allowResponsive }\n\t\t\t\t\t\t\t\t\thelp={ this.getResponsiveHelp }\n\t\t\t\t\t\t\t\t\tonChange={ this.toggleResponsive }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t</InspectorControls>\n\t\t\t\t\t) }\n\t\t\t\t</Fragment>\n\t\t\t);\n\n\t\t\tif ( fetching ) {\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"wp-block-embed is-loading\">\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t<p>{ __( 'Embedding…' ) }</p>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\t\t\tconst label = sprintf( __( '%s URL' ), title );\n\n\t\t\tif ( ! preview || cannotEmbed || editingURL ) {\n\t\t\t\treturn (\n\t\t\t\t\t<Placeholder icon={ <BlockIcon icon={ icon } showColors /> } label={ label } className=\"wp-block-embed\">\n\t\t\t\t\t\t<form onSubmit={ this.setUrl }>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"url\"\n\t\t\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\t\t\tclassName=\"components-placeholder__input\"\n\t\t\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Enter URL to embed here…' ) }\n\t\t\t\t\t\t\t\tonChange={ ( event ) => this.setState( { url: event.target.value } ) } />\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisLarge\n\t\t\t\t\t\t\t\ttype=\"submit\">\n\t\t\t\t\t\t\t\t{ __( 'Embed' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t{ cannotEmbed && <p className=\"components-placeholder__error\">{ __( 'Sorry, we could not embed that content.' ) }</p> }\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</Placeholder>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst html = 'photo' === type ? this.getPhotoHtml( preview ) : preview.html;\n\t\t\tconst { scripts } = preview;\n\t\t\tconst parsedUrl = parse( url );\n\t\t\tconst cannotPreview = includes( HOSTS_NO_PREVIEWS, parsedUrl.host.replace( /^www\\./, '' ) );\n\t\t\t// translators: %s: host providing embed content e.g: www.youtube.com\n\t\t\tconst iframeTitle = sprintf( __( 'Embedded content from %s' ), parsedUrl.host );\n\t\t\tconst sandboxClassnames = classnames( type, className );\n\t\t\tconst embedWrapper = 'wp-embed' === type ? (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-embed__wrapper\"\n\t\t\t\t\tdangerouslySetInnerHTML={ { __html: html } }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t<SandBox\n\t\t\t\t\t\thtml={ html }\n\t\t\t\t\t\tscripts={ scripts }\n\t\t\t\t\t\ttitle={ iframeTitle }\n\t\t\t\t\t\ttype={ sandboxClassnames }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure className={ classnames( className, 'wp-block-embed', { 'is-type-video': 'video' === type } ) }>\n\t\t\t\t\t{ controls }\n\t\t\t\t\t{ ( cannotPreview ) ? (\n\t\t\t\t\t\t<Placeholder icon={ <BlockIcon icon={ icon } showColors /> } label={ label }>\n\t\t\t\t\t\t\t<p className=\"components-placeholder__error\"><a href={ url }>{ url }</a></p>\n\t\t\t\t\t\t\t<p className=\"components-placeholder__error\">{ __( 'Previews for this are unavailable in the editor, sorry!' ) }</p>\n\t\t\t\t\t\t</Placeholder>\n\t\t\t\t\t) : embedWrapper }\n\t\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t}\n\t};\n}\n\nconst embedAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t},\n\tcaption: {\n\t\tsource: 'html',\n\t\tselector: 'figcaption',\n\t},\n\ttype: {\n\t\ttype: 'string',\n\t},\n\tproviderNameSlug: {\n\t\ttype: 'string',\n\t},\n\tallowResponsive: {\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t},\n};\n\nfunction getEmbedBlockSettings( { title, description, icon, category = 'embed', transforms, keywords = [], supports = {} } ) {\n\t// translators: %s: Name of service (e.g. VideoPress, YouTube)\n\tconst blockDescription = description || sprintf( __( 'Add a block that displays content pulled from other sites, like Twitter, Instagram or YouTube.' ), title );\n\treturn {\n\t\ttitle,\n\t\tdescription: blockDescription,\n\t\ticon,\n\t\tcategory,\n\t\tkeywords,\n\t\tattributes: embedAttributes,\n\n\t\tsupports: {\n\t\t\talign: true,\n\t\t\t...supports,\n\t\t},\n\n\t\ttransforms,\n\n\t\tedit: compose(\n\t\t\twithSelect( ( select, ownProps ) => {\n\t\t\t\tconst { url } = ownProps.attributes;\n\t\t\t\tconst core = select( 'core' );\n\t\t\t\tconst { getEmbedPreview, isPreviewEmbedFallback, isRequestingEmbedPreview, getThemeSupports } = core;\n\t\t\t\tconst preview = undefined !== url && getEmbedPreview( url );\n\t\t\t\tconst previewIsFallback = undefined !== url && isPreviewEmbedFallback( url );\n\t\t\t\tconst fetching = undefined !== url && isRequestingEmbedPreview( url );\n\t\t\t\tconst themeSupports = getThemeSupports();\n\t\t\t\t// The external oEmbed provider does not exist. We got no type info and no html.\n\t\t\t\tconst badEmbedProvider = !! preview && undefined === preview.type && false === preview.html;\n\t\t\t\t// Some WordPress URLs that can't be embedded will cause the API to return\n\t\t\t\t// a valid JSON response with no HTML and `data.status` set to 404, rather\n\t\t\t\t// than generating a fallback response as other embeds do.\n\t\t\t\tconst wordpressCantEmbed = !! preview && preview.data && preview.data.status === 404;\n\t\t\t\tconst validPreview = !! preview && ! badEmbedProvider && ! wordpressCantEmbed;\n\t\t\t\tconst cannotEmbed = undefined !== url && ( ! validPreview || previewIsFallback );\n\t\t\t\treturn {\n\t\t\t\t\tpreview: validPreview ? preview : undefined,\n\t\t\t\t\tfetching,\n\t\t\t\t\tsupportsResponsive: themeSupports[ 'responsive-embeds' ],\n\t\t\t\t\tcannotEmbed,\n\t\t\t\t};\n\t\t\t} )\n\t\t)( getEmbedEdit( title, icon ) ),\n\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, caption, type, providerNameSlug } = attributes;\n\n\t\t\tif ( ! url ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst embedClassName = classnames( 'wp-block-embed', {\n\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<figure className={ embedClassName }>\n\t\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\n\t\tdeprecated: [\n\t\t\t{\n\t\t\t\tattributes: embedAttributes,\n\t\t\t\tsave( { attributes } ) {\n\t\t\t\t\tconst { url, caption, type, providerNameSlug } = attributes;\n\n\t\t\t\t\tif ( ! url ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst embedClassName = classnames( 'wp-block-embed', {\n\t\t\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<figure className={ embedClassName }>\n\t\t\t\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t\t\t</figure>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n}\n\nexport const name = 'core/embed';\nconst embedContentIcon = <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"M19,4H5C3.89,4,3,4.9,3,6v12c0,1.1,0.89,2,2,2h14c1.1,0,2-0.9,2-2V6C21,4.9,20.11,4,19,4z M19,18H5V8h14V18z\" /></svg>;\nconst embedAudioIcon = <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M21 3H3L1 5v14l2 2h18l2-2V5l-2-2zm0 16H3V5h18v14zM8 15a3 3 0 0 1 4-3V6h5v2h-3v7a3 3 0 0 1-6 0z\" /></svg>;\nconst embedPhotoIcon = <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"M21,4H3C1.9,4,1,4.9,1,6v12c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V6C23,4.9,22.1,4,21,4z M21,18H3V6h18V18z\" /><polygon points=\"14.5 11 11 15.51 8.5 12.5 5 17 19 17\" /></svg>;\nconst embedVideoIcon = <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"m10 8v8l5-4-5-4zm9-5h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2zm0 16h-14v-14h14v14z\" /></svg>;\n\nexport const settings = getEmbedBlockSettings( {\n\ttitle: __( 'Embed' ),\n\tdescription: __( 'The Embed block allows you to easily add videos, images, tweets, audio, and other content to your post or page.' ),\n\ticon: embedContentIcon,\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => node.nodeName === 'P' && /^\\s*(https?:\\/\\/\\S+)\\s*$/i.test( node.textContent ),\n\t\t\t\ttransform: ( node ) => {\n\t\t\t\t\treturn createBlock( 'core/embed', {\n\t\t\t\t\t\turl: node.textContent.trim(),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n} );\n\nexport const common = [\n\t{\n\t\tname: 'core-embed/twitter',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Twitter',\n\t\t\ticon: {\n\t\t\t\tforeground: '#1da1f2',\n\t\t\t\tsrc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g><path d=\"M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z\"></path></g></svg>,\n\t\t\t},\n\t\t\tkeywords: [ 'tweet' ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?twitter\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/youtube',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'YouTube',\n\t\t\ticon: {\n\t\t\t\tforeground: '#ff0000',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><path d=\"M21.8 8s-.195-1.377-.795-1.984c-.76-.797-1.613-.8-2.004-.847-2.798-.203-6.996-.203-6.996-.203h-.01s-4.197 0-6.996.202c-.39.046-1.242.05-2.003.846C2.395 6.623 2.2 8 2.2 8S2 9.62 2 11.24v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.76.797 1.76.77 2.205.855 1.6.153 6.8.2 6.8.2s4.203-.005 7-.208c.392-.047 1.244-.05 2.005-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517C22 9.62 21.8 8 21.8 8zM9.935 14.595v-5.62l5.403 2.82-5.403 2.8z\" /></svg>,\n\t\t\t},\n\t\t\tkeywords: [ __( 'music' ), __( 'video' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/((m|www)\\.)?youtube\\.com\\/.+/i, /^https?:\\/\\/youtu\\.be\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/facebook',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Facebook',\n\t\t\ticon: {\n\t\t\t\tforeground: '#3b5998',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><path d=\"M20 3H4c-.6 0-1 .4-1 1v16c0 .5.4 1 1 1h8.6v-7h-2.3v-2.7h2.3v-2c0-2.3 1.4-3.6 3.5-3.6 1 0 1.8.1 2.1.1v2.4h-1.4c-1.1 0-1.3.5-1.3 1.3v1.7h2.7l-.4 2.8h-2.3v7H20c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1z\" /></svg>,\n\t\t\t},\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/www\\.facebook.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/instagram',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Instagram',\n\t\t\ticon: <svg viewBox=\"0 0 24 24\"><g><path d=\"M12 4.622c2.403 0 2.688.01 3.637.052.877.04 1.354.187 1.67.31.42.163.72.358 1.036.673.315.315.51.615.673 1.035.123.317.27.794.31 1.67.043.95.052 1.235.052 3.638s-.01 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.67-.163.42-.358.72-.673 1.036-.315.315-.615.51-1.035.673-.317.123-.794.27-1.67.31-.95.043-1.234.052-3.638.052s-2.688-.01-3.637-.052c-.877-.04-1.354-.187-1.67-.31-.42-.163-.72-.358-1.036-.673-.315-.315-.51-.615-.673-1.035-.123-.317-.27-.794-.31-1.67-.043-.95-.052-1.235-.052-3.638s.01-2.688.052-3.637c.04-.877.187-1.354.31-1.67.163-.42.358-.72.673-1.036.315-.315.615-.51 1.035-.673.317-.123.794-.27 1.67-.31.95-.043 1.235-.052 3.638-.052M12 3c-2.444 0-2.75.01-3.71.054s-1.613.196-2.185.418c-.592.23-1.094.538-1.594 1.04-.5.5-.807 1-1.037 1.593-.223.572-.375 1.226-.42 2.184C3.01 9.25 3 9.555 3 12s.01 2.75.054 3.71.196 1.613.418 2.186c.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.266.054 3.71.054s2.75-.01 3.71-.054 1.613-.196 2.186-.418c.592-.23 1.094-.538 1.594-1.038s.808-1.002 1.038-1.594c.222-.572.375-1.227.418-2.185.044-.96.054-1.266.054-3.71s-.01-2.75-.054-3.71-.196-1.613-.418-2.186c-.23-.592-.538-1.094-1.038-1.594s-1.002-.808-1.594-1.038c-.572-.222-1.227-.375-2.185-.418C14.75 3.01 14.445 3 12 3zm0 4.378c-2.552 0-4.622 2.07-4.622 4.622s2.07 4.622 4.622 4.622 4.622-2.07 4.622-4.622S14.552 7.378 12 7.378zM12 15c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.804-8.884c-.596 0-1.08.484-1.08 1.08s.484 1.08 1.08 1.08c.596 0 1.08-.484 1.08-1.08s-.483-1.08-1.08-1.08z\"></path></g></svg>,\n\t\t\tkeywords: [ __( 'image' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?instagr(\\.am|am\\.com)\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/wordpress',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'WordPress',\n\t\t\ticon: {\n\t\t\t\tforeground: '#0073AA',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><g><path d=\"M12.158 12.786l-2.698 7.84c.806.236 1.657.365 2.54.365 1.047 0 2.05-.18 2.986-.51-.024-.037-.046-.078-.065-.123l-2.762-7.57zM3.008 12c0 3.56 2.07 6.634 5.068 8.092L3.788 8.342c-.5 1.117-.78 2.354-.78 3.658zm15.06-.454c0-1.112-.398-1.88-.74-2.48-.456-.74-.883-1.368-.883-2.11 0-.825.627-1.595 1.51-1.595.04 0 .078.006.116.008-1.598-1.464-3.73-2.36-6.07-2.36-3.14 0-5.904 1.613-7.512 4.053.21.008.41.012.58.012.94 0 2.395-.114 2.395-.114.484-.028.54.684.057.74 0 0-.487.058-1.03.086l3.275 9.74 1.968-5.902-1.4-3.838c-.485-.028-.944-.085-.944-.085-.486-.03-.43-.77.056-.742 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.486-.028.543.684.058.74 0 0-.488.058-1.03.086l3.25 9.665.897-2.997c.456-1.17.684-2.137.684-2.907zm1.82-3.86c.04.286.06.593.06.924 0 .912-.17 1.938-.683 3.22l-2.746 7.94c2.672-1.558 4.47-4.454 4.47-7.77 0-1.564-.4-3.033-1.1-4.314zM12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z\"></path></g></svg>,\n\t\t\t},\n\t\t\tkeywords: [ __( 'post' ), __( 'blog' ) ],\n\t\t} ),\n\t},\n\t{\n\t\tname: 'core-embed/soundcloud',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'SoundCloud',\n\t\t\ticon: embedAudioIcon,\n\t\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?soundcloud\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/spotify',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Spotify',\n\t\t\ticon: {\n\t\t\t\tforeground: '#1db954',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><path d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424c-.18.295-.563.387-.857.207-2.35-1.434-5.305-1.76-8.786-.963-.335.077-.67-.133-.746-.47-.077-.334.132-.67.47-.745 3.808-.87 7.076-.496 9.712 1.115.293.18.386.563.206.857M17.81 13.7c-.226.367-.706.482-1.072.257-2.687-1.652-6.785-2.13-9.965-1.166-.413.127-.848-.106-.973-.517-.125-.413.108-.848.52-.973 3.632-1.102 8.147-.568 11.234 1.328.366.226.48.707.256 1.072m.105-2.835C14.692 8.95 9.375 8.775 6.297 9.71c-.493.15-1.016-.13-1.166-.624-.148-.495.13-1.017.625-1.167 3.532-1.073 9.404-.866 13.115 1.337.445.264.59.838.327 1.282-.264.443-.838.59-1.282.325\" /></svg>,\n\t\t\t},\n\t\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(open|play)\\.spotify\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/flickr',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Flickr',\n\t\t\ticon: <svg viewBox=\"0 0 24 24\"><path d=\"m6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5zm11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5z\" /></svg>,\n\t\t\tkeywords: [ __( 'image' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?flickr\\.com\\/.+/i, /^https?:\\/\\/flic\\.kr\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/vimeo',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Vimeo',\n\t\t\ticon: {\n\t\t\t\tforeground: '#1ab7ea',\n\t\t\t\tsrc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g><path d=\"M22.396 7.164c-.093 2.026-1.507 4.8-4.245 8.32C15.323 19.16 12.93 21 10.97 21c-1.214 0-2.24-1.12-3.08-3.36-.56-2.052-1.118-4.105-1.68-6.158-.622-2.24-1.29-3.36-2.004-3.36-.156 0-.7.328-1.634.98l-.978-1.26c1.027-.903 2.04-1.806 3.037-2.71C6 3.95 7.03 3.328 7.716 3.265c1.62-.156 2.616.95 2.99 3.32.404 2.558.685 4.148.84 4.77.468 2.12.982 3.18 1.543 3.18.435 0 1.09-.687 1.963-2.064.872-1.376 1.34-2.422 1.402-3.142.125-1.187-.343-1.782-1.4-1.782-.5 0-1.013.115-1.542.34 1.023-3.35 2.977-4.976 5.862-4.883 2.14.063 3.148 1.45 3.024 4.16z\"></path></g></svg>,\n\t\t\t},\n\t\t\tkeywords: [ __( 'video' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?vimeo\\.com\\/.+/i ],\n\t},\n];\n\nexport const others = [\n\t{\n\t\tname: 'core-embed/animoto',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Animoto',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?(animoto|video214)\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/cloudup',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Cloudup',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/cloudup\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/collegehumor',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'CollegeHumor',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?collegehumor\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/dailymotion',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Dailymotion',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?dailymotion\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/funnyordie',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Funny or Die',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?funnyordie\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/hulu',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Hulu',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?hulu\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/imgur',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Imgur',\n\t\t\ticon: embedPhotoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(.+\\.)?imgur\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/issuu',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Issuu',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?issuu\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/kickstarter',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Kickstarter',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?kickstarter\\.com\\/.+/i, /^https?:\\/\\/kck\\.st\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/meetup-com',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Meetup.com',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?meetu(\\.ps|p\\.com)\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/mixcloud',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Mixcloud',\n\t\t\ticon: embedAudioIcon,\n\t\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?mixcloud\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/photobucket',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Photobucket',\n\t\t\ticon: embedPhotoIcon,\n\t\t} ),\n\t\tpatterns: [ /^http:\\/\\/g?i*\\.photobucket\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/polldaddy',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Polldaddy',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?polldaddy\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/reddit',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Reddit',\n\t\t\ticon: <svg viewBox=\"0 0 24 24\"><path d=\"M22 11.816c0-1.256-1.02-2.277-2.277-2.277-.593 0-1.122.24-1.526.613-1.48-.965-3.455-1.594-5.647-1.69l1.17-3.702 3.18.75c.01 1.027.847 1.86 1.877 1.86 1.035 0 1.877-.84 1.877-1.877 0-1.035-.842-1.877-1.877-1.877-.77 0-1.43.466-1.72 1.13L13.55 3.92c-.204-.047-.4.067-.46.26l-1.35 4.27c-2.317.037-4.412.67-5.97 1.67-.402-.355-.917-.58-1.493-.58C3.02 9.54 2 10.56 2 11.815c0 .814.433 1.523 1.078 1.925-.037.222-.06.445-.06.673 0 3.292 4.01 5.97 8.94 5.97s8.94-2.678 8.94-5.97c0-.214-.02-.424-.052-.632.687-.39 1.154-1.12 1.154-1.964zm-3.224-7.422c.606 0 1.1.493 1.1 1.1s-.493 1.1-1.1 1.1-1.1-.494-1.1-1.1.493-1.1 1.1-1.1zm-16 7.422c0-.827.673-1.5 1.5-1.5.313 0 .598.103.838.27-.85.675-1.477 1.478-1.812 2.36-.32-.274-.525-.676-.525-1.13zm9.183 7.79c-4.502 0-8.165-2.33-8.165-5.193S7.457 9.22 11.96 9.22s8.163 2.33 8.163 5.193-3.663 5.193-8.164 5.193zM20.635 13c-.326-.89-.948-1.7-1.797-2.383.247-.186.55-.3.882-.3.827 0 1.5.672 1.5 1.5 0 .482-.23.91-.586 1.184zm-11.64 1.704c-.76 0-1.397-.616-1.397-1.376 0-.76.636-1.397 1.396-1.397.76 0 1.376.638 1.376 1.398 0 .76-.616 1.376-1.376 1.376zm7.405-1.376c0 .76-.615 1.376-1.375 1.376s-1.4-.616-1.4-1.376c0-.76.64-1.397 1.4-1.397.76 0 1.376.638 1.376 1.398zm-1.17 3.38c.15.152.15.398 0 .55-.675.674-1.728 1.002-3.22 1.002l-.01-.002-.012.002c-1.492 0-2.544-.328-3.218-1.002-.152-.152-.152-.398 0-.55.152-.152.4-.15.55 0 .52.52 1.394.775 2.67.775l.01.002.01-.002c1.276 0 2.15-.253 2.67-.775.15-.152.398-.152.55 0z\" /></svg>,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?reddit\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/reverbnation',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'ReverbNation',\n\t\t\ticon: embedAudioIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?reverbnation\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/screencast',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Screencast',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?screencast\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/scribd',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Scribd',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?scribd\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/slideshare',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Slideshare',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(.+?\\.)?slideshare\\.net\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/smugmug',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'SmugMug',\n\t\t\ticon: embedPhotoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?smugmug\\.com\\/.+/i ],\n\t},\n\t{\n\t\t// Deprecated in favour of the core-embed/speaker-deck block.\n\t\tname: 'core-embed/speaker',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Speaker',\n\t\t\ticon: embedAudioIcon,\n\t\t\tsupports: {\n\t\t\t\tinserter: false,\n\t\t\t},\n\t\t} ),\n\t\tpatterns: [],\n\t},\n\t{\n\t\tname: 'core-embed/speaker-deck',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Speaker Deck',\n\t\t\ticon: embedContentIcon,\n\t\t\ttransform: [ {\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core-embed/speaker' ],\n\t\t\t\ttransform: ( content ) => {\n\t\t\t\t\treturn createBlock( 'core-embed/speaker-deck', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?speakerdeck\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/ted',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'TED',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.|embed\\.)?ted\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/tumblr',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Tumblr',\n\t\t\ticon: {\n\t\t\t\tforeground: '#35465c',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><path d=\"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-5.57 14.265c-2.445.042-3.37-1.742-3.37-2.998V10.6H8.922V9.15c1.703-.615 2.113-2.15 2.21-3.026.006-.06.053-.084.08-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.13 1.08 1.107.3-.008.698-.094.907-.194l.54 1.6c-.205.297-1.12.642-1.946.657z\" /></svg>,\n\t\t\t},\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?tumblr\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/videopress',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'VideoPress',\n\t\t\ticon: embedVideoIcon,\n\t\t\tkeywords: [ __( 'video' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/videopress\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/wordpress-tv',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'WordPress.tv',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/wordpress\\.tv\\/.+/i ],\n\t},\n];\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, revokeBlobURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tClipboardButton,\n\tIconButton,\n\tToolbar,\n\twithNotices,\n} from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport { Component, Fragment } from '@wordpress/element';\nimport {\n\tMediaUpload,\n\tMediaPlaceholder,\n\tBlockControls,\n\tRichText,\n\tmediaUpload,\n} from '@wordpress/editor';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport FileBlockInspector from './inspector';\n\nclass FileEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectFile = this.onSelectFile.bind( this );\n\t\tthis.confirmCopyURL = this.confirmCopyURL.bind( this );\n\t\tthis.resetCopyConfirmation = this.resetCopyConfirmation.bind( this );\n\t\tthis.changeLinkDestinationOption = this.changeLinkDestinationOption.bind( this );\n\t\tthis.changeOpenInNewWindow = this.changeOpenInNewWindow.bind( this );\n\t\tthis.changeShowDownloadButton = this.changeShowDownloadButton.bind( this );\n\n\t\tthis.state = {\n\t\t\thasError: false,\n\t\t\tshowCopyConfirmation: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, noticeOperations } = this.props;\n\t\tconst { href } = attributes;\n\n\t\t// Upload a file drag-and-dropped into the editor\n\t\tif ( isBlobURL( href ) ) {\n\t\t\tconst file = getBlobByURL( href );\n\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList: [ file ],\n\t\t\t\tonFileChange: ( [ media ] ) => this.onSelectFile( media ),\n\t\t\t\tonError: ( message ) => {\n\t\t\t\t\tthis.setState( { hasError: true } );\n\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\trevokeBlobURL( href );\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Reset copy confirmation state when block is deselected\n\t\tif ( prevProps.isSelected && ! this.props.isSelected ) {\n\t\t\tthis.setState( { showCopyConfirmation: false } );\n\t\t}\n\t}\n\n\tonSelectFile( media ) {\n\t\tif ( media && media.url ) {\n\t\t\tthis.setState( { hasError: false } );\n\t\t\tthis.props.setAttributes( {\n\t\t\t\thref: media.url,\n\t\t\t\tfileName: media.title,\n\t\t\t\ttextLinkHref: media.url,\n\t\t\t\tid: media.id,\n\t\t\t} );\n\t\t}\n\t}\n\n\tconfirmCopyURL() {\n\t\tthis.setState( { showCopyConfirmation: true } );\n\t}\n\n\tresetCopyConfirmation() {\n\t\tthis.setState( { showCopyConfirmation: false } );\n\t}\n\n\tchangeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library)\n\t\tthis.props.setAttributes( { textLinkHref: newHref } );\n\t}\n\n\tchangeOpenInNewWindow( newValue ) {\n\t\tthis.props.setAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tchangeShowDownloadButton( newValue ) {\n\t\tthis.props.setAttributes( { showDownloadButton: newValue } );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tisSelected,\n\t\t\tattributes,\n\t\t\tsetAttributes,\n\t\t\tnoticeUI,\n\t\t\tnoticeOperations,\n\t\t\tmedia,\n\t\t} = this.props;\n\t\tconst {\n\t\t\tfileName,\n\t\t\thref,\n\t\t\ttextLinkHref,\n\t\t\ttextLinkTarget,\n\t\t\tshowDownloadButton,\n\t\t\tdownloadButtonText,\n\t\t\tid,\n\t\t} = attributes;\n\t\tconst { hasError, showCopyConfirmation } = this.state;\n\t\tconst attachmentPage = media && media.link;\n\n\t\tif ( ! href || hasError ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon=\"media-default\"\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tname: __( 'a file' ),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tconst classes = classnames( className, {\n\t\t\t'is-transient': isBlobURL( href ),\n\t\t} );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<FileBlockInspector\n\t\t\t\t\threfs={ { href, textLinkHref, attachmentPage } }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\topenInNewWindow: !! textLinkTarget,\n\t\t\t\t\t\tshowDownloadButton,\n\t\t\t\t\t\tchangeLinkDestinationOption: this.changeLinkDestinationOption,\n\t\t\t\t\t\tchangeOpenInNewWindow: this.changeOpenInNewWindow,\n\t\t\t\t\t\tchangeShowDownloadButton: this.changeShowDownloadButton,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Edit file' ) }\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div className={ classes }>\n\t\t\t\t\t<div className={ `${ className }__content-wrapper` }>\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\twrapperClassName={ `${ className }__textlink` }\n\t\t\t\t\t\t\ttagName=\"div\" // must be block-level or else cursor disappears\n\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write file name…' ) }\n\t\t\t\t\t\t\tkeepPlaceholderOnFocus\n\t\t\t\t\t\t\tformattingControls={ [] } // disable controls\n\t\t\t\t\t\t\tonChange={ ( text ) => setAttributes( { fileName: text } ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t\t\t<div className={ `${ className }__button-richtext-wrapper` }>\n\t\t\t\t\t\t\t\t{ /* Using RichText here instead of PlainText so that it can be styled like a button */ }\n\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\ttagName=\"div\" // must be block-level or else cursor disappears\n\t\t\t\t\t\t\t\t\tclassName={ `${ className }__button` }\n\t\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\t\tformattingControls={ [] } // disable controls\n\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Add text…' ) }\n\t\t\t\t\t\t\t\t\tkeepPlaceholderOnFocus\n\t\t\t\t\t\t\t\t\tonChange={ ( text ) => setAttributes( { downloadButtonText: text } ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t<ClipboardButton\n\t\t\t\t\t\t\tisDefault\n\t\t\t\t\t\t\ttext={ href }\n\t\t\t\t\t\t\tclassName={ `${ className }__copy-url-button` }\n\t\t\t\t\t\t\tonCopy={ this.confirmCopyURL }\n\t\t\t\t\t\t\tonFinishCopy={ this.resetCopyConfirmation }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ showCopyConfirmation ? __( 'Copied!' ) : __( 'Copy URL' ) }\n\t\t\t\t\t\t</ClipboardButton>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { getMedia } = select( 'core' );\n\t\tconst { id } = props.attributes;\n\t\treturn {\n\t\t\tmedia: id === undefined ? undefined : getMedia( id ),\n\t\t};\n\t} ),\n\twithNotices,\n] )( FileEdit );\n","/**\n * External dependencies\n */\nimport { includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\nimport { select } from '@wordpress/data';\nimport { RichText } from '@wordpress/editor';\nimport { create, getTextContent } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/file';\n\nexport const settings = {\n\ttitle: __( 'File' ),\n\n\tdescription: __( 'Add a link to a file that visitors can download.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M9 6l2 2h9v10H4V6h5m1-2H4L2 6v12l2 2h16l2-2V8l-2-2h-8l-2-2z\" /></svg>,\n\n\tcategory: 'common',\n\n\tkeywords: [ __( 'document' ), __( 'pdf' ) ],\n\n\tattributes: {\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tfileName: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'a:not([download])',\n\t\t},\n\t\t// Differs to the href when the block is configured to link to the attachment page\n\t\ttextLinkHref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'href',\n\t\t},\n\t\t// e.g. `_blank` when the block is configured to open in a new tab\n\t\ttextLinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'target',\n\t\t},\n\t\tshowDownloadButton: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tdownloadButtonText: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'a[download]',\n\t\t\tdefault: __( 'Download' ),\n\t\t},\n\t},\n\n\tsupports: {\n\t\talign: true,\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch: ( files ) => files.length === 1,\n\t\t\t\t// We define a lower priorty (higher number) than the default of 10. This\n\t\t\t\t// ensures that the File block is only created as a fallback.\n\t\t\t\tpriority: 15,\n\t\t\t\ttransform: ( files ) => {\n\t\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t\tconst blobURL = createBlobURL( file );\n\n\t\t\t\t\t// File will be uploaded in componentDidMount()\n\t\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\t\thref: blobURL,\n\t\t\t\t\t\tfileName: file.name,\n\t\t\t\t\t\ttextLinkHref: blobURL,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/audio' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\t\thref: attributes.src,\n\t\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\t\ttextLinkHref: attributes.src,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/video' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\t\thref: attributes.src,\n\t\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\t\ttextLinkHref: attributes.src,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\t\thref: attributes.url,\n\t\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\t\ttextLinkHref: attributes.url,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/audio' ],\n\t\t\t\tisMatch: ( { id } ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst { getMedia } = select( 'core' );\n\t\t\t\t\tconst media = getMedia( id );\n\t\t\t\t\treturn !! media && includes( media.mime_type, 'audio' );\n\t\t\t\t},\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/audio', {\n\t\t\t\t\t\tsrc: attributes.href,\n\t\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/video' ],\n\t\t\t\tisMatch: ( { id } ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst { getMedia } = select( 'core' );\n\t\t\t\t\tconst media = getMedia( id );\n\t\t\t\t\treturn !! media && includes( media.mime_type, 'video' );\n\t\t\t\t},\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/video', {\n\t\t\t\t\t\tsrc: attributes.href,\n\t\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\tisMatch: ( { id } ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst { getMedia } = select( 'core' );\n\t\t\t\t\tconst media = getMedia( id );\n\t\t\t\t\treturn !! media && includes( media.mime_type, 'image' );\n\t\t\t\t},\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\t\turl: attributes.href,\n\t\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\thref,\n\t\t\tfileName,\n\t\t\ttextLinkHref,\n\t\t\ttextLinkTarget,\n\t\t\tshowDownloadButton,\n\t\t\tdownloadButtonText,\n\t\t} = attributes;\n\n\t\treturn ( href &&\n\t\t\t<div>\n\t\t\t\t{ ! RichText.isEmpty( fileName ) &&\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\trel={ textLinkTarget ? 'noreferrer noopener' : false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t}\n\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\tclassName=\"wp-block-file__button\"\n\t\t\t\t\t\t// ensure download attribute is still set when fileName\n\t\t\t\t\t\t// is undefined. Using '' here as `true` still leaves\n\t\t\t\t\t\t// the attribute unset.\n\t\t\t\t\t\tdownload={ getTextContent( create( { html: fileName } ) ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t}\n\t\t\t</div>\n\t\t);\n\t},\n\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { InspectorControls } from '@wordpress/editor';\n\nfunction getDownloadButtonHelp( checked ) {\n\treturn checked ? __( 'The download button is visible.' ) : __( 'The download button is hidden.' );\n}\n\nexport default function FileBlockInspector( {\n\threfs,\n\topenInNewWindow,\n\tshowDownloadButton,\n\tchangeLinkDestinationOption,\n\tchangeOpenInNewWindow,\n\tchangeShowDownloadButton,\n} ) {\n\tconst { href, textLinkHref, attachmentPage } = hrefs;\n\n\tlet linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];\n\tif ( attachmentPage ) {\n\t\tlinkDestinationOptions = [\n\t\t\t{ value: href, label: __( 'Media File' ) },\n\t\t\t{ value: attachmentPage, label: __( 'Attachment Page' ) },\n\t\t];\n\t}\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Text Link Settings' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link To' ) }\n\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\tonChange={ changeLinkDestinationOption }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Open in New Tab' ) }\n\t\t\t\t\t\tchecked={ openInNewWindow }\n\t\t\t\t\t\tonChange={ changeOpenInNewWindow }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelBody title={ __( 'Download Button Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show Download Button' ) }\n\t\t\t\t\t\thelp={ getDownloadButtonHelp }\n\t\t\t\t\t\tchecked={ showDownloadButton }\n\t\t\t\t\t\tonChange={ changeShowDownloadButton }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</Fragment>\n\t);\n}\n","/**\n * External Dependencies\n */\nimport { filter, pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tIconButton,\n\tDropZone,\n\tFormFileUpload,\n\tPanelBody,\n\tRangeControl,\n\tSelectControl,\n\tToggleControl,\n\tToolbar,\n\twithNotices,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tMediaUpload,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tmediaUpload,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport GalleryImage from './gallery-image';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: 'attachment', label: __( 'Attachment Page' ) },\n\t{ value: 'media', label: __( 'Media File' ) },\n\t{ value: 'none', label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nexport function defaultColumnsNumber( attributes ) {\n\treturn Math.min( 3, attributes.images.length );\n}\n\nexport const pickRelevantMediaFiles = ( image ) => {\n\treturn pick( image, [ 'alt', 'id', 'link', 'url', 'caption' ] );\n};\n\nclass GalleryEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onSelectImages = this.onSelectImages.bind( this );\n\t\tthis.setLinkTo = this.setLinkTo.bind( this );\n\t\tthis.setColumnsNumber = this.setColumnsNumber.bind( this );\n\t\tthis.toggleImageCrop = this.toggleImageCrop.bind( this );\n\t\tthis.onRemoveImage = this.onRemoveImage.bind( this );\n\t\tthis.setImageAttributes = this.setImageAttributes.bind( this );\n\t\tthis.addFiles = this.addFiles.bind( this );\n\t\tthis.uploadFromFiles = this.uploadFromFiles.bind( this );\n\n\t\tthis.state = {\n\t\t\tselectedImage: null,\n\t\t};\n\t}\n\n\tonSelectImage( index ) {\n\t\treturn () => {\n\t\t\tif ( this.state.selectedImage !== index ) {\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedImage: index,\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t}\n\n\tonRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst images = filter( this.props.attributes.images, ( img, i ) => index !== i );\n\t\t\tconst { columns } = this.props.attributes;\n\t\t\tthis.setState( { selectedImage: null } );\n\t\t\tthis.props.setAttributes( {\n\t\t\t\timages,\n\t\t\t\tcolumns: columns ? Math.min( images.length, columns ) : columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tonSelectImages( images ) {\n\t\tthis.props.setAttributes( {\n\t\t\timages: images.map( ( image ) => pickRelevantMediaFiles( image ) ),\n\t\t} );\n\t}\n\n\tsetLinkTo( value ) {\n\t\tthis.props.setAttributes( { linkTo: value } );\n\t}\n\n\tsetColumnsNumber( value ) {\n\t\tthis.props.setAttributes( { columns: value } );\n\t}\n\n\ttoggleImageCrop() {\n\t\tthis.props.setAttributes( { imageCrop: ! this.props.attributes.imageCrop } );\n\t}\n\n\tgetImageCropHelp( checked ) {\n\t\treturn checked ? __( 'Thumbnails are cropped to align.' ) : __( 'Thumbnails are not cropped.' );\n\t}\n\n\tsetImageAttributes( index, attributes ) {\n\t\tconst { attributes: { images }, setAttributes } = this.props;\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...attributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tuploadFromFiles( event ) {\n\t\tthis.addFiles( event.target.files );\n\t}\n\n\taddFiles( files ) {\n\t\tconst currentImages = this.props.attributes.images || [];\n\t\tconst { noticeOperations, setAttributes } = this.props;\n\t\tmediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( images ) => {\n\t\t\t\tconst imagesNormalized = images.map( ( image ) => pickRelevantMediaFiles( image ) );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\timages: currentImages.concat( imagesNormalized ),\n\t\t\t\t} );\n\t\t\t},\n\t\t\tonError: noticeOperations.createErrorNotice,\n\t\t} );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Deselect images when deselecting the block\n\t\tif ( ! this.props.isSelected && prevProps.isSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tselectedImage: null,\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { attributes, isSelected, className, noticeOperations, noticeUI } = this.props;\n\t\tconst { images, columns = defaultColumnsNumber( attributes ), align, imageCrop, linkTo } = attributes;\n\n\t\tconst dropZone = (\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ this.addFiles }\n\t\t\t/>\n\t\t);\n\n\t\tconst controls = (\n\t\t\t<BlockControls>\n\t\t\t\t{ !! images.length && (\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tonSelect={ this.onSelectImages }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\tgallery\n\t\t\t\t\t\t\tvalue={ images.map( ( img ) => img.id ) }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Edit Gallery' ) }\n\t\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t);\n\n\t\tif ( images.length === 0 ) {\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{ controls }\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\ticon=\"format-gallery\"\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\t\t\t\tname: __( 'images' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonSelect={ this.onSelectImages }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t\t/>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ controls }\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Gallery Settings' ) }>\n\t\t\t\t\t\t{ images.length > 1 && <RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ this.setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t/> }\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Crop Images' ) }\n\t\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\t\tonChange={ this.toggleImageCrop }\n\t\t\t\t\t\t\thelp={ this.getImageCropHelp }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Link To' ) }\n\t\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\t\tonChange={ this.setLinkTo }\n\t\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ noticeUI }\n\t\t\t\t<ul className={ `${ className } align${ align } columns-${ columns } ${ imageCrop ? 'is-cropped' : '' }` }>\n\t\t\t\t\t{ dropZone }\n\t\t\t\t\t{ images.map( ( img, index ) => (\n\t\t\t\t\t\t<li className=\"blocks-gallery-item\" key={ img.id || img.url }>\n\t\t\t\t\t\t\t<GalleryImage\n\t\t\t\t\t\t\t\turl={ img.url }\n\t\t\t\t\t\t\t\talt={ img.alt }\n\t\t\t\t\t\t\t\tid={ img.id }\n\t\t\t\t\t\t\t\tisSelected={ isSelected && this.state.selectedImage === index }\n\t\t\t\t\t\t\t\tonRemove={ this.onRemoveImage( index ) }\n\t\t\t\t\t\t\t\tonSelect={ this.onSelectImage( index ) }\n\t\t\t\t\t\t\t\tsetAttributes={ ( attrs ) => this.setImageAttributes( index, attrs ) }\n\t\t\t\t\t\t\t\tcaption={ img.caption }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t<li className=\"blocks-gallery-item has-add-item-button\">\n\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\tisLarge\n\t\t\t\t\t\t\t\tclassName=\"block-library-gallery-add-item-button\"\n\t\t\t\t\t\t\t\tonChange={ this.uploadFromFiles }\n\t\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\t\ticon=\"insert\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload an image' ) }\n\t\t\t\t\t\t\t</FormFileUpload>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t}\n\t\t\t\t</ul>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withNotices( GalleryEdit );\n","/**\n * External Dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress Dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { IconButton, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { withSelect } from '@wordpress/data';\nimport { RichText } from '@wordpress/editor';\nimport { isBlobURL } from '@wordpress/blob';\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onImageClick = this.onImageClick.bind( this );\n\t\tthis.onSelectCaption = this.onSelectCaption.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\n\t\tthis.state = {\n\t\t\tcaptionSelected: false,\n\t\t};\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\tonSelectCaption() {\n\t\tif ( ! this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonImageClick() {\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\n\t\tif ( this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tif (\n\t\t\tthis.container === document.activeElement &&\n\t\t\tthis.props.isSelected && [ BACKSPACE, DELETE ].indexOf( event.keyCode ) !== -1\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tthis.props.onRemove();\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { isSelected, image, url } = this.props;\n\t\tif ( image && ! url ) {\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\n\t\t// unselect the caption so when the user selects other image and comeback\n\t\t// the caption is not immediately selected\n\t\tif ( this.state.captionSelected && ! isSelected && prevProps.isSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { url, alt, id, linkTo, link, isSelected, caption, onRemove, setAttributes } = this.props;\n\n\t\tlet href;\n\n\t\tswitch ( linkTo ) {\n\t\t\tcase 'media':\n\t\t\t\thref = url;\n\t\t\t\tbreak;\n\t\t\tcase 'attachment':\n\t\t\t\thref = link;\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// Disable reason: Image itself is not meant to be\n\t\t// interactive, but should direct image selection and unfocus caption fields\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events\n\t\tconst img = url ? <img src={ url } alt={ alt } data-id={ id } onClick={ this.onImageClick } /> : <Spinner />;\n\n\t\tconst className = classnames( {\n\t\t\t'is-selected': isSelected,\n\t\t\t'is-transient': isBlobURL( url ),\n\t\t} );\n\n\t\t// Disable reason: Each block can be selected by clicking on it and we should keep the same saved markup\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\treturn (\n\t\t\t<figure className={ className } tabIndex=\"-1\" onKeyDown={ this.onKeyDown } ref={ this.bindContainer }>\n\t\t\t\t{ isSelected &&\n\t\t\t\t\t<div className=\"block-library-gallery-item__inline-menu\">\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\ticon=\"no-alt\"\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t\tclassName=\"blocks-gallery-item__remove\"\n\t\t\t\t\t\t\tlabel={ __( 'Remove Image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) ? (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tisSelected={ this.state.captionSelected }\n\t\t\t\t\t\tonChange={ ( newCaption ) => setAttributes( { caption: newCaption } ) }\n\t\t\t\t\t\tunstableOnFocus={ this.onSelectCaption }\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t</figure>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t}\n}\n\nexport default withSelect( ( select, ownProps ) => {\n\tconst { getMedia } = select( 'core' );\n\tconst { id } = ownProps;\n\n\treturn {\n\t\timage: id ? getMedia( id ) : null,\n\t};\n} )( GalleryImage );\n","/**\n * External dependencies\n */\nimport { filter, every } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { RichText, mediaUpload } from '@wordpress/editor';\nimport { createBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { default as edit, defaultColumnsNumber, pickRelevantMediaFiles } from './edit';\n\nconst blockAttributes = {\n\timages: {\n\t\ttype: 'array',\n\t\tdefault: [],\n\t\tsource: 'query',\n\t\tselector: 'ul.wp-block-gallery .blocks-gallery-item',\n\t\tquery: {\n\t\t\turl: {\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'src',\n\t\t\t},\n\t\t\tlink: {\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'data-link',\n\t\t\t},\n\t\t\talt: {\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'alt',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tid: {\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'data-id',\n\t\t\t},\n\t\t\tcaption: {\n\t\t\t\tsource: 'html',\n\t\t\t\tselector: 'figcaption',\n\t\t\t},\n\t\t},\n\t},\n\tcolumns: {\n\t\ttype: 'number',\n\t},\n\timageCrop: {\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t},\n\tlinkTo: {\n\t\ttype: 'string',\n\t\tdefault: 'none',\n\t},\n};\n\nexport const name = 'core/gallery';\n\nexport const settings = {\n\ttitle: __( 'Gallery' ),\n\tdescription: __( 'Display multiple images in an elegantly organized tiled layout.' ),\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M20 4v12H8V4h12m0-2H8L6 4v12l2 2h12l2-2V4l-2-2z\" /><path d=\"M12 12l1 2 3-3 3 4H9z\" /><path d=\"M2 6v14l2 2h14v-2H4V6H2z\" /></g></svg>,\n\tcategory: 'common',\n\tkeywords: [ __( 'images' ), __( 'photos' ) ],\n\tattributes: blockAttributes,\n\tsupports: {\n\t\talign: true,\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tisMultiBlock: true,\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\tconst validImages = filter( attributes, ( { id, url } ) => id && url );\n\t\t\t\t\tif ( validImages.length > 0 ) {\n\t\t\t\t\t\treturn createBlock( 'core/gallery', {\n\t\t\t\t\t\t\timages: validImages.map( ( { id, url, alt, caption } ) => ( { id, url, alt, caption } ) ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\treturn createBlock( 'core/gallery' );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'shortcode',\n\t\t\t\ttag: 'gallery',\n\t\t\t\tattributes: {\n\t\t\t\t\timages: {\n\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\t\tif ( ! ids ) {\n\t\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ids.split( ',' ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: parseInt( id, 10 ),\n\t\t\t\t\t\t\t} ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcolumns: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tshortcode: ( { named: { columns = '3' } } ) => {\n\t\t\t\t\t\t\treturn parseInt( columns, 10 );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tlinkTo: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tshortcode: ( { named: { link = 'attachment' } } ) => {\n\t\t\t\t\t\t\treturn link === 'file' ? 'media' : link;\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\t// When created by drag and dropping multiple files on an insertion point\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch( files ) {\n\t\t\t\t\treturn files.length !== 1 && every( files, ( file ) => file.type.indexOf( 'image/' ) === 0 );\n\t\t\t\t},\n\t\t\t\ttransform( files, onChange ) {\n\t\t\t\t\tconst block = createBlock( 'core/gallery', {\n\t\t\t\t\t\timages: files.map( ( file ) => pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} ) ),\n\t\t\t\t\t} );\n\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\tfilesList: files,\n\t\t\t\t\t\tonFileChange: ( images ) => {\n\t\t\t\t\t\t\tonChange( block.clientId, {\n\t\t\t\t\t\t\t\timages: images.map( ( image ) => pickRelevantMediaFiles( image ) ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t} );\n\t\t\t\t\treturn block;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\ttransform: ( { images } ) => {\n\t\t\t\t\tif ( images.length > 0 ) {\n\t\t\t\t\t\treturn images.map( ( { id, url, alt, caption } ) => createBlock( 'core/image', { id, url, alt, caption } ) );\n\t\t\t\t\t}\n\t\t\t\t\treturn createBlock( 'core/image' );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { images, columns = defaultColumnsNumber( attributes ), imageCrop, linkTo } = attributes;\n\t\treturn (\n\t\t\t<ul className={ `columns-${ columns } ${ imageCrop ? 'is-cropped' : '' }` } >\n\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\tlet href;\n\n\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\thref = image.url;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst img = <img src={ image.url } alt={ image.alt } data-id={ image.id } data-link={ image.link } className={ image.id ? `wp-image-${ image.id }` : null } />;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ image.id || image.url } className=\"blocks-gallery-item\">\n\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t\t\t\t\t{ image.caption && image.caption.length > 0 && (\n\t\t\t\t\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ image.caption } />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t);\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tattributes: blockAttributes,\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { images, columns = defaultColumnsNumber( attributes ), imageCrop, linkTo } = attributes;\n\t\t\t\treturn (\n\t\t\t\t\t<ul className={ `columns-${ columns } ${ imageCrop ? 'is-cropped' : '' }` } >\n\t\t\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\t\t\tlet href;\n\n\t\t\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\t\t\thref = image.url;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst img = <img src={ image.url } alt={ image.alt } data-id={ image.id } data-link={ image.link } />;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li key={ image.id || image.url } className=\"blocks-gallery-item\">\n\t\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t\t\t\t\t\t\t{ image.caption && image.caption.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ image.caption } />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</ul>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tattributes: {\n\t\t\t\t...blockAttributes,\n\t\t\t\timages: {\n\t\t\t\t\t...blockAttributes.images,\n\t\t\t\t\tselector: 'div.wp-block-gallery figure.blocks-gallery-image img',\n\t\t\t\t},\n\t\t\t\talign: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdefault: 'none',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { images, columns = defaultColumnsNumber( attributes ), align, imageCrop, linkTo } = attributes;\n\t\t\t\treturn (\n\t\t\t\t\t<div className={ `align${ align } columns-${ columns } ${ imageCrop ? 'is-cropped' : '' }` } >\n\t\t\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\t\t\tlet href;\n\n\t\t\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\t\t\thref = image.url;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst img = <img src={ image.url } alt={ image.alt } data-id={ image.id } />;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<figure key={ image.id || image.url } className=\"blocks-gallery-image\">\n\t\t\t\t\t\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n","/**\n * Internal dependencies\n */\nimport HeadingToolbar from './heading-toolbar';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { PanelBody } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { RichText, BlockControls, InspectorControls, AlignmentToolbar } from '@wordpress/editor';\n\nexport default function HeadingEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergeBlocks,\n\tinsertBlocksAfter,\n\tonReplace,\n\tclassName,\n} ) {\n\tconst { align, content, level, placeholder } = attributes;\n\tconst tagName = 'h' + level;\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<HeadingToolbar minLevel={ 2 } maxLevel={ 5 } selectedLevel={ level } onChange={ ( newLevel ) => setAttributes( { level: newLevel } ) } />\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Heading Settings' ) }>\n\t\t\t\t\t<p>{ __( 'Level' ) }</p>\n\t\t\t\t\t<HeadingToolbar minLevel={ 1 } maxLevel={ 7 } selectedLevel={ level } onChange={ ( newLevel ) => setAttributes( { level: newLevel } ) } />\n\t\t\t\t\t<p>{ __( 'Text Alignment' ) }</p>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<RichText\n\t\t\t\twrapperClassName=\"wp-block-heading\"\n\t\t\t\ttagName={ tagName }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( value ) => setAttributes( { content: value } ) }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonSplit={\n\t\t\t\t\tinsertBlocksAfter ?\n\t\t\t\t\t\t( before, after, ...blocks ) => {\n\t\t\t\t\t\t\tsetAttributes( { content: before } );\n\t\t\t\t\t\t\tinsertBlocksAfter( [\n\t\t\t\t\t\t\t\t...blocks,\n\t\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', { content: after } ),\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t} :\n\t\t\t\t\t\tundefined\n\t\t\t\t}\n\t\t\t\tonRemove={ () => onReplace( [] ) }\n\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\tclassName={ className }\n\t\t\t\tplaceholder={ placeholder || __( 'Write heading…' ) }\n\t\t\t/>\n\t\t</Fragment>\n\t);\n}\n","/**\n * External dependencies\n */\nimport { range } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { Toolbar } from '@wordpress/components';\n\nclass HeadingToolbar extends Component {\n\tcreateLevelControl( targetLevel, selectedLevel, onChange ) {\n\t\treturn {\n\t\t\ticon: 'heading',\n\t\t\t// translators: %s: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\ttitle: sprintf( __( 'Heading %d' ), targetLevel ),\n\t\t\tisActive: targetLevel === selectedLevel,\n\t\t\tonClick: () => onChange( targetLevel ),\n\t\t\tsubscript: String( targetLevel ),\n\t\t};\n\t}\n\n\trender() {\n\t\tconst { minLevel, maxLevel, selectedLevel, onChange } = this.props;\n\t\treturn (\n\t\t\t<Toolbar controls={ range( minLevel, maxLevel ).map( ( index ) => this.createLevelControl( index, selectedLevel, onChange ) ) } />\n\t\t);\n\t}\n}\n\nexport default HeadingToolbar;\n","/**\n * External dependencies\n */\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcreateBlock,\n\tgetPhrasingContentSchema,\n\tgetBlockAttributes,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { RichText } from '@wordpress/editor';\nimport {\n\tPath,\n\tSVG,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\n/**\n * Given a node name string for a heading node, returns its numeric level.\n *\n * @param {string} nodeName Heading node name.\n *\n * @return {number} Heading level.\n */\nexport function getLevelFromHeadingNodeName( nodeName ) {\n\treturn Number( nodeName.substr( 1 ) );\n}\n\nconst supports = {\n\tclassName: false,\n\tanchor: true,\n};\n\nconst schema = {\n\tcontent: {\n\t\tsource: 'html',\n\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t},\n\tlevel: {\n\t\ttype: 'number',\n\t\tdefault: 2,\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t},\n};\n\nexport const name = 'core/heading';\n\nexport const settings = {\n\ttitle: __( 'Heading' ),\n\n\tdescription: __( 'Introduce topics and help visitors (and search engines!) understand how your content is organized.' ),\n\n\ticon: <SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><Path d=\"M5 4v3h5.5v12h3V7H19V4z\" /><Path fill=\"none\" d=\"M0 0h24v24H0V0z\" /></SVG>,\n\n\tcategory: 'common',\n\n\tkeywords: [ __( 'title' ), __( 'subtitle' ) ],\n\n\tsupports,\n\n\tattributes: schema,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( { content } ) => {\n\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\t\tschema: {\n\t\t\t\t\th1: { children: getPhrasingContentSchema() },\n\t\t\t\t\th2: { children: getPhrasingContentSchema() },\n\t\t\t\t\th3: { children: getPhrasingContentSchema() },\n\t\t\t\t\th4: { children: getPhrasingContentSchema() },\n\t\t\t\t\th5: { children: getPhrasingContentSchema() },\n\t\t\t\t\th6: { children: getPhrasingContentSchema() },\n\t\t\t\t},\n\t\t\t\ttransform( node ) {\n\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\t...getBlockAttributes(\n\t\t\t\t\t\t\tgetBlockType( 'core/heading' ),\n\t\t\t\t\t\t\tnode.outerHTML\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlevel: getLevelFromHeadingNodeName( node.nodeName ),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'pattern',\n\t\t\t\tregExp: /^(#{2,6})\\s/,\n\t\t\t\ttransform: ( { content, match } ) => {\n\t\t\t\t\tconst level = match[ 1 ].length;\n\n\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\tlevel,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( { content } ) => {\n\t\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tsupports,\n\t\t\tattributes: {\n\t\t\t\t...omit( schema, [ 'level' ] ),\n\t\t\t\tnodeName: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'property',\n\t\t\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\t\t\tproperty: 'nodeName',\n\t\t\t\t\tdefault: 'H2',\n\t\t\t\t},\n\t\t\t},\n\t\t\tmigrate( attributes ) {\n\t\t\t\tconst { nodeName, ...migratedAttributes } = attributes;\n\n\t\t\t\treturn {\n\t\t\t\t\t...migratedAttributes,\n\t\t\t\t\tlevel: getLevelFromHeadingNodeName( nodeName ),\n\t\t\t\t};\n\t\t\t},\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { align, nodeName, content } = attributes;\n\n\t\t\t\treturn (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName={ nodeName.toLowerCase() }\n\t\t\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { align, level, content } = attributes;\n\t\tconst tagName = 'h' + level;\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\ttagName={ tagName }\n\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Disabled, SandBox } from '@wordpress/components';\nimport { getPhrasingContentSchema } from '@wordpress/blocks';\nimport { BlockControls, PlainText } from '@wordpress/editor';\nimport { withState } from '@wordpress/compose';\n\nexport const name = 'core/html';\n\nexport const settings = {\n\ttitle: __( 'Custom HTML' ),\n\n\tdescription: __( 'Add your own HTML (and view it right here as you edit!).' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.5,11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5V11z M7,10.5h1.5V15H10v-4.5h1.5V9H7V10.5z M14.5,10l-1-1H12v6h1.5v-3.9 l1,1l1-1V15H17V9h-1.5L14.5,10z M19.5,13.5V9H18v6h5v-1.5H19.5z\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tkeywords: [ __( 'embed' ) ],\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\tclassName: false,\n\t\thtml: false,\n\t},\n\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => node.nodeName === 'FIGURE' && !! node.querySelector( 'iframe' ),\n\t\t\t\tschema: {\n\t\t\t\t\tfigure: {\n\t\t\t\t\t\trequire: [ 'iframe' ],\n\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\tiframe: {\n\t\t\t\t\t\t\t\tattributes: [ 'src', 'allowfullscreen', 'height', 'width' ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfigcaption: {\n\t\t\t\t\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit: withState( {\n\t\tisPreview: false,\n\t} )( ( { attributes, setAttributes, setState, isPreview } ) => (\n\t\t<div className=\"wp-block-html\">\n\t\t\t<BlockControls>\n\t\t\t\t<div className=\"components-toolbar\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={ `components-tab-button ${ ! isPreview ? 'is-active' : '' }` }\n\t\t\t\t\t\tonClick={ () => setState( { isPreview: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>HTML</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={ `components-tab-button ${ isPreview ? 'is-active' : '' }` }\n\t\t\t\t\t\tonClick={ () => setState( { isPreview: true } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>{ __( 'Preview' ) }</span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</BlockControls>\n\t\t\t<Disabled.Consumer>\n\t\t\t\t{ ( isDisabled ) => (\n\t\t\t\t\t( isPreview || isDisabled ) ? (\n\t\t\t\t\t\t<SandBox html={ attributes.content } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\tvalue={ attributes.content }\n\t\t\t\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write HTML…' ) }\n\t\t\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t) }\n\t\t\t</Disabled.Consumer>\n\t\t</div>\n\t) ),\n\n\tsave( { attributes } ) {\n\t\treturn <RawHTML>{ attributes.content }</RawHTML>;\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport {\n\tget,\n\tisEmpty,\n\tmap,\n\tpick,\n\tstartCase,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, Fragment } from '@wordpress/element';\nimport { getBlobByURL, revokeBlobURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tButton,\n\tButtonGroup,\n\tIconButton,\n\tPanelBody,\n\tResizableBox,\n\tSelectControl,\n\tTextControl,\n\tTextareaControl,\n\tToolbar,\n\twithNotices,\n} from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport {\n\tRichText,\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tBlockAlignmentToolbar,\n\tmediaUpload,\n} from '@wordpress/editor';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport ImageSize from './image-size';\n\n/**\n * Module constants\n */\nconst MIN_SIZE = 20;\nconst LINK_DESTINATION_NONE = 'none';\nconst LINK_DESTINATION_MEDIA = 'media';\nconst LINK_DESTINATION_ATTACHMENT = 'attachment';\nconst LINK_DESTINATION_CUSTOM = 'custom';\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nexport const pickRelevantMediaFiles = ( image ) => {\n\treturn pick( image, [ 'alt', 'id', 'link', 'url', 'caption' ] );\n};\n\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\nconst isTemporaryImage = ( id, url ) => ! id && isBlobURL( url );\n\n/**\n * Is the url for the image hosted externally. An externally hosted image has no id\n * and is not a blob url.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\nconst isExternalImage = ( id, url ) => url && ! id && ! isBlobURL( url );\n\nclass ImageEdit extends Component {\n\tconstructor( { attributes } ) {\n\t\tsuper( ...arguments );\n\t\tthis.updateAlt = this.updateAlt.bind( this );\n\t\tthis.updateAlignment = this.updateAlignment.bind( this );\n\t\tthis.onFocusCaption = this.onFocusCaption.bind( this );\n\t\tthis.onImageClick = this.onImageClick.bind( this );\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t\tthis.updateImageURL = this.updateImageURL.bind( this );\n\t\tthis.updateWidth = this.updateWidth.bind( this );\n\t\tthis.updateHeight = this.updateHeight.bind( this );\n\t\tthis.updateDimensions = this.updateDimensions.bind( this );\n\t\tthis.onSetCustomHref = this.onSetCustomHref.bind( this );\n\t\tthis.onSetLinkDestination = this.onSetLinkDestination.bind( this );\n\t\tthis.toggleIsEditing = this.toggleIsEditing.bind( this );\n\n\t\tthis.state = {\n\t\t\tcaptionFocused: false,\n\t\t\tisEditing: ! attributes.url,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { id, url = '' } = attributes;\n\n\t\tif ( isTemporaryImage( id, url ) ) {\n\t\t\tconst file = getBlobByURL( url );\n\n\t\t\tif ( file ) {\n\t\t\t\tmediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ image ] ) => {\n\t\t\t\t\t\tsetAttributes( pickRelevantMediaFiles( image ) );\n\t\t\t\t\t},\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { id: prevID, url: prevURL = '' } = prevProps.attributes;\n\t\tconst { id, url = '' } = this.props.attributes;\n\n\t\tif ( isTemporaryImage( prevID, prevURL ) && ! isTemporaryImage( id, url ) ) {\n\t\t\trevokeBlobURL( url );\n\t\t}\n\n\t\tif ( ! this.props.isSelected && prevProps.isSelected && this.state.captionFocused ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionFocused: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonSelectImage( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: undefined,\n\t\t\t\talt: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tisEditing: false,\n\t\t} );\n\n\t\tthis.props.setAttributes( {\n\t\t\t...pickRelevantMediaFiles( media ),\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t} );\n\t}\n\n\tonSetLinkDestination( value ) {\n\t\tlet href;\n\n\t\tif ( value === LINK_DESTINATION_NONE ) {\n\t\t\thref = undefined;\n\t\t} else if ( value === LINK_DESTINATION_MEDIA ) {\n\t\t\thref = this.props.attributes.url;\n\t\t} else if ( value === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\thref = this.props.image && this.props.image.link;\n\t\t} else {\n\t\t\thref = this.props.attributes.href;\n\t\t}\n\n\t\tthis.props.setAttributes( {\n\t\t\tlinkDestination: value,\n\t\t\thref,\n\t\t} );\n\t}\n\n\tonSelectURL( newURL ) {\n\t\tconst { url } = this.props.attributes;\n\n\t\tif ( newURL !== url ) {\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tid: undefined,\n\t\t\t} );\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tisEditing: false,\n\t\t} );\n\t}\n\n\tonSetCustomHref( value ) {\n\t\tthis.props.setAttributes( { href: value } );\n\t}\n\n\tonFocusCaption() {\n\t\tif ( ! this.state.captionFocused ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionFocused: true,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonImageClick() {\n\t\tif ( this.state.captionFocused ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionFocused: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tupdateAlt( newAlt ) {\n\t\tthis.props.setAttributes( { alt: newAlt } );\n\t}\n\n\tupdateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].indexOf( nextAlign ) !== -1 ?\n\t\t\t{ width: undefined, height: undefined } :\n\t\t\t{};\n\t\tthis.props.setAttributes( { ...extraUpdatedAttributes, align: nextAlign } );\n\t}\n\n\tupdateImageURL( url ) {\n\t\tthis.props.setAttributes( { url, width: undefined, height: undefined } );\n\t}\n\n\tupdateWidth( width ) {\n\t\tthis.props.setAttributes( { width: parseInt( width, 10 ) } );\n\t}\n\n\tupdateHeight( height ) {\n\t\tthis.props.setAttributes( { height: parseInt( height, 10 ) } );\n\t}\n\n\tupdateDimensions( width = undefined, height = undefined ) {\n\t\treturn () => {\n\t\t\tthis.props.setAttributes( { width, height } );\n\t\t};\n\t}\n\n\tgetAvailableSizes() {\n\t\treturn get( this.props.image, [ 'media_details', 'sizes' ], {} );\n\t}\n\n\tgetLinkDestinationOptions() {\n\t\treturn [\n\t\t\t{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n\t\t\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t\t\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t\t\t{ value: LINK_DESTINATION_CUSTOM, label: __( 'Custom URL' ) },\n\t\t];\n\t}\n\n\ttoggleIsEditing() {\n\t\tthis.setState( {\n\t\t\tisEditing: ! this.state.isEditing,\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { isEditing } = this.state;\n\t\tconst { attributes, setAttributes, isLargeViewport, isSelected, className, maxWidth, noticeOperations, noticeUI, toggleSelection, isRTL } = this.props;\n\t\tconst { url, alt, caption, align, id, href, linkDestination, width, height } = attributes;\n\t\tconst isExternal = isExternalImage( id, url );\n\n\t\tlet toolbarEditButton;\n\t\tif ( url ) {\n\t\t\tif ( isExternal ) {\n\t\t\t\ttoolbarEditButton = (\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName=\"components-icon-button components-toolbar__control\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit image' ) }\n\t\t\t\t\t\t\tonClick={ this.toggleIsEditing }\n\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttoolbarEditButton = (\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tonSelect={ this.onSelectImage }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Edit image' ) }\n\t\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst controls = (\n\t\t\t<BlockControls>\n\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\tvalue={ align }\n\t\t\t\t\tonChange={ this.updateAlignment }\n\t\t\t\t/>\n\t\t\t\t{ toolbarEditButton }\n\t\t\t</BlockControls>\n\t\t);\n\n\t\tif ( isEditing ) {\n\t\t\tconst src = isExternal ? url : undefined;\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{ controls }\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\ticon=\"format-image\"\n\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\ttitle: __( 'Image' ),\n\t\t\t\t\t\t\tname: __( 'an image' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tonSelect={ this.onSelectImage }\n\t\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tvalue={ { id, src } }\n\t\t\t\t\t/>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\n\t\tconst classes = classnames( className, {\n\t\t\t'is-transient': isBlobURL( url ),\n\t\t\t'is-resized': !! width || !! height,\n\t\t\t'is-focused': isSelected,\n\t\t} );\n\n\t\tconst availableSizes = this.getAvailableSizes();\n\t\tconst isResizable = [ 'wide', 'full' ].indexOf( align ) === -1 && isLargeViewport;\n\t\tconst isLinkURLInputDisabled = linkDestination !== LINK_DESTINATION_CUSTOM;\n\n\t\tconst getInspectorControls = ( imageWidth, imageHeight ) => (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Image Settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tlabel={ __( 'Alt Text (Alternative Text)' ) }\n\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\tonChange={ this.updateAlt }\n\t\t\t\t\t\thelp={ __( 'Describe the purpose of the image. Leave empty if the image is not a key part of the content.' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isEmpty( availableSizes ) && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image Size' ) }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\toptions={ map( availableSizes, ( size, name ) => ( {\n\t\t\t\t\t\t\t\tvalue: size.source_url,\n\t\t\t\t\t\t\t\tlabel: startCase( name ),\n\t\t\t\t\t\t\t} ) ) }\n\t\t\t\t\t\t\tonChange={ this.updateImageURL }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable && (\n\t\t\t\t\t\t<div className=\"block-library-image__dimensions\">\n\t\t\t\t\t\t\t<p className=\"block-library-image__dimensions__row\">\n\t\t\t\t\t\t\t\t{ __( 'Image Dimensions' ) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<div className=\"block-library-image__dimensions__row\">\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-image__dimensions__width\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\t\t\tvalue={ width !== undefined ? width : '' }\n\t\t\t\t\t\t\t\t\tplaceholder={ imageWidth }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tonChange={ this.updateWidth }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-image__dimensions__height\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\t\t\tvalue={ height !== undefined ? height : '' }\n\t\t\t\t\t\t\t\t\tplaceholder={ imageHeight }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tonChange={ this.updateHeight }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"block-library-image__dimensions__row\">\n\t\t\t\t\t\t\t\t<ButtonGroup aria-label={ __( 'Image Size' ) }>\n\t\t\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( scale ) => {\n\t\t\t\t\t\t\t\t\t\tconst scaledWidth = Math.round( imageWidth * ( scale / 100 ) );\n\t\t\t\t\t\t\t\t\t\tconst scaledHeight = Math.round( imageHeight * ( scale / 100 ) );\n\n\t\t\t\t\t\t\t\t\t\tconst isCurrent = width === scaledWidth && height === scaledHeight;\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ scale }\n\t\t\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\t\t\tisPrimary={ isCurrent }\n\t\t\t\t\t\t\t\t\t\t\t\taria-pressed={ isCurrent }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ this.updateDimensions( scaledWidth, scaledHeight ) }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ scale }%\n\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\tonClick={ this.updateDimensions() }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelBody title={ __( 'Link Settings' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link To' ) }\n\t\t\t\t\t\tvalue={ linkDestination }\n\t\t\t\t\t\toptions={ this.getLinkDestinationOptions() }\n\t\t\t\t\t\tonChange={ this.onSetLinkDestination }\n\t\t\t\t\t/>\n\t\t\t\t\t{ linkDestination !== LINK_DESTINATION_NONE && (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tlabel={ __( 'Link URL' ) }\n\t\t\t\t\t\t\tvalue={ href || '' }\n\t\t\t\t\t\t\tonChange={ this.onSetCustomHref }\n\t\t\t\t\t\t\tplaceholder={ ! isLinkURLInputDisabled ? 'https://' : undefined }\n\t\t\t\t\t\t\tdisabled={ isLinkURLInputDisabled }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\n\t\t// Disable reason: Each block can be selected by clicking on it\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ controls }\n\t\t\t\t<figure className={ classes }>\n\t\t\t\t\t<ImageSize src={ url } dirtynessTrigger={ align }>\n\t\t\t\t\t\t{ ( sizes ) => {\n\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\timageWidthWithinContainer,\n\t\t\t\t\t\t\t\timageHeightWithinContainer,\n\t\t\t\t\t\t\t\timageWidth,\n\t\t\t\t\t\t\t\timageHeight,\n\t\t\t\t\t\t\t} = sizes;\n\n\t\t\t\t\t\t\t// Disable reason: Image itself is not meant to be\n\t\t\t\t\t\t\t// interactive, but should direct focus to block\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t\t\t\t\t\tconst img = <img src={ url } alt={ alt } onClick={ this.onImageClick } />;\n\n\t\t\t\t\t\t\tif ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t{ getInspectorControls( imageWidth, imageHeight ) }\n\t\t\t\t\t\t\t\t\t\t<div style={ { width, height } }>\n\t\t\t\t\t\t\t\t\t\t\t{ img }\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst currentWidth = width || imageWidthWithinContainer;\n\t\t\t\t\t\t\tconst currentHeight = height || imageHeightWithinContainer;\n\n\t\t\t\t\t\t\tconst ratio = imageWidth / imageHeight;\n\t\t\t\t\t\t\tconst minWidth = imageWidth < imageHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\t\t\t\t\t\tconst minHeight = imageHeight < imageWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t\t\t\t\t\tlet showRightHandle = false;\n\t\t\t\t\t\t\tlet showLeftHandle = false;\n\n\t\t\t\t\t\t\t/* eslint-disable no-lonely-if */\n\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\t\t\t\t\t\tif ( align === 'center' ) {\n\t\t\t\t\t\t\t\t// When the image is centered, show both handles.\n\t\t\t\t\t\t\t\tshowRightHandle = true;\n\t\t\t\t\t\t\t\tshowLeftHandle = true;\n\t\t\t\t\t\t\t} else if ( isRTL ) {\n\t\t\t\t\t\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t\t\t\t\t\t// Show the right handle and hide the left handle only when it is aligned left.\n\t\t\t\t\t\t\t\t// Otherwise always show the left handle.\n\t\t\t\t\t\t\t\tif ( align === 'left' ) {\n\t\t\t\t\t\t\t\t\tshowRightHandle = true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tshowLeftHandle = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// Show the left handle and hide the right handle only when the image is aligned right.\n\t\t\t\t\t\t\t\t// Otherwise always show the right handle.\n\t\t\t\t\t\t\t\tif ( align === 'right' ) {\n\t\t\t\t\t\t\t\t\tshowLeftHandle = true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tshowRightHandle = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* eslint-enable no-lonely-if */\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t{ getInspectorControls( imageWidth, imageHeight ) }\n\t\t\t\t\t\t\t\t\t<ResizableBox\n\t\t\t\t\t\t\t\t\t\tsize={\n\t\t\t\t\t\t\t\t\t\t\twidth && height ? {\n\t\t\t\t\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t\t\t\t\t\t} : undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\t\t\t\t\t\tmaxWidth={ maxWidth }\n\t\t\t\t\t\t\t\t\t\tminHeight={ minHeight }\n\t\t\t\t\t\t\t\t\t\tmaxHeight={ maxWidth / ratio }\n\t\t\t\t\t\t\t\t\t\tlockAspectRatio\n\t\t\t\t\t\t\t\t\t\tenable={ {\n\t\t\t\t\t\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\t\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\t\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\t\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\t\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ img }\n\t\t\t\t\t\t\t\t\t</ResizableBox>\n\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t</ImageSize>\n\t\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\tunstableOnFocus={ this.onFocusCaption }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\t\t\t\tisSelected={ this.state.captionFocused }\n\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t</Fragment>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { getMedia } = select( 'core' );\n\t\tconst { getEditorSettings } = select( 'core/editor' );\n\t\tconst { id } = props.attributes;\n\t\tconst { maxWidth, isRTL } = getEditorSettings();\n\n\t\treturn {\n\t\t\timage: id ? getMedia( id ) : null,\n\t\t\tmaxWidth,\n\t\t\tisRTL,\n\t\t};\n\t} ),\n\twithViewportMatch( { isLargeViewport: 'medium' } ),\n\twithNotices,\n] )( ImageEdit );\n","/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withGlobalEvents } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\nclass ImageSize extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t};\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\tthis.calculateSize = this.calculateSize.bind( this );\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( this.props.src !== prevProps.src ) {\n\t\t\tthis.setState( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t} );\n\t\t\tthis.fetchImageSize();\n\t\t}\n\n\t\tif ( this.props.dirtynessTrigger !== prevProps.dirtynessTrigger ) {\n\t\t\tthis.calculateSize();\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.fetchImageSize();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.image ) {\n\t\t\tthis.image.onload = noop;\n\t\t}\n\t}\n\n\tfetchImageSize() {\n\t\tthis.image = new window.Image();\n\t\tthis.image.onload = this.calculateSize;\n\t\tthis.image.src = this.props.src;\n\t}\n\n\tcalculateSize() {\n\t\tconst maxWidth = this.container.clientWidth;\n\t\tconst exceedMaxWidth = this.image.width > maxWidth;\n\t\tconst ratio = this.image.height / this.image.width;\n\t\tconst width = exceedMaxWidth ? maxWidth : this.image.width;\n\t\tconst height = exceedMaxWidth ? maxWidth * ratio : this.image.height;\n\t\tthis.setState( { width, height } );\n\t}\n\n\trender() {\n\t\tconst sizes = {\n\t\t\timageWidth: this.image && this.image.width,\n\t\t\timageHeight: this.image && this.image.height,\n\t\t\tcontainerWidth: this.container && this.container.clientWidth,\n\t\t\tcontainerHeight: this.container && this.container.clientHeight,\n\t\t\timageWidthWithinContainer: this.state.width,\n\t\t\timageHeightWithinContainer: this.state.height,\n\t\t};\n\t\treturn (\n\t\t\t<div ref={ this.bindContainer }>\n\t\t\t\t{ this.props.children( sizes ) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withGlobalEvents( {\n\tresize: 'calculateSize',\n} )( ImageSize );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcreateBlock,\n\tgetBlockAttributes,\n\tgetBlockType,\n\tgetPhrasingContentSchema,\n} from '@wordpress/blocks';\nimport { RichText } from '@wordpress/editor';\nimport { createBlobURL } from '@wordpress/blob';\nimport {\n\tPath,\n\tSVG,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/image';\n\nconst blockAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'src',\n\t},\n\talt: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'alt',\n\t\tdefault: '',\n\t},\n\tcaption: {\n\t\tsource: 'html',\n\t\tselector: 'figcaption',\n\t},\n\thref: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'href',\n\t},\n\tid: {\n\t\ttype: 'number',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n\twidth: {\n\t\ttype: 'number',\n\t},\n\theight: {\n\t\ttype: 'number',\n\t},\n\tlinkDestination: {\n\t\ttype: 'string',\n\t\tdefault: 'none',\n\t},\n};\n\nconst imageSchema = {\n\timg: {\n\t\tattributes: [ 'src', 'alt' ],\n\t\tclasses: [ 'alignleft', 'aligncenter', 'alignright', 'alignnone', /^wp-image-\\d+$/ ],\n\t},\n};\n\nconst schema = {\n\tfigure: {\n\t\trequire: [ 'img' ],\n\t\tchildren: {\n\t\t\t...imageSchema,\n\t\t\ta: {\n\t\t\t\tattributes: [ 'href' ],\n\t\t\t\tchildren: imageSchema,\n\t\t\t},\n\t\t\tfigcaption: {\n\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const settings = {\n\ttitle: __( 'Image' ),\n\n\tdescription: __( 'Theyre worth 1,000 words! Insert a single image.' ),\n\n\ticon: <SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><Path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><Path d=\"m19 5v14h-14v-14h14m0-2h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z\" /><Path d=\"m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z\" /></SVG>,\n\n\tcategory: 'common',\n\n\tkeywords: [ __( 'photo' ) ],\n\n\tattributes: blockAttributes,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => node.nodeName === 'FIGURE' && !! node.querySelector( 'img' ),\n\t\t\t\tschema,\n\t\t\t\ttransform: ( node ) => {\n\t\t\t\t\t// Search both figure and image classes. Alignment could be\n\t\t\t\t\t// set on either. ID is set on the image.\n\t\t\t\t\tconst className = node.className + ' ' + node.querySelector( 'img' ).className;\n\t\t\t\t\tconst alignMatches = /(?:^|\\s)align(left|center|right)(?:$|\\s)/.exec( className );\n\t\t\t\t\tconst align = alignMatches ? alignMatches[ 1 ] : undefined;\n\t\t\t\t\tconst idMatches = /(?:^|\\s)wp-image-(\\d+)(?:$|\\s)/.exec( className );\n\t\t\t\t\tconst id = idMatches ? Number( idMatches[ 1 ] ) : undefined;\n\t\t\t\t\tconst anchorElement = node.querySelector( 'a' );\n\t\t\t\t\tconst linkDestination = anchorElement && anchorElement.href ? 'custom' : undefined;\n\t\t\t\t\tconst href = anchorElement && anchorElement.href ? anchorElement.href : undefined;\n\t\t\t\t\tconst blockType = getBlockType( 'core/image' );\n\t\t\t\t\tconst attributes = getBlockAttributes( blockType, node.outerHTML, { align, id, linkDestination, href } );\n\t\t\t\t\treturn createBlock( 'core/image', attributes );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch( files ) {\n\t\t\t\t\treturn files.length === 1 && files[ 0 ].type.indexOf( 'image/' ) === 0;\n\t\t\t\t},\n\t\t\t\ttransform( files ) {\n\t\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t\t// int the image block\n\t\t\t\t\tconst block = createBlock( 'core/image', {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn block;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'shortcode',\n\t\t\t\ttag: 'caption',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\tattribute: 'src',\n\t\t\t\t\t\tselector: 'img',\n\t\t\t\t\t},\n\t\t\t\t\talt: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\t\tselector: 'img',\n\t\t\t\t\t},\n\t\t\t\t\tcaption: {\n\t\t\t\t\t\tshortcode: ( attributes, { shortcode } ) => {\n\t\t\t\t\t\t\tconst { content } = shortcode;\n\t\t\t\t\t\t\treturn content.replace( /\\s*<img[^>]*>\\s/, '' );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\thref: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\tattribute: 'href',\n\t\t\t\t\t\tselector: 'a',\n\t\t\t\t\t},\n\t\t\t\t\tid: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tshortcode: ( { named: { id } } ) => {\n\t\t\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn parseInt( id.replace( 'attachment_', '' ), 10 );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\talign: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tshortcode: ( { named: { align = 'alignnone' } } ) => {\n\t\t\t\t\t\t\treturn align.replace( 'align', '' );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align, width } = attributes;\n\t\tif ( 'left' === align || 'center' === align || 'right' === align || 'wide' === align || 'full' === align ) {\n\t\t\treturn { 'data-align': align, 'data-resized': !! width };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } = attributes;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<Fragment>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t</Fragment>\n\t\t);\n\n\t\tif ( 'left' === align || 'right' === align || 'center' === align ) {\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<figure className={ classes }>\n\t\t\t\t\t\t{ figure }\n\t\t\t\t\t</figure>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<figure className={ classes }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tattributes: blockAttributes,\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { url, alt, caption, align, href, width, height, id } = attributes;\n\n\t\t\t\tconst classes = classnames( {\n\t\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t\t'is-resized': width || height,\n\t\t\t\t} );\n\n\t\t\t\tconst image = (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\t\twidth={ width }\n\t\t\t\t\t\theight={ height }\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<figure className={ classes }>\n\t\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t\t</figure>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tattributes: blockAttributes,\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { url, alt, caption, align, href, width, height, id } = attributes;\n\n\t\t\t\tconst image = (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\t\twidth={ width }\n\t\t\t\t\t\theight={ height }\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<figure className={ align ? `align${ align }` : null } >\n\t\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t\t</figure>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tattributes: blockAttributes,\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { url, alt, caption, align, href, width, height } = attributes;\n\t\t\t\tconst extraImageProps = width || height ? { width, height } : {};\n\t\t\t\tconst image = <img src={ url } alt={ alt } { ...extraImageProps } />;\n\n\t\t\t\tlet figureStyle = {};\n\n\t\t\t\tif ( width ) {\n\t\t\t\t\tfigureStyle = { width };\n\t\t\t\t} else if ( align === 'left' || align === 'right' ) {\n\t\t\t\t\tfigureStyle = { maxWidth: '50%' };\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<figure className={ align ? `align${ align }` : null } style={ figureStyle }>\n\t\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t\t</figure>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n","/**\n * WordPress dependencies\n */\nimport '@wordpress/core-data';\nimport {\n\tregisterBlockType,\n\tsetDefaultBlockName,\n\tsetFreeformContentHandlerName,\n\tsetUnregisteredTypeHandlerName,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport * as paragraph from './paragraph';\nimport * as image from './image';\nimport * as heading from './heading';\nimport * as quote from './quote';\nimport * as gallery from './gallery';\nimport * as archives from './archives';\nimport * as audio from './audio';\nimport * as button from './button';\nimport * as categories from './categories';\nimport * as code from './code';\nimport * as columns from './columns';\nimport * as column from './columns/column';\nimport * as cover from './cover';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as html from './html';\nimport * as mediaText from './media-text';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\nimport * as missing from './missing';\nimport * as more from './more';\nimport * as nextpage from './nextpage';\nimport * as preformatted from './preformatted';\nimport * as pullquote from './pullquote';\nimport * as reusableBlock from './block';\nimport * as separator from './separator';\nimport * as shortcode from './shortcode';\nimport * as spacer from './spacer';\nimport * as subhead from './subhead';\nimport * as table from './table';\nimport * as template from './template';\nimport * as textColumns from './text-columns';\nimport * as verse from './verse';\nimport * as video from './video';\n\nimport * as classic from './classic';\n\nexport const registerCoreBlocks = () => {\n\t[\n\t\t// Common blocks are grouped at the top to prioritize their display\n\t\t// in various contexts — like the inserter and auto-complete components.\n\t\tparagraph,\n\t\timage,\n\t\theading,\n\t\tgallery,\n\t\tlist,\n\t\tquote,\n\n\t\t// Register all remaining core blocks.\n\t\tshortcode,\n\t\tarchives,\n\t\taudio,\n\t\tbutton,\n\t\tcategories,\n\t\tcode,\n\t\tcolumns,\n\t\tcolumn,\n\t\tcover,\n\t\tembed,\n\t\t...embed.common,\n\t\t...embed.others,\n\t\tfile,\n\t\twindow.wp && window.wp.oldEditor ? classic : null, // Only add the classic block in WP Context\n\t\thtml,\n\t\tmediaText,\n\t\tlatestComments,\n\t\tlatestPosts,\n\t\tmissing,\n\t\tmore,\n\t\tnextpage,\n\t\tpreformatted,\n\t\tpullquote,\n\t\tseparator,\n\t\treusableBlock,\n\t\tspacer,\n\t\tsubhead,\n\t\ttable,\n\t\ttemplate,\n\t\ttextColumns,\n\t\tverse,\n\t\tvideo,\n\t].forEach( ( block ) => {\n\t\tif ( ! block ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { name, settings } = block;\n\t\tregisterBlockType( name, settings );\n\t} );\n\n\tsetDefaultBlockName( paragraph.name );\n\tif ( window.wp && window.wp.oldEditor ) {\n\t\tsetFreeformContentHandlerName( classic.name );\n\t}\n\tsetUnregisteredTypeHandlerName( missing.name );\n};\n","/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport {\n\tDisabled,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n\tServerSideRender,\n} from '@wordpress/editor';\n\n/**\n * Minimum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_COMMENTS = 1;\n/**\n * Maximum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_COMMENTS = 100;\n\nclass LatestComments extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.setAlignment = this.setAlignment.bind( this );\n\t\tthis.setCommentsToShow = this.setCommentsToShow.bind( this );\n\n\t\t// Create toggles for each attribute; we create them here rather than\n\t\t// passing `this.createToggleAttribute( 'displayAvatar' )` directly to\n\t\t// `onChange` to avoid re-renders.\n\t\tthis.toggleDisplayAvatar = this.createToggleAttribute( 'displayAvatar' );\n\t\tthis.toggleDisplayDate = this.createToggleAttribute( 'displayDate' );\n\t\tthis.toggleDisplayExcerpt = this.createToggleAttribute( 'displayExcerpt' );\n\t}\n\n\tcreateToggleAttribute( propName ) {\n\t\treturn () => {\n\t\t\tconst value = this.props.attributes[ propName ];\n\t\t\tconst { setAttributes } = this.props;\n\n\t\t\tsetAttributes( { [ propName ]: ! value } );\n\t\t};\n\t}\n\n\tsetAlignment( align ) {\n\t\tthis.props.setAttributes( { align } );\n\t}\n\n\tsetCommentsToShow( commentsToShow ) {\n\t\tthis.props.setAttributes( { commentsToShow } );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\talign,\n\t\t\tcommentsToShow,\n\t\t\tdisplayAvatar,\n\t\t\tdisplayDate,\n\t\t\tdisplayExcerpt,\n\t\t} = this.props.attributes;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ this.setAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Latest Comments Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display Avatar' ) }\n\t\t\t\t\t\t\tchecked={ displayAvatar }\n\t\t\t\t\t\t\tonChange={ this.toggleDisplayAvatar }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display Date' ) }\n\t\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\t\tonChange={ this.toggleDisplayDate }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display Excerpt' ) }\n\t\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\t\tonChange={ this.toggleDisplayExcerpt }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Number of Comments' ) }\n\t\t\t\t\t\t\tvalue={ commentsToShow }\n\t\t\t\t\t\t\tonChange={ this.setCommentsToShow }\n\t\t\t\t\t\t\tmin={ MIN_COMMENTS }\n\t\t\t\t\t\t\tmax={ MAX_COMMENTS }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tblock=\"core/latest-comments\"\n\t\t\t\t\t\tattributes={ this.props.attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default LatestComments;\n","/**\n * WordPress dependencies.\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies.\n */\nimport edit from './edit';\n\nexport const name = 'core/latest-comments';\n\nexport const settings = {\n\ttitle: __( 'Latest Comments' ),\n\n\tdescription: __( 'Show a list of your sites most recent comments.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M22 4l-2-2H4L2 4v12l2 2h14l4 4V4zm-2 0v13l-1-1H4V4h16z\" /><path d=\"M6 12h12v2H6zM6 9h12v2H6zM6 6h12v2H6z\" /></g></svg>,\n\n\tcategory: 'widgets',\n\n\tkeywords: [ __( 'recent comments' ) ],\n\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align } = attributes;\n\n\t\t// TODO: Use consistent values across the app;\n\t\t// see: https://github.com/WordPress/gutenberg/issues/7908.\n\t\tif ( [ 'left', 'center', 'right', 'wide', 'full' ].includes( align ) ) {\n\t\t\treturn { 'data-align': align };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave() {\n\t\treturn null;\n\t},\n};\n","/**\n * External dependencies\n */\nimport { isUndefined, pickBy } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbar,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n} from '@wordpress/editor';\nimport { withSelect } from '@wordpress/data';\n\nconst MAX_POSTS_COLUMNS = 6;\n\nclass LatestPostsEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.toggleDisplayPostDate = this.toggleDisplayPostDate.bind( this );\n\t}\n\n\ttoggleDisplayPostDate() {\n\t\tconst { displayPostDate } = this.props.attributes;\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( { displayPostDate: ! displayPostDate } );\n\t}\n\n\trender() {\n\t\tconst { attributes, categoriesList, setAttributes, latestPosts } = this.props;\n\t\tconst { displayPostDate, align, postLayout, columns, order, orderBy, categories, postsToShow } = attributes;\n\n\t\tconst inspectorControls = (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Latest Posts Settings' ) }>\n\t\t\t\t\t<QueryControls\n\t\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\t\tcategoriesList={ categoriesList }\n\t\t\t\t\t\tselectedCategoryId={ categories }\n\t\t\t\t\t\tonOrderChange={ ( value ) => setAttributes( { order: value } ) }\n\t\t\t\t\t\tonOrderByChange={ ( value ) => setAttributes( { orderBy: value } ) }\n\t\t\t\t\t\tonCategoryChange={ ( value ) => setAttributes( { categories: '' !== value ? value : undefined } ) }\n\t\t\t\t\t\tonNumberOfItemsChange={ ( value ) => setAttributes( { postsToShow: value } ) }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\t\tonChange={ this.toggleDisplayPostDate }\n\t\t\t\t\t/>\n\t\t\t\t\t{ postLayout === 'grid' &&\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { columns: value } ) }\n\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\tmax={ ! hasPosts ? MAX_POSTS_COLUMNS : Math.min( MAX_POSTS_COLUMNS, latestPosts.length ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\n\t\tconst hasPosts = Array.isArray( latestPosts ) && latestPosts.length;\n\t\tif ( ! hasPosts ) {\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{ inspectorControls }\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon=\"admin-post\"\n\t\t\t\t\t\tlabel={ __( 'Latest Posts' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! Array.isArray( latestPosts ) ?\n\t\t\t\t\t\t\t<Spinner /> :\n\t\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</Placeholder>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\n\t\t// Removing posts from display should be instant.\n\t\tconst displayPosts = latestPosts.length > postsToShow ?\n\t\t\tlatestPosts.slice( 0, postsToShow ) :\n\t\t\tlatestPosts;\n\n\t\tconst layoutControls = [\n\t\t\t{\n\t\t\t\ticon: 'list-view',\n\t\t\t\ttitle: __( 'List View' ),\n\t\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\t\tisActive: postLayout === 'list',\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'grid-view',\n\t\t\t\ttitle: __( 'Grid View' ),\n\t\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\t\tisActive: postLayout === 'grid',\n\t\t\t},\n\t\t];\n\n\t\tconst dateFormat = getSettings().formats.date;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tcontrols={ [ 'center', 'wide', 'full' ] }\n\t\t\t\t\t/>\n\t\t\t\t\t<Toolbar controls={ layoutControls } />\n\t\t\t\t</BlockControls>\n\t\t\t\t<ul\n\t\t\t\t\tclassName={ classnames( this.props.className, {\n\t\t\t\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ displayPosts.map( ( post, i ) =>\n\t\t\t\t\t\t<li key={ i }>\n\t\t\t\t\t\t\t<a href={ post.link } target=\"_blank\">{ decodeEntities( post.title.rendered.trim() ) || __( '(Untitled)' ) }</a>\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt &&\n\t\t\t\t\t\t\t\t<time dateTime={ format( 'c', post.date_gmt ) } className={ `${ this.props.className }__post-date` }>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) }\n\t\t\t\t</ul>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withSelect( ( select, props ) => {\n\tconst { postsToShow, order, orderBy, categories } = props.attributes;\n\tconst { getEntityRecords } = select( 'core' );\n\tconst latestPostsQuery = pickBy( {\n\t\tcategories,\n\t\torder,\n\t\torderby: orderBy,\n\t\tper_page: postsToShow,\n\t}, ( value ) => ! isUndefined( value ) );\n\tconst categoriesListQuery = {\n\t\tper_page: 100,\n\t};\n\treturn {\n\t\tlatestPosts: getEntityRecords( 'postType', 'post', latestPostsQuery ),\n\t\tcategoriesList: getEntityRecords( 'taxonomy', 'category', categoriesListQuery ),\n\t};\n} )( LatestPostsEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/latest-posts';\n\nexport const settings = {\n\ttitle: __( 'Latest Posts' ),\n\n\tdescription: __( 'Display a list of your most recent posts.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><rect x=\"11\" y=\"7\" width=\"6\" height=\"2\" /><rect x=\"11\" y=\"11\" width=\"6\" height=\"2\" /><rect x=\"11\" y=\"15\" width=\"6\" height=\"2\" /><rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" /><rect x=\"7\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"7\" y=\"15\" width=\"2\" height=\"2\" /><path d=\"M20.1,3H3.9C3.4,3,3,3.4,3,3.9v16.2C3,20.5,3.4,21,3.9,21h16.2c0.4,0,0.9-0.5,0.9-0.9V3.9C21,3.4,20.5,3,20.1,3z M19,19H5V5h14V19z\" /></svg>,\n\n\tcategory: 'widgets',\n\n\tkeywords: [ __( 'recent posts' ) ],\n\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align } = attributes;\n\t\tif ( 'left' === align || 'right' === align || 'wide' === align || 'full' === align ) {\n\t\t\treturn { 'data-align': align };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave() {\n\t\treturn null;\n\t},\n};\n","/**\n * External dependencies\n */\nimport { find, omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcreateBlock,\n\tgetPhrasingContentSchema,\n\tgetBlockAttributes,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport {\n\tBlockControls,\n\tRichText,\n} from '@wordpress/editor';\nimport { replace, join, split, create, toHTMLString } from '@wordpress/rich-text';\n\nconst listContentSchema = {\n\t...getPhrasingContentSchema(),\n\tul: {},\n\tol: { attributes: [ 'type' ] },\n};\n\n// Recursion is needed.\n// Possible: ul > li > ul.\n// Impossible: ul > ul.\n[ 'ul', 'ol' ].forEach( ( tag ) => {\n\tlistContentSchema[ tag ].children = {\n\t\tli: {\n\t\t\tchildren: listContentSchema,\n\t\t},\n\t};\n} );\n\nconst supports = {\n\tclassName: false,\n};\n\nconst schema = {\n\tordered: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tvalues: {\n\t\tsource: 'html',\n\t\tselector: 'ol,ul',\n\t\tmultiline: 'li',\n\t},\n};\n\nexport const name = 'core/list';\n\nexport const settings = {\n\ttitle: __( 'List' ),\n\tdescription: __( 'Numbers, bullets, up to you. Add a list of items.' ),\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M9 19h12v-2H9v2zm0-6h12v-2H9v2zm0-8v2h12V5H9zm-4-.5c-.828 0-1.5.672-1.5 1.5S4.172 7.5 5 7.5 6.5 6.828 6.5 6 5.828 4.5 5 4.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z\" /></g></svg>,\n\tcategory: 'common',\n\tkeywords: [ __( 'bullet list' ), __( 'ordered list' ), __( 'numbered list' ) ],\n\n\tattributes: schema,\n\n\tsupports,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tisMultiBlock: true,\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( blockAttributes ) => {\n\t\t\t\t\treturn createBlock( 'core/list', {\n\t\t\t\t\t\tvalues: toHTMLString( join( blockAttributes.map( ( { content } ) =>\n\t\t\t\t\t\t\treplace( create( { html: content } ), /\\n/g, '\\u2028' )\n\t\t\t\t\t\t), '\\u2028' ), 'li' ),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/quote' ],\n\t\t\t\ttransform: ( { value } ) => {\n\t\t\t\t\treturn createBlock( 'core/list', {\n\t\t\t\t\t\tvalues: toHTMLString( create( { html: value, multilineTag: 'p' } ), 'li' ),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tselector: 'ol,ul',\n\t\t\t\tschema: {\n\t\t\t\t\tol: listContentSchema.ol,\n\t\t\t\t\tul: listContentSchema.ul,\n\t\t\t\t},\n\t\t\t\ttransform( node ) {\n\t\t\t\t\treturn createBlock( 'core/list', {\n\t\t\t\t\t\t...getBlockAttributes(\n\t\t\t\t\t\t\tgetBlockType( 'core/list' ),\n\t\t\t\t\t\t\tnode.outerHTML\n\t\t\t\t\t\t),\n\t\t\t\t\t\tordered: node.nodeName === 'OL',\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'pattern',\n\t\t\t\tregExp: /^[*-]\\s/,\n\t\t\t\ttransform: ( { content } ) => {\n\t\t\t\t\treturn createBlock( 'core/list', {\n\t\t\t\t\t\tvalues: `<li>${ content }</li>`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'pattern',\n\t\t\t\tregExp: /^1[.)]\\s/,\n\t\t\t\ttransform: ( { content } ) => {\n\t\t\t\t\treturn createBlock( 'core/list', {\n\t\t\t\t\t\tordered: true,\n\t\t\t\t\t\tvalues: `<li>${ content }</li>`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( { values } ) =>\n\t\t\t\t\tsplit( create( { html: values, multilineTag: 'li' } ), '\\u2028' )\n\t\t\t\t\t\t.map( ( piece ) =>\n\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\t\tcontent: toHTMLString( piece ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/quote' ],\n\t\t\t\ttransform: ( { values } ) => {\n\t\t\t\t\treturn createBlock( 'core/quote', {\n\t\t\t\t\t\tvalue: toHTMLString( create( { html: values, multilineTag: 'li' } ), 'p' ),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tsupports,\n\t\t\tattributes: {\n\t\t\t\t...omit( schema, [ 'ordered' ] ),\n\t\t\t\tnodeName: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'property',\n\t\t\t\t\tselector: 'ol,ul',\n\t\t\t\t\tproperty: 'nodeName',\n\t\t\t\t\tdefault: 'UL',\n\t\t\t\t},\n\t\t\t},\n\t\t\tmigrate( attributes ) {\n\t\t\t\tconst { nodeName, ...migratedAttributes } = attributes;\n\n\t\t\t\treturn {\n\t\t\t\t\t...migratedAttributes,\n\t\t\t\t\tordered: 'OL' === nodeName,\n\t\t\t\t};\n\t\t\t},\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { nodeName, values } = attributes;\n\n\t\t\t\treturn (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName={ nodeName.toLowerCase() }\n\t\t\t\t\t\tvalue={ values }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\n\tmerge( attributes, attributesToMerge ) {\n\t\tconst { values } = attributesToMerge;\n\n\t\tif ( ! values || values === '<li></li>' ) {\n\t\t\treturn attributes;\n\t\t}\n\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tvalues: attributes.values + values,\n\t\t};\n\t},\n\n\tedit: class extends Component {\n\t\tconstructor() {\n\t\t\tsuper( ...arguments );\n\n\t\t\tthis.setupEditor = this.setupEditor.bind( this );\n\t\t\tthis.getEditorSettings = this.getEditorSettings.bind( this );\n\t\t\tthis.setNextValues = this.setNextValues.bind( this );\n\n\t\t\tthis.state = {\n\t\t\t\tinternalListType: null,\n\t\t\t};\n\t\t}\n\n\t\tfindInternalListType( { parents } ) {\n\t\t\tconst list = find( parents, ( node ) => node.nodeName === 'UL' || node.nodeName === 'OL' );\n\t\t\treturn list ? list.nodeName : null;\n\t\t}\n\n\t\tsetupEditor( editor ) {\n\t\t\teditor.on( 'nodeChange', ( nodeInfo ) => {\n\t\t\t\tthis.setState( {\n\t\t\t\t\tinternalListType: this.findInternalListType( nodeInfo ),\n\t\t\t\t} );\n\t\t\t} );\n\n\t\t\t// Check for languages that do not have square brackets on their keyboards.\n\t\t\tconst lang = window.navigator.browserLanguage || window.navigator.language;\n\t\t\tconst keyboardHasSquareBracket = ! /^(?:fr|nl|sv|ru|de|es|it)/.test( lang );\n\n\t\t\tif ( keyboardHasSquareBracket ) {\n\t\t\t\t// `[` is keycode 219; `]` is keycode 221.\n\t\t\t\teditor.shortcuts.add( 'meta+219', 'Decrease indent', 'Outdent' );\n\t\t\t\teditor.shortcuts.add( 'meta+221', 'Increase indent', 'Indent' );\n\t\t\t} else {\n\t\t\t\teditor.shortcuts.add( 'meta+shift+m', 'Decrease indent', 'Outdent' );\n\t\t\t\teditor.shortcuts.add( 'meta+m', 'Increase indent', 'Indent' );\n\t\t\t}\n\n\t\t\tthis.editor = editor;\n\t\t}\n\n\t\tcreateSetListType( type, command ) {\n\t\t\treturn () => {\n\t\t\t\tconst { setAttributes } = this.props;\n\t\t\t\tconst { internalListType } = this.state;\n\t\t\t\tif ( internalListType ) {\n\t\t\t\t\t// Only change list types, don't toggle off internal lists.\n\t\t\t\t\tif ( internalListType !== type && this.editor ) {\n\t\t\t\t\t\tthis.editor.execCommand( command );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetAttributes( { ordered: type === 'OL' } );\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tcreateExecCommand( command ) {\n\t\t\treturn () => {\n\t\t\t\tif ( this.editor ) {\n\t\t\t\t\tthis.editor.execCommand( command );\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tgetEditorSettings( editorSettings ) {\n\t\t\treturn {\n\t\t\t\t...editorSettings,\n\t\t\t\tplugins: ( editorSettings.plugins || [] ).concat( 'lists' ),\n\t\t\t\tlists_indent_on_tab: false,\n\t\t\t};\n\t\t}\n\n\t\tsetNextValues( nextValues ) {\n\t\t\tthis.props.setAttributes( { values: nextValues } );\n\t\t}\n\n\t\trender() {\n\t\t\tconst {\n\t\t\t\tattributes,\n\t\t\t\tinsertBlocksAfter,\n\t\t\t\tsetAttributes,\n\t\t\t\tmergeBlocks,\n\t\t\t\tonReplace,\n\t\t\t\tclassName,\n\t\t\t} = this.props;\n\t\t\tconst { ordered, values } = attributes;\n\t\t\tconst tagName = ordered ? 'ol' : 'ul';\n\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<BlockControls\n\t\t\t\t\t\tcontrols={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ticon: 'editor-ul',\n\t\t\t\t\t\t\t\ttitle: __( 'Convert to unordered list' ),\n\t\t\t\t\t\t\t\tisActive: ! ordered,\n\t\t\t\t\t\t\t\tonClick: this.createSetListType( 'UL', 'InsertUnorderedList' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ticon: 'editor-ol',\n\t\t\t\t\t\t\t\ttitle: __( 'Convert to ordered list' ),\n\t\t\t\t\t\t\t\tisActive: ordered,\n\t\t\t\t\t\t\t\tonClick: this.createSetListType( 'OL', 'InsertOrderedList' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ticon: 'editor-outdent',\n\t\t\t\t\t\t\t\ttitle: __( 'Outdent list item' ),\n\t\t\t\t\t\t\t\tonClick: this.createExecCommand( 'Outdent' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ticon: 'editor-indent',\n\t\t\t\t\t\t\t\ttitle: __( 'Indent list item' ),\n\t\t\t\t\t\t\t\tonClick: this.createExecCommand( 'Indent' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tmultiline=\"li\"\n\t\t\t\t\t\ttagName={ tagName }\n\t\t\t\t\t\tunstableGetSettings={ this.getEditorSettings }\n\t\t\t\t\t\tunstableOnSetup={ this.setupEditor }\n\t\t\t\t\t\tonChange={ this.setNextValues }\n\t\t\t\t\t\tvalue={ values }\n\t\t\t\t\t\twrapperClassName=\"block-library-list\"\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tplaceholder={ __( 'Write list…' ) }\n\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\tonSplit={\n\t\t\t\t\t\t\tinsertBlocksAfter ?\n\t\t\t\t\t\t\t\t( before, after, ...blocks ) => {\n\t\t\t\t\t\t\t\t\tif ( ! blocks.length ) {\n\t\t\t\t\t\t\t\t\t\tblocks.push( createBlock( 'core/paragraph' ) );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( after !== '<li></li>' ) {\n\t\t\t\t\t\t\t\t\t\tblocks.push( createBlock( 'core/list', {\n\t\t\t\t\t\t\t\t\t\t\tordered,\n\t\t\t\t\t\t\t\t\t\t\tvalues: after,\n\t\t\t\t\t\t\t\t\t\t} ) );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tsetAttributes( { values: before } );\n\t\t\t\t\t\t\t\t\tinsertBlocksAfter( blocks );\n\t\t\t\t\t\t\t\t} :\n\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonRemove={ () => onReplace( [] ) }\n\t\t\t\t\t/>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\t},\n\n\tsave( { attributes } ) {\n\t\tconst { ordered, values } = attributes;\n\t\tconst tagName = ordered ? 'ol' : 'ul';\n\n\t\treturn (\n\t\t\t<RichText.Content tagName={ tagName } value={ values } multiline=\"li\" />\n\t\t);\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tInspectorControls,\n\tPanelColorSettings,\n\twithColors,\n} from '@wordpress/editor';\nimport { Component, Fragment } from '@wordpress/element';\nimport { Toolbar } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport MediaContainer from './media-container';\n\n/**\n * Constants\n */\nconst ALLOWED_BLOCKS = [ 'core/button', 'core/paragraph', 'core/heading', 'core/list' ];\nconst TEMPLATE = [\n\t[ 'core/paragraph', { fontSize: 'large', placeholder: 'Content…' } ],\n];\n\nclass MediaTextEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectMedia = this.onSelectMedia.bind( this );\n\t\tthis.onWidthChange = this.onWidthChange.bind( this );\n\t\tthis.commitWidthChange = this.commitWidthChange.bind( this );\n\t\tthis.state = {\n\t\t\tmediaWidth: null,\n\t\t};\n\t}\n\n\tonSelectMedia( media ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tlet mediaType;\n\t\t// for media selections originated from a file upload.\n\t\tif ( media.media_type ) {\n\t\t\tif ( media.media_type === 'image' ) {\n\t\t\t\tmediaType = 'image';\n\t\t\t} else {\n\t\t\t\t// only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n\t\t\t\t// video contain the media type of 'file' in the object returned from the rest api.\n\t\t\t\tmediaType = 'video';\n\t\t\t}\n\t\t} else { // for media selections originated from existing files in the media library.\n\t\t\tmediaType = media.type;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tmediaAlt: media.alt,\n\t\t\tmediaId: media.id,\n\t\t\tmediaType,\n\t\t\tmediaUrl: media.url,\n\t\t} );\n\t}\n\n\tonWidthChange( width ) {\n\t\tthis.setState( {\n\t\t\tmediaWidth: width,\n\t\t} );\n\t}\n\n\tcommitWidthChange( width ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\tmediaWidth: width,\n\t\t} );\n\t\tthis.setState( {\n\t\t\tmediaWidth: null,\n\t\t} );\n\t}\n\n\trenderMediaArea() {\n\t\tconst { attributes } = this.props;\n\t\tconst { mediaAlt, mediaId, mediaPosition, mediaType, mediaUrl, mediaWidth } = attributes;\n\n\t\treturn (\n\t\t\t<MediaContainer\n\t\t\t\tclassName=\"block-library-media-text__media-container\"\n\t\t\t\tonSelectMedia={ this.onSelectMedia }\n\t\t\t\tonWidthChange={ this.onWidthChange }\n\t\t\t\tcommitWidthChange={ this.commitWidthChange }\n\t\t\t\t{ ...{ mediaAlt, mediaId, mediaType, mediaUrl, mediaPosition, mediaWidth } }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tclassName,\n\t\t\tbackgroundColor,\n\t\t\tisSelected,\n\t\t\tsetAttributes,\n\t\t\tsetBackgroundColor,\n\t\t} = this.props;\n\t\tconst { mediaPosition, mediaWidth } = attributes;\n\t\tconst temporaryMediaWidth = this.state.mediaWidth;\n\t\tconst classNames = classnames( className, {\n\t\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t\t'is-selected': isSelected,\n\t\t\t[ backgroundColor.class ]: backgroundColor.class,\n\t\t} );\n\t\tconst widthString = `${ temporaryMediaWidth || mediaWidth }%`;\n\t\tconst style = {\n\t\t\tgridTemplateColumns: 'right' === mediaPosition ? `auto ${ widthString }` : `${ widthString } auto`,\n\t\t\tbackgroundColor: backgroundColor.color,\n\t\t};\n\t\tconst colorSettings = [ {\n\t\t\tvalue: backgroundColor.color,\n\t\t\tonChange: setBackgroundColor,\n\t\t\tlabel: __( 'Background Color' ),\n\t\t} ];\n\t\tconst toolbarControls = [ {\n\t\t\ticon: 'align-pull-left',\n\t\t\ttitle: __( 'Show media on left' ),\n\t\t\tisActive: mediaPosition === 'left',\n\t\t\tonClick: () => setAttributes( { mediaPosition: 'left' } ),\n\t\t}, {\n\t\t\ticon: 'align-pull-right',\n\t\t\ttitle: __( 'Show media on right' ),\n\t\t\tisActive: mediaPosition === 'right',\n\t\t\tonClick: () => setAttributes( { mediaPosition: 'right' } ),\n\t\t} ];\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\ttitle={ __( 'Color Settings' ) }\n\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\tcolorSettings={ colorSettings }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar\n\t\t\t\t\t\tcontrols={ toolbarControls }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div className={ classNames } style={ style } >\n\t\t\t\t\t{ this.renderMediaArea() }\n\t\t\t\t\t<InnerBlocks\n\t\t\t\t\t\tallowedBlocks={ ALLOWED_BLOCKS }\n\t\t\t\t\t\ttemplate={ TEMPLATE }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withColors( 'backgroundColor' )( MediaTextEdit );\n","/**\n * External dependencies\n */\nimport { noop } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInnerBlocks,\n\tgetColorClassName,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nconst DEFAULT_MEDIA_WIDTH = 50;\n\nexport const name = 'core/media-text';\n\nexport const settings = {\n\ttitle: __( 'Media & Text' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M13 17h8v-2h-8v2zM3 19h8V5H3v14zM13 9h8V7h-8v2zm0 4h8v-2h-8v2z\" /></svg>,\n\n\tcategory: 'layout',\n\n\tkeywords: [ __( 'image' ), __( 'video' ) ],\n\n\tattributes: {\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'wide',\n\t\t},\n\t\tbackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tcustomBackgroundColor: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tmediaAlt: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure img',\n\t\t\tattribute: 'alt',\n\t\t\tdefault: '',\n\t\t},\n\t\tmediaPosition: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'left',\n\t\t},\n\t\tmediaId: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tmediaUrl: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'figure video,figure img',\n\t\t\tattribute: 'src',\n\t\t},\n\t\tmediaType: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tmediaWidth: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 50,\n\t\t},\n\t},\n\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\tbackgroundColor,\n\t\t\tcustomBackgroundColor,\n\t\t\tmediaAlt,\n\t\t\tmediaPosition,\n\t\t\tmediaType,\n\t\t\tmediaUrl,\n\t\t\tmediaWidth,\n\t\t} = attributes;\n\t\tconst mediaTypeRenders = {\n\t\t\timage: () => <img src={ mediaUrl } alt={ mediaAlt } />,\n\t\t\tvideo: () => <video controls src={ mediaUrl } />,\n\t\t};\n\n\t\tconst backgroundClass = getColorClassName( 'background-color', backgroundColor );\n\t\tconst className = classnames( {\n\t\t\t'has-media-on-the-right': 'right' === mediaPosition,\n\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t} );\n\n\t\tlet gridTemplateColumns;\n\t\tif ( mediaWidth !== DEFAULT_MEDIA_WIDTH ) {\n\t\t\tgridTemplateColumns = 'right' === mediaPosition ? `auto ${ mediaWidth }%` : `${ mediaWidth }% auto`;\n\t\t}\n\t\tconst style = {\n\t\t\tbackgroundColor: backgroundClass ? undefined : customBackgroundColor,\n\t\t\tgridTemplateColumns,\n\t\t};\n\t\treturn (\n\t\t\t<div className={ className } style={ style }>\n\t\t\t\t<figure className=\"wp-block-media-text__media\" >\n\t\t\t\t\t{ ( mediaTypeRenders[ mediaType ] || noop )() }\n\t\t\t\t</figure>\n\t\t\t\t<div className=\"wp-block-media-text__content\">\n\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, Fragment } from '@wordpress/element';\nimport { IconButton, ResizableBox, Toolbar } from '@wordpress/components';\nimport {\n\tBlockControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n} from '@wordpress/editor';\n\n/**\n * Constants\n */\nconst ALLOWED_MEDIA_TYPES = [ 'image', 'video' ];\n\nclass MediaContainer extends Component {\n\trenderToolbarEditButton() {\n\t\tconst { mediaId, onSelectMedia } = this.props;\n\t\treturn (\n\t\t\t<BlockControls>\n\t\t\t\t<Toolbar>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tvalue={ mediaId }\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Edit Media' ) }\n\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</Toolbar>\n\t\t\t</BlockControls>\n\t\t);\n\t}\n\n\trenderImage() {\n\t\tconst { mediaAlt, mediaUrl, className } = this.props;\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ this.renderToolbarEditButton() }\n\t\t\t\t<figure className={ className }>\n\t\t\t\t\t<img src={ mediaUrl } alt={ mediaAlt } />\n\t\t\t\t</figure>\n\t\t\t</Fragment>\n\t\t);\n\t}\n\n\trenderVideo() {\n\t\tconst { mediaUrl, className } = this.props;\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ this.renderToolbarEditButton() }\n\t\t\t\t<figure className={ className }>\n\t\t\t\t\t<video controls src={ mediaUrl } />\n\t\t\t\t</figure>\n\t\t\t</Fragment>\n\t\t);\n\t}\n\n\trenderPlaceholder() {\n\t\tconst { onSelectMedia, className } = this.props;\n\t\treturn (\n\t\t\t<MediaPlaceholder\n\t\t\t\ticon=\"format-image\"\n\t\t\t\tlabels={ {\n\t\t\t\t\ttitle: __( 'Media area' ),\n\t\t\t\t\tname: __( 'a media file (image or video)' ),\n\t\t\t\t} }\n\t\t\t\tclassName={ className }\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\taccept=\"image/*,video/*\"\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { mediaPosition, mediaUrl, mediaType, mediaWidth, commitWidthChange, onWidthChange } = this.props;\n\t\tif ( mediaType && mediaUrl ) {\n\t\t\tconst onResize = ( event, direction, elt ) => {\n\t\t\t\tonWidthChange( parseInt( elt.style.width ) );\n\t\t\t};\n\t\t\tconst onResizeStop = ( event, direction, elt ) => {\n\t\t\t\tcommitWidthChange( parseInt( elt.style.width ) );\n\t\t\t};\n\t\t\tconst enablePositions = {\n\t\t\t\tright: mediaPosition === 'left',\n\t\t\t\tleft: mediaPosition === 'right',\n\t\t\t};\n\n\t\t\tlet mediaElement = null;\n\t\t\tswitch ( mediaType ) {\n\t\t\t\tcase 'image':\n\t\t\t\t\tmediaElement = this.renderImage();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'video':\n\t\t\t\t\tmediaElement = this.renderVideo();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<ResizableBox\n\t\t\t\t\tclassName=\"editor-media-container__resizer\"\n\t\t\t\t\tsize={ { width: mediaWidth + '%' } }\n\t\t\t\t\tminWidth=\"10%\"\n\t\t\t\t\tmaxWidth=\"100%\"\n\t\t\t\t\tenable={ enablePositions }\n\t\t\t\t\tonResize={ onResize }\n\t\t\t\t\tonResizeStop={ onResizeStop }\n\t\t\t\t\taxis=\"x\"\n\t\t\t\t>\n\t\t\t\t\t{ mediaElement }\n\t\t\t\t</ResizableBox>\n\t\t\t);\n\t\t}\n\t\treturn this.renderPlaceholder();\n\t}\n}\n\nexport default MediaContainer;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { RawHTML, Fragment } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { getBlockType, createBlock } from '@wordpress/blocks';\nimport { withDispatch } from '@wordpress/data';\nimport { Warning } from '@wordpress/editor';\n\nfunction MissingBlockWarning( { attributes, convertToHTML } ) {\n\tconst { originalName, originalUndelimitedContent } = attributes;\n\tconst hasContent = !! originalUndelimitedContent;\n\tconst hasHTMLBlock = getBlockType( 'core/html' );\n\n\tconst actions = [];\n\tlet messageHTML;\n\tif ( hasContent && hasHTMLBlock ) {\n\t\tmessageHTML = sprintf(\n\t\t\t__( 'Your site doesn\\'t include support for the \"%s\" block. You can leave this block intact, convert its content to a Custom HTML block, or remove it entirely.' ),\n\t\t\toriginalName\n\t\t);\n\t\tactions.push(\n\t\t\t<Button key=\"convert\" onClick={ convertToHTML } isLarge isPrimary>\n\t\t\t\t{ __( 'Keep as HTML' ) }\n\t\t\t</Button>\n\t\t);\n\t} else {\n\t\tmessageHTML = sprintf(\n\t\t\t__( 'Your site doesn\\'t include support for the \"%s\" block. You can leave this block intact or remove it entirely.' ),\n\t\t\toriginalName\n\t\t);\n\t}\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<Warning actions={ actions }>\n\t\t\t\t{ messageHTML }\n\t\t\t</Warning>\n\t\t\t<RawHTML>{ originalUndelimitedContent }</RawHTML>\n\t\t</Fragment>\n\t);\n}\n\nconst edit = withDispatch( ( dispatch, { clientId, attributes } ) => {\n\tconst { replaceBlock } = dispatch( 'core/editor' );\n\treturn {\n\t\tconvertToHTML() {\n\t\t\treplaceBlock( clientId, createBlock( 'core/html', {\n\t\t\t\tcontent: attributes.originalUndelimitedContent,\n\t\t\t} ) );\n\t\t},\n\t};\n} )( MissingBlockWarning );\n\nexport const name = 'core/missing';\n\nexport const settings = {\n\tname,\n\tcategory: 'common',\n\ttitle: __( 'Unrecognized Block' ),\n\tdescription: __( 'Your site doesn\\'t include support for this block.' ),\n\n\tsupports: {\n\t\tclassName: false,\n\t\tcustomClassName: false,\n\t\tinserter: false,\n\t\thtml: false,\n\t},\n\n\tattributes: {\n\t\toriginalName: {\n\t\t\ttype: 'string',\n\t\t},\n\t\toriginalUndelimitedContent: {\n\t\t\ttype: 'string',\n\t\t},\n\t\toriginalContent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t},\n\t},\n\n\tedit,\n\tsave( { attributes } ) {\n\t\t// Preserve the missing block's content.\n\t\treturn <RawHTML>{ attributes.originalContent }</RawHTML>;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, ToggleControl } from '@wordpress/components';\nimport { Component, Fragment } from '@wordpress/element';\nimport { InspectorControls } from '@wordpress/editor';\nimport { ENTER } from '@wordpress/keycodes';\nimport {\n\tgetDefaultBlockName,\n\tcreateBlock,\n} from '@wordpress/blocks';\n\nexport default class MoreEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onChangeInput = this.onChangeInput.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\n\t\tthis.state = {\n\t\t\tdefaultText: __( 'Read more' ),\n\t\t};\n\t}\n\n\tonChangeInput( event ) {\n\t\t// Set defaultText to an empty string, allowing the user to clear/replace the input field's text\n\t\tthis.setState( {\n\t\t\tdefaultText: '',\n\t\t} );\n\n\t\tconst value = event.target.value.length === 0 ? undefined : event.target.value;\n\t\tthis.props.setAttributes( { customText: value } );\n\t}\n\n\tonKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst { insertBlocksAfter } = this.props;\n\t\tif ( keyCode === ENTER ) {\n\t\t\tinsertBlocksAfter( [ createBlock( getDefaultBlockName() ) ] );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { customText, noTeaser } = this.props.attributes;\n\t\tconst { setAttributes } = this.props;\n\n\t\tconst toggleNoTeaser = () => setAttributes( { noTeaser: ! noTeaser } );\n\t\tconst { defaultText } = this.state;\n\t\tconst value = customText !== undefined ? customText : defaultText;\n\t\tconst inputLength = value.length + 1;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Hide the teaser before the \"More\" tag' ) }\n\t\t\t\t\t\t\tchecked={ !! noTeaser }\n\t\t\t\t\t\t\tonChange={ toggleNoTeaser }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<div className=\"wp-block-more\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tsize={ inputLength }\n\t\t\t\t\t\tonChange={ this.onChangeInput }\n\t\t\t\t\t\tonKeyDown={ this.onKeyDown }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n","/**\n * External dependencies\n */\nimport { compact } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { RawHTML } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPath,\n\tG,\n\tSVG,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/more';\n\nexport const settings = {\n\ttitle: _x( 'More', 'block name' ),\n\n\tdescription: __( 'Want to show only part of this post on your blogs home page? Insert a \"More\" block where you want the split.' ),\n\n\ticon: <SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><Path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><G><Path d=\"M2 9v2h19V9H2zm0 6h5v-2H2v2zm7 0h5v-2H9v2zm7 0h5v-2h-5v2z\" /></G></SVG>,\n\n\tcategory: 'layout',\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\tclassName: false,\n\t\thtml: false,\n\t\tmultiple: false,\n\t},\n\n\tattributes: {\n\t\tcustomText: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tnoTeaser: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tschema: {\n\t\t\t\t\t'wp-block': { attributes: [ 'data-block' ] },\n\t\t\t\t},\n\t\t\t\tisMatch: ( node ) => node.dataset && node.dataset.block === 'core/more',\n\t\t\t\ttransform( node ) {\n\t\t\t\t\tconst { customText, noTeaser } = node.dataset;\n\t\t\t\t\tconst attrs = {};\n\t\t\t\t\t// Don't copy unless defined and not an empty string\n\t\t\t\t\tif ( customText ) {\n\t\t\t\t\t\tattrs.customText = customText;\n\t\t\t\t\t}\n\t\t\t\t\t// Special handling for boolean\n\t\t\t\t\tif ( noTeaser === '' ) {\n\t\t\t\t\t\tattrs.noTeaser = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn createBlock( 'core/more', attrs );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { customText, noTeaser } = attributes;\n\n\t\tconst moreTag = customText ?\n\t\t\t`<!--more ${ customText }-->` :\n\t\t\t'<!--more-->';\n\n\t\tconst noTeaserTag = noTeaser ?\n\t\t\t'<!--noteaser-->' :\n\t\t\t'';\n\n\t\treturn (\n\t\t\t<RawHTML>\n\t\t\t\t{ compact( [ moreTag, noTeaserTag ] ).join( '\\n' ) }\n\t\t\t</RawHTML>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RawHTML } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\n\nexport const name = 'core/nextpage';\n\nexport const settings = {\n\ttitle: __( 'Page break' ),\n\n\tdescription: __( 'This block allows you to set break points on your post. Visitors of your blog are then presented with content split into multiple pages.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g><path d=\"M9 12h6v-2H9zm-7 0h5v-2H2zm15 0h5v-2h-5zm3 2v2l-6 6H6a2 2 0 0 1-2-2v-6h2v6h6v-4a2 2 0 0 1 2-2h6zM4 8V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4h-2V4H6v4z\" /></g></svg>,\n\n\tcategory: 'layout',\n\n\tkeywords: [ __( 'next page' ), __( 'pagination' ) ],\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\tclassName: false,\n\t\thtml: false,\n\t},\n\n\tattributes: {},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tschema: {\n\t\t\t\t\t'wp-block': { attributes: [ 'data-block' ] },\n\t\t\t\t},\n\t\t\t\tisMatch: ( node ) => node.dataset && node.dataset.block === 'core/nextpage',\n\t\t\t\ttransform() {\n\t\t\t\t\treturn createBlock( 'core/nextpage', {} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit() {\n\t\treturn (\n\t\t\t<div className=\"wp-block-nextpage\">\n\t\t\t\t<span>{ __( 'Page break' ) }</span>\n\t\t\t</div>\n\t\t);\n\t},\n\n\tsave() {\n\t\treturn (\n\t\t\t<RawHTML>\n\t\t\t\t{ '<!--nextpage-->' }\n\t\t\t</RawHTML>\n\t\t);\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tComponent,\n\tFragment,\n} from '@wordpress/element';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tToolbar,\n\twithFallbackStyles,\n} from '@wordpress/components';\nimport {\n\twithColors,\n\tAlignmentToolbar,\n\tBlockControls,\n\tContrastChecker,\n\tFontSizePicker,\n\tInspectorControls,\n\tPanelColorSettings,\n\tRichText,\n\twithFontSizes,\n} from '@wordpress/editor';\nimport { createBlock } from '@wordpress/blocks';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\nconst { getComputedStyle } = window;\n\nconst name = 'core/paragraph';\n\nconst applyFallbackStyles = withFallbackStyles( ( node, ownProps ) => {\n\tconst { textColor, backgroundColor, fontSize, customFontSize } = ownProps.attributes;\n\tconst editableNode = node.querySelector( '[contenteditable=\"true\"]' );\n\t//verify if editableNode is available, before using getComputedStyle.\n\tconst computedStyles = editableNode ? getComputedStyle( editableNode ) : null;\n\treturn {\n\t\tfallbackBackgroundColor: backgroundColor || ! computedStyles ? undefined : computedStyles.backgroundColor,\n\t\tfallbackTextColor: textColor || ! computedStyles ? undefined : computedStyles.color,\n\t\tfallbackFontSize: fontSize || customFontSize || ! computedStyles ? undefined : parseInt( computedStyles.fontSize ) || undefined,\n\t};\n} );\n\nclass ParagraphBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onReplace = this.onReplace.bind( this );\n\t\tthis.toggleDropCap = this.toggleDropCap.bind( this );\n\t\tthis.splitBlock = this.splitBlock.bind( this );\n\t}\n\n\tonReplace( blocks ) {\n\t\tconst { attributes, onReplace } = this.props;\n\t\tonReplace( blocks.map( ( block, index ) => (\n\t\t\tindex === 0 && block.name === name ?\n\t\t\t\t{ ...block,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t...block.attributes,\n\t\t\t\t\t},\n\t\t\t\t} :\n\t\t\t\tblock\n\t\t) ) );\n\t}\n\n\ttoggleDropCap() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tsetAttributes( { dropCap: ! attributes.dropCap } );\n\t}\n\n\tgetDropCapHelp( checked ) {\n\t\treturn checked ? __( 'Showing large initial letter.' ) : __( 'Toggle to show a large initial letter.' );\n\t}\n\n\t/**\n\t * Split handler for RichText value, namely when content is pasted or the\n\t * user presses the Enter key.\n\t *\n\t * @param {?Array} before Optional before value, to be used as content\n\t * in place of what exists currently for the\n\t * block. If undefined, the block is deleted.\n\t * @param {?Array} after Optional after value, to be appended in a new\n\t * paragraph block to the set of blocks passed\n\t * as spread.\n\t * @param {...WPBlock} blocks Optional blocks inserted between the before\n\t * and after value blocks.\n\t */\n\tsplitBlock( before, after, ...blocks ) {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tinsertBlocksAfter,\n\t\t\tsetAttributes,\n\t\t\tonReplace,\n\t\t} = this.props;\n\n\t\tif ( after !== null ) {\n\t\t\t// Append \"After\" content as a new paragraph block to the end of\n\t\t\t// any other blocks being inserted after the current paragraph.\n\t\t\tblocks.push( createBlock( name, { content: after } ) );\n\t\t}\n\n\t\tif ( blocks.length && insertBlocksAfter ) {\n\t\t\tinsertBlocksAfter( blocks );\n\t\t}\n\n\t\tconst { content } = attributes;\n\t\tif ( before === null ) {\n\t\t\t// If before content is omitted, treat as intent to delete block.\n\t\t\tonReplace( [] );\n\t\t} else if ( content !== before ) {\n\t\t\t// Only update content if it has in-fact changed. In case that user\n\t\t\t// has created a new paragraph at end of an existing one, the value\n\t\t\t// of before will be strictly equal to the current content.\n\t\t\tsetAttributes( { content: before } );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tsetAttributes,\n\t\t\tmergeBlocks,\n\t\t\tonReplace,\n\t\t\tclassName,\n\t\t\tbackgroundColor,\n\t\t\ttextColor,\n\t\t\tsetBackgroundColor,\n\t\t\tsetTextColor,\n\t\t\tfallbackBackgroundColor,\n\t\t\tfallbackTextColor,\n\t\t\tfallbackFontSize,\n\t\t\tfontSize,\n\t\t\tsetFontSize,\n\t\t\tisRTL,\n\t\t} = this.props;\n\n\t\tconst {\n\t\t\talign,\n\t\t\tcontent,\n\t\t\tdropCap,\n\t\t\tplaceholder,\n\t\t\tdirection,\n\t\t} = attributes;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isRTL && (\n\t\t\t\t\t\t<Toolbar\n\t\t\t\t\t\t\tcontrols={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ticon: 'editor-ltr',\n\t\t\t\t\t\t\t\t\ttitle: _x( 'Left to right', 'editor button' ),\n\t\t\t\t\t\t\t\t\tisActive: direction === 'ltr',\n\t\t\t\t\t\t\t\t\tonClick() {\n\t\t\t\t\t\t\t\t\t\tconst nextDirection = direction === 'ltr' ? undefined : 'ltr';\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tdirection: nextDirection,\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Text Settings' ) } className=\"blocks-font-size\">\n\t\t\t\t\t\t<FontSizePicker\n\t\t\t\t\t\t\tfallbackFontSize={ fallbackFontSize }\n\t\t\t\t\t\t\tvalue={ fontSize.size }\n\t\t\t\t\t\t\tonChange={ setFontSize }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Drop Cap' ) }\n\t\t\t\t\t\t\tchecked={ !! dropCap }\n\t\t\t\t\t\t\tonChange={ this.toggleDropCap }\n\t\t\t\t\t\t\thelp={ this.getDropCapHelp }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\ttitle={ __( 'Color Settings' ) }\n\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: backgroundColor.color,\n\t\t\t\t\t\t\t\tonChange: setBackgroundColor,\n\t\t\t\t\t\t\t\tlabel: __( 'Background Color' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\tonChange: setTextColor,\n\t\t\t\t\t\t\t\tlabel: __( 'Text Color' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\ttextColor: textColor.color,\n\t\t\t\t\t\t\t\tbackgroundColor: backgroundColor.color,\n\t\t\t\t\t\t\t\tfallbackTextColor,\n\t\t\t\t\t\t\t\tfallbackBackgroundColor,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tfontSize={ fontSize.size }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelColorSettings>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\tclassName={ classnames( 'wp-block-paragraph', className, {\n\t\t\t\t\t\t'has-text-color': textColor.color,\n\t\t\t\t\t\t'has-background': backgroundColor.color,\n\t\t\t\t\t\t'has-drop-cap': dropCap,\n\t\t\t\t\t\t[ backgroundColor.class ]: backgroundColor.class,\n\t\t\t\t\t\t[ textColor.class ]: textColor.class,\n\t\t\t\t\t\t[ fontSize.class ]: fontSize.class,\n\t\t\t\t\t} ) }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tbackgroundColor: backgroundColor.color,\n\t\t\t\t\t\tcolor: textColor.color,\n\t\t\t\t\t\tfontSize: fontSize.size ? fontSize.size + 'px' : undefined,\n\t\t\t\t\t\ttextAlign: align,\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tonSplit={ this.splitBlock }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tonReplace={ this.onReplace }\n\t\t\t\t\tonRemove={ () => onReplace( [] ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text or type / to add content' ) }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nconst ParagraphEdit = compose( [\n\twithColors( 'backgroundColor', { textColor: 'color' } ),\n\twithFontSizes( 'fontSize' ),\n\tapplyFallbackStyles,\n\twithSelect( ( select ) => {\n\t\tconst { getEditorSettings } = select( 'core/editor' );\n\n\t\treturn {\n\t\t\tisRTL: getEditorSettings().isRTL,\n\t\t};\n\t} ),\n] )( ParagraphBlock );\n\nexport default ParagraphEdit;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isFinite, omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tRawHTML,\n} from '@wordpress/element';\nimport {\n\tgetColorClassName,\n\tgetFontSizeClass,\n\tRichText,\n} from '@wordpress/editor';\nimport { getPhrasingContentSchema } from '@wordpress/blocks';\nimport {\n\tPath,\n\tSVG,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nconst supports = {\n\tclassName: false,\n};\n\nconst schema = {\n\tcontent: {\n\t\tsource: 'html',\n\t\tselector: 'p',\n\t\tdefault: '',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n\tdropCap: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t},\n\ttextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTextColor: {\n\t\ttype: 'string',\n\t},\n\tbackgroundColor: {\n\t\ttype: 'string',\n\t},\n\tcustomBackgroundColor: {\n\t\ttype: 'string',\n\t},\n\tfontSize: {\n\t\ttype: 'string',\n\t},\n\tcustomFontSize: {\n\t\ttype: 'number',\n\t},\n\tdirection: {\n\t\ttype: 'string',\n\t\tenum: [ 'ltr', 'rtl' ],\n\t},\n};\n\nexport const name = 'core/paragraph';\n\nexport const settings = {\n\ttitle: __( 'Paragraph' ),\n\n\tdescription: __( 'Add some basic text.' ),\n\n\ticon: <SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><Path d=\"M11 5v7H9.5C7.6 12 6 10.4 6 8.5S7.6 5 9.5 5H11m8-2H9.5C6.5 3 4 5.5 4 8.5S6.5 14 9.5 14H11v7h2V5h2v16h2V5h2V3z\" /></SVG>,\n\n\tcategory: 'common',\n\n\tkeywords: [ __( 'text' ) ],\n\n\tsupports,\n\n\tattributes: schema,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\t// Paragraph is a fallback and should be matched last.\n\t\t\t\tpriority: 20,\n\t\t\t\tselector: 'p',\n\t\t\t\tschema: {\n\t\t\t\t\tp: {\n\t\t\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tsupports,\n\t\t\tattributes: {\n\t\t\t\t...schema,\n\t\t\t\twidth: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst {\n\t\t\t\t\twidth,\n\t\t\t\t\talign,\n\t\t\t\t\tcontent,\n\t\t\t\t\tdropCap,\n\t\t\t\t\tbackgroundColor,\n\t\t\t\t\ttextColor,\n\t\t\t\t\tcustomBackgroundColor,\n\t\t\t\t\tcustomTextColor,\n\t\t\t\t\tfontSize,\n\t\t\t\t\tcustomFontSize,\n\t\t\t\t} = attributes;\n\n\t\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\t\tconst backgroundClass = getColorClassName( 'background-color', backgroundColor );\n\t\t\t\tconst fontSizeClass = fontSize && `is-${ fontSize }-text`;\n\n\t\t\t\tconst className = classnames( {\n\t\t\t\t\t[ `align${ width }` ]: width,\n\t\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t\t'has-drop-cap': dropCap,\n\t\t\t\t\t[ fontSizeClass ]: fontSizeClass,\n\t\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t\t} );\n\n\t\t\t\tconst styles = {\n\t\t\t\t\tbackgroundColor: backgroundClass ? undefined : customBackgroundColor,\n\t\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t\t\tfontSize: fontSizeClass ? undefined : customFontSize,\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\tstyle={ styles }\n\t\t\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tsupports,\n\t\t\tattributes: omit( {\n\t\t\t\t...schema,\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t}, 'customFontSize', 'customTextColor', 'customBackgroundColor' ),\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { width, align, content, dropCap, backgroundColor, textColor, fontSize } = attributes;\n\t\t\t\tconst className = classnames( {\n\t\t\t\t\t[ `align${ width }` ]: width,\n\t\t\t\t\t'has-background': backgroundColor,\n\t\t\t\t\t'has-drop-cap': dropCap,\n\t\t\t\t} );\n\t\t\t\tconst styles = {\n\t\t\t\t\tbackgroundColor: backgroundColor,\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t};\n\n\t\t\t\treturn <p style={ styles } className={ className ? className : undefined }>{ content }</p>;\n\t\t\t},\n\t\t\tmigrate( attributes ) {\n\t\t\t\treturn omit( {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tcustomFontSize: isFinite( attributes.fontSize ) ? attributes.fontSize : undefined,\n\t\t\t\t\tcustomTextColor: attributes.textColor && '#' === attributes.textColor[ 0 ] ? attributes.textColor : undefined,\n\t\t\t\t\tcustomBackgroundColor: attributes.backgroundColor && '#' === attributes.backgroundColor[ 0 ] ? attributes.backgroundColor : undefined,\n\t\t\t\t}, [ 'fontSize', 'textColor', 'backgroundColor' ] );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tsupports,\n\t\t\tattributes: {\n\t\t\t\t...schema,\n\t\t\t\tcontent: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'html',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsave( { attributes } ) {\n\t\t\t\treturn <RawHTML>{ attributes.content }</RawHTML>;\n\t\t\t},\n\t\t\tmigrate( attributes ) {\n\t\t\t\treturn attributes;\n\t\t\t},\n\t\t},\n\t],\n\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { width } = attributes;\n\t\tif ( [ 'wide', 'full', 'left', 'right' ].indexOf( width ) !== -1 ) {\n\t\t\treturn { 'data-align': width };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\talign,\n\t\t\tcontent,\n\t\t\tdropCap,\n\t\t\tbackgroundColor,\n\t\t\ttextColor,\n\t\t\tcustomBackgroundColor,\n\t\t\tcustomTextColor,\n\t\t\tfontSize,\n\t\t\tcustomFontSize,\n\t\t\tdirection,\n\t\t} = attributes;\n\n\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\tconst backgroundClass = getColorClassName( 'background-color', backgroundColor );\n\t\tconst fontSizeClass = getFontSizeClass( fontSize );\n\n\t\tconst className = classnames( {\n\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t'has-drop-cap': dropCap,\n\t\t\t[ fontSizeClass ]: fontSizeClass,\n\t\t\t[ textClass ]: textClass,\n\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t} );\n\n\t\tconst styles = {\n\t\t\tbackgroundColor: backgroundClass ? undefined : customBackgroundColor,\n\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\tfontSize: fontSizeClass ? undefined : customFontSize,\n\t\t\ttextAlign: align,\n\t\t};\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"p\"\n\t\t\t\tstyle={ styles }\n\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\tvalue={ content }\n\t\t\t\tdir={ direction }\n\t\t\t/>\n\t\t);\n\t},\n};\n","/**\n * WordPress\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock, getPhrasingContentSchema } from '@wordpress/blocks';\nimport { RichText } from '@wordpress/editor';\n\nexport const name = 'core/preformatted';\n\nexport const settings = {\n\ttitle: __( 'Preformatted' ),\n\n\tdescription: __( 'Add text that respects your spacing and tabs, and also allows styling.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"M20,4H4C2.9,4,2,4.9,2,6v12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V6C22,4.9,21.1,4,20,4z M20,18H4V6h16V18z\" /><rect x=\"6\" y=\"10\" width=\"2\" height=\"2\" /><rect x=\"6\" y=\"14\" width=\"8\" height=\"2\" /><rect x=\"16\" y=\"14\" width=\"2\" height=\"2\" /><rect x=\"10\" y=\"10\" width=\"8\" height=\"2\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tattributes: {\n\t\tcontent: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'pre',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/code', 'core/paragraph' ],\n\t\t\t\ttransform: ( { content } ) =>\n\t\t\t\t\tcreateBlock( 'core/preformatted', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} ),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => (\n\t\t\t\t\tnode.nodeName === 'PRE' &&\n\t\t\t\t\t! (\n\t\t\t\t\t\tnode.children.length === 1 &&\n\t\t\t\t\t\tnode.firstChild.nodeName === 'CODE'\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tschema: {\n\t\t\t\t\tpre: {\n\t\t\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', attributes ),\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { attributes, mergeBlocks, setAttributes, className } ) {\n\t\tconst { content } = attributes;\n\n\t\treturn (\n\t\t\t<RichText\n\t\t\t\ttagName=\"pre\"\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tplaceholder={ __( 'Write preformatted text…' ) }\n\t\t\t\twrapperClassName={ className }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t/>\n\t\t);\n\t},\n\n\tsave( { attributes } ) {\n\t\tconst { content } = attributes;\n\n\t\treturn <RichText.Content tagName=\"pre\" value={ content } />;\n\t},\n\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tComponent,\n\tFragment,\n} from '@wordpress/element';\nimport {\n\tRichText,\n\tContrastChecker,\n\tInspectorControls,\n\twithColors,\n\tPanelColorSettings,\n} from '@wordpress/editor';\n\nexport const SOLID_COLOR_STYLE_NAME = 'solid-color';\nexport const SOLID_COLOR_CLASS = `is-style-${ SOLID_COLOR_STYLE_NAME }`;\n\nclass PullQuoteEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.wasTextColorAutomaticallyComputed = false;\n\t\tthis.pullQuoteMainColorSetter = this.pullQuoteMainColorSetter.bind( this );\n\t\tthis.pullQuoteTextColorSetter = this.pullQuoteTextColorSetter.bind( this );\n\t}\n\n\tpullQuoteMainColorSetter( colorValue ) {\n\t\tconst { colorUtils, textColor, setTextColor, setMainColor } = this.props;\n\t\tsetMainColor( colorValue );\n\t\tif ( ! textColor.color || this.wasTextColorAutomaticallyComputed ) {\n\t\t\tthis.wasTextColorAutomaticallyComputed = true;\n\t\t\tsetTextColor( colorUtils.getMostReadableColor( colorValue ) );\n\t\t}\n\t}\n\n\tpullQuoteTextColorSetter( colorValue ) {\n\t\tconst { setTextColor } = this.props;\n\t\tsetTextColor( colorValue );\n\t\tthis.wasTextColorAutomaticallyComputed = false;\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tmainColor,\n\t\t\ttextColor,\n\t\t\tsetAttributes,\n\t\t\tisSelected,\n\t\t\tclassName,\n\t\t} = this.props;\n\n\t\tconst { value, citation } = attributes;\n\n\t\tconst isSolidColorStyle = includes( className, SOLID_COLOR_CLASS );\n\t\tconst figureStyle = isSolidColorStyle ?\n\t\t\t{ backgroundColor: mainColor.color } :\n\t\t\t{ borderColor: mainColor.color };\n\t\tconst blockquoteStyle = {\n\t\t\tcolor: textColor.color,\n\t\t};\n\t\tconst blockquoteClasses = textColor.color ? classnames( 'has-text-color', {\n\t\t\t[ textColor.class ]: textColor.class,\n\t\t} ) : undefined;\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<figure style={ figureStyle } className={ classnames(\n\t\t\t\t\tclassName, {\n\t\t\t\t\t\t[ mainColor.class ]: isSolidColorStyle && mainColor.class,\n\t\t\t\t\t} ) }>\n\t\t\t\t\t<blockquote style={ blockquoteStyle } className={ blockquoteClasses }>\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tmultiline\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t( nextValue ) => setAttributes( {\n\t\t\t\t\t\t\t\t\tvalue: nextValue,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: the text of the quotation */\n\t\t\t\t\t\t\tplaceholder={ __( 'Write quote…' ) }\n\t\t\t\t\t\t\twrapperClassName=\"block-library-pullquote__content\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ( ! RichText.isEmpty( citation ) || isSelected ) && (\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\tvalue={ citation }\n\t\t\t\t\t\t\t\t/* translators: the individual or entity quoted */\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Write citation…' ) }\n\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t( nextCitation ) => setAttributes( {\n\t\t\t\t\t\t\t\t\t\tcitation: nextCitation,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"wp-block-pullquote__citation\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</blockquote>\n\t\t\t\t</figure>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\ttitle={ __( 'Color Settings' ) }\n\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: mainColor.color,\n\t\t\t\t\t\t\t\tonChange: this.pullQuoteMainColorSetter,\n\t\t\t\t\t\t\t\tlabel: __( 'Main Color' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\tonChange: this.pullQuoteTextColorSetter,\n\t\t\t\t\t\t\t\tlabel: __( 'Text Color' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSolidColorStyle && (\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\ttextColor: textColor.color,\n\t\t\t\t\t\t\t\t\tbackgroundColor: mainColor.color,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tisLargeText={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelColorSettings>\n\t\t\t\t</InspectorControls>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withColors( { mainColor: 'background-color', textColor: 'color' } )(\n\tPullQuoteEdit\n);\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { get, includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetColorClassName,\n\tRichText,\n\tgetColorObjectByAttributeValues,\n} from '@wordpress/editor';\nimport {\n\tselect,\n} from '@wordpress/data';\n\nimport {\n\tdefault as edit,\n\tSOLID_COLOR_STYLE_NAME,\n\tSOLID_COLOR_CLASS,\n} from './edit';\n\nconst blockAttributes = {\n\tvalue: {\n\t\tsource: 'html',\n\t\tselector: 'blockquote',\n\t\tmultiline: 'p',\n\t},\n\tcitation: {\n\t\tsource: 'html',\n\t\tselector: 'cite',\n\t},\n\tmainColor: {\n\t\ttype: 'string',\n\t},\n\tcustomMainColor: {\n\t\ttype: 'string',\n\t},\n\ttextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTextColor: {\n\t\ttype: 'string',\n\t},\n};\n\nexport const name = 'core/pullquote';\n\nexport const settings = {\n\n\ttitle: __( 'Pullquote' ),\n\n\tdescription: __( 'Highlight a quote from your post or page by displaying it as a graphic element.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><polygon points=\"21 18 2 18 2 20 21 20\" /><path d=\"m19 10v4h-15v-4h15m1-2h-17c-0.55 0-1 0.45-1 1v6c0 0.55 0.45 1 1 1h17c0.55 0 1-0.45 1-1v-6c0-0.55-0.45-1-1-1z\" /><polygon points=\"21 4 2 4 2 6 21 6\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tattributes: blockAttributes,\n\n\tstyles: [\n\t\t{ name: 'default', label: __( 'Regular' ), isDefault: true },\n\t\t{ name: SOLID_COLOR_STYLE_NAME, label: __( 'Solid Color' ) },\n\t],\n\n\tsupports: {\n\t\talign: [ 'left', 'right', 'wide', 'full' ],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { mainColor, customMainColor, textColor, customTextColor, value, citation, className } = attributes;\n\t\tconst isSolidColorStyle = includes( className, SOLID_COLOR_CLASS );\n\n\t\tlet figureClass, figureStyles;\n\t\t// Is solid color style\n\t\tif ( isSolidColorStyle ) {\n\t\t\tfigureClass = getColorClassName( 'background-color', mainColor );\n\t\t\tif ( ! figureClass ) {\n\t\t\t\tfigureStyles = {\n\t\t\t\t\tbackgroundColor: customMainColor,\n\t\t\t\t};\n\t\t\t}\n\t\t// Is normal style and a custom color is being used ( we can set a style directly with its value)\n\t\t} else if ( customMainColor ) {\n\t\t\tfigureStyles = {\n\t\t\t\tborderColor: customMainColor,\n\t\t\t};\n\t\t// Is normal style and a named color is being used, we need to retrieve the color value to set the style,\n\t\t// as there is no expectation that themes create classes that set border colors.\n\t\t} else if ( mainColor ) {\n\t\t\tconst colors = get( select( 'core/editor' ).getEditorSettings(), [ 'colors' ], [] );\n\t\t\tconst colorObject = getColorObjectByAttributeValues( colors, mainColor );\n\t\t\tfigureStyles = {\n\t\t\t\tborderColor: colorObject.color,\n\t\t\t};\n\t\t}\n\n\t\tconst blockquoteTextColorClass = getColorClassName( 'color', textColor );\n\t\tconst blockquoteClasses = textColor || customTextColor ? classnames( 'has-text-color', {\n\t\t\t[ blockquoteTextColorClass ]: blockquoteTextColorClass,\n\t\t} ) : undefined;\n\t\tconst blockquoteStyle = blockquoteTextColorClass ? undefined : { color: customTextColor };\n\t\treturn (\n\t\t\t<figure className={ figureClass } style={ figureStyles }>\n\t\t\t\t<blockquote className={ blockquoteClasses } style={ blockquoteStyle } >\n\t\t\t\t\t<RichText.Content value={ value } multiline />\n\t\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"cite\" value={ citation } /> }\n\t\t\t\t</blockquote>\n\t\t\t</figure>\n\t\t);\n\t},\n\n\tdeprecated: [ {\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t},\n\t\tsave( { attributes } ) {\n\t\t\tconst { value, citation } = attributes;\n\t\t\treturn (\n\t\t\t\t<blockquote>\n\t\t\t\t\t<RichText.Content value={ value } multiline />\n\t\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"cite\" value={ citation } /> }\n\t\t\t\t</blockquote>\n\t\t\t);\n\t\t},\n\t}, {\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tcitation: {\n\t\t\t\tsource: 'html',\n\t\t\t\tselector: 'footer',\n\t\t\t},\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t},\n\n\t\tsave( { attributes } ) {\n\t\t\tconst { value, citation, align } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<blockquote className={ `align${ align }` }>\n\t\t\t\t\t<RichText.Content value={ value } multiline />\n\t\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"footer\" value={ citation } /> }\n\t\t\t\t</blockquote>\n\t\t\t);\n\t\t},\n\t} ],\n};\n","/**\n * External dependencies\n */\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { createBlock, getPhrasingContentSchema } from '@wordpress/blocks';\nimport {\n\tBlockControls,\n\tAlignmentToolbar,\n\tRichText,\n} from '@wordpress/editor';\nimport { join, split, create, toHTMLString } from '@wordpress/rich-text';\n\nconst blockAttributes = {\n\tvalue: {\n\t\tsource: 'html',\n\t\tselector: 'blockquote',\n\t\tmultiline: 'p',\n\t},\n\tcitation: {\n\t\tsource: 'html',\n\t\tselector: 'cite',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n};\n\nexport const name = 'core/quote';\n\nexport const settings = {\n\ttitle: __( 'Quote' ),\n\tdescription: __( 'Maybe someone else said it better -- add some quoted text.' ),\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M19 18h-6l2-4h-2V6h8v7l-2 5zm-2-2l2-3V8h-4v4h4l-2 4zm-8 2H3l2-4H3V6h8v7l-2 5zm-2-2l2-3V8H5v4h4l-2 4z\" /></g></svg>,\n\tcategory: 'common',\n\tkeywords: [ __( 'blockquote' ) ],\n\n\tattributes: blockAttributes,\n\n\tstyles: [\n\t\t{ name: 'default', label: __( 'Regular' ), isDefault: true },\n\t\t{ name: 'large', label: __( 'Large' ) },\n\t],\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tisMultiBlock: true,\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/quote', {\n\t\t\t\t\t\tvalue: toHTMLString( join( attributes.map( ( { content } ) =>\n\t\t\t\t\t\t\tcreate( { html: content } )\n\t\t\t\t\t\t), '\\u2028' ), 'p' ),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/heading' ],\n\t\t\t\ttransform: ( { content } ) => {\n\t\t\t\t\treturn createBlock( 'core/quote', {\n\t\t\t\t\t\tvalue: `<p>${ content }</p>`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/pullquote' ],\n\t\t\t\ttransform: ( { value, citation } ) => createBlock( 'core/quote', {\n\t\t\t\t\tvalue,\n\t\t\t\t\tcitation,\n\t\t\t\t} ),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'pattern',\n\t\t\t\tregExp: /^>\\s/,\n\t\t\t\ttransform: ( { content } ) => {\n\t\t\t\t\treturn createBlock( 'core/quote', {\n\t\t\t\t\t\tvalue: `<p>${ content }</p>`,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tselector: 'blockquote',\n\t\t\t\tschema: {\n\t\t\t\t\tblockquote: {\n\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\tp: {\n\t\t\t\t\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( { value, citation } ) => {\n\t\t\t\t\tconst paragraphs = [];\n\t\t\t\t\tif ( value ) {\n\t\t\t\t\t\tparagraphs.push(\n\t\t\t\t\t\t\t...split( create( { html: value, multilineTag: 'p' } ), '\\u2028' )\n\t\t\t\t\t\t\t\t.map( ( piece ) =>\n\t\t\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\t\t\t\tcontent: toHTMLString( piece ),\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif ( citation ) {\n\t\t\t\t\t\tparagraphs.push(\n\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\t\tcontent: citation,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( paragraphs.length === 0 ) {\n\t\t\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\treturn paragraphs;\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/heading' ],\n\t\t\t\ttransform: ( { value, citation, ...attrs } ) => {\n\t\t\t\t\t// If there is no quote content, use the citation as the\n\t\t\t\t\t// content of the resulting heading. A nonexistent citation\n\t\t\t\t\t// will result in an empty heading.\n\t\t\t\t\tif ( value === '<p></p>' ) {\n\t\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\t\tcontent: citation,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst pieces = split( create( { html: value, multilineTag: 'p' } ), '\\u2028' );\n\t\t\t\t\tconst quotePieces = pieces.slice( 1 );\n\n\t\t\t\t\treturn [\n\t\t\t\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\t\t\t\tcontent: toHTMLString( pieces[ 0 ] ),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\tcreateBlock( 'core/quote', {\n\t\t\t\t\t\t\t...attrs,\n\t\t\t\t\t\t\tcitation,\n\t\t\t\t\t\t\tvalue: toHTMLString( quotePieces.length ? join( pieces.slice( 1 ), '\\u2028' ) : create(), 'p' ),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t];\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/pullquote' ],\n\t\t\t\ttransform: ( { value, citation } ) => {\n\t\t\t\t\treturn createBlock( 'core/pullquote', {\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tcitation,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { attributes, setAttributes, isSelected, mergeBlocks, onReplace, className } ) {\n\t\tconst { align, value, citation } = attributes;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<blockquote className={ className } style={ { textAlign: align } }>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tmultiline\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t( nextValue ) => setAttributes( {\n\t\t\t\t\t\t\t\tvalue: nextValue,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\tonRemove={ ( forward ) => {\n\t\t\t\t\t\t\tconst hasEmptyCitation = ! citation || citation.length === 0;\n\t\t\t\t\t\t\tif ( ! forward && hasEmptyCitation ) {\n\t\t\t\t\t\t\t\tonReplace( [] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t/* translators: the text of the quotation */\n\t\t\t\t\t\tplaceholder={ __( 'Write quote…' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ( ! RichText.isEmpty( citation ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tvalue={ citation }\n\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t( nextCitation ) => setAttributes( {\n\t\t\t\t\t\t\t\t\tcitation: nextCitation,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: the individual or entity quoted */\n\t\t\t\t\t\t\tplaceholder={ __( 'Write citation…' ) }\n\t\t\t\t\t\t\tclassName=\"wp-block-quote__citation\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</blockquote>\n\t\t\t</Fragment>\n\t\t);\n\t},\n\n\tsave( { attributes } ) {\n\t\tconst { align, value, citation } = attributes;\n\n\t\treturn (\n\t\t\t<blockquote style={ { textAlign: align ? align : null } }>\n\t\t\t\t<RichText.Content multiline value={ value } />\n\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"cite\" value={ citation } /> }\n\t\t\t</blockquote>\n\t\t);\n\t},\n\n\tmerge( attributes, { value, citation } ) {\n\t\tif ( ! value || value === '<p></p>' ) {\n\t\t\treturn {\n\t\t\t\t...attributes,\n\t\t\t\tcitation: attributes.citation + citation,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tvalue: attributes.value + value,\n\t\t\tcitation: attributes.citation + citation,\n\t\t};\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tattributes: {\n\t\t\t\t...blockAttributes,\n\t\t\t\tstyle: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tdefault: 1,\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tmigrate( attributes ) {\n\t\t\t\tif ( attributes.style === 2 ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...omit( attributes, [ 'style' ] ),\n\t\t\t\t\t\tclassName: attributes.className ? attributes.className + ' is-style-large' : 'is-style-large',\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn attributes;\n\t\t\t},\n\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { align, value, citation, style } = attributes;\n\n\t\t\t\treturn (\n\t\t\t\t\t<blockquote\n\t\t\t\t\t\tclassName={ style === 2 ? 'is-large' : '' }\n\t\t\t\t\t\tstyle={ { textAlign: align ? align : null } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content multiline value={ value } />\n\t\t\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"cite\" value={ citation } /> }\n\t\t\t\t\t</blockquote>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tattributes: {\n\t\t\t\t...blockAttributes,\n\t\t\t\tcitation: {\n\t\t\t\t\tsource: 'html',\n\t\t\t\t\tselector: 'footer',\n\t\t\t\t},\n\t\t\t\tstyle: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tdefault: 1,\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { align, value, citation, style } = attributes;\n\n\t\t\t\treturn (\n\t\t\t\t\t<blockquote\n\t\t\t\t\t\tclassName={ `blocks-quote-style-${ style }` }\n\t\t\t\t\t\tstyle={ { textAlign: align ? align : null } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content multiline value={ value } />\n\t\t\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"footer\" value={ citation } /> }\n\t\t\t\t\t</blockquote>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\n\nexport const name = 'core/separator';\n\nexport const settings = {\n\ttitle: __( 'Separator' ),\n\n\tdescription: __( 'Insert a horizontal line where you want to create a break between ideas.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M19 13H5v-2h14v2z\" /></svg>,\n\n\tcategory: 'layout',\n\n\tkeywords: [ __( 'horizontal-line' ), 'hr', __( 'divider' ) ],\n\n\tstyles: [\n\t\t{ name: 'default', label: __( 'Short Line' ), isDefault: true },\n\t\t{ name: 'wide', label: __( 'Wide Line' ) },\n\t\t{ name: 'dots', label: __( 'Dots' ) },\n\t],\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'pattern',\n\t\t\t\ttrigger: 'enter',\n\t\t\t\tregExp: /^-{3,}$/,\n\t\t\t\ttransform: () => createBlock( 'core/separator' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tselector: 'hr',\n\t\t\t\tschema: {\n\t\t\t\t\thr: {},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { className } ) {\n\t\treturn <hr className={ className } />;\n\t},\n\n\tsave() {\n\t\treturn <hr />;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { removep, autop } from '@wordpress/autop';\nimport { RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Dashicon } from '@wordpress/components';\nimport { PlainText } from '@wordpress/editor';\nimport { withInstanceId } from '@wordpress/compose';\n\nexport const name = 'core/shortcode';\n\nexport const settings = {\n\ttitle: __( 'Shortcode' ),\n\n\tdescription: __( 'Add a shortcode -- a WordPress-specific snippet of code written between square brackets.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.5,21.4l1.9,0.5l5.2-19.3l-1.9-0.5L8.5,21.4z M3,19h4v-2H5V7h2V5H3V19z M17,5v2h2v10h-2v2h4V5H17z\" /></svg>,\n\n\tcategory: 'widgets',\n\n\tattributes: {\n\t\ttext: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'text',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'shortcode',\n\t\t\t\t// Per \"Shortcode names should be all lowercase and use all\n\t\t\t\t// letters, but numbers and underscores should work fine too.\n\t\t\t\t// Be wary of using hyphens (dashes), you'll be better off not\n\t\t\t\t// using them.\" in https://codex.wordpress.org/Shortcode_API\n\t\t\t\t// Require that the first character be a letter. This notably\n\t\t\t\t// prevents footnote markings ([1]) from being caught as\n\t\t\t\t// shortcodes.\n\t\t\t\ttag: '[a-z][a-z0-9_-]*',\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tshortcode: ( attrs, { content } ) => {\n\t\t\t\t\t\t\treturn removep( autop( content ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpriority: 20,\n\t\t\t},\n\t\t],\n\t},\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\tclassName: false,\n\t\thtml: false,\n\t},\n\n\tedit: withInstanceId(\n\t\t( { attributes, setAttributes, instanceId } ) => {\n\t\t\tconst inputId = `blocks-shortcode-input-${ instanceId }`;\n\n\t\t\treturn (\n\t\t\t\t<div className=\"wp-block-shortcode\">\n\t\t\t\t\t<label htmlFor={ inputId }>\n\t\t\t\t\t\t<Dashicon icon=\"shortcode\" />\n\t\t\t\t\t\t{ __( 'Shortcode' ) }\n\t\t\t\t\t</label>\n\t\t\t\t\t<PlainText\n\t\t\t\t\t\tclassName=\"input-control\"\n\t\t\t\t\t\tid={ inputId }\n\t\t\t\t\t\tvalue={ attributes.text }\n\t\t\t\t\t\tplaceholder={ __( 'Write shortcode here…' ) }\n\t\t\t\t\t\tonChange={ ( text ) => setAttributes( { text } ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t),\n\n\tsave( { attributes } ) {\n\t\treturn <RawHTML>{ attributes.text }</RawHTML>;\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress\n */\nimport { Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/editor';\nimport { BaseControl, PanelBody, ResizableBox } from '@wordpress/components';\nimport { withInstanceId } from '@wordpress/compose';\n\nexport const name = 'core/spacer';\n\nexport const settings = {\n\ttitle: __( 'Spacer' ),\n\n\tdescription: __( 'Add an element with empty space and custom height.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M13 4v2h3.59L6 16.59V13H4v7h7v-2H7.41L18 7.41V11h2V4h-7\" /></g></svg>,\n\n\tcategory: 'layout',\n\n\tattributes: {\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 100,\n\t\t},\n\t},\n\n\tedit: withInstanceId(\n\t\t( { attributes, isSelected, setAttributes, toggleSelection, instanceId } ) => {\n\t\t\tconst { height } = attributes;\n\t\t\tconst id = `block-spacer-height-input-${ instanceId }`;\n\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<ResizableBox\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-library-spacer__resize-container',\n\t\t\t\t\t\t\t{ 'is-selected': isSelected }\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tsize={ {\n\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tminHeight=\"20\"\n\t\t\t\t\t\tenable={ {\n\t\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\t\tright: false,\n\t\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\theight: parseInt( height + delta.height, 10 ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Spacer Settings' ) }>\n\t\t\t\t\t\t\t<BaseControl label={ __( 'Height in pixels' ) } id={ id }>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\theight: parseInt( event.target.value, 10 ),\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tvalue={ height }\n\t\t\t\t\t\t\t\t\tmin=\"20\"\n\t\t\t\t\t\t\t\t\tstep=\"10\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\t),\n\n\tsave( { attributes } ) {\n\t\treturn <div style={ { height: attributes.height } } aria-hidden />;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n} from '@wordpress/editor';\n\nexport const name = 'core/subhead';\n\nexport const settings = {\n\ttitle: __( 'Subheading (deprecated)' ),\n\n\tdescription: __( 'This block is deprecated. Please use the Paragraph block instead.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M7.1 6l-.5 3h4.5L9.4 19h3l1.8-10h4.5l.5-3H7.1z\" /></svg>,\n\n\tcategory: 'common',\n\n\tsupports: {\n\t\t// Hide from inserter as this block is deprecated.\n\t\tinserter: false,\n\t\tmultiple: false,\n\t},\n\n\tattributes: {\n\t\tcontent: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'p',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', attributes ),\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { attributes, setAttributes, className } ) {\n\t\tconst { align, content, placeholder } = attributes;\n\n\t\tdeprecated( 'The Subheading block', {\n\t\t\talternative: 'the Paragraph block',\n\t\t\tplugin: 'Gutenberg',\n\t\t} );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Write subheading…' ) }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t},\n\n\tsave( { attributes, className } ) {\n\t\tconst { align, content } = attributes;\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"p\"\n\t\t\t\tclassName={ className }\n\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Fragment, Component } from '@wordpress/element';\nimport { InspectorControls, BlockControls, RichText } from '@wordpress/editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tButton,\n\tToolbar,\n\tDropdownMenu,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcreateTable,\n\tupdateCellContent,\n\tinsertRow,\n\tdeleteRow,\n\tinsertColumn,\n\tdeleteColumn,\n} from './state';\n\nexport default class TableEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onCreateTable = this.onCreateTable.bind( this );\n\t\tthis.onChangeFixedLayout = this.onChangeFixedLayout.bind( this );\n\t\tthis.onChange = this.onChange.bind( this );\n\t\tthis.onChangeInitialColumnCount = this.onChangeInitialColumnCount.bind( this );\n\t\tthis.onChangeInitialRowCount = this.onChangeInitialRowCount.bind( this );\n\t\tthis.renderSection = this.renderSection.bind( this );\n\t\tthis.getTableControls = this.getTableControls.bind( this );\n\t\tthis.onInsertRow = this.onInsertRow.bind( this );\n\t\tthis.onInsertRowBefore = this.onInsertRowBefore.bind( this );\n\t\tthis.onInsertRowAfter = this.onInsertRowAfter.bind( this );\n\t\tthis.onDeleteRow = this.onDeleteRow.bind( this );\n\t\tthis.onInsertColumn = this.onInsertColumn.bind( this );\n\t\tthis.onInsertColumnBefore = this.onInsertColumnBefore.bind( this );\n\t\tthis.onInsertColumnAfter = this.onInsertColumnAfter.bind( this );\n\t\tthis.onDeleteColumn = this.onDeleteColumn.bind( this );\n\n\t\tthis.state = {\n\t\t\tinitialRowCount: 2,\n\t\t\tinitialColumnCount: 2,\n\t\t\tselectedCell: null,\n\t\t};\n\t}\n\n\t/**\n\t * Updates the initial column count used for table creation.\n\t *\n\t * @param {number} initialColumnCount New initial column count.\n\t */\n\tonChangeInitialColumnCount( initialColumnCount ) {\n\t\tthis.setState( { initialColumnCount } );\n\t}\n\n\t/**\n\t * Updates the initial row count used for table creation.\n\t *\n\t * @param {number} initialRowCount New initial row count.\n\t */\n\tonChangeInitialRowCount( initialRowCount ) {\n\t\tthis.setState( { initialRowCount } );\n\t}\n\n\t/**\n\t * Creates a table based on dimensions in local state.\n\t *\n\t * @param {Object} event Form submit event.\n\t */\n\tonCreateTable( event ) {\n\t\tevent.preventDefault();\n\n\t\tconst { setAttributes } = this.props;\n\t\tlet { initialRowCount, initialColumnCount } = this.state;\n\n\t\tinitialRowCount = parseInt( initialRowCount, 10 ) || 2;\n\t\tinitialColumnCount = parseInt( initialColumnCount, 10 ) || 2;\n\n\t\tsetAttributes( createTable( {\n\t\t\trowCount: initialRowCount,\n\t\t\tcolumnCount: initialColumnCount,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Toggles whether the table has a fixed layout or not.\n\t */\n\tonChangeFixedLayout() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { hasFixedLayout } = attributes;\n\n\t\tsetAttributes( { hasFixedLayout: ! hasFixedLayout } );\n\t}\n\n\t/**\n\t * Changes the content of the currently selected cell.\n\t *\n\t * @param {Array} content A RichText content value.\n\t */\n\tonChange( content ) {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, rowIndex, columnIndex } = selectedCell;\n\n\t\tsetAttributes( updateCellContent( attributes, {\n\t\t\tsection,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t\tcontent,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Inserts a row at the currently selected row index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected row index at which to insert.\n\t */\n\tonInsertRow( delta ) {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, rowIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( insertRow( attributes, {\n\t\t\tsection,\n\t\t\trowIndex: rowIndex + delta,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Inserts a row before the currently selected row.\n\t */\n\tonInsertRowBefore() {\n\t\tthis.onInsertRow( 0 );\n\t}\n\n\t/**\n\t * Inserts a row after the currently selected row.\n\t */\n\tonInsertRowAfter() {\n\t\tthis.onInsertRow( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected row.\n\t */\n\tonDeleteRow() {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, rowIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( deleteRow( attributes, { section, rowIndex } ) );\n\t}\n\n\t/**\n\t * Inserts a column at the currently selected column index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected column index at which to insert.\n\t */\n\tonInsertColumn( delta = 0 ) {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, columnIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( insertColumn( attributes, {\n\t\t\tsection,\n\t\t\tcolumnIndex: columnIndex + delta,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Inserts a column before the currently selected column.\n\t */\n\tonInsertColumnBefore() {\n\t\tthis.onInsertColumn( 0 );\n\t}\n\n\t/**\n\t * Inserts a column after the currently selected column.\n\t */\n\tonInsertColumnAfter() {\n\t\tthis.onInsertColumn( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected column.\n\t */\n\tonDeleteColumn() {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, columnIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( deleteColumn( attributes, { section, columnIndex } ) );\n\t}\n\n\t/**\n\t * Creates an onFocus handler for a specified cell.\n\t *\n\t * @param {Object} selectedCell Object with `section`, `rowIndex`, and\n\t * `columnIndex` properties.\n\t *\n\t * @return {Function} Function to call on focus.\n\t */\n\tcreateOnFocus( selectedCell ) {\n\t\treturn () => {\n\t\t\tthis.setState( { selectedCell } );\n\t\t};\n\t}\n\n\t/**\n\t * Gets the table controls to display in the block toolbar.\n\t *\n\t * @return {Array} Table controls.\n\t */\n\tgetTableControls() {\n\t\tconst { selectedCell } = this.state;\n\n\t\treturn [\n\t\t\t{\n\t\t\t\ticon: 'table-row-before',\n\t\t\t\ttitle: __( 'Add Row Before' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertRowBefore,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-row-after',\n\t\t\t\ttitle: __( 'Add Row After' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertRowAfter,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-row-delete',\n\t\t\t\ttitle: __( 'Delete Row' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onDeleteRow,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-col-before',\n\t\t\t\ttitle: __( 'Add Column Before' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertColumnBefore,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-col-after',\n\t\t\t\ttitle: __( 'Add Column After' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertColumnAfter,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-col-delete',\n\t\t\t\ttitle: __( 'Delete Column' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onDeleteColumn,\n\t\t\t},\n\t\t];\n\t}\n\n\t/**\n\t * Renders a table section.\n\t *\n\t * @param {string} options.type Section type: head, body, or foot.\n\t * @param {Array} options.rows The rows to render.\n\t *\n\t * @return {Object} React element for the section.\n\t */\n\trenderSection( { type, rows } ) {\n\t\tif ( ! rows.length ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst Tag = `t${ type }`;\n\t\tconst { selectedCell } = this.state;\n\n\t\treturn (\n\t\t\t<Tag>\n\t\t\t\t{ rows.map( ( { cells }, rowIndex ) =>\n\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t{ cells.map( ( { content, tag: CellTag }, columnIndex ) => {\n\t\t\t\t\t\t\tconst isSelected = selectedCell && (\n\t\t\t\t\t\t\t\ttype === selectedCell.section &&\n\t\t\t\t\t\t\t\trowIndex === selectedCell.rowIndex &&\n\t\t\t\t\t\t\t\tcolumnIndex === selectedCell.columnIndex\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst cell = {\n\t\t\t\t\t\t\t\tsection: type,\n\t\t\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst classes = classnames( {\n\t\t\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<CellTag key={ columnIndex } className={ classes }>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-table__cell-content\"\n\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\tonChange={ this.onChange }\n\t\t\t\t\t\t\t\t\t\tunstableOnFocus={ this.createOnFocus( cell ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</CellTag>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</tr>\n\t\t\t\t) }\n\t\t\t</Tag>\n\t\t);\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst { isSelected } = this.props;\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! isSelected && selectedCell ) {\n\t\t\tthis.setState( { selectedCell: null } );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { attributes, className } = this.props;\n\t\tconst { initialRowCount, initialColumnCount } = this.state;\n\t\tconst { hasFixedLayout, head, body, foot } = attributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\t\tconst Section = this.renderSection;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn (\n\t\t\t\t<form onSubmit={ this.onCreateTable }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tlabel={ __( 'Column Count' ) }\n\t\t\t\t\t\tvalue={ initialColumnCount }\n\t\t\t\t\t\tonChange={ this.onChangeInitialColumnCount }\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tlabel={ __( 'Row Count' ) }\n\t\t\t\t\t\tvalue={ initialRowCount }\n\t\t\t\t\t\tonChange={ this.onChangeInitialRowCount }\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t/>\n\t\t\t\t\t<Button isPrimary type=\"submit\">{ __( 'Create' ) }</Button>\n\t\t\t\t</form>\n\t\t\t);\n\t\t}\n\n\t\tconst classes = classnames( className, {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t} );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\ticon=\"editor-table\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit Table' ) }\n\t\t\t\t\t\t\tcontrols={ this.getTableControls() }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Table Settings' ) } className=\"blocks-table-settings\">\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\t\tchecked={ !! hasFixedLayout }\n\t\t\t\t\t\t\tonChange={ this.onChangeFixedLayout }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<table className={ classes }>\n\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t</table>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { getPhrasingContentSchema } from '@wordpress/blocks';\nimport { RichText } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nconst tableContentPasteSchema = {\n\ttr: {\n\t\tchildren: {\n\t\t\tth: {\n\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t},\n\t\t\ttd: {\n\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t},\n\t\t},\n\t},\n};\n\nconst tablePasteSchema = {\n\ttable: {\n\t\tchildren: {\n\t\t\tthead: {\n\t\t\t\tchildren: tableContentPasteSchema,\n\t\t\t},\n\t\t\ttfoot: {\n\t\t\t\tchildren: tableContentPasteSchema,\n\t\t\t},\n\t\t\ttbody: {\n\t\t\t\tchildren: tableContentPasteSchema,\n\t\t\t},\n\t\t},\n\t},\n};\n\nfunction getTableSectionAttributeSchema( section ) {\n\treturn {\n\t\ttype: 'array',\n\t\tdefault: [],\n\t\tsource: 'query',\n\t\tselector: `t${ section } tr`,\n\t\tquery: {\n\t\t\tcells: {\n\t\t\t\ttype: 'array',\n\t\t\t\tdefault: [],\n\t\t\t\tsource: 'query',\n\t\t\t\tselector: 'td,th',\n\t\t\t\tquery: {\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t},\n\t\t\t\t\ttag: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n}\n\nexport const name = 'core/table';\n\nexport const settings = {\n\ttitle: __( 'Table' ),\n\tdescription: __( 'Insert a table -- perfect for sharing charts and data.' ),\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M20 3H5L3 5v14l2 2h15l2-2V5l-2-2zm0 2v3H5V5h15zm-5 14h-5v-9h5v9zM5 10h3v9H5v-9zm12 9v-9h3v9h-3z\" /></g></svg>,\n\tcategory: 'formatting',\n\n\tattributes: {\n\t\thasFixedLayout: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\thead: getTableSectionAttributeSchema( 'head' ),\n\t\tbody: getTableSectionAttributeSchema( 'body' ),\n\t\tfoot: getTableSectionAttributeSchema( 'foot' ),\n\t},\n\n\tstyles: [\n\t\t{ name: 'regular', label: __( 'Regular' ), isDefault: true },\n\t\t{ name: 'stripes', label: __( 'Stripes' ) },\n\t],\n\n\tsupports: {\n\t\talign: true,\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tselector: 'table',\n\t\t\t\tschema: tablePasteSchema,\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { hasFixedLayout, head, body, foot } = attributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst classes = classnames( {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t} );\n\n\t\tconst Section = ( { type, rows } ) => {\n\t\t\tif ( ! rows.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst Tag = `t${ type }`;\n\n\t\t\treturn (\n\t\t\t\t<Tag>\n\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) =>\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ cells.map( ( { content, tag }, cellIndex ) =>\n\t\t\t\t\t\t\t\t<RichText.Content tagName={ tag } value={ content } key={ cellIndex } />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t) }\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<table className={ classes }>\n\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t</table>\n\t\t);\n\t},\n};\n","/**\n * External dependencies\n */\nimport { times } from 'lodash';\n\n/**\n * Creates a table state.\n *\n * @param {number} options.rowCount Row count for the table to create.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function createTable( {\n\trowCount,\n\tcolumnCount,\n} ) {\n\treturn {\n\t\tbody: times( rowCount, () => ( {\n\t\t\tcells: times( columnCount, () => ( {\n\t\t\t\tcontent: '',\n\t\t\t\ttag: 'td',\n\t\t\t} ) ),\n\t\t} ) ),\n\t};\n}\n\n/**\n * Updates cell content in the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section of the cell to update.\n * @param {number} options.rowIndex Row index of the cell to update.\n * @param {number} options.columnIndex Column index of the cell to update.\n * @param {Array} options.content Content to set for the cell.\n *\n * @return {Object} New table state.\n */\nexport function updateCellContent( state, {\n\tsection,\n\trowIndex,\n\tcolumnIndex,\n\tcontent,\n} ) {\n\treturn {\n\t\t[ section ]: state[ section ].map( ( row, currentRowIndex ) => {\n\t\t\tif ( currentRowIndex !== rowIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: row.cells.map( ( cell, currentColumnIndex ) => {\n\t\t\t\t\tif ( currentColumnIndex !== columnIndex ) {\n\t\t\t\t\t\treturn cell;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...cell,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t\t};\n\t\t} ),\n\t};\n}\n\n/**\n * Inserts a row in the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section in which to insert the row.\n * @param {number} options.rowIndex Row index at which to insert the row.\n *\n * @return {Object} New table state.\n */\nexport function insertRow( state, {\n\tsection,\n\trowIndex,\n} ) {\n\tconst cellCount = state[ section ][ 0 ].cells.length;\n\n\treturn {\n\t\t[ section ]: [\n\t\t\t...state[ section ].slice( 0, rowIndex ),\n\t\t\t{\n\t\t\t\tcells: times( cellCount, () => ( {\n\t\t\t\t\tcontent: '',\n\t\t\t\t\ttag: 'td',\n\t\t\t\t} ) ),\n\t\t\t},\n\t\t\t...state[ section ].slice( rowIndex ),\n\t\t],\n\t};\n}\n\n/**\n * Deletes a row from the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section in which to delete the row.\n * @param {number} options.rowIndex Row index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteRow( state, {\n\tsection,\n\trowIndex,\n} ) {\n\treturn {\n\t\t[ section ]: state[ section ].filter( ( row, index ) => index !== rowIndex ),\n\t};\n}\n\n/**\n * Inserts a column in the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section in which to insert the column.\n * @param {number} options.columnIndex Column index at which to insert the column.\n *\n * @return {Object} New table state.\n */\nexport function insertColumn( state, {\n\tsection,\n\tcolumnIndex,\n} ) {\n\treturn {\n\t\t[ section ]: state[ section ].map( ( row ) => ( {\n\t\t\tcells: [\n\t\t\t\t...row.cells.slice( 0, columnIndex ),\n\t\t\t\t{\n\t\t\t\t\tcontent: '',\n\t\t\t\t\ttag: 'td',\n\t\t\t\t},\n\t\t\t\t...row.cells.slice( columnIndex ),\n\t\t\t],\n\t\t} ) ),\n\t};\n}\n\n/**\n * Deletes a column from the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section in which to delete the column.\n * @param {number} options.columnIndex Column index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteColumn( state, {\n\tsection,\n\tcolumnIndex,\n} ) {\n\treturn {\n\t\t[ section ]: state[ section ].map( ( row ) => ( {\n\t\t\tcells: row.cells.filter( ( cell, index ) => index !== columnIndex ),\n\t\t} ) ).filter( ( row ) => row.cells.length ),\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InnerBlocks } from '@wordpress/editor';\n\nexport const name = 'core/template';\n\nexport const settings = {\n\ttitle: __( 'Reusable Template' ),\n\n\tcategory: 'reusable',\n\n\tdescription: __( 'Template block used as a container.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><rect x=\"0\" fill=\"none\" width=\"24\" height=\"24\" /><g><path d=\"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zM6 6h5v5H6V6zm4.5 13C9.12 19 8 17.88 8 16.5S9.12 14 10.5 14s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zm3-6l3-5 3 5h-6z\" /></g></svg>,\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t},\n\n\tedit() {\n\t\treturn <InnerBlocks />;\n\t},\n\n\tsave() {\n\t\treturn <InnerBlocks.Content />;\n\t},\n};\n","/**\n * External dependencies\n */\nimport { get, times } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, RangeControl } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockAlignmentToolbar,\n\tInspectorControls,\n\tRichText,\n} from '@wordpress/editor';\nimport deprecated from '@wordpress/deprecated';\n\nexport const name = 'core/text-columns';\n\nexport const settings = {\n\t// Disable insertion as this block is deprecated and ultimately replaced by the Columns block.\n\tsupports: {\n\t\tinserter: false,\n\t},\n\n\ttitle: __( 'Text Columns (deprecated)' ),\n\n\tdescription: __( 'This block is deprecated. Please use the Columns block instead.' ),\n\n\ticon: 'columns',\n\n\tcategory: 'layout',\n\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'query',\n\t\t\tselector: 'p',\n\t\t\tquery: {\n\t\t\t\tchildren: {\n\t\t\t\t\tsource: 'html',\n\t\t\t\t},\n\t\t\t},\n\t\t\tdefault: [ {}, {} ],\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 2,\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/columns' ],\n\t\t\t\ttransform: ( { className, columns, content, width } ) => (\n\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t'core/columns',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\talign: ( 'wide' === width || 'full' === width ) ? width : undefined,\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcontent.map( ( { children } ) =>\n\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t[ createBlock( 'core/paragraph', { content: children } ) ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t},\n\t\t],\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { width } = attributes;\n\t\tif ( 'wide' === width || 'full' === width ) {\n\t\t\treturn { 'data-align': width };\n\t\t}\n\t},\n\n\tedit: ( ( { attributes, setAttributes, className } ) => {\n\t\tconst { width, content, columns } = attributes;\n\n\t\tdeprecated( 'The Text Columns block', {\n\t\t\talternative: 'the Columns block',\n\t\t\tplugin: 'Gutenberg',\n\t\t} );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\tonChange={ ( nextWidth ) => setAttributes( { width: nextWidth } ) }\n\t\t\t\t\t\tcontrols={ [ 'center', 'wide', 'full' ] }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { columns: value } ) }\n\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\tmax={ 4 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<div className={ `${ className } align${ width } columns-${ columns }` }>\n\t\t\t\t\t{ times( columns, ( index ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div className=\"wp-block-column\" key={ `column-${ index }` }>\n\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\tvalue={ get( content, [ index, 'children' ] ) }\n\t\t\t\t\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t\t\t\t\t\t...content.slice( 0, index ),\n\t\t\t\t\t\t\t\t\t\t\t\t{ children: nextContent },\n\t\t\t\t\t\t\t\t\t\t\t\t...content.slice( index + 1 ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tplaceholder={ __( 'New Column' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t} ),\n\n\tsave( { attributes } ) {\n\t\tconst { width, content, columns } = attributes;\n\t\treturn (\n\t\t\t<div className={ `align${ width } columns-${ columns }` }>\n\t\t\t\t{ times( columns, ( index ) =>\n\t\t\t\t\t<div className=\"wp-block-column\" key={ `column-${ index }` }>\n\t\t\t\t\t\t<RichText.Content tagName=\"p\" value={ get( content, [ index, 'children' ] ) } />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t},\n};\n","/**\n * WordPress\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n} from '@wordpress/editor';\n\nexport const name = 'core/verse';\n\nexport const settings = {\n\ttitle: __( 'Verse' ),\n\n\tdescription: __( 'A block for haiku? Why not? Blocks for all the things! (See what we did here?)' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M3 17v4h4l11-11-4-4L3 17zm3 2H5v-1l9-9 1 1-9 9zM21 6l-3-3h-1l-2 2 4 4 2-2V6z\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tkeywords: [ __( 'poetry' ) ],\n\n\tattributes: {\n\t\tcontent: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'pre',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) =>\n\t\t\t\t\tcreateBlock( 'core/verse', attributes ),\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', attributes ),\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { attributes, setAttributes, className, mergeBlocks } ) {\n\t\tconst { textAlign, content } = attributes;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"pre\"\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tstyle={ { textAlign: textAlign } }\n\t\t\t\t\tplaceholder={ __( 'Write…' ) }\n\t\t\t\t\twrapperClassName={ className }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t},\n\n\tsave( { attributes, className } ) {\n\t\tconst { textAlign, content } = attributes;\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"pre\"\n\t\t\t\tclassName={ className }\n\t\t\t\tstyle={ { textAlign: textAlign } }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBaseControl,\n\tButton,\n\tDisabled,\n\tIconButton,\n\tPanelBody,\n\tSelectControl,\n\tToolbar,\n\tToggleControl,\n\twithNotices,\n} from '@wordpress/components';\nimport { Component, Fragment, createRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tRichText,\n\tmediaUpload,\n} from '@wordpress/editor';\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\nconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nclass VideoEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\t// edit component has its own src in the state so it can be edited\n\t\t// without setting the actual value outside of the edit UI\n\t\tthis.state = {\n\t\t\tediting: ! this.props.attributes.src,\n\t\t};\n\n\t\tthis.videoPlayer = createRef();\n\t\tthis.posterImageButton = createRef();\n\t\tthis.toggleAttribute = this.toggleAttribute.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t\tthis.onSelectPoster = this.onSelectPoster.bind( this );\n\t\tthis.onRemovePoster = this.onRemovePoster.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, noticeOperations, setAttributes } = this.props;\n\t\tconst { id, src = '' } = attributes;\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\t\t\tif ( file ) {\n\t\t\t\tmediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ { url } ] ) => {\n\t\t\t\t\t\tsetAttributes( { src: url } );\n\t\t\t\t\t},\n\t\t\t\t\tonError: ( message ) => {\n\t\t\t\t\t\tthis.setState( { editing: true } );\n\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t},\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( this.props.attributes.poster !== prevProps.attributes.poster ) {\n\t\t\tthis.videoPlayer.current.load();\n\t\t}\n\t}\n\n\ttoggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tthis.props.setAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tonSelectURL( newSrc ) {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { src } = attributes;\n\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\n\t\tthis.setState( { editing: false } );\n\t}\n\n\tonSelectPoster( image ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { poster: image.url } );\n\t}\n\n\tonRemovePoster() {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { poster: '' } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\tthis.posterImageButton.current.focus();\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tautoplay,\n\t\t\tcaption,\n\t\t\tcontrols,\n\t\t\tloop,\n\t\t\tmuted,\n\t\t\tposter,\n\t\t\tpreload,\n\t\t\tsrc,\n\t\t} = this.props.attributes;\n\t\tconst { setAttributes, isSelected, className, noticeOperations, noticeUI } = this.props;\n\t\tconst { editing } = this.state;\n\t\tconst switchToEditing = () => {\n\t\t\tthis.setState( { editing: true } );\n\t\t};\n\t\tconst onSelectVideo = ( media ) => {\n\t\t\tif ( ! media || ! media.url ) {\n\t\t\t\t// in this case there was an error and we should continue in the editing state\n\t\t\t\t// previous attributes should be removed because they may be temporary blob urls\n\t\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\t\tswitchToEditing();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// sets the block's attribute and updates the edit component from the\n\t\t\t// selected media, then switches off the editing UI\n\t\t\tsetAttributes( { src: media.url, id: media.id } );\n\t\t\tthis.setState( { src: media.url, editing: false } );\n\t\t};\n\n\t\tif ( editing ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon=\"media-video\"\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'Video' ),\n\t\t\t\t\t\tname: __( 'a video' ),\n\t\t\t\t\t} }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ this.props.attributes }\n\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName=\"components-icon-button components-toolbar__control\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit video' ) }\n\t\t\t\t\t\t\tonClick={ switchToEditing }\n\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Video Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'loop' ) }\n\t\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'muted' ) }\n\t\t\t\t\t\t\tchecked={ muted }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Playback Controls' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'controls' ) }\n\t\t\t\t\t\t\tchecked={ controls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\t\t\t\tvalue={ preload }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { preload: value } ) }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t\t{ value: 'none', label: __( 'None' ) },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t\tclassName=\"editor-video-poster-control\"\n\t\t\t\t\t\t\tlabel={ __( 'Poster Image' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={ __( 'Select Poster Image' ) }\n\t\t\t\t\t\t\t\tonSelect={ this.onSelectPoster }\n\t\t\t\t\t\t\t\tallowedTypes={ VIDEO_POSTER_ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tisDefault\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tref={ this.posterImageButton }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ ! this.props.attributes.poster ? __( 'Select Poster Image' ) : __( 'Replace image' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ !! this.props.attributes.poster &&\n\t\t\t\t\t\t\t\t<Button onClick={ this.onRemovePoster } isLink isDestructive>\n\t\t\t\t\t\t\t\t\t{ __( 'Remove Poster Image' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<figure className={ className }>\n\t\t\t\t\t{ /*\n\t\t\t\t\t\tDisable the video tag so the user clicking on it won't play the\n\t\t\t\t\t\tvideo when the controls are enabled.\n\t\t\t\t\t*/ }\n\t\t\t\t\t<Disabled>\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\t\tref={ this.videoPlayer }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Disabled>\n\t\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t</Fragment>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t}\n}\n\nexport default withNotices( VideoEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText } from '@wordpress/editor';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/video';\n\nexport const settings = {\n\ttitle: __( 'Video' ),\n\n\tdescription: __( 'Embed a video file and a simple video player.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M4 6l2 4h14v8H4V6m18-2h-4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4L2 6v12l2 2h16l2-2V4z\" /></svg>,\n\n\tkeywords: [ __( 'movie' ) ],\n\n\tcategory: 'common',\n\n\tattributes: {\n\t\tautoplay: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'autoplay',\n\t\t},\n\t\tcaption: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\tcontrols: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'controls',\n\t\t\tdefault: true,\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tloop: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'loop',\n\t\t},\n\t\tmuted: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'muted',\n\t\t},\n\t\tposter: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'poster',\n\t\t},\n\t\tpreload: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'preload',\n\t\t\tdefault: 'metadata',\n\t\t},\n\t\tsrc: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'src',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch( files ) {\n\t\t\t\t\treturn files.length === 1 && files[ 0 ].type.indexOf( 'video/' ) === 0;\n\t\t\t\t},\n\t\t\t\ttransform( files ) {\n\t\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t\t// in the video block\n\t\t\t\t\tconst block = createBlock( 'core/video', {\n\t\t\t\t\t\tsrc: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t\treturn block;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tsupports: {\n\t\talign: true,\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { autoplay, caption, controls, loop, muted, poster, preload, src } = attributes;\n\t\treturn (\n\t\t\t<figure>\n\t\t\t\t{ src && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tautoPlay={ autoplay }\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tloop={ loop }\n\t\t\t\t\t\tmuted={ muted }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tpreload={ preload !== 'metadata' ? preload : undefined }\n\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n","(function() { module.exports = this[\"wp\"][\"autop\"]; }());","(function() { module.exports = this[\"wp\"][\"blob\"]; }());","(function() { module.exports = this[\"wp\"][\"blocks\"]; }());","(function() { module.exports = this[\"wp\"][\"components\"]; }());","(function() { module.exports = this[\"wp\"][\"compose\"]; }());","(function() { module.exports = this[\"wp\"][\"coreData\"]; }());","(function() { module.exports = this[\"wp\"][\"data\"]; }());","(function() { module.exports = this[\"wp\"][\"date\"]; }());","(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());","(function() { module.exports = this[\"wp\"][\"editor\"]; }());","(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\"][\"viewport\"]; }());","(function() { module.exports = this[\"lodash\"]; }());"],"sourceRoot":""}